|
49289
|
Starsite by @rgb-hsl | Stardance
|
rgb-hsl
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T10:17:07Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple website with HTML and CSS. I struggled a bit with the CSS, but I think it looks ok now. I’m going to be using this as the basis of a more well-designed website soon, so I’m happy I got the basics down. it’s deployed on github pages", "repo": "https://github.com/rgbhsl/star-site", "demo": "https://rgbhsl.github.io/starsite/"}]...
|
[{"post_id": 69566, "ts": "202 [{"post_id": 69566, "ts": "2026-09-17T10:09:49Z", "hours": 0.3778, "text": "Done! It’s currently very simple, but I hope to use this as the basis for a proper website/portfolio soon!"}, {"post_id": 48946, "ts": "2026-08-17T14:51:56Z", "hours": 0.6158, "text": "Added more to the readme, made minor formatting changes and added an image. github is giving me a unicorn error so I’m taking a break. this is what part of it looks like."}, {"post_id": 48477, "ts": "2026-08-16T20:51:09Z", "hours": 1.5706, "text": "I’m almost done with the website! I just need to deploy it"}, {"post_id": 48328, "ts": "2026-08-16T17:12:41Z", "hours": 0.4731, "text": "08.16 - my first devlog. I am having some trouble with the codespace so I plan to deploy properly to the page at the end."}]...
|
Title: Starsite by @rgb-hsl | Stardance
Devlogs:
Title: Starsite by @rgb-hsl | Stardance
Devlogs:
08.16 - my first devlog. I am having some trouble with the codespace so I plan to deploy properly to the page at the end.
I’m almost done with the website! I just need to deploy it
Added more to the readme, made minor formatting changes and added an image. github is giving me a unicorn error so I’m taking a break. this is what part of it looks like.
Done! It’s currently very simple, but I hope to use this as the basis for a proper website/portfolio soon!
Ships:
I made a simple website with HTML and CSS. I struggled a bit with the CSS, but I think it looks ok now. I’m going to be using this as the basis of a more well-designed website soon, so I’m happy I got the basics down. it’s deployed on github pages...
|
1793004676.131384
|
1793091076.131384
|
|
44408
|
F.D.R by @Evangel | Stardance
|
Evangel
|
1
|
21.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-09T22:46:46Z", "hours": 21.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "After many hours of working on F.D.R., my own 3D-modeled drone, I am so happy to declare it shippable. It was quite challenging cause it was my first time actually working on anything 3D-modeled. It may come with some errors, but that is what I consider a learning process. I am so excited to get feedback on how to improve it, but for now I want to start working on new things. This project is purely practice for 3d modeling, so it only contains a 3d model. I cant wait to use the skills i have learnt from this project to improve and make many more things.", "repo": "https://github.com/evang10b/F.D.R", "demo": "https://cad.onshape.com/documents/f5f7eb2614957307b4720381/w/03ec715962541749f9a71ff2/e/2d20b9c38ebb88ce5911f2c0?renderMode=0&uiState=6aa1dea27c9d8ff3623e4d59"}]...
|
[{"post_id": 65069, "ts": "202 [{"post_id": 65069, "ts": "2026-09-09T22:36:13Z", "hours": 2.3081, "text": "Finally finished it up and edited the GitHub. As a complete beginner at CAD, I’m kind of proud of myself, and I can totally do way better. I’d probably come back to this project and make much more drastic improvements, but for now it’s a milestone made. It’s been so long; I’m tired of working on it too, but it was such a cool experience."}, {"post_id": 59937, "ts": "2026-09-02T00:19:08Z", "hours": 3.2386, "text": "Adding my final touches, I’ll need to work on the GitHub repo, and then it will be ready to submit! I need to finish the case details and add a removable flashlight on its head"}, {"post_id": 53176, "ts": "2026-08-23T16:47:25Z", "hours": 4.9156, "text": "RIght now, F.D.R is going through its final stages of design. I’m currently having trouble figuring out where to put my beater disk and how to improve other aspects. I need to create a GitHub repository, which I have been postponing for a very long time (I do not know how to properly write one). I also want to know whether this is a software project or a hardware project. For now, I just put it as software, but I might be wrong"}, {"post_id": 42993, "ts": "2026-08-08T00:39:58Z", "hours": 6.0803, "text": "Onshape is genuinely starting to irritate me. I’ve been trying to fix whatever problem I don’t even know of for almost 2 hours. I’ve tried every single relation; I redid it twice. I’m literally going to just remove it as a whole."}, {"post_id": 41677, "ts": "2026-08-06T01:24:16Z", "hours": 4.9172, "text": "Futuristic Drone: This project is based on a project that was made by someone else. My goal is to add features that make the drone better. I’ve started working on the main parts. Im not sure if im going to make it irl but that could change."}]...
|
Title: F.D.R by @Evangel | Stardance
Devlogs:
Fut Title: F.D.R by @Evangel | Stardance
Devlogs:
Futuristic Drone: This project is based on a project that was made by someone else. My goal is to add features that make the drone better. I’ve started working on the main parts. Im not sure if im going to make it irl but that could change.
Onshape is genuinely starting to irritate me. I’ve been trying to fix whatever problem I don’t even know of for almost 2 hours. I’ve tried every single relation; I redid it twice. I’m literally going to just remove it as a whole.
RIght now, F.D.R is going through its final stages of design. I’m currently having trouble figuring out where to put my beater disk and how to improve other aspects. I need to create a GitHub repository, which I have been postponing for a very long time (I do not know how to properly write one). I also want to know whether this is a software project or a hardware project. For now, I just put it as software, but I might be wrong
Adding my final touches, I’ll need to work on the GitHub repo, and then it will be ready to submit! I need to finish the case details and add a removable flashlight on its head
Finally finished it up and edited the GitHub. As a complete beginner at CAD, I’m kind of proud of myself, and I can totally do way better. I’d probably come back to this project and make much more drastic improvements, but for now it’s a milestone made. It’s been so long; I’m tired of working on it too, but it was such a cool experience.
Ships:
After many hours of working on F.D.R., my own 3D-modeled drone, I am so happy to declare it shippable. It was quite challenging cause it was my first time actually working on anything 3D-modeled. It may come with some errors, but that is what I consider a learning process. I am so excited to get feedback on how to improve it, but for now I want to start working on new things. This project is purely practice for 3d modeling, so it only contains a 3d model. I cant wait to use the skills i have learnt from this project to improve and make many more things....
|
1793004674.7098238
|
1793091074.7098238
|
|
33818
|
Piggi by @malikschenk | Stardance
|
malikschenk
|
1
|
27.2
|
180
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T20:52:24Z", "hours": 25.0, "multiplier": 7.31, "payout": 180, "blessing": "neutral", "text": "I created an app to keep an eye on your expenses and to reach your saving goals. It has smart features like Stats and a Calculator. Additionally there is PiggiAI, an integrated AI that runs via your Gemini API key. All the data is saved securely in local stoprage, never löeaves your device and can be deleted with just two clicks.", "repo": "https://github.com/Malikschenk/Piggi", "demo": "https://piggi-app.vercel.app/"}]...
|
[{"post_id": 78167, "ts": "202 [{"post_id": 78167, "ts": "2026-10-09T20:50:05Z", "hours": 1.6992, "text": "Devlog #8 After two failed submissions I finally found the problem! The reviewer said the Hack Club AI key didn’t work. But my code, as I thought, wasn’t actually the problem. Because GitHub Pages doesn’t support Serverless Functions and Vercel do. Now I host Piggi on Vercel. It feels and looks the same, but it works. Check it out here !"}, {"post_id": 75878, "ts": "2026-10-01T13:38:20Z", "hours": 0.5, "text": "Devlog #7 I received an answer really quickly from the reviewers. They said I have to open PiggiAI to Hack Club AI. I never heard of it before, but you can get your API key there for top OpenAI models. Now PiggiAI is opened to both keys! Check it out here !"}, {"post_id": 75714, "ts": "2026-09-30T20:38:29Z", "hours": 2.1003, "text": "Devlog #6 I just found out that the Stardance event has been extended by another month! I’m really happy but in the last days I spent so much time finishing Piggi. Now I’m done, there are no new features today, but you can check it out in my repo and live on GitHub Pages. I was struggling with Pages, but I finally did it! I’m about to submit the project. Maybe there’ll be a new version of Piggi, so stay tuned!"}, {"post_id": 75347, "ts": "2026-09-29T20:13:02Z", "hours": 3.7125, "text": "Devlog #5 I finally finished Piggi! I added a lot of new features. For example Stats and Calculator features. But try it yourself here or check my repo ! I’m adding information to the README but I have to submit the project now because the Stardance Event is ending tomorrow. Here are a few screenshots of the UI."}, {"post_id": 71771, "ts": "2026-09-21T14:37:29Z", "hours": 4.41, "text": "Devlog #4 I’m back working on Piggi! In the last weeks I built my Hackpad and shipped it yesterday. While it’s being checked I’m working on this project again. My plan is to finish it before the Stardance event ends."}, {"post_id": 44030, "ts": "2026-08-09T15:14:03Z", "hours": 3.5489, "text": "Devlog #3 I just finished the app and made some changes: · New Settings menu · Adjustable avatar letter · Option to reset all data · Option to add and subtract funds · Warning when entering letters or symbols in forms for numbers Aside from that I removed the diagram because I don’t think you need a visualization of monthly income and expenses. Now I’ll start with PiggiAI. I also hosted Piggi on GitHub Pages so check it out here !"}, {"post_id": 30397, "ts": "2026-07-17T21:50:20Z", "hours": 7.3644, "text": "Devlog #2 I largely finished the structure of the app, but it’s a work in progress and a few bugs to fix. The code is now on GitHub - try it out! These things are improved or new: · New menu for the settings · New dark mode · A clearer diagram for expenses · New buttons · Maximum of 10 saving goals and 5 sources of income · A few more improvements I had a problem with the Editing UI of the balance because I renamed a class in CSS but not in HTML and JS. As the next step I want to build the PiggiAI. It’s an AI assistant and it uses your Gemini API key. How you get this key is explained in the README in GitHub. Right now, the tile ‘PiggiAI’, the PiggiAI input bar at the bottom and the menu to enter your API key are currently non-functional, I’m working on it."}, {"post_id": 28510, "ts": "2026-07-14T20:12:39Z", "hours": 3.4694, "text": "Devlog #1 I’m working on the UI. This is my first prototype."}]...
|
Title: Piggi by @malikschenk | Stardance
Devlogs: Title: Piggi by @malikschenk | Stardance
Devlogs:
Devlog #1 I’m working on the UI. This is my first prototype.
Devlog #2 I largely finished the structure of the app, but it’s a work in progress and a few bugs to fix. The code is now on GitHub - try it out! These things are improved or new: · New menu for the settings · New dark mode · A clearer diagram for expenses · New buttons · Maximum of 10 saving goals and 5 sources of income · A few more improvements I had a problem with the Editing UI of the balance because I renamed a class in CSS but not in HTML and JS. As the next step I want to build the PiggiAI. It’s an AI assistant and it uses your Gemini API key. How you get this key is explained in the README in GitHub. Right now, the tile ‘PiggiAI’, the PiggiAI input bar at the bottom and the menu to enter your API key are currently non-functional, I’m working on it.
Devlog #3 I just finished the app and made some changes: · New Settings menu · Adjustable avatar letter · Option to reset all data · Option to add and subtract funds · Warning when entering letters or symbols in forms for numbers Aside from that I removed the diagram because I don’t think you need a visualization of monthly income and expenses. Now I’ll start with PiggiAI. I also hosted Piggi on GitHub Pages so check it out here !
Devlog #4 I’m back working on Piggi! In the last weeks I built my Hackpad and shipped it yesterday. While it’s being checked I’m working on this project again. My plan is to finish it before the Stardance event ends.
Devlog #5 I finally finished Piggi! I added a lot of new features. For example Stats and Calculator features. But try it yourself here or check my repo ! I’m adding information to the README but I have to submit the project now because the Stardance Event is ending tomorrow. Here are a few screenshots of the UI.
Devlog #6 I just found out that the Stardance event has been extended by another month! I’m really happy but in the last days I spent so much time finishing Piggi. Now I’m done, there are no new features today, but you can check it out in my repo and live on GitHub Pages. I was struggling with Pages, but I finally did it! I’m about to submit the project. Maybe there’ll be a new version of Piggi, so stay tuned!
Devlog #7 I received an answer really quickly from the reviewers. They said I have to open PiggiAI to Hack Club AI. I never heard of it before, but you can get your API key there for top OpenAI models. Now PiggiAI is opened to both keys! Check it out here !
Devlog #8 After two failed submissions I finally found the problem! The reviewer said the Hack Club AI key didn’t work. But my code, as I thought, wasn’t actually the problem. Because GitHub Pages doesn’t support Serverless Functions and Vercel do. Now I host Piggi on Vercel. It feels and looks the same, but it works. Check it out here !
Ships:
I created an app to keep an eye on your expenses and to reach your saving goals. It has smart features like Stats and a Calculator. Additionally there is PiggiAI, an integrated AI that runs via your Gemini API key. All the data is saved securely in local stoprage, never löeaves your device and can be deleted with just two clicks....
|
1793004673.4982502
|
1793091073.4982502
|
|
7142
|
Spacer by @Systemic_speed | Stardance
|
Systemic_speed
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T14:12:56Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Spacer — Stardance ship Name: Spacer One-liner: I kept missing launches and solar storms, so I built one page that tracks all of it and lets me poke at it from Slack, Discord, my terminal, a desktop window, or the web. Field Value Demo https://spacer.systemic-speed.hackclub.app/ Code https://github.com/Gautham-rgb/Spacer README https://github.com/Gautham-rgb/Spacer/blob/main/README.md Stack Python · NiceGUI · discord.py · slack_sdk · Skyfield · Groq What it is: every front-end (web, Slack, Discord, CLI, desktop) just calls one get_events() . All the fetching and filtering live in one place, and everything else is basically a renderer. Live demo is deployed, so just click. Try it: https://spacer.systemic-speed.hackclub.app/ In the bot’s chat: !space weather , !space list probe_launch --limit 5 --name falcon , !space groq what is a coronal mass ejection? What it does pulls solar flare / K-index, launches, and flybys into one timeline same --limit / --name / --after / --before flags in chat, CLI, and the URL Groq assistant that remembers the conversation (in Slack, Discord, and web) desktop ping when something big is within the hour, optional webhook TTL cache so refreshes don’t hammer NOAA, plus a 63-test pytest suite Nerdy bits: dedup on (title, time) ; bots share one platform-neutral response so Slack/Discord never re-implement logic; pages render instantly and fetch in a side thread; long Groq answers get clamped so a big reply can’t fail to send. Data: NOAA SWPC, thespacedevs, JPL (DE421), Groq. Built for Stardance. Well, Happy Launching!!", "repo": "https://github.com/Gautham-rgb/Spacer", "demo": "https://app.slack.com/client/T0B9WS0J88P/C0BAFUQQCQ4"}]...
|
[{"post_id": 74477, "ts": "202 [{"post_id": 74477, "ts": "2026-09-27T13:57:13Z", "hours": 2.7111, "text": "Devlog 3: Spacer hey there, kinda caught up with exams, but I did get some hours in with this thing, and this is going to be the last devlog until ship (YAAYYYY), so here a few design decisions and some cool stuff WE GOT A LINK After trying to configure my nest container for like, 5 years, i finally got a link to use here it is , and the website is kinda AI generated (had to fit it in the schedule, thought the thing was gonna end on Sept 30 but now it is ending on Oct 31), but all in all, it was a good thing experimenting and learning about how people actually host websites We finally got slack and discord working so, after some tinkering (and some help form opencode) we finally got discord and slack channels for the bot to work in, just use !space in the slack and the discord channel, the links are on the website. we are removing the slack bot mission form this project since i want people to actually see this and say if it is good or not, i am removing the slack bot mission from my project, but at least you can see the website and the discord bot well, see ya at ship"}, {"post_id": 57900, "ts": "2026-08-30T07:16:24Z", "hours": 3.9772, "text": "Devlog 2: Spacer hey there, didn’t post for a long time, since i was focused on making Kerbal Gravity Program ( check it out ) so I didn’t have time for this, but now that it is shipped, i can have a little bit of rest and continue on my other projects for anyone new here, Spacer is a Slack/discord bot (yes i am getting it to discord) that can give you notifications like Rocket launches or CMEs that can destroy stuff, I will also get it into a cli, but that will wait for ship 2 What I did: Now, I got 3 main things up: the APIs and the way i am going to make the CLI/Bots A Nest container An understanding of Docker (I guess??) So, what I want is a docker container perpetually running with something like tmux stopping nest from stopping the processes in the container while i exit the nest container (TOOO many containers), but now i am currently fixing stuff with the code and the docker container, well, hope it can be fixed fast Next steps Now, I gotta: 1, figure out how to use tmux 2. how to prevent a certificate error that I keep getting no matter what well, see ya next time fellas ( going to be sometime until you guys can see an actual image )"}, {"post_id": 26513, "ts": "2026-07-11T11:13:57Z", "hours": 0.4983, "text": "Devlog 1: Spacer So, I’m working on Spacer—basically a CLI tool that doubles as a Slack/Discord bot for tracking space-related events. I didn’t post a devlog sooner because I was stuck in that “why is this not working” phase for way too long. But I finally got it to a point where I can see real results. I can now push data to webhooks via the CLI, though it was basically just a giant wall of text at first. Next up: fixing the layout so it actually looks like a professional app and not a terminal dump."}]...
|
Title: Spacer by @Systemic_speed | Stardance
Devl Title: Spacer by @Systemic_speed | Stardance
Devlogs:
Devlog 1: Spacer So, I’m working on Spacer—basically a CLI tool that doubles as a Slack/Discord bot for tracking space-related events. I didn’t post a devlog sooner because I was stuck in that “why is this not working” phase for way too long. But I finally got it to a point where I can see real results. I can now push data to webhooks via the CLI, though it was basically just a giant wall of text at first. Next up: fixing the layout so it actually looks like a professional app and not a terminal dump.
Devlog 2: Spacer hey there, didn’t post for a long time, since i was focused on making Kerbal Gravity Program ( check it out ) so I didn’t have time for this, but now that it is shipped, i can have a little bit of rest and continue on my other projects for anyone new here, Spacer is a Slack/discord bot (yes i am getting it to discord) that can give you notifications like Rocket launches or CMEs that can destroy stuff, I will also get it into a cli, but that will wait for ship 2 What I did: Now, I got 3 main things up: the APIs and the way i am going to make the CLI/Bots A Nest container An understanding of Docker (I guess??) So, what I want is a docker container perpetually running with something like tmux stopping nest from stopping the processes in the container while i exit the nest container (TOOO many containers), but now i am currently fixing stuff with the code and the docker container, well, hope it can be fixed fast Next steps Now, I gotta: 1, figure out how to use tmux 2. how to prevent a certificate error that I keep getting no matter what well, see ya next time fellas ( going to be sometime until you guys can see an actual image )
Devlog 3: Spacer hey there, kinda caught up with exams, but I did get some hours in with this thing, and this is going to be the last devlog until ship (YAAYYYY), so here a few design decisions and some cool stuff WE GOT A LINK After trying to configure my nest container for like, 5 years, i finally got a link to use here it is , and the website is kinda AI generated (had to fit it in the schedule, thought the thing was gonna end on Sept 30 but now it is ending on Oct 31), but all in all, it was a good thing experimenting and learning about how people actually host websites We finally got slack and discord working so, after some tinkering (and some help form opencode) we finally got discord and slack channels for the bot to work in, just use !space in the slack and the discord channel, the links are on the website. we are removing the slack bot mission form this project since i want people to actually see this and say if it is good or not, i am removing the slack bot mission from my project, but at least you can see the website and the discord bot well, see ya at ship
Ships:
Spacer — Stardance ship Name: Spacer One-liner: I kept missing launches and solar storms, so I built one page that tracks all of it and lets me poke at it from Slack, Discord, my terminal, a desktop window, or the web. Field Value Demo https://spacer.systemic-speed.hackclub.app/ Code https://github.com/Gautham-rgb/Spacer README https://github.com/Gautham-rgb/Spacer/blob/main/README.md Stack Python · NiceGUI · discord.py · slack_sdk · Skyfield · Groq What it is: every front-end (web, Slack, Discord, CLI, desktop) just calls one get_events() . All the fetching and filtering live in one place, and everything else is basically a renderer. Live demo is deployed, so just click. Try it: https://spacer.systemic-speed.hackclub.app/ In the bot’s chat: !space weather , !space list probe_launch --limit 5 --name falcon , !space groq what is a coronal mass ejection? What it does pulls solar flare / K-index, launches, and flybys into one timeline same --limit / --name / --after / --before flags in chat, CLI, and the URL Groq assistant that remembers the conversation (in Slack, Discord, and web) desktop ping when something big is within the hour, optional webhook TTL cache so refreshes don’t hammer NOAA, plus a 63-test pytest suite Nerdy bits: dedup on (title, time) ; bots share one platform-neutral response so Slack/Discord never re-implement logic; pages render instantly and fetch in a side thread; long Groq answers get clamped so a big reply can’t fail to send. Data: NOAA SWPC, thespacedevs, JPL (DE421), Groq. Built for Stardance. Well, Happy Launching!!...
|
1793004672.36774
|
1793091072.36774
|
|
37920
|
USB-C 5Gbps Hub by @Stylt | Stardance
|
Stylt
|
1
|
27.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T07:39:38Z", "hours": 27.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is an incomplete design im submitting it bc I don’t have time to finish it. My plan was a usb c hub that will have display port, sd card ,usb c and usb a as outputs.", "repo": "https://github.com/Stylt1/usb5gbps_hub", "demo": ""}]...
|
[{"post_id": 40617, "ts": "202 [{"post_id": 40617, "ts": "2026-08-04T08:43:00Z", "hours": 1.4833, "text": "#Devlog 16 Having a break bc of frustration and burnout :( -taking a pause and will be doing easier project"}, {"post_id": 40242, "ts": "2026-08-03T17:20:13Z", "hours": 0.9, "text": "#Devlog 15 -Routed USB-C PD block -Searched about PD chip"}, {"post_id": 39964, "ts": "2026-08-03T09:25:12Z", "hours": 2.0667, "text": "Devlog #14 -optimally routed some blocks that I laid ou (5V Regulator, 3V3 Regulator, 1V2 LDO, SPI Flash, CC ESD protection IC for USB-C PD) -Next laying out other blocks -See you later :D"}, {"post_id": 39504, "ts": "2026-08-02T14:34:27Z", "hours": 2.0333, "text": "Devlog #13 !!FINALLY!! MAKING PCB LAYOUT -Made optimal layout for some blocks through Datasheet -Made some footprint changes -Next working on Layout for other blocks View this project on CADLAB.io ."}, {"post_id": 39363, "ts": "2026-08-02T09:19:50Z", "hours": 2.0333, "text": "Devlog #12 -fixed ERC -figured out how to make global labels"}, {"post_id": 39078, "ts": "2026-08-01T19:26:06Z", "hours": 2.1364, "text": "Devlog #11 -Fixing ERC -Having problems with connecting pins in sub sheets through labels in KiCad v10 (if anyone knows how pls let me know)"}, {"post_id": 38747, "ts": "2026-08-01T09:29:31Z", "hours": 1.6167, "text": "Devlog #10 -Assigned footpints -Changed MUX bc it was down stream not up -Next fixing ERC"}, {"post_id": 35725, "ts": "2026-07-27T11:01:41Z", "hours": 1.6697, "text": "Devlog #9 -Completed schematic!! -Next assigning footprints"}, {"post_id": 35121, "ts": "2026-07-26T11:06:12Z", "hours": 2.3836, "text": "Devlog #8 -Completed Ethernet -Did some work on SD -Next completing SD"}, {"post_id": 34768, "ts": "2026-07-25T19:11:42Z", "hours": 2.0833, "text": "Devlog #7 -Changed Power block a bit -Changed Block diagram a bit -Completed USB HUB -Next working on Ethernet"}, {"post_id": 34527, "ts": "2026-07-25T10:00:03Z", "hours": 2.1339, "text": "Devlog #6 -Changed PD chip bc of it was only 1 port (that means if I were to connect adapter to charging usb c it would only power hub, not charge device its plugged to) -Completed Power block -Completed DisplayPort -Doing USB hub next Thx everyone for supporting :D"}, {"post_id": 34254, "ts": "2026-07-24T19:57:36Z", "hours": 2.0667, "text": "Devlog #5 Did some work on power block -Wired PD chip -Wired SPI flash (for PD chip) -Wired CC ESD and overvoltage protection"}, {"post_id": 34001, "ts": "2026-07-24T12:11:36Z", "hours": 2.6667, "text": "Devlog #4 -Finished USB-C MUX block -Doing Power block next (PowerDelivery 3.0, DRP= Dual-Role Power)"}, {"post_id": 33689, "ts": "2026-07-23T20:18:41Z", "hours": 2.05, "text": "Devlog #3 -Changed and wired entire MUX bc of not supporting DP alt mode -Added some other ICs (PD, SD) -Changed video output form hdmi to DisplayPort bc I couldn’t find symbols and schematics for the ICs btw(finally figured out the lookout and timelapse thing, so expect normal lapses :D)"}, {"post_id": 33081, "ts": "2026-07-22T17:44:51Z", "hours": 2.1764, "text": "Devlog #2 -completed usb-c mux block schematic -added some other integrated circuits (had some minor problems with lookout couldn’t upload archived timelapses so I just posted empty 2h time lapse, real job took 2h 30min) see ya tommorow"}, {"post_id": 32479, "ts": "2026-07-21T18:03:44Z", "hours": 0.3169, "text": "Devlog #1 Made basic schematic hierarchy for better orientation"}]...
|
Title: USB-C 5Gbps Hub by @Stylt | Stardance
Devl Title: USB-C 5Gbps Hub by @Stylt | Stardance
Devlogs:
Devlog #1 Made basic schematic hierarchy for better orientation
Devlog #2 -completed usb-c mux block schematic -added some other integrated circuits (had some minor problems with lookout couldn’t upload archived timelapses so I just posted empty 2h time lapse, real job took 2h 30min) see ya tommorow
Devlog #3 -Changed and wired entire MUX bc of not supporting DP alt mode -Added some other ICs (PD, SD) -Changed video output form hdmi to DisplayPort bc I couldn’t find symbols and schematics for the ICs btw(finally figured out the lookout and timelapse thing, so expect normal lapses :D)
Devlog #4 -Finished USB-C MUX block -Doing Power block next (PowerDelivery 3.0, DRP= Dual-Role Power)
Devlog #5 Did some work on power block -Wired PD chip -Wired SPI flash (for PD chip) -Wired CC ESD and overvoltage protection
Devlog #6 -Changed PD chip bc of it was only 1 port (that means if I were to connect adapter to charging usb c it would only power hub, not charge device its plugged to) -Completed Power block -Completed DisplayPort -Doing USB hub next Thx everyone for supporting :D
Devlog #7 -Changed Power block a bit -Changed Block diagram a bit -Completed USB HUB -Next working on Ethernet
Devlog #8 -Completed Ethernet -Did some work on SD -Next completing SD
Devlog #9 -Completed schematic!! -Next assigning footprints
Devlog #10 -Assigned footpints -Changed MUX bc it was down stream not up -Next fixing ERC
Devlog #11 -Fixing ERC -Having problems with connecting pins in sub sheets through labels in KiCad v10 (if anyone knows how pls let me know)
Devlog #12 -fixed ERC -figured out how to make global labels
Devlog #13 !!FINALLY!! MAKING PCB LAYOUT -Made optimal layout for some blocks through Datasheet -Made some footprint changes -Next working on Layout for other blocks View this project on CADLAB.io .
Devlog #14 -optimally routed some blocks that I laid ou (5V Regulator, 3V3 Regulator, 1V2 LDO, SPI Flash, CC ESD protection IC for USB-C PD) -Next laying out other blocks -See you later :D
#Devlog 15 -Routed USB-C PD block -Searched about PD chip
#Devlog 16 Having a break bc of frustration and burnout :( -taking a pause and will be doing easier project
Ships:
This is an incomplete design im submitting it bc I don’t have time to finish it. My plan was a usb c hub that will have display port, sd card ,usb c and usb a as outputs....
|
1793004669.6631012
|
1793091069.6631012
|
|
49195
|
Frictionless by @Nikhil_jais | Stardance
|
Nikhil_jais
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T09:37:04Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What is this game about? Frictionless is a fast-paced arcade survival game where you pilot a mysterious explorer through two worlds — the depths of the ocean and the vastness of space. Dodge obstacles, collect energy, build your combo, and see how long you can keep moving. What makes it different? The world doesn’t stay the same. As you survive, the calm underwater environment gradually transforms into an unpredictable space journey, bringing new obstacles, faster movement, and a completely different atmosphere. How do you play? Move your explorer using WASD or Arrow Keys, collect glowing energy, avoid incoming obstacles, and use Space to dash when things get intense. Your goal is simple: keep moving, survive longer, and beat your high score. i hope you all are going to love it ❤️", "repo": "https://github.com/Nikhil-jais/Frictionless", "demo": "https://nikhil-jais.github.io/Frictionless/"}]...
|
[{"post_id": 69052, "ts": "202 [{"post_id": 69052, "ts": "2026-09-16T09:33:01Z", "hours": 1.1606, "text": "This is the End of our game. Frictionless for the people who love space games and tell me me the pros and cons definitely . and i also hope all are going to like it ❤️"}, {"post_id": 68616, "ts": "2026-09-15T12:27:09Z", "hours": 1.0436, "text": "Today I’ve been building and polishing the main productivity experience . especially the priority task system, focus mode, and progress tracking. I’m trying to make Frictionless feel simple without making it boring: adding rocks power points , and a chance to move your ship hope you will enjoy playing this game❤️."}, {"post_id": 68042, "ts": "2026-09-14T12:47:46Z", "hours": 1.0594, "text": "This is something I’ve been working on with whatever skills, time, and ideas I had. I didn’t have a huge team or unlimited resources behind it. I just kept building, learning, fixing things, and trying to make the idea better with every step. There’s still a lot I want to improve, but this first version represents the best I could put together with the power I had at the time. This is my work. My learning. My attempt to turn an idea into something real. And honestly, I’m just getting started. I hope you all are going to love this game ❤️"}]...
|
Title: Frictionless by @Nikhil_jais | Stardance
D Title: Frictionless by @Nikhil_jais | Stardance
Devlogs:
This is something I’ve been working on with whatever skills, time, and ideas I had. I didn’t have a huge team or unlimited resources behind it. I just kept building, learning, fixing things, and trying to make the idea better with every step. There’s still a lot I want to improve, but this first version represents the best I could put together with the power I had at the time. This is my work. My learning. My attempt to turn an idea into something real. And honestly, I’m just getting started. I hope you all are going to love this game ❤️
Today I’ve been building and polishing the main productivity experience . especially the priority task system, focus mode, and progress tracking. I’m trying to make Frictionless feel simple without making it boring: adding rocks power points , and a chance to move your ship hope you will enjoy playing this game❤️.
This is the End of our game. Frictionless for the people who love space games and tell me me the pros and cons definitely . and i also hope all are going to like it ❤️
Ships:
What is this game about? Frictionless is a fast-paced arcade survival game where you pilot a mysterious explorer through two worlds — the depths of the ocean and the vastness of space. Dodge obstacles, collect energy, build your combo, and see how long you can keep moving. What makes it different? The world doesn’t stay the same. As you survive, the calm underwater environment gradually transforms into an unpredictable space journey, bringing new obstacles, faster movement, and a completely different atmosphere. How do you play? Move your explorer using WASD or Arrow Keys, collect glowing energy, avoid incoming obstacles, and use Space to dash when things get intense. Your goal is simple: keep moving, survive longer, and beat your high score. i hope you all are going to love it ❤️...
|
1793004668.5651398
|
1793091068.5651398
|
|
44319
|
Path Traced Vulkan Engine by @DubbsPi | Stardance
|
DubbsPi
|
1
|
79.07
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-15T13:24:22Z", "hours": 55.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a made from scratch path tracer that I made using vulkan in rust. It was quite the challenge since I never had used any sort of hardware RT and wasn’t really that experienced with vulkan at the start. Luckily, although the learning curve was steep, I did manage to get far enough to make this project. There still is a lot of tweaking and changes that should be made, but it is definitely good enough to ship, hence the reason I finally chose to. There were definitely challenges making this, from GPU crashes to memory leaks, most of which have been fixed by now. For running it, it has not been tested on windows! , how well it works I don’t know. Linux works perfectly fine (or at least my machine, it should be cross compatible enough though. Even mac should work, just you guys will have to compile it and deal with bad performance)", "repo": "https://github.com/DubbsPi/vulkan-engine-v2", "demo": "https://github.com/DubbsPi/RTX-Vulkan-Engine-Rust/releases/tag/noTagHere"}]...
|
[{"post_id": 76882, "ts": "202 [{"post_id": 76882, "ts": "2026-10-04T22:37:10Z", "hours": 24.0711, "text": "Thought I might as well push one final public update. I’ve been adding features such as planets, stars, glass, NEE, and improved performance by as much as 95% in the worst case. I am starting to use this engine hopefully for my own game, so I may update it as I fix stuff, but other than that, this will probably be my final log."}, {"post_id": 68339, "ts": "2026-09-14T23:40:45Z", "hours": 4.2086, "text": "Made tracing run faster and optimizing denoiser. Ngl I kinda forgot what I spent four hours doing other than this. I think I also spent a bit of time trying to fix metals but I’m not exactly 100% sure it fixed it so…"}, {"post_id": 67041, "ts": "2026-09-13T02:43:37Z", "hours": 4.7586, "text": "Path tracing anyone? I still have to fix a bunch of bugs with jittering that are there and there is an animation bug, but that will be fixed with time. I also don’t know why the noise is so bad in some places, I have 1024 samples setup to accumulate. This is actually a good approach for me since this all runs at 3k fps, so almost instantly it converges to be near noiseless."}, {"post_id": 66758, "ts": "2026-09-12T17:25:40Z", "hours": 4.25, "text": "Optimized the tracing a ton. Basically, what I did was instead of making a BLAS for each model and letting the TLAS sort everything out, I moved to three blases since that removed most of the tlas overhead. In doing that, I created three types of objects, static (terrain), semi-dynamic, and dynamic (animated). So now with this smarter system in place stuff can be loaded/used easier than before with higher performance! The initial setup didn’t take too long for this, but it was a debugging nightmare since the blases kept moving/being stale so shadows would dupe or models were cutout and stuff."}, {"post_id": 64263, "ts": "2026-09-08T15:14:31Z", "hours": 4.6214, "text": "Got dynamic scenes (mostly) working! Now while the code is running, models can be loaded and added. Probably will have to add blas merging for the future since each model having its own is a linear compared to logarithmic cost of combining them. Combining similar shouldn’t be hard since that is actually just modifying the root of of the animation framework. I might have like a cap of 5-10 with one being static geometry and the rest clumps of models. Still have to get removal working which shouldn’t be too bad. The hardest part was lining up all of my Vec<_>s so what I might do is combine it into a struct to organize, but I’ll leave it for now since that will probably conflict with the merging. Also, I’m planning on adding multithreading for the future so fingers crossed!"}, {"post_id": 61858, "ts": "2026-09-04T23:53:41Z", "hours": 2.5428, "text": "Got a bunch of PBR added to the shaders. Now has a lot of stuff so if you export more complex materials from blender or something it can parse and render them. I do still have to get transparency working, but that is much more complex than just solids tbh. For some reason my model’s animations kinda broke and only play like 60% of the animation before looping, but that isn’t the engines fault, I probably just need to make blender behave better."}, {"post_id": 61161, "ts": "2026-09-03T23:02:02Z", "hours": 6.2597, "text": "Got models working!! Fully rigged and animated! I setup the framework to auto load any anims, and then they can be played from lets say the main with something like this: app.scene.animations[2].play(“Chop_Tree RT.001”);, so that works pretty well! I also implemented a pause/play/stop and fuzzy search since some of the anim names can be weird. Thanks to mesh2motion’s huge animation library and stuff. This model is custom textured by me, so I do own it. However, you may feel free to use it (with credit!) wherever. His name is Xenon btw"}, {"post_id": 59272, "ts": "2026-08-31T23:45:23Z", "hours": 2.2472, "text": "Got dynamic transforms working!!! You can’t see it, but that truck on the bottom is actually spinning so helicopter. This took a bit to add in, but thanks to the model system, I just had to add a transformation matrix for each one, which is done easier than said. I did have a bunch of issues with the multi bvh setup, but now that its done updating the matrices only takes about 0.02ms with the two. Might end up being more in the future with more, but definitely not bad in the slightest."}, {"post_id": 59017, "ts": "2026-08-31T16:29:39Z", "hours": 2.9919, "text": "Got something really nice working: Instancing!! Basically now, when you want to start the scene up, you just call Scene::new() and then if you want to load a model into memory, just use load_model_into_memory() and you can stamp that out without reloading the model from the disc each time. Plus I added dedicated scale/transform functions that you just call on a specific model’s id (like for the first truck I loaded, I moved and scaled it with its id of 0). Basically loading models and transforming them is near effortless. Dynamic transforms next and then probably rigging!"}, {"post_id": 58328, "ts": "2026-08-30T18:25:40Z", "hours": 4.6275, "text": "Got a ton done towards an actual engine!! Added more model formats (glb files) and the ability to load more than one at a time! Also, textures have been introduced so if you look closely you can actually see the truck has a duramax engine label (boo! cummins is better). Shadows have been improved even more, although this screenshot doesn’t really show it too much. Next thing I have to add is dynamic vertices at runtime, which will allow me to actually change geometry without restarting the engine, and then after that, model rigs! There are a couple validation errors still (so a potential memory leak), but they only appear every couple of times the program is ran, and I really couldn’t find it, so thats a later problem."}, {"post_id": 57445, "ts": "2026-08-29T16:23:54Z", "hours": 3.7739, "text": "Got some stuff done with the engine. Improved lighting with smooth normals and stuff. Also I added atmospheric scattering from one of my other shaders. Currently, the model that is loaded (although it may look not the greatest, I don’t have textures setup yet) has 8.5 million triangles and 16 million vertices. In 1440p, everything is currently running 1300 fps, with the majority of the hit coming from the scatterer as without it its a bit closer to 2300 fps."}, {"post_id": 56190, "ts": "2026-08-27T20:31:20Z", "hours": 4.0733, "text": "Got a lot more done involving obj files and refinement! Now I can change the vertices on the fly, have decent indexing of them, and have raytraced shadows. Currently, on my rtx5070, in 1440p, this 408k triangle model runs around 1500fps, so pretty decent for now. I hope to lower that soon…"}, {"post_id": 55206, "ts": "2026-08-26T19:13:31Z", "hours": 6.4922, "text": "I had a nice devlog wrote, but it didn’t fully upload QwQ. Basically, I had to lean into AI to implement RT instead of raster due to a lack of rust tutorials for that. Spent most of the time debugging a slight misordering error that produce zero errors that caused nothing to render."}, {"post_id": 41500, "ts": "2026-08-05T19:01:42Z", "hours": 4.385, "text": "Got a triangle showing! Definately took me a while, but now I fully understand (ok like 90%) the pipeline! Also, now since I worked on my minecraft shader in the past, this will definitely look pretty good in the end. My goal of doing this engine is just because when I made my shader, I was running into performance issues due to minecraft and opengl, so this way I can bypass it all and have hardware vulkan support."}]...
|
Title: Path Traced Vulkan Engine by @DubbsPi | Sta Title: Path Traced Vulkan Engine by @DubbsPi | Stardance
Devlogs:
Got a triangle showing! Definately took me a while, but now I fully understand (ok like 90%) the pipeline! Also, now since I worked on my minecraft shader in the past, this will definitely look pretty good in the end. My goal of doing this engine is just because when I made my shader, I was running into performance issues due to minecraft and opengl, so this way I can bypass it all and have hardware vulkan support.
I had a nice devlog wrote, but it didn’t fully upload QwQ. Basically, I had to lean into AI to implement RT instead of raster due to a lack of rust tutorials for that. Spent most of the time debugging a slight misordering error that produce zero errors that caused nothing to render.
Got a lot more done involving obj files and refinement! Now I can change the vertices on the fly, have decent indexing of them, and have raytraced shadows. Currently, on my rtx5070, in 1440p, this 408k triangle model runs around 1500fps, so pretty decent for now. I hope to lower that soon…
Got some stuff done with the engine. Improved lighting with smooth normals and stuff. Also I added atmospheric scattering from one of my other shaders. Currently, the model that is loaded (although it may look not the greatest, I don’t have textures setup yet) has 8.5 million triangles and 16 million vertices. In 1440p, everything is currently running 1300 fps, with the majority of the hit coming from the scatterer as without it its a bit closer to 2300 fps.
Got a ton done towards an actual engine!! Added more model formats (glb files) and the ability to load more than one at a time! Also, textures have been introduced so if you look closely you can actually see the truck has a duramax engine label (boo! cummins is better). Shadows have been improved even more, although this screenshot doesn’t really show it too much. Next thing I have to add is dynamic vertices at runtime, which will allow me to actually change geometry without restarting the engine, and then after that, model rigs! There are a couple validation errors still (so a potential memory leak), but they only appear every couple of times the program is ran, and I really couldn’t find it, so thats a later problem.
Got something really nice working: Instancing!! Basically now, when you want to start the scene up, you just call Scene::new() and then if you want to load a model into memory, just use load_model_into_memory() and you can stamp that out without reloading the model from the disc each time. Plus I added dedicated scale/transform functions that you just call on a specific model’s id (like for the first truck I loaded, I moved and scaled it with its id of 0). Basically loading models and transforming them is near effortless. Dynamic transforms next and then probably rigging!
Got dynamic transforms working!!! You can’t see it, but that truck on the bottom is actually spinning so helicopter. This took a bit to add in, but thanks to the model system, I just had to add a transformation matrix for each one, which is done easier than said. I did have a bunch of issues with the multi bvh setup, but now that its done updating the matrices only takes about 0.02ms with the two. Might end up being more in the future with more, but definitely not bad in the slightest.
Got models working!! Fully rigged and animated! I setup the framework to auto load any anims, and then they can be played from lets say the main with something like this: app.scene.animations[2].play(“Chop_Tree RT.001”);, so that works pretty well! I also implemented a pause/play/stop and fuzzy search since some of the anim names can be weird. Thanks to mesh2motion’s huge animation library and stuff. This model is custom textured by me, so I do own it. However, you may feel free to use it (with credit!) wherever. His name is Xenon btw
Got a bunch of PBR added to the shaders. Now has a lot of stuff so if you export more complex materials from blender or something it can parse and render them. I do still have to get transparency working, but that is much more complex than just solids tbh. For some reason my model’s animations kinda broke and only play like 60% of the animation before looping, but that isn’t the engines fault, I probably just need to make blender behave better.
Got dynamic scenes (mostly) working! Now while the code is running, models can be loaded and added. Probably will have to add blas merging for the future since each model having its own is a linear compared to logarithmic cost of combining them. Combining similar shouldn’t be hard since that is actually just modifying the root of of the animation framework. I might have like a cap of 5-10 with one being static geometry and the rest clumps of models. Still have to get removal working which shouldn’t be too bad. The hardest part was lining up all of my Vec<_>s so what I might do is combine it into a struct to organize, but I’ll leave it for now since that will probably conflict with the merging. Also, I’m planning on adding multithreading for the future so fingers crossed!
Optimized the tracing a ton. Basically, what I did was instead of making a BLAS for each model and letting the TLAS sort everything out, I moved to three blases since that removed most of the tlas overhead. In doing that, I created three types of objects, static (terrain), semi-dynamic, and dynamic (animated). So now with this smarter system in place stuff can be loaded/used easier than before with higher performance! The initial setup didn’t take too long for this, but it was a debugging nightmare since the blases kept moving/being stale so shadows would dupe or models were cutout and stuff.
Path tracing anyone? I still have to fix a bunch of bugs with jittering that are there and there is an animation bug, but that will be fixed with time. I also don’t know why the noise is so bad in some places, I have 1024 samples setup to accumulate. This is actually a good approach for me since this all runs at 3k fps, so almost instantly it converges to be near noiseless.
Made tracing run faster and optimizing denoiser. Ngl I kinda forgot what I spent four hours doing other than this. I think I also spent a bit of time trying to fix metals but I’m not exactly 100% sure it fixed it so…
Thought I might as well push one final public update. I’ve been adding features such as planets, stars, glass, NEE, and improved performance by as much as 95% in the worst case. I am starting to use this engine hopefully for my own game, so I may update it as I fix stuff, but other than that, this will probably be my final log.
Ships:
This is a made from scratch path tracer that I made using vulkan in rust. It was quite the challenge since I never had used any sort of hardware RT and wasn’t really that experienced with vulkan at the start. Luckily, although the learning curve was steep, I did manage to get far enough to make this project. There still is a lot of tweaking and changes that should be made, but it is definitely good enough to ship, hence the reason I finally chose to. There were definitely challenges making this, from GPU crashes to memory leaks, most of which have been fixed by now. For running it, it has not been tested on windows! , how well it works I don’t know. Linux works perfectly fine (or at least my machine, it should be cross compatible enough though. Even mac should work, just you guys will have to compile it and deal with bad performance)...
|
1793004667.385387
|
1793091067.385387
|
|
44313
|
Cube Matcher by @LCdev1234 | Stardance
|
LCdev1234
|
1
|
60.0
|
1031
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T23:19:21Z", "hours": 60.0, "multiplier": 17.28, "payout": 1031, "blessing": "neutral", "text": "This is Cube Matcher, a strategy puzzle game in wich you need to move a 3x3 cube to match a shown pattern, but the problem is that there are zombies climbing the walls that move toward you each time you take an action!! So you need to be careful about how many actions you take before having to knock them. The most challenging part of my project was making the 3D cube and the player interactions. This was becouse I decided to make the 3D system in my game from scratch, so I had to add projections, and deal with the cube coordinates of each point (that were a lot), and for the player interactions the most difficult part was knowing when the player and the cube needed to perform an interaction becouse I needed to add a fake movement (the animation) for the action not to see so quickly, so i needed to sync the animation with the real position. In the end the project turned out like I imagined from the beggining just changing some small concepts for the game to be fun and fair.", "repo": "https://github.com/LCdev1234/Cube-Matcher", "demo": "https://lcdev1234.itch.io/cube-matcher"}]...
|
[{"post_id": 74659, "ts": "202 [{"post_id": 74659, "ts": "2026-09-27T21:44:20Z", "hours": 4.0744, "text": "Devlog #12: Final devlog Added a in-game tutorial and music and sounds. I finally finished making the game!! For the last modifications I added the tutorial of the game with the instructions and example videos to show how everything works. I also added background music and sound effects, it was difficult finding the ones that fit best my game, but I was able to find some really good ones."}, {"post_id": 74159, "ts": "2026-09-26T19:58:35Z", "hours": 2.6803, "text": "Devlog #11 Finished adding the menus to the game!!"}, {"post_id": 73837, "ts": "2026-09-26T03:59:13Z", "hours": 2.8544, "text": "Devlog #10 I added the zombies actual movement to the game, each times the player makes an action the zombies take a few steps. I also added the death screen and the “Play Again” button alredy works. While adding this, I changed a name of a git commit and it merged with the one i was currently working on - I tried to undo what I had done, but I coudnt fix it, I even through I was going to have to code the last parts of the game again, but I was able to fix it using the integrate Copilot AI integrated in VS code."}, {"post_id": 73753, "ts": "2026-09-25T21:11:48Z", "hours": 8.365, "text": "Devlog #9 Added the zombies to the game. The zombies werent so difficult to code. The only problems I had were some interactions with the player or cube. One of the things that took me the most time was making the zombies follow the player when they were on the top, it turned out that one of my lines of code to keep the zombies in their column when climbing, was the problem."}, {"post_id": 72434, "ts": "2026-09-22T22:58:16Z", "hours": 4.725, "text": "Devlog #8 I added the code to check if the upper face pattern of the cube matches the one shown, and I was finally able to tried solving it myself. When doing so I notice that it is a little hard (at least for me) to solve the cube, and adding zombies as I originally planned would not make a lot of sense, so i decided it to change the idea a little bit, instead of the zombies climbing the wall and stopping them and be able to fitgh them once they were on top (the original idea), I will add the zombies so they slowly move when the player slides or rotates the cube and once the zombie is on top the player is basicly dead."}, {"post_id": 70940, "ts": "2026-09-20T02:34:15Z", "hours": 3.9314, "text": "Devlog #7 Added the sliding stickers cube mechanic. The dificult part wasn’t making the stickers change place, it was the sticker movement animation, witch took took the most hours to code. This was becouse i needed to be show a false player and sticker movement while still having the real position variables and once the animation ended record the new position."}, {"post_id": 68940, "ts": "2026-09-16T02:39:43Z", "hours": 6.1658, "text": "Devlog #6 This time, I mostly just added some small changes and fixes, some of the more important changes are: I changed the player textures to a simple white square with eyes, this was just becouse I am not good drawing and making the animations was too dificult, to make the square a little more alive, I added some squishing to its animation using code I added some invisible walls around the player so it dont fall off the cube, but I made so when the rubik cube is rotating the player could fall if not careful I also made some small fixes to some problems I find along the way while making all of this changes"}, {"post_id": 63633, "ts": "2026-09-07T15:41:05Z", "hours": 9.5733, "text": "Devlog #5 I couldn’t advance as fast with the project because of school but now I was able to make the player be able to interact with the cube (rotating it), it was a little hard specially the parts before actually making the interactions that were upgrading the collision system, because before the collision system was only “not fall down past certain y level” which means it didn’t have to see anything with the cube, with the upgraded collisions now it depends on the cube and even when its rotated it can collide normally, also I changed a little bit the jumping so now it has a little cooldown so it can’t be spammed and for rotating the cube I made it so the player needs to jump twice in less than a certain time for it to rotate. I think that the rotation interaction already works well I will next add a solving system and maybe add a new interaction mechanic with the cube."}, {"post_id": 47221, "ts": "2026-08-15T00:12:05Z", "hours": 5.6078, "text": "Devlog #4 Hi there! I took a little more time on this part of the code mainly because I added something that broke the code, and i coudnt find the evil piece of code, but I finally got it working. I just added the player on top of the cube, added some pretty much basic physics that include jumping and walking. For the walking i made it so the controls always move where the camera is viewing not the actual game coordinates, it just means that the player walks forward, backward, and to the sides no matter how the cube is rotated. I also added basic collision system which I am in the process of upgrading, once I get the collisions working better I will desing the other player animations because right now is just a idle animation replaying no matter what. Those are the main features i added aside from fixing some bugs that my code had, next I will be adding some of the main mechanics of the game (rotating the cube) so that the player can start making some actions. Thanks for reading"}, {"post_id": 44366, "ts": "2026-08-10T02:28:58Z", "hours": 4.1247, "text": "Devlog #3 I alredy added the cube textures, and divided the cube into a 3x3 grid, I also added rubiks cube-style rotations and the different color textures. I decided to give the textures that hand painted style becouse I think it seems cool!!. This ended up being more time consuming than I expected, and still needs some work. For now the code just defines the starting colors and lets me rotate the different parts of the cube freely. However I still need to make the rotation permanent and to stored in the cube colors. With this I finally finished the basics of the cube, so I can alredy start working on the player next. The player will be able to interact with the cube so I can finally start working with the real game mechanics."}, {"post_id": 43476, "ts": "2026-08-08T19:23:15Z", "hours": 4.7336, "text": "Devlog #2 I was alredy able to add textures to the 3d cube!! It was more difficult that i expected, i needed to add texture layering so the faces dont overlap each other, and I had to learn how to use mesh2d to render the image texture in the cube. There is still a little visual problem, but its not ver noticible, so I’ll leave it as is for now. My next steps will be to add the Rubik cube rotations and the real and final textures for the cube."}, {"post_id": 42246, "ts": "2026-08-06T21:18:45Z", "hours": 2.7878, "text": "Devlog #1 Hello there! i finally managed to render a 3d cube for the game i just starting working on. I know its simple for now, but next i’ll add textures and the rubik’s cube movement. The game is basically about completing a cube face with a random generated pattern while some little monsters try to stop you… Its still work in progress, and i’ll show more as the idea becomes clearer and the game takes shape."}]...
|
Title: Cube Matcher by @LCdev1234 | Stardance
Dev Title: Cube Matcher by @LCdev1234 | Stardance
Devlogs:
Devlog #1 Hello there! i finally managed to render a 3d cube for the game i just starting working on. I know its simple for now, but next i’ll add textures and the rubik’s cube movement. The game is basically about completing a cube face with a random generated pattern while some little monsters try to stop you… Its still work in progress, and i’ll show more as the idea becomes clearer and the game takes shape.
Devlog #2 I was alredy able to add textures to the 3d cube!! It was more difficult that i expected, i needed to add texture layering so the faces dont overlap each other, and I had to learn how to use mesh2d to render the image texture in the cube. There is still a little visual problem, but its not ver noticible, so I’ll leave it as is for now. My next steps will be to add the Rubik cube rotations and the real and final textures for the cube.
Devlog #3 I alredy added the cube textures, and divided the cube into a 3x3 grid, I also added rubiks cube-style rotations and the different color textures. I decided to give the textures that hand painted style becouse I think it seems cool!!. This ended up being more time consuming than I expected, and still needs some work. For now the code just defines the starting colors and lets me rotate the different parts of the cube freely. However I still need to make the rotation permanent and to stored in the cube colors. With this I finally finished the basics of the cube, so I can alredy start working on the player next. The player will be able to interact with the cube so I can finally start working with the real game mechanics.
Devlog #4 Hi there! I took a little more time on this part of the code mainly because I added something that broke the code, and i coudnt find the evil piece of code, but I finally got it working. I just added the player on top of the cube, added some pretty much basic physics that include jumping and walking. For the walking i made it so the controls always move where the camera is viewing not the actual game coordinates, it just means that the player walks forward, backward, and to the sides no matter how the cube is rotated. I also added basic collision system which I am in the process of upgrading, once I get the collisions working better I will desing the other player animations because right now is just a idle animation replaying no matter what. Those are the main features i added aside from fixing some bugs that my code had, next I will be adding some of the main mechanics of the game (rotating the cube) so that the player can start making some actions. Thanks for reading
Devlog #5 I couldn’t advance as fast with the project because of school but now I was able to make the player be able to interact with the cube (rotating it), it was a little hard specially the parts before actually making the interactions that were upgrading the collision system, because before the collision system was only “not fall down past certain y level” which means it didn’t have to see anything with the cube, with the upgraded collisions now it depends on the cube and even when its rotated it can collide normally, also I changed a little bit the jumping so now it has a little cooldown so it can’t be spammed and for rotating the cube I made it so the player needs to jump twice in less than a certain time for it to rotate. I think that the rotation interaction already works well I will next add a solving system and maybe add a new interaction mechanic with the cube.
Devlog #6 This time, I mostly just added some small changes and fixes, some of the more important changes are: I changed the player textures to a simple white square with eyes, this was just becouse I am not good drawing and making the animations was too dificult, to make the square a little more alive, I added some squishing to its animation using code I added some invisible walls around the player so it dont fall off the cube, but I made so when the rubik cube is rotating the player could fall if not careful I also made some small fixes to some problems I find along the way while making all of this changes
Devlog #7 Added the sliding stickers cube mechanic. The dificult part wasn’t making the stickers change place, it was the sticker movement animation, witch took took the most hours to code. This was becouse i needed to be show a false player and sticker movement while still having the real position variables and once the animation ended record the new position.
Devlog #8 I added the code to check if the upper face pattern of the cube matches the one shown, and I was finally able to tried solving it myself. When doing so I notice that it is a little hard (at least for me) to solve the cube, and adding zombies as I originally planned would not make a lot of sense, so i decided it to change the idea a little bit, instead of the zombies climbing the wall and stopping them and be able to fitgh them once they were on top (the original idea), I will add the zombies so they slowly move when the player slides or rotates the cube and once the zombie is on top the player is basicly dead.
Devlog #9 Added the zombies to the game. The zombies werent so difficult to code. The only problems I had were some interactions with the player or cube. One of the things that took me the most time was making the zombies follow the player when they were on the top, it turned out that one of my lines of code to keep the zombies in their column when climbing, was the problem.
Devlog #10 I added the zombies actual movement to the game, each times the player makes an action the zombies take a few steps. I also added the death screen and the “Play Again” button alredy works. While adding this, I changed a name of a git commit and it merged with the one i was currently working on - I tried to undo what I had done, but I coudnt fix it, I even through I was going to have to code the last parts of the game again, but I was able to fix it using the integrate Copilot AI integrated in VS code.
Devlog #11 Finished adding the menus to the game!!
Devlog #12: Final devlog Added a in-game tutorial and music and sounds. I finally finished making the game!! For the last modifications I added the tutorial of the game with the instructions and example videos to show how everything works. I also added background music and sound effects, it was difficult finding the ones that fit best my game, but I was able to find some really good ones.
Ships:
This is Cube Matcher, a strategy puzzle game in wich you need to move a 3x3 cube to match a shown pattern, but the problem is that there are zombies climbing the walls that move toward you each time you take an action!! So you need to be careful about how many actions you take before having to knock them. The most challenging part of my project was making the 3D cube and the player interactions. This was becouse I decided to make the 3D system in my game from scratch, so I had to add projections, and deal with the cube coordinates of each point (that were a lot), and for the player interactions the most difficult part was knowing when the player and the cube needed to perform an interaction becouse I needed to add a fake movement (the animation) for the action not to see so quickly, so i needed to sync the animation with the real position. In the end the project turned out like I imagined from the beggining just changing some small concepts for the game to be fun and fair....
|
1793004666.1912394
|
1793091066.1912394
|
|
44309
|
SnowPad by @leonjohns | Stardance
|
leonjohns
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T02:53:28Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made a macropad named the snowpad, which consists of 12 keys, an OLED display and an RGB backlight. The challenging part of this project was definitely getting the measurement right the first time; I had to check the measurement of screws, switches and other components through many sources. I am proud to have gained valuable experience in KiCad and Fusion 360 while working on this project. After shipping this project, I plan to expand the firmware to support a built in timer.", "repo": "https://github.com/leonjohns-dev/SnowPad", "demo": ""}]...
|
[{"post_id": 75436, "ts": "202 [{"post_id": 75436, "ts": "2026-09-30T02:44:18Z", "hours": 0.4161, "text": "Finished After week of waiting my parts came through and I have finished assembling it, it was a bit bad as my MCU that came with the kit stopped working half way through so I had to switch to another one but it turned out pretty cool."}, {"post_id": 45934, "ts": "2026-08-12T18:37:04Z", "hours": 1.0503, "text": "Entry #4 -I am finally done with the PCB and the CAD for the pad -I tried creating the code for the pad. I first tried using QMK, which proved really difficult since there is no keyboard layout that matches my board -Now I am switching to KMK, but KMK through the POG configurator requires a board with CircuitPython, which I currently don’t have"}, {"post_id": 45522, "ts": "2026-08-12T02:04:06Z", "hours": 10.9767, "text": "Entry #3 I have continued my work on the macro pad, in these hours I have redone the wiring for the pcb as I had not used the copper pour for gnd, now the wiring is not that messy I have also started on my case on fusion 360"}, {"post_id": 42356, "ts": "2026-08-07T01:11:30Z", "hours": 6.6561, "text": "Entry #2 I have finished the pcb"}, {"post_id": 41539, "ts": "2026-08-05T20:12:32Z", "hours": 1.4022, "text": "Entry #1 I have made the schematic for my hackpad. I have come to a setup with a 4 by 3 switch matrix, RGB light, OLED display and a rotary encoder. This setup uses the max GPIO available on the Xiao, now onto the PCB"}]...
|
Title: SnowPad by @leonjohns | Stardance
Devlogs: Title: SnowPad by @leonjohns | Stardance
Devlogs:
Entry #1 I have made the schematic for my hackpad. I have come to a setup with a 4 by 3 switch matrix, RGB light, OLED display and a rotary encoder. This setup uses the max GPIO available on the Xiao, now onto the PCB
Entry #2 I have finished the pcb
Entry #3 I have continued my work on the macro pad, in these hours I have redone the wiring for the pcb as I had not used the copper pour for gnd, now the wiring is not that messy I have also started on my case on fusion 360
Entry #4 -I am finally done with the PCB and the CAD for the pad -I tried creating the code for the pad. I first tried using QMK, which proved really difficult since there is no keyboard layout that matches my board -Now I am switching to KMK, but KMK through the POG configurator requires a board with CircuitPython, which I currently don’t have
Finished After week of waiting my parts came through and I have finished assembling it, it was a bit bad as my MCU that came with the kit stopped working half way through so I had to switch to another one but it turned out pretty cool.
Ships:
I have made a macropad named the snowpad, which consists of 12 keys, an OLED display and an RGB backlight. The challenging part of this project was definitely getting the measurement right the first time; I had to check the measurement of screws, switches and other components through many sources. I am proud to have gained valuable experience in KiCad and Fusion 360 while working on this project. After shipping this project, I plan to expand the firmware to support a built in timer....
|
1793004665.000789
|
1793091065.000789
|
|
44293
|
Frictionless by @vanshikagera | Stardance
|
vanshikagera
|
1
|
3.5
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T15:35:28Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did I make? I made Deadline Decider , aka AM I COOKED? XD — a little web app for those moments when you look at your workload and have absolutely no idea if you’re actually going to finish it 😭. You put in how much work you have, how much you’ve already done, how much time you have left, how many hours you can work, and your usual speed. It then does the math for you and tells you how much you need to do per day/hour, how long you’d need at your current pace, and whether you’re fine, getting tight, in crunch time, or… yeah… cooked 💀. I also made it work with different units like pages, problems, chapters, words, etc. :) What was challenging? Honestly, getting the actual calculator logic right was probably the hardest part because there are SO many little things that can go wrong 😭. I had to think about things like what happens if someone enters zero, finishes more work than they started with, has basically no time left, or puts in unrealistic numbers. Then there was the whole process of making the UI actually feel good instead of looking like a random calculator from 2008 XD. Getting everything to build, deploy, and actually work on Vercel also gave me a few ✨character development✨ moments. What am I proud of? I’m probably most proud that I actually took a random “wait… what if I made a thing for this?” idea and turned it into a real, usable project :D. It’s not just a calculator that spits out numbers — it turns a vague “omg I have SO MUCH TO DO” into something you can actually understand and act on. I’m also really happy with how the UI turned out because I wanted it to feel fun and slightly unserious while still being something you’d genuinely use. Anddd seeing it actually live on the internet after all the debugging was definitely a moment 😭 :) What should people know so they can test my project? Please actually try to break it XD . Enter some normal numbers first, like 100 total, 20 completed, 5 days left, 4 hours/day, and a speed of 5 per hour, then hit Calculate my fate . Try different units, change the numbers around, and definitely try weird/invalid inputs too because I built validation for those. You can also hit Reset to start over. Basically, give it your most chaotic deadline situation and see whether you’re fine, getting tight, in crunch time, or completely cooked 💀.", "repo": "https://github.com/Vanshika-Gera/deadline-decider", "demo": "https://deadline-decider.vercel.app/?utm_source=chatgpt.com"}]...
|
[{"post_id": 71607, "ts": "202 [{"post_id": 71607, "ts": "2026-09-21T04:51:01Z", "hours": 0.5036, "text": "3 QOL IMPROVEMENTS Daily workload calculationIt takes the amount of work left and deadline and tells the student how much they need to complete per day.Hourly workload calculationIt converts that workload into how much they need to complete per hour, based on the hours they can work each day.Pace/feasibility verdictIt compares the student’s required pace with their estimated normal pace and tells them whether they’re fine, getting tight, in crunch time, or cooked."}, {"post_id": 70133, "ts": "2026-09-18T15:12:09Z", "hours": 1.0067, "text": "Built and polished Deadline Decider, a small web app that turns deadline panic into actual numbers.The idea came from a simple problem: when students have a lot of work left and not much time, “I have so much to do” isn’t very useful. I wanted a tool that could take the workload, time available, and working speed and immediately tell you what pace you’d actually need.HOPE YOU GUYS LIKE IT :0"}, {"post_id": 69190, "ts": "2026-09-16T15:49:27Z", "hours": 0.3575, "text": "added four possible responses you can get! (though there might be more if you try to find then ;)) trying to make the site more elaborate!"}, {"post_id": 68997, "ts": "2026-09-16T05:52:01Z", "hours": 0.5164, "text": "here’s the initial interface :) you can put your work and pace and find out how you can improve your pace accordingly! :)"}, {"post_id": 68562, "ts": "2026-09-15T10:12:22Z", "hours": 0.8522, "text": "AM I COOKED? 🍳Started building a little tool that takes your workload + deadline and tells you whether you’re actually going to finish or you’re cooked"}]...
|
Title: Frictionless by @vanshikagera | Stardance
Title: Frictionless by @vanshikagera | Stardance
Devlogs:
AM I COOKED? 🍳Started building a little tool that takes your workload + deadline and tells you whether you’re actually going to finish or you’re cooked
here’s the initial interface :) you can put your work and pace and find out how you can improve your pace accordingly! :)
added four possible responses you can get! (though there might be more if you try to find then ;)) trying to make the site more elaborate!
Built and polished Deadline Decider, a small web app that turns deadline panic into actual numbers.The idea came from a simple problem: when students have a lot of work left and not much time, “I have so much to do” isn’t very useful. I wanted a tool that could take the workload, time available, and working speed and immediately tell you what pace you’d actually need.HOPE YOU GUYS LIKE IT :0
3 QOL IMPROVEMENTS Daily workload calculationIt takes the amount of work left and deadline and tells the student how much they need to complete per day.Hourly workload calculationIt converts that workload into how much they need to complete per hour, based on the hours they can work each day.Pace/feasibility verdictIt compares the student’s required pace with their estimated normal pace and tells them whether they’re fine, getting tight, in crunch time, or cooked.
Ships:
What did I make? I made Deadline Decider , aka AM I COOKED? XD — a little web app for those moments when you look at your workload and have absolutely no idea if you’re actually going to finish it 😭. You put in how much work you have, how much you’ve already done, how much time you have left, how many hours you can work, and your usual speed. It then does the math for you and tells you how much you need to do per day/hour, how long you’d need at your current pace, and whether you’re fine, getting tight, in crunch time, or… yeah… cooked 💀. I also made it work with different units like pages, problems, chapters, words, etc. :) What was challenging? Honestly, getting the actual calculator logic right was probably the hardest part because there are SO many little things that can go wrong 😭. I had to think about things like what happens if someone enters zero, finishes more work than they started with, has basically no time left, or puts in unrealistic numbers. Then there was the whole process of making the UI actually feel good instead of looking like a random calculator from 2008 XD. Getting everything to build, deploy, and actually work on Vercel also gave me a few ✨character development✨ moments. What am I proud of? I’m probably most proud that I actually took a random “wait… what if I made a thing for this?” idea and turned it into a real, usable project :D. It’s not just a calculator that spits out numbers — it turns a vague “omg I have SO MUCH TO DO” into something you can actually understand and act on. I’m also really happy with how the UI turned out because I wanted it to feel fun and slightly unserious while still being something you’d genuinely use. Anddd seeing it actually live on the internet after all the debugging was definitely a moment 😭 :) What should people know so they can test my project? Please actually try to break it XD . Enter some normal numbers first, like 100 total, 20 completed, 5 days left, 4 hours/day, and a speed of 5 per hour, then hit Calculate my fate . Try different units, change the numbers around, and definitely try weird/invalid inputs too because I built validation for those. You can also hit Reset to start over. Basically, give it your most chaotic deadline situation and see whether you’re fine, getting tight, in crunch time, or completely cooked 💀....
|
1793004663.874909
|
1793091063.874909
|
|
40537
|
London Directions by @Tallini | Stardance
|
Tallini
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-26T06:55:29Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my website to calculate the fastest route and travel time between 2 stations on the London Underground", "repo": "https://github.com/leotallini/London-Tube-Directions", "demo": "https://london-tube-directions-rrhx.onrender.com/"}]...
|
[{"post_id": 55525, "ts": "202 [{"post_id": 55525, "ts": "2026-08-27T13:04:20Z", "hours": 7.0789, "text": "Finished UI for Website"}, {"post_id": 35919, "ts": "2026-07-27T17:50:16Z", "hours": 2.5117, "text": "Initial Journey Planner finished"}, {"post_id": 35747, "ts": "2026-07-27T11:54:44Z", "hours": 0.3217, "text": "Started work on using the TfL API"}]...
|
Title: London Directions by @Tallini | Stardance
Title: London Directions by @Tallini | Stardance
Devlogs:
Started work on using the TfL API
Initial Journey Planner finished
Finished UI for Website
Ships:
This is my website to calculate the fastest route and travel time between 2 stations on the London Underground...
|
1793004662.9921722
|
1793091062.9921722
|
|
34521
|
StarTV by @Zaloguj12 | Stardance
|
Zaloguj12
|
1
|
7.0
|
24
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T19:49:50Z", "hours": 7.0, "multiplier": 2.81, "payout": 24, "blessing": "neutral", "text": "StarTV is a basic video streaming site, it uses direct file serving using FastAPI with an R2 Bucket Storage, it is deployed using Vercel. For now there are only 12 videos with more coming in the future, since it serves the videos directly it can be worse on slower internet or metered connections. It is a fun simple project to learn how APIs work and to learn how video streaming works. This was a fun project. I will maintain this for as long as I will be able to.", "repo": "https://github.com/zaloguj12/StarTV", "demo": "https://star-tv-ten.vercel.app/"}]...
|
[{"post_id": 72372, "ts": "202 [{"post_id": 72372, "ts": "2026-09-22T19:37:40Z", "hours": 0.4114, "text": "added a few videos"}, {"post_id": 63033, "ts": "2026-09-06T16:34:07Z", "hours": 0.58, "text": "i added a button to view every video as a json, and i updated the readme"}, {"post_id": 49950, "ts": "2026-08-18T22:57:06Z", "hours": 0.56, "text": "i added a quick fox section to the side to fill in the space that was left on the right. i added the invertocat github icon leading to the source. will probably focus on adding more videos before shipping"}, {"post_id": 49933, "ts": "2026-08-18T22:03:10Z", "hours": 0.3319, "text": "i scrapped the like and dislike buttons, i replaced them with a suggest button leading to my github pages issues. i added a few more videos to the site from my yt homepage. if you have any ideas to add as the videos then feel free to drop them in the comments or at https://github.com/zaloguj12/StarTV/issues"}, {"post_id": 44772, "ts": "2026-08-10T19:30:38Z", "hours": 0.5736, "text": "so dont have any reveleant screenshots, but moved storage to r2 and deployment is now by vercel"}, {"post_id": 42622, "ts": "2026-08-07T13:20:49Z", "hours": 2.3411, "text": "another dev log? i decided to use fastapi static files to “send” the videos to the users, now also each video and info about it is stored in a videos.json having its own id, title and file path, an http GET is sent to the api, to fetch a video selected with random.choice , the json is loaded and then serves valuable info that JS uses to update the src of the video player, but also to update <p></p> for title displaying, now also the whole server can be started from a single terminal so no need for 2 anymore. next up i think about implementing a system for liking/disliking videos, based on the reddit upvote/downvote system, so instead of two counters, there will be one. the little problem is still the videos/ folder being local which means, each user has to get their own .mp4 files but also update the videos.json with any new/updated info, i will look forward to making this system easier in the future"}, {"post_id": 30427, "ts": "2026-07-17T23:21:59Z", "hours": 2.2364, "text": "i started with a basic site, just a logo, and a video player. basic test are going good so far. but im not looking forward to implementing the random video feature as it will require JS🤢"}]...
|
Title: StarTV by @Zaloguj12 | Stardance
Devlogs:
Title: StarTV by @Zaloguj12 | Stardance
Devlogs:
i started with a basic site, just a logo, and a video player. basic test are going good so far. but im not looking forward to implementing the random video feature as it will require JS🤢
another dev log? i decided to use fastapi static files to “send” the videos to the users, now also each video and info about it is stored in a videos.json having its own id, title and file path, an http GET is sent to the api, to fetch a video selected with random.choice , the json is loaded and then serves valuable info that JS uses to update the src of the video player, but also to update <p></p> for title displaying, now also the whole server can be started from a single terminal so no need for 2 anymore. next up i think about implementing a system for liking/disliking videos, based on the reddit upvote/downvote system, so instead of two counters, there will be one. the little problem is still the videos/ folder being local which means, each user has to get their own .mp4 files but also update the videos.json with any new/updated info, i will look forward to making this system easier in the future
so dont have any reveleant screenshots, but moved storage to r2 and deployment is now by vercel
i scrapped the like and dislike buttons, i replaced them with a suggest button leading to my github pages issues. i added a few more videos to the site from my yt homepage. if you have any ideas to add as the videos then feel free to drop them in the comments or at https://github.com/zaloguj12/StarTV/issues
i added a quick fox section to the side to fill in the space that was left on the right. i added the invertocat github icon leading to the source. will probably focus on adding more videos before shipping
i added a button to view every video as a json, and i updated the readme
added a few videos
Ships:
StarTV is a basic video streaming site, it uses direct file serving using FastAPI with an R2 Bucket Storage, it is deployed using Vercel. For now there are only 12 videos with more coming in the future, since it serves the videos directly it can be worse on slower internet or metered connections. It is a fun simple project to learn how APIs work and to learn how video streaming works. This was a fun project. I will maintain this for as long as I will be able to....
|
1793004661.85427
|
1793091061.85427
|
|
44244
|
Lost&Found by @yeagerist | Stardance
|
yeagerist
|
3
|
23.0
|
262
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T03:44:47Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "this is a tribute to my lost&found with a dead last ship with small update", "repo": "https://github.com/Aarjal/The_Bug", "demo": "https://the-bug.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-25T10:20:33Z", "hours": 5.0, "multiplier": 11.08, "payout": 59, "blessing": "neutral", "text": "This is my second ship to my project lost&found with little css tweaks and UI/UX enhancements as per the reviews from first ship. This web app is basically a platform for people to perform actions regarding lost items. (either seek their lost item or post a found item) The basic workflow is : -Sign up with a random acc and post a lost item in feed -Sign up with a diff random acc and post a related found item in feed -The system will create a match between those two items and let you choose wat to do furthur with it. As per last ship reviews, One important suggestion i found was to include a demo video of whole workflow in my README and this time I’ve not missed that out dw. That might help yall a lot in this ship since signing in and our repeatedly is troublesome. Looking forward to hear from you guys. (Suggestions are immensely appreciated😋)", "repo": "https://github.com/Aarjal/The_Bug", "demo": "https://the-bug.vercel.app/"}, {"ship_num": 3, "ts": "2026-09-14T09:31:21Z", "hours": 16.0, "multiplier": 12.39, "payout": 203, "blessing": "neutral", "text": "I built Lost&Found mainly with the aim to make finding lost belongings a little less painful. Yes, it was a result of some disappointing personal experience. Instead of having to search through different media groups or hope someone sees your post, you can report a lost or found item here and let the system look for possible matches. The main part I’m proud of is the matching system. Lost and found posts are compared using things like category, description, location and dates to find possible matches, and users can get notified when one is found. I also added the usual stuff around it like authentication, notifications, resolving recovered cases, an admin dashboard, and as always a light/dark mode. It might seem quite like “Okay now how the hell am i supposed to use it then?” Here’s something important. A quick way to test it: create an account → make a Lost Item post → create another account →create a matching Found Item post with similar details → check the notifications/matches → if it’s the right item, you can resolve the case. (You can also try the flow the other way around by posting a found item first.) The backend is hosted through render and may take a LITTLE time to load but please be patient for a few seconds and the flow’s gonna go as mentioned above", "repo": "https://github.com/Aarjal/The_Bug", "demo": "https://the-bug.vercel.app/"}]...
|
[{"post_id": 80173, "ts": "202 [{"post_id": 80173, "ts": "2026-10-16T15:34:34Z", "hours": 1.5981, "text": "I got idea from some other open source web-app and added a new “Recent activity feature in my admin dashboard”. Here’s also the recent data of what ya’ll have been doing ><"}, {"post_id": 73264, "ts": "2026-09-24T18:16:20Z", "hours": 1.6661, "text": "Rewrote the READMe from sctrach and tuned up the CSS a bit cus they asked ¯ _ (ツ)_/¯"}, {"post_id": 70220, "ts": "2026-09-18T18:51:33Z", "hours": 0.8733, "text": "it seems the css wasnt responding well in feed page after the hosting. took me some time but i’ve fixed the code and it works as expected now :)"}, {"post_id": 68774, "ts": "2026-09-15T18:48:39Z", "hours": 0.4542, "text": "just improved the Readme a bit nothing much nothing more showed for review and now adjusted as per the recommendations. Now the next thing is finally the shipping of project Optimistic to hear your says on this😄😄"}, {"post_id": 68246, "ts": "2026-09-14T19:27:07Z", "hours": 2.3539, "text": "I spent some time cleaning up the frontend code and styles to make the app faster and easier to maintain. Split up bloated pages: Broke down massive files like Item Detail, Recovery Requests, Feed, and Navbar into smaller subcomponents (modals, media previews, contact info, filters). Now editing one UI block won’t risk breaking the whole page. Fixed React state quirks: Switched Feed categories to derive directly with useMemo to skip extra re-renders, fixed initial edit form state, and added cleanup guards on API calls so navigating away doesn’t trigger memory leak warnings. Cleaned up the CSS: Replaced duplicated skeleton loaders and empty-state styles across 5 files with shared rules in index.css. Swapped hardcoded colors and overlays across all stylesheets for theme tokens so dark and light modes behave properly everywhere."}, {"post_id": 67507, "ts": "2026-09-13T17:04:49Z", "hours": 1.1086, "text": "Finally got the main workflow of Lost&Found working! The posting flow and matching system are connected now, so users can actually post lost or found items and the backend can go through the matching logic to find possible matches. I also finished up the remaining bits around resolving cases, notifications, and the other backend connections. I’ve now made the project deployable too. The frontend is hosted on Vercel and the backend is running on Render, and I’ve connected the two so the live app can actually communicate with the backend. There are obviously still things I can improve later, but for now the main workflow is working properly and the project is finally ready to ship."}, {"post_id": 66169, "ts": "2026-09-11T20:27:49Z", "hours": 1.7531, "text": "Been working on connecting the rest of the backend now. I got the resolving part done so when someone gets their item back, they can mark the case as resolved and it gets taken out of the active feed instead of sitting there like it’s still available. I also worked on the privacy policy agreement during signup, making sure that gets properly handled instead of just being a checkbox that does nothing. Apart from that I’ve connected the remaining reports, notifications, matching and user posts so they all actually talk to the backend properly. Most of the main stuff is pretty much done now, just a few small things left to fix and test. After that it should finally be ready to ship. Next devlog is basically going to be getting everything ready for deployment😋"}, {"post_id": 66062, "ts": "2026-09-11T17:05:13Z", "hours": 2.1011, "text": "FINALLLLYY I’ve worked on the matching system. This is what the whole app was all about tbh. The backend compares lost and found posts instead of just showing everything as a possible match. It looks at things like the item category, description/details, location, and dates, so a lost wallet and a found wallet in a completely different place or with an impossible date won’t just get treated the same. I’m also working on the backend logic that calculates these matches and sends the relevant results back to the frontend. A certain kinda post and match is successfully tested and its GREEN > < but there’s still some testing to do with different combinations of posts and I’m not confident about it yet :’("}, {"post_id": 65444, "ts": "2026-09-10T16:08:19Z", "hours": 0.9175, "text": "I’ve started working more on the backend! This time I focused on the lost and found reporting system, making sure the reports actually get sent through the API and saved properly in MongoDB. Each report is linked to the user who created it, along with things like the category, description, location, date, and image info. I also added some validation so the backend doesn’t just accept whatever the frontend sends. There were a few annoying little issues between the form, authentication, API and database, but I’ve got the main flow working now."}, {"post_id": 64928, "ts": "2026-09-09T17:25:26Z", "hours": 1.2067, "text": "This time I worked on adding light and dark mode. Previously the button was just sitting there doing nothing. Now the app can adapt to the user’s system theme instead of forcing them to pick one manually. If someone has their device set to dark mode, Lost&Found can follow that preference, while still giving them the option to switch between light and dark mode themselves. Still doing some small tweaks here and there, but this might be the final goodbye to frontend now"}, {"post_id": 64676, "ts": "2026-09-09T08:28:09Z", "hours": 1.2125, "text": "Today I worked on the admin dashboard. The idea behind it is to give me a simple overview of what’s happening across the platform instead of having to dig through individual reports. It includes stats for total lost reports, found reports, resolved cases, recovery rate, average resolution time, and the most common item categories. It doesn’t look the best but works for now.."}, {"post_id": 64320, "ts": "2026-09-08T16:38:23Z", "hours": 1.1492, "text": "Okay the progress is I made a few changes and improvements across the app to make the main user flow feel more complete. Up untill now was just the frontend part. I’ve also started working on the backend side of things, connecting the frontend features with the actual application logic and getting the necessary API functionality in place. There’s still quite a bit to connect and test, but the project is gradually moving from just having separate features to having everything work together as one proper application."}, {"post_id": 50954, "ts": "2026-08-20T12:54:52Z", "hours": 0.9122, "text": "I spent this session working on more of the Lost&Found frontend. I worked on the news feed, the UI for reporting both lost and found items, and the notifications frontend. One thing I also noticed with Stardance: when I linked my other Hackatime projects (i was working on separate directories for client and server side) to this project, their tracked time got added to the time shown on my previous devlog. My first devlog originally showed around 1 hour, but after linking those projects it changed to 6h . It didn’t work like that previously on Flavortown. Other than that, the frontend is coming together and I’m getting closer to having the main Lost → Match → Notification flow fully connected."}, {"post_id": 41398, "ts": "2026-08-05T16:21:00Z", "hours": 6.0625, "text": "I’m working on a web-app which I’ve named ‘Lost&Found’. As the name suggests, it’s a community help oriented, supportive, efficient and easy to use application which people can hop onto to search for their lost belongings. The idea is to create match between lost items and found items based on their descriptions and filters to finally get a confidence match score of whether the item is actually the one the user is looking for ( basically checking if lost-item = found-item ) For now, the actual countable work i’ve done is created a few icons for the web_app and finalised on one which is followed by same favicon."}]...
|
Title: Lost&Found by @yeagerist | Stardance
D Title: Lost&Found by @yeagerist | Stardance
Devlogs:
I’m working on a web-app which I’ve named ‘Lost&Found’. As the name suggests, it’s a community help oriented, supportive, efficient and easy to use application which people can hop onto to search for their lost belongings. The idea is to create match between lost items and found items based on their descriptions and filters to finally get a confidence match score of whether the item is actually the one the user is looking for ( basically checking if lost-item = found-item ) For now, the actual countable work i’ve done is created a few icons for the web_app and finalised on one which is followed by same favicon.
I spent this session working on more of the Lost&Found frontend. I worked on the news feed, the UI for reporting both lost and found items, and the notifications frontend. One thing I also noticed with Stardance: when I linked my other Hackatime projects (i was working on separate directories for client and server side) to this project, their tracked time got added to the time shown on my previous devlog. My first devlog originally showed around 1 hour, but after linking those projects it changed to 6h . It didn’t work like that previously on Flavortown. Other than that, the frontend is coming together and I’m getting closer to having the main Lost → Match → Notification flow fully connected.
Okay the progress is I made a few changes and improvements across the app to make the main user flow feel more complete. Up untill now was just the frontend part. I’ve also started working on the backend side of things, connecting the frontend features with the actual application logic and getting the necessary API functionality in place. There’s still quite a bit to connect and test, but the project is gradually moving from just having separate features to having everything work together as one proper application.
Today I worked on the admin dashboard. The idea behind it is to give me a simple overview of what’s happening across the platform instead of having to dig through individual reports. It includes stats for total lost reports, found reports, resolved cases, recovery rate, average resolution time, and the most common item categories. It doesn’t look the best but works for now..
This time I worked on adding light and dark mode. Previously the button was just sitting there doing nothing. Now the app can adapt to the user’s system theme instead of forcing them to pick one manually. If someone has their device set to dark mode, Lost&Found can follow that preference, while still giving them the option to switch between light and dark mode themselves. Still doing some small tweaks here and there, but this might be the final goodbye to frontend now
I’ve started working more on the backend! This time I focused on the lost and found reporting system, making sure the reports actually get sent through the API and saved properly in MongoDB. Each report is linked to the user who created it, along with things like the category, description, location, date, and image info. I also added some validation so the backend doesn’t just accept whatever the frontend sends. There were a few annoying little issues between the form, authentication, API and database, but I’ve got the main flow working now.
FINALLLLYY I’ve worked on the matching system. This is what the whole app was all about tbh. The backend compares lost and found posts instead of just showing everything as a possible match. It looks at things like the item category, description/details, location, and dates, so a lost wallet and a found wallet in a completely different place or with an impossible date won’t just get treated the same. I’m also working on the backend logic that calculates these matches and sends the relevant results back to the frontend. A certain kinda post and match is successfully tested and its GREEN > < but there’s still some testing to do with different combinations of posts and I’m not confident about it yet :’(
Been working on connecting the rest of the backend now. I got the resolving part done so when someone gets their item back, they can mark the case as resolved and it gets taken out of the active feed instead of sitting there like it’s still available. I also worked on the privacy policy agreement during signup, making sure that gets properly handled instead of just being a checkbox that does nothing. Apart from that I’ve connected the remaining reports, notifications, matching and user posts so they all actually talk to the backend properly. Most of the main stuff is pretty much done now, just a few small things left to fix and test. After that it should finally be ready to ship. Next devlog is basically going to be getting everything ready for deployment😋
Finally got the main workflow of Lost&Found working! The posting flow and matching system are connected now, so users can actually post lost or found items and the backend can go through the matching logic to find possible matches. I also finished up the remaining bits around resolving cases, notifications, and the other backend connections. I’ve now made the project deployable too. The frontend is hosted on Vercel and the backend is running on Render, and I’ve connected the two so the live app can actually communicate with the backend. There are obviously still things I can improve later, but for now the main workflow is working properly and the project is finally ready to ship.
I spent some time cleaning up the frontend code and styles to make the app faster and easier to maintain. Split up bloated pages: Broke down massive files like Item Detail, Recovery Requests, Feed, and Navbar into smaller subcomponents (modals, media previews, contact info, filters). Now editing one UI block won’t risk breaking the whole page. Fixed React state quirks: Switched Feed categories to derive directly with useMemo to skip extra re-renders, fixed initial edit form state, and added cleanup guards on API calls so navigating away doesn’t trigger memory leak warnings. Cleaned up the CSS: Replaced duplicated skeleton loaders and empty-state styles across 5 files with shared rules in index.css. Swapped hardcoded colors and overlays across all stylesheets for theme tokens so dark and light modes behave properly everywhere.
just improved the Readme a bit nothing much nothing more showed for review and now adjusted as per the recommendations. Now the next thing is finally the shipping of project Optimistic to hear your says on this😄😄
it seems the css wasnt responding well in feed page after the hosting. took me some time but i’ve fixed the code and it works as expected now :)
Rewrote the READMe from sctrach and tuned up the CSS a bit cus they asked ¯ _ (ツ)_/¯
I got idea from some other open source web-app and added a new “Recent activity feature in my admin dashboard”. Here’s also the recent data of what ya’ll have been doing ><
Ships:
I built Lost&Found mainly with the aim to make finding lost belongings a little less painful. Yes, it was a result of some disappointing personal experience. Instead of having to search through different media groups or hope someone sees your post, you can report a lost or found item here and let the system look for possible matches. The main part I’m proud of is the matching system. Lost and found posts are compared using things like category, description, location and dates to find possible matches, and users can get notified when one is found. I also added the usual stuff around it like authentication, notifications, resolving recovered cases, an admin dashboard, and as always a light/dark mode. It might seem quite like “Okay now how the hell am i supposed to use it then?” Here’s something important. A quick way to test it: create an account → make a Lost Item post → create another account →create a matching Found Item post with similar details → check the notifications/matches → if it’s the right item, you can resolve the case. (You can also try the flow the other way around by posting a found item first.) The backend is hosted through render and may take a LITTLE time to load but please be patient for a few seconds and the flow’s gonna go as mentioned above
This is my second ship to my project lost&found with little css tweaks and UI/UX enhancements as per the reviews from first ship. This web app is basically a platform for people to perform actions regarding lost items. (either seek their lost item or post a found item) The basic workflow is : -Sign up with a random acc and post a lost item in feed -Sign up with a diff random acc and post a related found item in feed -The system will create a match between those two items and let you choose wat to do furthur with it. As per last ship reviews, One important suggestion i found was to include a demo video of whole workflow in my README and this time I’ve not missed that out dw. That might help yall a lot in this ship since signing in and our repeatedly is troublesome. Looking forward to hear from you guys. (Suggestions are immensely appreciated😋)
this is a tribute to my lost&found with a dead last ship with small update...
|
1793004660.6351345
|
1793091060.6351345
|
|
25672
|
NeoOS by @WilGulf | Stardance
|
WilGulf
|
1
|
130.63
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T16:36:40Z", "hours": 118.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So I made my own os “NeoOS”, this project was started not long after the release of the macbook neo and cause of that the os got it’s name. Testing is pretty easy, just make sure you have qemu installed with the correct cpu architecture. The project has become much bigger than I thought when I started it, I just could not stop implementing more features. And the most challenging part must be the hardware interaction, like reading from a disk by sending commands in hex. The documentation found for how cpus/ata disks/ram and all works are so hard to understand but that may be because it is not a simple thing. So when testing I want you to know that even though there aren’t many commands the kernel is still doing so much work not seen and the kernel is also what took most hours on this project. Lastly I hope that someone with all documentation provided writes their own program for NeoOS, I would love to see what other people could do with my OS.", "repo": "https://github.com/WilGulf/NeoOS", "demo": "https://github.com/WilGulf/NeoOS/releases/tag/1.1.0"}]...
|
[{"post_id": 74057, "ts": "202 [{"post_id": 74057, "ts": "2026-09-26T16:34:52Z", "hours": 9.7725, "text": "Devblog 22 The review of NeoOS found some problems with the filesystem commands and I took some time to fix them. Now the commands know where they are run and you can move around with cd. The second thing for this devblog is that I got multi disk support so now you can have up to 4 harddrives attached with writing/reading working on all of them , and that took some interractions with the ata ports but I finally got it working. –WilGulf"}, {"post_id": 69740, "ts": "2026-09-17T18:05:34Z", "hours": 2.8608, "text": "Devblog 21 The review is taking ages, and I couldn’t leave NeoOS. So I of course continued with fixes and features. The big new thing in this devblog is the filesystem: NeoFS, I have done major changes to the design like how a free block is found which greatly improves performance. And many safeguards were added to reading/writing to the filesystem. I also updated the host fstools used to create the filesystem on a drive to support arguments with options, easier to use now. – WilGulf"}, {"post_id": 63661, "ts": "2026-09-07T16:18:42Z", "hours": 1.5858, "text": "Devblog 20 Final touches and logging the remaining time before shipping. I hope I have fixed all small bugs and made the libraries easy to use in new C programs. I also created some small new programs to show all functions in the kernel. Thats all for now and I hope to get to ship soon. –WilGulf"}, {"post_id": 63163, "ts": "2026-09-06T20:16:36Z", "hours": 1.6142, "text": "Devblog 19 Not as big of a update now, but I just wanted to show of my new readdir implementation. That is then used by list with some coloring, all are green cause there is only executables in /execs. – WilGulf"}, {"post_id": 63079, "ts": "2026-09-06T17:50:19Z", "hours": 9.9825, "text": "Devblog 18 So close to going over 10h however I managed to fix the bug. So a missing feature has been writing to the disk and not only read it. But the current file system was fat16 and the attempts I have made to implement writing has failed. What is the logical thing to do in this scenario, well I wrote my own filesystem: NeoFS. It is not feature rich compared to fat16 but that was why I could make it write. And the performance may be horibble when having larger files. But if it works I will keep it! So the test just shows writing/reading of a file. – WilGulf"}, {"post_id": 60414, "ts": "2026-09-02T18:32:35Z", "hours": 3.4125, "text": "Devblog 17 I have developed my own ramfs. The old filesystem only supported fat16 with only reading capabilities which maded it feel very limited with what you could do with it. So the first step I dicided to do with adding reading was to implement filesystem that lives in ram which is really easy to write to. Now the D: drive is used for the ramfs (D as in dev used by linux). In the screenshot test.elf creates a file: D:/test.txt and writes HELLO FROM RAMFS to it. Then read.elf (linux cat) can read that file. – WilGulf"}, {"post_id": 58085, "ts": "2026-08-30T13:12:46Z", "hours": 7.1003, "text": "Devblog 16 I wanted more programs for NeoOS but I felt really limited to just the print and getkey functions. So I rewrite ncurses (not with all ncurses functions) into my own curses for NeoOS. This allowed me to write programs that update the terminal like a screen. Here I shouw the NeoOS logo being displayed with a CRT-screen effect. Now I am In the decision of what game to make with this new library. – WilGulf"}, {"post_id": 56739, "ts": "2026-08-28T16:47:26Z", "hours": 4.86, "text": "Devblog 15 I have now added colored printing that I showcase here in the fetch program. The printing made me redo how the writer works to support the decoding of the default ascii sequence used to change color: \\033[xxm , where xx is the color. It follows the standard C way which makes it pretty easy to use colored printing. – WilGulf"}, {"post_id": 53943, "ts": "2026-08-24T17:27:07Z", "hours": 13.1097, "text": "Devblog 14 I have worked on multiple commands for the shell but the one that i want to showcase now is the process management. Running.elf lists all running processes (including itself) with their name, pid and privilege level. Then I execute kill.elf with “1” as a argument which is the id of the shell. That kills the shell which leaves the os with just the blinking underscore cause there is no longer a shell running. Other commands are the sysinfo (uname) and updating fetch.elf with some new info."}, {"post_id": 49143, "ts": "2026-08-17T19:33:20Z", "hours": 9.0397, "text": "Devblog 13 Not much to show on the screen, however in the background i have worked on a security feature. So it is kind of like the pledge feature in open-bsd: so the kernel first need to know from the program what it wants to do, like print to the screen. Not until it has told what it will do it won’t be able to do anything. And if the program ever does anything it hasn’t told it would do the kernel will just kill the process. The program promise to not use any other functions except the one it has specified. And the kernel won’t let it break it’s promise. That is why the c function is called promise. –WilGulf"}, {"post_id": 48037, "ts": "2026-08-16T10:16:51Z", "hours": 9.1672, "text": "Devblog 12 A shell This is the first shell for NeoOS, it only has the clear command and a fetch program to display the logo. It took some time implementing all syscalls it needed, i needed to make many kernel functions available in the userprogram and that took most my time. I have yet to implement a way to terminate the program so now when fetch is called it never ends and you never get back to the shell again. – WilGulf"}, {"post_id": 46769, "ts": "2026-08-14T08:19:44Z", "hours": 4.0228, "text": "Devblog 11 NeoOS has now got ps2 keyboard drivers! So now I have implemented a driver for the US layout on ps2 keyboards. I am also looking into changing it to support my keyboards (Swedish layout), but that would take some time to map the right keys to the right number when the US layout can be found right on the os dev wiki. So this keyboard writing is also done the real way, the kernel boots, the kernel starts a program, that program asks for keyboard input, when it gets a input it asks the kernel to print that input. Now you can see how this could later change into a shell: you write the name of a command and it runs it. –WilGulf"}, {"post_id": 44096, "ts": "2026-08-09T17:04:23Z", "hours": 7.8719, "text": "Devblog 10 Now a binary file is able to be loaded AND executed. So from that qemu picture you can see the “Hello from a binary program” message, that message is printed by that print.s code. This is a huge milestone. There are still some functions to implement. But after that it is just writing all the userland programs. I must say none of this was easy, and choosing to develop a OS for stardance has so far been a really big challange. And now I need to push through coding the last bit so i can get this shipped before the end of stardance. –WilGulf"}, {"post_id": 43351, "ts": "2026-08-08T15:42:07Z", "hours": 7.6778, "text": "Devblog 9 I found a course for os development to follow and it really helped me with this. With the course explaining, I got my kernel to read a fat16 disk and print the content of hello.txt. This was a lot of debugging, first the file did open but couldn’t be read, then later the file was read but the data was just wierd characters. Now this is a huge step, the reading is done and now I only need it to be able to understand executables and read them. – WilGulf"}, {"post_id": 42494, "ts": "2026-08-07T08:16:16Z", "hours": 3.1131, "text": "Devblog 8 The real malloc and free is implemented. And if you know C you may understand what is going on in the image. All ptr are allocated using malloc and the first one is free’d before allocating ptr4, that is why their values are the same: ptr4 reuses ptr1 because ptr1 is free’d. Now that I don’t only have the allocation but also freeing which means I can safely implement a filesystem driver without worrying about the memory overflowing. – WilGulf"}, {"post_id": 42122, "ts": "2026-08-06T18:15:14Z", "hours": 4.8756, "text": "Devblog 7 I got to usermode, there I could run all the programs like a shell. But when jumping to usermode you need somewhere to land, some address where the cpu can start executing code. I don’t have that. So the next thing would be to implement a filesystem driver to read a disk and execute an executable. But my memory management is to simple to do it in a good way, I can only allocate and never delocate. So now I am going to revamp my memory management. –WilGulf"}, {"post_id": 26450, "ts": "2026-07-11T08:03:23Z", "hours": 11.1347, "text": "10h I don’t have anything to show right now, but as you can see i have 11 more hours on this project. I have both been working on fixes and some new things needed for the next big thing being: getting to ring 3/usermode. –WilGulf"}, {"post_id": 24029, "ts": "2026-07-07T09:45:52Z", "hours": 4.8494, "text": "Now we got progress! The kernel now has my implementation of paging working. If you don’t know what paging is, it is basically a way of managing the memory that is used by most x86 operating systems. The paging implementation took some C files and some updates to the assembly files but now it is done! Now I have many ways to go with what to implement next. We’ll see what i choose. –WilGulf"}, {"post_id": 19092, "ts": "2026-06-30T09:33:07Z", "hours": 7.1717, "text": "IDT Done! Now I got the IDT working. You can see it is working cause when that “Divide By Zero” message appears the kernel does a division with a zero. Normally that would make the kernel start bootlooping but now the interrupt handler handles the divide by zero and stops the kernel instead. Interrupt handling does not only stop crashes but also allow keyboards or syscalls to invoke interrupts that the kernel can process. Next step may be to use that interrupt handler to implement syscalls. – WilGulf"}, {"post_id": 18225, "ts": "2026-06-29T09:29:17Z", "hours": 2.5817, "text": "Hello Yes we got it, hello world on the screen. Turns out the loading of the kernel set up the stack wrong. One line of assembly was in the wrong section. I also continued with the GDT. It isnt something you can see but in the background the GDT has been initialized. That is my progress so far, now after GDT comes some interrupt handling. –WilGulf"}, {"post_id": 17849, "ts": "2026-06-28T19:51:48Z", "hours": 3.3697, "text": "HELP What is wrong? Well as I said, I would continue with getting Hello World on the screen. Well that wasn’t hard to do the “simple” way, just pasting several lines for each letter. But I wanted to do it the real way, implement a writer function. I started with making a function to clear the framebuffer from that “Booting…” message. And also moving the cursor to the start. Then I continued with the writer. The writer took two parameters: (char *buf, unsigned int len). Both arguments needed. The function i began testing with calling it from kmain like this: writer(“hello”, 5) . Then in the function i processed it like this: unsigned char *bytes = (unsigned char *)buf; for (unsigned int i = 0; i < len; i++) { fb_write_cell(pos * 2, bytes[i], 0x0F, 0x00); pos++; } But thats where it went wrong. When compiling and booting after adding that function content it wouldn’t boot. And that is wierd cause when i removed the bytes[i] line it booted. Somehow my kernel cant handle it. I don’t know what could currently be causing this. What now? Well i will of course try to solve this myself or find a way to make the writer work. And if you have any knowledge in C and os development please help me. The projects current code can be found on my github. – WilGulf"}, {"post_id": 15860, "ts": "2026-06-25T19:46:32Z", "hours": 1.8089, "text": "I got my OS booting without entering a bootloop!!! I wanted to leave assembly and start to use C. But to do that I need to call the main function in C from assembly. Much googling and testing later I got it to actually use the main functions while loop to keep itself from bootlooping. Never thought i would be so happy about completing the first and easiest task in os development. I will comeback with another post when i get ‘hello world’ on the screen."}]...
|
Title: NeoOS by @WilGulf | Stardance
Devlogs:
I g Title: NeoOS by @WilGulf | Stardance
Devlogs:
I got my OS booting without entering a bootloop!!! I wanted to leave assembly and start to use C. But to do that I need to call the main function in C from assembly. Much googling and testing later I got it to actually use the main functions while loop to keep itself from bootlooping. Never thought i would be so happy about completing the first and easiest task in os development. I will comeback with another post when i get ‘hello world’ on the screen.
HELP What is wrong? Well as I said, I would continue with getting Hello World on the screen. Well that wasn’t hard to do the “simple” way, just pasting several lines for each letter. But I wanted to do it the real way, implement a writer function. I started with making a function to clear the framebuffer from that “Booting…” message. And also moving the cursor to the start. Then I continued with the writer. The writer took two parameters: (char *buf, unsigned int len). Both arguments needed. The function i began testing with calling it from kmain like this: writer(“hello”, 5) . Then in the function i processed it like this: unsigned char *bytes = (unsigned char *)buf; for (unsigned int i = 0; i < len; i++) { fb_write_cell(pos * 2, bytes[i], 0x0F, 0x00); pos++; } But thats where it went wrong. When compiling and booting after adding that function content it wouldn’t boot. And that is wierd cause when i removed the bytes[i] line it booted. Somehow my kernel cant handle it. I don’t know what could currently be causing this. What now? Well i will of course try to solve this myself or find a way to make the writer work. And if you have any knowledge in C and os development please help me. The projects current code can be found on my github. – WilGulf
Hello Yes we got it, hello world on the screen. Turns out the loading of the kernel set up the stack wrong. One line of assembly was in the wrong section. I also continued with the GDT. It isnt something you can see but in the background the GDT has been initialized. That is my progress so far, now after GDT comes some interrupt handling. –WilGulf
IDT Done! Now I got the IDT working. You can see it is working cause when that “Divide By Zero” message appears the kernel does a division with a zero. Normally that would make the kernel start bootlooping but now the interrupt handler handles the divide by zero and stops the kernel instead. Interrupt handling does not only stop crashes but also allow keyboards or syscalls to invoke interrupts that the kernel can process. Next step may be to use that interrupt handler to implement syscalls. – WilGulf
Now we got progress! The kernel now has my implementation of paging working. If you don’t know what paging is, it is basically a way of managing the memory that is used by most x86 operating systems. The paging implementation took some C files and some updates to the assembly files but now it is done! Now I have many ways to go with what to implement next. We’ll see what i choose. –WilGulf
10h I don’t have anything to show right now, but as you can see i have 11 more hours on this project. I have both been working on fixes and some new things needed for the next big thing being: getting to ring 3/usermode. –WilGulf
Devblog 7 I got to usermode, there I could run all the programs like a shell. But when jumping to usermode you need somewhere to land, some address where the cpu can start executing code. I don’t have that. So the next thing would be to implement a filesystem driver to read a disk and execute an executable. But my memory management is to simple to do it in a good way, I can only allocate and never delocate. So now I am going to revamp my memory management. –WilGulf
Devblog 8 The real malloc and free is implemented. And if you know C you may understand what is going on in the image. All ptr are allocated using malloc and the first one is free’d before allocating ptr4, that is why their values are the same: ptr4 reuses ptr1 because ptr1 is free’d. Now that I don’t only have the allocation but also freeing which means I can safely implement a filesystem driver without worrying about the memory overflowing. – WilGulf
Devblog 9 I found a course for os development to follow and it really helped me with this. With the course explaining, I got my kernel to read a fat16 disk and print the content of hello.txt. This was a lot of debugging, first the file did open but couldn’t be read, then later the file was read but the data was just wierd characters. Now this is a huge step, the reading is done and now I only need it to be able to understand executables and read them. – WilGulf
Devblog 10 Now a binary file is able to be loaded AND executed. So from that qemu picture you can see the “Hello from a binary program” message, that message is printed by that print.s code. This is a huge milestone. There are still some functions to implement. But after that it is just writing all the userland programs. I must say none of this was easy, and choosing to develop a OS for stardance has so far been a really big challange. And now I need to push through coding the last bit so i can get this shipped before the end of stardance. –WilGulf
Devblog 11 NeoOS has now got ps2 keyboard drivers! So now I have implemented a driver for the US layout on ps2 keyboards. I am also looking into changing it to support my keyboards (Swedish layout), but that would take some time to map the right keys to the right number when the US layout can be found right on the os dev wiki. So this keyboard writing is also done the real way, the kernel boots, the kernel starts a program, that program asks for keyboard input, when it gets a input it asks the kernel to print that input. Now you can see how this could later change into a shell: you write the name of a command and it runs it. –WilGulf
Devblog 12 A shell This is the first shell for NeoOS, it only has the clear command and a fetch program to display the logo. It took some time implementing all syscalls it needed, i needed to make many kernel functions available in the userprogram and that took most my time. I have yet to implement a way to terminate the program so now when fetch is called it never ends and you never get back to the shell again. – WilGulf
Devblog 13 Not much to show on the screen, however in the background i have worked on a security feature. So it is kind of like the pledge feature in open-bsd: so the kernel first need to know from the program what it wants to do, like print to the screen. Not until it has told what it will do it won’t be able to do anything. And if the program ever does anything it hasn’t told it would do the kernel will just kill the process. The program promise to not use any other functions except the one it has specified. And the kernel won’t let it break it’s promise. That is why the c function is called promise. –WilGulf
Devblog 14 I have worked on multiple commands for the shell but the one that i want to showcase now is the process management. Running.elf lists all running processes (including itself) with their name, pid and privilege level. Then I execute kill.elf with “1” as a argument which is the id of the shell. That kills the shell which leaves the os with just the blinking underscore cause there is no longer a shell running. Other commands are the sysinfo (uname) and updating fetch.elf with some new info.
Devblog 15 I have now added colored printing that I showcase here in the fetch program. The printing made me redo how the writer works to support the decoding of the default ascii sequence used to change color: \033[xxm , where xx is the color. It follows the standard C way which makes it pretty easy to use colored printing. – WilGulf
Devblog 16 I wanted more programs for NeoOS but I felt really limited to just the print and getkey functions. So I rewrite ncurses (not with all ncurses functions) into my own curses for NeoOS. This allowed me to write programs that update the terminal like a screen. Here I shouw the NeoOS logo being displayed with a CRT-screen effect. Now I am In the decision of what game to make with this new library. – WilGulf
Devblog 17 I have developed my own ramfs. The old filesystem only supported fat16 with only reading capabilities which maded it feel very limited with what you could do with it. So the first step I dicided to do with adding reading was to implement filesystem that lives in ram which is really easy to write to. Now the D: drive is used for the ramfs (D as in dev used by linux). In the screenshot test.elf creates a file: D:/test.txt and writes HELLO FROM RAMFS to it. Then read.elf (linux cat) can read that file. – WilGulf
Devblog 18 So close to going over 10h however I managed to fix the bug. So a missing feature has been writing to the disk and not only read it. But the current file system was fat16 and the attempts I have made to implement writing has failed. What is the logical thing to do in this scenario, well I wrote my own filesystem: NeoFS. It is not feature rich compared to fat16 but that was why I could make it write. And the performance may be horibble when having larger files. But if it works I will keep it! So the test just shows writing/reading of a file. – WilGulf
Devblog 19 Not as big of a update now, but I just wanted to show of my new readdir implementation. That is then used by list with some coloring, all are green cause there is only executables in /execs. – WilGulf
Devblog 20 Final touches and logging the remaining time before shipping. I hope I have fixed all small bugs and made the libraries easy to use in new C programs. I also created some small new programs to show all functions in the kernel. Thats all for now and I hope to get to ship soon. –WilGulf
Devblog 21 The review is taking ages, and I couldn’t leave NeoOS. So I of course continued with fixes and features. The big new thing in this devblog is the filesystem: NeoFS, I have done major changes to the design like how a free block is found which greatly improves performance. And many safeguards were added to reading/writing to the filesystem. I also updated the host fstools used to create the filesystem on a drive to support arguments with options, easier to use now. – WilGulf
Devblog 22 The review of NeoOS found some problems with the filesystem commands and I took some time to fix them. Now the commands know where they are run and you can move around with cd. The second thing for this devblog is that I got multi disk support so now you can have up to 4 harddrives attached with writing/reading working on all of them , and that took some interractions with the ata ports but I finally got it working. –WilGulf
Ships:
So I made my own os “NeoOS”, this project was started not long after the release of the macbook neo and cause of that the os got it’s name. Testing is pretty easy, just make sure you have qemu installed with the correct cpu architecture. The project has become much bigger than I thought when I started it, I just could not stop implementing more features. And the most challenging part must be the hardware interaction, like reading from a disk by sending commands in hex. The documentation found for how cpus/ata disks/ram and all works are so hard to understand but that may be because it is not a simple thing. So when testing I want you to know that even though there aren’t many commands the kernel is still doing so much work not seen and the kernel is also what took most hours on this project. Lastly I hope that someone with all documentation provided writes their own program for NeoOS, I would love to see what other people could do with my OS....
|
1793004659.32004
|
1793091059.32004
|
|
44186
|
Flask Othello by @vindognz | Stardance
|
vindognz
|
1
|
26.0
|
446
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T11:43:27Z", "hours": 26.0, "multiplier": 17.32, "payout": 446, "blessing": "neutral", "text": "I made a full Othello game you can simply play in the browser, using vanilla JS and Flask! It features online multiplayer, a CPU opponent, replays, spectating and much more. My biggest challenge was definitely the countless hours of debugging, and chasing AI optimisations which actually made it perform worse. I am super proud of how the entire project came together, but especially happy with how satisfying the tile flip animation + sound cascading effect turned out.", "repo": "https://github.com/vindognz/flask-othello", "demo": "https://othello.vindognz.hackclub.app/"}]...
|
[{"post_id": 72575, "ts": "202 [{"post_id": 72575, "ts": "2026-09-23T08:20:47Z", "hours": 3.1811, "text": "MY EIGHTH AND (hopefully) FINAL DEVLOG I THINK WE’RE SHIP READY. I spent these 3 hours doing a bunch of final polish. The AI now has three difficulty levels to pick from (Easy, Medium and Impossible). I also added some actual juice to the game. Pieces now make sounds when placed and captured, and buttons make a little click sound. I also added a little rules popup with a tiny board showing how the game works for those who don’t know :) I finally updated the README from my initial commit too! It now has the full project info, as well as instructions for running FlaskOthello locally. Everything else was just minor fixes / cleanup. FlaskOthello is officially feature complete. Time to ship! 🚢"}, {"post_id": 71670, "ts": "2026-09-21T08:46:58Z", "hours": 3.4522, "text": "My seventh devloggg I replaced the AI search that was array based with a full bitboard implementation. This means that the board state is now stored as two 64-bit integers instead of nested lists. We also now have transposition tables and alpha-beta with move ordering based on the TT too! This was lowkey not THAT much work, but there were SOOOO many bugs to fix. I tried a bunch of ‘optimisations’ that actually made the AI ~27% worse… In the end, we scored a 36% decrease in search time though! During this time, I did some test deployments to NEST for playtesting with my girlfriend. Turns out, running a Flask dev server in production is a bad idea 💀 I had WebSockets, hints, undo, and UI redesign in my todo list, but decided to scratch those to make sure I ship in time."}, {"post_id": 68874, "ts": "2026-09-15T22:43:34Z", "hours": 3.7547, "text": "Sixth Devlog! (IM LOWKEY REMEMBERING TO DO THESE) This one was heavy on AI modifications, but I also implemented a replay system! I added transposition tables to the AI, which allows it to reuse positions it has already searched, along with a BUNCH of benchmarking for comparing. I also changed the AI’s minimax search to make and undo moves in-place instead of constantly creating new OthelloBoard objects which was a BIG optimization. Now, about that replay system! Games now keep a full move history which allows you to rewatch your game after play. You can jump to the start/end, step through moves one by one, and hold the buttons to scrub through the game. Lastly, I improve the piece flip animations so captured pieces do a proper flip + many minor bug fixes / refactors."}, {"post_id": 67923, "ts": "2026-09-14T07:13:46Z", "hours": 5.91, "text": "Fifth devlog! (I KEEP FORGETTING TO DO THESE) SO much has happened. I added full Player vs CPU support, fixed a major bug where if the AI was black it never made a starting move + a crash from the AI “make a move” loop firing every 1.5s 💀 Draw offers and resignation have been added. For draws, either player can offer and the other can accept/decline, and the AI automatically responds to draw requests based on piece count. Resignation has a confirm dialog to prevent accidents. Games are now automatically archived when they conclude (read only game copy at /archive/<id> which you’re automatically redirected to if on a stale /game/<id> URL). I also added piece ‘flip’ animations for the tiles that just got captured, so you can easily tell which tiles have just been captured. And alongside all this, TONS of refactoring and bug fixes, including extracing common code into resolve_player() and serialize_game() functions, and a strings.js module for game status strings."}, {"post_id": 61156, "ts": "2026-09-03T22:37:30Z", "hours": 3.305, "text": "Fourth devlog!! Today I built the actual frontend with a landing page (pick black/white, creates a game and redirects you), a live board page which polls the backend every 1.5s, click to play on legal squares, and CSS of course (green board, yellow legal move outlines). Previously, when the player had no legal moves, the game would just stop and you’d be stuck. Now, your turn is automatically passed if you have no legal moves. Added last-move highlighting (red outline on the most recently placed piece, so it’s obvious where your opponent just played) and a proper game-over screen showing the winning colour and final tile count."}, {"post_id": 56245, "ts": "2026-08-27T22:32:56Z", "hours": 3.8075, "text": "Third devlog! (I forgot to devlog…) I fixed a bunch of serious bugs in the engine (illegal moves overwriting occupied tiles, allowing negative indexing of the board, and more). The minimax now scores wins/loses by token count, not positional advantage at the end of the game, and some documentation cleanup. I also started working on the Flask backend, which now features 4 API routes for creating and joining games, making your move, and calling for AI moves. I tested this thoroughly with cURL, so hopefully there aren’t any significant bugs!"}, {"post_id": 44584, "ts": "2026-08-10T13:20:11Z", "hours": 1.0883, "text": "My second devlog! It’s 1:17am right now, but I just finished implementing the most basic minimax algorithm possible, and it (miraculously) works! I even hacked together a quick CPU vs CPU prototype, and it plays all the way through without any bugs, crashes or other breakage. Goodnight 💀"}, {"post_id": 41886, "ts": "2026-08-06T11:58:03Z", "hours": 1.2464, "text": "First Devlog! I have a really bad habit of starting 12 projects and never shipping any of them… so I started yet another project! I loved playing Othello with my brother growing up, but we haven’t been able to play much anymore since I moved to uni. To solve this, I’m developing FlaskOthello in my free time, and I plan to add a minimax algorithm with alpha-beta pruning. The plan is a Python Flask backend, and a vanilla HTML + CSS + JS frontend, probably hosted on Github Pages. So far, I’ve made an OthelloBoard class, with a basic board representation, and most of the fundamental game logic (making moves, flipping opponent tiles, validity checks, etc.), and since my COSC class forces me to, I wrote a bunch of doctests out of habit… Next up: minimax algorithm + alpha-beta pruning!"}]...
|
Title: Flask Othello by @vindognz | Stardance
Dev Title: Flask Othello by @vindognz | Stardance
Devlogs:
First Devlog! I have a really bad habit of starting 12 projects and never shipping any of them… so I started yet another project! I loved playing Othello with my brother growing up, but we haven’t been able to play much anymore since I moved to uni. To solve this, I’m developing FlaskOthello in my free time, and I plan to add a minimax algorithm with alpha-beta pruning. The plan is a Python Flask backend, and a vanilla HTML + CSS + JS frontend, probably hosted on Github Pages. So far, I’ve made an OthelloBoard class, with a basic board representation, and most of the fundamental game logic (making moves, flipping opponent tiles, validity checks, etc.), and since my COSC class forces me to, I wrote a bunch of doctests out of habit… Next up: minimax algorithm + alpha-beta pruning!
My second devlog! It’s 1:17am right now, but I just finished implementing the most basic minimax algorithm possible, and it (miraculously) works! I even hacked together a quick CPU vs CPU prototype, and it plays all the way through without any bugs, crashes or other breakage. Goodnight 💀
Third devlog! (I forgot to devlog…) I fixed a bunch of serious bugs in the engine (illegal moves overwriting occupied tiles, allowing negative indexing of the board, and more). The minimax now scores wins/loses by token count, not positional advantage at the end of the game, and some documentation cleanup. I also started working on the Flask backend, which now features 4 API routes for creating and joining games, making your move, and calling for AI moves. I tested this thoroughly with cURL, so hopefully there aren’t any significant bugs!
Fourth devlog!! Today I built the actual frontend with a landing page (pick black/white, creates a game and redirects you), a live board page which polls the backend every 1.5s, click to play on legal squares, and CSS of course (green board, yellow legal move outlines). Previously, when the player had no legal moves, the game would just stop and you’d be stuck. Now, your turn is automatically passed if you have no legal moves. Added last-move highlighting (red outline on the most recently placed piece, so it’s obvious where your opponent just played) and a proper game-over screen showing the winning colour and final tile count.
Fifth devlog! (I KEEP FORGETTING TO DO THESE) SO much has happened. I added full Player vs CPU support, fixed a major bug where if the AI was black it never made a starting move + a crash from the AI “make a move” loop firing every 1.5s 💀 Draw offers and resignation have been added. For draws, either player can offer and the other can accept/decline, and the AI automatically responds to draw requests based on piece count. Resignation has a confirm dialog to prevent accidents. Games are now automatically archived when they conclude (read only game copy at /archive/<id> which you’re automatically redirected to if on a stale /game/<id> URL). I also added piece ‘flip’ animations for the tiles that just got captured, so you can easily tell which tiles have just been captured. And alongside all this, TONS of refactoring and bug fixes, including extracing common code into resolve_player() and serialize_game() functions, and a strings.js module for game status strings.
Sixth Devlog! (IM LOWKEY REMEMBERING TO DO THESE) This one was heavy on AI modifications, but I also implemented a replay system! I added transposition tables to the AI, which allows it to reuse positions it has already searched, along with a BUNCH of benchmarking for comparing. I also changed the AI’s minimax search to make and undo moves in-place instead of constantly creating new OthelloBoard objects which was a BIG optimization. Now, about that replay system! Games now keep a full move history which allows you to rewatch your game after play. You can jump to the start/end, step through moves one by one, and hold the buttons to scrub through the game. Lastly, I improve the piece flip animations so captured pieces do a proper flip + many minor bug fixes / refactors.
My seventh devloggg I replaced the AI search that was array based with a full bitboard implementation. This means that the board state is now stored as two 64-bit integers instead of nested lists. We also now have transposition tables and alpha-beta with move ordering based on the TT too! This was lowkey not THAT much work, but there were SOOOO many bugs to fix. I tried a bunch of ‘optimisations’ that actually made the AI ~27% worse… In the end, we scored a 36% decrease in search time though! During this time, I did some test deployments to NEST for playtesting with my girlfriend. Turns out, running a Flask dev server in production is a bad idea 💀 I had WebSockets, hints, undo, and UI redesign in my todo list, but decided to scratch those to make sure I ship in time.
MY EIGHTH AND (hopefully) FINAL DEVLOG I THINK WE’RE SHIP READY. I spent these 3 hours doing a bunch of final polish. The AI now has three difficulty levels to pick from (Easy, Medium and Impossible). I also added some actual juice to the game. Pieces now make sounds when placed and captured, and buttons make a little click sound. I also added a little rules popup with a tiny board showing how the game works for those who don’t know :) I finally updated the README from my initial commit too! It now has the full project info, as well as instructions for running FlaskOthello locally. Everything else was just minor fixes / cleanup. FlaskOthello is officially feature complete. Time to ship! 🚢
Ships:
I made a full Othello game you can simply play in the browser, using vanilla JS and Flask! It features online multiplayer, a CPU opponent, replays, spectating and much more. My biggest challenge was definitely the countless hours of debugging, and chasing AI optimisations which actually made it perform worse. I am super proud of how the entire project came together, but especially happy with how satisfying the tile flip animation + sound cascading effect turned out....
|
1793004657.618989
|
1793091057.618989
|
|
1108
|
Porpholio by @charliebthomas | Stardance
|
charliebthomas
|
1
|
12.44
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T14:20:18Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Porpholio is my personal portfolio website, built from scratch in HTML, CSS. I’m teaching myself to code through tutorials. It has pages about me, my coding, my hat business, my Toylander kit car build, my hobbies and my poems. It’s hosted on Vercel, and the code is on GitHub. The site isn’t finished yet. Photos and a few pages are still to come. I’m dyslexic and have ADHD, so spelling mistakes and unfinished sections are something I’m working on as I go.", "repo": "https://github.com/charliebthomas-source/portpholio.github.io", "demo": "https://portpholio-omega.vercel.app"}]...
|
[{"post_id": 77401, "ts": "202 [{"post_id": 77401, "ts": "2026-10-06T19:59:35Z", "hours": 0.8036, "text": "Most of the pages are now built: horses and volunteering, knitting, baking and cooking, climbing, soap and candle making, and the caning page. I added alt text to the photos so the site is more accessible, and I’ve been tweaking the styles so every page has its own look but still feels like the same site. I’ve also made the whole thing look nicer.Still to do: finish the hobbies page, swap the filler photos for real ones, and fix a few broken links and typos."}, {"post_id": 76145, "ts": "2026-10-02T14:21:09Z", "hours": 0.6347, "text": "i have made it look nicer"}, {"post_id": 75581, "ts": "2026-09-30T14:11:23Z", "hours": 0.41, "text": "i have added in the cane page and the styles to it and all i have to do now is do the hobbies page."}, {"post_id": 75361, "ts": "2026-09-29T20:52:10Z", "hours": 0.5214, "text": "Adding in more styles to the soap and candle making page ignore the photos"}, {"post_id": 74991, "ts": "2026-09-28T19:44:26Z", "hours": 1.4511, "text": "i have started on the candle and soap making page and climbing page. i have also added in quite a bit of alt text to make it more acsessable for people and more legable."}, {"post_id": 74631, "ts": "2026-09-27T20:24:41Z", "hours": 0.7764, "text": "I have now made the clibing page and will finish the rest of it tomorrow when i get time to do so. i think it looks ok but i need to work out what layout i want. i also need to try and keep styles diffrent but simular if that makes sense"}, {"post_id": 74146, "ts": "2026-09-26T19:32:32Z", "hours": 0.6239, "text": "i have made the baking and cooking page need to add info and photos to it"}, {"post_id": 73751, "ts": "2026-09-25T21:08:36Z", "hours": 1.0169, "text": "Dont know if i like the colors of this new page or not but giving it a go none the less i think i might rever to the og colors. spent 30 mins trying to make the progress bar work still havnt made it 100 percent work"}, {"post_id": 73727, "ts": "2026-09-25T19:53:55Z", "hours": 0.8333, "text": "I have know completed the Knitting page. i have put in filler photos for the time being but other wise it all pritty much works. -f"}, {"post_id": 73244, "ts": "2026-09-24T17:32:42Z", "hours": 0.8514, "text": "I have now soterd out the styles for the horses and voununterring page and made it look a bit nicer. it is done enough for the moment so i going to move onto the nect pages now to try and get it kinda workings"}, {"post_id": 73207, "ts": "2026-09-24T16:33:04Z", "hours": 2.3631, "text": "after many hours of work i have finnaly added some photos. - I now need to add css for the photo sizing. neaten up the exsting pages. add the remaining pages."}, {"post_id": 4831, "ts": "2026-06-08T10:53:50Z", "hours": 1.9589, "text": "Inproving it"}]...
|
Title: Porpholio by @charliebthomas | Stardance
D Title: Porpholio by @charliebthomas | Stardance
Devlogs:
Inproving it
after many hours of work i have finnaly added some photos. - I now need to add css for the photo sizing. neaten up the exsting pages. add the remaining pages.
I have now soterd out the styles for the horses and voununterring page and made it look a bit nicer. it is done enough for the moment so i going to move onto the nect pages now to try and get it kinda workings
I have know completed the Knitting page. i have put in filler photos for the time being but other wise it all pritty much works. -f
Dont know if i like the colors of this new page or not but giving it a go none the less i think i might rever to the og colors. spent 30 mins trying to make the progress bar work still havnt made it 100 percent work
i have made the baking and cooking page need to add info and photos to it
I have now made the clibing page and will finish the rest of it tomorrow when i get time to do so. i think it looks ok but i need to work out what layout i want. i also need to try and keep styles diffrent but simular if that makes sense
i have started on the candle and soap making page and climbing page. i have also added in quite a bit of alt text to make it more acsessable for people and more legable.
Adding in more styles to the soap and candle making page ignore the photos
i have added in the cane page and the styles to it and all i have to do now is do the hobbies page.
i have made it look nicer
Most of the pages are now built: horses and volunteering, knitting, baking and cooking, climbing, soap and candle making, and the caning page. I added alt text to the photos so the site is more accessible, and I’ve been tweaking the styles so every page has its own look but still feels like the same site. I’ve also made the whole thing look nicer.Still to do: finish the hobbies page, swap the filler photos for real ones, and fix a few broken links and typos.
Ships:
Porpholio is my personal portfolio website, built from scratch in HTML, CSS. I’m teaching myself to code through tutorials. It has pages about me, my coding, my hat business, my Toylander kit car build, my hobbies and my poems. It’s hosted on Vercel, and the code is on GitHub. The site isn’t finished yet. Photos and a few pages are still to come. I’m dyslexic and have ADHD, so spelling mistakes and unfinished sections are something I’m working on as I go....
|
1793004656.3488054
|
1793091056.3488054
|
|
33779
|
Odyssey by @bluecorexux | Stardance
|
bluecorexux
|
1
|
14.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T19:11:20Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a minigame based on the Story of odysseus - there are three levels where each represents the challenges faced by him ( not exact a game ishhh analogy ) Navigativing throught the buttons and options of godot was challenging but pretty easy once I started making the third minigame ,as i got used to the method of using the common stuffs for making a scene in Godot I learnt how game dev works in a beginner level with a base project that is prety awesome", "repo": "https://github.com/bluecore7/GameOfOdyssey", "demo": "https://bluecore7.itch.io/the-game-of-odyssey"}]...
|
[{"post_id": 72792, "ts": "202 [{"post_id": 72792, "ts": "2026-09-23T19:03:51Z", "hours": 5.355, "text": "Devlog - 4 ITS’ OVER GUYZZZ…… THE GAME IS READY!!!!! Finally finished the game and completed the entire journey from those first pixelated screens to an actual playable game T_TDeveloped three mini games based on stories from Odyssey — not a direct adaptation or anything, just taking inspiration from the stories and turning them into games. Guys come onnn, it’s a game >_< The frustrating all-nighters, debugging, breaking things, fixing them, breaking them again…… somehow I loved all of it. I learned wayyyy more by actually building the game than I expected. Every bug was painful at that moment, but finally it felt soooo good. 2D games are good……BUT 3D IS AWESOME. NEXT ONTO ITTTTTT."}, {"post_id": 71752, "ts": "2026-09-21T13:33:30Z", "hours": 6.1611, "text": "Devlog 3 Finally I am into the real game GUYZZZ….. The minigame -2 took a lot of time there was much to learn - caz i got stuck in a bug where my button click signals are not captured. But the mission stuffs are done for now! I have started to create the real game. Added some animations - made the title wavy just by turning on BBCode and using the [wave] tag in RichTextLabel, which is dope . For the subtitle I wanted a typewriter effect . At first I tried doing it with a quick Tween on visible_characters, but it can’t trigger a sound for each single letter . So I changed it to a loop with visible_characters and a tiny timer delay, and added a proper mechanical typewriter key sound that clicks on every single letter as it types out. And that blip sound - wired it up to play whenever you hit Start, Settings, or Quit buttons so the menu click feelzzz . The same refactor has to be done for other scenes as well. I am onto that journey to Ithica………"}, {"post_id": 71398, "ts": "2026-09-20T19:09:59Z", "hours": 1.1572, "text": "Devlog-2 Developed a mini game according to the guide but i am placing only placeholders for now . As i have a plan to develop a game based on Odyssey but the the guide is about garlics >_< ."}, {"post_id": 70804, "ts": "2026-09-19T19:48:21Z", "hours": 1.36, "text": "Devlog - 1 Yupppp, finally started my game dev journey on the last laps of Stardance Done the routine stuffs → watched some intro and basic game dev videos from YouTube (still the pixelated Art stuffs are remaining ) and started the mission following the guide provided . Designed the Title Screen and Level Screen. Development took around 1/4th of the entire time spent, and the rest was spent debugging . Finally found out it was just a name mismatch in the button press function. Happy that I found it, but also frustrated that I couldn’t figure it out earlier than this ;_; A good start, I guess……"}]...
|
Title: Odyssey by @bluecorexux | Stardance
Devlog Title: Odyssey by @bluecorexux | Stardance
Devlogs:
Devlog - 1 Yupppp, finally started my game dev journey on the last laps of Stardance Done the routine stuffs → watched some intro and basic game dev videos from YouTube (still the pixelated Art stuffs are remaining ) and started the mission following the guide provided . Designed the Title Screen and Level Screen. Development took around 1/4th of the entire time spent, and the rest was spent debugging . Finally found out it was just a name mismatch in the button press function. Happy that I found it, but also frustrated that I couldn’t figure it out earlier than this ;_; A good start, I guess……
Devlog-2 Developed a mini game according to the guide but i am placing only placeholders for now . As i have a plan to develop a game based on Odyssey but the the guide is about garlics >_< .
Devlog 3 Finally I am into the real game GUYZZZ….. The minigame -2 took a lot of time there was much to learn - caz i got stuck in a bug where my button click signals are not captured. But the mission stuffs are done for now! I have started to create the real game. Added some animations - made the title wavy just by turning on BBCode and using the [wave] tag in RichTextLabel, which is dope . For the subtitle I wanted a typewriter effect . At first I tried doing it with a quick Tween on visible_characters, but it can’t trigger a sound for each single letter . So I changed it to a loop with visible_characters and a tiny timer delay, and added a proper mechanical typewriter key sound that clicks on every single letter as it types out. And that blip sound - wired it up to play whenever you hit Start, Settings, or Quit buttons so the menu click feelzzz . The same refactor has to be done for other scenes as well. I am onto that journey to Ithica………
Devlog - 4 ITS’ OVER GUYZZZ…… THE GAME IS READY!!!!! Finally finished the game and completed the entire journey from those first pixelated screens to an actual playable game T_TDeveloped three mini games based on stories from Odyssey — not a direct adaptation or anything, just taking inspiration from the stories and turning them into games. Guys come onnn, it’s a game >_< The frustrating all-nighters, debugging, breaking things, fixing them, breaking them again…… somehow I loved all of it. I learned wayyyy more by actually building the game than I expected. Every bug was painful at that moment, but finally it felt soooo good. 2D games are good……BUT 3D IS AWESOME. NEXT ONTO ITTTTTT.
Ships:
I made a minigame based on the Story of odysseus - there are three levels where each represents the challenges faced by him ( not exact a game ishhh analogy ) Navigativing throught the buttons and options of godot was challenging but pretty easy once I started making the third minigame ,as i got used to the method of using the common stuffs for making a scene in Godot I learnt how game dev works in a beginner level with a base project that is prety awesome...
|
1793004655.240254
|
1793091055.240254
|
|
44129
|
My own site! by @mons_reinus | Stardance
|
mons_reinus
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T18:27:22Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own personal website, including my hobbies, current projects ect", "repo": "https://github.com/eestigamer69/personal_site", "demo": "https://eestigamer69.github.io/personal_site/"}]...
|
[{"post_id": 69271, "ts": "202 [{"post_id": 69271, "ts": "2026-09-16T18:25:14Z", "hours": 0.85, "text": "I basically finished what I wanted to accomplish. If I get any ideas I might add them in the future"}, {"post_id": 49065, "ts": "2026-08-17T17:38:48Z", "hours": 0.7472, "text": "I initalized making the site"}]...
|
Title: My own site! by @mons_reinus | Stardance
D Title: My own site! by @mons_reinus | Stardance
Devlogs:
I initalized making the site
I basically finished what I wanted to accomplish. If I get any ideas I might add them in the future
Ships:
I made my own personal website, including my hobbies, current projects ect...
|
1793004654.3476412
|
1793091054.3476412
|
|
44109
|
Cozy Farm by @Irtaza | Stardance
|
Irtaza
|
1
|
18.0
|
264
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T14:13:05Z", "hours": 18.0, "multiplier": 14.58, "payout": 264, "blessing": "neutral", "text": "I made a cozy farming simulation game! Raise chickens, collect eggs, and sell them for money! And repeat. You can also hire workers to collect eggs for you! And expand your farm using the money you make!", "repo": "https://github.com/Irtaza2009/Cozy-Farm", "demo": "https://irtaza.itch.io/cozy-farm"}]...
|
[{"post_id": 71217, "ts": "202 [{"post_id": 71217, "ts": "2026-09-20T13:57:58Z", "hours": 0.3767, "text": "Decided to finally ship the game! And updated the itch.io page! Also manually updated the index.html build file produced by Unity to remove the footer and make the fullscreen button an overlay. BTW, the game looks best in full screen, so try it in full screen when playing it!"}, {"post_id": 65797, "ts": "2026-09-11T05:29:35Z", "hours": 2.1333, "text": "I added bridges between islands! I also tried to play around with colliders and physics shapes in the Unity Sprite Editor, and I tried to automate the boundary colliders of a tilemap, but it didn’t work. I guess I will have to manually place objects around the islands to make a boundary… Also, I have disabled boat movement for now. I am thinking of just adding bridges between the islands…"}, {"post_id": 61567, "ts": "2026-09-04T15:25:33Z", "hours": 1.4067, "text": "I added a player which you can control to move around the island. And made a boat controller and manager, and now you can board, and control the boat and sail! Also a text pops up when you go near the boat, telling the player to press enter to board ship."}, {"post_id": 60242, "ts": "2026-09-02T14:19:04Z", "hours": 1.6783, "text": "Created a new home island! Also added some objects like rocks and weeds in the water, and improved the water animations. And added an animated docked boat! I am planning for this to be the main scene of the game, and then you use the boat to get to the chicken farm and other farms that I might add in the future. Will add sailing in the boat next!"}, {"post_id": 58816, "ts": "2026-08-31T12:17:59Z", "hours": 1.2, "text": "Added icons to the left menu for eggs, coins and chickens!! Also updated the shapes of the chicken, worker and hen house colliders, (so they aren’t exactly the size of the characters, but a bit smaller)"}, {"post_id": 57283, "ts": "2026-08-29T12:06:20Z", "hours": 3.5225, "text": "Made an auto controller for the worker rabbit. Now you can hire the worker, and it can auto-collect eggs. It detects and moves towards an egg (only up, down, left or right movement. No diagonal, as it didn’t look good), and collects it on collision. Also, when there is no egg nearby, it can randomly choose between wandering or idle behaviour/animations! Also revamped the shop UI to make space for the hire button, and changed the button sizes and layout."}, {"post_id": 44473, "ts": "2026-08-10T07:50:50Z", "hours": 3.1283, "text": "I added a worker (rabbit), with 4 idle animations and 4 move animations! It ignores collisions with chickens and eggs, and has a sorting layer script so it can appear behind or in front of other sprites correctly. Will make it move automatically in the next update so you don’t have to control it, and also make it auto-collect eggs."}, {"post_id": 42895, "ts": "2026-08-07T21:02:29Z", "hours": 2.9161, "text": "Added zoom functionality! Now you can zoom in or out using the scroll wheel or pinching. And added some islands spelling out “IRT” (just for fun!). Also made the tutorial only load on the player’s first time playing. I also found out that eggs weren’t spawning on the expanded island, so I fixed that by updating the boundaries I had hard-coded."}, {"post_id": 41163, "ts": "2026-08-05T06:11:23Z", "hours": 1.7208, "text": "Started working on making an interactive tutorial! Made 4 steps: it teaches the player how to collect eggs, open the shop, sell the eggs, and get more chickens."}]...
|
Title: Cozy Farm by @Irtaza | Stardance
Devlogs:
Title: Cozy Farm by @Irtaza | Stardance
Devlogs:
Started working on making an interactive tutorial! Made 4 steps: it teaches the player how to collect eggs, open the shop, sell the eggs, and get more chickens.
Added zoom functionality! Now you can zoom in or out using the scroll wheel or pinching. And added some islands spelling out “IRT” (just for fun!). Also made the tutorial only load on the player’s first time playing. I also found out that eggs weren’t spawning on the expanded island, so I fixed that by updating the boundaries I had hard-coded.
I added a worker (rabbit), with 4 idle animations and 4 move animations! It ignores collisions with chickens and eggs, and has a sorting layer script so it can appear behind or in front of other sprites correctly. Will make it move automatically in the next update so you don’t have to control it, and also make it auto-collect eggs.
Made an auto controller for the worker rabbit. Now you can hire the worker, and it can auto-collect eggs. It detects and moves towards an egg (only up, down, left or right movement. No diagonal, as it didn’t look good), and collects it on collision. Also, when there is no egg nearby, it can randomly choose between wandering or idle behaviour/animations! Also revamped the shop UI to make space for the hire button, and changed the button sizes and layout.
Added icons to the left menu for eggs, coins and chickens!! Also updated the shapes of the chicken, worker and hen house colliders, (so they aren’t exactly the size of the characters, but a bit smaller)
Created a new home island! Also added some objects like rocks and weeds in the water, and improved the water animations. And added an animated docked boat! I am planning for this to be the main scene of the game, and then you use the boat to get to the chicken farm and other farms that I might add in the future. Will add sailing in the boat next!
I added a player which you can control to move around the island. And made a boat controller and manager, and now you can board, and control the boat and sail! Also a text pops up when you go near the boat, telling the player to press enter to board ship.
I added bridges between islands! I also tried to play around with colliders and physics shapes in the Unity Sprite Editor, and I tried to automate the boundary colliders of a tilemap, but it didn’t work. I guess I will have to manually place objects around the islands to make a boundary… Also, I have disabled boat movement for now. I am thinking of just adding bridges between the islands…
Decided to finally ship the game! And updated the itch.io page! Also manually updated the index.html build file produced by Unity to remove the footer and make the fullscreen button an overlay. BTW, the game looks best in full screen, so try it in full screen when playing it!
Ships:
I made a cozy farming simulation game! Raise chickens, collect eggs, and sell them for money! And repeat. You can also hire workers to collect eggs for you! And expand your farm using the money you make!...
|
1793004653.1387322
|
1793091053.1387322
|
|
37737
|
Voxelium by @notryaan | Stardance
|
notryaan
|
1
|
51.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-10T10:50:01Z", "hours": 51.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Voxelium 1.0 First release!! Voxelium is a voxel game I built from scratch in C++ and OpenGL, no engine, just a lot of code. Endless worlds with real seas, mountain ranges, caves, weather and animals, and you can break and build whatever you want. What’s in it Endless worlds from a seed: seas with islands, wide beaches, mountain ranges with snow on top, big deserts and forests, and you can see about 5 km out Caves with huge caverns, tunnels and ravines, old mineshafts running through them, and it’s actually dark down there so bring lamps Lighthouses, shipwrecks, desert ruins and pyramids (there’s something under the pyramids) Water that flows, waves that go crazy in storms, coral reefs and kelp forests Weather that does its own thing: rain, snow that piles up and melts, thunderstorms with real lightning, mist over the water at sunrise Crabs, turtles, fish, jellyfish that glow at night, birds, butterflies and fireflies. You can punch them, they will run Every block has its own sounds and every biome has its own ambience Break and place blocks, 25 lamp colours, no height limit, save as many worlds as you want Low / Medium / High / Ultra presets so it runs on more than just my PC Controls WASD + mouse, space to jump, F5 walk/fly, hold left click to break, middle click to place, F4 hotbar, ESC settings, F3 debug stuff Tips Hit New World on the title screen and type a seed or roll one. Save from the ESC menu if you want to keep a world If Ultra is laggy, turn down detail dist in the settings first, it’s the biggest cost by far Big thanks to everyone on opengameart.org whose textures and sounds are in here, they’re all credited in the readme.", "repo": "https://github.com/UltimaCodes/Voxelium", "demo": "https://github.com/UltimaCodes/Voxelium/releases/tag/v1.0"}]...
|
[{"post_id": 78298, "ts": "202 [{"post_id": 78298, "ts": "2026-10-10T10:44:33Z", "hours": 0.5822, "text": "OK FINAL DEVLOG ACTUALLY There were a few bugs from the previous one which I had to fix before release Tree tops looked unlit and forests looked really gloomy, even in full sun. The light was reaching them fine, the auto exposure was measuring the whole screen including the bright sky and darkening everything under it. It only measures the world now, so trees actually look lit Every new world had an old glowing test room carved underground in the same spot. It’s gone from new worlds, old worlds keep it so nothing in them changes- The game was running one of my internal tests every single time it launched, it doesn’t anymore There was a hidden launch option that crashed the game on purpose, left over from testing the crash reporter, removed"}, {"post_id": 78292, "ts": "2026-10-10T09:50:27Z", "hours": 14.1283, "text": "Final devlog (probably) Terrain & World Gen The old terrain was hills everywhere with puddles in between, and the mountains were random spikes shooting straight up out of flat ground like something was stabbing the map from underneath. So I rewrote the whole generator. There’s real seas now with islands and deep water, and coasts start with a proper wide beach before the land slowly rises. Mountains come in long ranges with foothills, bare rock on the steep parts, a treeline and snow on top, and deserts are one big desert instead of a sand patch in the middle of nowhere. Getting the mountains right took way longer than I want to admit. First they went up like walls, then there were 40 block deep trenches running in perfectly straight lines for hundreds of blocks through the hills. Turned out the math that works out how far you are from the coast completely loses it deep inland, so now it looks out in eight directions for the actual coast instead of guessing. Old worlds keep their old terrain so nothing you built gets new ground under it. Caves & Structures Caves are actual caves now: huge caverns, long winding tunnels, ravines, water pooled at the bottom, and stalactites. They also don’t break out of the side of every hill anymore, which is where all those random gaps and chasms were coming from. Old mineshafts run through them with lamps and plank bridges over the drops, and there’s pyramids out in the desert with a lit room inside. There’s also something hidden under the pyramids but I’m not telling you what. Water & Animals Water has actual waves now, flat at the beach, bigger out in deep water, and way bigger in a storm. Also fixed far away water reflections breaking into lines. The animals were ghosts this whole time; you could walk straight through a turtle. Now they’re solid, punching one knocks it back and it runs off, and swimming into a school of fish scatters them. The fish were also translucent, fixed that. And the black squares that flashed on screen when it rained are gone (funny NaN issue). Lighting & Performance Caves are properly dark now unless something lights them, and lamp light hangs in the air a bit so lamps actually glow instead of just painting the wall. Lighting runs on its own thread now so it doesn’t eat into your frame, and sun shafts and lamp glow render at half resolution, which made them way cheaper and you can’t tell. Also fixed a bunch of random bugs: Game freezing for a few seconds when you broke a block somewhere new. The world sometimes thinking it was still loading forever. Memory getting corrupted when you closed the game. The settings back button hiding off the bottom of the screen at 720p."}, {"post_id": 74371, "ts": "2026-09-27T08:18:33Z", "hours": 4.6833, "text": "Hallo, audio and the settings menu are in like I said last time, plus a mountain of bugs I only found by actually sitting down and playing it TLDR; The game has sound now, a real title screen, settings with quality presets, and I fixed a ton of stuff that only showed up during long play sessions Audio: The world was dead silent so I added a bunch of CC0 sounds. Every block has its own break, place and footstep sound based on what it’s made of now instead of almost everything falling back to one generic clip. Jumping, landing (heavier sound if you fall from high up), getting in and out of water, all of that. Funniest part is the audio test was passing the whole time while the game made zero sound, it only checked that sounds were “playing”, not that anything came out of the speakers, so now it actually listens to the output. Also added ambience for every biome, birds, cicadas, frogs, desert wind, waves, gulls and cave drips. Some I generated myself from noise and some are real recordings. Menus: Proper settings menu with tabs and Low/Medium/High/Ultra presets. The presets actually change how much work the shaders do instead of just flipping effects on and off. Render scale got a sharpening pass so running it below 1 doesn’t look like mush anymore, and a few settings were quietly resetting every time you launched which is fixed. Made a real title screen too, you can type a seed or load a saved world and it shows the actual world behind the menu, it even previews the terrain as you type a seed. First version of it had buttons that did literally nothing when you clicked them lol. Also added a screenshot key, crash dumps and an app icon. Bugs (so many): The first block you broke after launching froze the game for like 10 seconds and every edit after that for another second or two. Sometimes the area you spawned in just never loaded and you had to fly to the nearest chunk. Flying fast made it look like the whole world was reloading. Ultra was loading a smaller world behind the loading screen and then doubling it the second you spawned, so the start was super laggy. Hard black blotches all over the terrain in the day turned out to be cloud shadows aliasing, and the checkered pattern on grassy slopes was ambient occlusion getting applied twice. Water had black spots at certain angles from the reflections freaking out, and weird streaks across lakes that turned out to be the ambient occlusion using the lake bed under the water instead of the surface. Caves were getting lit by the time of day which makes no sense, light fading off in visible rings is gone, and the leaf texture had no transparency so every tree was a solid blob this entire time. Did a lighting pass to make it look more like a shader pack, overdid it and everything was way too bright, so I dialed it back. Also killed contact shadows completely, they caused more problems than they fixed. Next up is making the world more interesting, new biomes, animals and better weather"}, {"post_id": 65910, "ts": "2026-09-11T11:20:25Z", "hours": 8.0572, "text": "Hallo pretty big changelog because I didn’t do anything for a bit oops TLDR; Cleaned out old bugs, did a performance pass, built actual world simulation and did a full graphics overhaul Bugs : Chunks were silently vanishing past a hardcoded cap that was way too low for default settings, no draw, no shadow, which turned out to be that “chunks glitch out while moving” bug. Fixed it plus streaky stars, a moon that looked like a tiny sun, and water growing phantom walls at chunk borders from an earlier fix. Teleporting somewhere far caused a 1004ms freeze. Profiled it instead of guessing and found the GPU arena was doing a full reset every time. Fixed properly and worst case is under 12ms now. Performance : Frame time was 15.5ms. Turned out shadows were re-rendering every single frame for no reason, only redrawing a cascade when it actually needs to cut that down 89% and dropped the whole frame in half to about 2.3ms. Built a couple things expecting wins that turned out to be losses when actually measured (one was 28% slower), and almost built a whole defrag system for the arena before realizing it wasn’t fragmentation, it was just too small so I bumped it up and the problem vanished on its own. Real world woahh : Flowing water, colored block light, ore veins that actually clump instead of speckling everywhere. Rewrote falling sand and gravel, the old version was doing 118k lookups a tick and never even stopped. Rebuilt caves properly using two noise fields overlapping instead of one, actual tunnels now instead of flat noodles. Also chunks exist at any height now, no ceiling at all. Building that surfaced 3 old bugs that had been broken this whole time. Graphicss : Water got reflections, caustics, underwater god rays. Found an evil ass NaN bug doing the caustics where the seabed was rendering as solid black rectangles until I caught it. Rain and snow are generated entirely in the vertex shader, so 30k drops cost one draw call and zero buffer uploads. Volumetric clouds and cloud shadows now share the same noise field so they can’t disagree with each other. Also fake normal maps with zero authored art, the pixel art textures already have the detail baked into their own shading so I just reused that as the normal map, completely free. Built and killed an atmosphere LUT after measuring it three separate times, kept losing to the simple hand tuned sky. Also fixed emitters like lamps flickering their own glow depending on the angle you looked at them. Next up is audio, a settings menu, and makign the game look better somehow"}, {"post_id": 43979, "ts": "2026-08-09T13:45:27Z", "hours": 8.1175, "text": "voxel engine devlog #3 Shadows, post processing, save files, and actual trees. GPU arena overflow funny moments it was not pleasant to deal with + graphics overhaul (added water) Forward HDR & Shadows: Built a full pipeline with 3 cascade shadow maps, half-res SSAO, and Jimenez bloom. Shadows were super vertex-bound at first (5.12ms), but tightening the cascade splits chopped that straight down to 3.5ms. Saving to Disk (.vxr Region Files): Chunks now compress using varints (a cave chunk shrinks from 65 KB down to 5.7 KB). We now only save edited chunks as a diff against the noise seed while everything else regenerates on the fly. I tested it by blowing up a wall, flying a few thousand blocks away to evict it, flying back, and it reloaded intact from disk. Trees without neighbor lookups: Solved tree canopy generation across chunk borders by making them deferred. Each chunk calculates what parts of nearby tree roots fall inside its bounding box, avoiding goofy crossthread neighbor lookups. Water meshing: Added water as a second mesh layer. Opaque faces draw against air or water (so you see the seabed), while water faces only emit against air. Performance upgrades: High render distances were causing massive frame stalls because the GPU arena buffer was running at 92% capacity and triggering full GPU resets. Bumped the arena from 8M to 16M quads (128 MB) and nuked a hidden O(N) chunk scan sooooo hopefully smooth sailing from now . What now?: Full pipeline runs at ~4.5ms (~0.9ms with shaders off). Up next: smoothing out face lighting with per-corner ambient occlusion (AO) baked into the greedy mesh and looking into SSR for water."}, {"post_id": 33323, "ts": "2026-07-23T04:07:54Z", "hours": 5.7403, "text": "voxel engine devlog #2 Threading turned into rendering turned into lighting turned into an actual world with caves in it, all in one sitting. This was NOT the plan but here we are lol. Threading: got gen + meshing off the main thread onto a real worker pool. Workers are just pure functions, voxels in results out through queues, so the only actual cross-thread headache was stopping a chunk from getting unloaded while another job was still reading it (fixed with a refcount). World output came out byte-identical to before which is exactly what I wanted, just moved where the work happens not what it produces. Worst case frame during a full re-stream is under 1ms now. One draw call: this was the fun one. Went from 349 draw calls (one per chunk, kind of wacko ngl) down to 1. GPU buffer stays persistently mapped, culling got moved into a compute shader, and the indirect draw pulls its own visible count straight off the GPU so it never even touches the CPU. Same exact pixels as before, just the CPU isn’t sitting there doing a bunch of pointless work anymore. Cave culling: engine now figures out which chunks you could actually see air through and just doesn’t draw the rest. Above ground that’s about 40% fewer chunks. My sealed test room underground was cutting 98%+ but that number came back down once real caves existed instead of one clean sealed box, which makes sense since it’s following actual connectivity now instead of a best case demo. Lighting: sky + block light through BFS, baked straight into the mesh so there’s no separate lighting pass at render time. Threw in a glow block to test with. Removing a light source zeroes it out exactly and adding it back restores it exactly, verified both instead of assuming it just works. Terrain + you can hit stuff now: swapped the flat test world for actual noise based terrain, caves carved with 3D noise instead of flat tunnels. Added raycasting so you can break/place blocks. Player movement runs on a fixed timestep so framerate literally cannot change how fast you move. Next up: lighting is flat per face right now, want that smoothed per corner eventually. also got one frame time spike during heavy cave streaming I need to go check out before it turns into an actual problem once flying through caves is a thing."}, {"post_id": 33131, "ts": "2026-07-22T19:16:08Z", "hours": 9.4881, "text": "voxel engine first devlog yayyyyyy!!!!!! Deadahh just wanted to put everything from the last few days into one initial devlog so I don’t have to keep yap too much. Started with basic OpenGL 4.6 and GLFW, instead of using string lookups for shaders which is clown behavior, everything uses explicit locations. I also set up a headless smoke test so the CI can render offscreen, check its own pixels, and pass without popping up a window and being too goofy. For debugging, I threw in an ImGui menu to track frames, draw calls, and memory without making the heap allocator crash out. Steady-state heap allocations are at zero right now + also flipped the depth buffer to reversed-D because standard depth buffers kaboom at long distances and make the textures Z-fight. The Mesher thingy The first mesher I built was literally just a mesher. A regular mesher. There was nothing special about it. It just emitted 6 expanded vertices per face which took up way too much space (615 KB a chunk) and was slow. I improved it and made a binary greedy mesher that packs an entire quad into a single 64-bit integer. It uses 64-bit bitwise column ops to merge faces instantly. 2.7x fewer triangles and 33x less memory. It’s so fast it takes like 0.05ms and I also ripped out VBOs completely for SSBO vertex pulling, meaning the GPU just reconstructs the geometry on the fly. There was one issue where the greedy mesher left microscopic sub-pixel holes everywhere so I kept seeing pinhole cracks, so I just bloated every quad by 0.001 so they overlap and cover it up (surely this works well enough). Chunks & Compressing Having raw voxel arrays was eating my RAM alive, so I used palette compression. If a chunk is entirely air or entirely stone, it just stores one ID now. If it’s mixed, it bit-packs the indices, this dropped voxel memory by 20x. We’re streaming a 21x21x4 chunk radius (like 2,100 chunks) and it only takes 6.6 MB. Added a chunk streaming manager so it loads in a ring around you. I had to put strict budgets on generation and meshing per frame, otherwise the game just freezes when you move too fast + CPU frustum culling means we only actually draw the chunks you’re looking at. What’s Next? Right now the engine is in the state of being too good and being too bad at the same time. It’s doing like 349 individual draw calls per frame (one for every visible chunk). It works, but it’s got some quirks that I need to kaboom first. Next up is building a persistent arena buffer and GPU-driven culling so we can collapse the entire world into ONE single draw call using indirect drawing."}]...
|
Title: Voxelium by @notryaan | Stardance
Devlogs: Title: Voxelium by @notryaan | Stardance
Devlogs:
voxel engine first devlog yayyyyyy!!!!!! Deadahh just wanted to put everything from the last few days into one initial devlog so I don’t have to keep yap too much. Started with basic OpenGL 4.6 and GLFW, instead of using string lookups for shaders which is clown behavior, everything uses explicit locations. I also set up a headless smoke test so the CI can render offscreen, check its own pixels, and pass without popping up a window and being too goofy. For debugging, I threw in an ImGui menu to track frames, draw calls, and memory without making the heap allocator crash out. Steady-state heap allocations are at zero right now + also flipped the depth buffer to reversed-D because standard depth buffers kaboom at long distances and make the textures Z-fight. The Mesher thingy The first mesher I built was literally just a mesher. A regular mesher. There was nothing special about it. It just emitted 6 expanded vertices per face which took up way too much space (615 KB a chunk) and was slow. I improved it and made a binary greedy mesher that packs an entire quad into a single 64-bit integer. It uses 64-bit bitwise column ops to merge faces instantly. 2.7x fewer triangles and 33x less memory. It’s so fast it takes like 0.05ms and I also ripped out VBOs completely for SSBO vertex pulling, meaning the GPU just reconstructs the geometry on the fly. There was one issue where the greedy mesher left microscopic sub-pixel holes everywhere so I kept seeing pinhole cracks, so I just bloated every quad by 0.001 so they overlap and cover it up (surely this works well enough). Chunks & Compressing Having raw voxel arrays was eating my RAM alive, so I used palette compression. If a chunk is entirely air or entirely stone, it just stores one ID now. If it’s mixed, it bit-packs the indices, this dropped voxel memory by 20x. We’re streaming a 21x21x4 chunk radius (like 2,100 chunks) and it only takes 6.6 MB. Added a chunk streaming manager so it loads in a ring around you. I had to put strict budgets on generation and meshing per frame, otherwise the game just freezes when you move too fast + CPU frustum culling means we only actually draw the chunks you’re looking at. What’s Next? Right now the engine is in the state of being too good and being too bad at the same time. It’s doing like 349 individual draw calls per frame (one for every visible chunk). It works, but it’s got some quirks that I need to kaboom first. Next up is building a persistent arena buffer and GPU-driven culling so we can collapse the entire world into ONE single draw call using indirect drawing.
voxel engine devlog #2 Threading turned into rendering turned into lighting turned into an actual world with caves in it, all in one sitting. This was NOT the plan but here we are lol. Threading: got gen + meshing off the main thread onto a real worker pool. Workers are just pure functions, voxels in results out through queues, so the only actual cross-thread headache was stopping a chunk from getting unloaded while another job was still reading it (fixed with a refcount). World output came out byte-identical to before which is exactly what I wanted, just moved where the work happens not what it produces. Worst case frame during a full re-stream is under 1ms now. One draw call: this was the fun one. Went from 349 draw calls (one per chunk, kind of wacko ngl) down to 1. GPU buffer stays persistently mapped, culling got moved into a compute shader, and the indirect draw pulls its own visible count straight off the GPU so it never even touches the CPU. Same exact pixels as before, just the CPU isn’t sitting there doing a bunch of pointless work anymore. Cave culling: engine now figures out which chunks you could actually see air through and just doesn’t draw the rest. Above ground that’s about 40% fewer chunks. My sealed test room underground was cutting 98%+ but that number came back down once real caves existed instead of one clean sealed box, which makes sense since it’s following actual connectivity now instead of a best case demo. Lighting: sky + block light through BFS, baked straight into the mesh so there’s no separate lighting pass at render time. Threw in a glow block to test with. Removing a light source zeroes it out exactly and adding it back restores it exactly, verified both instead of assuming it just works. Terrain + you can hit stuff now: swapped the flat test world for actual noise based terrain, caves carved with 3D noise instead of flat tunnels. Added raycasting so you can break/place blocks. Player movement runs on a fixed timestep so framerate literally cannot change how fast you move. Next up: lighting is flat per face right now, want that smoothed per corner eventually. also got one frame time spike during heavy cave streaming I need to go check out before it turns into an actual problem once flying through caves is a thing.
voxel engine devlog #3 Shadows, post processing, save files, and actual trees. GPU arena overflow funny moments it was not pleasant to deal with + graphics overhaul (added water) Forward HDR & Shadows: Built a full pipeline with 3 cascade shadow maps, half-res SSAO, and Jimenez bloom. Shadows were super vertex-bound at first (5.12ms), but tightening the cascade splits chopped that straight down to 3.5ms. Saving to Disk (.vxr Region Files): Chunks now compress using varints (a cave chunk shrinks from 65 KB down to 5.7 KB). We now only save edited chunks as a diff against the noise seed while everything else regenerates on the fly. I tested it by blowing up a wall, flying a few thousand blocks away to evict it, flying back, and it reloaded intact from disk. Trees without neighbor lookups: Solved tree canopy generation across chunk borders by making them deferred. Each chunk calculates what parts of nearby tree roots fall inside its bounding box, avoiding goofy crossthread neighbor lookups. Water meshing: Added water as a second mesh layer. Opaque faces draw against air or water (so you see the seabed), while water faces only emit against air. Performance upgrades: High render distances were causing massive frame stalls because the GPU arena buffer was running at 92% capacity and triggering full GPU resets. Bumped the arena from 8M to 16M quads (128 MB) and nuked a hidden O(N) chunk scan sooooo hopefully smooth sailing from now . What now?: Full pipeline runs at ~4.5ms (~0.9ms with shaders off). Up next: smoothing out face lighting with per-corner ambient occlusion (AO) baked into the greedy mesh and looking into SSR for water.
Hallo pretty big changelog because I didn’t do anything for a bit oops TLDR; Cleaned out old bugs, did a performance pass, built actual world simulation and did a full graphics overhaul Bugs : Chunks were silently vanishing past a hardcoded cap that was way too low for default settings, no draw, no shadow, which turned out to be that “chunks glitch out while moving” bug. Fixed it plus streaky stars, a moon that looked like a tiny sun, and water growing phantom walls at chunk borders from an earlier fix. Teleporting somewhere far caused a 1004ms freeze. Profiled it instead of guessing and found the GPU arena was doing a full reset every time. Fixed properly and worst case is under 12ms now. Performance : Frame time was 15.5ms. Turned out shadows were re-rendering every single frame for no reason, only redrawing a cascade when it actually needs to cut that down 89% and dropped the whole frame in half to about 2.3ms. Built a couple things expecting wins that turned out to be losses when actually measured (one was 28% slower), and almost built a whole defrag system for the arena before realizing it wasn’t fragmentation, it was just too small so I bumped it up and the problem vanished on its own. Real world woahh : Flowing water, colored block light, ore veins that actually clump instead of speckling everywhere. Rewrote falling sand and gravel, the old version was doing 118k lookups a tick and never even stopped. Rebuilt caves properly using two noise fields overlapping instead of one, actual tunnels now instead of flat noodles. Also chunks exist at any height now, no ceiling at all. Building that surfaced 3 old bugs that had been broken this whole time. Graphicss : Water got reflections, caustics, underwater god rays. Found an evil ass NaN bug doing the caustics where the seabed was rendering as solid black rectangles until I caught it. Rain and snow are generated entirely in the vertex shader, so 30k drops cost one draw call and zero buffer uploads. Volumetric clouds and cloud shadows now share the same noise field so they can’t disagree with each other. Also fake normal maps with zero authored art, the pixel art textures already have the detail baked into their own shading so I just reused that as the normal map, completely free. Built and killed an atmosphere LUT after measuring it three separate times, kept losing to the simple hand tuned sky. Also fixed emitters like lamps flickering their own glow depending on the angle you looked at them. Next up is audio, a settings menu, and makign the game look better somehow
Hallo, audio and the settings menu are in like I said last time, plus a mountain of bugs I only found by actually sitting down and playing it TLDR; The game has sound now, a real title screen, settings with quality presets, and I fixed a ton of stuff that only showed up during long play sessions Audio: The world was dead silent so I added a bunch of CC0 sounds. Every block has its own break, place and footstep sound based on what it’s made of now instead of almost everything falling back to one generic clip. Jumping, landing (heavier sound if you fall from high up), getting in and out of water, all of that. Funniest part is the audio test was passing the whole time while the game made zero sound, it only checked that sounds were “playing”, not that anything came out of the speakers, so now it actually listens to the output. Also added ambience for every biome, birds, cicadas, frogs, desert wind, waves, gulls and cave drips. Some I generated myself from noise and some are real recordings. Menus: Proper settings menu with tabs and Low/Medium/High/Ultra presets. The presets actually change how much work the shaders do instead of just flipping effects on and off. Render scale got a sharpening pass so running it below 1 doesn’t look like mush anymore, and a few settings were quietly resetting every time you launched which is fixed. Made a real title screen too, you can type a seed or load a saved world and it shows the actual world behind the menu, it even previews the terrain as you type a seed. First version of it had buttons that did literally nothing when you clicked them lol. Also added a screenshot key, crash dumps and an app icon. Bugs (so many): The first block you broke after launching froze the game for like 10 seconds and every edit after that for another second or two. Sometimes the area you spawned in just never loaded and you had to fly to the nearest chunk. Flying fast made it look like the whole world was reloading. Ultra was loading a smaller world behind the loading screen and then doubling it the second you spawned, so the start was super laggy. Hard black blotches all over the terrain in the day turned out to be cloud shadows aliasing, and the checkered pattern on grassy slopes was ambient occlusion getting applied twice. Water had black spots at certain angles from the reflections freaking out, and weird streaks across lakes that turned out to be the ambient occlusion using the lake bed under the water instead of the surface. Caves were getting lit by the time of day which makes no sense, light fading off in visible rings is gone, and the leaf texture had no transparency so every tree was a solid blob this entire time. Did a lighting pass to make it look more like a shader pack, overdid it and everything was way too bright, so I dialed it back. Also killed contact shadows completely, they caused more problems than they fixed. Next up is making the world more interesting, new biomes, animals and better weather
Final devlog (probably) Terrain & World Gen The old terrain was hills everywhere with puddles in between, and the mountains were random spikes shooting straight up out of flat ground like something was stabbing the map from underneath. So I rewrote the whole generator. There’s real seas now with islands and deep water, and coasts start with a proper wide beach before the land slowly rises. Mountains come in long ranges with foothills, bare rock on the steep parts, a treeline and snow on top, and deserts are one big desert instead of a sand patch in the middle of nowhere. Getting the mountains right took way longer than I want to admit. First they went up like walls, then there were 40 block deep trenches running in perfectly straight lines for hundreds of blocks through the hills. Turned out the math that works out how far you are from the coast completely loses it deep inland, so now it looks out in eight directions for the actual coast instead of guessing. Old worlds keep their old terrain so nothing you built gets new ground under it. Caves & Structures Caves are actual caves now: huge caverns, long winding tunnels, ravines, water pooled at the bottom, and stalactites. They also don’t break out of the side of every hill anymore, which is where all those random gaps and chasms were coming from. Old mineshafts run through them with lamps and plank bridges over the drops, and there’s pyramids out in the desert with a lit room inside. There’s also something hidden under the pyramids but I’m not telling you what. Water & Animals Water has actual waves now, flat at the beach, bigger out in deep water, and way bigger in a storm. Also fixed far away water reflections breaking into lines. The animals were ghosts this whole time; you could walk straight through a turtle. Now they’re solid, punching one knocks it back and it runs off, and swimming into a school of fish scatters them. The fish were also translucent, fixed that. And the black squares that flashed on screen when it rained are gone (funny NaN issue). Lighting & Performance Caves are properly dark now unless something lights them, and lamp light hangs in the air a bit so lamps actually glow instead of just painting the wall. Lighting runs on its own thread now so it doesn’t eat into your frame, and sun shafts and lamp glow render at half resolution, which made them way cheaper and you can’t tell. Also fixed a bunch of random bugs: Game freezing for a few seconds when you broke a block somewhere new. The world sometimes thinking it was still loading forever. Memory getting corrupted when you closed the game. The settings back button hiding off the bottom of the screen at 720p.
OK FINAL DEVLOG ACTUALLY There were a few bugs from the previous one which I had to fix before release Tree tops looked unlit and forests looked really gloomy, even in full sun. The light was reaching them fine, the auto exposure was measuring the whole screen including the bright sky and darkening everything under it. It only measures the world now, so trees actually look lit Every new world had an old glowing test room carved underground in the same spot. It’s gone from new worlds, old worlds keep it so nothing in them changes- The game was running one of my internal tests every single time it launched, it doesn’t anymore There was a hidden launch option that crashed the game on purpose, left over from testing the crash reporter, removed
Ships:
Voxelium 1.0 First release!! Voxelium is a voxel game I built from scratch in C++ and OpenGL, no engine, just a lot of code. Endless worlds with real seas, mountain ranges, caves, weather and animals, and you can break and build whatever you want. What’s in it Endless worlds from a seed: seas with islands, wide beaches, mountain ranges with snow on top, big deserts and forests, and you can see about 5 km out Caves with huge caverns, tunnels and ravines, old mineshafts running through them, and it’s actually dark down there so bring lamps Lighthouses, shipwrecks, desert ruins and pyramids (there’s something under the pyramids) Water that flows, waves that go crazy in storms, coral reefs and kelp forests Weather that does its own thing: rain, snow that piles up and melts, thunderstorms with real lightning, mist over the water at sunrise Crabs, turtles, fish, jellyfish that glow at night, birds, butterflies and fireflies. You can punch them, they will run Every block has its own sounds and every biome has its own ambience Break and place blocks, 25 lamp colours, no height limit, save as many worlds as you want Low / Medium / High / Ultra presets so it runs on more than just my PC Controls WASD + mouse, space to jump, F5 walk/fly, hold left click to break, middle click to place, F4 hotbar, ESC settings, F3 debug stuff Tips Hit New World on the title screen and type a seed or roll one. Save from the ESC menu if you want to keep a world If Ultra is laggy, turn down detail dist in the settings first, it’s the biggest cost by far Big thanks to everyone on opengameart.org whose textures and sounds are in here, they’re all credited in the readme....
|
1793004651.9884064
|
1793091051.9884064
|
|
37706
|
FormulaOS by @Stellar | Stardance
|
Stellar
|
1
|
26.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T14:51:27Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Formula One web-based operating system! I started this project forever ago and just never had the time to actually work on it. It is currently very simple and I wish I had the time to actually make it better, but unfortunately Stardance is coming to an end soon. This project was built using React JS (more so Typescript than Javascript) which is a simple Javascript framework. It features three apps: notes, calculator, and terminal. It has a (static/non-movable) clock widget along with the time and date being displayed in the top-right corner. This project wasn’t very hard to make with probably the most difficult part being deploying the project itself.", "repo": "https://github.com/Ansh2021/FormulaOS", "demo": "https://ansh2021.github.io/FormulaOS/"}]...
|
[{"post_id": 73460, "ts": "202 [{"post_id": 73460, "ts": "2026-09-25T04:13:29Z", "hours": 10.9867, "text": "Finished (hopefully) Devlog #3 It’s been way too long since I’ve worked on this project. I decided to make it simpler for myself so I could actually get this project shipped. This is the main reason why I decided to remove part of the topbar (it didn’t really have much purpose anyway). I added a useable terminal filled with commands and fixed window ordering when clicking on multiple windows in any order. That’s really it for this devlog. I’ll probably ship this project very soon."}, {"post_id": 38900, "ts": "2026-08-01T14:11:31Z", "hours": 8.7997, "text": "Notes App & Clock Devlog #2 I added a simple notes app that is heavily inspired by the Apple Notes app (right now at least). I also added an analog clock drawn through JS graphics. Notes App The notes app is currently very simple and only has the capability to create and edit notes (no delete functionality yet). The first line in your note determines its title and the rest is considered its content (similar to Apple Notes). The Clock The analog clock is drawn through simple JavaScript graphics. It is repeatedly drawn over and over again to update the clock’s hands by using the the requestAnimationFrame() function which automatically synchronizes repeated updates to the refresh rate of the user’s display. This is taking way too long for WebOS 1. I’ll try to finish the first ship by the next devlog."}, {"post_id": 33087, "ts": "2026-07-22T17:55:59Z", "hours": 6.3911, "text": "Frontend Skeleton Devlog #1 FormulaOS, a little OS for F1 lovers. Progress I really just added a lot of the skeleton/components I will be using throughout this project. For example, I made a reusable window component. It currently has a full screen button working but isn’t freely resizable by the user like actual OS windows typically are. Next Steps Find a better color scheme? Add wallpapers (although I might save this for later) Add a bottom bar Clock and maybe calendar widget(s) Add more apps (I’ll decide which ones to add later) F1 themed fonts?"}]...
|
Title: FormulaOS by @Stellar | Stardance
Devlogs: Title: FormulaOS by @Stellar | Stardance
Devlogs:
Frontend Skeleton Devlog #1 FormulaOS, a little OS for F1 lovers. Progress I really just added a lot of the skeleton/components I will be using throughout this project. For example, I made a reusable window component. It currently has a full screen button working but isn’t freely resizable by the user like actual OS windows typically are. Next Steps Find a better color scheme? Add wallpapers (although I might save this for later) Add a bottom bar Clock and maybe calendar widget(s) Add more apps (I’ll decide which ones to add later) F1 themed fonts?
Notes App & Clock Devlog #2 I added a simple notes app that is heavily inspired by the Apple Notes app (right now at least). I also added an analog clock drawn through JS graphics. Notes App The notes app is currently very simple and only has the capability to create and edit notes (no delete functionality yet). The first line in your note determines its title and the rest is considered its content (similar to Apple Notes). The Clock The analog clock is drawn through simple JavaScript graphics. It is repeatedly drawn over and over again to update the clock’s hands by using the the requestAnimationFrame() function which automatically synchronizes repeated updates to the refresh rate of the user’s display. This is taking way too long for WebOS 1. I’ll try to finish the first ship by the next devlog.
Finished (hopefully) Devlog #3 It’s been way too long since I’ve worked on this project. I decided to make it simpler for myself so I could actually get this project shipped. This is the main reason why I decided to remove part of the topbar (it didn’t really have much purpose anyway). I added a useable terminal filled with commands and fixed window ordering when clicking on multiple windows in any order. That’s really it for this devlog. I’ll probably ship this project very soon.
Ships:
I made a Formula One web-based operating system! I started this project forever ago and just never had the time to actually work on it. It is currently very simple and I wish I had the time to actually make it better, but unfortunately Stardance is coming to an end soon. This project was built using React JS (more so Typescript than Javascript) which is a simple Javascript framework. It features three apps: notes, calculator, and terminal. It has a (static/non-movable) clock widget along with the time and date being displayed in the top-right corner. This project wasn’t very hard to make with probably the most difficult part being deploying the project itself....
|
1793004650.858659
|
1793091050.858659
|
|
15069
|
VKGPGPU by @sergey5588 | Stardance
|
sergey5588
|
1
|
22.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T16:34:33Z", "hours": 22.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made VKGPGPU, this is C11 library that uses vulkan under the hood and provides simpler access to general purpose computing on GPU (something like CUDA but more lightweight) im planning to make simple perceptron neural network with it. Learning vulkan was challenging, i still don’t know majority of things (graphics pipeline), I’m proud that this thing works and i enjoy my code quality. To test my project people need to know basic GPU concepts and some shading language that can compile to SPIRV (GLSL is the easiest)", "repo": "https://github.com/Sergey5588/vkgpgpu", "demo": "https://github.com/Sergey5588/vkgpgpu/releases/tag/v0.0.1-test"}]...
|
[{"post_id": 72722, "ts": "202 [{"post_id": 72722, "ts": "2026-09-23T16:21:26Z", "hours": 0.7611, "text": "Pushed v0.0.1-test, test version, added some macros for debug things and lib release things"}, {"post_id": 66589, "ts": "2026-09-12T13:14:15Z", "hours": 0.7764, "text": "Made github workflow for release automation, very cool, still not tested tho"}, {"post_id": 56789, "ts": "2026-08-28T18:19:19Z", "hours": 0.2728, "text": "Made build.sh to build static and shared libs, now i have 67 commits in my repo"}, {"post_id": 53274, "ts": "2026-08-23T18:44:36Z", "hours": 1.0717, "text": "Just made small fixes, nothing else to say"}, {"post_id": 42551, "ts": "2026-08-07T11:27:36Z", "hours": 4.9567, "text": "I rewrote api so now its recording cmd buffer and in theory multiple dispatches and programs can be in pipeline, its working!!!!!!!"}, {"post_id": 26068, "ts": "2026-07-10T17:31:56Z", "hours": 3.0831, "text": "Implemented push constant, now you can push some int, float and bool types"}, {"post_id": 24867, "ts": "2026-07-08T18:34:02Z", "hours": 0.3053, "text": "did small fixes, now there is no TODO s in the code"}, {"post_id": 16373, "ts": "2026-06-26T17:21:09Z", "hours": 0.8922, "text": "You can actually run compute shader now!!!!! here is the compute shader itself and a code to run it:"}, {"post_id": 15776, "ts": "2026-06-25T17:20:21Z", "hours": 3.2008, "text": "I almost lost my mind, but turned out i forgot to reset file pointer after getting file size so actual file data was never read. Implemented: Kernel loading Example shader that copies data from buffer A to buffer B Here is code for shader (not tested, cmd buffer dispatch not yet implemented) and output:"}, {"post_id": 15249, "ts": "2026-06-24T19:18:47Z", "hours": 1.19, "text": "Implemented buffer map and unmap. And everything is a pointer now"}, {"post_id": 15159, "ts": "2026-06-24T17:01:27Z", "hours": 1.8239, "text": "Added buffer creation and destruction. Public API looks like this:"}, {"post_id": 13875, "ts": "2026-06-22T18:50:51Z", "hours": 0.9347, "text": "implemented queue selection and logical device creation, there is nothing new to show so here is the diff 😔"}, {"post_id": 13702, "ts": "2026-06-22T13:50:40Z", "hours": 3.1225, "text": "Made initial project structure, vulkan instance loading and physical device initialization"}]...
|
Title: VKGPGPU by @sergey5588 | Stardance
Devlogs Title: VKGPGPU by @sergey5588 | Stardance
Devlogs:
Made initial project structure, vulkan instance loading and physical device initialization
implemented queue selection and logical device creation, there is nothing new to show so here is the diff 😔
Added buffer creation and destruction. Public API looks like this:
Implemented buffer map and unmap. And everything is a pointer now
I almost lost my mind, but turned out i forgot to reset file pointer after getting file size so actual file data was never read. Implemented: Kernel loading Example shader that copies data from buffer A to buffer B Here is code for shader (not tested, cmd buffer dispatch not yet implemented) and output:
You can actually run compute shader now!!!!! here is the compute shader itself and a code to run it:
did small fixes, now there is no TODO s in the code
Implemented push constant, now you can push some int, float and bool types
I rewrote api so now its recording cmd buffer and in theory multiple dispatches and programs can be in pipeline, its working!!!!!!!
Just made small fixes, nothing else to say
Made build.sh to build static and shared libs, now i have 67 commits in my repo
Made github workflow for release automation, very cool, still not tested tho
Pushed v0.0.1-test, test version, added some macros for debug things and lib release things
Ships:
I made VKGPGPU, this is C11 library that uses vulkan under the hood and provides simpler access to general purpose computing on GPU (something like CUDA but more lightweight) im planning to make simple perceptron neural network with it. Learning vulkan was challenging, i still don’t know majority of things (graphics pipeline), I’m proud that this thing works and i enjoy my code quality. To test my project people need to know basic GPU concepts and some shading language that can compile to SPIRV (GLSL is the easiest)...
|
1793004649.652775
|
1793091049.652775
|
|
28748
|
NovaHome by @Greg_ios | Stardance
|
Greg_ios
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T11:12:31Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My personal site!!!", "repo": "https://github.com/travletothefurureprogramming/NovaHome", "demo": "https://nova-home-brown.vercel.app/"}]...
|
[{"post_id": 72611, "ts": "202 [{"post_id": 72611, "ts": "2026-09-23T10:46:13Z", "hours": 0.5217, "text": "NovaHome #2: Crafting a clean, minimal UI with raw CSS I wanted the page to feel minimal, clean, and fast."}, {"post_id": 19161, "ts": "2026-06-30T12:33:34Z", "hours": 0.3022, "text": "NovaHome #1 Create the main html structure for my personal site"}]...
|
Title: NovaHome by @Greg_ios | Stardance
Devlogs: Title: NovaHome by @Greg_ios | Stardance
Devlogs:
NovaHome #1 Create the main html structure for my personal site
NovaHome #2: Crafting a clean, minimal UI with raw CSS I wanted the page to feel minimal, clean, and fast.
Ships:
My personal site!!!...
|
1793004648.7526703
|
1793091048.7526703
|
|
44094
|
Quantum Mechanical Model of An Atom in Python by @ Quantum Mechanical Model of An Atom in Python by @dionysus | Stardance...
|
dionysus
|
1
|
4.0
|
34
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-09T07:28:26Z", "hours": 4.0, "multiplier": 8.57, "payout": 34, "blessing": "neutral", "text": "Li²⁺ Quantum Mechanical Simulator I made an interactive quantum mechanical simulator using pure Python, using Numpy, SciPy, Matplotlib, and Numba! It replicates the electron wavefunctions of hydrogen and presents the probability distributions, wavefunctions, quantum nodes, and energy levels. The toughest aspect of the project was getting to grips with the mathematics underlying the wavefunctions and quantum states, as well as visualizing the model effectively onto a 3D plane. The part of the project that makes me the most proud this time was that I converted scientific theories and equation that normally exist on the paper of quantum mechanics into an object that you can actually see and engage with. All the components, such as wave functions, probabilities have been calculated using Python programming language. P.S. this REALLLYYY helped me in chemistry in school as I mostly used the information I knew beforehand in class. (yes they teach us this in chem here, yes im in highschool)", "repo": "https://github.com/dionysus887/Quantum-Model-Of-An-Atom", "demo": "https://github.com/dionysus887/Quantum-Model-Of-An-Atom/releases/tag/v.0.1"}]...
|
[{"post_id": 64642, "ts": "202 [{"post_id": 64642, "ts": "2026-09-09T06:26:15Z", "hours": 1.0597, "text": "QUANTUM MODEL OF AN ATOM #Devlog-3 No words people its finally done"}, {"post_id": 50273, "ts": "2026-08-19T13:02:25Z", "hours": 1.9153, "text": "QUANTUM MODEL OF AN ATOM #Devlog-2 Howdy everyone! sorry for the long break, i was busy and all because school 😭 and they give so much work omg! SOOO yeahh im back because the alpha never dies So this time i added more things and removed some things for the simulation. Tasks done today in the code: ** added multiple orbitals ** added density threshold ** numba optimization ** keyboard controls ** monte carlo probability sampling ** removed the basic single orbital only limitation MAY OUR PROJECT GO WELL COMRADE! ARRIVEDERCI! also the tony montana pfp is so sick lolz"}, {"post_id": 41753, "ts": "2026-08-06T04:37:39Z", "hours": 0.9589, "text": "QUANTUM MODEL OF AN ATOM #Devlog-1 Howdy everyone! im back with another simulation (calm down my fans.. wait i dont have fans no one knows me…nvm) SORRY FOR THE INTERNAL MONOLOGUE IM JS A DRAMATIC TEENAGER IRWEYUVREWNYUEWR… wait thats wayyy too energetic.. AHEM AHEM! this is better! So first things first this model is going to be of a Li²⁺ ion since its a hydrogen atom like species and would be easier to simulate and yep! Tasks done today in the code: ** made a cartesian grid ** used the cartesian coordinates as spherical coordinates (r, θ, φ) ** normalized the wave function ** computed the probability density ** displayed a 3d scatter plot of the 1s orbital P.S. THE CODE ONLY SHOWS THE 1s ORBITAL AS OF NOW! yes the code is OUR code comrade"}]...
|
Title: Quantum Mechanical Model of An Atom in Pyth Title: Quantum Mechanical Model of An Atom in Python by @dionysus | Stardance
Devlogs:
QUANTUM MODEL OF AN ATOM #Devlog-1 Howdy everyone! im back with another simulation (calm down my fans.. wait i dont have fans no one knows me…nvm) SORRY FOR THE INTERNAL MONOLOGUE IM JS A DRAMATIC TEENAGER IRWEYUVREWNYUEWR… wait thats wayyy too energetic.. AHEM AHEM! this is better! So first things first this model is going to be of a Li²⁺ ion since its a hydrogen atom like species and would be easier to simulate and yep! Tasks done today in the code: ** made a cartesian grid ** used the cartesian coordinates as spherical coordinates (r, θ, φ) ** normalized the wave function ** computed the probability density ** displayed a 3d scatter plot of the 1s orbital P.S. THE CODE ONLY SHOWS THE 1s ORBITAL AS OF NOW! yes the code is OUR code comrade
QUANTUM MODEL OF AN ATOM #Devlog-2 Howdy everyone! sorry for the long break, i was busy and all because school 😭 and they give so much work omg! SOOO yeahh im back because the alpha never dies So this time i added more things and removed some things for the simulation. Tasks done today in the code: ** added multiple orbitals ** added density threshold ** numba optimization ** keyboard controls ** monte carlo probability sampling ** removed the basic single orbital only limitation MAY OUR PROJECT GO WELL COMRADE! ARRIVEDERCI! also the tony montana pfp is so sick lolz
QUANTUM MODEL OF AN ATOM #Devlog-3 No words people its finally done
Ships:
Li²⁺ Quantum Mechanical Simulator I made an interactive quantum mechanical simulator using pure Python, using Numpy, SciPy, Matplotlib, and Numba! It replicates the electron wavefunctions of hydrogen and presents the probability distributions, wavefunctions, quantum nodes, and energy levels. The toughest aspect of the project was getting to grips with the mathematics underlying the wavefunctions and quantum states, as well as visualizing the model effectively onto a 3D plane. The part of the project that makes me the most proud this time was that I converted scientific theories and equation that normally exist on the paper of quantum mechanics into an object that you can actually see and engage with. All the components, such as wave functions, probabilities have been calculated using Python programming language. P.S. this REALLLYYY helped me in chemistry in school as I mostly used the information I knew beforehand in class. (yes they teach us this in chem here, yes im in highschool)...
|
1793004647.646348
|
1793091047.646348
|
|
308
|
Apollo Accord by @alien | Stardance
|
alien
|
1
|
49.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-11T12:42:36Z", "hours": 49.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a shooter-RPG ish game where you fight invading aliens that are seeking to take over your ship. As the captain, you must fight your way against the overpowering enemies, and send clear signals of surrender before your entire ship is taken over. I wanted to finish this project up until the player can communicate with other alien civilizations other than the invading one, but due to time constraints and my busier than ever schedule I won’t be able to work on this project much more, at least for the time being. I’ll be shipping this project and packing up. You can try the project by downloading the appropriate zip file for your system. Linux and the web package is still unverified, so potential players are advised to stick to the MacOS and Windows releases. Thank you for your understanding.", "repo": "https://github.com/SoHiEarth/Apollo-Accord", "demo": "https://sohiearth.itch.io/apollo-accord"}]...
|
[{"post_id": 65938, "ts": "202 [{"post_id": 65938, "ts": "2026-09-11T12:36:46Z", "hours": 1.3, "text": "Build Update. Worked on building releases for Linux, Mac, Windows and web (html). Not much on the technical side either, just baking light maps and polishing up some stuff in the game. This is because I have some priorities that are higher than Stardance, unfortunately, and I think I won’t be able to finish this project to the level I was expecting. I appreciate your understanding."}, {"post_id": 59140, "ts": "2026-08-31T19:23:39Z", "hours": 3.3025, "text": "Lights Out. Major Doom 3 vibes happening Explore the Unknown, and sometimes, terrifying. Decided to lean in a bit more on the “explore” factor and made many rooms darker overall. The capsules you see here are the enemies you fight, multiplied by the difficulty set in the settings. I’m thinking of adding red, glowing eyes or something to make it a bit scarier. I plan to not lean too much on this aspect, though. This is only for the first chapter of the story. PSA on the lighting. The reflections on the gun is a bit off, I know, I’m fixing it right now. Anyway, that’s the update for today! Going to work on some more story content soon."}, {"post_id": 57188, "ts": "2026-08-29T09:21:04Z", "hours": 2.8056, "text": "Apollo Accord: Gameplay and story updates, finally! After multiple delays, I started working on expanding the next chapter of the story. Story areas! First, I made the mess hall area where the player goes to support their teammates and fight the boss. I’ve started noticing the similarities between my combat system and the combat systems of arena style shooters, so I intentionally made this area larger so the player has a lot of space to move around (foreshadowing) I’ve finished the interaction system where the player can interact with in-game objects to trigger story changes, etc. Nothing too special to see here. Major movement updates! I made a GRAPPLING SYSTEM . It works by pressing right mouse button, and a circle shows up at where the target is. Simple, but it allows for more dynamic combat, and lets players take advantage of height. So, simple stuff! I have a lot of smaller updates like showing damage dealt when shooting enemies and stuff like that packed into this update, be tuned for more!"}, {"post_id": 54316, "ts": "2026-08-25T08:22:20Z", "hours": 2.0378, "text": "Apollo Accord: Finishing up the main menu. I was working on the SaveManager system, and thought, Hey, why don’t I just finish up the options menu using this interface? , and voila , 2 hours later I finished up the partially done main menu. This update includes very minor changes to the game itself, only the main menu, so nothing to note of gameplay changes here… I feel like the main menu looks pretty good and functional, the only complaint I have right now is the visibly low-poly moon (the moon is NOT supposed to look like that lol) Also, I had to make a work-around for Unity’s default JSON utility not being compatible with Dictionary structures, made my own custom format instead which is MUCH more space efficient than JSON and suits my needs perfectly. Well, what happened to the game itself? Will continue working on the story and gameplay after this little tangent. P.S. Tysm for the super star!!"}, {"post_id": 46763, "ts": "2026-08-14T07:54:46Z", "hours": 2.1783, "text": "APOLLO ACCORD: Spherical enemies, In-Game UI Combat Primitive enemy combat implementation, but it works. Stylizing will come later. The sensitivity’s a bit low, so I will have to investigate that. In addition, the enemies are all capsules atm, which is 100% temporary ( obviously ). With this update I also started laying down the groundwork for the next step, which is a world space control panel for communicating with aliens. This is probably the most challenging part of this game, since I have very little experience in Unity’s Canvas system and I don’t like it too much."}, {"post_id": 45357, "ts": "2026-08-11T19:14:32Z", "hours": 3.0819, "text": "APOLLO ACCORD: Official website is now open! Minor update that isn’t directly linked to the game. Made a website for the page advertising its promised features. Also added a news section that will bring more frequent updates to the project, based on GitHub commits. Development Update Things are going smoothly. Enemy combat need some reworking, but other than that I still have plenty of time to finish this game."}, {"post_id": 42810, "ts": "2026-08-07T18:36:08Z", "hours": 1.0667, "text": "APOLLO ACCORD: Honing in Specific Parts Working on improving the movement, creating scripts for future gameplay and changing the lighting to feel less intrusive. Graphics Graphically, this update isn’t much different compared to the previous update. I added localized post process volumes that make each area look different and cleaner. In addition, this allowed me to make some areas brighter , letting me do cool scenes like screenshot #1 . (I wish they weren’t T-posing) Scripting and Behaviour In the real world, you’ll be fired from the military as soon as you point a rifle to an ally, in a safe place. This is why I implemented safe zones , where health recovers and the gun is holstered (pointed down in a M4’s case) so that they aren’t always pointing towards someone. Plus, I made use of the localized post process areas to only enable DOF in the command center, so the gun is out of focus. Take a look at screenshot #2 for reference. Next Up: Storytime I keep procastinating making the story, but I’ll do it this time. The foundations are all set and everything non-story related is pretty polished, such as scripts and movement. This is where I: Implement enemies (and create assets) so that they block the player’s path to the tech module. Implement a scene equipment interaction script/UI so the player can communicate to alien civilizations. Implement a tutorial system so the player doesn’t get lost. Phew! That’s quite a lot to finish. I guess I’ll start cracking at it then. Quote of the Update: Motivation is key. Enjoying what you’re doing is the best way to put in more effort and make a better product."}, {"post_id": 41242, "ts": "2026-08-05T10:16:08Z", "hours": 3.8, "text": "Apollo Accord: Refining graphics, improving gameplay, expanding the story. Minor upgrades that span across all aspects of the game Story Wrote the script up to the point where the player interacts with the communication system. Improved the fading in/out of dialouge by removing the hardcoded wait times and making it into a integrated animation system. I also added the ability for the dialouge system to know when the player has exited the speaker’s range of influence, and quits speaking after. Graphical changes I think I hit peak with this one. Performance-wise, it’s not much different compared to earlier builds and it looks much more colorful and interesting. The blue undertones give it a much more colder and space-like look. Next steps Working on the assets, fleshing out boxes (theres alot of them) and making the communication system. I hope to be able to integrate procedural generation when making aliens, making for a fun gameplay loop."}, {"post_id": 40421, "ts": "2026-08-03T22:17:57Z", "hours": 1.3, "text": "Apollo Accord Minor Update TL;DR: Minor updates that improve the UX Focused on cleaning up the lighting and improving legibility. Removed excessive effects like film grain and motion blur that reduces clarity and bogs down performance. Added stylized backgrounds to the quest HUD so there’s more contrast between the scene and text. Colors are matched to the 70’s - 80’s retro kind of color scheme (I think it was called supergraphics ) that I feel like represents the golden age of space. Again, HDR screenshots look overly bright, explaining the blinding white of the screenshot attached. Next Steps I am going to work more on the story next, up until the player interacts with the aliens. After that, I’m going to implement gameplay mechanics for communicating with external civilizations, which will mark a departure from the first person camera for a bit."}, {"post_id": 40267, "ts": "2026-08-03T18:00:05Z", "hours": 0.7333, "text": "Changing the project’s goals Just a ramble on how the project is gonna be made for the future. First, graphically I’m going to try to achieve a matte, clean look since I don’t have access to tools (cameras, money for 3d model websites, etc) that would let me get high quality, realistic textures/models in order to maintain a uniform look throughout the game. Going to focus more on shaders and world details, and also adding more handmade models to the game. Update on the project Other than that, I improved the stability of dialouges now, they trigger consistently and don’t get confused when the player enters multiple dialouge trigger spaces. PS Had to go through exam stuff and formatting my computer because Asahi Linux messed it up hard. Working on recovering my data and reinstalling Unity, etc."}, {"post_id": 4035, "ts": "2026-06-07T06:46:03Z", "hours": 2.1025, "text": "Apollo Accord Movement Update TL;DR Crouching works! Snappier movement Leaning in the works; conflicts with mouse yaw. Raycasted bullets Long Version So I was somehow able to get crouching working. It’s more of a semi-crouch , since I haven’t implemented the humanoid animator yet and it works by moving the camera down. (Yikes) In addition, I’m currently working on leaning, but it’s not really stable yet and conflicts with the mouse yaw. I think it’ll be fixed by the next devlog. ?? Last, I got a comment on the last devlog suggesting a raycast + physics based solution for bullets and implemented that."}, {"post_id": 3484, "ts": "2026-06-06T13:17:41Z", "hours": 1.0453, "text": "[RANT] Character Animation Woes I have ALOT to say about Unity’s Humanoid animation system. Like, why do I have to go through the Animator thing that has wayy too much parameters, that override each other and create a jumbled mess?? And WHY actually WHY??? does the character dip through the floor when it’s idle??? Who in the world decided that humanoids should ignore all boundaries and start dipping through the floor when there’s nothing playing??? Why is the default animation like that??? I literally have no idea. [^1] [^1]: I eventually got it working somehow. Really frustrating process. Edit: I just noticed that the video looks really bright. That’s because I’m recording in SDR while the game is in HDR. In reality, the game looks much darker."}, {"post_id": 3388, "ts": "2026-06-06T09:01:31Z", "hours": 0.6489, "text": "Very minor update. I changed the weapon script so it fires physical bullets instead of raycasting. Shooting moveable stuff like chairs now interact with the bullet upon collision, and also bump into other objects in the process which creates a domino effect. Very cool to see. In addition, I added a flash light to the underbarrel of the gun so players can navigate dark environments (which I predict will be a lot of)"}, {"post_id": 3370, "ts": "2026-06-06T08:10:22Z", "hours": 3.0089, "text": "Apollo Accord Minor Update Finally finished the (temporary) control center. Control center made! Performance & Color Improvements Also detailed some other parts of the ship The main idea was to have a bright, high-tech command & control center, so I took reference from a lot of NASA and Sci-Fi media and made this. It’s supposed to encompass the people inside it. In addition, the control center has chairs that are moveable. Since this is in space, I turned down the gravity quite a lot so now they float when you bump into them, and settle onto the ground after some time. Feels more like a physics simulator now. Next Steps I’m going to start working on the storytelling next. While development has definitely slowed over the past week, I hope to maintain this pace, and accumulate small improvements over time to make this into something I’m proud of."}, {"post_id": 2125, "ts": "2026-06-04T13:36:53Z", "hours": 1.5869, "text": "Apollo Accord Minor Update: Main Menu Changes Added Features Added Earth, Mars and Moon ( Luna ) to the main menu’s background. (With animated clouds and rotation!) Added a options menu that allows the player to change the planet in the background, or set it to random on start. Comments Just a minor update. More settings to tweak coming soon. Planned Features DLSS/FSR upscaler support Ability to change enemy difficulty Ability to change volume Probably delaying these features for more important stuff, like storybuilding, etc."}, {"post_id": 1479, "ts": "2026-06-03T15:01:54Z", "hours": 2.6597, "text": "Apollo Accord Update #5: Curing Loneliness The Premise & Changes Decided I was lonely so I added some background characters and a “colleague” character to spice things up a bit. While not fully AI, these guys can say stuff and makes the atmosphere a bit more grounded. Added dudes talking military lingo Changed up the environment lighting a bit more so it looks more like a emergency and not just a house on fire. Assisted the player a bit by shining spotlights onto path signs. The guys also act as blockades to assist player navigation. Next up: More environment building Expand the right side of the base a bit more Clean up messy geometry I STILL HAVEN’T WORKED ON THE MAIN MENU Detail the control center. Script systems for campaign flow & to make it a true RPG, a inventory system Quote of the Update Animating these guys is DEFINITELY something I am NOT looking forward to."}, {"post_id": 1348, "ts": "2026-06-03T09:32:22Z", "hours": 5.0986, "text": "Apollo Accord Minor Update: HDRP Changes Finished the dialouge thingy Changed rendering pipeline from URP to HDRP (mostly for volumetric effects) It was a pretty daunting task, and as you can see from the time I spent just changing the rendering pipeline, was painstakingly buggy. Major Issues Solved Exposure being weird, everything was either white or black. Materials not being ported from URP to HDRP - I had to create them from scratch . Artifacting when backing lighting. The Earth disappearing?!?!?! Emissions and lighting combined made things really complicated. To make it easier to maintain, I decided to only use material emissions for baked environment lights and actual lights for dynamic lights. Quote of the Update It’s really hard to debug visually"}, {"post_id": 1227, "ts": "2026-06-03T02:36:24Z", "hours": 3.2822, "text": "Apollo Accord Update 4 What’s New Lots of animations for jumping and shooting, all smoothly transitioning between movement animations. More work on the environment. Showcasing the power of baked lighting. Optimizations to improve performance. ~150k vertices in total, around 200 FPS on my Mac rn. Next Steps Expanding and detailing environment (mostly blocking, textures later) Finishing up the main menu Working on game characters & HUD Animating the character model DLSS? Maybe? Quote of the Update Don’t want to get close to C#"}, {"post_id": 783, "ts": "2026-06-02T13:27:05Z", "hours": 1.0147, "text": "Let There Be Light! Long Version Small update onto the development of Apollo Accord. Implemented baked lighting to optmize performance early on. Had trouble deciding which light type to use (directional, spot, point, area) but ultimately I decided on a option E - emissive materials . Basically, emissive materials make the material itself a light. The downside is that it’s only baked, so non-static objects, like the gun and player, isn’t affected by it. So in short, it makes non-static objects unlit. To resolve this, I had to use Adaptive Probe Volumes , which are basically version 2 of Light Probes . These take data from baked lights to approximately light moving objects. In combination with reflection probes, these make great visuals - or at least visuals better than my last devlog, w/o sacrificing performance. TL;DR: Baked lighting beautiful computer go brrr"}, {"post_id": 756, "ts": "2026-06-02T12:04:16Z", "hours": 3.9294, "text": "Apollo Accord Update 3 What’s New Major refinements to UI. Found a way to combine in-world text (weapon ammo, etc) and on-screen text. Animations for walking, running and idling Wrote scripts for core gameplay systems, like weapon switching and character communication (putting alot of emphasis on the RPG mechanics this time around) Next Steps Incremental changes over time for the shooting system. Getting started on the environment. Adding a core story. Finishing the UI/Load+Save systems Thoughts I’m trying to get things right the first time, so I’m putting a lot more work into my initial “draft” for the game. I’ll work on hud legibility, procedural recoil, and more afterwards, once the core gameplay mechanics are pretty tidy. Quote of the Update I really don’t like C#"}, {"post_id": 92, "ts": "2026-05-31T18:01:51Z", "hours": 1.4375, "text": "Apollo Accord: Assets & Envisioning Roadmap Summary Started moving forward into the start screen. Thinking of a soldier on the ground w/ a M4 to their left, and then being helped up to fight the offensive. During that, the player listens to the main character speaking about the past. Then, FF a few days and the player is promoted to commander, where then the main gameplay starts. New Changes Added spacesuit model (player) Added M4A1 model Scripted & animated scene Performance improvements here and there (player settings, using Vulkan, etc.) Early HDR Support"}, {"post_id": 62, "ts": "2026-05-31T15:36:11Z", "hours": 1.3606, "text": "Space is calling! Started work on Apollo Accord , a game where you command Earth and discover new aliens. You can trade, fight or form alliances with aliens, and lead Earth to become a galactic empire. What I did today Created the banner and logotype for promotion purposes. Finished a temporary main menu with a cool little animation. Made a rather detailed README.md"}]...
|
Title: Apollo Accord by @alien | Stardance
Devlog Title: Apollo Accord by @alien | Stardance
Devlogs:
Space is calling! Started work on Apollo Accord , a game where you command Earth and discover new aliens. You can trade, fight or form alliances with aliens, and lead Earth to become a galactic empire. What I did today Created the banner and logotype for promotion purposes. Finished a temporary main menu with a cool little animation. Made a rather detailed README.md
Apollo Accord: Assets & Envisioning Roadmap Summary Started moving forward into the start screen. Thinking of a soldier on the ground w/ a M4 to their left, and then being helped up to fight the offensive. During that, the player listens to the main character speaking about the past. Then, FF a few days and the player is promoted to commander, where then the main gameplay starts. New Changes Added spacesuit model (player) Added M4A1 model Scripted & animated scene Performance improvements here and there (player settings, using Vulkan, etc.) Early HDR Support
Apollo Accord Update 3 What’s New Major refinements to UI. Found a way to combine in-world text (weapon ammo, etc) and on-screen text. Animations for walking, running and idling Wrote scripts for core gameplay systems, like weapon switching and character communication (putting alot of emphasis on the RPG mechanics this time around) Next Steps Incremental changes over time for the shooting system. Getting started on the environment. Adding a core story. Finishing the UI/Load+Save systems Thoughts I’m trying to get things right the first time, so I’m putting a lot more work into my initial “draft” for the game. I’ll work on hud legibility, procedural recoil, and more afterwards, once the core gameplay mechanics are pretty tidy. Quote of the Update I really don’t like C#
Let There Be Light! Long Version Small update onto the development of Apollo Accord. Implemented baked lighting to optmize performance early on. Had trouble deciding which light type to use (directional, spot, point, area) but ultimately I decided on a option E - emissive materials . Basically, emissive materials make the material itself a light. The downside is that it’s only baked, so non-static objects, like the gun and player, isn’t affected by it. So in short, it makes non-static objects unlit. To resolve this, I had to use Adaptive Probe Volumes , which are basically version 2 of Light Probes . These take data from baked lights to approximately light moving objects. In combination with reflection probes, these make great visuals - or at least visuals better than my last devlog, w/o sacrificing performance. TL;DR: Baked lighting beautiful computer go brrr
Apollo Accord Update 4 What’s New Lots of animations for jumping and shooting, all smoothly transitioning between movement animations. More work on the environment. Showcasing the power of baked lighting. Optimizations to improve performance. ~150k vertices in total, around 200 FPS on my Mac rn. Next Steps Expanding and detailing environment (mostly blocking, textures later) Finishing up the main menu Working on game characters & HUD Animating the character model DLSS? Maybe? Quote of the Update Don’t want to get close to C#
Apollo Accord Minor Update: HDRP Changes Finished the dialouge thingy Changed rendering pipeline from URP to HDRP (mostly for volumetric effects) It was a pretty daunting task, and as you can see from the time I spent just changing the rendering pipeline, was painstakingly buggy. Major Issues Solved Exposure being weird, everything was either white or black. Materials not being ported from URP to HDRP - I had to create them from scratch . Artifacting when backing lighting. The Earth disappearing?!?!?! Emissions and lighting combined made things really complicated. To make it easier to maintain, I decided to only use material emissions for baked environment lights and actual lights for dynamic lights. Quote of the Update It’s really hard to debug visually
Apollo Accord Update #5: Curing Loneliness The Premise & Changes Decided I was lonely so I added some background characters and a “colleague” character to spice things up a bit. While not fully AI, these guys can say stuff and makes the atmosphere a bit more grounded. Added dudes talking military lingo Changed up the environment lighting a bit more so it looks more like a emergency and not just a house on fire. Assisted the player a bit by shining spotlights onto path signs. The guys also act as blockades to assist player navigation. Next up: More environment building Expand the right side of the base a bit more Clean up messy geometry I STILL HAVEN’T WORKED ON THE MAIN MENU Detail the control center. Script systems for campaign flow & to make it a true RPG, a inventory system Quote of the Update Animating these guys is DEFINITELY something I am NOT looking forward to.
Apollo Accord Minor Update: Main Menu Changes Added Features Added Earth, Mars and Moon ( Luna ) to the main menu’s background. (With animated clouds and rotation!) Added a options menu that allows the player to change the planet in the background, or set it to random on start. Comments Just a minor update. More settings to tweak coming soon. Planned Features DLSS/FSR upscaler support Ability to change enemy difficulty Ability to change volume Probably delaying these features for more important stuff, like storybuilding, etc.
Apollo Accord Minor Update Finally finished the (temporary) control center. Control center made! Performance & Color Improvements Also detailed some other parts of the ship The main idea was to have a bright, high-tech command & control center, so I took reference from a lot of NASA and Sci-Fi media and made this. It’s supposed to encompass the people inside it. In addition, the control center has chairs that are moveable. Since this is in space, I turned down the gravity quite a lot so now they float when you bump into them, and settle onto the ground after some time. Feels more like a physics simulator now. Next Steps I’m going to start working on the storytelling next. While development has definitely slowed over the past week, I hope to maintain this pace, and accumulate small improvements over time to make this into something I’m proud of.
Very minor update. I changed the weapon script so it fires physical bullets instead of raycasting. Shooting moveable stuff like chairs now interact with the bullet upon collision, and also bump into other objects in the process which creates a domino effect. Very cool to see. In addition, I added a flash light to the underbarrel of the gun so players can navigate dark environments (which I predict will be a lot of)
[RANT] Character Animation Woes I have ALOT to say about Unity’s Humanoid animation system. Like, why do I have to go through the Animator thing that has wayy too much parameters, that override each other and create a jumbled mess?? And WHY actually WHY??? does the character dip through the floor when it’s idle??? Who in the world decided that humanoids should ignore all boundaries and start dipping through the floor when there’s nothing playing??? Why is the default animation like that??? I literally have no idea. [^1] [^1]: I eventually got it working somehow. Really frustrating process. Edit: I just noticed that the video looks really bright. That’s because I’m recording in SDR while the game is in HDR. In reality, the game looks much darker.
Apollo Accord Movement Update TL;DR Crouching works! Snappier movement Leaning in the works; conflicts with mouse yaw. Raycasted bullets Long Version So I was somehow able to get crouching working. It’s more of a semi-crouch , since I haven’t implemented the humanoid animator yet and it works by moving the camera down. (Yikes) In addition, I’m currently working on leaning, but it’s not really stable yet and conflicts with the mouse yaw. I think it’ll be fixed by the next devlog. ?? Last, I got a comment on the last devlog suggesting a raycast + physics based solution for bullets and implemented that.
Changing the project’s goals Just a ramble on how the project is gonna be made for the future. First, graphically I’m going to try to achieve a matte, clean look since I don’t have access to tools (cameras, money for 3d model websites, etc) that would let me get high quality, realistic textures/models in order to maintain a uniform look throughout the game. Going to focus more on shaders and world details, and also adding more handmade models to the game. Update on the project Other than that, I improved the stability of dialouges now, they trigger consistently and don’t get confused when the player enters multiple dialouge trigger spaces. PS Had to go through exam stuff and formatting my computer because Asahi Linux messed it up hard. Working on recovering my data and reinstalling Unity, etc.
Apollo Accord Minor Update TL;DR: Minor updates that improve the UX Focused on cleaning up the lighting and improving legibility. Removed excessive effects like film grain and motion blur that reduces clarity and bogs down performance. Added stylized backgrounds to the quest HUD so there’s more contrast between the scene and text. Colors are matched to the 70’s - 80’s retro kind of color scheme (I think it was called supergraphics ) that I feel like represents the golden age of space. Again, HDR screenshots look overly bright, explaining the blinding white of the screenshot attached. Next Steps I am going to work more on the story next, up until the player interacts with the aliens. After that, I’m going to implement gameplay mechanics for communicating with external civilizations, which will mark a departure from the first person camera for a bit.
Apollo Accord: Refining graphics, improving gameplay, expanding the story. Minor upgrades that span across all aspects of the game Story Wrote the script up to the point where the player interacts with the communication system. Improved the fading in/out of dialouge by removing the hardcoded wait times and making it into a integrated animation system. I also added the ability for the dialouge system to know when the player has exited the speaker’s range of influence, and quits speaking after. Graphical changes I think I hit peak with this one. Performance-wise, it’s not much different compared to earlier builds and it looks much more colorful and interesting. The blue undertones give it a much more colder and space-like look. Next steps Working on the assets, fleshing out boxes (theres alot of them) and making the communication system. I hope to be able to integrate procedural generation when making aliens, making for a fun gameplay loop.
APOLLO ACCORD: Honing in Specific Parts Working on improving the movement, creating scripts for future gameplay and changing the lighting to feel less intrusive. Graphics Graphically, this update isn’t much different compared to the previous update. I added localized post process volumes that make each area look different and cleaner. In addition, this allowed me to make some areas brighter , letting me do cool scenes like screenshot #1 . (I wish they weren’t T-posing) Scripting and Behaviour In the real world, you’ll be fired from the military as soon as you point a rifle to an ally, in a safe place. This is why I implemented safe zones , where health recovers and the gun is holstered (pointed down in a M4’s case) so that they aren’t always pointing towards someone. Plus, I made use of the localized post process areas to only enable DOF in the command center, so the gun is out of focus. Take a look at screenshot #2 for reference. Next Up: Storytime I keep procastinating making the story, but I’ll do it this time. The foundations are all set and everything non-story related is pretty polished, such as scripts and movement. This is where I: Implement enemies (and create assets) so that they block the player’s path to the tech module. Implement a scene equipment interaction script/UI so the player can communicate to alien civilizations. Implement a tutorial system so the player doesn’t get lost. Phew! That’s quite a lot to finish. I guess I’ll start cracking at it then. Quote of the Update: Motivation is key. Enjoying what you’re doing is the best way to put in more effort and make a better product.
APOLLO ACCORD: Official website is now open! Minor update that isn’t directly linked to the game. Made a website for the page advertising its promised features. Also added a news section that will bring more frequent updates to the project, based on GitHub commits. Development Update Things are going smoothly. Enemy combat need some reworking, but other than that I still have plenty of time to finish this game.
APOLLO ACCORD: Spherical enemies, In-Game UI Combat Primitive enemy combat implementation, but it works. Stylizing will come later. The sensitivity’s a bit low, so I will have to investigate that. In addition, the enemies are all capsules atm, which is 100% temporary ( obviously ). With this update I also started laying down the groundwork for the next step, which is a world space control panel for communicating with aliens. This is probably the most challenging part of this game, since I have very little experience in Unity’s Canvas system and I don’t like it too much.
Apollo Accord: Finishing up the main menu. I was working on the SaveManager system, and thought, Hey, why don’t I just finish up the options menu using this interface? , and voila , 2 hours later I finished up the partially done main menu. This update includes very minor changes to the game itself, only the main menu, so nothing to note of gameplay changes here… I feel like the main menu looks pretty good and functional, the only complaint I have right now is the visibly low-poly moon (the moon is NOT supposed to look like that lol) Also, I had to make a work-around for Unity’s default JSON utility not being compatible with Dictionary structures, made my own custom format instead which is MUCH more space efficient than JSON and suits my needs perfectly. Well, what happened to the game itself? Will continue working on the story and gameplay after this little tangent. P.S. Tysm for the super star!!
Apollo Accord: Gameplay and story updates, finally! After multiple delays, I started working on expanding the next chapter of the story. Story areas! First, I made the mess hall area where the player goes to support their teammates and fight the boss. I’ve started noticing the similarities between my combat system and the combat systems of arena style shooters, so I intentionally made this area larger so the player has a lot of space to move around (foreshadowing) I’ve finished the interaction system where the player can interact with in-game objects to trigger story changes, etc. Nothing too special to see here. Major movement updates! I made a GRAPPLING SYSTEM . It works by pressing right mouse button, and a circle shows up at where the target is. Simple, but it allows for more dynamic combat, and lets players take advantage of height. So, simple stuff! I have a lot of smaller updates like showing damage dealt when shooting enemies and stuff like that packed into this update, be tuned for more!
Lights Out. Major Doom 3 vibes happening Explore the Unknown, and sometimes, terrifying. Decided to lean in a bit more on the “explore” factor and made many rooms darker overall. The capsules you see here are the enemies you fight, multiplied by the difficulty set in the settings. I’m thinking of adding red, glowing eyes or something to make it a bit scarier. I plan to not lean too much on this aspect, though. This is only for the first chapter of the story. PSA on the lighting. The reflections on the gun is a bit off, I know, I’m fixing it right now. Anyway, that’s the update for today! Going to work on some more story content soon.
Build Update. Worked on building releases for Linux, Mac, Windows and web (html). Not much on the technical side either, just baking light maps and polishing up some stuff in the game. This is because I have some priorities that are higher than Stardance, unfortunately, and I think I won’t be able to finish this project to the level I was expecting. I appreciate your understanding.
Ships:
I built a shooter-RPG ish game where you fight invading aliens that are seeking to take over your ship. As the captain, you must fight your way against the overpowering enemies, and send clear signals of surrender before your entire ship is taken over. I wanted to finish this project up until the player can communicate with other alien civilizations other than the invading one, but due to time constraints and my busier than ever schedule I won’t be able to work on this project much more, at least for the time being. I’ll be shipping this project and packing up. You can try the project by downloading the appropriate zip file for your system. Linux and the web package is still unverified, so potential players are advised to stick to the MacOS and Windows releases. Thank you for your understanding....
|
1793004646.3935244
|
1793091046.3935244
|
|
336
|
bedrockR by @xFN10x | Stardance
|
xFN10x
|
1
|
67.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T14:06:05Z", "hours": 67.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I am shipping bedrockR a3.0PRE, a pre-release to the next major alpha version a3.0. bedrockR has been my main project for about a year now, starting it in Summer Of Making last year. This is the first bedrockR pre-release, you will most likely find bugs. Please report them here Please also read https://github.com/xFN10x/bedrockR/blob/master/a3PRE-known-issues.md to make sure you aren’t reporting already known issues.", "repo": "https://github.com/xFN10x/bedrockR", "demo": "https://github.com/xFN10x/bedrockR/releases/tag/a3.0PRE"}]...
|
[{"post_id": 63553, "ts": "202 [{"post_id": 63553, "ts": "2026-09-07T13:58:20Z", "hours": 7.1344, "text": "devlog 8 It’s time… Yes, I’m finally shipping a3.0PRE. I thought i would have more time to release the whole version at once, but a new YSWS is starting today, and i haven’t released a bedrockR version in quite a while. Resource Building (again) I did fix the resources, so now they do build properly, but there are some weird bugs that i have no idea where to even start with… this is why i made a known issues file on the github, because im hoping i can narrow down what might be causing this. What to expect from this release This release is about 50% of the work that will be in a3.0, the release is lacking quite a few important things that the final release will have. Mainly workspace upgrading, new UI features, and more network features. You almost certainly WILL find bugs, I NEED these reported , I don’t want an a2.0.2 situation again, where the whole program was found to be broken AFTER I shipped. . Anyways, this might very well be the last of me on Stardance , thank you for following my code optimization journey, and I hope you enjoy bedrockR!"}, {"post_id": 60784, "ts": "2026-09-03T11:41:43Z", "hours": 3.7117, "text": "devlog 7 I wasn’t planning on making this… but seeing as im going to highschool for the first time in 30 minutes , uhhh… i think i should make this. Resource Building I finally started implementing resource building. Ive been doing all of this with plugins in mind, so its very flexible. Well, this devlog is quite short, but… oh it doesn’t work… (well ill fix it when i have time) New item & block selectors I redid the Item selector, to make it easier to use, and program with, and I also removed the old block selector, seeing as it was literally the same class, but with some slightly different filtering… This release I’ve also decided that i should probably release this version in 2 releases, a3.0PRE , and a3.0 , because i haven’t released any versions in over 4 months."}, {"post_id": 58512, "ts": "2026-08-30T22:58:50Z", "hours": 5.2397, "text": "devlog 6 this time, i didn’t take 10 hours to do something! Yes, this devlog is only ~5 hours, not 10 lime usual, however, i did actually do something. More Resource work Now, you can actually use resources. You can select them in elements, and do things to them called “Resource tasks.” You execute them by right clicking them in the workspace view. You can also FINALLY select them for blocks and such. (hopefully the video works) General UI fixes Ive also fixed some other UI things, mainly being the icons for UI looking kinda crunchy… its very obvious with the social icons. The issue was with werid java scaling stuff… but its fixed now. I also changed the icon that the program uses from 1600x1600 to 1024x1024, because of some scaling artifacts. Also, I implemented some old, custom window icons, that i never figured out how to use."}, {"post_id": 54598, "ts": "2026-08-25T16:59:29Z", "hours": 10.1442, "text": "devlog 5 i kinda underestimated how long i was coding for yesterday I did more cleaning, and some more ui stuff. One of those was the social icons. I finally finished adding back all of the RElementValues , so now i can focus on other things. One of those other things was fixing some block texture related things, like fixing a random bug i introduced, aaand also making the block downloading 10x faster…. Block Downloading It was always annoying when trying to test bedrockR on other platforms, and i would have to sit through the block downloading… so i added a way to cancel it… but now i completely negated that problem; i multi-threaded it. Yea it actually seems like its 10x faster now, which is nice. RMapValue s rework Just like with RElementValue s, the class for RMapValue was huge… so now im doing the same thing with it; seperating it into different classes. So far, i dont have many reimplemented, but thats because i was doing something else; Resource UI Yes, im finally adding the new resource UI. I’ve started with remaking the resource tab, it looks pretty good so far, but i still need to do some work. Now im gonna continue resource stuff Changelog add resource gui in RWorkspace, and icons ( c7747e9 ) Bump gradle-wrapper from 9.7.0 to 9.7.1 ( 48bbd25 ) Bump com.google.guava:guava from 33.6.0-jre to 33.7.1-jre ( 6dd20bc ) make resources appear i think ( 4ad3140 ) fix layout ( 202dae9 ) move abstract resource classes to a new package, rename some resource functions, and add new resource category function ( c351bcc ) alright, i need to lock in, so now i actually need new resource ui ( 11154bb ) fix stuff with RMapElementValues and RElementValues + random code clean ( a9d82e7 ) fix top image, and make downloading 10x faster ( d03cc6a ) rename item components, and start readding map values ( 72c30f1 )"}, {"post_id": 44934, "ts": "2026-08-11T00:52:38Z", "hours": 9.5525, "text": "devlog 4 pssst, hey i have a slack channel if you want more dev things im not rewriting everything i said again, stardance utils deleted this whole thing, instead ill give you 1 sentence bullet points: i redid the recipe screen wow it was so bad redid launch page mmm smooth animation also did a bunch of random ass things that i cant explain cause they were mostly like 1 line of code being altered… also, stardance utils doesn’t edit this textbox correctly, so below should be the changelog v Changelog make this appear on the right screen ( 6d8b140 ) make the recipe creation screen better ( 0660edd ) make this smooth ( 52e32fb ) clean ( 8e86c27 ) fix the positioning ( 2c88991 ) Bump gradle-wrapper from 9.6.1 to 9.7.0 ( 928260d ) clean, make help button a class ( 2fc07dc ) make windows open on the current screen the mouse is on ( 23ee12f ) add more greetings, and make it a record ( 6bbee27 ) fix where windows open ( f33af46 )"}, {"post_id": 42146, "ts": "2026-08-06T19:10:23Z", "hours": 9.1933, "text": "devlog 3, this is why you write clean code early ok so the dreaded day has finally come… The largest class in this program, RElementValue is finally being cleaned up. It is the thing you see when changing your settings, or when editing ANY element… it automatically changes depending on the type of the variable its targeting… but the code i wrote for it was SO BAD! 🥀 3 giant if statements, checking through each possible implemented type, making the class over 1300+ lines long. However, I finally decided to redo the whole thing to continue my “code cleaning quest” So now different types get their own classes, e. g, strings get; REStringValue booleans get; REBoolValue (not actually implemented yet), etc. And as usual, this has NO effect on the user experience, which is… great to be putting so much effort into… but it has to be done before it gets to out of hand. (I promise im gonna start doing fun stuff soon 😅) This is why you write clean code from the start."}, {"post_id": 40173, "ts": "2026-08-03T16:04:12Z", "hours": 8.5211, "text": "devlog 2, again i kinda forgot to mention this… but im completely redoing the resource system…. oh wait i already did yea i thought i said this last devlog, but cleaned more code, and redid most of the program again. Resources instead of saving to one json file with the files, now save in a structured directory system, that you can see in the screenshot. (its actually a full workspace, but you get the idea.) Resources also are now their own classes, which makes it soooo much easier to add them… they are quite similar to how i programmed elements. Right now, you can’t convert older workspaces to these new resource system one, but thatll be worked on later. Time to do some ui! (also i did more code cleaning, and i renamed a ton of stuff)"}, {"post_id": 37960, "ts": "2026-07-31T00:48:37Z", "hours": 5.9425, "text": "devlog 1 Alright, I’m actually resuming normal development. I’M NOT MAKING THAT INSTALLER. I expect to be doing a bunch of code clean, now that I have even MORE experience with java. For release a2.2, I’m planning structures , but thats gonna take a bunch of work internally… because i’ll have to redo a bunch of stuff to make this program easier to work on. I also MIGHT continue on the android version. slack channel for more updates"}, {"post_id": 23586, "ts": "2026-07-06T17:02:00Z", "hours": 2.3186, "text": "Progress is going faster than before now that im using Rider now, I have made an API for getting the versions, instead of using the latest.json file in the github, and now im using it in the installer, and next hotfix i’ll use it for bedrockR updating. Oh and bedrockR 1.3.1 is finally out now… i guess i forgot to upload the release assets when i published it…"}, {"post_id": 22285, "ts": "2026-07-04T17:50:38Z", "hours": 0.6433, "text": "Im back to working on this, stopped using visual studio because it was horrible, now im using Jetbrains Rider. Ive implemented some methods to get releases from the github, so now im gonna implement them."}, {"post_id": 7015, "ts": "2026-06-11T19:27:00Z", "hours": 4.3383, "text": "it took a long time, but i finally figured out how to style the ui, and i recreated the bedrockR style. (the versions page will be fixed soon)"}, {"post_id": 107, "ts": "2026-05-31T19:30:56Z", "hours": 0.3497, "text": "I’ve been working on creating a bedrockR installer in C#, this will be cross-platform, and it will be released with each version, handling installing, and i also might add a way to run it without installing"}]...
|
Title: bedrockR by @xFN10x | Stardance
Devlogs:
I Title: bedrockR by @xFN10x | Stardance
Devlogs:
I’ve been working on creating a bedrockR installer in C#, this will be cross-platform, and it will be released with each version, handling installing, and i also might add a way to run it without installing
it took a long time, but i finally figured out how to style the ui, and i recreated the bedrockR style. (the versions page will be fixed soon)
Im back to working on this, stopped using visual studio because it was horrible, now im using Jetbrains Rider. Ive implemented some methods to get releases from the github, so now im gonna implement them.
Progress is going faster than before now that im using Rider now, I have made an API for getting the versions, instead of using the latest.json file in the github, and now im using it in the installer, and next hotfix i’ll use it for bedrockR updating. Oh and bedrockR 1.3.1 is finally out now… i guess i forgot to upload the release assets when i published it…
devlog 1 Alright, I’m actually resuming normal development. I’M NOT MAKING THAT INSTALLER. I expect to be doing a bunch of code clean, now that I have even MORE experience with java. For release a2.2, I’m planning structures , but thats gonna take a bunch of work internally… because i’ll have to redo a bunch of stuff to make this program easier to work on. I also MIGHT continue on the android version. slack channel for more updates
devlog 2, again i kinda forgot to mention this… but im completely redoing the resource system…. oh wait i already did yea i thought i said this last devlog, but cleaned more code, and redid most of the program again. Resources instead of saving to one json file with the files, now save in a structured directory system, that you can see in the screenshot. (its actually a full workspace, but you get the idea.) Resources also are now their own classes, which makes it soooo much easier to add them… they are quite similar to how i programmed elements. Right now, you can’t convert older workspaces to these new resource system one, but thatll be worked on later. Time to do some ui! (also i did more code cleaning, and i renamed a ton of stuff)
devlog 3, this is why you write clean code early ok so the dreaded day has finally come… The largest class in this program, RElementValue is finally being cleaned up. It is the thing you see when changing your settings, or when editing ANY element… it automatically changes depending on the type of the variable its targeting… but the code i wrote for it was SO BAD! 🥀 3 giant if statements, checking through each possible implemented type, making the class over 1300+ lines long. However, I finally decided to redo the whole thing to continue my “code cleaning quest” So now different types get their own classes, e. g, strings get; REStringValue booleans get; REBoolValue (not actually implemented yet), etc. And as usual, this has NO effect on the user experience, which is… great to be putting so much effort into… but it has to be done before it gets to out of hand. (I promise im gonna start doing fun stuff soon 😅) This is why you write clean code from the start.
devlog 4 pssst, hey i have a slack channel if you want more dev things im not rewriting everything i said again, stardance utils deleted this whole thing, instead ill give you 1 sentence bullet points: i redid the recipe screen wow it was so bad redid launch page mmm smooth animation also did a bunch of random ass things that i cant explain cause they were mostly like 1 line of code being altered… also, stardance utils doesn’t edit this textbox correctly, so below should be the changelog v Changelog make this appear on the right screen ( 6d8b140 ) make the recipe creation screen better ( 0660edd ) make this smooth ( 52e32fb ) clean ( 8e86c27 ) fix the positioning ( 2c88991 ) Bump gradle-wrapper from 9.6.1 to 9.7.0 ( 928260d ) clean, make help button a class ( 2fc07dc ) make windows open on the current screen the mouse is on ( 23ee12f ) add more greetings, and make it a record ( 6bbee27 ) fix where windows open ( f33af46 )
devlog 5 i kinda underestimated how long i was coding for yesterday I did more cleaning, and some more ui stuff. One of those was the social icons. I finally finished adding back all of the RElementValues , so now i can focus on other things. One of those other things was fixing some block texture related things, like fixing a random bug i introduced, aaand also making the block downloading 10x faster…. Block Downloading It was always annoying when trying to test bedrockR on other platforms, and i would have to sit through the block downloading… so i added a way to cancel it… but now i completely negated that problem; i multi-threaded it. Yea it actually seems like its 10x faster now, which is nice. RMapValue s rework Just like with RElementValue s, the class for RMapValue was huge… so now im doing the same thing with it; seperating it into different classes. So far, i dont have many reimplemented, but thats because i was doing something else; Resource UI Yes, im finally adding the new resource UI. I’ve started with remaking the resource tab, it looks pretty good so far, but i still need to do some work. Now im gonna continue resource stuff Changelog add resource gui in RWorkspace, and icons ( c7747e9 ) Bump gradle-wrapper from 9.7.0 to 9.7.1 ( 48bbd25 ) Bump com.google.guava:guava from 33.6.0-jre to 33.7.1-jre ( 6dd20bc ) make resources appear i think ( 4ad3140 ) fix layout ( 202dae9 ) move abstract resource classes to a new package, rename some resource functions, and add new resource category function ( c351bcc ) alright, i need to lock in, so now i actually need new resource ui ( 11154bb ) fix stuff with RMapElementValues and RElementValues + random code clean ( a9d82e7 ) fix top image, and make downloading 10x faster ( d03cc6a ) rename item components, and start readding map values ( 72c30f1 )
devlog 6 this time, i didn’t take 10 hours to do something! Yes, this devlog is only ~5 hours, not 10 lime usual, however, i did actually do something. More Resource work Now, you can actually use resources. You can select them in elements, and do things to them called “Resource tasks.” You execute them by right clicking them in the workspace view. You can also FINALLY select them for blocks and such. (hopefully the video works) General UI fixes Ive also fixed some other UI things, mainly being the icons for UI looking kinda crunchy… its very obvious with the social icons. The issue was with werid java scaling stuff… but its fixed now. I also changed the icon that the program uses from 1600x1600 to 1024x1024, because of some scaling artifacts. Also, I implemented some old, custom window icons, that i never figured out how to use.
devlog 7 I wasn’t planning on making this… but seeing as im going to highschool for the first time in 30 minutes , uhhh… i think i should make this. Resource Building I finally started implementing resource building. Ive been doing all of this with plugins in mind, so its very flexible. Well, this devlog is quite short, but… oh it doesn’t work… (well ill fix it when i have time) New item & block selectors I redid the Item selector, to make it easier to use, and program with, and I also removed the old block selector, seeing as it was literally the same class, but with some slightly different filtering… This release I’ve also decided that i should probably release this version in 2 releases, a3.0PRE , and a3.0 , because i haven’t released any versions in over 4 months.
devlog 8 It’s time… Yes, I’m finally shipping a3.0PRE. I thought i would have more time to release the whole version at once, but a new YSWS is starting today, and i haven’t released a bedrockR version in quite a while. Resource Building (again) I did fix the resources, so now they do build properly, but there are some weird bugs that i have no idea where to even start with… this is why i made a known issues file on the github, because im hoping i can narrow down what might be causing this. What to expect from this release This release is about 50% of the work that will be in a3.0, the release is lacking quite a few important things that the final release will have. Mainly workspace upgrading, new UI features, and more network features. You almost certainly WILL find bugs, I NEED these reported , I don’t want an a2.0.2 situation again, where the whole program was found to be broken AFTER I shipped. . Anyways, this might very well be the last of me on Stardance , thank you for following my code optimization journey, and I hope you enjoy bedrockR!
Ships:
I am shipping bedrockR a3.0PRE, a pre-release to the next major alpha version a3.0. bedrockR has been my main project for about a year now, starting it in Summer Of Making last year. This is the first bedrockR pre-release, you will most likely find bugs. Please report them here Please also read https://github.com/xFN10x/bedrockR/blob/master/a3PRE-known-issues.md to make sure you aren’t reporting already known issues....
|
1793004645.19799
|
1793091045.19799
|
|
43969
|
Smart Relocator ESP32 by @henilX0 | Stardance
|
henilX0
|
1
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T17:20:11Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Building this ESP32-powered automated robot was an awesome ride—it uses a sweeping servo and ultrasonic sensor to scan the area, detects objects, and pulls off precise turns using MPU6050 IMU feedback alongside custom 3D-printed rack-and-pinion parts. The trickiest part wasn’t just the code, but figuring out KiCad from scratch to design a compact, clean custom circuit board schematic, all while wrestling with the tight wiring and power stability for the motors and sensors.", "repo": "https://github.com/HENILX0/ESP32_SMART_ROBOT-", "demo": ""}]...
|
[{"post_id": 66823, "ts": "202 [{"post_id": 66823, "ts": "2026-09-12T18:39:26Z", "hours": 3.5917, "text": "Just wrapped up designing and routing the custom dual-layer PCB for my ESP32 Smart Robot in KiCad!Took quite a bit of time to get all the pin mapping and trace routing clean without messy crossovers. Here’s what’s packed onto the board:ESP32 DevKit footprint & MPU6050 IMU connectorPin headers for motor driver, ultrasonic sensor, and dual servosPower circuitry with DPDT switch, filter capacitors, and status LEDsChecked everything in the 3D viewer and all the component clearances look clean. Next up: exporting Gerbers and getting this board fabricated!"}, {"post_id": 59854, "ts": "2026-09-01T20:34:45Z", "hours": 2.5875, "text": "Finally back on track after taking about a week off due to some medical/health reasons! Today, I finished designing the complete rack-and-pinion servo gripper in Onshape and integrated it into the full mobile robot assembly. The CAD model is now 100% complete, including the multi-tier chassis, ultrasonic sensor mount, motor driver, and gripper mechanism. Since all the CAD designs are ready, I really need 3D printing grant support/help now to get these physical parts printed so I can start assembling the hardware!"}, {"post_id": 54045, "ts": "2026-08-24T20:06:51Z", "hours": 0.4503, "text": "Redesigned the spur gear and rack profiles in Onshape to get a better tooth fit and pitch alignment. Spent time tweaking assembly mates and testing how the mechanism converts servo rotation into smooth linear movement for the gripper arms. Still fine-tuning, but getting closer to the final assembly!"}, {"post_id": 53245, "ts": "2026-08-23T18:06:05Z", "hours": 0.3, "text": "Spent time in Onshape experimenting with different gear profiles and rack designs for the gripper! Tested tooth counts and pitch alignments to figure out how to convert the servo’s rotation into smooth linear motion. Still tweaking the design, but getting closer!"}, {"post_id": 52650, "ts": "2026-08-22T21:51:45Z", "hours": 1.8875, "text": "Modeled the gripper base plate in Onshape with integrated guide rails and gear clearance for the servo horn. Also mounted the HC-SR04 ultrasonic sensor to the top deck! Still working on finishing the moving gripper arms, but the base structure and sensor placement are locked in."}, {"post_id": 51941, "ts": "2026-08-21T21:48:17Z", "hours": 1.2344, "text": "Designed a custom H-shaped bracket in Onshape to mount the SG90 gripper servo directly onto the front chassis. Integrated precise cutout & screw mounts, aligned everything, and successfully mated the part into the main robot assembly!"}, {"post_id": 51338, "ts": "2026-08-20T23:00:26Z", "hours": 2.6814, "text": "Worked super hard today to completely redesign the robot chassis from scratch in Onshape! My main goal was to optimize material usage, keep the structure lightweight, and make physical assembly as easy as possible.The best part about this new design is all the open space ,there’s so much room from every side now. Routing wires, tuning components, or swapping parts like the ESP32 and motor driver will be totally effortless. Spent hours fine-tuning the component placement and layout, and everything fits together perfectly now!"}, {"post_id": 50564, "ts": "2026-08-19T19:29:04Z", "hours": 0.7011, "text": "Designed a custom mounting bracket for the HC-SR04 ultrasonic sensor in Onshape today! Created the front casing to hold the sensor, added filleted edges for structural rigidity, and integrated a bottom mounting arm to attach it to the servo motor."}, {"post_id": 49794, "ts": "2026-08-18T18:48:37Z", "hours": 0.7506, "text": "Fine-tuned chassis dimensions in Onshape and modeled two structural components: designed a precision grid of internal screw bosses on the base plate for component mounting, and created a custom plate with filleted edges and corner screw holes."}, {"post_id": 49141, "ts": "2026-08-17T19:32:06Z", "hours": 0.9847, "text": "Updated the chassis dimensions in Onshape for better alignment! Also designed and mounted the bracket connecting the ultrasonic sensor to the SG90 servo motor."}, {"post_id": 48459, "ts": "2026-08-16T20:14:17Z", "hours": 2.0519, "text": "Designed the top cover plate for the robot chassis in Onshape today! Added a custom honeycomb mesh pattern for weight reduction, integrated an exact cutout for the SG90 servo motor, and added corner screw bosses to mount it securely to the chassis."}, {"post_id": 47721, "ts": "2026-08-15T20:23:24Z", "hours": 1.9272, "text": "Updated the robot chassis dimensions in Onshape today! Arranged 3D models for components (motors, wheels, battery holder, and electronics) inside the frame to verify fitment and component spacing. Will keep tweaking dimensions as physical assembly progresses."}, {"post_id": 47135, "ts": "2026-08-14T20:10:20Z", "hours": 0.4178, "text": "Worked on the robot chassis CAD design in Onshape today! Added a custom pattern and configured the motor mounting dimensions so everything fits properly."}, {"post_id": 46538, "ts": "2026-08-13T20:42:42Z", "hours": 0.8614, "text": "Fixed the MPU6050 power drop issue today by properly wiring it with the capacitor setup on the PCB. After fixing the power, started designing the initial robot chassis base in Onshape to fit all components!"}, {"post_id": 45953, "ts": "2026-08-12T19:30:18Z", "hours": 2.7806, "text": "Fixed a short circuit today by replacing a damaged capacitor. Got the MPU6050 setup fully working and tested it with code. Also started drafting the 8cm target logic for the servo and ultrasonic sensor,will code the full logic tomorrow!"}, {"post_id": 45333, "ts": "2026-08-11T18:35:33Z", "hours": 0.9825, "text": "Wired and soldered the buck converter power setup. Ran into a short circuit issue whenever the ESP32 was connected and spent the entire session testing voltages and debugging (still in progress)."}, {"post_id": 44786, "ts": "2026-08-10T19:58:42Z", "hours": 2.5739, "text": "Finished soldering and hardware connections for the MPU6050 sensor today! Added this sensor so the robot can measure precise turning angles to face target objects accurately. Next step is writing the code for it!"}, {"post_id": 44094, "ts": "2026-08-09T17:03:31Z", "hours": 0.4006, "text": "Updated the robot’s code in Arduino IDE today! Fixed a few compilation errors in the logic and tweaked some code settings so everything runs smoothly now. Next step is testing it live on the chassis!"}, {"post_id": 43403, "ts": "2026-08-08T16:59:41Z", "hours": 1.8772, "text": "Wrote some new code in Arduino IDE today and wired up the ultrasonic sensor! I set the motor speed to 50% so it moves slow and doesn’t crash while testing. Right now, I’ve added a simple logic where as soon as the sensor detects an object in front, the robot moves towards it. Step by step getting it to work!"}, {"post_id": 43084, "ts": "2026-08-08T05:11:05Z", "hours": 1.6028, "text": "Finally built the first working prototype today! I mounted the ESP32, motor driver, and BO motors onto a temporary MDF board chassis to check wiring and component balance.Wrote custom code in Arduino IDE to handle motor control, flashed it to the board, and successfully verified basic movement!Next steps:Integrate the ultrasonic sensor for obstacle avoidance.Connect the servo motor for the gripper mechanism."}, {"post_id": 42288, "ts": "2026-08-06T22:32:07Z", "hours": 0.3, "text": "Devlog #1: Hardware Soldering & Power Distribution SetupTime Spent: 4 Hours Project Concept & Autonomous Logic Building an autonomous ESP32 mobile robot that identifies, grips, and clears obstacle objects to open areas.- Search & Detection: Ultrasonic sensor continuously scans forward; halts and aligns when an object enters the 8cm threshold.- Gripping & Spatial Mapping: Servo gripper secures the object. A servo-mounted ultrasonic sensor rotates 0°–180° to calculate the vector with maximum open clearance.- Relocation & Rescan: Robot navigates to the identified open space, drops the object, and rescans the environment.- Idle Search Loop: If no target is within 8cm, the robot incrementally pivots left in a continuous patrol-and-scan loop. What I Built Today (Hardware Progress) - Layout Design: Planned component placement and trace routing on Zero PCB board.- Power Regulation: Connected 18650 Li-ion battery pack to LM2596 Buck Converter for stable 5V output.- Header Sockets: Soldered 8-pin female header block for motor driver + male headers for ESP32, servos, and sensors.- Circuit Protection: Soldered main push-button switch and 1000µF decoupling capacitor across 5V rails to prevent ESP32 brownouts.- Auxiliary Power: Added separate 9V battery line to power motor drivers independently."}]...
|
Title: Smart Relocator ESP32 by @henilX0 | Stardan Title: Smart Relocator ESP32 by @henilX0 | Stardance
Devlogs:
Devlog #1: Hardware Soldering & Power Distribution SetupTime Spent: 4 Hours Project Concept & Autonomous Logic Building an autonomous ESP32 mobile robot that identifies, grips, and clears obstacle objects to open areas.- Search & Detection: Ultrasonic sensor continuously scans forward; halts and aligns when an object enters the 8cm threshold.- Gripping & Spatial Mapping: Servo gripper secures the object. A servo-mounted ultrasonic sensor rotates 0°–180° to calculate the vector with maximum open clearance.- Relocation & Rescan: Robot navigates to the identified open space, drops the object, and rescans the environment.- Idle Search Loop: If no target is within 8cm, the robot incrementally pivots left in a continuous patrol-and-scan loop. What I Built Today (Hardware Progress) - Layout Design: Planned component placement and trace routing on Zero PCB board.- Power Regulation: Connected 18650 Li-ion battery pack to LM2596 Buck Converter for stable 5V output.- Header Sockets: Soldered 8-pin female header block for motor driver + male headers for ESP32, servos, and sensors.- Circuit Protection: Soldered main push-button switch and 1000µF decoupling capacitor across 5V rails to prevent ESP32 brownouts.- Auxiliary Power: Added separate 9V battery line to power motor drivers independently.
Finally built the first working prototype today! I mounted the ESP32, motor driver, and BO motors onto a temporary MDF board chassis to check wiring and component balance.Wrote custom code in Arduino IDE to handle motor control, flashed it to the board, and successfully verified basic movement!Next steps:Integrate the ultrasonic sensor for obstacle avoidance.Connect the servo motor for the gripper mechanism.
Wrote some new code in Arduino IDE today and wired up the ultrasonic sensor! I set the motor speed to 50% so it moves slow and doesn’t crash while testing. Right now, I’ve added a simple logic where as soon as the sensor detects an object in front, the robot moves towards it. Step by step getting it to work!
Updated the robot’s code in Arduino IDE today! Fixed a few compilation errors in the logic and tweaked some code settings so everything runs smoothly now. Next step is testing it live on the chassis!
Finished soldering and hardware connections for the MPU6050 sensor today! Added this sensor so the robot can measure precise turning angles to face target objects accurately. Next step is writing the code for it!
Wired and soldered the buck converter power setup. Ran into a short circuit issue whenever the ESP32 was connected and spent the entire session testing voltages and debugging (still in progress).
Fixed a short circuit today by replacing a damaged capacitor. Got the MPU6050 setup fully working and tested it with code. Also started drafting the 8cm target logic for the servo and ultrasonic sensor,will code the full logic tomorrow!
Fixed the MPU6050 power drop issue today by properly wiring it with the capacitor setup on the PCB. After fixing the power, started designing the initial robot chassis base in Onshape to fit all components!
Worked on the robot chassis CAD design in Onshape today! Added a custom pattern and configured the motor mounting dimensions so everything fits properly.
Updated the robot chassis dimensions in Onshape today! Arranged 3D models for components (motors, wheels, battery holder, and electronics) inside the frame to verify fitment and component spacing. Will keep tweaking dimensions as physical assembly progresses.
Designed the top cover plate for the robot chassis in Onshape today! Added a custom honeycomb mesh pattern for weight reduction, integrated an exact cutout for the SG90 servo motor, and added corner screw bosses to mount it securely to the chassis.
Updated the chassis dimensions in Onshape for better alignment! Also designed and mounted the bracket connecting the ultrasonic sensor to the SG90 servo motor.
Fine-tuned chassis dimensions in Onshape and modeled two structural components: designed a precision grid of internal screw bosses on the base plate for component mounting, and created a custom plate with filleted edges and corner screw holes.
Designed a custom mounting bracket for the HC-SR04 ultrasonic sensor in Onshape today! Created the front casing to hold the sensor, added filleted edges for structural rigidity, and integrated a bottom mounting arm to attach it to the servo motor.
Worked super hard today to completely redesign the robot chassis from scratch in Onshape! My main goal was to optimize material usage, keep the structure lightweight, and make physical assembly as easy as possible.The best part about this new design is all the open space ,there’s so much room from every side now. Routing wires, tuning components, or swapping parts like the ESP32 and motor driver will be totally effortless. Spent hours fine-tuning the component placement and layout, and everything fits together perfectly now!
Designed a custom H-shaped bracket in Onshape to mount the SG90 gripper servo directly onto the front chassis. Integrated precise cutout & screw mounts, aligned everything, and successfully mated the part into the main robot assembly!
Modeled the gripper base plate in Onshape with integrated guide rails and gear clearance for the servo horn. Also mounted the HC-SR04 ultrasonic sensor to the top deck! Still working on finishing the moving gripper arms, but the base structure and sensor placement are locked in.
Spent time in Onshape experimenting with different gear profiles and rack designs for the gripper! Tested tooth counts and pitch alignments to figure out how to convert the servo’s rotation into smooth linear motion. Still tweaking the design, but getting closer!
Redesigned the spur gear and rack profiles in Onshape to get a better tooth fit and pitch alignment. Spent time tweaking assembly mates and testing how the mechanism converts servo rotation into smooth linear movement for the gripper arms. Still fine-tuning, but getting closer to the final assembly!
Finally back on track after taking about a week off due to some medical/health reasons! Today, I finished designing the complete rack-and-pinion servo gripper in Onshape and integrated it into the full mobile robot assembly. The CAD model is now 100% complete, including the multi-tier chassis, ultrasonic sensor mount, motor driver, and gripper mechanism. Since all the CAD designs are ready, I really need 3D printing grant support/help now to get these physical parts printed so I can start assembling the hardware!
Just wrapped up designing and routing the custom dual-layer PCB for my ESP32 Smart Robot in KiCad!Took quite a bit of time to get all the pin mapping and trace routing clean without messy crossovers. Here’s what’s packed onto the board:ESP32 DevKit footprint & MPU6050 IMU connectorPin headers for motor driver, ultrasonic sensor, and dual servosPower circuitry with DPDT switch, filter capacitors, and status LEDsChecked everything in the 3D viewer and all the component clearances look clean. Next up: exporting Gerbers and getting this board fabricated!
Ships:
Building this ESP32-powered automated robot was an awesome ride—it uses a sweeping servo and ultrasonic sensor to scan the area, detects objects, and pulls off precise turns using MPU6050 IMU feedback alongside custom 3D-printed rack-and-pinion parts. The trickiest part wasn’t just the code, but figuring out KiCad from scratch to design a compact, clean custom circuit board schematic, all while wrestling with the tight wiring and power stability for the motors and sensors....
|
1793004643.9334555
|
1793091043.9334555
|
|
6528
|
blockEm by @ondy | Stardance
|
ondy
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T17:02:16Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "blockEm What did you make? Custom app blocker/limiter aimed specifically to stop prolongued doomscrolling. Its currently specifically build around maximum scroll amount/day instead of the usual maximum time/day which is better system in my opinion. Features: Daily Scroll Limit - set maximum amount of scrolls/day before scrolling(not whole app) gets blocked Set Cheat Hours - ability to set cheat hours independently for each day of the week(regular apps usually only allow set time for all days). Allowing apps/dms/homepages… - you can ignore friends reels, tiktok messages, instagram homepage posts or even whole apps Overview - see your progress through the whole month and discover scroll patterns What was challenging? The hardest was to make sure the scrolls are detected in each part of each app, the detection works by taking the number of likes(and comments) and when it changes trying to figure out if that was a scroll. You can probably imagine that each app section has completely different like and comment buttons… What are you proud of? The fact that i went into this with 0 android app development knowledge How to test the project everything is on the github page", "repo": "https://github.com/0ndyy/blockEm/", "demo": "https://github.com/0ndyy/blockEm/releases/tag/0.1"}]...
|
[{"post_id": 75612, "ts": "202 [{"post_id": 75612, "ts": "2026-09-30T15:40:34Z", "hours": 1.6392, "text": "blockEm: productivity blocker devlog 4: This devlog i developed something reallu useful = CHEAT HOURS, i know lot of apps have those but most of the time you can only set hours and days, blockem allows you to set specific hours for each day - this can be especially usefull if you want to scroll in school or comute but not home/other places and have different schedules for each day of the week. Id like to share my struggles but this was really straight forward and i havent ran into many issues, the only thing i might change in the future is the native android time selection which is really ugly for some reason…"}, {"post_id": 34301, "ts": "2026-07-24T21:46:54Z", "hours": 4.4869, "text": "blockEm: productivity blocker devlog 3: After last time completely overhauling the whole system i alsmot had to do it again😭🙏. The system had many glitches and was overcomplicated. The new system relies on change in likes(or comments for backup) count to detect a scroll. I added a debug menu showing things such as current app, app section, like/comment count… which turned out to be really helpful - now the system is working so i can say version 0.1 is finished. I will now focus on adding more features(version 0.2, you can preview the roadmap in one of the screenshots) and better design(version 0.3 - hopefully this could be first public relese yay)"}, {"post_id": 8878, "ts": "2026-06-14T19:52:37Z", "hours": 3.5933, "text": "blockEm: productivity blocker devlog 2: Started completely reworking the tracking system, since the old one used math sizes and ratios, which are different on some platforms, it was unreliable and become quickly a mess. * To make this devlog at least a little bit visually interesting😭🙏 i implemented a startup screen and a scroll history section * Once im finished with the new system i will finally start implementing other features from just scroll counting, such as: app blocker, app timer, app unlocks per hour…"}, {"post_id": 5870, "ts": "2026-06-09T20:30:47Z", "hours": 1.335, "text": "blockEm: productivity blocker devlog 1.1: Decided to take a little break from coding and made this banner in photoshop, it took around 50 minutes. The remaining 30m is some bugfixing after last devlog. Overall im quite happy with how it turned out especially considering that art is my weaker side."}, {"post_id": 5625, "ts": "2026-06-09T14:33:55Z", "hours": 2.6528, "text": "blockEm: productivity blocker devlog 1: In this session i made huge progress, i implemented some helpful toggles(see image) and most importantly finally a blocker - after reaching set amount of scrolls it blocks you from scrolling further, its still a bit janky and can be bypassed, but i will work on that later on. * Also implementing to work the scroll counter across all apps and different types was a huge headache, i switched to math based detection - basically detecting different elements(back button, sent button, navigation bar…) and their sizes. On ig for example we have regualr reel, dm reels, fyp in dms, suggested reels etc. and all have different sizes n stuff - so like allowing first reel in dms and not allowing scrolling further was quite a challenge. Hopefully instagram doesnt chagne it in their next update😭🙏"}, {"post_id": 4187, "ts": "2026-06-07T12:36:09Z", "hours": 2.2464, "text": "devlog 0: implemented basic android app in kotlin, currently just asks for permissions and count the amount of scrolls you do per day(on tiktok, instagram and youtube); next i will start making some app ui and implementing blocking(scroll limit, app blocking ect.); also i am planning to soon relese it to public for any feedback so stay tuned"}]...
|
Title: blockEm by @ondy | Stardance
Devlogs:
devl Title: blockEm by @ondy | Stardance
Devlogs:
devlog 0: implemented basic android app in kotlin, currently just asks for permissions and count the amount of scrolls you do per day(on tiktok, instagram and youtube); next i will start making some app ui and implementing blocking(scroll limit, app blocking ect.); also i am planning to soon relese it to public for any feedback so stay tuned
blockEm: productivity blocker devlog 1: In this session i made huge progress, i implemented some helpful toggles(see image) and most importantly finally a blocker - after reaching set amount of scrolls it blocks you from scrolling further, its still a bit janky and can be bypassed, but i will work on that later on. * Also implementing to work the scroll counter across all apps and different types was a huge headache, i switched to math based detection - basically detecting different elements(back button, sent button, navigation bar…) and their sizes. On ig for example we have regualr reel, dm reels, fyp in dms, suggested reels etc. and all have different sizes n stuff - so like allowing first reel in dms and not allowing scrolling further was quite a challenge. Hopefully instagram doesnt chagne it in their next update😭🙏
blockEm: productivity blocker devlog 1.1: Decided to take a little break from coding and made this banner in photoshop, it took around 50 minutes. The remaining 30m is some bugfixing after last devlog. Overall im quite happy with how it turned out especially considering that art is my weaker side.
blockEm: productivity blocker devlog 2: Started completely reworking the tracking system, since the old one used math sizes and ratios, which are different on some platforms, it was unreliable and become quickly a mess. * To make this devlog at least a little bit visually interesting😭🙏 i implemented a startup screen and a scroll history section * Once im finished with the new system i will finally start implementing other features from just scroll counting, such as: app blocker, app timer, app unlocks per hour…
blockEm: productivity blocker devlog 3: After last time completely overhauling the whole system i alsmot had to do it again😭🙏. The system had many glitches and was overcomplicated. The new system relies on change in likes(or comments for backup) count to detect a scroll. I added a debug menu showing things such as current app, app section, like/comment count… which turned out to be really helpful - now the system is working so i can say version 0.1 is finished. I will now focus on adding more features(version 0.2, you can preview the roadmap in one of the screenshots) and better design(version 0.3 - hopefully this could be first public relese yay)
blockEm: productivity blocker devlog 4: This devlog i developed something reallu useful = CHEAT HOURS, i know lot of apps have those but most of the time you can only set hours and days, blockem allows you to set specific hours for each day - this can be especially usefull if you want to scroll in school or comute but not home/other places and have different schedules for each day of the week. Id like to share my struggles but this was really straight forward and i havent ran into many issues, the only thing i might change in the future is the native android time selection which is really ugly for some reason…
Ships:
blockEm What did you make? Custom app blocker/limiter aimed specifically to stop prolongued doomscrolling. Its currently specifically build around maximum scroll amount/day instead of the usual maximum time/day which is better system in my opinion. Features: Daily Scroll Limit - set maximum amount of scrolls/day before scrolling(not whole app) gets blocked Set Cheat Hours - ability to set cheat hours independently for each day of the week(regular apps usually only allow set time for all days). Allowing apps/dms/homepages… - you can ignore friends reels, tiktok messages, instagram homepage posts or even whole apps Overview - see your progress through the whole month and discover scroll patterns What was challenging? The hardest was to make sure the scrolls are detected in each part of each app, the detection works by taking the number of likes(and comments) and when it changes trying to figure out if that was a scroll. You can probably imagine that each app section has completely different like and comment buttons… What are you proud of? The fact that i went into this with 0 android app development knowledge How to test the project everything is on the github page...
|
1793004642.7542288
|
1793091042.7542288
|
|
43932
|
Abi vault by @jeremy | Stardance
|
jeremy
|
1
|
59.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T17:43:22Z", "hours": 59.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "AbiVault AbiVault is a finance management web app built with Next.js, TypeScript, Tailwind CSS, Supabase, and Clerk . I built it because my school needed a better way to manage the money around our Abitur. Students organize things like the Abiball, parties, fundraising, and merchandise themselves, which means we also have to keep track of income, expenses, budgets, and the current balance. AbiVault is mainly made for Abitur committees and student finance teams . It gives multiple students access to the same financial data and makes it easier to keep everything organized without relying on several spreadsheets, documents, and group chats. Features Track income and expenses Manage transactions and categories View the current balance Create and manage budgets Support multiple users View simple financial statistics Tech Stack Next.js TypeScript Tailwind CSS Supabase for the database and backend Clerk for authentication and user management The main goal is to make managing Abitur finances simpler, more organized, and more transparent for everyone involved.", "repo": "https://github.com/jeremy341/abi-vault/tree/open-source-demo", "demo": "https://abi-vault-demo.vercel.app/"}]...
|
[{"post_id": 63715, "ts": "202 [{"post_id": 63715, "ts": "2026-09-07T17:30:42Z", "hours": 2.5175, "text": "Abi Valut - Last Devlog This phase about cleaning UI elements changing the language of the whole demo website to english and fully preparing it for the offical stardance submission as the offical private one was alredy online for a good while and had near to 0 bugs. Cards This isnt a feature newly added but I just wanted to mention that our system in theory supports cards through gocardless but that isnt setup so its not usable at the moment though the backend exists and for a while even Ui existed but I have removed that. Translation This wasnt so hard just pretty time consuming going over everything and translating every single text. Refelection Pretty proud of myself as I managed to push out a full working apllication of course this isnt 100% selfcoded for example backend features but it is more then fine for what I was aiming to do and It works perfectly. Trying out here is a link to the demo for everybody wanting to try it out. https://abi-vault-demo.vercel.app/"}, {"post_id": 59073, "ts": "2026-08-31T17:57:37Z", "hours": 5.6472, "text": "Abi Vault - Devlog 10 This phase was just about creating a demo website for the stardance people. Creating One new tab and cleaning up the final UI. Finish I finished with fully creating the full application privatly and fixing all bugs Ui and backend and also created one new tab which was interseting. Stardance Demo I made a second copy of my repo removed all clerk dependecies translated all the text from german into english and setup a second Supabase and vercel project this will be used without loging which allows for everybody to use and test it. Next Steps creating the readme, cleaning up a bit and its ready for ship"}, {"post_id": 55712, "ts": "2026-08-27T18:01:07Z", "hours": 9.6378, "text": "Abi Vault - Devlog 9 This phase was mostly about moving everything from development to production, using the actual domain, finalising the system, rewriting a bit of the structure and fixing bugs. UI So I finalised the iPad UI and added multiple simple spinner animations and slide-in animations. I also worked a bit more on the blank states, what the placeholder text should say and how everything should look. Right now I am still in the process of finalising the phone UI, as the blank states fucked it up a bit. Logic I rewrote 2 large sections. As I realised in the last devlog that I couldn’t use a bank API, I needed to rewrite the logic of how the platform worked. I decided to keep the cards and make them a visual representation of the physical cash. I also decided to fully transition the system to being ledger-based, which was pretty obvious since we now don’t have an API. For anybody asking, ledger-based basically just means that the system calculates the balances and tracks how everything is performing based on the values that users manually enter. i also decided to create an invite system link so people cant just signup if they somehow find the software and it only works by getting a link from the Admin. For the Supervisor role its a 30 day link for up to 30 people and for admin its a onetime link for up to 7 days and 1 user. Domain I also decided to buy a domain, which I originally didn’t want to do as I thought Vercel was all I needed. However, Clerk required a custom domain so I could move everything from development to production. Also, for anybody asking, I will not reveal the name of the domain as this is a closed platform. That’s also why I made it as badly SEO-optimised as possible in the metadata. And for anybody wondering, this domain cost me A WHOLE $0.07 a month. Quite expensive if you ask me. Clerk Clerk was quite the hassle because, as mentioned before, my plan was to just use Vercel, but Clerk essentially forced a custom domain onto me. Another thing I didn’t know was that under my student plan I was only allowed 2 roles and wasn’t able to add another custom one. This became a bottleneck as I originally had 3 roles in mind: Student Admin Supervisor In the end I decided to scrap Admin and make it only Student and Supervisor. Supabase This part was quite simple as most of it was already finished. I mainly needed to work on the role permissions and also add a caching system because I noticed that some pages would load for 1–2 seconds every time. That’s just bad UX, especially when it happens even during a simple tab switch. The caching system now keeps already-loaded data available where possible instead of unnecessarily fetching everything again. Next Steps The next steps is now creating a demo version and a better opensoure version so people can use my software without depending on my vercel, supabase and etc. Or maybe I will host another workspace of this exact software for hackclub so people can try it what would be your advise for that?"}, {"post_id": 54706, "ts": "2026-08-25T19:36:18Z", "hours": 8.9725, "text": "Abi Vault - Devlog 8 This phase was mainly about the backend which i have to confess i had to use AI for as it was complicated with supabase clerk and just rotuing everything together. Failed bank API My plan was to allow the use of real bank cards and getting all their information through a bank API, but i missed sth important either you handle all bank apis from all providers yourself or you get a service to do it. The problem is there is no free Opensource service which allows for this and to keep it a buck iam broke asf. So i scraped the Idea and made it only ledger based which means it gets calucalted automatically but you have to write down all transactions and etc. SupaBase This was quite hard as Supabase is hella confusing prob one of the most confusing UI i have ever seen but after some back and forth with the Ai i was able to set it up though i still need to learn a bit as I really didnt undestand what i did there. Clerk this was quite easy clerk really allows for easy synchronisation and it was quite easy to set up the 3 classes admin, supervisor, and student I also made it so the software is request only for the moment so i can send a request with a certain authorisatzion and the User creates their account. But will probally change that soon Next Steps I will probally either get a domain grant or just buy it from my own money and prepare to launch the website over nest. Its nearly finished and the onlz fixes are small UI mismatches, better animation adding things like skelleton loaders and etc."}, {"post_id": 53076, "ts": "2026-08-23T14:18:51Z", "hours": 12.2586, "text": "Abi Vault - Devlog 7 This section was mainly about adding all other pages creating a fully nice looking functionial phone UI and just cleaning up the UI in general. Pages I created the rest of the pages and created place holders for them and now a whole system is in place the only thing left is writing real logic and conecting it to a server to get user auth. Phone UI This was the biggest phase of this Project i first started with scraping our already existing phone UI and started gathering references I decided to use klarna as they got quite the clean UI. I first started with adding the sidebar to the bottom to make it easier accsessible. I also needed quite A long time to make the UI look clean with adding animation for the modals and making them appear from underneath and not spawn in the middle of the screen Next Steps Now that the UI is kinda finished and school starts in 1 week the next step is creating a fully functional backend syncing the application with superbase and other services so I have a first working demo which I can continue working on during the school year."}, {"post_id": 47087, "ts": "2026-08-14T18:38:37Z", "hours": 8.9711, "text": "Abi Vault - Devlog 6 This section was mainly about cleaning up the UI, making the different pages more synchron and creating a more structured UI system for the whole website. UI System I worked on making the design more consistent across the dashboard, transactions and receipts page. Before that many aspects were styled slightly different like the spacing, typography, buttons, dropdowns and card sizes. I started creating shared rules and components so the pages follow the same visual identity and feel more connected. Transactions and Receipts I created and implemented the full transactions page with filters, a filter modal, pagination, placeholder transactions and a structured transaction table. I also created the receipts page with placeholder receipts, status filters, pagination and a modal for adding new receipts. Both pages use the existing Abi Vault sidebar, topbar, colors and general design language. Dashboard Cleanup I added more placeholder transactions to the dashboard so the transaction history feels more complete and does not leave as much empty space. I also added another spending category and adjusted the review section so the right side feels more balanced with the transaction history on the left. 1920px and 2560px A big part of this session was cleaning up the layout for both 1920px and 2560px screens. The layouts looked very different depending on the screen size because of adaptive heights and spacing. I adjusted the cards, rows, table containers and page spacing so the website stays inside the viewport and does not become scrollable on the supported resolutions. The 2560px version was especially difficult because there was a lot of empty space, but simply scaling everything up did not look good. Instead I had to create separate wide-screen adjustments, add more rows and balance the different cards while keeping the 1920px layout unchanged. Results This was a productive session but also quite difficult because many small CSS changes affected multiple pages. The UI now feels much more consistent and the Transactions and Receipts pages are much closer to the final design. I still need to refine some spacing differences between the pages and test everything more carefully, but the main structure is now in place and the beta version is getting closer. For anyone wondering about the phone UI I havent touched it in a while and decided to just create it at the end because its such a hedache"}, {"post_id": 44810, "ts": "2026-08-10T20:43:33Z", "hours": 1.1994, "text": "Abi Vault - Devlog 5 This section was mainly about refining the UI further and fixing some bugs regarding the CSS and how the website look on the phone. Dark Mode I had some bugs with the dark mode becuase as you could see in the video of the last devlog the Clerk system wasnt adjustet as i forgot it. This took quite some while to sync it to ts and css variable but with some AI it was possible. Phone UI This was hell i genuinly couldnt manage fixing the Phone UI and even then i had to change so many different things because the phone ui is just different entirely and you need to hide so many differnt aspects and even replace symbols the most challenging part was reanging the dashboard so it really fits into a phone overview and after getting stuck for 30 minutes i just decided to ask AI and let it expain what was wrong Card customisatzion modal Also worked on the card customisation model cleaning up Ui and implementing restriction like max character limits, dates that arent expired and etc Results pretty uncessful session and didnt code much by hand because it was so difficult also the progress is way to slow so iam going to pick up the pace to atleas have an beta ready at the end of august which is usable."}, {"post_id": 43510, "ts": "2026-08-08T20:33:37Z", "hours": 3.2119, "text": "Abi vault - Devlog 4 This Section was mainly about adding cool effects with Tailwind CSS and refining the UI further. I also used Figma to design the card and saved it as an SVG. Figma This was quite simple and fast. I used references from cards like the ones Klarna uses and designed the card from there. To give it a more metallic look, I used a linear gradient with three stops at a certain angle. The problem was that I worked in the Figma app instead of the browser, and the browser connection kept disconnecting and reconnecting. so i coudlnt track hackatime for it/ Cards The cards are combined with SVG and TSX. The SVG is responsible for the background, including the gradient, border, and rounded corners. The card text is rendered separately in TSX and positioned above the SVG using a layered container. This allows the account name, number, card holder, expiry date, and color to change dynamically. Visual effect The visual effects include a subtle 3D tilt that reacts to the mouse position. The code calculates the mouse position relative to the card and converts it into tilt values for the X and Y axes. These values are saved as CSS variables and used by rotateX() and rotateY() . const relativeX = ( event . clientX - bounds . left ) / bounds . width ; const relativeY = ( event . clientY - bounds . top ) / bounds . height ; const rotateX = ( 0.5 - relativeY ) * 8 ; const rotateY = ( relativeX - 0.5 ) * 8 ; event . currentTarget . style . setProperty ( \" --tilt-x \" , ` ${ rotateX } deg` ); event . currentTarget . style . setProperty ( \" --tilt-y \" , ` ${ rotateY } deg` ); When the mouse leaves, the card resets to 0deg . It also has a diagonal light-sweep animation and slightly lifts on hover. The white card uses a separate metallic gradient and darker shine. Card Logic Cards are stored in React state, and cardIndex controls which card is visible. The modals allow cards to be added, edited, or deleted. Currently, cards reset after refreshing and will later be saved in a database connected to the Clerk user or class. Results Iam pretty proud of myself of the result though I did have to use AI for how to create the Card logic so the text is interactive at first I thought about redrawing the SVG everytime as i did sth smiliar in my README but that didnt make sense, so i asked AI as for the darkmode i needed to watch some tuts and for the same for the tilt and a bit of AI for it"}, {"post_id": 42817, "ts": "2026-08-07T18:48:58Z", "hours": 0.9725, "text": "Abi vault - Devlog 3 This section was more about battling my typscript skills and cleaning up the UI minimal also added the account system easily with clerk bless clear Account system This was quite simple in theory but I had some difficulties making it compatible for both phone and desktop because they should appear in different location and I didnt really know how to do it, but iam really thankfull i choose clerk because of that I dont have to code the account system by scratch and get a easy to use account system Results Was pretty difficult but learn about utilizing hidden and tailwind css to hide certain ui elements on certain devices."}, {"post_id": 42091, "ts": "2026-08-06T17:34:38Z", "hours": 2.4622, "text": "Abi Vault - Devlog 2 Today I focused on making the login system and a simple sidebar utilizing clerk shadcn.ui and lucid react components for the icons Clerk System I integrated Clerk’s prebuilt and components and customized their appearance to match Abi Manager’s clean black-and-white design. Access to the dashboard is protected so only authenticated users can view it. Sidebar This was quite difficult because i never advanced much with my HTMl skills and still havent really done semantic html which i will continue now on free code camp, at first i thought creating it myself was the play and I did and it was difficult but with some googling and AI I managed btu I realised that I wanted to make this fully compabtible with Ai so i decided to use the one from shadcn which already comes with a mobile function. I also noticed while coding that I paster the for the buttons 8 times, so i used that moments to learn how to create reusable componenets Results Pretty good session I am still having difficulties with tailwind as it just feels weird and looks weird to design in the code but its going good"}, {"post_id": 41440, "ts": "2026-08-05T17:33:15Z", "hours": 2.9972, "text": "Abi Vault Day One in this section i did simple setup and mapped the features the app should have About I decided to build this project to finally explore modern web development. So far, I have only created simple websites without many features or animations, but I wanted to create something more modern. Since I am approaching my final years of high school in Germany, we have something called an Abi Party, for which different committees have to collect and manage money. My aim is to create a simple website to track the finances with three account levels. Admin, Commite Members and students affected. The aim is to create a Next.js tailwind website which allows for adding bank account and seeing the money history though the bank Api uploading reciepts and more. Built the Welcome Page and added clerk So i started with building the homepage and learning tailwind, tsx and next.js which was quite weird and took a good while but it wasnt that hard as its similar to html syntax with a js twist. I had difficulties with tailwind as I found myself writing a really long line but I found out you can reference tailwind and just add it in CSS without having everything in the Tsx. I also connected Clerk and set it up. The reason this took so long was because of learning all these new languages but the next post and features should be a lot faster. Next Steps Create the rough system with a tab system simple dashboard and login and signup screen when buttons pressed"}]...
|
Title: Abi vault by @jeremy | Stardance
Devlogs:
Title: Abi vault by @jeremy | Stardance
Devlogs:
Abi Vault Day One in this section i did simple setup and mapped the features the app should have About I decided to build this project to finally explore modern web development. So far, I have only created simple websites without many features or animations, but I wanted to create something more modern. Since I am approaching my final years of high school in Germany, we have something called an Abi Party, for which different committees have to collect and manage money. My aim is to create a simple website to track the finances with three account levels. Admin, Commite Members and students affected. The aim is to create a Next.js tailwind website which allows for adding bank account and seeing the money history though the bank Api uploading reciepts and more. Built the Welcome Page and added clerk So i started with building the homepage and learning tailwind, tsx and next.js which was quite weird and took a good while but it wasnt that hard as its similar to html syntax with a js twist. I had difficulties with tailwind as I found myself writing a really long line but I found out you can reference tailwind and just add it in CSS without having everything in the Tsx. I also connected Clerk and set it up. The reason this took so long was because of learning all these new languages but the next post and features should be a lot faster. Next Steps Create the rough system with a tab system simple dashboard and login and signup screen when buttons pressed
Abi Vault - Devlog 2 Today I focused on making the login system and a simple sidebar utilizing clerk shadcn.ui and lucid react components for the icons Clerk System I integrated Clerk’s prebuilt and components and customized their appearance to match Abi Manager’s clean black-and-white design. Access to the dashboard is protected so only authenticated users can view it. Sidebar This was quite difficult because i never advanced much with my HTMl skills and still havent really done semantic html which i will continue now on free code camp, at first i thought creating it myself was the play and I did and it was difficult but with some googling and AI I managed btu I realised that I wanted to make this fully compabtible with Ai so i decided to use the one from shadcn which already comes with a mobile function. I also noticed while coding that I paster the for the buttons 8 times, so i used that moments to learn how to create reusable componenets Results Pretty good session I am still having difficulties with tailwind as it just feels weird and looks weird to design in the code but its going good
Abi vault - Devlog 3 This section was more about battling my typscript skills and cleaning up the UI minimal also added the account system easily with clerk bless clear Account system This was quite simple in theory but I had some difficulties making it compatible for both phone and desktop because they should appear in different location and I didnt really know how to do it, but iam really thankfull i choose clerk because of that I dont have to code the account system by scratch and get a easy to use account system Results Was pretty difficult but learn about utilizing hidden and tailwind css to hide certain ui elements on certain devices.
Abi vault - Devlog 4 This Section was mainly about adding cool effects with Tailwind CSS and refining the UI further. I also used Figma to design the card and saved it as an SVG. Figma This was quite simple and fast. I used references from cards like the ones Klarna uses and designed the card from there. To give it a more metallic look, I used a linear gradient with three stops at a certain angle. The problem was that I worked in the Figma app instead of the browser, and the browser connection kept disconnecting and reconnecting. so i coudlnt track hackatime for it/ Cards The cards are combined with SVG and TSX. The SVG is responsible for the background, including the gradient, border, and rounded corners. The card text is rendered separately in TSX and positioned above the SVG using a layered container. This allows the account name, number, card holder, expiry date, and color to change dynamically. Visual effect The visual effects include a subtle 3D tilt that reacts to the mouse position. The code calculates the mouse position relative to the card and converts it into tilt values for the X and Y axes. These values are saved as CSS variables and used by rotateX() and rotateY() . const relativeX = ( event . clientX - bounds . left ) / bounds . width ; const relativeY = ( event . clientY - bounds . top ) / bounds . height ; const rotateX = ( 0.5 - relativeY ) * 8 ; const rotateY = ( relativeX - 0.5 ) * 8 ; event . currentTarget . style . setProperty ( " --tilt-x " , ` ${ rotateX } deg` ); event . currentTarget . style . setProperty ( " --tilt-y " , ` ${ rotateY } deg` ); When the mouse leaves, the card resets to 0deg . It also has a diagonal light-sweep animation and slightly lifts on hover. The white card uses a separate metallic gradient and darker shine. Card Logic Cards are stored in React state, and cardIndex controls which card is visible. The modals allow cards to be added, edited, or deleted. Currently, cards reset after refreshing and will later be saved in a database connected to the Clerk user or class. Results Iam pretty proud of myself of the result though I did have to use AI for how to create the Card logic so the text is interactive at first I thought about redrawing the SVG everytime as i did sth smiliar in my README but that didnt make sense, so i asked AI as for the darkmode i needed to watch some tuts and for the same for the tilt and a bit of AI for it
Abi Vault - Devlog 5 This section was mainly about refining the UI further and fixing some bugs regarding the CSS and how the website look on the phone. Dark Mode I had some bugs with the dark mode becuase as you could see in the video of the last devlog the Clerk system wasnt adjustet as i forgot it. This took quite some while to sync it to ts and css variable but with some AI it was possible. Phone UI This was hell i genuinly couldnt manage fixing the Phone UI and even then i had to change so many different things because the phone ui is just different entirely and you need to hide so many differnt aspects and even replace symbols the most challenging part was reanging the dashboard so it really fits into a phone overview and after getting stuck for 30 minutes i just decided to ask AI and let it expain what was wrong Card customisatzion modal Also worked on the card customisation model cleaning up Ui and implementing restriction like max character limits, dates that arent expired and etc Results pretty uncessful session and didnt code much by hand because it was so difficult also the progress is way to slow so iam going to pick up the pace to atleas have an beta ready at the end of august which is usable.
Abi Vault - Devlog 6 This section was mainly about cleaning up the UI, making the different pages more synchron and creating a more structured UI system for the whole website. UI System I worked on making the design more consistent across the dashboard, transactions and receipts page. Before that many aspects were styled slightly different like the spacing, typography, buttons, dropdowns and card sizes. I started creating shared rules and components so the pages follow the same visual identity and feel more connected. Transactions and Receipts I created and implemented the full transactions page with filters, a filter modal, pagination, placeholder transactions and a structured transaction table. I also created the receipts page with placeholder receipts, status filters, pagination and a modal for adding new receipts. Both pages use the existing Abi Vault sidebar, topbar, colors and general design language. Dashboard Cleanup I added more placeholder transactions to the dashboard so the transaction history feels more complete and does not leave as much empty space. I also added another spending category and adjusted the review section so the right side feels more balanced with the transaction history on the left. 1920px and 2560px A big part of this session was cleaning up the layout for both 1920px and 2560px screens. The layouts looked very different depending on the screen size because of adaptive heights and spacing. I adjusted the cards, rows, table containers and page spacing so the website stays inside the viewport and does not become scrollable on the supported resolutions. The 2560px version was especially difficult because there was a lot of empty space, but simply scaling everything up did not look good. Instead I had to create separate wide-screen adjustments, add more rows and balance the different cards while keeping the 1920px layout unchanged. Results This was a productive session but also quite difficult because many small CSS changes affected multiple pages. The UI now feels much more consistent and the Transactions and Receipts pages are much closer to the final design. I still need to refine some spacing differences between the pages and test everything more carefully, but the main structure is now in place and the beta version is getting closer. For anyone wondering about the phone UI I havent touched it in a while and decided to just create it at the end because its such a hedache
Abi Vault - Devlog 7 This section was mainly about adding all other pages creating a fully nice looking functionial phone UI and just cleaning up the UI in general. Pages I created the rest of the pages and created place holders for them and now a whole system is in place the only thing left is writing real logic and conecting it to a server to get user auth. Phone UI This was the biggest phase of this Project i first started with scraping our already existing phone UI and started gathering references I decided to use klarna as they got quite the clean UI. I first started with adding the sidebar to the bottom to make it easier accsessible. I also needed quite A long time to make the UI look clean with adding animation for the modals and making them appear from underneath and not spawn in the middle of the screen Next Steps Now that the UI is kinda finished and school starts in 1 week the next step is creating a fully functional backend syncing the application with superbase and other services so I have a first working demo which I can continue working on during the school year.
Abi Vault - Devlog 8 This phase was mainly about the backend which i have to confess i had to use AI for as it was complicated with supabase clerk and just rotuing everything together. Failed bank API My plan was to allow the use of real bank cards and getting all their information through a bank API, but i missed sth important either you handle all bank apis from all providers yourself or you get a service to do it. The problem is there is no free Opensource service which allows for this and to keep it a buck iam broke asf. So i scraped the Idea and made it only ledger based which means it gets calucalted automatically but you have to write down all transactions and etc. SupaBase This was quite hard as Supabase is hella confusing prob one of the most confusing UI i have ever seen but after some back and forth with the Ai i was able to set it up though i still need to learn a bit as I really didnt undestand what i did there. Clerk this was quite easy clerk really allows for easy synchronisation and it was quite easy to set up the 3 classes admin, supervisor, and student I also made it so the software is request only for the moment so i can send a request with a certain authorisatzion and the User creates their account. But will probally change that soon Next Steps I will probally either get a domain grant or just buy it from my own money and prepare to launch the website over nest. Its nearly finished and the onlz fixes are small UI mismatches, better animation adding things like skelleton loaders and etc.
Abi Vault - Devlog 9 This phase was mostly about moving everything from development to production, using the actual domain, finalising the system, rewriting a bit of the structure and fixing bugs. UI So I finalised the iPad UI and added multiple simple spinner animations and slide-in animations. I also worked a bit more on the blank states, what the placeholder text should say and how everything should look. Right now I am still in the process of finalising the phone UI, as the blank states fucked it up a bit. Logic I rewrote 2 large sections. As I realised in the last devlog that I couldn’t use a bank API, I needed to rewrite the logic of how the platform worked. I decided to keep the cards and make them a visual representation of the physical cash. I also decided to fully transition the system to being ledger-based, which was pretty obvious since we now don’t have an API. For anybody asking, ledger-based basically just means that the system calculates the balances and tracks how everything is performing based on the values that users manually enter. i also decided to create an invite system link so people cant just signup if they somehow find the software and it only works by getting a link from the Admin. For the Supervisor role its a 30 day link for up to 30 people and for admin its a onetime link for up to 7 days and 1 user. Domain I also decided to buy a domain, which I originally didn’t want to do as I thought Vercel was all I needed. However, Clerk required a custom domain so I could move everything from development to production. Also, for anybody asking, I will not reveal the name of the domain as this is a closed platform. That’s also why I made it as badly SEO-optimised as possible in the metadata. And for anybody wondering, this domain cost me A WHOLE $0.07 a month. Quite expensive if you ask me. Clerk Clerk was quite the hassle because, as mentioned before, my plan was to just use Vercel, but Clerk essentially forced a custom domain onto me. Another thing I didn’t know was that under my student plan I was only allowed 2 roles and wasn’t able to add another custom one. This became a bottleneck as I originally had 3 roles in mind: Student Admin Supervisor In the end I decided to scrap Admin and make it only Student and Supervisor. Supabase This part was quite simple as most of it was already finished. I mainly needed to work on the role permissions and also add a caching system because I noticed that some pages would load for 1–2 seconds every time. That’s just bad UX, especially when it happens even during a simple tab switch. The caching system now keeps already-loaded data available where possible instead of unnecessarily fetching everything again. Next Steps The next steps is now creating a demo version and a better opensoure version so people can use my software without depending on my vercel, supabase and etc. Or maybe I will host another workspace of this exact software for hackclub so people can try it what would be your advise for that?
Abi Vault - Devlog 10 This phase was just about creating a demo website for the stardance people. Creating One new tab and cleaning up the final UI. Finish I finished with fully creating the full application privatly and fixing all bugs Ui and backend and also created one new tab which was interseting. Stardance Demo I made a second copy of my repo removed all clerk dependecies translated all the text from german into english and setup a second Supabase and vercel project this will be used without loging which allows for everybody to use and test it. Next Steps creating the readme, cleaning up a bit and its ready for ship
Abi Valut - Last Devlog This phase about cleaning UI elements changing the language of the whole demo website to english and fully preparing it for the offical stardance submission as the offical private one was alredy online for a good while and had near to 0 bugs. Cards This isnt a feature newly added but I just wanted to mention that our system in theory supports cards through gocardless but that isnt setup so its not usable at the moment though the backend exists and for a while even Ui existed but I have removed that. Translation This wasnt so hard just pretty time consuming going over everything and translating every single text. Refelection Pretty proud of myself as I managed to push out a full working apllication of course this isnt 100% selfcoded for example backend features but it is more then fine for what I was aiming to do and It works perfectly. Trying out here is a link to the demo for everybody wanting to try it out. https://abi-vault-demo.vercel.app/
Ships:
AbiVault AbiVault is a finance management web app built with Next.js, TypeScript, Tailwind CSS, Supabase, and Clerk . I built it because my school needed a better way to manage the money around our Abitur. Students organize things like the Abiball, parties, fundraising, and merchandise themselves, which means we also have to keep track of income, expenses, budgets, and the current balance. AbiVault is mainly made for Abitur committees and student finance teams . It gives multiple students access to the same financial data and makes it easier to keep everything organized without relying on several spreadsheets, documents, and group chats. Features Track income and expenses Manage transactions and categories View the current balance Create and manage budgets Support multiple users View simple financial statistics Tech Stack Next.js TypeScript Tailwind CSS Supabase for the database and backend Clerk for authentication and user management The main goal is to make managing Abitur finances simpler, more organized, and more transparent for everyone involved....
|
1793004641.5412035
|
1793091041.5412035
|
|
43910
|
BIT-BOT by @singhshiv3108 | Stardance
|
singhshiv3108
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T15:12:35Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Slack bot named Bit-Bot, it shows ysws catalog and details. Challenging part was playing with api. I am proud of That it works as intended", "repo": "https://github.com/ShivSingh3108/Slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B8B8SR86A"}]...
|
[{"post_id": 66058, "ts": "202 [{"post_id": 66058, "ts": "2026-09-11T17:00:26Z", "hours": 1.5628, "text": "In this Devlog , I made my bot give details about specific ysws events(Status, Description and Deadline). Also Added 2 not so important commands( one gives info about bot and other feeds bit bot)."}, {"post_id": 63056, "ts": "2026-09-06T17:12:10Z", "hours": 1.0086, "text": "I am working on Slack bot (bit bot). In this Devlog I did initial setup for bot and add commands like ascend which pings and ysws which shows ysws catalog. Getting Api and Show what i want to was the hardest part . In next Devlog I’ll add sortng feature and more. Thank you(Attached picture is output my bot."}]...
|
Title: BIT-BOT by @singhshiv3108 | Stardance
Devl Title: BIT-BOT by @singhshiv3108 | Stardance
Devlogs:
I am working on Slack bot (bit bot). In this Devlog I did initial setup for bot and add commands like ascend which pings and ysws which shows ysws catalog. Getting Api and Show what i want to was the hardest part . In next Devlog I’ll add sortng feature and more. Thank you(Attached picture is output my bot.
In this Devlog , I made my bot give details about specific ysws events(Status, Description and Deadline). Also Added 2 not so important commands( one gives info about bot and other feeds bit bot).
Ships:
I made Slack bot named Bit-Bot, it shows ysws catalog and details. Challenging part was playing with api. I am proud of That it works as intended...
|
1793004640.6373284
|
1793091040.6373284
|
|
43907
|
Flappy Bird Console by @artitule | Stardance
|
artitule
|
1
|
40.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T19:05:53Z", "hours": 40.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built FlappyINO a small form factor portable Flappy Bird Console. It is easy to take with you and enjoy on the go. It is based around the ATmega328P IC (the same IC that is used in the Arduino UNO and NANO) so the project is very easy to build from readily available parts. Also since the same IC is used in popular Arduino boards the project can be built on a breadboard and tested beforehand with ease. This project was started before Stardance but before only the game part was there. Since Stardance the project became a lot more polished and i was able to add a lot of the features that were missing before. I rewrote the code to use the more user friendly VSCode + PlatformIO combo instead of the ArduinoIDE, before the code was organized in what ArduinoIDE calls “Tabs”. Now the code is organized in actual files and this is an actual software project. Apart from that in the v2 release i added: A game progression system with difficulty unlocks and more game modes, a Settings menu for graphical features, landing and takeoff animations, better UI and so much more. Please see the README to see the full list of changes and see the demo video for the gameplay. As this is a hardware project and you can’t run something like Unity on a IC that has 2Kb of SRAM and 32Kb of flash you need to implement all of the “basic” things that you can do with a couple lines of code in game engine like collision detection, game loop, player inputs, accurate timings and stable FPS needs implementation by hand. This was by far the hardest part (together with game optimization and asset storage) that i had to overcome to finish this project. I’m most proud of being able to combine all of these aspects into one and get something that is stable/reliable and responsive but also compact so that you can carry the whole console on your keychain. Don’t even get me started on the responsive part. Since the game needs to get faster and faster (otherwise it would get really boring) you will be quickly met with restrictions to how much data you can process and send to the display while keeping the game responsive and not slowing it down. Here even at 30 FPS you need to basically redraw 128x64=8.192 pixels every 33 ish milliseconds. On a modern computer that is not that hard but on a 8MHz microcontroller that is no easy feat. In the end i had to cut down and optimize almost all of the “redraws” to minimize the amount that needs to be actually “redrawn”. To test the project select the hardware you want to run the project on (the PCB or an Arduino Board) go to the GitHub repository and follow the steps for the connections and code uploading. You can also watch the demo video beforehand to get more information about the project. I really enjoyed being a part of the Stardance community and improving my project. I hope in the future i will be able to to more really interesting hardware and software projects. If you want to see this and my future projects grow please consider leaving feedback. I am designing these projects on my own so other peoples feedback is really important to me! Thank You! :)", "repo": "https://github.com/ARTITULE/FlappyINO", "demo": ""}]...
|
[{"post_id": 71874, "ts": "202 [{"post_id": 71874, "ts": "2026-09-21T18:01:22Z", "hours": 7.5458, "text": "Devlog Time!! Hopefully this is going to be my final devlog for this project. I finished the demo video and the thumbnail updated the README and did much more. You can watch the demo video from the link in my project or the link below. https://www.youtube.com/watch?v=2ZuoSsNO6Mo See you in the next devlog"}, {"post_id": 64322, "ts": "2026-09-08T16:43:15Z", "hours": 6.4667, "text": "Devlog Time!! After a lot of soldering i finished the assembly of the v2 FlappyINO console. You can see the v1(on the left) vs the v2(on the right) comparison in the picture. Now the only thing that’s left is to update the README and to film the video! See you then"}, {"post_id": 62394, "ts": "2026-09-05T18:47:28Z", "hours": 2.8417, "text": "Devlog Time!! Finally got the Pcb’s and redesigned the case. The only real thing that is left is to assemble the console and SHIP! I also added the production files to github and modified the README. Now i am going to, keep soldering!"}, {"post_id": 59637, "ts": "2026-09-01T15:38:43Z", "hours": 7.6844, "text": "Devlog Time!! Finally added the animations for landing and taking off . You can see them attached. Among minor bug fixes i implemented: Landing and Takeoff animation. Setting in settings menu to enable and disable the animations(in case they get boring) Added a way to see if the level is locked, unlocked or cleared(completed) Since there is no game engines written for AVR microcontrollers the animation took a long time to implement because i need to draw each frame of it by hand to the buffer and then to the screen. But i definitely learned a lot about how to interact with each element on its own. Now i am slowly preparing to ship the project but until then i will keep coding!"}, {"post_id": 48390, "ts": "2026-08-16T18:29:51Z", "hours": 3.5811, "text": "Devlog Time!! Finally worked on the level ending.(before the game had no ending and no way to complete the levels ) Now the levels have a cool ending screen and an option to play the ENDLESS MODE . Also a new feature is that you now need to beat previous levels before advancing to the next. I think this way an endless game has more “story” i guess. The next thing i will be working on is a cool landing animation. In the meantime Keep Coding!"}, {"post_id": 44709, "ts": "2026-08-10T17:26:21Z", "hours": 2.8642, "text": "Devlog Time!! After adding more graphics to the game i saw some frame drops so i added the ability to toggle some of the more performance heavy ones. That is how the Settings menu was born. Not a lot of changes for this devlog but in the meantime, Keep coding"}, {"post_id": 44011, "ts": "2026-08-09T14:38:52Z", "hours": 5.8189, "text": "Devlog Time!! Mainly worked on the GUI this time now the level select screen has a cute planet picture :3. Also added a moon surface looking background to the level. Spent like 30 minutes trying to align everything but now i am really good at math(specifically dividing by 2). Keep coding 🙃"}, {"post_id": 42492, "ts": "2026-08-07T08:12:39Z", "hours": 3.3422, "text": "Finally rewrote the code to work with PlatformIO . Code compilation is a lot faster now. Struggled on splitting the ArduinoIDE “Tabs” into actual files but this is a lot better than the old mess."}]...
|
Title: Flappy Bird Console by @artitule | Stardanc Title: Flappy Bird Console by @artitule | Stardance
Devlogs:
Finally rewrote the code to work with PlatformIO . Code compilation is a lot faster now. Struggled on splitting the ArduinoIDE “Tabs” into actual files but this is a lot better than the old mess.
Devlog Time!! Mainly worked on the GUI this time now the level select screen has a cute planet picture :3. Also added a moon surface looking background to the level. Spent like 30 minutes trying to align everything but now i am really good at math(specifically dividing by 2). Keep coding 🙃
Devlog Time!! After adding more graphics to the game i saw some frame drops so i added the ability to toggle some of the more performance heavy ones. That is how the Settings menu was born. Not a lot of changes for this devlog but in the meantime, Keep coding
Devlog Time!! Finally worked on the level ending.(before the game had no ending and no way to complete the levels ) Now the levels have a cool ending screen and an option to play the ENDLESS MODE . Also a new feature is that you now need to beat previous levels before advancing to the next. I think this way an endless game has more “story” i guess. The next thing i will be working on is a cool landing animation. In the meantime Keep Coding!
Devlog Time!! Finally added the animations for landing and taking off . You can see them attached. Among minor bug fixes i implemented: Landing and Takeoff animation. Setting in settings menu to enable and disable the animations(in case they get boring) Added a way to see if the level is locked, unlocked or cleared(completed) Since there is no game engines written for AVR microcontrollers the animation took a long time to implement because i need to draw each frame of it by hand to the buffer and then to the screen. But i definitely learned a lot about how to interact with each element on its own. Now i am slowly preparing to ship the project but until then i will keep coding!
Devlog Time!! Finally got the Pcb’s and redesigned the case. The only real thing that is left is to assemble the console and SHIP! I also added the production files to github and modified the README. Now i am going to, keep soldering!
Devlog Time!! After a lot of soldering i finished the assembly of the v2 FlappyINO console. You can see the v1(on the left) vs the v2(on the right) comparison in the picture. Now the only thing that’s left is to update the README and to film the video! See you then
Devlog Time!! Hopefully this is going to be my final devlog for this project. I finished the demo video and the thumbnail updated the README and did much more. You can watch the demo video from the link in my project or the link below. https://www.youtube.com/watch?v=2ZuoSsNO6Mo See you in the next devlog
Ships:
I built FlappyINO a small form factor portable Flappy Bird Console. It is easy to take with you and enjoy on the go. It is based around the ATmega328P IC (the same IC that is used in the Arduino UNO and NANO) so the project is very easy to build from readily available parts. Also since the same IC is used in popular Arduino boards the project can be built on a breadboard and tested beforehand with ease. This project was started before Stardance but before only the game part was there. Since Stardance the project became a lot more polished and i was able to add a lot of the features that were missing before. I rewrote the code to use the more user friendly VSCode + PlatformIO combo instead of the ArduinoIDE, before the code was organized in what ArduinoIDE calls “Tabs”. Now the code is organized in actual files and this is an actual software project. Apart from that in the v2 release i added: A game progression system with difficulty unlocks and more game modes, a Settings menu for graphical features, landing and takeoff animations, better UI and so much more. Please see the README to see the full list of changes and see the demo video for the gameplay. As this is a hardware project and you can’t run something like Unity on a IC that has 2Kb of SRAM and 32Kb of flash you need to implement all of the “basic” things that you can do with a couple lines of code in game engine like collision detection, game loop, player inputs, accurate timings and stable FPS needs implementation by hand. This was by far the hardest part (together with game optimization and asset storage) that i had to overcome to finish this project. I’m most proud of being able to combine all of these aspects into one and get something that is stable/reliable and responsive but also compact so that you can carry the whole console on your keychain. Don’t even get me started on the responsive part. Since the game needs to get faster and faster (otherwise it would get really boring) you will be quickly met with restrictions to how much data you can process and send to the display while keeping the game responsive and not slowing it down. Here even at 30 FPS you need to basically redraw 128x64=8.192 pixels every 33 ish milliseconds. On a modern computer that is not that hard but on a 8MHz microcontroller that is no easy feat. In the end i had to cut down and optimize almost all of the “redraws” to minimize the amount that needs to be actually “redrawn”. To test the project select the hardware you want to run the project on (the PCB or an Arduino Board) go to the GitHub repository and follow the steps for the connections and code uploading. You can also watch the demo video beforehand to get more information about the project. I really enjoyed being a part of the Stardance community and improving my project. I hope in the future i will be able to to more really interesting hardware and software projects. If you want to see this and my future projects grow please consider leaving feedback. I am designing these projects on my own so other peoples feedback is really important to me! Thank You! :)...
|
1793004639.4883895
|
1793091039.4883895
|
|
17319
|
SituationBoard by @nouxinf | Stardance
|
nouxinf
|
1
|
25.0
|
276
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T12:42:35Z", "hours": 25.0, "multiplier": 11.2, "payout": 276, "blessing": "neutral", "text": "I just finished making SituationBoard a browser new tab page with widgets that can be customised and arranged to your liking. Its a big QoL improvement because it means instead of having to go to several websites to get bits of info, you can see them all on one page you can bookmark or set as a new tab page in your browser. Current widgets included are: Cat picture Oil price Clock Weather XKCD comic It runs in express and some of the widgets use an external API that needs a backend route. Its designed to be contributed to by others, I wrote a guide in the README on how to add new widgets. There’s a light and dark mode too. Hope you enjoy it!", "repo": "https://github.com/nouxinf/situationboard", "demo": "https://situationboard.nouxinf.net/"}]...
|
[{"post_id": 70550, "ts": "202 [{"post_id": 70550, "ts": "2026-09-19T10:59:06Z", "hours": 0.6653, "text": "Devlog 8 of Situationboard In this devlog I put the website on my VPS at https://situationboard.nouxinf.net/ and wrote a README. The readme contains some info on the project, screenshots, and instructions on how to add a new widget to the site for contributors."}, {"post_id": 70233, "ts": "2026-09-18T19:18:21Z", "hours": 1.0689, "text": "Devlog 7 of Situationboard In this devlog I added a dark mode that saves your preferences but also loads them from your system settings. I made a bunch of CSS tweaks at the same time to make it look a bit nicer too."}, {"post_id": 70175, "ts": "2026-09-18T16:54:18Z", "hours": 1.1975, "text": "Devlog 6 of Situationboard In this devlog I added a MacOS style menu bar at the top for some buttons. The SB icon and the Situationboard spans just refresh the page, the attribution button opens a dialog with credits to open source libraries and images used (APIs are credited separately in the add widgets screen). The about screen also has info. Next up is just dark mode, some docs + readme then I’m ready to ship"}, {"post_id": 69245, "ts": "2026-09-16T17:33:32Z", "hours": 2.3942, "text": "Devlog 5 of Situationboard In this devlog I added an XKCD widget, which fetches the latest XKCD comic through a proxy on the backend, and you can navigate through comics with the previous, next, random and custom number buttons. You can also click on the image to zoom in on the comic and the caption. What I’m adding next is dark mode and an attribution screen to give credit to all sources used."}, {"post_id": 68165, "ts": "2026-09-14T17:09:37Z", "hours": 1.7006, "text": "Devlog 4 of Situationboard In this devlog I finished the weather widget. I added icons that I reused from an earlier stardance project, weatherstation that map to WMO codes, and it shows a forecast with min-max temperatures for the next 7 days. Next up I’ll do an xkcd widget and dark mode"}, {"post_id": 67217, "ts": "2026-09-13T08:29:05Z", "hours": 7.3411, "text": "Devlog 3 of Situationboard Things I added: A live time widget A description window for each widget that uses a markdown renderer A customisable weather widget (currently only shows temperature and location but will be updated with week-ahead forecast) Things I might add soon: dark mode xkcd widget?"}, {"post_id": 11390, "ts": "2026-06-18T17:15:06Z", "hours": 3.125, "text": "Devlog 2 of Situationboard Things I’ve worked on since the last devlog: A simple favicon - just “SB” in the Inter font that’s used across the site An Oil Price widget. It originally used data from oilpriceapi.com however I realised that they didn’t provide a permanent free tier, so I switched to the US government’s (of course) EIA (Energy Information Administration) which updates less frequently (half a week or so?). Loading animation for catpic widget from Wikimedia Commons Next up I’ll probably work on a description button in the Add Widgets dialog as it already has a widgets.json entry, its just unused."}, {"post_id": 9344, "ts": "2026-06-15T17:58:45Z", "hours": 7.1142, "text": "Devlog #1 of SituationBoard After finishing the hackpad project, I was trying to find new project ideas to do, so I asked my dad for a QoL improvement that could be made. He mentioned wanting a “portal” to have loads of different information widgets on one screen, as for a lot of things you need to go across different websites. Coincidentally, the Frictionless mission was running, whose “mission” you could say was exactly that - to make something that improves quality of life. The name “SituationBoard” is a play on those “monitor the situation” dashboards that government officials or OSINT people use. The data on here as you can probably see by the screenshot is probably not of as high importance [citation needed]. I decided to make this in express.js, and plain HTML to keep it minimal. The backend will handle most widgets that need APIs, as those wih API keys shouldn’t be sent on the frontend because the keys will be leaked. The first widget added is a random cat picture from a service called Cat-as-a-Service (cataas.com). This didn’t require the backend as cataas doesnt take credentials so it was a good first widget. Next up I’ll write more widgets like weather, prices of various commodities like oil and holiday calendars, and add more features, potentially styling the website up along the way."}]...
|
Title: SituationBoard by @nouxinf | Stardance
Dev Title: SituationBoard by @nouxinf | Stardance
Devlogs:
Devlog #1 of SituationBoard After finishing the hackpad project, I was trying to find new project ideas to do, so I asked my dad for a QoL improvement that could be made. He mentioned wanting a “portal” to have loads of different information widgets on one screen, as for a lot of things you need to go across different websites. Coincidentally, the Frictionless mission was running, whose “mission” you could say was exactly that - to make something that improves quality of life. The name “SituationBoard” is a play on those “monitor the situation” dashboards that government officials or OSINT people use. The data on here as you can probably see by the screenshot is probably not of as high importance [citation needed]. I decided to make this in express.js, and plain HTML to keep it minimal. The backend will handle most widgets that need APIs, as those wih API keys shouldn’t be sent on the frontend because the keys will be leaked. The first widget added is a random cat picture from a service called Cat-as-a-Service (cataas.com). This didn’t require the backend as cataas doesnt take credentials so it was a good first widget. Next up I’ll write more widgets like weather, prices of various commodities like oil and holiday calendars, and add more features, potentially styling the website up along the way.
Devlog 2 of Situationboard Things I’ve worked on since the last devlog: A simple favicon - just “SB” in the Inter font that’s used across the site An Oil Price widget. It originally used data from oilpriceapi.com however I realised that they didn’t provide a permanent free tier, so I switched to the US government’s (of course) EIA (Energy Information Administration) which updates less frequently (half a week or so?). Loading animation for catpic widget from Wikimedia Commons Next up I’ll probably work on a description button in the Add Widgets dialog as it already has a widgets.json entry, its just unused.
Devlog 3 of Situationboard Things I added: A live time widget A description window for each widget that uses a markdown renderer A customisable weather widget (currently only shows temperature and location but will be updated with week-ahead forecast) Things I might add soon: dark mode xkcd widget?
Devlog 4 of Situationboard In this devlog I finished the weather widget. I added icons that I reused from an earlier stardance project, weatherstation that map to WMO codes, and it shows a forecast with min-max temperatures for the next 7 days. Next up I’ll do an xkcd widget and dark mode
Devlog 5 of Situationboard In this devlog I added an XKCD widget, which fetches the latest XKCD comic through a proxy on the backend, and you can navigate through comics with the previous, next, random and custom number buttons. You can also click on the image to zoom in on the comic and the caption. What I’m adding next is dark mode and an attribution screen to give credit to all sources used.
Devlog 6 of Situationboard In this devlog I added a MacOS style menu bar at the top for some buttons. The SB icon and the Situationboard spans just refresh the page, the attribution button opens a dialog with credits to open source libraries and images used (APIs are credited separately in the add widgets screen). The about screen also has info. Next up is just dark mode, some docs + readme then I’m ready to ship
Devlog 7 of Situationboard In this devlog I added a dark mode that saves your preferences but also loads them from your system settings. I made a bunch of CSS tweaks at the same time to make it look a bit nicer too.
Devlog 8 of Situationboard In this devlog I put the website on my VPS at https://situationboard.nouxinf.net/ and wrote a README. The readme contains some info on the project, screenshots, and instructions on how to add a new widget to the site for contributors.
Ships:
I just finished making SituationBoard a browser new tab page with widgets that can be customised and arranged to your liking. Its a big QoL improvement because it means instead of having to go to several websites to get bits of info, you can see them all on one page you can bookmark or set as a new tab page in your browser. Current widgets included are: Cat picture Oil price Clock Weather XKCD comic It runs in express and some of the widgets use an external API that needs a backend route. Its designed to be contributed to by others, I wrote a guide in the README on how to add new widgets. There’s a light and dark mode too. Hope you enjoy it!...
|
1793004636.1626835
|
1793091036.1626835
|
|
39444
|
Flappy Rocket by @brandon | Stardance
|
brandon
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T04:34:09Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my official first game without fully relying on AI. I did use videos to help me code, as I am still a beginner when it comes to that, especially using c#. I learned a lot off this one project. For example, how to add a scrolling background. And even if they aren’t perfect, I think it is enough for a very simple game that was completed in a somewhat short amount of coding time. There was a moment where I gave up on the project because I couldn’t figure it out. Since I was trying my absolute best to not use AI once, I drained myself out and left this alone for about a month or so. I ended up using AI to fix this one problem, and although I don’t remember the exact problem off the top of my head, I did remember how small of a problem it was. I only needed to change one thing. Even though this challenge is ending very soon, and I have very little hours. I will try my best to make one last project that I will focus on for the next week and few days. I hope you all enjoy this game and hopefully stick around to see my new project! (might be 3D :0 )", "repo": "https://github.com/Br4ndon-aero/Flappy-Rocket", "demo": "https://github.com/Br4ndon-aero/Flappy-Rocket/releases/tag/v1.0.0"}]...
|
[{"post_id": 72972, "ts": "202 [{"post_id": 72972, "ts": "2026-09-24T04:21:29Z", "hours": 0.2808, "text": "I completed my satellites!! I believe that is all I will work on for this game, for now. I will try to make another game and get my hours up starting tonight!!"}, {"post_id": 72100, "ts": "2026-09-22T05:18:09Z", "hours": 0.7136, "text": "I completed adding the background. I am now currently working on adding a satellite that spawns here and there that the rocket can collide with and lose. Next up, levels?"}, {"post_id": 69925, "ts": "2026-09-18T02:25:22Z", "hours": 0.8772, "text": "Slowed down for a minute because I was trying to figure out how to move my project into a laptop (had me stressing even though it was so easy). Now that I am able to work from my laptop, hopefully I can get more hours into my work! Apart from that, I am currently working on figuring out how to make a scrolling background that continues endlessly. Next up, adding levels and increasing speed per every 5-10 points!"}, {"post_id": 67119, "ts": "2026-09-13T05:35:49Z", "hours": 0.7344, "text": "I think because I have been inactive for about a month, my hours that were logged were reset. But anyway, I leanred how to remove the rockets from spawning in and never deleting, I finished making a “game over” overlay after the rocket hits the asteroid, and included a “try again” button that resets the whole game. I had a huge issue with the reset button that made me give up this game for a moment since I was trying my very best to not use AI and simply figure it out through other methods. I was able to fix it now, but unfortunately, had to use AI :(. Now that I am done with that, I will try to make the background a outer space background, with stars and everything that might be a image from google, I dont know yet though. Any ideas? leave them in the comments!"}, {"post_id": 42441, "ts": "2026-08-07T05:04:44Z", "hours": 1.1867, "text": "What I have been working on is making the rocket move up and down (basically jump with the spacebar), I added asteroids as a way to lose the game if you collide with them, I made the asteroids move from left to right, and right now, I am trying to add a score using UI. I struggle here and there to make this game fun by changing the speed and stuff but so far no AI! (Still a LOT to fix)"}, {"post_id": 34453, "ts": "2026-07-25T05:40:45Z", "hours": 0.4136, "text": "So far, on my new project I am trying to figure out basic steps on Unity. As a start, I am planning on making this game into a Flappy bird type of game, but instead of a bird, its a rocket. So far, NO AI, just youtube!"}]...
|
Title: Flappy Rocket by @brandon | Stardance
Devl Title: Flappy Rocket by @brandon | Stardance
Devlogs:
So far, on my new project I am trying to figure out basic steps on Unity. As a start, I am planning on making this game into a Flappy bird type of game, but instead of a bird, its a rocket. So far, NO AI, just youtube!
What I have been working on is making the rocket move up and down (basically jump with the spacebar), I added asteroids as a way to lose the game if you collide with them, I made the asteroids move from left to right, and right now, I am trying to add a score using UI. I struggle here and there to make this game fun by changing the speed and stuff but so far no AI! (Still a LOT to fix)
I think because I have been inactive for about a month, my hours that were logged were reset. But anyway, I leanred how to remove the rockets from spawning in and never deleting, I finished making a “game over” overlay after the rocket hits the asteroid, and included a “try again” button that resets the whole game. I had a huge issue with the reset button that made me give up this game for a moment since I was trying my very best to not use AI and simply figure it out through other methods. I was able to fix it now, but unfortunately, had to use AI :(. Now that I am done with that, I will try to make the background a outer space background, with stars and everything that might be a image from google, I dont know yet though. Any ideas? leave them in the comments!
Slowed down for a minute because I was trying to figure out how to move my project into a laptop (had me stressing even though it was so easy). Now that I am able to work from my laptop, hopefully I can get more hours into my work! Apart from that, I am currently working on figuring out how to make a scrolling background that continues endlessly. Next up, adding levels and increasing speed per every 5-10 points!
I completed adding the background. I am now currently working on adding a satellite that spawns here and there that the rocket can collide with and lose. Next up, levels?
I completed my satellites!! I believe that is all I will work on for this game, for now. I will try to make another game and get my hours up starting tonight!!
Ships:
I made my official first game without fully relying on AI. I did use videos to help me code, as I am still a beginner when it comes to that, especially using c#. I learned a lot off this one project. For example, how to add a scrolling background. And even if they aren’t perfect, I think it is enough for a very simple game that was completed in a somewhat short amount of coding time. There was a moment where I gave up on the project because I couldn’t figure it out. Since I was trying my absolute best to not use AI once, I drained myself out and left this alone for about a month or so. I ended up using AI to fix this one problem, and although I don’t remember the exact problem off the top of my head, I did remember how small of a problem it was. I only needed to change one thing. Even though this challenge is ending very soon, and I have very little hours. I will try my best to make one last project that I will focus on for the next week and few days. I hope you all enjoy this game and hopefully stick around to see my new project! (might be 3D :0 )...
|
1793004635.0246964
|
1793091035.0246964
|
|
40458
|
LA Ferrari Render by @nejenabinupa | Stardance
|
nejenabinupa
|
1
|
13.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-07T11:34:13Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "its finished now all of the information are in the readme hope you enjoy", "repo": "https://github.com/binupax6699/LAFERRARI-3D-CINEMATIC/blob/main/README.md", "demo": "https://youtube.com/shorts/UCaVigC117I?si=yJ42UXRwK6nM4fag"}]...
|
[{"post_id": 58124, "ts": "202 [{"post_id": 58124, "ts": "2026-08-30T14:09:37Z", "hours": 3.2558, "text": "I changed the render engine to eevee and changed the color of the car to make the body much more good and all are good to go to ship"}, {"post_id": 43116, "ts": "2026-08-08T06:26:06Z", "hours": 5.2011, "text": "I’m done animating and jesting the lights now need to render the video"}, {"post_id": 35657, "ts": "2026-07-27T07:34:41Z", "hours": 4.8386, "text": "Took a standard Ferrari model and completely transformed it into a custom spec I Fixed low-poly artifacts and cleaned up the body panel geometry. And make a Satin Black finish highlighted by custom Gold and exposeddetailing. Studio Lighting: Tuned soft reflection passes to highlight the aero lines and body curves."}]...
|
Title: LA Ferrari Render by @nejenabinupa | Starda Title: LA Ferrari Render by @nejenabinupa | Stardance
Devlogs:
Took a standard Ferrari model and completely transformed it into a custom spec I Fixed low-poly artifacts and cleaned up the body panel geometry. And make a Satin Black finish highlighted by custom Gold and exposeddetailing. Studio Lighting: Tuned soft reflection passes to highlight the aero lines and body curves.
I’m done animating and jesting the lights now need to render the video
I changed the render engine to eevee and changed the color of the car to make the body much more good and all are good to go to ship
Ships:
its finished now all of the information are in the readme hope you enjoy...
|
1793004634.1490166
|
1793091034.1490166
|
|
48736
|
Wifi and blutooth jammer by @Txseen | Stardance
|
Txseen
|
1
|
2.27
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T13:56:10Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i had made a bluetooth and wifi jammer", "repo": "https://github.com/EmenstaNougat/ESP32-BlueJammer", "demo": ""}]...
|
[{"post_id": 80692, "ts": "202 [{"post_id": 80692, "ts": "2026-10-18T15:13:21Z", "hours": 1.2714, "text": "another circuit diagram"}, {"post_id": 69652, "ts": "2026-09-17T14:39:07Z", "hours": 0.3006, "text": "circuit diagram of jammer"}, {"post_id": 69621, "ts": "2026-09-17T13:08:18Z", "hours": 0.3008, "text": "jammeer coodes"}]...
|
Title: Wifi and blutooth jammer by @Txseen | Stard Title: Wifi and blutooth jammer by @Txseen | Stardance
Devlogs:
jammeer coodes
circuit diagram of jammer
another circuit diagram
Ships:
i had made a bluetooth and wifi jammer...
|
1793004633.2912464
|
1793091033.2912464
|
|
48721
|
Ai-Voice-Assistant by @mateoLuc | Stardance
|
mateoLuc
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T17:35:51Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a voice assistant from scratch that can answer a variety of questions, such as math questions, finding out weather information, and answering any question using APIs. At the same time, the stage of what is happening is outputted through audio and displayed on a screen with cool animations. I would say the hardest part was the learning curve of understanding all of the specific libraries I would have to use, as well as where and how to use them. As simple as it sounds, I am very proud of how well it works. It always displays its status through animations and outputs audio at the same time. Just being able to see that it works and being able to use it makes me proud. I tried to make it relatively simple to use, but I also provided more in-depth instructions in my README. I hope you guys enjoy this project!!!", "repo": "https://github.com/MatLuch/Voice-Assistant", "demo": ""}]...
|
[{"post_id": 71948, "ts": "202 [{"post_id": 71948, "ts": "2026-09-21T20:37:23Z", "hours": 5.9519, "text": "Over the past days i have added a screen that will display the status of what is currently happening along with a cool little animations such as if its listening or processing the info when outputting the info it also has a cool type writing animation. Along with that i have also revamped my code making it faster and adding new features by optimizing code and creating more sub functions. Under i will attack a couple photos showing some of the features."}, {"post_id": 52699, "ts": "2026-08-22T23:59:57Z", "hours": 2.0719, "text": "Today I debugged some of my code, but along with that, I redid all of my weather features. Instead of only getting the temperature, you can individually ask for the temperature, rain forecast, and cloud coverage. If you ask for the weather, it automatically gives you all three."}, {"post_id": 51222, "ts": "2026-08-20T19:12:50Z", "hours": 1.0297, "text": "Now i have added feature where in order to activate the assistance you must say Hey Jarvis, it uses the pre trained openwakeworld model for detection."}, {"post_id": 50724, "ts": "2026-08-20T02:06:49Z", "hours": 6.6308, "text": "Over the past few hours, I have created the base code for it to perform calculations, check the weather, and use a Gemini API to answer questions. It then uses the built-in voices from your laptop to speak the answers out loud. I plan to add memory, timers, and stopwatches, along with a small physical cube powered by a Raspberry Pi with a screen for animations. It will also have a feature where you can activate it by simply saying “Hey” followed by its chosen name. All of the voice recognition is handled by Google’s AI, so it can run on any laptop or Raspberry Pi. Finally i also plan to add more weather features including future forecast and precipitation."}]...
|
Title: Ai-Voice-Assistant by @mateoLuc | Stardance Title: Ai-Voice-Assistant by @mateoLuc | Stardance
Devlogs:
Over the past few hours, I have created the base code for it to perform calculations, check the weather, and use a Gemini API to answer questions. It then uses the built-in voices from your laptop to speak the answers out loud. I plan to add memory, timers, and stopwatches, along with a small physical cube powered by a Raspberry Pi with a screen for animations. It will also have a feature where you can activate it by simply saying “Hey” followed by its chosen name. All of the voice recognition is handled by Google’s AI, so it can run on any laptop or Raspberry Pi. Finally i also plan to add more weather features including future forecast and precipitation.
Now i have added feature where in order to activate the assistance you must say Hey Jarvis, it uses the pre trained openwakeworld model for detection.
Today I debugged some of my code, but along with that, I redid all of my weather features. Instead of only getting the temperature, you can individually ask for the temperature, rain forecast, and cloud coverage. If you ask for the weather, it automatically gives you all three.
Over the past days i have added a screen that will display the status of what is currently happening along with a cool little animations such as if its listening or processing the info when outputting the info it also has a cool type writing animation. Along with that i have also revamped my code making it faster and adding new features by optimizing code and creating more sub functions. Under i will attack a couple photos showing some of the features.
Ships:
I created a voice assistant from scratch that can answer a variety of questions, such as math questions, finding out weather information, and answering any question using APIs. At the same time, the stage of what is happening is outputted through audio and displayed on a screen with cool animations. I would say the hardest part was the learning curve of understanding all of the specific libraries I would have to use, as well as where and how to use them. As simple as it sounds, I am very proud of how well it works. It always displays its status through animations and outputs audio at the same time. Just being able to see that it works and being able to use it makes me proud. I tried to make it relatively simple to use, but I also provided more in-depth instructions in my README. I hope you guys enjoy this project!!!...
|
1793004632.1646698
|
1793091032.1646698
|
|
29649
|
Document SaaS by @starkiller261 | Stardance
|
starkiller261
|
1
|
11.0
|
27
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T01:46:01Z", "hours": 11.0, "multiplier": 2.32, "payout": 27, "blessing": "neutral", "text": "This is a Monolithic Spring MVC application which serves as a SaaS that allows users to store, edit, and read documents (Similar to Google Docs). It uses Postgresql to store user and document data and session id authentication", "repo": "https://github.com/petevass/Document_SaaS", "demo": "https://jarvis-ubuntu.tail5b0cb9.ts.net/"}]...
|
[{"post_id": 68888, "ts": "202 [{"post_id": 68888, "ts": "2026-09-15T23:25:30Z", "hours": 5.2253, "text": "finished editing process"}, {"post_id": 63932, "ts": "2026-09-08T00:14:45Z", "hours": 6.2228, "text": "Working on thymeleaf UI"}]...
|
Title: Document SaaS by @starkiller261 | Stardance Title: Document SaaS by @starkiller261 | Stardance
Devlogs:
Working on thymeleaf UI
finished editing process
Ships:
This is a Monolithic Spring MVC application which serves as a SaaS that allows users to store, edit, and read documents (Similar to Google Docs). It uses Postgresql to store user and document data and session id authentication...
|
1793004631.305666
|
1793091031.305666
|
|
36248
|
Minamo by @yearcakes | Stardance
|
yearcakes
|
1
|
58.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T09:24:33Z", "hours": 58.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my first time creating an S3-compatible storage gateway, and I am very excited to publish this ship. The idea of creating Minamo came when I was calculating the cost of my AI chat application. I found that even with only 10 users, it would cost around 1 USD/month just to store their attachments, and these attachments would go cold after only being used once, but I would still have to pay for them at a high price (as S3 storage was designed to store hot data). Then I was wondering, what if I could develop an app that automatically moves cold data from my S3 bucket to my OneDrive? And after some consideration, I decided to make an S3 storage gateway. This is why Minamo came to be. Although Minamo isn’t good enough yet, my semester started on August 31st, but I will keep maintaining Minamo! Thanks, and I hope you all like my project!", "repo": "https://github.com/zhaozhuoran/minamo", "demo": "https://github.com/zhaozhuoran/minamo/blob/main/DEMO.md"}]...
|
[{"post_id": 68645, "ts": "202 [{"post_id": 68645, "ts": "2026-09-15T13:41:04Z", "hours": 4.3192, "text": "Sorry for the late update! As my new semester started on August 31st, I won’t have much time to work on Minamo for the time being. In this commit, I’ve added support for the Hack Club CDN and fixed many bugs and security issues. Hope you all enjoy Minamo! Commit"}, {"post_id": 39897, "ts": "2026-08-03T05:52:16Z", "hours": 6.9842, "text": "I found a few issues in the code, including thread safety bugs, race conditions (which could even corrupt the database), and some resource leaks. So most of my current work has been fixing those. After that, I’m planning to add HackClub CDN as a storage backend and edit it to my new dynamic storage backend loading system. ps writing the code is fun, but honestly I think designing the architecture is even more fun. I’ve learned a ton from it, so I’d recommend trying it if you get the chance. If anyone has ideas or feedback on my project architecture, I’d love to hear them!"}, {"post_id": 37500, "ts": "2026-07-30T09:11:35Z", "hours": 6.6803, "text": "Devlog #6: Introducing Hierarchical Storage Management (HSM) and R2 Support Over the past day, I have been working on a major redesign of Minamo’s storage architecture. From Single Storage to Multi-Tier Storage Minamo now supports configurable storage tiers, including: Hot tier (tier 0) Warm tier (tier 1) Cold tier (tier 2) Minamo can automatically manage data movement between tiers based on configurable policies. New Storage Management Architecture To support this, I introduced several new components: StorageManager Instead of directly interacting with a specific backend, object operations are now managed by StorageManager, which decides: Where new objects should be written Which tier should serve read requests When objects should be migrated Cloudflare R2 Backend Minamo now includes a native Cloudflare R2 backend. This enables using R2 as one of the storage tiers. Background Migration and Storage Optimization A new HsmScheduler was added to handle background tasks: Tier migration Storage eviction Periodic heat score calculation To make these decisions smarter, Minamo now records access patterns through a dedicated access_logs.db. This allows Minamo to gradually evolve from rule-based storage movement toward more intelligent storage scheduling. What’s Next The next development direction will focus on improving compatibility and expanding storage backend options. Planned tasks: Add Hack Club CDN support as a new storage backend Improve configuration documentation and examples Continue improving HSM scheduling algorithms Minamo is gradually becoming a more complete storage management system. There is still a long way to go! Commit"}, {"post_id": 36991, "ts": "2026-07-29T13:13:45Z", "hours": 3.9844, "text": "Devlog #5: Why is it called Minamo? Someone recently asked me whether Minamo was named after Mixamo. It actually wasn’t, but I realized I had never shared where the name came from, so here’s the story. Minamo is derived from the Japanese word みなも (水面, minamo) , meaning “the surface of the water.” The idea behind this name comes from the relationship between the surface and what lies beneath it. From above, the surface of a lake appears simple, calm, and clear. However, beneath that surface exists a much more complex world that is hidden from view. This is also the philosophy behind Minamo. For clients, Minamo provides a simple and consistent S3-compatible interface — just like a calm water surface that is easy to interact with. Behind that interface, Minamo handles the complexity of storage systems, including different storage backends, tiering, caching, and data management. Minamo aims to keep the surface simple while allowing the complexity underneath to remain invisible, creating a clean and reliable experience for clients."}, {"post_id": 36885, "ts": "2026-07-29T08:17:04Z", "hours": 2.3642, "text": "I’m currently adding Cloudflare R2 support to Minamo, and I was wondering: what if I also added Hack Club CDN as an optional backend? Since it offers free storage, it could be a pretty cool addition. What do you all think? Would love to get some feedback!"}, {"post_id": 36847, "ts": "2026-07-29T05:11:18Z", "hours": 7.6664, "text": "Devlog #4: Layered Config, HTTP Range & Multi-Backend Foundations Over the past couple of days, I’ve been working on one of the biggest refactors since Minamo entered its MVP stage. This update introduces a layered configuration system, HTTP Range support for S3-compatible downloads, a redesigned CLI, and a cleaner runtime state architecture. To keep the project moving forward, I ended up working on Minamo almost everywhere I could — on my desktop, in GitHub Codespaces, through remote SSH sessions on a Linux server, and even from GitHub Mobile whenever I had a few spare minutes. Unfortunately, development time spent through remote SSH sessions and GitHub Mobile isn’t tracked by Hackatime, so those hours don’t appear in my statistics. Also, because this refactor involved lots of experimentation and incremental changes, I squashed many small commits into a single clean commit before pushing. The history is much cleaner now, even though it hides quite a bit of the work that went into this update. Highlights Layered Configuration System The previous environment-variable-only configuration has been replaced with a layered configuration system: CLI arguments ↓ Environment variables ↓ TOML configuration files This makes deployments much more flexible while still allowing temporary overrides from the command line. The refactor also introduces: ConfigManager Automatic configuration scaffolding config.example/ templates HTTP Range Support Minamo now supports HTTP Range requests for S3-compatible downloads. Clients such as rclone and the AWS CLI can now download only the required portions of large objects instead of fetching entire files. Supported formats include: bytes=start-end bytes=start- bytes=-suffix The implementation correctly returns 206 Partial Content , Content-Range , Accept-Ranges , and proper 416 Range Not Satisfiable responses. CLI & Runtime State The CLI has been redesigned around subcommands: minamo init minamo run Runtime-generated state has also been separated from user configuration, making deployments cleaner and preparing the project for future storage backends. What’s Next? The next milestone is adding additional storage backends. Current roadmap: Layered Storage Scheduling Alongside new storage backends, I’m also redesigning Minamo’s storage scheduling architecture. The long-term goal is to support a layered storage model, where frequently accessed (“hot”) data stays on fast local storage while less frequently accessed (“cold”) data can be transparently moved to lower-cost backends such as OneDrive. Since Minamo hasn’t seen production workloads yet, this design is still largely based on theoretical considerations rather than operational experience. I fully expect it to evolve as the project matures and real-world usage reveals better trade-offs. Cloudflare R2 This will likely be the first backend after the local filesystem. Cloudflare R2 is surprisingly developer-friendly: it only requires a credit card for verification, includes 10 GB of free storage , and charges no egress fees . For many personal and small projects, I think it’s one of the best object storage services available. Microsoft OneDrive After R2, I plan to implement a OneDrive backend. I wouldn’t recommend using a personal OneDrive account as production object storage. It isn’t designed for that, can be less reliable, and is relatively easy to hit rate limits (HTTP 429). However, for personal projects or storing infrequently accessed “cold” data, it’s an incredibly cost-effective option and fits Minamo’s planned hot/cold storage architecture quite well. Commit"}, {"post_id": 35731, "ts": "2026-07-27T11:08:48Z", "hours": 8.8006, "text": "Devlog #3: Designing a New Configuration System I am currently working on gradually refactoring Minamo’s configuration system. Previously, Minamo relied mainly on MINAMO_* environment variables for configuration. As more features and storage backends are introduced, this approach becomes increasingly difficult to maintain and does not clearly separate normal configuration from sensitive information. The new design will move towards a TOML based configuration system. Configurations will be split into multiple .toml files. This keeps the configuration structure clearer. I chose TOML because it is easier to represent options and allows users to directly review and edit their configuration. Configuration files will be ignored by git and initialized from config.example/ on the first run, ensuring that users have a clear starting point without accidentally committing private information. I am also implementing a new ConfigManager to unify configuration loading, with the following precedence: CLI arguments > ENV variables > CONFIG files This keeps the flexibility of temporary overrides while providing a stable configuration system for deployments. These changes are still being gradually implemented and have not been released yet. The goal is to make Minamo’s architecture more suitable for long-term usage and easier to extend in the future."}, {"post_id": 35142, "ts": "2026-07-26T11:49:45Z", "hours": 9.8706, "text": "Devlog #2: Local Disk MVP Complete Today marks an important milestone for Minamo , the Local Disk MVP is now complete. The first goal of this project was never to build a full storage platform overnight. Instead, I wanted to establish a solid foundation: a correct, well-structured, and S3-compatible server with clean separation between the API, service, metadata, and storage layers. With the MVP completed, Minamo now supports: S3-compatible object and bucket operations Multipart uploads Presigned URLs AWS Signature Version 4 (header & query authentication) AWS-chunked streaming uploads A pluggable storage backend architecture, with Local Disk as the first implementation Compatibility has also been continuously validated against the official AWS SDK, giving me confidence that the foundation is ready for what’s next. That said, this is only the beginning . The original vision for Minamo has always been much larger than a local storage server. The next stages will focus on turning Minamo into an intelligent storage gateway capable of routing data across multiple storage providers, automatically managing hot and cold data, introducing caching, and making storage both more efficient and more affordable. There’s still a long road ahead. Thanks to everyone following the project so far. More exciting updates are coming soon! Commit"}, {"post_id": 33931, "ts": "2026-07-24T07:44:51Z", "hours": 7.4603, "text": "Devlog #1: Building Minamo I’m excited to share the very first development update for Minamo . Minamo is an S3-compatible storage gateway designed to reduce storage costs while remaining fully compatible with existing S3 clients. The long-term goal is to intelligently manage object placement, keeping frequently accessed data on fast storage while transparently moving cold data to lower-cost storage. The project is currently about 50% complete. Why Minamo? The idea came from developing my AI chat application, Arona Chat . While building its attachment system, I noticed that most uploaded files are accessed frequently for only the first few days before becoming “cold” data. They still need to be retained, but keeping everything on expensive hot storage unnecessarily increases operating costs. That led to a simple question: What if an S3-compatible gateway could automatically keep hot data on fast storage while moving cold data to lower-cost storage? That’s how Minamo began. Development Strategy Rather than building the complete multi-tier storage system from the beginning, I’m developing Minamo in stages. The first milestone is a Local Disk-only MVP , focusing on implementing a correct S3-compatible server before introducing additional storage providers. To make future expansion straightforward, the project already adopts a layered architecture: HTTP / S3 API Layer (FastAPI) — request handling, XML responses, AWS Signature Version 4 verification S3 Service Layer — business logic and S3 error mapping Metadata Layer — provider-independent SQLite metadata Storage Backend Interface — pluggable abstraction with a Local Disk backend for the MVP This separation allows future storage backends to be added with minimal changes. Current Progress (~50%) The MVP is actively under development. Implemented so far: PutObject / GetObject / DeleteObject / HeadObject ListObjectsV2 (prefix, delimiter, pagination) Bucket operations Multipart Upload Presigned URLs AWS Signature Version 4 (header & query authentication) AWS-chunked streaming uploads Compatibility is continuously verified against the official AWS SDK, with 22 boto3 compatibility tests currently passing against a live server . The remaining work mainly focuses on completing the MVP and polishing compatibility before introducing additional storage providers. Looking Ahead Alongside finishing the Local Disk MVP, I’m designing Minamo’s future storage orchestration system. The long-term vision is an intelligent storage gateway capable of automatically managing data across multiple storage tiers, including high-performance local storage, cache layers, and low-cost cold storage, while remaining fully compatible with the S3 API. Hopefully Minamo can help make self-hosted object storage both more affordable and more efficient . Thanks for reading! If you’re interested in the project, feel free to follow the project. I’ll share another devlog once the Local Disk MVP is complete and development moves into the multi-storage stage."}]...
|
Title: Minamo by @yearcakes | Stardance
Devlogs:
Title: Minamo by @yearcakes | Stardance
Devlogs:
Devlog #1: Building Minamo I’m excited to share the very first development update for Minamo . Minamo is an S3-compatible storage gateway designed to reduce storage costs while remaining fully compatible with existing S3 clients. The long-term goal is to intelligently manage object placement, keeping frequently accessed data on fast storage while transparently moving cold data to lower-cost storage. The project is currently about 50% complete. Why Minamo? The idea came from developing my AI chat application, Arona Chat . While building its attachment system, I noticed that most uploaded files are accessed frequently for only the first few days before becoming “cold” data. They still need to be retained, but keeping everything on expensive hot storage unnecessarily increases operating costs. That led to a simple question: What if an S3-compatible gateway could automatically keep hot data on fast storage while moving cold data to lower-cost storage? That’s how Minamo began. Development Strategy Rather than building the complete multi-tier storage system from the beginning, I’m developing Minamo in stages. The first milestone is a Local Disk-only MVP , focusing on implementing a correct S3-compatible server before introducing additional storage providers. To make future expansion straightforward, the project already adopts a layered architecture: HTTP / S3 API Layer (FastAPI) — request handling, XML responses, AWS Signature Version 4 verification S3 Service Layer — business logic and S3 error mapping Metadata Layer — provider-independent SQLite metadata Storage Backend Interface — pluggable abstraction with a Local Disk backend for the MVP This separation allows future storage backends to be added with minimal changes. Current Progress (~50%) The MVP is actively under development. Implemented so far: PutObject / GetObject / DeleteObject / HeadObject ListObjectsV2 (prefix, delimiter, pagination) Bucket operations Multipart Upload Presigned URLs AWS Signature Version 4 (header & query authentication) AWS-chunked streaming uploads Compatibility is continuously verified against the official AWS SDK, with 22 boto3 compatibility tests currently passing against a live server . The remaining work mainly focuses on completing the MVP and polishing compatibility before introducing additional storage providers. Looking Ahead Alongside finishing the Local Disk MVP, I’m designing Minamo’s future storage orchestration system. The long-term vision is an intelligent storage gateway capable of automatically managing data across multiple storage tiers, including high-performance local storage, cache layers, and low-cost cold storage, while remaining fully compatible with the S3 API. Hopefully Minamo can help make self-hosted object storage both more affordable and more efficient . Thanks for reading! If you’re interested in the project, feel free to follow the project. I’ll share another devlog once the Local Disk MVP is complete and development moves into the multi-storage stage.
Devlog #2: Local Disk MVP Complete Today marks an important milestone for Minamo , the Local Disk MVP is now complete. The first goal of this project was never to build a full storage platform overnight. Instead, I wanted to establish a solid foundation: a correct, well-structured, and S3-compatible server with clean separation between the API, service, metadata, and storage layers. With the MVP completed, Minamo now supports: S3-compatible object and bucket operations Multipart uploads Presigned URLs AWS Signature Version 4 (header & query authentication) AWS-chunked streaming uploads A pluggable storage backend architecture, with Local Disk as the first implementation Compatibility has also been continuously validated against the official AWS SDK, giving me confidence that the foundation is ready for what’s next. That said, this is only the beginning . The original vision for Minamo has always been much larger than a local storage server. The next stages will focus on turning Minamo into an intelligent storage gateway capable of routing data across multiple storage providers, automatically managing hot and cold data, introducing caching, and making storage both more efficient and more affordable. There’s still a long road ahead. Thanks to everyone following the project so far. More exciting updates are coming soon! Commit
Devlog #3: Designing a New Configuration System I am currently working on gradually refactoring Minamo’s configuration system. Previously, Minamo relied mainly on MINAMO_* environment variables for configuration. As more features and storage backends are introduced, this approach becomes increasingly difficult to maintain and does not clearly separate normal configuration from sensitive information. The new design will move towards a TOML based configuration system. Configurations will be split into multiple .toml files. This keeps the configuration structure clearer. I chose TOML because it is easier to represent options and allows users to directly review and edit their configuration. Configuration files will be ignored by git and initialized from config.example/ on the first run, ensuring that users have a clear starting point without accidentally committing private information. I am also implementing a new ConfigManager to unify configuration loading, with the following precedence: CLI arguments > ENV variables > CONFIG files This keeps the flexibility of temporary overrides while providing a stable configuration system for deployments. These changes are still being gradually implemented and have not been released yet. The goal is to make Minamo’s architecture more suitable for long-term usage and easier to extend in the future.
Devlog #4: Layered Config, HTTP Range & Multi-Backend Foundations Over the past couple of days, I’ve been working on one of the biggest refactors since Minamo entered its MVP stage. This update introduces a layered configuration system, HTTP Range support for S3-compatible downloads, a redesigned CLI, and a cleaner runtime state architecture. To keep the project moving forward, I ended up working on Minamo almost everywhere I could — on my desktop, in GitHub Codespaces, through remote SSH sessions on a Linux server, and even from GitHub Mobile whenever I had a few spare minutes. Unfortunately, development time spent through remote SSH sessions and GitHub Mobile isn’t tracked by Hackatime, so those hours don’t appear in my statistics. Also, because this refactor involved lots of experimentation and incremental changes, I squashed many small commits into a single clean commit before pushing. The history is much cleaner now, even though it hides quite a bit of the work that went into this update. Highlights Layered Configuration System The previous environment-variable-only configuration has been replaced with a layered configuration system: CLI arguments ↓ Environment variables ↓ TOML configuration files This makes deployments much more flexible while still allowing temporary overrides from the command line. The refactor also introduces: ConfigManager Automatic configuration scaffolding config.example/ templates HTTP Range Support Minamo now supports HTTP Range requests for S3-compatible downloads. Clients such as rclone and the AWS CLI can now download only the required portions of large objects instead of fetching entire files. Supported formats include: bytes=start-end bytes=start- bytes=-suffix The implementation correctly returns 206 Partial Content , Content-Range , Accept-Ranges , and proper 416 Range Not Satisfiable responses. CLI & Runtime State The CLI has been redesigned around subcommands: minamo init minamo run Runtime-generated state has also been separated from user configuration, making deployments cleaner and preparing the project for future storage backends. What’s Next? The next milestone is adding additional storage backends. Current roadmap: Layered Storage Scheduling Alongside new storage backends, I’m also redesigning Minamo’s storage scheduling architecture. The long-term goal is to support a layered storage model, where frequently accessed (“hot”) data stays on fast local storage while less frequently accessed (“cold”) data can be transparently moved to lower-cost backends such as OneDrive. Since Minamo hasn’t seen production workloads yet, this design is still largely based on theoretical considerations rather than operational experience. I fully expect it to evolve as the project matures and real-world usage reveals better trade-offs. Cloudflare R2 This will likely be the first backend after the local filesystem. Cloudflare R2 is surprisingly developer-friendly: it only requires a credit card for verification, includes 10 GB of free storage , and charges no egress fees . For many personal and small projects, I think it’s one of the best object storage services available. Microsoft OneDrive After R2, I plan to implement a OneDrive backend. I wouldn’t recommend using a personal OneDrive account as production object storage. It isn’t designed for that, can be less reliable, and is relatively easy to hit rate limits (HTTP 429). However, for personal projects or storing infrequently accessed “cold” data, it’s an incredibly cost-effective option and fits Minamo’s planned hot/cold storage architecture quite well. Commit
I’m currently adding Cloudflare R2 support to Minamo, and I was wondering: what if I also added Hack Club CDN as an optional backend? Since it offers free storage, it could be a pretty cool addition. What do you all think? Would love to get some feedback!
Devlog #5: Why is it called Minamo? Someone recently asked me whether Minamo was named after Mixamo. It actually wasn’t, but I realized I had never shared where the name came from, so here’s the story. Minamo is derived from the Japanese word みなも (水面, minamo) , meaning “the surface of the water.” The idea behind this name comes from the relationship between the surface and what lies beneath it. From above, the surface of a lake appears simple, calm, and clear. However, beneath that surface exists a much more complex world that is hidden from view. This is also the philosophy behind Minamo. For clients, Minamo provides a simple and consistent S3-compatible interface — just like a calm water surface that is easy to interact with. Behind that interface, Minamo handles the complexity of storage systems, including different storage backends, tiering, caching, and data management. Minamo aims to keep the surface simple while allowing the complexity underneath to remain invisible, creating a clean and reliable experience for clients.
Devlog #6: Introducing Hierarchical Storage Management (HSM) and R2 Support Over the past day, I have been working on a major redesign of Minamo’s storage architecture. From Single Storage to Multi-Tier Storage Minamo now supports configurable storage tiers, including: Hot tier (tier 0) Warm tier (tier 1) Cold tier (tier 2) Minamo can automatically manage data movement between tiers based on configurable policies. New Storage Management Architecture To support this, I introduced several new components: StorageManager Instead of directly interacting with a specific backend, object operations are now managed by StorageManager, which decides: Where new objects should be written Which tier should serve read requests When objects should be migrated Cloudflare R2 Backend Minamo now includes a native Cloudflare R2 backend. This enables using R2 as one of the storage tiers. Background Migration and Storage Optimization A new HsmScheduler was added to handle background tasks: Tier migration Storage eviction Periodic heat score calculation To make these decisions smarter, Minamo now records access patterns through a dedicated access_logs.db. This allows Minamo to gradually evolve from rule-based storage movement toward more intelligent storage scheduling. What’s Next The next development direction will focus on improving compatibility and expanding storage backend options. Planned tasks: Add Hack Club CDN support as a new storage backend Improve configuration documentation and examples Continue improving HSM scheduling algorithms Minamo is gradually becoming a more complete storage management system. There is still a long way to go! Commit
I found a few issues in the code, including thread safety bugs, race conditions (which could even corrupt the database), and some resource leaks. So most of my current work has been fixing those. After that, I’m planning to add HackClub CDN as a storage backend and edit it to my new dynamic storage backend loading system. ps writing the code is fun, but honestly I think designing the architecture is even more fun. I’ve learned a ton from it, so I’d recommend trying it if you get the chance. If anyone has ideas or feedback on my project architecture, I’d love to hear them!
Sorry for the late update! As my new semester started on August 31st, I won’t have much time to work on Minamo for the time being. In this commit, I’ve added support for the Hack Club CDN and fixed many bugs and security issues. Hope you all enjoy Minamo! Commit
Ships:
This is my first time creating an S3-compatible storage gateway, and I am very excited to publish this ship. The idea of creating Minamo came when I was calculating the cost of my AI chat application. I found that even with only 10 users, it would cost around 1 USD/month just to store their attachments, and these attachments would go cold after only being used once, but I would still have to pay for them at a high price (as S3 storage was designed to store hot data). Then I was wondering, what if I could develop an app that automatically moves cold data from my S3 bucket to my OneDrive? And after some consideration, I decided to make an S3 storage gateway. This is why Minamo came to be. Although Minamo isn’t good enough yet, my semester started on August 31st, but I will keep maintaining Minamo! Thanks, and I hope you all like my project!...
|
1793004630.1240275
|
1793091030.1240275
|
|
19354
|
Cyber Type by @Livvy | Stardance
|
Livvy
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-04T00:42:54Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a game where you type out commands and different words as they appear on the screen, to “hack” and move through each level or play through endless mode. Biggest challenge was the screen kept freezing after you lost, which took about an hour of research to fix. The thing I am most proud of is the endless mode where after a certain amount of time it gets faster and faster, adding a fun dynamic to the game. I hope everyone enjoys this simple little game I made!", "repo": "https://github.com/oliviasophia67/Cyber-Type-2.0", "demo": "https://oliviasophia67.github.io/Cyber-Type-2.0/"}]...
|
[{"post_id": 76573, "ts": "202 [{"post_id": 76573, "ts": "2026-10-04T00:39:28Z", "hours": 1.3847, "text": "Second devlog!!!! Super excited about this devlog because i got the game to a position for a first ship! Especially with stardance ending in only a month I need to ship out all projects soon. Also with school I won’t have much time to work on this. I worked on this game having an endless and a level mode in the time spent, and it works very well!! Hope yall enjoy it"}, {"post_id": 21064, "ts": "2026-07-02T20:51:43Z", "hours": 0.8744, "text": "First Devlog! To start off I just barely started this new game, and its already going pretty well. This projects idea is to be a fast typing game that has to do with coding (more to come on that) so we’ll see how it continues to go. so far I’ve made the general design for it along with the typing mechanics, and I added in a keyboard on the project to make it more easily playable on a phone or tablet. I would love some fun ideas to incorporate into the project, otherwise I shall continue to work on it!"}]...
|
Title: Cyber Type by @Livvy | Stardance
Devlogs:
Title: Cyber Type by @Livvy | Stardance
Devlogs:
First Devlog! To start off I just barely started this new game, and its already going pretty well. This projects idea is to be a fast typing game that has to do with coding (more to come on that) so we’ll see how it continues to go. so far I’ve made the general design for it along with the typing mechanics, and I added in a keyboard on the project to make it more easily playable on a phone or tablet. I would love some fun ideas to incorporate into the project, otherwise I shall continue to work on it!
Second devlog!!!! Super excited about this devlog because i got the game to a position for a first ship! Especially with stardance ending in only a month I need to ship out all projects soon. Also with school I won’t have much time to work on this. I worked on this game having an endless and a level mode in the time spent, and it works very well!! Hope yall enjoy it
Ships:
I made a game where you type out commands and different words as they appear on the screen, to “hack” and move through each level or play through endless mode. Biggest challenge was the screen kept freezing after you lost, which took about an hour of research to fix. The thing I am most proud of is the endless mode where after a certain amount of time it gets faster and faster, adding a fun dynamic to the game. I hope everyone enjoys this simple little game I made!...
|
1793004629.2659192
|
1793091029.2659192
|
|
33788
|
SOS Button by @SohamKaran | Stardance
|
SohamKaran
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T16:27:43Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a sos button which can send your live location or call on the saved number it can be helpful for kids and any other person who is in danger", "repo": "https://github.com/sohamboyythrdh6/SOS-button", "demo": ""}]...
|
[{"post_id": 73201, "ts": "202 [{"post_id": 73201, "ts": "2026-09-24T16:24:51Z", "hours": 4.6919, "text": "after getting all the parts i started prototyping it on a bread board and after that i orderd the pcb and soldering everything after that i uploaded the code and it is working great"}, {"post_id": 31293, "ts": "2026-07-19T16:13:41Z", "hours": 6.0347, "text": "i found that some children or anyone not safe to went out so i decided to make a project which felt them safer so i made this at first i watch some YouTube tutorials then i go with some my opinion parts and i started drawing the sch after that i design the pcb and after working on the hardware I started writing code for this project . later i write the github repo i started with the bom and then i write the readme and at last upload all other requard file in it now i am finished and rady to ship it."}]...
|
Title: SOS Button by @SohamKaran | Stardance
Devl Title: SOS Button by @SohamKaran | Stardance
Devlogs:
i found that some children or anyone not safe to went out so i decided to make a project which felt them safer so i made this at first i watch some YouTube tutorials then i go with some my opinion parts and i started drawing the sch after that i design the pcb and after working on the hardware I started writing code for this project . later i write the github repo i started with the bom and then i write the readme and at last upload all other requard file in it now i am finished and rady to ship it.
after getting all the parts i started prototyping it on a bread board and after that i orderd the pcb and soldering everything after that i uploaded the code and it is working great
Ships:
i made a sos button which can send your live location or call on the saved number it can be helpful for kids and any other person who is in danger...
|
1793004628.376554
|
1793091028.376554
|
|
3519
|
Name That Nation by @brlin888 | Stardance
|
brlin888
|
2
|
26.85
|
262
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T21:15:15Z", "hours": 1.0, "multiplier": 7.33, "payout": 6, "blessing": "neutral", "text": "Hi everyone or whoever is reviewing this ship! This is my #2 ship for NameThatNation. To recap, NameThatNation is a game that allows the user to learn more about different countries through answering questions. Overall, for these couple of hours I continued to work on this project. Based on the comments from the people that reviewed on my last ship, I mainly worked on organizing the images in my panels better and adjusting the panels to be more visually appealing. If you want a better experience while playing the game, make sure to check out the settings panel where you can customize your gaming experience. For this ship, I recreated the images in my panels so that they fit the game better, so I am proud so say there was NO AI used in creating any of the images! Just a note that if you want to check out this game, make sure to go to releases or click on the “try project” button which will direct you towards the github releases. Ensure that you have download Java JDK because this entire project is coded entirely in JAVA which is an extremely technical language, so organization wise and how this game works is limited to some extent (harder to organize because need to manually run and check program each time to ensure object is placed where you want it to be and components are have a limited size by Java). Hope you have fun reviewing my ship!", "repo": "https://github.com/brlin888-create/Name-That-Nation", "demo": "https://github.com/brlin888-create/Name-That-Nation/releases/tag/v1.0.0"}, {"ship_num": 2, "ts": "2026-09-27T23:51:25Z", "hours": 18.0, "multiplier": 14.44, "payout": 256, "blessing": "neutral", "text": "Hi all, this is my ship for Name That Nation! Name That Nation is a game I thought of that tests and trains a person’s ability of naming countries based on the shape of the country (all 198 countries). The game is made completely using Java, all coded line by line, with some images being AI generated. The most challenging part of this project was actually making sure the project worked, because Java is a really technical language. One missing semicolon, and you have to go back and manually fix it. Additionally, since there are a lot of JButtons and components I had to add, the formatting depended on individually testing and organizing in order for the project to look visually aesthetic. Lastly, one of the biggest challenges was reading/writing from multiple files, since there was hundreds of country image files I had to organize, as well as ensuring that each country was actually accounted for. Overall, the testing through each individual panel allowed me to slowly build up this project as a whole. One interesting thing I added was incorporating powerups and achievements, that would incentive players to continuously play to achieve a higher score. Players can customize their gaming experience on background color, font size, difficulty, etc. in the settings panel. There are hints present, a timer present, and three lives, but by utilizing the powerups, this will boost the scores an individual can set. After gameplay, players can see what they scored wrong on, save their score to the txt file which includes (and sorts) all names, as well as see what achievements they have accomplished. This pretty much sums up my project as a whole, over 20+ hours (from image downloads to testing which was not accounted for in the Hackatime hours) as well as over 2400 lines of code. Hope whoever is reading this enjoys this project!!!", "repo": "https://github.com/brlin888-create/Name-That-Nation", "demo": "https://github.com/brlin888-create/Name-That-Nation/releases/tag/v1.0.0"}]...
|
[{"post_id": 82836, "ts": "202 [{"post_id": 82836, "ts": "2026-10-25T23:53:38Z", "hours": 6.9822, "text": "Hi all!!! Last week of stardance so I’m really grinding this project and trying to balance this with school work!!! Basically, I made the game look even better and improved functionality because I found some issues with the powerups. Basically, sometimes, they were activated even though the requirements aren’t met such as getting x-amount of questions right in a row. Additionally, I continued with improving the looks of the game such as making the powerups look pixelated too! I will probably do my ship in a day or two so it was fun doing this project (might do a 4th ship if I have time!)"}, {"post_id": 81153, "ts": "2026-10-20T03:59:17Z", "hours": 0.8692, "text": "Hi everyone, i am continuing to build on my project for NameThatNation! Mainly this time focusing on organization for website as well as implementing more features and polishing my readme! also if any of you guys know when a manuel review submission for a ship will get approved, please let me know!"}, {"post_id": 78454, "ts": "2026-10-10T20:37:00Z", "hours": 0.2667, "text": "Hi all, My project got rejected again… for using AI assets. After changing the images on canva and ensuring the game still works, hopefully this time my ship will go through. If you guys want to see the new changes made to my project, feel free to check out the github for Name That Nation. Hopefully @Amu or other shipwrights will consider these new changes made as it took me over 2 hrs+ to find images and individually change the assets that were AI generated. So now I am happy to say my project does not use a single AI generated image!"}, {"post_id": 77989, "ts": "2026-10-09T03:57:33Z", "hours": 0.3039, "text": "Hi all, I have made a few changes for my project in order to fulfill the shipping request so hopefully whoever reviews my ship takes this into consideration @Jack_ . Just some further instructions on how to run my code: since I am using java in my project especially libraries that call for java JFrame and JPanel, java must be INSTALLED on the device for whoever is playing the game. In my github releases, I have updated with more clear instructions on how to download java JDK based on your device, then compiling my code. This is the only way, as converting into an executable still won’t run the code as whoever has the code doesn’t have the java libraries specific for my game pre-loaded. Thank you for reading this and hopefully my ship goes through successfully (I haven’t gotten an update in like 5 days…)!"}, {"post_id": 75771, "ts": "2026-10-01T01:34:52Z", "hours": 0.255, "text": "Hi all, I thought my project would be finished but apparently there were some issues with shipping the project. To whoever is reading this or people that judge ships, I have edited my github to have a releases zip file which can be downloaded to test out my game. You may still see the youtube video still attached for my game demo, but you can now try out the game yourself in github by retrieving the required assets. Additionally, I added more clear instructions and descriptions on NameThatNation and its properties. Hopefully you guys go check it out and take into consideration when evaluating my ship!"}, {"post_id": 74676, "ts": "2026-09-27T23:41:08Z", "hours": 0.3425, "text": "Hi all, This will be the last devlog for Name That Nation. I am so excited for you guys to see what I have been able to accomplish throughout the summer. Since NameThatNation is coded in Java completely, it CANNOT be converted into a website. I have attached a video (took 2 hours to edit) to demonstrate how the game can be played, as well as attached the source code in github. The reason that it cannot be made into a website is that it reads and writes through specific files that is not possible on a website. Additionally, Java JPanel and JFrame is not compatible with websites, meaning that I would have to code the entire game again in another programming language in order for the game to function. Today I placed my finishing touches such as incorporating the achievements panel and added final touches/testings for the entire game. This game took over 20+ hours (not shown through Hackatime) because there was more time spent on individually downloading all 198 country images and organizing files to include all countries but maintain functionality. I hope this project finds you well and thanks for those that have been following along the journey!!! Hope you guys like my project!!!"}, {"post_id": 74328, "ts": "2026-09-27T05:36:03Z", "hours": 2.78, "text": "NameThatNation!!! Hi all, for those that have been following along, there has been significant progress throughout the game. I have finally been able to get the gamepanel to work. I added powerups and different features such as lives count, hints, and changing colors on JButtons which utilizes a button listener to detect if the button clicked is correct. Although this may look simple, this project has taken me over several hours to what you see today. Java is an easy language to learn, but to implement it to this level is extremely hard, as image reading, file reading, JButtons, JCheckboxes, etc. are extremely technical and one wrong step will cause the entire program to not function. Tomorrow, I will finish the last panels which are the Achievements panel, and leaderboard panels. After that I will, post a demo of the project (as java is not compatible with online user websites and I am using read/write from files), and do my final commit before I ship my project!!! Thank you for those that have been following along!"}, {"post_id": 68387, "ts": "2026-09-15T01:24:48Z", "hours": 0.5231, "text": "What is up everyone! If you haven’t checked my last devlog, my main issue is still converting my code to a website or mainly a way for you guys to play the game without downloading the source code. I add some improvements to the game, fixing a JButton error because all of the buttons kept on lighting up when I didn’t click any of them. I also added more countries to the country info panel, so I’m pretty sure I have all 198 countries for now in the game. Next up is still fixing the website issue and adding to the game! Stay tuned for more!!!!!!!!!!!!!!"}, {"post_id": 66733, "ts": "2026-09-12T16:56:45Z", "hours": 6.6714, "text": "I know I haven’t posted a dev log for a long time… but here is it after 2 months and what I have been working on!!! After completely the country info and instructions panel, I started to work on the game panel which was definitely one of the hardest panels to complete. This is because working in Java JFrame/JPanel requires a lot of technical code to allow buttons to be clicked and change color when an answer choice is correct. Other than this, I had to download EVERY SINGLE COUNTRY’s image and add it to a folder which took over 2 hours to do (not included in the 6 hours) because I couldn’t find a website that had all of them. Other than that, the project is going extremely smoothly and I am currently working on adding different powerups that can aid the person playing the game. My only concern is converting this JFrame/JPanel game onto a demo website because the game is currently reading files from on my computer such as the images and files for instructions etc. If you guys have any suggestions, please feel free to leave it in the chat!"}, {"post_id": 25118, "ts": "2026-07-09T03:48:31Z", "hours": 0.6564, "text": "Continued to work on the project! Short Dev Log Today! finished settings and still working on instructions panel started working on game panel game hard to implement need to locate specific coordinates follow for more!"}, {"post_id": 23809, "ts": "2026-07-06T23:37:24Z", "hours": 2.2889, "text": "Hey everyone! It’s been a massive day of coding on NameThatNation. If you’ve been following along, you know the goal: a game where you look at maps/images and guess the country before the timer runs out. Today, I wired up the core skeleton for the Settings Panel, Country Info Panel, and initialized the beast that is the Game Panel. Here is exactly what went down today: The Settings Panel: I wanted players to be able to customize their UI, but things got a little chaotic in the grid layouts. The RGB Sliders: Added JSlider controls for Red, Green, and Blue. Players can dynamically alter the theme color (info.setColor). The Continents Customization: Implemented checkboxes for all 7 continents. But I had to add a hard rule in the ButtonListener: You must choose at least 3 continents before you can leave. Why? Because guessing between just the USA and Canada is too easy everyone is going to get it right… Image Size Scrollbar: Added a JScrollBar allowing players to scale the image sizes. Scroll down or up. Difficulty JMenu: A nice dropdown menu (Font.BOLD, 30) to swap between Easy, Medium, and Hard. Current Visual Bug: The continent checkboxes currently text-render in a terrifying new Color(183, 9, 9) (deep blood red) alongside a red warning label. The Country Info Panel: Players need a place to study up, so I built the CountryInfoPanel. It utilizes a try-catch block inside a custom fileIn() method to read a massive text file: countriesContinentHard.txt. It dumps all that text into a non-editable, word-wrapping JTextArea wrapped in a JScrollPane so you can scroll through hundreds of countries. The Aesthetic: On the left side, it renders a nice big sprite of planet Earth (Earth.png), while the data scrolls smoothly on the right. The Game Panel (The Brain of the Operation) Finally, I started prototyping the actual gameplay panel. It’s not fully rendered yet, but the logic infrastructure is going to be a lot! I will continue to work on this panel this week and make sure to follow along the game making!!!"}, {"post_id": 21667, "ts": "2026-07-03T19:03:46Z", "hours": 1.4492, "text": "Dev Log: Name That Nation Implementation of Core UI Panels (Start, Instructions, & Settings) Overview: Successfully built and structured the primary navigational and configuration panels for NameThatNation. Implemented Java Swing components across three core areas: the StartPanel (handling user onboarding and core navigation), the InstructionsPanel (displaying gameplay mechanics in a scrollable format), and the SettingsPanel (giving users control over gameplay parameters like difficulty, map sizes, background colors, and continent selection). Key Implementations: StartPanelUser Onboarding: Added a JTextField for name entry along with strict data validation. If the field is empty or left as default, a warning message (noName JLabel) triggers in red text, blocking gameplay progression. Animated Background: Integrated a javax.swing.Timer alongside a modified paintComponent method to alternate every 0.5 seconds between three unique world images (World1.png to World3.png), creating a smooth looping animation of a rotating Earth.CardLayout Navigation: Configured centralized action listeners (buttons and exitListener) to pass state data to the parent container, cleanly swapping panels or closing the application altogether. InstructionsPanelLayout & Scrolling: Used a BorderLayout to organize an informative overview of rules, score tallies, powerups, and level details. Scroll Mechanics: Embedded a heavy block of instruction text into a non-editable JTextArea wrapped in a JScrollPane, forcing explicit vertical navigation while keeping horizontal scrolling locked. Visual Assets: Overlaid a game preview snapshot (Game.png) on top of a custom backdrop image to give players context before starting. SettingsPanelRGB Customization: Implemented three distinct JSlider inputs (Red, Green, Blue) bound to a ColorHandler listener. This updates the player’s canvas background dynamically via the shared Information state object. Game Parameters: Combined a JScrollBar to control image scale thresholds, a JMenuBar with JMenuItem nodes for changing the match difficulty (Easy, Medium, Hard), and an array of JCheckBox fields representing all seven continents. Challenges: Absolute Layout Positioning: Managing explicit component bounds (setBounds) in the null-layout StartPanel requires highly specific coordinates that can scale poorly if window sizes are dramatically altered later. Validation Multi-threading: Syncing state requirements—such as throwing warnings when fewer than 3 continents are selected or managing name checks—requires seamless communication between panel instances and the core Information holder class. Next Steps: Enforce Continent Validation: Active counters ensuring the validation warning dynamically locks or unlocks the “Back” button if the 3-continent minimum isn’t met. Integrate Game Logic: Establish properties inside the GamePanel constructor that ingest the finalized values set by the sliders, checkboxes, and scrollbars from the configuration stage."}, {"post_id": 20985, "ts": "2026-07-02T18:41:17Z", "hours": 3.0508, "text": "Working on a game to allow people to get better at identifying countries based on the shape (will have powerups, customized settings, etc.). This project will be done in java through vscode! Feel free to give any feedback or advice on what I should add to the game. I currently only have the JPanels working for the settings panel as well as the start panel with buttons. Stay tuned for more updates!!! Issues encountered and fixed: panel switching setting JButtons in settings panel layouts -> placing components in the right location"}]...
|
Title: Name That Nation by @brlin888 | Stardance
Title: Name That Nation by @brlin888 | Stardance
Devlogs:
Working on a game to allow people to get better at identifying countries based on the shape (will have powerups, customized settings, etc.). This project will be done in java through vscode! Feel free to give any feedback or advice on what I should add to the game. I currently only have the JPanels working for the settings panel as well as the start panel with buttons. Stay tuned for more updates!!! Issues encountered and fixed: panel switching setting JButtons in settings panel layouts -> placing components in the right location
Dev Log: Name That Nation Implementation of Core UI Panels (Start, Instructions, & Settings) Overview: Successfully built and structured the primary navigational and configuration panels for NameThatNation. Implemented Java Swing components across three core areas: the StartPanel (handling user onboarding and core navigation), the InstructionsPanel (displaying gameplay mechanics in a scrollable format), and the SettingsPanel (giving users control over gameplay parameters like difficulty, map sizes, background colors, and continent selection). Key Implementations: StartPanelUser Onboarding: Added a JTextField for name entry along with strict data validation. If the field is empty or left as default, a warning message (noName JLabel) triggers in red text, blocking gameplay progression. Animated Background: Integrated a javax.swing.Timer alongside a modified paintComponent method to alternate every 0.5 seconds between three unique world images (World1.png to World3.png), creating a smooth looping animation of a rotating Earth.CardLayout Navigation: Configured centralized action listeners (buttons and exitListener) to pass state data to the parent container, cleanly swapping panels or closing the application altogether. InstructionsPanelLayout & Scrolling: Used a BorderLayout to organize an informative overview of rules, score tallies, powerups, and level details. Scroll Mechanics: Embedded a heavy block of instruction text into a non-editable JTextArea wrapped in a JScrollPane, forcing explicit vertical navigation while keeping horizontal scrolling locked. Visual Assets: Overlaid a game preview snapshot (Game.png) on top of a custom backdrop image to give players context before starting. SettingsPanelRGB Customization: Implemented three distinct JSlider inputs (Red, Green, Blue) bound to a ColorHandler listener. This updates the player’s canvas background dynamically via the shared Information state object. Game Parameters: Combined a JScrollBar to control image scale thresholds, a JMenuBar with JMenuItem nodes for changing the match difficulty (Easy, Medium, Hard), and an array of JCheckBox fields representing all seven continents. Challenges: Absolute Layout Positioning: Managing explicit component bounds (setBounds) in the null-layout StartPanel requires highly specific coordinates that can scale poorly if window sizes are dramatically altered later. Validation Multi-threading: Syncing state requirements—such as throwing warnings when fewer than 3 continents are selected or managing name checks—requires seamless communication between panel instances and the core Information holder class. Next Steps: Enforce Continent Validation: Active counters ensuring the validation warning dynamically locks or unlocks the “Back” button if the 3-continent minimum isn’t met. Integrate Game Logic: Establish properties inside the GamePanel constructor that ingest the finalized values set by the sliders, checkboxes, and scrollbars from the configuration stage.
Hey everyone! It’s been a massive day of coding on NameThatNation. If you’ve been following along, you know the goal: a game where you look at maps/images and guess the country before the timer runs out. Today, I wired up the core skeleton for the Settings Panel, Country Info Panel, and initialized the beast that is the Game Panel. Here is exactly what went down today: The Settings Panel: I wanted players to be able to customize their UI, but things got a little chaotic in the grid layouts. The RGB Sliders: Added JSlider controls for Red, Green, and Blue. Players can dynamically alter the theme color (info.setColor). The Continents Customization: Implemented checkboxes for all 7 continents. But I had to add a hard rule in the ButtonListener: You must choose at least 3 continents before you can leave. Why? Because guessing between just the USA and Canada is too easy everyone is going to get it right… Image Size Scrollbar: Added a JScrollBar allowing players to scale the image sizes. Scroll down or up. Difficulty JMenu: A nice dropdown menu (Font.BOLD, 30) to swap between Easy, Medium, and Hard. Current Visual Bug: The continent checkboxes currently text-render in a terrifying new Color(183, 9, 9) (deep blood red) alongside a red warning label. The Country Info Panel: Players need a place to study up, so I built the CountryInfoPanel. It utilizes a try-catch block inside a custom fileIn() method to read a massive text file: countriesContinentHard.txt. It dumps all that text into a non-editable, word-wrapping JTextArea wrapped in a JScrollPane so you can scroll through hundreds of countries. The Aesthetic: On the left side, it renders a nice big sprite of planet Earth (Earth.png), while the data scrolls smoothly on the right. The Game Panel (The Brain of the Operation) Finally, I started prototyping the actual gameplay panel. It’s not fully rendered yet, but the logic infrastructure is going to be a lot! I will continue to work on this panel this week and make sure to follow along the game making!!!
Continued to work on the project! Short Dev Log Today! finished settings and still working on instructions panel started working on game panel game hard to implement need to locate specific coordinates follow for more!
I know I haven’t posted a dev log for a long time… but here is it after 2 months and what I have been working on!!! After completely the country info and instructions panel, I started to work on the game panel which was definitely one of the hardest panels to complete. This is because working in Java JFrame/JPanel requires a lot of technical code to allow buttons to be clicked and change color when an answer choice is correct. Other than this, I had to download EVERY SINGLE COUNTRY’s image and add it to a folder which took over 2 hours to do (not included in the 6 hours) because I couldn’t find a website that had all of them. Other than that, the project is going extremely smoothly and I am currently working on adding different powerups that can aid the person playing the game. My only concern is converting this JFrame/JPanel game onto a demo website because the game is currently reading files from on my computer such as the images and files for instructions etc. If you guys have any suggestions, please feel free to leave it in the chat!
What is up everyone! If you haven’t checked my last devlog, my main issue is still converting my code to a website or mainly a way for you guys to play the game without downloading the source code. I add some improvements to the game, fixing a JButton error because all of the buttons kept on lighting up when I didn’t click any of them. I also added more countries to the country info panel, so I’m pretty sure I have all 198 countries for now in the game. Next up is still fixing the website issue and adding to the game! Stay tuned for more!!!!!!!!!!!!!!
NameThatNation!!! Hi all, for those that have been following along, there has been significant progress throughout the game. I have finally been able to get the gamepanel to work. I added powerups and different features such as lives count, hints, and changing colors on JButtons which utilizes a button listener to detect if the button clicked is correct. Although this may look simple, this project has taken me over several hours to what you see today. Java is an easy language to learn, but to implement it to this level is extremely hard, as image reading, file reading, JButtons, JCheckboxes, etc. are extremely technical and one wrong step will cause the entire program to not function. Tomorrow, I will finish the last panels which are the Achievements panel, and leaderboard panels. After that I will, post a demo of the project (as java is not compatible with online user websites and I am using read/write from files), and do my final commit before I ship my project!!! Thank you for those that have been following along!
Hi all, This will be the last devlog for Name That Nation. I am so excited for you guys to see what I have been able to accomplish throughout the summer. Since NameThatNation is coded in Java completely, it CANNOT be converted into a website. I have attached a video (took 2 hours to edit) to demonstrate how the game can be played, as well as attached the source code in github. The reason that it cannot be made into a website is that it reads and writes through specific files that is not possible on a website. Additionally, Java JPanel and JFrame is not compatible with websites, meaning that I would have to code the entire game again in another programming language in order for the game to function. Today I placed my finishing touches such as incorporating the achievements panel and added final touches/testings for the entire game. This game took over 20+ hours (not shown through Hackatime) because there was more time spent on individually downloading all 198 country images and organizing files to include all countries but maintain functionality. I hope this project finds you well and thanks for those that have been following along the journey!!! Hope you guys like my project!!!
Hi all, I thought my project would be finished but apparently there were some issues with shipping the project. To whoever is reading this or people that judge ships, I have edited my github to have a releases zip file which can be downloaded to test out my game. You may still see the youtube video still attached for my game demo, but you can now try out the game yourself in github by retrieving the required assets. Additionally, I added more clear instructions and descriptions on NameThatNation and its properties. Hopefully you guys go check it out and take into consideration when evaluating my ship!
Hi all, I have made a few changes for my project in order to fulfill the shipping request so hopefully whoever reviews my ship takes this into consideration @Jack_ . Just some further instructions on how to run my code: since I am using java in my project especially libraries that call for java JFrame and JPanel, java must be INSTALLED on the device for whoever is playing the game. In my github releases, I have updated with more clear instructions on how to download java JDK based on your device, then compiling my code. This is the only way, as converting into an executable still won’t run the code as whoever has the code doesn’t have the java libraries specific for my game pre-loaded. Thank you for reading this and hopefully my ship goes through successfully (I haven’t gotten an update in like 5 days…)!
Hi all, My project got rejected again… for using AI assets. After changing the images on canva and ensuring the game still works, hopefully this time my ship will go through. If you guys want to see the new changes made to my project, feel free to check out the github for Name That Nation. Hopefully @Amu or other shipwrights will consider these new changes made as it took me over 2 hrs+ to find images and individually change the assets that were AI generated. So now I am happy to say my project does not use a single AI generated image!
Hi everyone, i am continuing to build on my project for NameThatNation! Mainly this time focusing on organization for website as well as implementing more features and polishing my readme! also if any of you guys know when a manuel review submission for a ship will get approved, please let me know!
Hi all!!! Last week of stardance so I’m really grinding this project and trying to balance this with school work!!! Basically, I made the game look even better and improved functionality because I found some issues with the powerups. Basically, sometimes, they were activated even though the requirements aren’t met such as getting x-amount of questions right in a row. Additionally, I continued with improving the looks of the game such as making the powerups look pixelated too! I will probably do my ship in a day or two so it was fun doing this project (might do a 4th ship if I have time!)
Ships:
Hi all, this is my ship for Name That Nation! Name That Nation is a game I thought of that tests and trains a person’s ability of naming countries based on the shape of the country (all 198 countries). The game is made completely using Java, all coded line by line, with some images being AI generated. The most challenging part of this project was actually making sure the project worked, because Java is a really technical language. One missing semicolon, and you have to go back and manually fix it. Additionally, since there are a lot of JButtons and components I had to add, the formatting depended on individually testing and organizing in order for the project to look visually aesthetic. Lastly, one of the biggest challenges was reading/writing from multiple files, since there was hundreds of country image files I had to organize, as well as ensuring that each country was actually accounted for. Overall, the testing through each individual panel allowed me to slowly build up this project as a whole. One interesting thing I added was incorporating powerups and achievements, that would incentive players to continuously play to achieve a higher score. Players can customize their gaming experience on background color, font size, difficulty, etc. in the settings panel. There are hints present, a timer present, and three lives, but by utilizing the powerups, this will boost the scores an individual can set. After gameplay, players can see what they scored wrong on, save their score to the txt file which includes (and sorts) all names, as well as see what achievements they have accomplished. This pretty much sums up my project as a whole, over 20+ hours (from image downloads to testing which was not accounted for in the Hackatime hours) as well as over 2400 lines of code. Hope whoever is reading this enjoys this project!!!
Hi everyone or whoever is reviewing this ship! This is my #2 ship for NameThatNation. To recap, NameThatNation is a game that allows the user to learn more about different countries through answering questions. Overall, for these couple of hours I continued to work on this project. Based on the comments from the people that reviewed on my last ship, I mainly worked on organizing the images in my panels better and adjusting the panels to be more visually appealing. If you want a better experience while playing the game, make sure to check out the settings panel where you can customize your gaming experience. For this ship, I recreated the images in my panels so that they fit the game better, so I am proud so say there was NO AI used in creating any of the images! Just a note that if you want to check out this game, make sure to go to releases or click on the “try project” button which will direct you towards the github releases. Ensure that you have download Java JDK because this entire project is coded entirely in JAVA which is an extremely technical language, so organization wise and how this game works is limited to some extent (harder to organize because need to manually run and check program each time to ensure object is placed where you want it to be and components are have a limited size by Java). Hope you have fun reviewing my ship!...
|
1793004627.181034
|
1793091027.181034
|
|
43792
|
Teach Terminal by @Arsen | Stardance
|
Arsen
|
1
|
42.0
|
351
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T15:29:32Z", "hours": 42.0, "multiplier": 18.43, "payout": 351, "blessing": "neutral", "text": "Teach Terminal I made Teach Terminal - a browser-based Linux terminal simulator for learning basic Linux commands. The main problem I wanted to solve is that learning Linux from documentation can be very passive. You read what cd or chmod does, but you don’t really remember it until you use it yourself. Also, using a real Linux system can be a little scary for beginners because one wrong command can cause problems. Teach Terminal gives you a fake Linux filesystem where you can practice without breaking a real computer. You can log in, choose a mode, and start learning. There are 25 lessons in 5 sections: Introduction, Navigation, Files, Text & Redirection, and Permissions. Every lesson has a small lecture and then practice. In the practice you need to type commands yourself, for example pwd , ls -la , chmod 755 , or sudo chown root file.txt . The terminal gives output and errors similar to what you can get in a real Ubuntu terminal. Note: This is a simulation. It does not enforce all Linux permissions and security rules, so some commands may behave differently than on a real system. What was challenging The fake filesystem was one of the harder parts. I made two classes for it. FileSystem handles the filesystem tree and navigation, and file represents the individual files and folders. It also stores things like permissions, owner, size and modification date. Getting absolute paths working was also a little difficult. I needed to go from the current file or folder to its parents until I reach the root. It is kind of like following a linked list backwards. Another problem was checking commands in multi-step practices. For example, when a user runs sudo chown root file.txt , the practice checker needs to check the whole command and not only chown root file.txt . I also had problems with resetting the practice state. If I make a folder with mkdir projects and then start the same practice again, it will fail because the folder already exists. So I needed to reset the practice filesystem when starting it again. Things I am happy with The lesson engine is probably the part I worked most on. It handles the lecture, practice, success state, and the progress for each step. I also made the lesson window draggable and minimizable. Pressing Escape can toggle the window. The terminal currently supports 16 commands and some extra features like flags, redirection ( > , >> , < , 2> ), tab autocomplete, arrow-key command history, and sudo with password checking. I also added 3 themes: Ubuntu, Hacker and Kali. The themes are used across the different pages. How to test Open the demo link. Go to Settings and choose a theme: Ubuntu, Hacker, or Kali. Log in with a valid username, machine name and password. Choose Guided Path if you want to try the lessons, or Free Exploration if you just want to use the terminal. In a lesson, read the lecture and click Start Practice . Type the commands in the terminal and follow the steps. Some commands you can try: pwd ls -la mkdir test cd test touch file.txt chmod 755 file.txt sudo chown root file.txt The project is made with plain HTML, CSS and JavaScript. I didn’t use frameworks or external dependencies.", "repo": "https://github.com/Arsen-Gevorgyan/teach-terminal", "demo": "https://arsen-gevorgyan.github.io/teach-terminal/"}]...
|
[{"post_id": 75823, "ts": "202 [{"post_id": 75823, "ts": "2026-10-01T08:23:43Z", "hours": 4.2042, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I finished writing all 25 lessons and fixed several issues with the lesson system. The lessons are organized into 5 sections - Introduction, Navigation, Files, Text & Redirection, and Permissions - plus a final congratulations lesson. Each practice lesson has multiple steps, so instead of a single command to type, the user might create a file, change its permissions, and verify with ls -l . The window tracks progress with markers like [x] , [>] , and [ ] so it is clear where the user is. I also fixed bugs I found while testing the flow: The lesson window didn’t reset the filesystem between practices. If you completed mkdir projects once, replaying the lesson would fail because the folder already existed. Now the filesystem resets to a clean state at the start of every practice lesson. Sudo commands weren’t detected by the practice check. The checker only saw the inner command ( chown root file.txt ), not the full sudo chown root file.txt . Fixed by passing the full command through. Lesson 25 no longer has a practice - it just says “Congratulations! You finished Teach Terminal.” with a short message about what the user learned. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation mode.html - Mode selection: Free Exploration or Guided Path lessons.html - Course overview with sections and lesson cards main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to mode page filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output, sudo flow command.js - Command recognition and execution lessons-data.js - All 25 lessons organized into 5 sections lesson.js - Renders the lessons page timeline lesson-window.js - Runs the lesson window inside the terminal Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , chmod , chown , sudo , clear , help , history With flags for most commands, redirection ( > , >> , < , 2> ), Tab autocomplete, arrow-key history, !! and !n expansion, and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Add grep , head , tail Add pipes ( | ) and shell operators ( && , || , ; ) Wildcards and brace expansion Try It Live Demo"}, {"post_id": 74998, "ts": "2026-09-28T20:14:08Z", "hours": 2.3608, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the lesson window - the floating panel that runs inside the terminal during lessons. This is the piece that connects the lessons page to the terminal itself. When a user picks a lesson from the overview, the terminal opens with ?lesson=N in the URL. The lesson window reads that number, finds the lesson in the data file, and appears in the top-right corner of the screen. The window has three states: Lecture - shows the lesson text explaining the concept. The user reads and clicks “Start Practice” (or “Complete” for intro lessons). Practice - the window changes visually. Its border and title switch to an amber color, and a “PRACTICE:” prefix appears in the title. This makes it obvious that it’s time to do something, not just read. The user types the command in the terminal below. Success - when the expected command is typed, the window shows the success message and a “Next Lesson” button appears. Clicking it swaps the window content to the next lesson without reloading the page. The window is also draggable by its title bar. The user can move it anywhere, minimize it with - , or close it with × (which returns to the lessons page). Pressing Escape hides and shows the window. I also added replay support. If a lesson is already complete, the user can open it again, read the lecture, and try the practice a second time. The window still shows the success message, but the lesson status stays DONE - it does not re-mark anything. Some issues I hit: The intro lessons blocked the “Next Lesson” button because they were being re-completed in a loop. I fixed this by tracking a showingSuccess variable that tells the code whether we’re on the success screen or the lecture. The practice mode class wasn’t being added because the flow checked lessonComplete before checking whether we were in the practice phase. I reordered the checks so practice renders correctly even for replayed lessons. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation mode.html - Mode selection: Free Exploration or Guided Path lessons.html - Course overview with sections and lesson cards main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to mode page filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output command.js - Command recognition and execution lessons-data.js - All 25 lessons organized into 6 sections lesson.js - Renders the lessons page timeline lesson-window.js - Runs the lesson window inside the terminal Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , clear , help , history With flags for most commands, redirection ( > , >> , < , 2> ), Tab autocomplete, arrow-key history, !! and !n expansion, and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build chmod , chown , sudo for the Permissions section Write lesson content for lessons 21-24 Build the Final Mission with a timer and game-style objectives Try It Live Demo"}, {"post_id": 73734, "ts": "2026-09-25T20:12:13Z", "hours": 6.7292, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the lessons system. This is the biggest step so far - the part that turns the terminal into a real teaching tool. The lessons system has three parts: The lessons overview page ( lessons.html ) shows all lessons organized into sections: Introduction Navigation Files Text & Redirection Permissions Final Mission Each lesson appears as a card with a status: START (unlocked), DONE (completed), or LOCK (not yet unlocked). Intro lessons are always open so users can read them or skip. Navigation lessons unlock one at a time. Later sections unlock when the previous section is finished. The lessons data file ( lessons-data.js ) stores all lesson content in one place. Each lesson has a lecture that explains the concept and a practice task with an expected command. The lesson engine ( lesson-window.js ) will run inside main.html . It opens a floating window with the current lesson, shows the lecture, then the practice. When the user types the correct command, the lesson completes and unlocks the next one. I also built the mode selection page ( mode.html ). After login, the user picks between two paths: Free Exploration : opens the terminal with no lessons Guided Path : opens the lessons overview Progress saves to localStorage so completed lessons stay completed. Some issues I hit: The unlock logic had a bug where Intro lessons blocked Navigation. I fixed it by skipping intro sections in the unlock check. CSS conflicts between .lesson-subtitle (used inside lesson cards) and .lessons-subtitle (used on the page). I renamed them to avoid mixing styles. The lessons page inherited overflow: hidden from the body, so it could not scroll. I added a body.lessons-page override. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation mode.html - Mode selection: Free Exploration or Guided Path lessons.html - Course overview with sections and lesson cards main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to mode page filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output commands.js - Command recognition and execution lessons-data.js - All 25 lessons organized into 6 sections lesson.js - Renders the lessons page timeline Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , clear , help , history With flags for most commands, redirection ( > , >> , < , 2> ), Tab autocomplete, arrow-key history, !! and !n expansion, and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build the lesson window inside main.html (lecture, practice, success phases) Make the window draggable and minimizable with an Escape key toggle Build the Final Mission with game-style objectives Add remaining commands ( grep , head , tail , chmod , chown ) Try It Live Demo"}, {"post_id": 72453, "ts": "2026-09-23T00:38:08Z", "hours": 8.2353, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I added redirection to the terminal. Commands can now read from files and write to them instead of only printing to the screen. The terminal now supports: > - write output to a file (overwrites) >> - append output to a file < - read input from a file 2> - redirect error output to a file I also connected < to cat so it can read from a file through stdin. To make this work, I had to refactor how commands run. The old processCommand returned output directly. I renamed it to executeCommand and wrote a new processCommand wrapper above it that parses redirection operators before the command runs, then decides where the output goes. The refactor was harder than expected. I hit several bugs - a typo in stderrMatch , a missing $ anchor in a regex, and a duplicate if block that used the wrong variable. I also had to fix catResults and lineNumber which I deleted during the refactor without realizing. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, and theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to terminal filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output commands.js - Command recognition and execution Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , clear , help With flags for most commands, redirection ( > , >> , < , 2> ), and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Command history (up/down arrow keys) Tab autocomplete history command, !! , !n Add grep , head , tail Add chmod , chown Wildcards, brace expansion, && , || Build the lesson system (lectures + practice missions) Try It Live Demo"}, {"post_id": 51663, "ts": "2026-08-21T13:49:47Z", "hours": 2.9792, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the fake filesystem and connected it to the terminal. The terminal now feels like a real Linux system. The filesystem supports: pwd - shows current directory ls - lists files and folders with colors (blue for directories, green for executables, white for files) ls -l - shows permissions, owner, group, and name cd - navigate with ~ , . , .. , and absolute paths mkdir - create folders touch - create files The prompt updates when navigating directories. It shows ~ for the home directory and the full path everywhere else. I also added realistic bash error messages. Invalid flags, missing arguments, and wrong paths all show proper errors like a real terminal would. The terminal now has 7 working commands with real filesystem behavior. Next step is building the lesson system that teaches these commands one by one. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, and theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to terminal filesystem.js - Fake Linux filesystem with files, folders, permissions, and navigation terminal.js - Terminal input handling, prompt display, line management, colored output commands.js - Command recognition ( help , pwd , clear , ls , cd , mkdir , touch ) Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build the lesson system (lectures + practice missions) Add more commands ( cat , rm , cp , mv , chmod , chown ) Add command history (up/down arrow keys) Add redirection ( > , >> , < ) Improve mobile experience Try It Live Demo"}, {"post_id": 45917, "ts": "2026-08-12T18:06:17Z", "hours": 3.5864, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the login page. It’s a page where the user enters their username, machine name, and password before entering the terminal. The form validates each field: Username must be 4–9 characters, start with a letter, and contain only letters and numbers Machine name follows the same rules Password must be 8–19 characters If something is wrong, an error message appears below the form showing what needs to be fixed. After all fields are entered correctly, the data is saved and the user is redirected to the terminal. The terminal itself is not fully finished yet — commands work, but there’s no filesystem and no lessons. That’s the next step. Completed index.html — Start menu with Start and Settings buttons settings.html — Settings page with three themes (Ubuntu, Hacker, Kali) login.html — Login page with username, machine name, and password validation main.html — Interactive terminal interface style.css — Main styling, animated gradients, glassmorphism UI, and theme colors login.css — Login page styling with themed backgrounds settings.js — Saves the selected theme using localStorage theme.js — Loads the saved theme and applies it automatically login.js — Form validation and redirect to terminal terminal.js — Terminal input handling, prompt display, line management commands.js — Command recognition ( help , pwd , clear , whoami , date , echo ) Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build a fake filesystem ( cd , ls , mkdir , touch ) Add file permissions ( chmod , chown , sudo ) Create lessons and practice missions Add command history (up/down arrow keys) Try It Live Demo"}, {"post_id": 40664, "ts": "2026-08-04T11:00:02Z", "hours": 13.4225, "text": "Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. What I Built I started the project by creating the basic structure of the website and the main navigation. Completed index.html — Start menu with Start and Settings buttons. settings.html — Settings page. main.html — Initial game page. style.css — Main styling, animated gradients, glassmorphism UI, and theme colors. settings.js — Saves the selected theme using localStorage . theme.js — Loads the saved theme and applies it automatically. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build the interactive terminal. Add Linux commands and command processing. Create lessons and practice missions. Improve the mobile experience."}]...
|
Title: Teach Terminal by @Arsen | Stardance
Devlo Title: Teach Terminal by @Arsen | Stardance
Devlogs:
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. What I Built I started the project by creating the basic structure of the website and the main navigation. Completed index.html — Start menu with Start and Settings buttons. settings.html — Settings page. main.html — Initial game page. style.css — Main styling, animated gradients, glassmorphism UI, and theme colors. settings.js — Saves the selected theme using localStorage . theme.js — Loads the saved theme and applies it automatically. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build the interactive terminal. Add Linux commands and command processing. Create lessons and practice missions. Improve the mobile experience.
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the login page. It’s a page where the user enters their username, machine name, and password before entering the terminal. The form validates each field: Username must be 4–9 characters, start with a letter, and contain only letters and numbers Machine name follows the same rules Password must be 8–19 characters If something is wrong, an error message appears below the form showing what needs to be fixed. After all fields are entered correctly, the data is saved and the user is redirected to the terminal. The terminal itself is not fully finished yet — commands work, but there’s no filesystem and no lessons. That’s the next step. Completed index.html — Start menu with Start and Settings buttons settings.html — Settings page with three themes (Ubuntu, Hacker, Kali) login.html — Login page with username, machine name, and password validation main.html — Interactive terminal interface style.css — Main styling, animated gradients, glassmorphism UI, and theme colors login.css — Login page styling with themed backgrounds settings.js — Saves the selected theme using localStorage theme.js — Loads the saved theme and applies it automatically login.js — Form validation and redirect to terminal terminal.js — Terminal input handling, prompt display, line management commands.js — Command recognition ( help , pwd , clear , whoami , date , echo ) Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build a fake filesystem ( cd , ls , mkdir , touch ) Add file permissions ( chmod , chown , sudo ) Create lessons and practice missions Add command history (up/down arrow keys) Try It Live Demo
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the fake filesystem and connected it to the terminal. The terminal now feels like a real Linux system. The filesystem supports: pwd - shows current directory ls - lists files and folders with colors (blue for directories, green for executables, white for files) ls -l - shows permissions, owner, group, and name cd - navigate with ~ , . , .. , and absolute paths mkdir - create folders touch - create files The prompt updates when navigating directories. It shows ~ for the home directory and the full path everywhere else. I also added realistic bash error messages. Invalid flags, missing arguments, and wrong paths all show proper errors like a real terminal would. The terminal now has 7 working commands with real filesystem behavior. Next step is building the lesson system that teaches these commands one by one. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, and theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to terminal filesystem.js - Fake Linux filesystem with files, folders, permissions, and navigation terminal.js - Terminal input handling, prompt display, line management, colored output commands.js - Command recognition ( help , pwd , clear , ls , cd , mkdir , touch ) Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build the lesson system (lectures + practice missions) Add more commands ( cat , rm , cp , mv , chmod , chown ) Add command history (up/down arrow keys) Add redirection ( > , >> , < ) Improve mobile experience Try It Live Demo
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I added redirection to the terminal. Commands can now read from files and write to them instead of only printing to the screen. The terminal now supports: > - write output to a file (overwrites) >> - append output to a file < - read input from a file 2> - redirect error output to a file I also connected < to cat so it can read from a file through stdin. To make this work, I had to refactor how commands run. The old processCommand returned output directly. I renamed it to executeCommand and wrote a new processCommand wrapper above it that parses redirection operators before the command runs, then decides where the output goes. The refactor was harder than expected. I hit several bugs - a typo in stderrMatch , a missing $ anchor in a regex, and a duplicate if block that used the wrong variable. I also had to fix catResults and lineNumber which I deleted during the refactor without realizing. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, and theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to terminal filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output commands.js - Command recognition and execution Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , clear , help With flags for most commands, redirection ( > , >> , < , 2> ), and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Command history (up/down arrow keys) Tab autocomplete history command, !! , !n Add grep , head , tail Add chmod , chown Wildcards, brace expansion, && , || Build the lesson system (lectures + practice missions) Try It Live Demo
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the lessons system. This is the biggest step so far - the part that turns the terminal into a real teaching tool. The lessons system has three parts: The lessons overview page ( lessons.html ) shows all lessons organized into sections: Introduction Navigation Files Text & Redirection Permissions Final Mission Each lesson appears as a card with a status: START (unlocked), DONE (completed), or LOCK (not yet unlocked). Intro lessons are always open so users can read them or skip. Navigation lessons unlock one at a time. Later sections unlock when the previous section is finished. The lessons data file ( lessons-data.js ) stores all lesson content in one place. Each lesson has a lecture that explains the concept and a practice task with an expected command. The lesson engine ( lesson-window.js ) will run inside main.html . It opens a floating window with the current lesson, shows the lecture, then the practice. When the user types the correct command, the lesson completes and unlocks the next one. I also built the mode selection page ( mode.html ). After login, the user picks between two paths: Free Exploration : opens the terminal with no lessons Guided Path : opens the lessons overview Progress saves to localStorage so completed lessons stay completed. Some issues I hit: The unlock logic had a bug where Intro lessons blocked Navigation. I fixed it by skipping intro sections in the unlock check. CSS conflicts between .lesson-subtitle (used inside lesson cards) and .lessons-subtitle (used on the page). I renamed them to avoid mixing styles. The lessons page inherited overflow: hidden from the body, so it could not scroll. I added a body.lessons-page override. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation mode.html - Mode selection: Free Exploration or Guided Path lessons.html - Course overview with sections and lesson cards main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to mode page filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output commands.js - Command recognition and execution lessons-data.js - All 25 lessons organized into 6 sections lesson.js - Renders the lessons page timeline Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , clear , help , history With flags for most commands, redirection ( > , >> , < , 2> ), Tab autocomplete, arrow-key history, !! and !n expansion, and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build the lesson window inside main.html (lecture, practice, success phases) Make the window draggable and minimizable with an Escape key toggle Build the Final Mission with game-style objectives Add remaining commands ( grep , head , tail , chmod , chown ) Try It Live Demo
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I built the lesson window - the floating panel that runs inside the terminal during lessons. This is the piece that connects the lessons page to the terminal itself. When a user picks a lesson from the overview, the terminal opens with ?lesson=N in the URL. The lesson window reads that number, finds the lesson in the data file, and appears in the top-right corner of the screen. The window has three states: Lecture - shows the lesson text explaining the concept. The user reads and clicks “Start Practice” (or “Complete” for intro lessons). Practice - the window changes visually. Its border and title switch to an amber color, and a “PRACTICE:” prefix appears in the title. This makes it obvious that it’s time to do something, not just read. The user types the command in the terminal below. Success - when the expected command is typed, the window shows the success message and a “Next Lesson” button appears. Clicking it swaps the window content to the next lesson without reloading the page. The window is also draggable by its title bar. The user can move it anywhere, minimize it with - , or close it with × (which returns to the lessons page). Pressing Escape hides and shows the window. I also added replay support. If a lesson is already complete, the user can open it again, read the lecture, and try the practice a second time. The window still shows the success message, but the lesson status stays DONE - it does not re-mark anything. Some issues I hit: The intro lessons blocked the “Next Lesson” button because they were being re-completed in a loop. I fixed this by tracking a showingSuccess variable that tells the code whether we’re on the success screen or the lecture. The practice mode class wasn’t being added because the flow checked lessonComplete before checking whether we were in the practice phase. I reordered the checks so practice renders correctly even for replayed lessons. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation mode.html - Mode selection: Free Exploration or Guided Path lessons.html - Course overview with sections and lesson cards main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to mode page filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output command.js - Command recognition and execution lessons-data.js - All 25 lessons organized into 6 sections lesson.js - Renders the lessons page timeline lesson-window.js - Runs the lesson window inside the terminal Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , clear , help , history With flags for most commands, redirection ( > , >> , < , 2> ), Tab autocomplete, arrow-key history, !! and !n expansion, and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Build chmod , chown , sudo for the Permissions section Write lesson content for lessons 21-24 Build the Final Mission with a timer and game-style objectives Try It Live Demo
Teach Terminal A browser-based game that teaches Linux terminal commands through interactive lessons and missions. Today Today I finished writing all 25 lessons and fixed several issues with the lesson system. The lessons are organized into 5 sections - Introduction, Navigation, Files, Text & Redirection, and Permissions - plus a final congratulations lesson. Each practice lesson has multiple steps, so instead of a single command to type, the user might create a file, change its permissions, and verify with ls -l . The window tracks progress with markers like [x] , [>] , and [ ] so it is clear where the user is. I also fixed bugs I found while testing the flow: The lesson window didn’t reset the filesystem between practices. If you completed mkdir projects once, replaying the lesson would fail because the folder already existed. Now the filesystem resets to a clean state at the start of every practice lesson. Sudo commands weren’t detected by the practice check. The checker only saw the inner command ( chown root file.txt ), not the full sudo chown root file.txt . Fixed by passing the full command through. Lesson 25 no longer has a practice - it just says “Congratulations! You finished Teach Terminal.” with a short message about what the user learned. Completed index.html - Start menu with Start and Settings buttons settings.html - Settings page with three themes (Ubuntu, Hacker, Kali) login.html - Login page with username, machine name, and password validation mode.html - Mode selection: Free Exploration or Guided Path lessons.html - Course overview with sections and lesson cards main.html - Interactive terminal interface style.css - Main styling, animated gradients, glassmorphism UI, theme colors login.css - Login page styling with themed backgrounds settings.js - Saves the selected theme using localStorage theme.js - Loads the saved theme and applies it automatically login.js - Form validation and redirect to mode page filesystem.js - Fake Linux filesystem with files, folders, permissions, owners, groups, sizes, and modification times terminal.js - Terminal input handling, prompt display, line management, colored output, sudo flow command.js - Command recognition and execution lessons-data.js - All 25 lessons organized into 5 sections lesson.js - Renders the lessons page timeline lesson-window.js - Runs the lesson window inside the terminal Current Commands pwd , ls , cd , mkdir , touch , echo , cat , rm , cp , mv , chmod , chown , sudo , clear , help , history With flags for most commands, redirection ( > , >> , < , 2> ), Tab autocomplete, arrow-key history, !! and !n expansion, and per-command help. Goal My goal is to create a realistic Linux terminal that teaches beginners how to use common commands through interactive lessons instead of just reading documentation. Next Steps Add grep , head , tail Add pipes ( | ) and shell operators ( && , || , ; ) Wildcards and brace expansion Try It Live Demo
Ships:
Teach Terminal I made Teach Terminal - a browser-based Linux terminal simulator for learning basic Linux commands. The main problem I wanted to solve is that learning Linux from documentation can be very passive. You read what cd or chmod does, but you don’t really remember it until you use it yourself. Also, using a real Linux system can be a little scary for beginners because one wrong command can cause problems. Teach Terminal gives you a fake Linux filesystem where you can practice without breaking a real computer. You can log in, choose a mode, and start learning. There are 25 lessons in 5 sections: Introduction, Navigation, Files, Text & Redirection, and Permissions. Every lesson has a small lecture and then practice. In the practice you need to type commands yourself, for example pwd , ls -la , chmod 755 , or sudo chown root file.txt . The terminal gives output and errors similar to what you can get in a real Ubuntu terminal. Note: This is a simulation. It does not enforce all Linux permissions and security rules, so some commands may behave differently than on a real system. What was challenging The fake filesystem was one of the harder parts. I made two classes for it. FileSystem handles the filesystem tree and navigation, and file represents the individual files and folders. It also stores things like permissions, owner, size and modification date. Getting absolute paths working was also a little difficult. I needed to go from the current file or folder to its parents until I reach the root. It is kind of like following a linked list backwards. Another problem was checking commands in multi-step practices. For example, when a user runs sudo chown root file.txt , the practice checker needs to check the whole command and not only chown root file.txt . I also had problems with resetting the practice state. If I make a folder with mkdir projects and then start the same practice again, it will fail because the folder already exists. So I needed to reset the practice filesystem when starting it again. Things I am happy with The lesson engine is probably the part I worked most on. It handles the lecture, practice, success state, and the progress for each step. I also made the lesson window draggable and minimizable. Pressing Escape can toggle the window. The terminal currently supports 16 commands and some extra features like flags, redirection ( > , >> , < , 2> ), tab autocomplete, arrow-key command history, and sudo with password checking. I also added 3 themes: Ubuntu, Hacker and Kali. The themes are used across the different pages. How to test Open the demo link. Go to Settings and choose a theme: Ubuntu, Hacker, or Kali. Log in with a valid username, machine name and password. Choose Guided Path if you want to try the lessons, or Free Exploration if you just want to use the terminal. In a lesson, read the lecture and click Start Practice . Type the commands in the terminal and follow the steps. Some commands you can try: pwd ls -la mkdir test cd test touch file.txt chmod 755 file.txt sudo chown root file.txt The project is made with plain HTML, CSS and JavaScript. I didn’t use frameworks or external dependencies....
|
1793004625.997672
|
1793091025.997672
|
|
48619
|
Basic2DP by @VEX | Stardance
|
VEX
|
1
|
35.0
|
293
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T21:13:34Z", "hours": 35.0, "multiplier": 8.47, "payout": 293, "blessing": "neutral", "text": "I made a 2D physics engine which I named as Basic2DP (Basic 2 dimensional physics). It was made in C++ and uses SFML library for drawing the graphics. As for me he most challenging part was learning the actual math and physics to apply in the program. other than this the difficult part was keeping a track of code I often forget what I am supposed to do at what places :P. I am really proud of the fact that it is maybe the first project I have ever made that is this big I even had really fun in making it specially the theme feature was the most fun to work it for some reason, definitely enjoyed it and definitely learned a lot. If you are going to use this project then u can get it from the release section of my github repo but make sure to have 64bit windows and do not remove any of the dll files. Well thats all hope ya like this project :D", "repo": "https://github.com/VX7FAR/Basic2DP", "demo": "https://github.com/VX7FAR/Basic2DP/releases"}]...
|
[{"post_id": 69329, "ts": "202 [{"post_id": 69329, "ts": "2026-09-16T20:26:48Z", "hours": 1.9294, "text": "IT IS FINALLY DONE AAAAAGHHHHHHHH I AM READY TO SHIP THE PROJECT before that lets see what else I did all this time. I made the readme and made minor changes to the code to improve the program like adding a ‘help’ command to get quick help Also to get a proper guide on how things work I added a readme.html in folder of executable so the terminal doesnt feel very cluttered"}, {"post_id": 67451, "ts": "2026-09-13T15:42:13Z", "hours": 3.8656, "text": "sooooo i did a lot of things i completed the input method by taking information by getline() and parsing it and storing each infomation in a vector then it is decided what should be done by checking what is in vector at 0 index i also finished the option for themes and i also added some premade theme to have something to work it and u can even add you own themes. uhhhhh what else did i do…. yes decoration the terminal by default has white text and quickly it starts looking terrible and messy so what i did was i gave the text some colour now it is a bit more cleaner to navigate between different portions in terminal. i am gonna work on making the app capable of being exported and also add some small things here n there also yea the readme as well"}, {"post_id": 65676, "ts": "2026-09-10T23:59:20Z", "hours": 2.7953, "text": "Hmmmmmmmmmmm I did a lot of work today and my code looks very messy now and I am not even sure if it is messy or if it is supposed to look like this Well today I completed the CLI for my physics engine and even added themes so u can customize can look. Damn I thought I did a lot of work and now I cant even remember a single thing that I did Well I do know what I will be doing now I will add a way to save the theme in device at a specific folder this way if u make any theme and close the theme u will still be able to access the previously made theme and u wont have to make it again After that I will give it finishing touches and then README and then make a static version of this app then import then ship 🚢"}, {"post_id": 65084, "ts": "2026-09-09T23:28:06Z", "hours": 1.6919, "text": "I am working on CLI system for giving input to the app As of now I have added a couple of features like updatevelocity, applyforce, setgravity and exit I did not do a commit yet I will do it in the next session I will add more features into it and I currently I am adding a way to get some information from the app which I will tell about in the next devlog"}, {"post_id": 64476, "ts": "2026-09-08T22:03:44Z", "hours": 3.2383, "text": "AAAAAGHHHHHHHHHHH MY HANDDD all i did was some exercise and since then my hand hurts very bad which is why I can type properly just a bit of weird movement and it feels like its going to fall off soo i am gonna tell whatever I have done till now I am done with the physics and collision and now I need to make a CLI for user to do things For that at first I was going to pause the physics and then let the user enter but then I found out about threads Basically when we code everything happens in a straight manner like one step at a time, imagine this like a single assembly line for producing things. Now that I use thread I can do multiple tasks without having to stop the other task which is why I wont have to stop the physics process this is like having two assembly lines (i am not sure what that analogy means but I dont have a proper example , basically I can do things alongside other things without having to pause) Noww next devlog when I add something new and my hand gets better cya!!!"}, {"post_id": 62455, "ts": "2026-09-05T20:10:02Z", "hours": 5.5081, "text": "Dayum today’s time is kinda long cuz i was being a dumdum What happened was since in a physics system we have the graphics, collision and physics so I thought of making different classes which was not a good choice so I spent a REALLLLLLLLYYYYYYYYYYYYYYY long time making those classes and since I wanted it to be inherited the system got really messy and I just kept getting error and errors. So, I stopped and now I am no longer fighting for my life. But then I spent some time making the wall collision a bit better, I improved the logic and also the way positioning happens in it and now the collision is extremely smooth and good looking and it no longer overlaps. After that worked I added gravity which was simple unless you are like me who spent a lot of time but the solution was just one line away. I just had to decrease velocity as per gravity * dt because gravity is second derivative but I kinda tried to mix things and update the velocity and position as the same time. I also added a reference to delta time in main class this way the delta time stays consistent Now I am gonna add a position correction system for object to object collision and then I will be more than 60% done with my project (or so I hope)"}, {"post_id": 60217, "ts": "2026-09-02T13:27:42Z", "hours": 2.6572, "text": "Soo the COLLISION SYSTEM IS COMPLETE I can finally start working on the physics it could be easy I think. As for collision I followed this document: collision reponse Oh wait I need to add collision response for boxes as well I JUST REMMEBERED THIS AS I WAS WRITING THIS DEVLOG I am more cooked than the food when I cook it"}, {"post_id": 58347, "ts": "2026-08-30T18:51:40Z", "hours": 1.305, "text": "the collision system i am starting to understand it now well i cant really explain much in this session sooo i will explain everything in one go after this is done"}, {"post_id": 56906, "ts": "2026-08-28T22:28:07Z", "hours": 0.8483, "text": "for some reason i have been using things that need x and y components as different variables which i dont know why i was doing so i shrinked(if thats a word) them and joined everything info sf::vector2f other than that i spent the time trying to implement things that i did not properly understood gonna spend some time studying a bit better"}, {"post_id": 56282, "ts": "2026-08-27T23:57:28Z", "hours": 0.6497, "text": "well didnt do much today got busy here n there today i finally implemented the functions and classes and they are working smoothly rn, at first i did run into some weird errors which i fixed now i am gonna work on adding object to object collision now that i am done with the regular collision."}, {"post_id": 55503, "ts": "2026-08-27T12:05:55Z", "hours": 1.4981, "text": "I added header files and seperated things to make them cleaner to look at i havent updated the code to work with the headers they are seperate now but I will change it later uhh i forgot what else i had done cuz my hackatime was not working"}, {"post_id": 54752, "ts": "2026-08-25T20:53:12Z", "hours": 1.4792, "text": "MY EXAMS ARE OVERRRRRRRR and now im back on work and I will try to do a devlog almost everyday. I have been working on making the collision system for now i worked with the borders each time I will run into some problem like velocity being updated each frame time after it collides or getting garbage values because I forgot to initialize the variables. Now they are fixed and now I will work on implementing collsion with other physics objects and before that I noticed that the circle will sometimes do slightly behind the border which is what I will fix."}, {"post_id": 53307, "ts": "2026-08-23T19:33:54Z", "hours": 3.2986, "text": "Soo the last time I wrote the code everything was messy and since I had done not so much work I thought of doing everything from the beginning. So I did and this also helped me to understand and improve everything by making the code a bit cleaner and making some functions and classes I also made a struct vector for storing information of the entities. For now I am working on adding only when the objects are circles also since I am implementing only the translation for now thats why I dont think someone will be bothered by not having rotation cuz they probably wont notice any."}, {"post_id": 49952, "ts": "2026-08-18T22:58:51Z", "hours": 0.9917, "text": "I couldnt do much today my exams are going on. But I made some changes to the coordinate system before this the +Y was going downwards now it is upwards Now I have a better grid system such that every coordinate is positive and I wont have to deal with negative numbers"}, {"post_id": 49277, "ts": "2026-08-17T23:56:26Z", "hours": 1.3111, "text": "Soo I realised that making new shapes gets kinda lengthy sometimes so I added a class an object that will help me make a new shape Also before I make anything related to translation and collision I will have to design the grid system I am still thinking of how I should implement the grid and where I should keep the origin Also I specified a fixed size of the window and including the border it is 840x640 pixels and without the border it is 800x600 pixels"}, {"post_id": 48524, "ts": "2026-08-16T22:48:37Z", "hours": 1.5619, "text": "Soo I just started making things and I have never really used a graphics library before so I spent quite a lot of time learning about how I am supposed to be using this library Things went good and it was actually pretty easy to get used to From tomorrow I think I will probably work on implementing movement first or collision first……we will see"}]...
|
Title: Basic2DP by @VEX | Stardance
Devlogs:
Soo Title: Basic2DP by @VEX | Stardance
Devlogs:
Soo I just started making things and I have never really used a graphics library before so I spent quite a lot of time learning about how I am supposed to be using this library Things went good and it was actually pretty easy to get used to From tomorrow I think I will probably work on implementing movement first or collision first……we will see
Soo I realised that making new shapes gets kinda lengthy sometimes so I added a class an object that will help me make a new shape Also before I make anything related to translation and collision I will have to design the grid system I am still thinking of how I should implement the grid and where I should keep the origin Also I specified a fixed size of the window and including the border it is 840x640 pixels and without the border it is 800x600 pixels
I couldnt do much today my exams are going on. But I made some changes to the coordinate system before this the +Y was going downwards now it is upwards Now I have a better grid system such that every coordinate is positive and I wont have to deal with negative numbers
Soo the last time I wrote the code everything was messy and since I had done not so much work I thought of doing everything from the beginning. So I did and this also helped me to understand and improve everything by making the code a bit cleaner and making some functions and classes I also made a struct vector for storing information of the entities. For now I am working on adding only when the objects are circles also since I am implementing only the translation for now thats why I dont think someone will be bothered by not having rotation cuz they probably wont notice any.
MY EXAMS ARE OVERRRRRRRR and now im back on work and I will try to do a devlog almost everyday. I have been working on making the collision system for now i worked with the borders each time I will run into some problem like velocity being updated each frame time after it collides or getting garbage values because I forgot to initialize the variables. Now they are fixed and now I will work on implementing collsion with other physics objects and before that I noticed that the circle will sometimes do slightly behind the border which is what I will fix.
I added header files and seperated things to make them cleaner to look at i havent updated the code to work with the headers they are seperate now but I will change it later uhh i forgot what else i had done cuz my hackatime was not working
well didnt do much today got busy here n there today i finally implemented the functions and classes and they are working smoothly rn, at first i did run into some weird errors which i fixed now i am gonna work on adding object to object collision now that i am done with the regular collision.
for some reason i have been using things that need x and y components as different variables which i dont know why i was doing so i shrinked(if thats a word) them and joined everything info sf::vector2f other than that i spent the time trying to implement things that i did not properly understood gonna spend some time studying a bit better
the collision system i am starting to understand it now well i cant really explain much in this session sooo i will explain everything in one go after this is done
Soo the COLLISION SYSTEM IS COMPLETE I can finally start working on the physics it could be easy I think. As for collision I followed this document: collision reponse Oh wait I need to add collision response for boxes as well I JUST REMMEBERED THIS AS I WAS WRITING THIS DEVLOG I am more cooked than the food when I cook it
Dayum today’s time is kinda long cuz i was being a dumdum What happened was since in a physics system we have the graphics, collision and physics so I thought of making different classes which was not a good choice so I spent a REALLLLLLLLYYYYYYYYYYYYYYY long time making those classes and since I wanted it to be inherited the system got really messy and I just kept getting error and errors. So, I stopped and now I am no longer fighting for my life. But then I spent some time making the wall collision a bit better, I improved the logic and also the way positioning happens in it and now the collision is extremely smooth and good looking and it no longer overlaps. After that worked I added gravity which was simple unless you are like me who spent a lot of time but the solution was just one line away. I just had to decrease velocity as per gravity * dt because gravity is second derivative but I kinda tried to mix things and update the velocity and position as the same time. I also added a reference to delta time in main class this way the delta time stays consistent Now I am gonna add a position correction system for object to object collision and then I will be more than 60% done with my project (or so I hope)
AAAAAGHHHHHHHHHHH MY HANDDD all i did was some exercise and since then my hand hurts very bad which is why I can type properly just a bit of weird movement and it feels like its going to fall off soo i am gonna tell whatever I have done till now I am done with the physics and collision and now I need to make a CLI for user to do things For that at first I was going to pause the physics and then let the user enter but then I found out about threads Basically when we code everything happens in a straight manner like one step at a time, imagine this like a single assembly line for producing things. Now that I use thread I can do multiple tasks without having to stop the other task which is why I wont have to stop the physics process this is like having two assembly lines (i am not sure what that analogy means but I dont have a proper example , basically I can do things alongside other things without having to pause) Noww next devlog when I add something new and my hand gets better cya!!!
I am working on CLI system for giving input to the app As of now I have added a couple of features like updatevelocity, applyforce, setgravity and exit I did not do a commit yet I will do it in the next session I will add more features into it and I currently I am adding a way to get some information from the app which I will tell about in the next devlog
Hmmmmmmmmmmm I did a lot of work today and my code looks very messy now and I am not even sure if it is messy or if it is supposed to look like this Well today I completed the CLI for my physics engine and even added themes so u can customize can look. Damn I thought I did a lot of work and now I cant even remember a single thing that I did Well I do know what I will be doing now I will add a way to save the theme in device at a specific folder this way if u make any theme and close the theme u will still be able to access the previously made theme and u wont have to make it again After that I will give it finishing touches and then README and then make a static version of this app then import then ship 🚢
sooooo i did a lot of things i completed the input method by taking information by getline() and parsing it and storing each infomation in a vector then it is decided what should be done by checking what is in vector at 0 index i also finished the option for themes and i also added some premade theme to have something to work it and u can even add you own themes. uhhhhh what else did i do…. yes decoration the terminal by default has white text and quickly it starts looking terrible and messy so what i did was i gave the text some colour now it is a bit more cleaner to navigate between different portions in terminal. i am gonna work on making the app capable of being exported and also add some small things here n there also yea the readme as well
IT IS FINALLY DONE AAAAAGHHHHHHHH I AM READY TO SHIP THE PROJECT before that lets see what else I did all this time. I made the readme and made minor changes to the code to improve the program like adding a ‘help’ command to get quick help Also to get a proper guide on how things work I added a readme.html in folder of executable so the terminal doesnt feel very cluttered
Ships:
I made a 2D physics engine which I named as Basic2DP (Basic 2 dimensional physics). It was made in C++ and uses SFML library for drawing the graphics. As for me he most challenging part was learning the actual math and physics to apply in the program. other than this the difficult part was keeping a track of code I often forget what I am supposed to do at what places :P. I am really proud of the fact that it is maybe the first project I have ever made that is this big I even had really fun in making it specially the theme feature was the most fun to work it for some reason, definitely enjoyed it and definitely learned a lot. If you are going to use this project then u can get it from the release section of my github repo but make sure to have 64bit windows and do not remove any of the dll files. Well thats all hope ya like this project :D...
|
1793004624.8109953
|
1793091024.8109953
|
|
32485
|
SpideyOs by @Ari001 | Stardance
|
Ari001
|
1
|
13.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T19:29:25Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "so i finalized my webOs it meets all the requirement for the mission not only that it also has a very good readme file that you can read as well as it has several features that you spider man fanz will absolutely like and also can get a lil bit sad it has a lot of features some of them are still under construction tho i am shipping it and i will polish it on the next webOs2 mission . thanks for reading . Demo link - https://arpan832.github.io/SpideyOs/", "repo": "https://github.com/arpan832/SpideyOs", "demo": "https://arpan832.github.io/SpideyOs/"}]...
|
[{"post_id": 72552, "ts": "202 [{"post_id": 72552, "ts": "2026-09-23T06:07:25Z", "hours": 1.0567, "text": "update !!! its version (2.0) here i added multiple draggable windows with custom covers and also music player and a cool boot up screen and a lil mascot of spider man also a pop up screen on the left of the screen and now the webos 1 is done i spend nearly 2 months on this and now finally its here and i am going to ship it … thanks for reading"}, {"post_id": 72519, "ts": "2026-09-23T03:44:16Z", "hours": 1.3867, "text": "so update i nearly completed my spidey os its more than done i added daily bugle , notes app , settings app a terminal those are under construction but yeah i did that not only that i also added niomorphism style and the best part a Daily Bugle app where you can read news on your os"}, {"post_id": 32892, "ts": "2026-07-22T10:58:27Z", "hours": 2.425, "text": "So update!! i changed the whole ui and made it SpiderOs instead of ProtonOs i am very big fan of spiderman and it is inspired by that only i am working on this Os FEATURES - so i added two apps one calculator and a notepad the notepad is underconstruction i am writing this code from hand without using ai much so it would be helpful if you tell me how it looks Features to add next - A file manager and a taskbar is what i will head for the next time ( Thanks for reading, peace!!)"}, {"post_id": 32500, "ts": "2026-07-21T18:35:10Z", "hours": 3.9672, "text": "update on ProtonOS So today I finally made my first app a calculator for my OS. OMG, it was so hard and long to make a app i dont know how people are making os this fast oww … i am not using ai that much so it should take time haha .. well thanks for reading this devlog here is a nice picture of how the calculator looks"}, {"post_id": 31777, "ts": "2026-07-20T13:15:24Z", "hours": 2.1142, "text": "ProtonOS Update (v-6.5) Added a clean top bar with a live clock and date. Created a lightweight Calculator app using Flexbox. Added smooth Y-axis animations for UI elements. Learned and implemented CSS pseudo-elements and @keyframes animations. Standardized the app UI—future apps will reuse the same interface, with only layout positions and underlying logic changing. looking forward to (v-7.0)"}, {"post_id": 27832, "ts": "2026-07-13T18:31:40Z", "hours": 0.865, "text": "ProtonOS hit phase 0.6; I just added the boot screen, and after that I added a small top bar where you can see the time and also a cute desktop wallpaper. Now I will add apps and VFS (Virtual File system) for my OS … looking forward to phase 0.7"}, {"post_id": 26062, "ts": "2026-07-10T17:29:02Z", "hours": 1.1008, "text": "So i am working on my ProtonOS, and today i completed the phase 0.5 (THE BOOT ) section Resolutions – So for phase 1, I am thinking of adding wallpaper, a few apps with proper functions and a taskbar more and that will be the core of my phase 1 Current Situation — so for now its a boot section that when youe Browser window loads you can see the the name PROTON on the screen and it uses Typewriting logic and then when you click it a top bar with time appears fn it is the phase 0.5"}]...
|
Title: SpideyOs by @Ari001 | Stardance
Devlogs:
S Title: SpideyOs by @Ari001 | Stardance
Devlogs:
So i am working on my ProtonOS, and today i completed the phase 0.5 (THE BOOT ) section Resolutions – So for phase 1, I am thinking of adding wallpaper, a few apps with proper functions and a taskbar more and that will be the core of my phase 1 Current Situation — so for now its a boot section that when youe Browser window loads you can see the the name PROTON on the screen and it uses Typewriting logic and then when you click it a top bar with time appears fn it is the phase 0.5
ProtonOS hit phase 0.6; I just added the boot screen, and after that I added a small top bar where you can see the time and also a cute desktop wallpaper. Now I will add apps and VFS (Virtual File system) for my OS … looking forward to phase 0.7
ProtonOS Update (v-6.5) Added a clean top bar with a live clock and date. Created a lightweight Calculator app using Flexbox. Added smooth Y-axis animations for UI elements. Learned and implemented CSS pseudo-elements and @keyframes animations. Standardized the app UI—future apps will reuse the same interface, with only layout positions and underlying logic changing. looking forward to (v-7.0)
update on ProtonOS So today I finally made my first app a calculator for my OS. OMG, it was so hard and long to make a app i dont know how people are making os this fast oww … i am not using ai that much so it should take time haha .. well thanks for reading this devlog here is a nice picture of how the calculator looks
So update!! i changed the whole ui and made it SpiderOs instead of ProtonOs i am very big fan of spiderman and it is inspired by that only i am working on this Os FEATURES - so i added two apps one calculator and a notepad the notepad is underconstruction i am writing this code from hand without using ai much so it would be helpful if you tell me how it looks Features to add next - A file manager and a taskbar is what i will head for the next time ( Thanks for reading, peace!!)
so update i nearly completed my spidey os its more than done i added daily bugle , notes app , settings app a terminal those are under construction but yeah i did that not only that i also added niomorphism style and the best part a Daily Bugle app where you can read news on your os
update !!! its version (2.0) here i added multiple draggable windows with custom covers and also music player and a cool boot up screen and a lil mascot of spider man also a pop up screen on the left of the screen and now the webos 1 is done i spend nearly 2 months on this and now finally its here and i am going to ship it … thanks for reading
Ships:
so i finalized my webOs it meets all the requirement for the mission not only that it also has a very good readme file that you can read as well as it has several features that you spider man fanz will absolutely like and also can get a lil bit sad it has a lot of features some of them are still under construction tho i am shipping it and i will polish it on the next webOs2 mission . thanks for reading . Demo link - https://arpan832.github.io/SpideyOs/...
|
1793004623.6699278
|
1793091023.6699278
|
|
69470
|
Siyam-bot by @Siyam | Stardance
|
Siyam
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-14T16:53:44Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a slackbot. its running 24/7 in nest. it has 3 different commands like, 1, /siyam-bot-ping 2, /siyam-bot-joke 3, /siyam-bot-catfact Building was not so hard, but deploying it was a little bit hard. but i followed the guide and did it.", "repo": "https://github.com/Tanzil-Alam/Siyam-bot", "demo": "https://hackclub.slack.com/app_redirect?app=A0C9GQZUN1W"}]...
|
[{"post_id": 79265, "ts": "202 [{"post_id": 79265, "ts": "2026-10-13T08:14:55Z", "hours": 0.43, "text": "I have did everything according the mission guide and pushed to github. it has 3 commands and all of them works. the commands are, 1, /siyam-bot-ping 2, /siyam-bot-joke 3, /siyam-bot-catfact all of them are working well. iam just waiting to being approved in nest, then i will deploy and ship the project."}]...
|
Title: Siyam-bot by @Siyam | Stardance
Devlogs:
I Title: Siyam-bot by @Siyam | Stardance
Devlogs:
I have did everything according the mission guide and pushed to github. it has 3 commands and all of them works. the commands are, 1, /siyam-bot-ping 2, /siyam-bot-joke 3, /siyam-bot-catfact all of them are working well. iam just waiting to being approved in nest, then i will deploy and ship the project.
Ships:
This is a slackbot. its running 24/7 in nest. it has 3 different commands like, 1, /siyam-bot-ping 2, /siyam-bot-joke 3, /siyam-bot-catfact Building was not so hard, but deploying it was a little bit hard. but i followed the guide and did it....
|
1793004622.783469
|
1793091022.783469
|
|
38366
|
PyFi by @Choc0latesauce | Stardance
|
Choc0latesauce
|
1
|
23.0
|
339
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-10T21:33:25Z", "hours": 23.0, "multiplier": 14.54, "payout": 339, "blessing": "neutral", "text": "I want to preface this with the fact that I am so grateful for this community and what it does for getting kids into stem, I wish I knew about hack club earlier! Thank you so much for bothering to read this too reviewers! This is my first ever mega project, it took a lot of reading, learning, trial and error and many, many hours troubleshooting. But the end result is something I’m genuinely proud of, actually use and want to show to the world! So here’s the description I cooked up: The Pitch: Do you like listening to music? - Most likely. Are you fed up with money hungry billionaires pilfering your wallet in order for you to listen to your tracks in an accessible way? - Most Likely. Do you want to actually OWN your music but not have to faff around with awful UI and/or optical media? - Most Likely… Then you need PyFi! My Spotify or Apple Music esque mp3 player that allows you to listen to your music and actually own it all while having a sleek and intuitive user and familiar interface and is chocked full of useful features. The Features: 📱 Intuitive & customisable UI - Anything as long as it’s blue, red, yellow, pink, green, purple or turquoise! ♾️ Infinite upload potential - Upload single song or whole albums in one go, all of which are cataloged by the: 🖼️ PyFi meta ripper™ - Pulls album info, artist info and thumbnails from your tracks in order to organise them automatically. 🔀 Shuffle - Pretty self explanatory, shuffles songs innit… 🔁 Song looper - Loops songs! 🔊 Volume slider - Easy In-App audio control 🎼 Current playlist viewer - Allows you to see upcoming songs and reorder them by dragging them 📌 Pin window - Pin the window ontop of others which goes well with: 🪟 Scalable window - Have as much or as little info as you want, go from a full Spotify like view to a minimal one - more later. 📚 Library view - View your uploaded albums in an easy format and load their tracks or play your custom playlist made using: 💖 The favourite button - Favourite your songs in order to add them to a custom playlist that you can use at any point. 🎵 EQ mode - Wanna change how your music sounds? Choose from 20 custom EQ presets. 💾 Persistence - PyFi makes use of .json files in order to save your settings and media between sessions. 🗄️ External storage support - Allows you to use external storage including USB sticks and NAS servers, saving between disconnects. 🌐 Multi Language support - Almost full translations of both Spanish and Swedish", "repo": "https://github.com/Choc0latesauce/PyFi", "demo": "https://github.com/Choc0latesauce/PyFi/releases"}]...
|
[{"post_id": 65608, "ts": "202 [{"post_id": 65608, "ts": "2026-09-10T20:58:24Z", "hours": 0.6931, "text": "Wait? That wasn’t the final devlog?!?! 😱 I fixed a couple of last minute bugs and worked on multiple ways for you to download and use PyFi! IT’S ABOUT TO RELEASE OMG I’M SO EXCITED Don’t really have an image so here’s a blahaj"}, {"post_id": 65258, "ts": "2026-09-10T08:11:57Z", "hours": 3.7553, "text": "The final update!!! So what’s new? I have massively optimised PyFi, speeding up initial launch times and preventing crashes. fully implemented the favourite tracks function so a user can easily make a custom playlist. Which ties into the album viewer, allowing the user to view their uploaded albums, select and play them specifically or play their favourite / all tracks. All of which is saved to a .json file making it persistent between app launches. I’m very very happy that PyFi is now complete and I’m very excited to see what you guys think! Known bugs?!? -> A couple of the Ui elements haven’t been translated, this will come in a later update as I pride myself on having actual human translators, but at the same time I’m kinda rushing to get this out lol."}, {"post_id": 62904, "ts": "2026-09-06T13:17:35Z", "hours": 6.0633, "text": "After A long hiatus I have produced the biggest update to PyFi so far! Coming with ui improvements, dynamic song location saving and persistence (allowing it to read songs from a network drive or USB stick, etc, and saves the locations in such a way that at any point in the future you can reconnect the storage and it will auto load the songs again), the framework for album creation and viewing, language improvements and refinement as well as the ability to drag songs to reorder them in the playlist viewer plus a bunch of other stuff I did a while ago that I quite frankly, cannot remember lol. I’m very excited as PyFi is almost feature complete!"}, {"post_id": 50476, "ts": "2026-08-19T17:17:57Z", "hours": 3.9461, "text": "Absolutely gargantuan update today! First of all, I fixed formatting and text for the labels and volume slider. Fixed a few bugs surrounding the album art being displayed. Added in a playlist viewer like Spotify and such which displays the tracks, album art and artists. I added a settings json file that PyFi saves to in order to save all of your settings to in order to make them persistent between sessions. Another feature / happy coincidence, Pyfi is compatible with Network Attached Storage, being able to pull and do playback from one. I want to add the ability for song locations to be saved between sessions so you don’t have to upload the songs every time you launch, fixed the formatting of album art, make it so the playlist viewer actually tells you what track is selected and a full album uploader / viewer incorporating the Favourite button."}, {"post_id": 48413, "ts": "2026-08-16T19:06:41Z", "hours": 3.7608, "text": "A big update this time! While this isn’t the best example, PyFi is now able to pull album art from mp3s and other such formats and display it like Spotify or Apple Music. I have also added various other new features such as the ability to change the Ui language within PyFi to English, Spanish, French, Hungarian or Swedish currently supported and translated accurately (not by translate!). The user is now able to select from a wide range of Ui colour options to style PyFi to their liking with font styles possibly being an option in the future. I have also added support for EQ settings and presets, allowing the user to select from a wide range of options such as Classical, Techno, Bass boost and many, many more to customise their listening experience to their exact preference. A minor change but I have changed the next and previous buttons to be icons until you hover over them, at which point they display text telling the user what the button does. Finally and most importantly I have added a playback scrubber and playtime, allowing users to select specific parts of their songs to listen to and track how long is left."}, {"post_id": 46587, "ts": "2026-08-13T22:29:51Z", "hours": 1.0794, "text": "PyFi now actually plays audio files! Using vlc as a framework, the user is able to provide an audio file (of almost any variety) and PyFi can play it back, even with a functional volume slider."}, {"post_id": 46540, "ts": "2026-08-13T20:46:01Z", "hours": 2.8436, "text": "Improving on ui design and scalability, including adding support for a dynamic amount of frames and window sizes. Improved the outputs from the buttons and tickboxes and buttons as well as making it so the play/pause button actually changes text whenever you click it to represent what it will do. I also added in window pinning functionality that allows the user to pin PyFi above all of their other apps easily and unpin it all the same."}, {"post_id": 35287, "ts": "2026-07-26T16:25:21Z", "hours": 1.1694, "text": "I am creating a python based music and mp3 listening software that is a from the ground up remake of a basic mp3 player I made a year or 2 ago with increased functionality and an updated, modern UI. Here I am practicing and blocking out the UI with customtkinter, something that I have never used before (I used pygame for the last one) but am finding very intuitive and useful. I am able to add check boxes and buttons that can have custom outputs as shown in the terminal, I can’t wait to do more! The UI also scales perfectly to any resolution and window size, something I learnt was very important from my first html project lol"}]...
|
Title: PyFi by @Choc0latesauce | Stardance
Devlog Title: PyFi by @Choc0latesauce | Stardance
Devlogs:
I am creating a python based music and mp3 listening software that is a from the ground up remake of a basic mp3 player I made a year or 2 ago with increased functionality and an updated, modern UI. Here I am practicing and blocking out the UI with customtkinter, something that I have never used before (I used pygame for the last one) but am finding very intuitive and useful. I am able to add check boxes and buttons that can have custom outputs as shown in the terminal, I can’t wait to do more! The UI also scales perfectly to any resolution and window size, something I learnt was very important from my first html project lol
Improving on ui design and scalability, including adding support for a dynamic amount of frames and window sizes. Improved the outputs from the buttons and tickboxes and buttons as well as making it so the play/pause button actually changes text whenever you click it to represent what it will do. I also added in window pinning functionality that allows the user to pin PyFi above all of their other apps easily and unpin it all the same.
PyFi now actually plays audio files! Using vlc as a framework, the user is able to provide an audio file (of almost any variety) and PyFi can play it back, even with a functional volume slider.
A big update this time! While this isn’t the best example, PyFi is now able to pull album art from mp3s and other such formats and display it like Spotify or Apple Music. I have also added various other new features such as the ability to change the Ui language within PyFi to English, Spanish, French, Hungarian or Swedish currently supported and translated accurately (not by translate!). The user is now able to select from a wide range of Ui colour options to style PyFi to their liking with font styles possibly being an option in the future. I have also added support for EQ settings and presets, allowing the user to select from a wide range of options such as Classical, Techno, Bass boost and many, many more to customise their listening experience to their exact preference. A minor change but I have changed the next and previous buttons to be icons until you hover over them, at which point they display text telling the user what the button does. Finally and most importantly I have added a playback scrubber and playtime, allowing users to select specific parts of their songs to listen to and track how long is left.
Absolutely gargantuan update today! First of all, I fixed formatting and text for the labels and volume slider. Fixed a few bugs surrounding the album art being displayed. Added in a playlist viewer like Spotify and such which displays the tracks, album art and artists. I added a settings json file that PyFi saves to in order to save all of your settings to in order to make them persistent between sessions. Another feature / happy coincidence, Pyfi is compatible with Network Attached Storage, being able to pull and do playback from one. I want to add the ability for song locations to be saved between sessions so you don’t have to upload the songs every time you launch, fixed the formatting of album art, make it so the playlist viewer actually tells you what track is selected and a full album uploader / viewer incorporating the Favourite button.
After A long hiatus I have produced the biggest update to PyFi so far! Coming with ui improvements, dynamic song location saving and persistence (allowing it to read songs from a network drive or USB stick, etc, and saves the locations in such a way that at any point in the future you can reconnect the storage and it will auto load the songs again), the framework for album creation and viewing, language improvements and refinement as well as the ability to drag songs to reorder them in the playlist viewer plus a bunch of other stuff I did a while ago that I quite frankly, cannot remember lol. I’m very excited as PyFi is almost feature complete!
The final update!!! So what’s new? I have massively optimised PyFi, speeding up initial launch times and preventing crashes. fully implemented the favourite tracks function so a user can easily make a custom playlist. Which ties into the album viewer, allowing the user to view their uploaded albums, select and play them specifically or play their favourite / all tracks. All of which is saved to a .json file making it persistent between app launches. I’m very very happy that PyFi is now complete and I’m very excited to see what you guys think! Known bugs?!? -> A couple of the Ui elements haven’t been translated, this will come in a later update as I pride myself on having actual human translators, but at the same time I’m kinda rushing to get this out lol.
Wait? That wasn’t the final devlog?!?! 😱 I fixed a couple of last minute bugs and worked on multiple ways for you to download and use PyFi! IT’S ABOUT TO RELEASE OMG I’M SO EXCITED Don’t really have an image so here’s a blahaj
Ships:
I want to preface this with the fact that I am so grateful for this community and what it does for getting kids into stem, I wish I knew about hack club earlier! Thank you so much for bothering to read this too reviewers! This is my first ever mega project, it took a lot of reading, learning, trial and error and many, many hours troubleshooting. But the end result is something I’m genuinely proud of, actually use and want to show to the world! So here’s the description I cooked up: The Pitch: Do you like listening to music? - Most likely. Are you fed up with money hungry billionaires pilfering your wallet in order for you to listen to your tracks in an accessible way? - Most Likely. Do you want to actually OWN your music but not have to faff around with awful UI and/or optical media? - Most Likely… Then you need PyFi! My Spotify or Apple Music esque mp3 player that allows you to listen to your music and actually own it all while having a sleek and intuitive user and familiar interface and is chocked full of useful features. The Features: 📱 Intuitive & customisable UI - Anything as long as it’s blue, red, yellow, pink, green, purple or turquoise! ♾️ Infinite upload potential - Upload single song or whole albums in one go, all of which are cataloged by the: 🖼️ PyFi meta ripper™ - Pulls album info, artist info and thumbnails from your tracks in order to organise them automatically. 🔀 Shuffle - Pretty self explanatory, shuffles songs innit… 🔁 Song looper - Loops songs! 🔊 Volume slider - Easy In-App audio control 🎼 Current playlist viewer - Allows you to see upcoming songs and reorder them by dragging them 📌 Pin window - Pin the window ontop of others which goes well with: 🪟 Scalable window - Have as much or as little info as you want, go from a full Spotify like view to a minimal one - more later. 📚 Library view - View your uploaded albums in an easy format and load their tracks or play your custom playlist made using: 💖 The favourite button - Favourite your songs in order to add them to a custom playlist that you can use at any point. 🎵 EQ mode - Wanna change how your music sounds? Choose from 20 custom EQ presets. 💾 Persistence - PyFi makes use of .json files in order to save your settings and media between sessions. 🗄️ External storage support - Allows you to use external storage including USB sticks and NAS servers, saving between disconnects. 🌐 Multi Language support - Almost full translations of both Spanish and Swedish...
|
1793004621.6339855
|
1793091021.6339855
|
|
16010
|
A simple pygame creation by @CharlesTang | Stardan A simple pygame creation by @CharlesTang | Stardance...
|
CharlesTang
|
1
|
27.07
|
35
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T23:57:44Z", "hours": 26.0, "multiplier": 1.36, "payout": 35, "blessing": "neutral", "text": "What we have here is a simple little game you can play with one, or two players. It is made with pygame, so it isn’t fancy, but thats all part of the process. While designing, I found this philosophy useful: “Keep it simple, Stupid” I think this project is very important because it taught me github, and how to use A*. This is the first of many programming projects I will attempt to create, and I worked all summer on this. It doesn’t really matter if it doesn’t do bad, I improved at programming, thats what matters.", "repo": "https://github.com/Tupolev114/Square_game", "demo": "https://github.com/Tupolev114/Square_game/releases/tag/V1.5"}]...
|
[{"post_id": 78500, "ts": "202 [{"post_id": 78500, "ts": "2026-10-11T00:17:25Z", "hours": 1.0694, "text": "Chapter II: Square Game Reborn has officially started! based on some feedback given by others, I decided to take square game to the next level by added more UI, visual effects, and increase Playability. Hope you all enjoy! Square Game reborn is essentially just the original square game, but better."}, {"post_id": 71264, "ts": "2026-09-20T15:26:57Z", "hours": 2.0075, "text": "Houston we have landed! Its been a great journey and I learned how to use github, its not a complex project but I like it."}, {"post_id": 62236, "ts": "2026-09-05T14:39:50Z", "hours": 8.1878, "text": "Release 1.3 is out! No more lag and I fixed many bugs, website also updated."}, {"post_id": 48985, "ts": "2026-08-17T15:58:18Z", "hours": 4.6469, "text": "Release 1.2 is officially out! I added shields, and cooldown displays for UI, as well as fixed dashing. Stay tuned for 1.3, where the PvE mode will feel more human!"}, {"post_id": 44140, "ts": "2026-08-09T18:19:45Z", "hours": 2.2258, "text": "After many weeks, I now have a reliable, working navigation system for PvE. it even works on diagonals (red squares were for debugging)"}, {"post_id": 41603, "ts": "2026-08-05T22:08:15Z", "hours": 3.2619, "text": "Houston, I now officially have a website to play the game on! It took me a while to figure out Github and everything else but I learned that patience is more important than knowing Github. Overall it was a learning experience."}, {"post_id": 37576, "ts": "2026-07-30T12:24:43Z", "hours": 0.8433, "text": "I learned A* with the help of AI and made a semi-working A* algorithm. Its not perfect but its getting somewhere"}, {"post_id": 36047, "ts": "2026-07-27T21:27:26Z", "hours": 3.0744, "text": "I spent a bit of time debugging, and made some progress on A*, but there are still things that need to be fixed"}, {"post_id": 35225, "ts": "2026-07-26T15:01:54Z", "hours": 1.5647, "text": "Devlog #1: Houston we are ready for liftoff! I got my documents verified and time tracked, so now I will work on A* for PvE mode."}]...
|
Title: A simple pygame creation by @CharlesTang | Title: A simple pygame creation by @CharlesTang | Stardance
Devlogs:
Devlog #1: Houston we are ready for liftoff! I got my documents verified and time tracked, so now I will work on A* for PvE mode.
I spent a bit of time debugging, and made some progress on A*, but there are still things that need to be fixed
I learned A* with the help of AI and made a semi-working A* algorithm. Its not perfect but its getting somewhere
Houston, I now officially have a website to play the game on! It took me a while to figure out Github and everything else but I learned that patience is more important than knowing Github. Overall it was a learning experience.
After many weeks, I now have a reliable, working navigation system for PvE. it even works on diagonals (red squares were for debugging)
Release 1.2 is officially out! I added shields, and cooldown displays for UI, as well as fixed dashing. Stay tuned for 1.3, where the PvE mode will feel more human!
Release 1.3 is out! No more lag and I fixed many bugs, website also updated.
Houston we have landed! Its been a great journey and I learned how to use github, its not a complex project but I like it.
Chapter II: Square Game Reborn has officially started! based on some feedback given by others, I decided to take square game to the next level by added more UI, visual effects, and increase Playability. Hope you all enjoy! Square Game reborn is essentially just the original square game, but better.
Ships:
What we have here is a simple little game you can play with one, or two players. It is made with pygame, so it isn’t fancy, but thats all part of the process. While designing, I found this philosophy useful: “Keep it simple, Stupid” I think this project is very important because it taught me github, and how to use A*. This is the first of many programming projects I will attempt to create, and I worked all summer on this. It doesn’t really matter if it doesn’t do bad, I improved at programming, thats what matters....
|
1793004619.8620746
|
1793091019.8620746
|
|
30941
|
Mati by @Joschi | Stardance
|
Joschi
|
1
|
228.73
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T12:33:31Z", "hours": 228.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Welcome to MATI Discover MATI, a simple and relaxing Sudoku-inspired puzzle game designed to challenge your number-solving skills without putting you under pressure. Your goal is simple: Find the right numbers and complete every row and column correctly. MATI is designed to be fun and stress-free: No Time Pressure: Disable the timer whenever you want and play at your own pace. No Mistakes to Fear: MATI doesn’t punish you for incorrect entries. Simply correct them whenever you notice a mistake. 4 Different Sizes: Choose from four puzzle sizes to match your preferred challenge. Built-in Terminal: Prefer an old-school experience? Play MATI directly in its integrated terminal. Full Keyboard Support: No mouse or trackpad? No problem! MATI can be controlled entirely with your keyboard. ! Development Notice! MATI is still under active development. More features, improvements, and refinements are planned for future updates. Thank you for checking out MATI!", "repo": "https://github.com/JKfromHMS/Mati", "demo": "https://github.com/JKfromHMS/Mati/releases/tag/Mati"}]...
|
[{"post_id": 71221, "ts": "202 [{"post_id": 71221, "ts": "2026-09-20T14:03:17Z", "hours": 0.7347, "text": "Fixed the Read-Me After I got noticed that my Read-Me is not quite what it has to be, I have done a new version that should fit better into the requirements."}, {"post_id": 70074, "ts": "2026-09-18T12:15:17Z", "hours": 5.6108, "text": "Probably the last devlog on this project After more than 220 hours of coding and more and another 200 hours of deciding what to do and talking to other developers about how I could make this program run and do it good, I finally think that it is on a point at which I can think about shipping it. It runs, has no crucial bugs I noticed and is efficient enough to not take several hours just for the export of an mp4 video. Maybe I will add more features later, so do not be shy to comment what you like and what I should change and of course, please tell me if you have found any bug or unnatural behavior. OS Declaration Even though my goal was to make MATI run on every of the big 3 (Mac-OS, Linux, Windows) the current version just runs as wanted on Windows, due to different handling with graphic, which just means, that not every text is placed wright and that the overall look is scratched on Linux and Mac-OS. PS: The picture is the app icon."}, {"post_id": 67290, "ts": "2026-09-13T11:20:20Z", "hours": 9.3047, "text": "Tutorial I added a tutorial that shows the player how the game mainly works and give him the information about the shortcuts. Also I added a function to make the clock a reopen point for a small explanation what the program can do."}, {"post_id": 65414, "ts": "2026-09-10T15:09:37Z", "hours": 7.2906, "text": "Finalizing basic functions My goal is the finish the app as soon as possible. So I am know fixing the last few bugs and add the last missing feature that the program should have. This devlog should just let you know, that the last days were full of deciding what could I do to improve the program and were the bugs are. (Poorly most of this sort of spend time is not count toward the project.) The provided screenshots shows a thing I am currently trying to do better, the extended settings, because like you see, the design is very bad."}, {"post_id": 61761, "ts": "2026-09-04T20:25:16Z", "hours": 9.6339, "text": "Better Structure, Same Simplicity The last (many) hours I spend with one thing. Making sure the codes run even with new and better structure internal. This was also really important, because it made it easier to integrate multiple new things. One thing is, that now into the nearly same and reliable stats design comes buttons. This buttons are basically the headers, means size, mode, games … . If you click on them they basically sort the stats after this header. Furthermore the terminal got a big upgrade, because now it has three new ways to get deeper into your game. At first you can now easily check if you have paused matches. Also you can check your export history, which new feature made it actually also possible to get warned if you export a single match multiple times. And last but not least analysis. Because the game now got a deeper understanding of how you are playing and what are your trends and you can view all of this by the terminals history. (And I was shocked how good it worked with my recent 150 matches.) I hope, I didn’t overwhelmed you with all these information and that you are as curious for the new version as I am."}, {"post_id": 60773, "ts": "2026-09-03T11:24:14Z", "hours": 2.2931, "text": "Chapters I added with the help of AI the possibility to have chapters into my game. So you now can go exactly to the start of every action like you do in the game itself. And even though I know that this do not make that much of the decision how good the program is, it is still another thing that I now know how to do and I think that this is also really important."}, {"post_id": 59881, "ts": "2026-09-01T21:22:44Z", "hours": 9.7594, "text": "System remake It took a while and I forgot a little the time it used, but I did it. Now the whole game runs more efficient threw the new system that handles buttons separate and keeps them cached, so they do not have to be completely calculated every frame new. Also some designs changed slightly."}, {"post_id": 58281, "ts": "2026-08-30T17:28:26Z", "hours": 7.7617, "text": "Bug fixing and redesign Over the last thew versions, even though I spend a lot of time in debugging, many little bugs appear. Sometimes they comes just from moving a function or mistyping and sometimes deeper. So with this version I fixed again many of them, like wrong time show in the achievements and many others. Furthermore I worked and correcting and redesigning the whole terminal help logic, giving the main achievements new names and, like you see in the picture, modified the general achievements screen so that it not just looks better, but also feels better in reason of an improved algorithm to hide the mouse and navigation buttons. PS: If you use it and find a bug, it would be really nice if you could comment it."}, {"post_id": 57627, "ts": "2026-08-29T20:40:59Z", "hours": 7.5722, "text": "Code split and missing feature give With the latest version the game has grown to 14 game and 3 language constructor files, because I a made clearer structure in the code itself, that means I grabbed my screens file and extracted everything that was in there but with questionable reason. So the new files helpers and alt_hover was created. The task of alt_hover is explicit to handle everything containing the keyboard navigation possibilities. Helpers on the other hand is made for everything that is like a config but little more. (I know, that my config still is more as it should, I’ll try to change this as soon as possible.) Also I added with this update missing features that already should be in there like that the keyboard navigation also works in the advanced settings or that like you see in the picture the buttons in settings have an own color palette to make sure that it is clear that they at first are toggle buttons and have an associated color for each of their states. Furthermore I fixed a few little bugs, like that the back jump to the achievement button is not working with the up going higher than to the full-screen button. I hope you enjoy version 0.6.1"}, {"post_id": 56788, "ts": "2026-08-28T18:19:14Z", "hours": 4.5989, "text": "New Design and better language including Now the Achievements have this existing new design that not just looks better but also provides you more easy the needed information. I also made the language better fitting to the shown elements and changed some slightly to make it also look better. Furthermore I fixed a few little bugs like that you could not select ctrl and key shortcuts by yourself or that the pause text has not reacted to that."}, {"post_id": 55614, "ts": "2026-08-27T16:05:18Z", "hours": 9.0169, "text": "Languages and Efficiency The last few hours I used to refresh my school knowledge in French and Spanish to create language packets for my game in this two languages. What I did a little bit earlier is to work again on video exporting efficiency and now it gone really fast. Exporting a video in normal scale takes less time then playing it, in twice the resolution it takes usually around the play time or a little longer and in the highest settings still long. But overall it is now much faster and with less possible problems. PS: The export time are different depending on the hardware of your computer."}, {"post_id": 54404, "ts": "2026-08-25T12:23:33Z", "hours": 8.4808, "text": "Language and Efficiency After many hours I finally made it to add a second language to my game, beside English you know can have German texts in the game. Furthermore I took a little time to made the game as video export more efficient so that it takes 6 seconds less to export my test game."}, {"post_id": 51927, "ts": "2026-08-21T21:03:36Z", "hours": 8.6083, "text": "Languages What I used the last few hours for is what I probably will have to do for some more. Go threw the code and replace everything that generates an output the user could see with the new method that translate this. For this I also need to add the translations. As I needed a break I made the new design for the advanced settings, and now its like I wanted it to be. Furthermore the history in terminal supports now more sort options and - in front to change the meaning for this it has a new system that transfers everything with the same meaning into the same internal command."}, {"post_id": 51317, "ts": "2026-08-20T22:01:43Z", "hours": 8.9794, "text": "Added Advanced Settings It took long and still look not that great and do not work all over, but the base is set. To explain it, the game now has variable sound volume. Also you can now change the language, even though I do not have already created a fully second language. Furthermore navigation keys and ultra input order are now choose able, so if you prefer it different you can now make it so. PS: This devlog is made just in reason off time, at the moment none of this get pushed to GitHub, because it is still in developing."}, {"post_id": 49668, "ts": "2026-08-18T15:35:52Z", "hours": 6.5797, "text": "Fixed Bugs Now the game have finally also in terminal’s ultra game the option to pause the game and take a break. I also added a mechanism for players who want to be really fast that allows the program to submit commands automatically to reduce the submit click every action. Furthermore the achievement screen now has a two way navigation what means that you could either press the left/right arrow keys of your keyboard or click with your mouse on the magic appearing buttons. PS: V0.5.1 is out, it is an update mostly about bug fixing and just this little new features from witch 2 already should work in version beyond this."}, {"post_id": 48338, "ts": "2026-08-16T17:28:07Z", "hours": 4.4836, "text": "Achievements and clear up I added a new achievements show way that is based on multiple pages and every has his specific achievements on. I also cleared up the code a little bit, means I put fast added constants into the config, do little efficiency things and stuff like that. Furthermore I made scrollbars not just be better shown threw all menus, but also work better (more accurate). Now V0.5.0 is on GitHub, if you find bugs, please comment them under this devlog."}, {"post_id": 47395, "ts": "2026-08-15T09:45:19Z", "hours": 7.1794, "text": "Sort and filter system I added an advanced sort and filter system to the history in the terminal. Furthermore the history detail video export is now way faster and the exported videos just need the up to the half of the capacity they have needed before in the same quality level."}, {"post_id": 46868, "ts": "2026-08-14T12:38:24Z", "hours": 8.1706, "text": "Achievements and Design Now the game has an achievement system that show you something like tasks you could do. I also fixed like always some bugs from which are way to much in there and also redesigned the history detail grid position for every size."}, {"post_id": 45396, "ts": "2026-08-11T20:31:36Z", "hours": 4.8586, "text": "New jump system I added a new jump system for the setting, history detail, the Hannah Easter eggs and history view. This enabled the possibility to jump right back and not every time to the start and so you can navigate way faster threw this systems. I also fixed some bugs for example the bug that make the upscale from the exports video not work right. And like always, please comment under this if you notice a bug so that I can fix it."}, {"post_id": 44875, "ts": "2026-08-10T22:18:07Z", "hours": 7.9992, "text": "Efficiency and little changes Threw match case the code got little faster. I also corrected some weird keyboard navigation hover bugs fixed. Furthermore the terminal now got a clock and settings have a complete new look. The last really nameable thing is about that now, if you undo an action, this action is actually marked as undone (if not undone with the button), so you better reflect in the history detail view how the game was."}, {"post_id": 43391, "ts": "2026-08-08T16:33:15Z", "hours": 8.9786, "text": "Scrollbars and bug fix Now, finally, the scrollbars are really working and can be dragged as wished. I also added a version of the stats to the normal view and a version of the history and the settings to the terminal. Furthermore I worked on a way to scale the game up for the mp4 export and to make it harder to cheat. And, like always: If you test it (the newest versions code will be on GitHub in a few days) and should find any bug, please comment them so I can fix it."}, {"post_id": 41376, "ts": "2026-08-05T15:30:23Z", "hours": 6.8236, "text": "Efficiency I worked on the efficiency of the mp4 export and made sure that every sound is played correctly and every state is shown as wished."}, {"post_id": 38859, "ts": "2026-08-01T12:52:03Z", "hours": 5.6961, "text": "MP4 export Now you have the possibility to export a played game as a mp4 video file. With this method you can share your games with others."}, {"post_id": 37646, "ts": "2026-07-30T15:14:02Z", "hours": 7.1558, "text": "Fixed non working features Until now the program got a few things half implemented or even fully in the game but not use able because of mistakes. So know you finally see the scrollbars and you can navigate threw the terminal. You input line finally got moveable from left to right and right to left and buttons got a little new positioning. Also I made the code a little more efficient again."}, {"post_id": 36394, "ts": "2026-07-28T13:58:30Z", "hours": 5.6106, "text": "Efficiency and bug fix Underneath a list of what that means: Now you can see your stats threw the terminal again. Now only games in which you have done something are saved as paused games you can continue. Now also the ultra games are saved correctly and with every action. Now you can write play out again in the terminal. Now the wrong unknown command c message after resuming a game in ultra mode is removed. Now it does not matter anymore if a command has spaces in between or not (at least for those this is wanted). Now the check for play starts threw terminal, normal and ultra, and also for leaving the terminal is way more efficient thank to hash. Now the time code is more simplified. Now you can find a second Easter egg. Now you can with ptl (play time long) see, even over a minute, your playtime on milliseconds in terminal. Now you have a new stats looks that changes itself automatically to the number of your number of games. Now you automatically are on continue when you pause the game. Now Strg/Cmd n activates new match, like you would pressed the button. Now every in game terminal is closed correctly when wanted. Now Strg/Cmd m brings you back to menu everywhere you are. Now you can use up and down arrow to navigate threw your command history in terminal. Now stats show your real data and do not calculate the minutes out. Now terminal input are way more efficient. Now ultra games are way more efficient. Now terminal commands are way more efficient"}, {"post_id": 35778, "ts": "2026-07-27T12:52:18Z", "hours": 1.2631, "text": "Easter Egg #2 The photo show all things I changed in the last version now that everything is working. The game has still a few bugs and even threw the new algorithm even more so it will be a 0.3.2 expected next to fix these bugs as well. If you find one, please write it to me."}, {"post_id": 35735, "ts": "2026-07-27T11:16:54Z", "hours": 8.0969, "text": "Easter Egg and New Code structure After I was ill for a few days I now finished to implement a first planned Easter egg. I also restructured the code, but more about what I done exactly I will publish, when this version got completely working and got published on Git-Hub."}, {"post_id": 31862, "ts": "2026-07-20T16:17:02Z", "hours": 7.1044, "text": "Keyboard Control and Data The first thing I added is that know levels also can be generated with a system and not just based on luck. Also I added with a .smati file type the possibility to save and load the settings what means that when you change a setting this change will continue being there even after you restarted the game. Also you now can see your stats out of the terminal. The coolest new feature I think is the keyboard control option. That means that you now are able to navigate with your keyboard threw the normal mode instead of using the mouse."}, {"post_id": 30924, "ts": "2026-07-18T22:19:27Z", "hours": 1.9275, "text": "Ultra Mode and safety Added a filter system for the ultra mode, which is only visible if a ultra game was played and saved. I also added a question view, that you do not delete files without noticing."}, {"post_id": 30854, "ts": "2026-07-18T20:00:21Z", "hours": 5.2992, "text": "Terminal and Ultra Mode I added a terminal and a ultra mode in the terminal. The ultra mode is basically the normal game but with the different, that you have to type in what you want to do instead of clicking on the cell. The ultra mode also has a play time, the availability to get you time of the match, the restart it, to use a hint and it is also saved like the normal played matches. In the terminal you also can get the time on the second accurate."}, {"post_id": 29740, "ts": "2026-07-16T20:41:01Z", "hours": 3.0444, "text": "Bug fix and design V0.1.2 was exclusively for bug fix and design. Between the old versions I noticed bugs which I fixed to an high amount. Also I redesigned some things like the main menu or the pause menu and the design for the 7x7 grid. Now the code runs smoother and if we ignore the resize option the code is free from unwanted possibilities. If you find one, please say it, that I can fix it as well."}, {"post_id": 29464, "ts": "2026-07-16T13:08:05Z", "hours": 1.1544, "text": "Bug Fix Now you can see every dimmed cell correctly"}, {"post_id": 29433, "ts": "2026-07-16T11:42:57Z", "hours": 7.7711, "text": "Fullscreen, Resize and look and more With the new version you can put the game into fullscreen or just resize it in any way you like as long as you do not make it to small. Also you now can make the sounds be not there anymore. Furthermore you have a new version of the history and history-detail view with enables it for you to filter your games or see your games action by action"}, {"post_id": 27200, "ts": "2026-07-12T15:23:32Z", "hours": 1.3675, "text": "Audio Added an audio files which generates tones so that the game has in game sounds without copyright problems"}, {"post_id": 26125, "ts": "2026-07-10T18:47:20Z", "hours": 0.3211, "text": "Bug Fixes The Bugs was found and corrected. (Thanks to AI, that found the bugs and suggested fixes.) The Bugs were mostly just miss tips like a . instead of a , of a big letter instead of a little."}, {"post_id": 26112, "ts": "2026-07-10T18:16:47Z", "hours": 9.7158, "text": "Splitting I have started to split the game into several files, so each has a task and is better readable. Within the same I added new features like hints or a undo button, a 7x7 grid and overall a little overwork, so the code is overall better. But now are still bugs in there. (The only reason I update the project now is, because of the time I already needed and will need more.)"}, {"post_id": 23520, "ts": "2026-07-06T15:22:33Z", "hours": 3.2831, "text": "Time and Save Know you can enable to see a timer in the game. I also added a option to save your games as a history, but this still needs a lot of work, because the one file type is a bit of trickier than the last times I remembered."}, {"post_id": 22951, "ts": "2026-07-05T16:45:47Z", "hours": 0.7586, "text": "Settings and corrections The Game has no settings with an about Also I fixed a bug, which made the auto dim stop working."}, {"post_id": 22930, "ts": "2026-07-05T15:56:24Z", "hours": 0.7944, "text": "Dimming With a right click you can now dim a cell and if a cell is filled it dim automatically. Also I fixed a bug, which appeared in 0.0.4 with the 6x6."}, {"post_id": 22873, "ts": "2026-07-05T14:31:10Z", "hours": 1.1981, "text": "Expanded game modes and better marking Know you can choose between 4x4 5x5 and 6x6 game grid. Also the grid got a border and you can see if a row or column is solved, because they get marked then."}, {"post_id": 22802, "ts": "2026-07-05T11:53:20Z", "hours": 1.0408, "text": "Added a Main Screen You have now a main screen, from which you can start the game."}, {"post_id": 22764, "ts": "2026-07-05T10:45:32Z", "hours": 1.875, "text": "Created first Version it has no menu and just starts the game for one run"}]...
|
Title: Mati by @Joschi | Stardance
Devlogs:
Creat Title: Mati by @Joschi | Stardance
Devlogs:
Created first Version it has no menu and just starts the game for one run
Added a Main Screen You have now a main screen, from which you can start the game.
Expanded game modes and better marking Know you can choose between 4x4 5x5 and 6x6 game grid. Also the grid got a border and you can see if a row or column is solved, because they get marked then.
Dimming With a right click you can now dim a cell and if a cell is filled it dim automatically. Also I fixed a bug, which appeared in 0.0.4 with the 6x6.
Settings and corrections The Game has no settings with an about Also I fixed a bug, which made the auto dim stop working.
Time and Save Know you can enable to see a timer in the game. I also added a option to save your games as a history, but this still needs a lot of work, because the one file type is a bit of trickier than the last times I remembered.
Splitting I have started to split the game into several files, so each has a task and is better readable. Within the same I added new features like hints or a undo button, a 7x7 grid and overall a little overwork, so the code is overall better. But now are still bugs in there. (The only reason I update the project now is, because of the time I already needed and will need more.)
Bug Fixes The Bugs was found and corrected. (Thanks to AI, that found the bugs and suggested fixes.) The Bugs were mostly just miss tips like a . instead of a , of a big letter instead of a little.
Audio Added an audio files which generates tones so that the game has in game sounds without copyright problems
Fullscreen, Resize and look and more With the new version you can put the game into fullscreen or just resize it in any way you like as long as you do not make it to small. Also you now can make the sounds be not there anymore. Furthermore you have a new version of the history and history-detail view with enables it for you to filter your games or see your games action by action
Bug Fix Now you can see every dimmed cell correctly
Bug fix and design V0.1.2 was exclusively for bug fix and design. Between the old versions I noticed bugs which I fixed to an high amount. Also I redesigned some things like the main menu or the pause menu and the design for the 7x7 grid. Now the code runs smoother and if we ignore the resize option the code is free from unwanted possibilities. If you find one, please say it, that I can fix it as well.
Terminal and Ultra Mode I added a terminal and a ultra mode in the terminal. The ultra mode is basically the normal game but with the different, that you have to type in what you want to do instead of clicking on the cell. The ultra mode also has a play time, the availability to get you time of the match, the restart it, to use a hint and it is also saved like the normal played matches. In the terminal you also can get the time on the second accurate.
Ultra Mode and safety Added a filter system for the ultra mode, which is only visible if a ultra game was played and saved. I also added a question view, that you do not delete files without noticing.
Keyboard Control and Data The first thing I added is that know levels also can be generated with a system and not just based on luck. Also I added with a .smati file type the possibility to save and load the settings what means that when you change a setting this change will continue being there even after you restarted the game. Also you now can see your stats out of the terminal. The coolest new feature I think is the keyboard control option. That means that you now are able to navigate with your keyboard threw the normal mode instead of using the mouse.
Easter Egg and New Code structure After I was ill for a few days I now finished to implement a first planned Easter egg. I also restructured the code, but more about what I done exactly I will publish, when this version got completely working and got published on Git-Hub.
Easter Egg #2 The photo show all things I changed in the last version now that everything is working. The game has still a few bugs and even threw the new algorithm even more so it will be a 0.3.2 expected next to fix these bugs as well. If you find one, please write it to me.
Efficiency and bug fix Underneath a list of what that means: Now you can see your stats threw the terminal again. Now only games in which you have done something are saved as paused games you can continue. Now also the ultra games are saved correctly and with every action. Now you can write play out again in the terminal. Now the wrong unknown command c message after resuming a game in ultra mode is removed. Now it does not matter anymore if a command has spaces in between or not (at least for those this is wanted). Now the check for play starts threw terminal, normal and ultra, and also for leaving the terminal is way more efficient thank to hash. Now the time code is more simplified. Now you can find a second Easter egg. Now you can with ptl (play time long) see, even over a minute, your playtime on milliseconds in terminal. Now you have a new stats looks that changes itself automatically to the number of your number of games. Now you automatically are on continue when you pause the game. Now Strg/Cmd n activates new match, like you would pressed the button. Now every in game terminal is closed correctly when wanted. Now Strg/Cmd m brings you back to menu everywhere you are. Now you can use up and down arrow to navigate threw your command history in terminal. Now stats show your real data and do not calculate the minutes out. Now terminal input are way more efficient. Now ultra games are way more efficient. Now terminal commands are way more efficient
Fixed non working features Until now the program got a few things half implemented or even fully in the game but not use able because of mistakes. So know you finally see the scrollbars and you can navigate threw the terminal. You input line finally got moveable from left to right and right to left and buttons got a little new positioning. Also I made the code a little more efficient again.
MP4 export Now you have the possibility to export a played game as a mp4 video file. With this method you can share your games with others.
Efficiency I worked on the efficiency of the mp4 export and made sure that every sound is played correctly and every state is shown as wished.
Scrollbars and bug fix Now, finally, the scrollbars are really working and can be dragged as wished. I also added a version of the stats to the normal view and a version of the history and the settings to the terminal. Furthermore I worked on a way to scale the game up for the mp4 export and to make it harder to cheat. And, like always: If you test it (the newest versions code will be on GitHub in a few days) and should find any bug, please comment them so I can fix it.
Efficiency and little changes Threw match case the code got little faster. I also corrected some weird keyboard navigation hover bugs fixed. Furthermore the terminal now got a clock and settings have a complete new look. The last really nameable thing is about that now, if you undo an action, this action is actually marked as undone (if not undone with the button), so you better reflect in the history detail view how the game was.
New jump system I added a new jump system for the setting, history detail, the Hannah Easter eggs and history view. This enabled the possibility to jump right back and not every time to the start and so you can navigate way faster threw this systems. I also fixed some bugs for example the bug that make the upscale from the exports video not work right. And like always, please comment under this if you notice a bug so that I can fix it.
Achievements and Design Now the game has an achievement system that show you something like tasks you could do. I also fixed like always some bugs from which are way to much in there and also redesigned the history detail grid position for every size.
Sort and filter system I added an advanced sort and filter system to the history in the terminal. Furthermore the history detail video export is now way faster and the exported videos just need the up to the half of the capacity they have needed before in the same quality level.
Achievements and clear up I added a new achievements show way that is based on multiple pages and every has his specific achievements on. I also cleared up the code a little bit, means I put fast added constants into the config, do little efficiency things and stuff like that. Furthermore I made scrollbars not just be better shown threw all menus, but also work better (more accurate). Now V0.5.0 is on GitHub, if you find bugs, please comment them under this devlog.
Fixed Bugs Now the game have finally also in terminal’s ultra game the option to pause the game and take a break. I also added a mechanism for players who want to be really fast that allows the program to submit commands automatically to reduce the submit click every action. Furthermore the achievement screen now has a two way navigation what means that you could either press the left/right arrow keys of your keyboard or click with your mouse on the magic appearing buttons. PS: V0.5.1 is out, it is an update mostly about bug fixing and just this little new features from witch 2 already should work in version beyond this.
Added Advanced Settings It took long and still look not that great and do not work all over, but the base is set. To explain it, the game now has variable sound volume. Also you can now change the language, even though I do not have already created a fully second language. Furthermore navigation keys and ultra input order are now choose able, so if you prefer it different you can now make it so. PS: This devlog is made just in reason off time, at the moment none of this get pushed to GitHub, because it is still in developing.
Languages What I used the last few hours for is what I probably will have to do for some more. Go threw the code and replace everything that generates an output the user could see with the new method that translate this. For this I also need to add the translations. As I needed a break I made the new design for the advanced settings, and now its like I wanted it to be. Furthermore the history in terminal supports now more sort options and - in front to change the meaning for this it has a new system that transfers everything with the same meaning into the same internal command.
Language and Efficiency After many hours I finally made it to add a second language to my game, beside English you know can have German texts in the game. Furthermore I took a little time to made the game as video export more efficient so that it takes 6 seconds less to export my test game.
Languages and Efficiency The last few hours I used to refresh my school knowledge in French and Spanish to create language packets for my game in this two languages. What I did a little bit earlier is to work again on video exporting efficiency and now it gone really fast. Exporting a video in normal scale takes less time then playing it, in twice the resolution it takes usually around the play time or a little longer and in the highest settings still long. But overall it is now much faster and with less possible problems. PS: The export time are different depending on the hardware of your computer.
New Design and better language including Now the Achievements have this existing new design that not just looks better but also provides you more easy the needed information. I also made the language better fitting to the shown elements and changed some slightly to make it also look better. Furthermore I fixed a few little bugs like that you could not select ctrl and key shortcuts by yourself or that the pause text has not reacted to that.
Code split and missing feature give With the latest version the game has grown to 14 game and 3 language constructor files, because I a made clearer structure in the code itself, that means I grabbed my screens file and extracted everything that was in there but with questionable reason. So the new files helpers and alt_hover was created. The task of alt_hover is explicit to handle everything containing the keyboard navigation possibilities. Helpers on the other hand is made for everything that is like a config but little more. (I know, that my config still is more as it should, I’ll try to change this as soon as possible.) Also I added with this update missing features that already should be in there like that the keyboard navigation also works in the advanced settings or that like you see in the picture the buttons in settings have an own color palette to make sure that it is clear that they at first are toggle buttons and have an associated color for each of their states. Furthermore I fixed a few little bugs, like that the back jump to the achievement button is not working with the up going higher than to the full-screen button. I hope you enjoy version 0.6.1
Bug fixing and redesign Over the last thew versions, even though I spend a lot of time in debugging, many little bugs appear. Sometimes they comes just from moving a function or mistyping and sometimes deeper. So with this version I fixed again many of them, like wrong time show in the achievements and many others. Furthermore I worked and correcting and redesigning the whole terminal help logic, giving the main achievements new names and, like you see in the picture, modified the general achievements screen so that it not just looks better, but also feels better in reason of an improved algorithm to hide the mouse and navigation buttons. PS: If you use it and find a bug, it would be really nice if you could comment it.
System remake It took a while and I forgot a little the time it used, but I did it. Now the whole game runs more efficient threw the new system that handles buttons separate and keeps them cached, so they do not have to be completely calculated every frame new. Also some designs changed slightly.
Chapters I added with the help of AI the possibility to have chapters into my game. So you now can go exactly to the start of every action like you do in the game itself. And even though I know that this do not make that much of the decision how good the program is, it is still another thing that I now know how to do and I think that this is also really important.
Better Structure, Same Simplicity The last (many) hours I spend with one thing. Making sure the codes run even with new and better structure internal. This was also really important, because it made it easier to integrate multiple new things. One thing is, that now into the nearly same and reliable stats design comes buttons. This buttons are basically the headers, means size, mode, games … . If you click on them they basically sort the stats after this header. Furthermore the terminal got a big upgrade, because now it has three new ways to get deeper into your game. At first you can now easily check if you have paused matches. Also you can check your export history, which new feature made it actually also possible to get warned if you export a single match multiple times. And last but not least analysis. Because the game now got a deeper understanding of how you are playing and what are your trends and you can view all of this by the terminals history. (And I was shocked how good it worked with my recent 150 matches.) I hope, I didn’t overwhelmed you with all these information and that you are as curious for the new version as I am.
Finalizing basic functions My goal is the finish the app as soon as possible. So I am know fixing the last few bugs and add the last missing feature that the program should have. This devlog should just let you know, that the last days were full of deciding what could I do to improve the program and were the bugs are. (Poorly most of this sort of spend time is not count toward the project.) The provided screenshots shows a thing I am currently trying to do better, the extended settings, because like you see, the design is very bad.
Tutorial I added a tutorial that shows the player how the game mainly works and give him the information about the shortcuts. Also I added a function to make the clock a reopen point for a small explanation what the program can do.
Probably the last devlog on this project After more than 220 hours of coding and more and another 200 hours of deciding what to do and talking to other developers about how I could make this program run and do it good, I finally think that it is on a point at which I can think about shipping it. It runs, has no crucial bugs I noticed and is efficient enough to not take several hours just for the export of an mp4 video. Maybe I will add more features later, so do not be shy to comment what you like and what I should change and of course, please tell me if you have found any bug or unnatural behavior. OS Declaration Even though my goal was to make MATI run on every of the big 3 (Mac-OS, Linux, Windows) the current version just runs as wanted on Windows, due to different handling with graphic, which just means, that not every text is placed wright and that the overall look is scratched on Linux and Mac-OS. PS: The picture is the app icon.
Fixed the Read-Me After I got noticed that my Read-Me is not quite what it has to be, I have done a new version that should fit better into the requirements.
Ships:
Welcome to MATI Discover MATI, a simple and relaxing Sudoku-inspired puzzle game designed to challenge your number-solving skills without putting you under pressure. Your goal is simple: Find the right numbers and complete every row and column correctly. MATI is designed to be fun and stress-free: No Time Pressure: Disable the timer whenever you want and play at your own pace. No Mistakes to Fear: MATI doesn’t punish you for incorrect entries. Simply correct them whenever you notice a mistake. 4 Different Sizes: Choose from four puzzle sizes to match your preferred challenge. Built-in Terminal: Prefer an old-school experience? Play MATI directly in its integrated terminal. Full Keyboard Support: No mouse or trackpad? No problem! MATI can be controlled entirely with your keyboard. ! Development Notice! MATI is still under active development. More features, improvements, and refinements are planned for future updates. Thank you for checking out MATI!...
|
1793004618.5155396
|
1793091018.5155396
|
|
39965
|
My own site! by @kanda | Stardance
|
kanda
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-02T00:09:27Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website that was about me. It was difficult to debug when i madde syntax errors. I liked the javascript feature I added. I am most proud of attaching the links such as visit my Github.", "repo": "https://github.com/git-adit/My-Personal-Website", "demo": "https://git-adit.github.io/My-Personal-Website/#contact"}]...
|
[{"post_id": 35999, "ts": "202 [{"post_id": 35999, "ts": "2026-07-27T20:05:30Z", "hours": 0.6264, "text": "It’s my personal website with my GitHub link, what I like, my hobbies, and some projects I made."}]...
|
Title: My own site! by @kanda | Stardance
Devlogs Title: My own site! by @kanda | Stardance
Devlogs:
It’s my personal website with my GitHub link, what I like, my hobbies, and some projects I made.
Ships:
I made a website that was about me. It was difficult to debug when i madde syntax errors. I liked the javascript feature I added. I am most proud of attaching the links such as visit my Github....
|
1793004617.6462443
|
1793091017.6462443
|
|
950
|
Volvo API playground by @Kl | Stardance
|
Kl
|
1
|
130.69
|
2165
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T20:19:02Z", "hours": 113.0, "multiplier": 19.09, "payout": 2165, "blessing": "neutral", "text": "A Milestone Welcome everybody to the first ship of this project. What is this project? This project simulates how the Volvo API works. Why was this project created in the first place? So it’s easier to create and test your app that uses the Volvo API without using ready-made libraries. I can’t find the features you mentioned in the devlog? Check the scope branch or the upcoming dev branch. What I’m proud of: I learned a lot of things (this is my first big public project): Tailwind Python stuff (I started with C++) Writing documentation (Markdown) I also learned the basics of OAuth2 and how APIs work. Making a project with all the features needed to get started. I created an additional document for you, Stardancers: Stardance PATH What is still on the TODO list? More APIs Scopes docker image See the roadmap . What to see? error logger recreated endpoints dashboard web socket realtime changes internal endpints interactivity of the car", "repo": "https://github.com/klswar0/Volvo-API-playground", "demo": "https://playground.kls.hackclub.app/"}]...
|
[{"post_id": 79861, "ts": "202 [{"post_id": 79861, "ts": "2026-10-15T17:17:04Z", "hours": 7.1881, "text": "Devlog A very long time no see. I have made a lot of progress on adding an SQL database. Testing on MySQL The backup server provider gives me access to one. SQL changes A lot of BIG changes. The reason why I haven’t posted for so long is that I didn’t want to post about something that doesn’t work. Created new classes to intercept data changes, both in case of direct dict changes and when going through the SQL model library. (I didn’t change much in the code, just imported it under the same name as the old database.) And it works! At the start, only reading data worked, but now it can send data back to the database. Added a regen function to make sure built-in API keys are always the same after a restart. Fixed the car creation function (but when I started storing the additional data in SQL, it broke AGAIN). Added configuration attributes. At first, just the database type, but then all the information needed to connect to a MySQL database. Fixed the scenario readconfig (wasn’t it updated in the past?). A really small number of things I added? Yes, but the amount of debugging and changing built-in functions in classes took me so long. (Could be because of school and not having time to do everything in one sitting.) But I learned how to make a dummy dict with a class, as I called it in the commit: proxy . Problems The SQL database can’t create new cars. Need to check all internal endpoints to make sure they work. Still haven’t merged the DEV branch (TODO). All information is stored in one column as JSON. It works, buuuut I don’t like it that way. Need to clean up the proxy classes. updating docs What failed this time? The second photo attached shows it. Have a look before reading more. _contains__ If you see it, congrats! But if you have a screen full of code, it’s harder to spot. It should be __contains__ , and I spent, I think, two days debugging why all in statements just didn’t work. I was so happy when I finally found it! XAMPP and Apple Silicon The manager app doesn’t open after a restart, so after consulting Google and AI, I found a command that I use: sudo /Applications/XAMPP/xamppfiles/xampp start xampp If someone is asking why I didn’t use the server provided one it just wasn’t practical for now."}, {"post_id": 73730, "ts": "2026-09-25T19:56:38Z", "hours": 4.9217, "text": "Devlog A lot of breaking changes later and getting closer to PR and going to 2 ship Token lifetime WORKS made time when token is expired is rounded to int endpoint for invalidating token possibility for enabling expiring token for a specific token when it’s disabled for all in config file misc pytest for location and energy API fix the url for the enrgy API (it started with connectivity url not wi the energy api) cleanup import created new files to make the code more readable dashboard added location values added capabilities and values auto token generation and expiration in dashboard"}, {"post_id": 69307, "ts": "2026-09-16T19:32:57Z", "hours": 5.58, "text": "Read till the end PLEASE 🥺 Devlog A lot of changes from the last devlog only 5 hrs Mostly bc I add stuff on top of but I will suffer in the future (See dev branch for these changes) Change all connectivity API to start with /connected-vehicle/v2/ to make room for different APIs After that I fixed pytest to reflect that I added a location API with a ONE endpoint There were few iterations Added scopes for this API location:read If I remember correctly Unique error responses (because location error look like old (v1) connectivity API Fixed that operationID could be a constant Added a config option to use longer API keys About here I Fixed the url for location api because it used the connectivity scheme Started working on energy API I added all data from it to this project In short one endpoints says what this car is capable of And the other says the values TODO: add its unique error its half done Scopes corresponding to energy API Fixed that some values and capabilities had the same name (bc of that some bool values where number so a it was important) WIP Oauth2 update: JWT tokens for access tokens WIP token can expire! what are JWT token? There consist of three parts header payload and signature The two first is important for my project the 3 isn’t . They store info about issuer, when token is active, scopes… A lot of useless data for this project or useful? We will see Life Bc of school I didn’t have a lot of time to write devlog (and write code) but I try to do my best before the end of stardance The next ship is planned for 28 September BIRTHDAY TODAY (16 September) Im celebrating my birthday 😄 If you write me a few good words It would be motivating for me."}, {"post_id": 63130, "ts": "2026-09-06T19:20:58Z", "hours": 1.6042, "text": "Devlog MAIN added a startup baner fixed snapshots not saving if website was used scope If you didn’t follow from start this branch contains the experimental scope support which is mostly done but I can guarantee stability that’s why it isn’t pushed to main in fist ship made the scope page work added a back button added button to scope on main page fixed snapshots loading/saving"}, {"post_id": 61052, "ts": "2026-09-03T19:22:00Z", "hours": 2.8836, "text": "Long time no see… The school started aaand I didn’t have time I had low motivation The only thing to do before first ship is docs but I could find time to finish them. Buut I back now. AND I promise to ship it before 7 of September. If you are voting on this project PLEASE do not skip. I have my birthday coming and if the shipwrights doesn’t have a long list it could mean this project payout could be my birthday gift. If I ofc ship it 😅 devlog Small marketing changes everywhere to say that this project doesn’t have any ready code to use Added info about error logger on the landing page Scopes A long way from last devlog Fixed pytest ( A second time) TEMPORARY FIX added so the scope error doesn’t - throw just internal error FIXed the Oauth2 endpoint at least 3 times Added a WIP endpoint to edit scope data from API Fixed how cars are created so they work with both - Oauth and scopes stuff Only looking dashboard page for scopes compare I think I forgot to say something in last devlog config file if you would like to use different instance Toml oillevel to oilLever AI disclaimer that I used this project to learn tailwind Make the doors have different statuses in mean time Untracked WIKI Redo the home page Started working on stardance path A lot of misc that I don’t remember other I created a small modified volvo example app to show that my app works like the real one"}, {"post_id": 55226, "ts": "2026-08-26T20:27:11Z", "hours": 4.2503, "text": "Devlog Error logger added colors to the terminal print out using: \\033[31m \\033[0m Good to know that it is so easy to add colors to text added timestamps to log file and - between errors Changes how it reads body once again and fixed url encoded requests logging My additional information I put in detail in the json response (the real API can send it like that buttty I didn’t see it. info from docs ) additional changes: New scenarios mostly about service warnings You can add notes to the website thru config files Scopes I started working on scopes. What are they? They are really permissions (you can know them from discord bots or if you login thru GitHub etc.) I don’t want to put them in this first ship but I needed to work on something (while I work on wiki) and I CAN’T guarantee every thing works after adding them. You can see it in the scopes branch. what is done: I have made preparation so the additional database (dict) I use for OAuth can store more data have updated website func to work with changes and also pytest added all possible conve (connectivity API) scopes WIKI when I add everything to them I will finally try making a ship added the error logger page updated the sidebar scenario and snapshots page a lot of misc Bonus photos from vacation on baltic sea"}, {"post_id": 49931, "ts": "2026-08-18T21:59:53Z", "hours": 3.1292, "text": "Devlog There was a small (or big) problem in my playground. If an error was returned in the response, you could only see it if your app handled it or by printing the response. That’s why I added an error logger. It can show errors in two ways: Terminal Log file How it works There were two ways of doing it (from what I learned): Middleware that captures all responses (this could be helpful in the future). Exception handlers (this is what I chose). I use two handlers: @app.exception_handler(RequestValidationError) @app.exception_handler(HTTPException) It was a horrible time searching for why it didn’t work. At first, I worked in a separate file, but I couldn’t get the (fastapi) app variable into those functions. So I copied them into main file to make them work first. I had to change some JSON responses to HTTPException to make the second handler work. After I captured the first request and printed it, I worked on one function that writes a log and another that prints to the terminal. I also created a class to store useful data. It works like this: Exception handler-> ->Put data into class -> ->Create response -> ->Return response ->Create a background task that logs the error I create a background task so the response doesn’t wait or even worse fails In the end I found that I can wrap these func with this simple func to make them work in different file def setup_error_logging(app: FastAPI): Added a config option: To disable it completely. To disable only the log file. It also bypasses all internal endpoints to make the logs more readable. The best fail… 😅 I returned an exception instead of raising it. I spent a good 15 minutes wondering why the response had status code 200 with a JSON body saying status code 400 . response changes I also checked how the authorization errors look and added two new ones: Missing Authorization header. Invalid vcc-api-key header. WIKI (not counted) I focus on making a GitHub wiki (new docs) After ending them and the error logger. Its time for the first ship !!!!!!! Nest instability: I made a backup server : https://frog01-21185.wykr.es/ Its not ideal one, bc some asian countries are blocked but its shouldn’t have any downtime (I hope so) If an Admin read it why I must copy enter from different text input 😭"}, {"post_id": 48444, "ts": "2026-08-16T19:51:20Z", "hours": 2.4822, "text": "Devlog SITE changes I found that some number inputs didn’t use the utility classes. I gave them inputText because they are really the same; the only difference is the HTML type . I also forgot to update the reloadable fuel section. It now uses the shorter utility class. Made sure that all text in the header is the same size (they weren’t). I copied all changes back to the main branch. config changes Then I added a config file using the configparser library. also added an option to disable the FastAPI docs. I started working on Wiki: reworking docs.md into a GitHub Wiki with up to date information. Error logger, so you can see what’s wrong without printing the API response in your code. I had some problems with catching the fastapi automatic response but I will leave it for next devlog"}, {"post_id": 46236, "ts": "2026-08-13T10:31:45Z", "hours": 4.6175, "text": "Devlog I forgot to add that I worked on the tests in the test branch, not the main one. OAuth2 PKCE testing. Helped me find an error where, if the code was used (it was reset to \"\" ), it was accepted as \"\" . Now it correctly returns an error. OAuth2 flow testing. Warnings and diagnostics now have some simple checks too. And I merged it into main . Then I started cleaning up the Tailwind CSS. NOTE: they are in new branch dashboard/cleanup Why? Because I used the Play CDN in the past, so I couldn’t create utility classes in a CSS file. Soooo I didn’t. Andddd there were a lot of Tailwind classes that didn’t fit on my screen. Now that I started precompiling it, I could add them. I added 5 unique utility classes. All of them combined are used around ~120 times across all HTMLs. The longest one: @utility inputSelection { @apply w-full px-4 py-2 .5 bg-zinc-950 border border-zinc-800 rounded-xl text-zinc-100 focus : outline-none focus : ring-2 focus : ring-blue-300 focus : border-transparent transition-all appearance-none text-center [ text-align-last : center ] cursor-pointer ; } I also minified the CSS file. If I understand it, it removes anything the browser doesn’t need to understand the CSS (new lines, unnecessary spaces…). It’s better because those characters are still sent over the network, and fewer bytes mean less traffic. While using the new utility classes, I tried to preserve the layout, so everything should look the same as before."}, {"post_id": 44802, "ts": "2026-08-10T20:28:29Z", "hours": 3.7639, "text": "Devlog Working hard on pytest tests. I learn how assert works and how to name . I never used or created test in any language so I think they aren’t perfect (not like they should),but they work😄. I looked like AI made few and how other people and read some stuff online Tests created for these endpoints Around 25 of them List cars About car Engine info Engine start/stop Climate start/stop Windows Doors Lock/Unlock Reduced Guard Lock Flash, Honk, and Combination Tyres Statistics Fuel Odometer Engine diagnostics Brakes Command accessibility Still to do Warnings and diagnostics Commands More changes The tests helped me find and clean up several issues: Documentation updates. The honk endpoint was ../horn but should be /honk . Some values ( odometer , fuel ) are int , just like in the OpenAPI specification, not as described in the official docs. Fixed spelling mistakes: - oillevel to oilLevel - coolantLever to coolantLevel Want to help and has access to volvo with active VOC I need to test engine and climate endpoints but I don’t have an access to a car with it. Soooo if you can contact me on slack"}, {"post_id": 42512, "ts": "2026-08-07T09:41:54Z", "hours": 4.2411, "text": "Devlog Tracking headers implemented : There are two vcc-api-operationId - UUID traceparent - W3C traceparent (for now only sends it back) dashboard should look good on small screen (its very long but I don’t want to redesign it now) This is the reason why I there is much time in this devlog. It was a lot of try and error before something looked good both on mobile and desktop and I liked it . But at least it works know 🙃. some small cleanup of comments I worked again on internal updates endpoint (hopefully works now) started working on pytests (but I will talk about in next devlog (I gave my self 2 days for it) I really want to get the first ship out, so it isn’t going to be perfect. I still have a lot of features and improvements I’d like to add."}, {"post_id": 40711, "ts": "2026-08-04T12:41:43Z", "hours": 4.4231, "text": "Devlog I had a problem when I wanted to rewrite the scenario system. It only changed the local version of the Car (It means it really didn’t update anything). I wanted to update a backup version first, and only if everything was correct, replace the original with the backup. In the end, I used an already created function to first test and then apply to the car . Main PKCE misspelling fixed. Added a landing page with an option to disable it and redirect directly to the login screen (like in the last devlog I have photos of making it). Worked on the lights section. Fixed the docs URLs. Dashboard and WebSocket toggles now work. Rewrote and enabled the updates endpoint. Validation now catches values that can’t be converted to int . Scenario loading into a car instance should now be more consistent with the other functions. Improved mobile responsiveness (and then fixed the desktop one). Some elements were outside the screen on mobile (nothing important, but it didn’t look good). NOTE: the dashboard with car attributes still needs to be adapted. Added windows (because I forgot to 😅) to the dashboard and organised the lighting section. OAuth2 and Snapshots buttons should now always be centred. TODO Debug and tracing headers (from the real API). Additional instructions. Then I think it’s finally ready for the first ship. There are still a lot of things I want to add, but I can’t work indefinitely. Compare The compare app now has the Content-Type fix enabled (like the official API). Compiled the Tailwind CSS for the compare app. NOTE: I will add here more screenshots as link later Also thinking about adding it frictionless mission but I’m not sure."}, {"post_id": 39642, "ts": "2026-08-02T19:24:37Z", "hours": 3.62, "text": "Devlog Snapshots loading page (screenshots while I worked. I had more but the limit was 4). As suggested by the Tailwind CSS tools, changed some classes to more canonical ones. You can now delete cars through both the API and the dashboard. Snapshot corruption (when the app is force quit) should be fixed. Started working on the landing page, but I’ll leave it for the next devlog (mostly because I have on my other laptop). Fixes to do Sometimes the new OAuth2 and Snapshots buttons are off-center. Compare app needs fixing (need to enable the Content-Type fix from the official API). PKCE spelling in the internal API."}, {"post_id": 37827, "ts": "2026-07-30T19:39:54Z", "hours": 4.1028, "text": "Devlog The Content-Type problem is SOLVED …… What was the problem? (My reading skills? ) there are two headers with application/json : Content-Type (POST) Accept (GET) The Accept header isn’t required ( can be */* , application/* or application/json ). So the Content-Type mystery is mostly FIXED but I still need to check with a real Volvo car if Content-Type is actually required. (I’ll do it tomorrow.) Changes: Accept is now handled by my API like in the official API. Added Content-Type checks (like the docs say, meaning it’s required). While proofreading the docs, I found that PKCE is written as PCKE in one internal endpoint. (Not fixed yet.) Small README update (I try to keep it up to date). Scenario page: You can now load a scenario using the GUI. Recompiled the Tailwind CSS. I attached screenshots showing it (you can also see snapshot button but its not implemented YET)"}, {"post_id": 36608, "ts": "2026-07-28T20:31:07Z", "hours": 0.5122, "text": "The comparison app is now online! Comparison app: https://compareplay.kls.hackclub.app/ I also updated the main app with the new dashboard design: https://playground.kls.hackclub.app/internal/welcome devlog Tailwind CSS is no longer loaded from the CDN. I think its now precompiled. Note to others: Remember to update your banner to feature your app (see #stardance on Slack). Otherwise, your ship will be rejected. EDIT: A lot of bots try to connect to my apps do you think I should make a honeypot?"}, {"post_id": 36297, "ts": "2026-07-28T09:47:40Z", "hours": 3.2881, "text": "Devlog I found another way to hide the fuel stat when it isn’t useful for a particular type of car: the HTML hidden attribute. At first, I thought I should add or remove the element hidden, but that turned out to be more complicated than I expected. I think using hidden is still a cleaner solution but I still using templates files. While working on the dashboard, I wanted to add units like km , L , and % to some values. Instead of handling that in Python, I added another div with some margins and, in a few places, used flex so everything stays on the same line without adding more backend logic. Added more page changes thru HTMX (nearly all pages use it). Creating a new car now refreshes the page. when an error occurs, I use HX-Reswap and the HX-Retarget response header (when creating new car as proof of concept). Added HTMX transitions to the OAuth2 settings page.(all pages have transitions) What to do before the first release (Mostly a checklist for myself 😅) Content-Type checks. Scenario and snapshot system support in the dashboard. Main showcase page. Finish the remaining documentation. Two READMEs: one for the main repository and one for the companion app repository. I’m thinking about having one technical README and another one that’s easier to understand for people who don’t code. Better error handling in the dashboard. Right now, most errors are just displayed as plain text instead of being part of the page. deploy updated version on nest I wanted to add a video but MacOS made me a half gig and I don’t think stardance would handle"}, {"post_id": 35043, "ts": "2026-07-26T06:29:01Z", "hours": 5.5947, "text": "Devlog Most of my time was spent working on the dashboard with Tailwind CSS. It took a lot of experimenting to find a design I actually like. I also changed how HTMX updates the dashboard through WebSockets. Before: A dedicated template was rendered every time to update that part of the dashboard. Now: Only the text containing the updated value is replaced. That said, in the future it won’t always be just text. For example, if the fuel type changes from hybrid to electric , the fuel level should disappear from the dashboard instead of just changing its value. While working on this, I found a bug caused by HTMX sending boolean values as strings. This caused climate settings to be marked as invalid. I need to distinguish between an invalid value and an invalid attribute instead of always treating the entire attribute as invalid. Note to myself Add transitions. Make all HTML pages use the same CSS file from now on. Update the version on nest server and make a public companion instance Aaand that’s all. Making websites is painfully slow."}, {"post_id": 33472, "ts": "2026-07-23T13:34:25Z", "hours": 4.2786, "text": "Devlog I don’t know if I mentioned it before, but for now the Content-Type checks are disabled. I need to learn more about them and implement better validation. Created an updated OAuth2 settings page and a car selection screen (with Tailwind CSS, of course). Started experimenting with a new dashboard. It’s still a work in progress, but it will most likely become the main design. I’m also thinking about adding a second dashboard style, although I’m not sure if I’ll do that before the first release. I definitely want to clean up the HTML/Tailwind code by moving repeated styles into reusable classes or something similar. I’m also thinking about using more HTMX so that more pages can update data without needing a full page reload. Wrote more documentation. I still need to verify the fuel endpoint because I don’t remember whether it handles different engine types correctly. ( The new OAuth2 settings page and the car selection screen. For next develop I think I will make a video of how everything works)"}, {"post_id": 32303, "ts": "2026-07-21T11:58:32Z", "hours": 2.6278, "text": "Devlog Companion app I said it was finished for now, but I forgot to add one more thing (the one on the left in the screenshots): a dashboard redirect. Main app I’m still investigating the Content-Type problem. I verified that the official Volvo API behaves correctly, so I’m working on matching that behavior. Added work-in-progress Content-Type checks. Started reworking the CSS using Tailwind CSS. It’s still mixed with some plain CSS for now. Enabled support for the reduced guard lock command. You have to manually mark it as supported, and for now it behaves the same as the normal lock command. Let me know which design you like more: the new one (center) or the old one (right)."}, {"post_id": 31979, "ts": "2026-07-20T20:18:13Z", "hours": 3.7667, "text": "Devlog I’m mainly focused on finishing the companion app. I started working on the CSS. Most of my time was spent learning Tailwind CSS (so I didn’t track it). I think it’s a better fit for me than writing plain CSS. Added Tailwind CSS to all pages of the companion app. (I think I need to redo the main app now. 😅) Added a small README with information about the main app. I think it done now but I will come back to it before first ship Main app While working on the companion app, I found another issue. The Content-Type: application/json behavior doesn’t match the official API. I verified that the official API works as expected, checks for it mine doesn’t (I think)"}, {"post_id": 30890, "ts": "2026-07-18T21:12:58Z", "hours": 3.2169, "text": "Devlog Companion app Added manual mode for comparison. Engine start/stop now works in normal mode. Before pushing, I forgot to fix one thing: { \"error\" : \"Failed to retrieve data from unofficial API.\" , \"detail\" :{ \"detail\" :[{ \"type\" : \"dict_type\" , \"loc\" :[ \"body\" ], \"msg\" : \"Input should be a valid dictionary\" , \"input\" : \"{ \\\" runtimeMinutes \\\" : 10}\" }]}} The fix was simple: I forgot to use json.loads() . I pushed a quick fix commit right after. The photo shows the manual comparison page. I’m still working on the comparison logic, which is why it doesn’t have any CSS yet. Sorry for not adding Volvo API keys so you can see the differences between both APIs, but that would have taken too much time today. Its also the reason why Im creating this app Main app Worked on the documentation. The notifier now supports more than one updated attribute at the same time. It’s not the best implementation, but I’ll improve it after the first ship. Fixed snapshot loading and added exception handling. Scenario loading now reports malformed JSON files. Fixed a dashboard bug where tire information was shown three times. I think I planned to add more data there… and then forgot. I should probably test everything before making a devlog or committing, but I also don’t want my devlogs to have to much time."}, {"post_id": 29435, "ts": "2026-07-16T11:46:44Z", "hours": 0.5936, "text": "A public online demo!!!!! The project is finally available online! https://playground.kls.hackclub.app/internal/welcome Please don’t be the bad guy and fight with other people over access. ❤️ That’s all I wanted to say because this is a really big milestone for me. There will also be another commit today to make sure everyone can run their own instance of the project. I found a few issues that only appeared outside of my local environment: Some WebSocket features break when using HTTPS. The dashboard had problems when the instance wasn’t running on the same computer. Those should be fixed in today’s commit. If you find any errors please comment or contact me on slack Also thanks to nest hackclub for hosting"}, {"post_id": 29164, "ts": "2026-07-15T21:37:24Z", "hours": 2.8483, "text": "Devlog Authorization was my mistake. It should have been accessToken , not Authorization . Why I thought that? I have no idea. No it was good before I was sleepy I think when I did that The snapshots system now works. Why it didn’t work as expected: I forgot to use copy(deep=True) . One of the small dictionaries was written incorrectly. Added saving and loading snapshots from a file. The scenarios system now works and has been tested. Difference between snapshots and scenarios Snapshots copy all data about a car. They are persistent and can be saved to a file. Scenarios only change selected attributes. They are designed to be created and edited manually in a JSON file. Main app The main app is mostly ready. Before the first release, I still need to: Finish the documentation. Add a roadmap with future updates. Verify error responses against the real API. Finish the comparison feature in the companion app. Add more ready-to-use scenarios and API keys. Companion app Manual login now works, so only the comparison logic is left. I found a bug where api_key_p was None because one endpoint redirected using api_key instead. Started working on the comparison feature. PS: A photo of why the api_key_p was none"}, {"post_id": 27883, "ts": "2026-07-13T19:57:06Z", "hours": 3.8994, "text": "Devlog Writing documentation is a good way to check whether the code you wrote actually works. I already found four bugs while documenting the project. For example, I forgot to pass the redirect URI in a function in main.py , even though it was already implemented in internal.py . I also fixed a bug where notifications could sometimes contain an older value. The dashboard has been moved into a separate file. Snapshots currently have a problem. They are very similar to the Car class, so I’ll debug it and explain what the issue was in the next devlog. Companion app The companion app is meant to showcase the differences between my implementation and the official Volvo Demo Car Sandbox. It also makes testing easier, since you don’t have to write your own application just to try the API. I had a problem with the built-in LibreSSL because one of the dependencies didn’t support it. I had to reinstall Python so that uv would detect the new OpenSSL installation. After that, I was finally able to start the app and get it working. Auto-login and automatic creation of a test car are now working. There’s is no css but I will do it after logic works One more thing: the reason the devlogs have been quieter recently is that I’ve been dealing with some administrative paperwork. I’ll get back to posting them more regularly once that’s sorted out."}, {"post_id": 25868, "ts": "2026-07-10T10:58:56Z", "hours": 4.3936, "text": "Devlog How I don’t like web development… did I already say that? I’ll say it again. I’m working on the OAuth2 settings, and I had a problem where one of the query parameters wasn’t reaching the backend. I still don’t know what actually fixed it. Then I had another problem. I have a function that changes values in the backend, but only one button worked while everything else didn’t. It turned out to be because I debugged the first problem with AI. Always trust your own mind before trusting AI. The problem was hx-trigger . I also had problems applying CSS through HTMX. In the end, I solved it by using hx-redirect . But in the end everything works (you can see it one the phtoto) I also worked on the scenario system, which loads scenarios from a JSON file. It isn’t tested yet, and I still need to work on state snapshots. The idea is that you’ll be able to save a moment in time and restore it later, so you can test the same scenario as many times as you want without setting up all the data again. I also started working on a companion app to showcase the differences between my implementation and the official demo car sandbox. I’ll write more about it in the next devlog."}, {"post_id": 24338, "ts": "2026-07-07T20:58:43Z", "hours": 3.7069, "text": "Devlog A small error from the last devlog: it’s PKCE , not PCKE . I had to rename a lot of variables because of that. More customizable data Gearbox Model year More diagnostic data for lights (hazard, fog, brake, high beam, low beam, and more) Other additions Added a new default API key with 3 cars, each having different values. Wrote more docs. Started working on scenarios (templates for new or existing cars to make setup faster). I’m thinking about loading them from a file so users can create their own. Started working on setting up OAuth2 through the dashboard. Fixed most command responses because when I first created them, I forgot to wrap everything inside { \"data\": {} } . Added light options to the dashboard. Working: PKCE How does it work? The application generates a random secret. Before redirecting the user to the login page, it sends only a hashed version of that secret. After the user logs in, the application receives an authorization code. When exchanging the code for tokens, it sends the original secret. The server checks whether it matches the previously received hash. If it does, the tokens are issued. It normally protects from having the tokens stolen New promoting picture I made in canva have a look"}, {"post_id": 23100, "ts": "2026-07-05T20:54:08Z", "hours": 3.3289, "text": "Devlog Small additions to the new documentation. changes how the api handles errors BIG ADDITION OAuth2 without PKCE. I started working on PKCE, but I thought I should write a devlog before adding it. Added a login website (I know I mentioned it last time). Added a way to enable and disable OAuth2. Authentication now checks whether OAuth2 is enabled. If it is, requests are authenticated using OAuth2. Tokens don’t expire yet, but that will be added soon. Added endpoints for refreshing tokens and exchanging an authorization code for tokens. How does OAuth2 work? The app redirects the user to a login page. After logging in, the website redirects the user back to the callback URL provided by the app. The app receives an authorization code, which it exchanges for two tokens: a long-lived refresh token and a short-lived access token. When the access token expires, the app can use the refresh endpoint to obtain a new access token. What is PKCE? I’ll write more about it once it’s added to the project. In short, PKCE protects the authorization flow by ensuring that only the application that started the login process can exchange the authorization code for tokens. The application first generates a random secret (called a code verifier). Before the login request is sent, a hashed version of that secret (the code challenge) is sent to the server. Later, when exchanging the authorization code for tokens, the application sends the original secret. The server verifies that it matches the previously received hash before issuing any tokens. I’ll explain the complete flow in the next devlog."}, {"post_id": 20221, "ts": "2026-07-01T19:28:27Z", "hours": 5.3022, "text": "Devlog This devlog will be a short one because I’ve been focusing on implementing OAuth 2.0. I’ll cover that in more detail in the next update but I will add photo of a “login” screen that I created for it (it looks bad on purpose). What’s new The terminal now works with more than one static car. The dashboard can (once again) create new cars. The codebase has been split into multiple files instead of a single large file: main still contains the public API endpoints. internal contains the dashboard logic and internal API endpoints. database will contain multiple predefined car scenarios. I also started writing a new manual that documents the quirks of the Volvo API and my implementation ( and edge cases). I will write more about in next 2 devlogs What’s left before the first ship An example application demonstrating the differences between the official Volvo Sandbox and this project. OAuth 2.0 with PKCE (it would be great to have before the first ship). Documentation. A major code cleanup and refactoring."}, {"post_id": 17924, "ts": "2026-06-28T21:18:15Z", "hours": 2.7358, "text": "Devlog I added two static (for now) endpoints: statistics and warning . The statistics endpoint mostly returns data, so there isn’t much to test. The warning endpoint has a very large response that would require a lot of new code, and for now I don’t want to implement all of it. I started working on adding cars through the dashboard (you could already see part of it in the last devlog), but I found out it doesn’t work, so I need to fix it before the next devlog. Climate and engine STOP commands now respond correctly. In the last invoice update, they incorrectly returned RUNNING . Added checks for the new command endpoints to verify whether the car supports a given command. Added a small terminal page that outputs changes. In the future, you’ll be able to choose whether to display only Volvo changes, all changes, or all information (for example, if you checked whether the windows status). I also used it to verify that the normal WebSocket status works. Added the foundations for disabling WebSockets on startup. Only a configuration file is left to implement. Added UNAVAILABLE reason invoice logic mostly something like this: If the reason is NO_INTERNET , the invoice becomes CONNECTION_FAILURE . If the reason is POWER_SAVING_MODE , the invoice becomes VEHICLE_IN_SLEEP . Made some improvements to the dashboard’s appearance."}, {"post_id": 15774, "ts": "2026-06-25T17:19:10Z", "hours": 7.1422, "text": "Devlog A funny story: I built the invoice system but didn’t always assign values correctly, so the values got mixed up. I spent a long time debugging before realizing that was the cause. { \"error\" : { \"message\" : \"VALUE_ERROR\" , \"description\" : \" \\\" Car \\\" object has no field \\\" 123 \\\" \" } } I also spent a lot of time on CSS. Most of that time went into learning: classes IDs box shadows CSS Grid The reason it took so long since the last devlog is CSS. As I said before, I don’t really like web development, so my motivation was pretty low. I used some AI, but I worked hard to remove most of the generated code. At this point, most of the site’s design looks the way I want it to and will probably stay that way until the end of the project. Made invoices have some logic instead of always sending the same value. That means: If no invoice status is set, it sends COMPLETED or RUNNING depending on whether the engine or climate is running. Loc like actions can’t have a RUNNING invoice status. Added a distinction between successful and failed invoices. PS: Always remember to stop the server with Ctrl+C , not Ctrl+Z , because Ctrl+Z can leave the process running and keep the port blocked."}, {"post_id": 14241, "ts": "2026-06-23T07:56:55Z", "hours": 6.0522, "text": "Devlog It has been a long time since my last devlog, but I was more focused on learning than adding new stuff. Right now, I am focusing on learning HTML, htmx, and Jinja. The welcome page logic is mostly working. I had some problems with it because I used htmx to add new code, but the JavaScript from the is not reloaded with that. Now, I use the HX-Redirect response. I also learned how WebSockets work with FastAPI and htmx. I also designed how the dashboard will look (I attached my drawings. Good luck reading them!)."}, {"post_id": 11274, "ts": "2026-06-18T13:16:22Z", "hours": 3.5742, "text": "Devlog centralLock is called carLocked in the docs. The docs seem to be outdated. I think the OpenAPI specification is more accurate and contains fewer errors. I added a way to validate data using class functions. Implemented timestamps. Using datetime function from python Added tyre endpoints. Added a way to generate new API keys and create new cars (I used python secrets). (getting ready to make first public running version) Roadmap.md file with status of this project What is next to do Start using the updated method for changing data. Update the dashboard to reflect and modify the new data. Add WebSocket support. Add the remaining 2 vehicle and warning endpoints. Create an example app for testers. Redesign dashboard. It looks awful I had a 2 days off because I was on school trip but I back. Next thing on my list is an updated dashboard"}, {"post_id": 9202, "ts": "2026-06-15T13:28:28Z", "hours": 1.9225, "text": "Devlog You can edit data through the dashboard now. It’s not the best solution, and I want to change how it works (probably start from scratch), but not now. Diagnostics endpoints. I had a very good time with them today. Why? Because of the “/diagnostics” docs. I attached a screenshot showing an example from the official website and data from a real car (left: real API, right: docs). If you look at them, you can see two errors and one very small issue that you would only notice if you read the whole documentation: In serviceWarning, you can see the value is NORMAL, but NORMAL is not a valid value for it. It should be NO_WARNING. This is the small one. In engineHoursToService, the API response contains a unit, but the docs don’t mention it at all. And the worst one (and the only real error): there is no information about washerFluidLevelWarning in the docs, but it appears in the data from the car. What do you think I should do? Should I write to them about it? I think you can comment on the post, so let me know what you think."}, {"post_id": 8961, "ts": "2026-06-14T22:15:21Z", "hours": 1.7606, "text": "Devlog Added odometer and fuel endpoints. Funny thing is that Volvo sends in what unit the data is, but the docs say that only metric units are valid, so it really sends always the same unit. Most likely they wanted to add imperial later, or they left it like this for simplicity. Added first version of dashboard. For now, it’s using polling every 5 seconds (I have planned to change it to WebSocket). It only displays some information and can’t edit anything. Also, I wrote some HTML and JavaScript. I never liked web development, so I don’t know a lot (I’m learning while I code 😅). It could be that it will look very rough till the end because I don’t have any patience for HTML and CSS. I “will” do it when I have a very good day, or AI will do it? I would like not to use AI in this way, but I will see. Edit: Forgot to push the updated version to GitHub I will do it tomorrow because it’s late (it’s tomorrow )"}, {"post_id": 8322, "ts": "2026-06-13T20:45:50Z", "hours": 2.8264, "text": "Devlog Added a command accessibility endpoint (it tells if the car can receive commands). I refactored duplicate code in the climate endpoint. Added engine endpoints (they aren’t perfect, but this isn’t the final code). It was also a frustrating day because I repeatedly forgot to save my code before testing (my bad). A photo of the error that cost me way too much time today. (I changed it to “/vehicles/{VIN}/engine-status”, but I didn’t save the file.)"}, {"post_id": 7410, "ts": "2026-06-12T10:41:57Z", "hours": 0.9136, "text": "I setup my codespace and started working on first few endpoints. Additionally I looked how most of Volvos apis looks that gave me direction to go. That was all time I had today. Also I could add screenshot here because of macOS :("}]...
|
Title: Volvo API playground by @Kl | Stardance
De Title: Volvo API playground by @Kl | Stardance
Devlogs:
I setup my codespace and started working on first few endpoints. Additionally I looked how most of Volvos apis looks that gave me direction to go. That was all time I had today. Also I could add screenshot here because of macOS :(
Devlog Added a command accessibility endpoint (it tells if the car can receive commands). I refactored duplicate code in the climate endpoint. Added engine endpoints (they aren’t perfect, but this isn’t the final code). It was also a frustrating day because I repeatedly forgot to save my code before testing (my bad). A photo of the error that cost me way too much time today. (I changed it to “/vehicles/{VIN}/engine-status”, but I didn’t save the file.)
Devlog Added odometer and fuel endpoints. Funny thing is that Volvo sends in what unit the data is, but the docs say that only metric units are valid, so it really sends always the same unit. Most likely they wanted to add imperial later, or they left it like this for simplicity. Added first version of dashboard. For now, it’s using polling every 5 seconds (I have planned to change it to WebSocket). It only displays some information and can’t edit anything. Also, I wrote some HTML and JavaScript. I never liked web development, so I don’t know a lot (I’m learning while I code 😅). It could be that it will look very rough till the end because I don’t have any patience for HTML and CSS. I “will” do it when I have a very good day, or AI will do it? I would like not to use AI in this way, but I will see. Edit: Forgot to push the updated version to GitHub I will do it tomorrow because it’s late (it’s tomorrow )
Devlog You can edit data through the dashboard now. It’s not the best solution, and I want to change how it works (probably start from scratch), but not now. Diagnostics endpoints. I had a very good time with them today. Why? Because of the “/diagnostics” docs. I attached a screenshot showing an example from the official website and data from a real car (left: real API, right: docs). If you look at them, you can see two errors and one very small issue that you would only notice if you read the whole documentation: In serviceWarning, you can see the value is NORMAL, but NORMAL is not a valid value for it. It should be NO_WARNING. This is the small one. In engineHoursToService, the API response contains a unit, but the docs don’t mention it at all. And the worst one (and the only real error): there is no information about washerFluidLevelWarning in the docs, but it appears in the data from the car. What do you think I should do? Should I write to them about it? I think you can comment on the post, so let me know what you think.
Devlog centralLock is called carLocked in the docs. The docs seem to be outdated. I think the OpenAPI specification is more accurate and contains fewer errors. I added a way to validate data using class functions. Implemented timestamps. Using datetime function from python Added tyre endpoints. Added a way to generate new API keys and create new cars (I used python secrets). (getting ready to make first public running version) Roadmap.md file with status of this project What is next to do Start using the updated method for changing data. Update the dashboard to reflect and modify the new data. Add WebSocket support. Add the remaining 2 vehicle and warning endpoints. Create an example app for testers. Redesign dashboard. It looks awful I had a 2 days off because I was on school trip but I back. Next thing on my list is an updated dashboard
Devlog It has been a long time since my last devlog, but I was more focused on learning than adding new stuff. Right now, I am focusing on learning HTML, htmx, and Jinja. The welcome page logic is mostly working. I had some problems with it because I used htmx to add new code, but the JavaScript from the is not reloaded with that. Now, I use the HX-Redirect response. I also learned how WebSockets work with FastAPI and htmx. I also designed how the dashboard will look (I attached my drawings. Good luck reading them!).
Devlog A funny story: I built the invoice system but didn’t always assign values correctly, so the values got mixed up. I spent a long time debugging before realizing that was the cause. { "error" : { "message" : "VALUE_ERROR" , "description" : " \" Car \" object has no field \" 123 \" " } } I also spent a lot of time on CSS. Most of that time went into learning: classes IDs box shadows CSS Grid The reason it took so long since the last devlog is CSS. As I said before, I don’t really like web development, so my motivation was pretty low. I used some AI, but I worked hard to remove most of the generated code. At this point, most of the site’s design looks the way I want it to and will probably stay that way until the end of the project. Made invoices have some logic instead of always sending the same value. That means: If no invoice status is set, it sends COMPLETED or RUNNING depending on whether the engine or climate is running. Loc like actions can’t have a RUNNING invoice status. Added a distinction between successful and failed invoices. PS: Always remember to stop the server with Ctrl+C , not Ctrl+Z , because Ctrl+Z can leave the process running and keep the port blocked.
Devlog I added two static (for now) endpoints: statistics and warning . The statistics endpoint mostly returns data, so there isn’t much to test. The warning endpoint has a very large response that would require a lot of new code, and for now I don’t want to implement all of it. I started working on adding cars through the dashboard (you could already see part of it in the last devlog), but I found out it doesn’t work, so I need to fix it before the next devlog. Climate and engine STOP commands now respond correctly. In the last invoice update, they incorrectly returned RUNNING . Added checks for the new command endpoints to verify whether the car supports a given command. Added a small terminal page that outputs changes. In the future, you’ll be able to choose whether to display only Volvo changes, all changes, or all information (for example, if you checked whether the windows status). I also used it to verify that the normal WebSocket status works. Added the foundations for disabling WebSockets on startup. Only a configuration file is left to implement. Added UNAVAILABLE reason invoice logic mostly something like this: If the reason is NO_INTERNET , the invoice becomes CONNECTION_FAILURE . If the reason is POWER_SAVING_MODE , the invoice becomes VEHICLE_IN_SLEEP . Made some improvements to the dashboard’s appearance.
Devlog This devlog will be a short one because I’ve been focusing on implementing OAuth 2.0. I’ll cover that in more detail in the next update but I will add photo of a “login” screen that I created for it (it looks bad on purpose). What’s new The terminal now works with more than one static car. The dashboard can (once again) create new cars. The codebase has been split into multiple files instead of a single large file: main still contains the public API endpoints. internal contains the dashboard logic and internal API endpoints. database will contain multiple predefined car scenarios. I also started writing a new manual that documents the quirks of the Volvo API and my implementation ( and edge cases). I will write more about in next 2 devlogs What’s left before the first ship An example application demonstrating the differences between the official Volvo Sandbox and this project. OAuth 2.0 with PKCE (it would be great to have before the first ship). Documentation. A major code cleanup and refactoring.
Devlog Small additions to the new documentation. changes how the api handles errors BIG ADDITION OAuth2 without PKCE. I started working on PKCE, but I thought I should write a devlog before adding it. Added a login website (I know I mentioned it last time). Added a way to enable and disable OAuth2. Authentication now checks whether OAuth2 is enabled. If it is, requests are authenticated using OAuth2. Tokens don’t expire yet, but that will be added soon. Added endpoints for refreshing tokens and exchanging an authorization code for tokens. How does OAuth2 work? The app redirects the user to a login page. After logging in, the website redirects the user back to the callback URL provided by the app. The app receives an authorization code, which it exchanges for two tokens: a long-lived refresh token and a short-lived access token. When the access token expires, the app can use the refresh endpoint to obtain a new access token. What is PKCE? I’ll write more about it once it’s added to the project. In short, PKCE protects the authorization flow by ensuring that only the application that started the login process can exchange the authorization code for tokens. The application first generates a random secret (called a code verifier). Before the login request is sent, a hashed version of that secret (the code challenge) is sent to the server. Later, when exchanging the authorization code for tokens, the application sends the original secret. The server verifies that it matches the previously received hash before issuing any tokens. I’ll explain the complete flow in the next devlog.
Devlog A small error from the last devlog: it’s PKCE , not PCKE . I had to rename a lot of variables because of that. More customizable data Gearbox Model year More diagnostic data for lights (hazard, fog, brake, high beam, low beam, and more) Other additions Added a new default API key with 3 cars, each having different values. Wrote more docs. Started working on scenarios (templates for new or existing cars to make setup faster). I’m thinking about loading them from a file so users can create their own. Started working on setting up OAuth2 through the dashboard. Fixed most command responses because when I first created them, I forgot to wrap everything inside { "data": {} } . Added light options to the dashboard. Working: PKCE How does it work? The application generates a random secret. Before redirecting the user to the login page, it sends only a hashed version of that secret. After the user logs in, the application receives an authorization code. When exchanging the code for tokens, it sends the original secret. The server checks whether it matches the previously received hash. If it does, the tokens are issued. It normally protects from having the tokens stolen New promoting picture I made in canva have a look
Devlog How I don’t like web development… did I already say that? I’ll say it again. I’m working on the OAuth2 settings, and I had a problem where one of the query parameters wasn’t reaching the backend. I still don’t know what actually fixed it. Then I had another problem. I have a function that changes values in the backend, but only one button worked while everything else didn’t. It turned out to be because I debugged the first problem with AI. Always trust your own mind before trusting AI. The problem was hx-trigger . I also had problems applying CSS through HTMX. In the end, I solved it by using hx-redirect . But in the end everything works (you can see it one the phtoto) I also worked on the scenario system, which loads scenarios from a JSON file. It isn’t tested yet, and I still need to work on state snapshots. The idea is that you’ll be able to save a moment in time and restore it later, so you can test the same scenario as many times as you want without setting up all the data again. I also started working on a companion app to showcase the differences between my implementation and the official demo car sandbox. I’ll write more about it in the next devlog.
Devlog Writing documentation is a good way to check whether the code you wrote actually works. I already found four bugs while documenting the project. For example, I forgot to pass the redirect URI in a function in main.py , even though it was already implemented in internal.py . I also fixed a bug where notifications could sometimes contain an older value. The dashboard has been moved into a separate file. Snapshots currently have a problem. They are very similar to the Car class, so I’ll debug it and explain what the issue was in the next devlog. Companion app The companion app is meant to showcase the differences between my implementation and the official Volvo Demo Car Sandbox. It also makes testing easier, since you don’t have to write your own application just to try the API. I had a problem with the built-in LibreSSL because one of the dependencies didn’t support it. I had to reinstall Python so that uv would detect the new OpenSSL installation. After that, I was finally able to start the app and get it working. Auto-login and automatic creation of a test car are now working. There’s is no css but I will do it after logic works One more thing: the reason the devlogs have been quieter recently is that I’ve been dealing with some administrative paperwork. I’ll get back to posting them more regularly once that’s sorted out.
Devlog Authorization was my mistake. It should have been accessToken , not Authorization . Why I thought that? I have no idea. No it was good before I was sleepy I think when I did that The snapshots system now works. Why it didn’t work as expected: I forgot to use copy(deep=True) . One of the small dictionaries was written incorrectly. Added saving and loading snapshots from a file. The scenarios system now works and has been tested. Difference between snapshots and scenarios Snapshots copy all data about a car. They are persistent and can be saved to a file. Scenarios only change selected attributes. They are designed to be created and edited manually in a JSON file. Main app The main app is mostly ready. Before the first release, I still need to: Finish the documentation. Add a roadmap with future updates. Verify error responses against the real API. Finish the comparison feature in the companion app. Add more ready-to-use scenarios and API keys. Companion app Manual login now works, so only the comparison logic is left. I found a bug where api_key_p was None because one endpoint redirected using api_key instead. Started working on the comparison feature. PS: A photo of why the api_key_p was none
A public online demo!!!!! The project is finally available online! https://playground.kls.hackclub.app/internal/welcome Please don’t be the bad guy and fight with other people over access. ❤️ That’s all I wanted to say because this is a really big milestone for me. There will also be another commit today to make sure everyone can run their own instance of the project. I found a few issues that only appeared outside of my local environment: Some WebSocket features break when using HTTPS. The dashboard had problems when the instance wasn’t running on the same computer. Those should be fixed in today’s commit. If you find any errors please comment or contact me on slack Also thanks to nest hackclub for hosting
Devlog Companion app Added manual mode for comparison. Engine start/stop now works in normal mode. Before pushing, I forgot to fix one thing: { "error" : "Failed to retrieve data from unofficial API." , "detail" :{ "detail" :[{ "type" : "dict_type" , "loc" :[ "body" ], "msg" : "Input should be a valid dictionary" , "input" : "{ \" runtimeMinutes \" : 10}" }]}} The fix was simple: I forgot to use json.loads() . I pushed a quick fix commit right after. The photo shows the manual comparison page. I’m still working on the comparison logic, which is why it doesn’t have any CSS yet. Sorry for not adding Volvo API keys so you can see the differences between both APIs, but that would have taken too much time today. Its also the reason why Im creating this app Main app Worked on the documentation. The notifier now supports more than one updated attribute at the same time. It’s not the best implementation, but I’ll improve it after the first ship. Fixed snapshot loading and added exception handling. Scenario loading now reports malformed JSON files. Fixed a dashboard bug where tire information was shown three times. I think I planned to add more data there… and then forgot. I should probably test everything before making a devlog or committing, but I also don’t want my devlogs to have to much time.
Devlog I’m mainly focused on finishing the companion app. I started working on the CSS. Most of my time was spent learning Tailwind CSS (so I didn’t track it). I think it’s a better fit for me than writing plain CSS. Added Tailwind CSS to all pages of the companion app. (I think I need to redo the main app now. 😅) Added a small README with information about the main app. I think it done now but I will come back to it before first ship Main app While working on the companion app, I found another issue. The Content-Type: application/json behavior doesn’t match the official API. I verified that the official API works as expected, checks for it mine doesn’t (I think)
Devlog Companion app I said it was finished for now, but I forgot to add one more thing (the one on the left in the screenshots): a dashboard redirect. Main app I’m still investigating the Content-Type problem. I verified that the official Volvo API behaves correctly, so I’m working on matching that behavior. Added work-in-progress Content-Type checks. Started reworking the CSS using Tailwind CSS. It’s still mixed with some plain CSS for now. Enabled support for the reduced guard lock command. You have to manually mark it as supported, and for now it behaves the same as the normal lock command. Let me know which design you like more: the new one (center) or the old one (right).
Devlog I don’t know if I mentioned it before, but for now the Content-Type checks are disabled. I need to learn more about them and implement better validation. Created an updated OAuth2 settings page and a car selection screen (with Tailwind CSS, of course). Started experimenting with a new dashboard. It’s still a work in progress, but it will most likely become the main design. I’m also thinking about adding a second dashboard style, although I’m not sure if I’ll do that before the first release. I definitely want to clean up the HTML/Tailwind code by moving repeated styles into reusable classes or something similar. I’m also thinking about using more HTMX so that more pages can update data without needing a full page reload. Wrote more documentation. I still need to verify the fuel endpoint because I don’t remember whether it handles different engine types correctly. ( The new OAuth2 settings page and the car selection screen. For next develop I think I will make a video of how everything works)
Devlog Most of my time was spent working on the dashboard with Tailwind CSS. It took a lot of experimenting to find a design I actually like. I also changed how HTMX updates the dashboard through WebSockets. Before: A dedicated template was rendered every time to update that part of the dashboard. Now: Only the text containing the updated value is replaced. That said, in the future it won’t always be just text. For example, if the fuel type changes from hybrid to electric , the fuel level should disappear from the dashboard instead of just changing its value. While working on this, I found a bug caused by HTMX sending boolean values as strings. This caused climate settings to be marked as invalid. I need to distinguish between an invalid value and an invalid attribute instead of always treating the entire attribute as invalid. Note to myself Add transitions. Make all HTML pages use the same CSS file from now on. Update the version on nest server and make a public companion instance Aaand that’s all. Making websites is painfully slow.
Devlog I found another way to hide the fuel stat when it isn’t useful for a particular type of car: the HTML hidden attribute. At first, I thought I should add or remove the element hidden, but that turned out to be more complicated than I expected. I think using hidden is still a cleaner solution but I still using templates files. While working on the dashboard, I wanted to add units like km , L , and % to some values. Instead of handling that in Python, I added another div with some margins and, in a few places, used flex so everything stays on the same line without adding more backend logic. Added more page changes thru HTMX (nearly all pages use it). Creating a new car now refreshes the page. when an error occurs, I use HX-Reswap and the HX-Retarget response header (when creating new car as proof of concept). Added HTMX transitions to the OAuth2 settings page.(all pages have transitions) What to do before the first release (Mostly a checklist for myself 😅) Content-Type checks. Scenario and snapshot system support in the dashboard. Main showcase page. Finish the remaining documentation. Two READMEs: one for the main repository and one for the companion app repository. I’m thinking about having one technical README and another one that’s easier to understand for people who don’t code. Better error handling in the dashboard. Right now, most errors are just displayed as plain text instead of being part of the page. deploy updated version on nest I wanted to add a video but MacOS made me a half gig and I don’t think stardance would handle
The comparison app is now online! Comparison app: https://compareplay.kls.hackclub.app/ I also updated the main app with the new dashboard design: https://playground.kls.hackclub.app/internal/welcome devlog Tailwind CSS is no longer loaded from the CDN. I think its now precompiled. Note to others: Remember to update your banner to feature your app (see #stardance on Slack). Otherwise, your ship will be rejected. EDIT: A lot of bots try to connect to my apps do you think I should make a honeypot?
Devlog The Content-Type problem is SOLVED …… What was the problem? (My reading skills? ) there are two headers with application/json : Content-Type (POST) Accept (GET) The Accept header isn’t required ( can be */* , application/* or application/json ). So the Content-Type mystery is mostly FIXED but I still need to check with a real Volvo car if Content-Type is actually required. (I’ll do it tomorrow.) Changes: Accept is now handled by my API like in the official API. Added Content-Type checks (like the docs say, meaning it’s required). While proofreading the docs, I found that PKCE is written as PCKE in one internal endpoint. (Not fixed yet.) Small README update (I try to keep it up to date). Scenario page: You can now load a scenario using the GUI. Recompiled the Tailwind CSS. I attached screenshots showing it (you can also see snapshot button but its not implemented YET)
Devlog Snapshots loading page (screenshots while I worked. I had more but the limit was 4). As suggested by the Tailwind CSS tools, changed some classes to more canonical ones. You can now delete cars through both the API and the dashboard. Snapshot corruption (when the app is force quit) should be fixed. Started working on the landing page, but I’ll leave it for the next devlog (mostly because I have on my other laptop). Fixes to do Sometimes the new OAuth2 and Snapshots buttons are off-center. Compare app needs fixing (need to enable the Content-Type fix from the official API). PKCE spelling in the internal API.
Devlog I had a problem when I wanted to rewrite the scenario system. It only changed the local version of the Car (It means it really didn’t update anything). I wanted to update a backup version first, and only if everything was correct, replace the original with the backup. In the end, I used an already created function to first test and then apply to the car . Main PKCE misspelling fixed. Added a landing page with an option to disable it and redirect directly to the login screen (like in the last devlog I have photos of making it). Worked on the lights section. Fixed the docs URLs. Dashboard and WebSocket toggles now work. Rewrote and enabled the updates endpoint. Validation now catches values that can’t be converted to int . Scenario loading into a car instance should now be more consistent with the other functions. Improved mobile responsiveness (and then fixed the desktop one). Some elements were outside the screen on mobile (nothing important, but it didn’t look good). NOTE: the dashboard with car attributes still needs to be adapted. Added windows (because I forgot to 😅) to the dashboard and organised the lighting section. OAuth2 and Snapshots buttons should now always be centred. TODO Debug and tracing headers (from the real API). Additional instructions. Then I think it’s finally ready for the first ship. There are still a lot of things I want to add, but I can’t work indefinitely. Compare The compare app now has the Content-Type fix enabled (like the official API). Compiled the Tailwind CSS for the compare app. NOTE: I will add here more screenshots as link later Also thinking about adding it frictionless mission but I’m not sure.
Devlog Tracking headers implemented : There are two vcc-api-operationId - UUID traceparent - W3C traceparent (for now only sends it back) dashboard should look good on small screen (its very long but I don’t want to redesign it now) This is the reason why I there is much time in this devlog. It was a lot of try and error before something looked good both on mobile and desktop and I liked it . But at least it works know 🙃. some small cleanup of comments I worked again on internal updates endpoint (hopefully works now) started working on pytests (but I will talk about in next devlog (I gave my self 2 days for it) I really want to get the first ship out, so it isn’t going to be perfect. I still have a lot of features and improvements I’d like to add.
Devlog Working hard on pytest tests. I learn how assert works and how to name . I never used or created test in any language so I think they aren’t perfect (not like they should),but they work😄. I looked like AI made few and how other people and read some stuff online Tests created for these endpoints Around 25 of them List cars About car Engine info Engine start/stop Climate start/stop Windows Doors Lock/Unlock Reduced Guard Lock Flash, Honk, and Combination Tyres Statistics Fuel Odometer Engine diagnostics Brakes Command accessibility Still to do Warnings and diagnostics Commands More changes The tests helped me find and clean up several issues: Documentation updates. The honk endpoint was ../horn but should be /honk . Some values ( odometer , fuel ) are int , just like in the OpenAPI specification, not as described in the official docs. Fixed spelling mistakes: - oillevel to oilLevel - coolantLever to coolantLevel Want to help and has access to volvo with active VOC I need to test engine and climate endpoints but I don’t have an access to a car with it. Soooo if you can contact me on slack
Devlog I forgot to add that I worked on the tests in the test branch, not the main one. OAuth2 PKCE testing. Helped me find an error where, if the code was used (it was reset to "" ), it was accepted as "" . Now it correctly returns an error. OAuth2 flow testing. Warnings and diagnostics now have some simple checks too. And I merged it into main . Then I started cleaning up the Tailwind CSS. NOTE: they are in new branch dashboard/cleanup Why? Because I used the Play CDN in the past, so I couldn’t create utility classes in a CSS file. Soooo I didn’t. Andddd there were a lot of Tailwind classes that didn’t fit on my screen. Now that I started precompiling it, I could add them. I added 5 unique utility classes. All of them combined are used around ~120 times across all HTMLs. The longest one: @utility inputSelection { @apply w-full px-4 py-2 .5 bg-zinc-950 border border-zinc-800 rounded-xl text-zinc-100 focus : outline-none focus : ring-2 focus : ring-blue-300 focus : border-transparent transition-all appearance-none text-center [ text-align-last : center ] cursor-pointer ; } I also minified the CSS file. If I understand it, it removes anything the browser doesn’t need to understand the CSS (new lines, unnecessary spaces…). It’s better because those characters are still sent over the network, and fewer bytes mean less traffic. While using the new utility classes, I tried to preserve the layout, so everything should look the same as before.
Devlog SITE changes I found that some number inputs didn’t use the utility classes. I gave them inputText because they are really the same; the only difference is the HTML type . I also forgot to update the reloadable fuel section. It now uses the shorter utility class. Made sure that all text in the header is the same size (they weren’t). I copied all changes back to the main branch. config changes Then I added a config file using the configparser library. also added an option to disable the FastAPI docs. I started working on Wiki: reworking docs.md into a GitHub Wiki with up to date information. Error logger, so you can see what’s wrong without printing the API response in your code. I had some problems with catching the fastapi automatic response but I will leave it for next devlog
Devlog There was a small (or big) problem in my playground. If an error was returned in the response, you could only see it if your app handled it or by printing the response. That’s why I added an error logger. It can show errors in two ways: Terminal Log file How it works There were two ways of doing it (from what I learned): Middleware that captures all responses (this could be helpful in the future). Exception handlers (this is what I chose). I use two handlers: @app.exception_handler(RequestValidationError) @app.exception_handler(HTTPException) It was a horrible time searching for why it didn’t work. At first, I worked in a separate file, but I couldn’t get the (fastapi) app variable into those functions. So I copied them into main file to make them work first. I had to change some JSON responses to HTTPException to make the second handler work. After I captured the first request and printed it, I worked on one function that writes a log and another that prints to the terminal. I also created a class to store useful data. It works like this: Exception handler-> ->Put data into class -> ->Create response -> ->Return response ->Create a background task that logs the error I create a background task so the response doesn’t wait or even worse fails In the end I found that I can wrap these func with this simple func to make them work in different file def setup_error_logging(app: FastAPI): Added a config option: To disable it completely. To disable only the log file. It also bypasses all internal endpoints to make the logs more readable. The best fail… 😅 I returned an exception instead of raising it. I spent a good 15 minutes wondering why the response had status code 200 with a JSON body saying status code 400 . response changes I also checked how the authorization errors look and added two new ones: Missing Authorization header. Invalid vcc-api-key header. WIKI (not counted) I focus on making a GitHub wiki (new docs) After ending them and the error logger. Its time for the first ship !!!!!!! Nest instability: I made a backup server : https://frog01-21185.wykr.es/ Its not ideal one, bc some asian countries are blocked but its shouldn’t have any downtime (I hope so) If an Admin read it why I must copy enter from different text input 😭
Devlog Error logger added colors to the terminal print out using: \033[31m \033[0m Good to know that it is so easy to add colors to text added timestamps to log file and - between errors Changes how it reads body once again and fixed url encoded requests logging My additional information I put in detail in the json response (the real API can send it like that buttty I didn’t see it. info from docs ) additional changes: New scenarios mostly about service warnings You can add notes to the website thru config files Scopes I started working on scopes. What are they? They are really permissions (you can know them from discord bots or if you login thru GitHub etc.) I don’t want to put them in this first ship but I needed to work on something (while I work on wiki) and I CAN’T guarantee every thing works after adding them. You can see it in the scopes branch. what is done: I have made preparation so the additional database (dict) I use for OAuth can store more data have updated website func to work with changes and also pytest added all possible conve (connectivity API) scopes WIKI when I add everything to them I will finally try making a ship added the error logger page updated the sidebar scenario and snapshots page a lot of misc Bonus photos from vacation on baltic sea
Long time no see… The school started aaand I didn’t have time I had low motivation The only thing to do before first ship is docs but I could find time to finish them. Buut I back now. AND I promise to ship it before 7 of September. If you are voting on this project PLEASE do not skip. I have my birthday coming and if the shipwrights doesn’t have a long list it could mean this project payout could be my birthday gift. If I ofc ship it 😅 devlog Small marketing changes everywhere to say that this project doesn’t have any ready code to use Added info about error logger on the landing page Scopes A long way from last devlog Fixed pytest ( A second time) TEMPORARY FIX added so the scope error doesn’t - throw just internal error FIXed the Oauth2 endpoint at least 3 times Added a WIP endpoint to edit scope data from API Fixed how cars are created so they work with both - Oauth and scopes stuff Only looking dashboard page for scopes compare I think I forgot to say something in last devlog config file if you would like to use different instance Toml oillevel to oilLever AI disclaimer that I used this project to learn tailwind Make the doors have different statuses in mean time Untracked WIKI Redo the home page Started working on stardance path A lot of misc that I don’t remember other I created a small modified volvo example app to show that my app works like the real one
Devlog MAIN added a startup baner fixed snapshots not saving if website was used scope If you didn’t follow from start this branch contains the experimental scope support which is mostly done but I can guarantee stability that’s why it isn’t pushed to main in fist ship made the scope page work added a back button added button to scope on main page fixed snapshots loading/saving
Read till the end PLEASE 🥺 Devlog A lot of changes from the last devlog only 5 hrs Mostly bc I add stuff on top of but I will suffer in the future (See dev branch for these changes) Change all connectivity API to start with /connected-vehicle/v2/ to make room for different APIs After that I fixed pytest to reflect that I added a location API with a ONE endpoint There were few iterations Added scopes for this API location:read If I remember correctly Unique error responses (because location error look like old (v1) connectivity API Fixed that operationID could be a constant Added a config option to use longer API keys About here I Fixed the url for location api because it used the connectivity scheme Started working on energy API I added all data from it to this project In short one endpoints says what this car is capable of And the other says the values TODO: add its unique error its half done Scopes corresponding to energy API Fixed that some values and capabilities had the same name (bc of that some bool values where number so a it was important) WIP Oauth2 update: JWT tokens for access tokens WIP token can expire! what are JWT token? There consist of three parts header payload and signature The two first is important for my project the 3 isn’t . They store info about issuer, when token is active, scopes… A lot of useless data for this project or useful? We will see Life Bc of school I didn’t have a lot of time to write devlog (and write code) but I try to do my best before the end of stardance The next ship is planned for 28 September BIRTHDAY TODAY (16 September) Im celebrating my birthday 😄 If you write me a few good words It would be motivating for me.
Devlog A lot of breaking changes later and getting closer to PR and going to 2 ship Token lifetime WORKS made time when token is expired is rounded to int endpoint for invalidating token possibility for enabling expiring token for a specific token when it’s disabled for all in config file misc pytest for location and energy API fix the url for the enrgy API (it started with connectivity url not wi the energy api) cleanup import created new files to make the code more readable dashboard added location values added capabilities and values auto token generation and expiration in dashboard
Devlog A very long time no see. I have made a lot of progress on adding an SQL database. Testing on MySQL The backup server provider gives me access to one. SQL changes A lot of BIG changes. The reason why I haven’t posted for so long is that I didn’t want to post about something that doesn’t work. Created new classes to intercept data changes, both in case of direct dict changes and when going through the SQL model library. (I didn’t change much in the code, just imported it under the same name as the old database.) And it works! At the start, only reading data worked, but now it can send data back to the database. Added a regen function to make sure built-in API keys are always the same after a restart. Fixed the car creation function (but when I started storing the additional data in SQL, it broke AGAIN). Added configuration attributes. At first, just the database type, but then all the information needed to connect to a MySQL database. Fixed the scenario readconfig (wasn’t it updated in the past?). A really small number of things I added? Yes, but the amount of debugging and changing built-in functions in classes took me so long. (Could be because of school and not having time to do everything in one sitting.) But I learned how to make a dummy dict with a class, as I called it in the commit: proxy . Problems The SQL database can’t create new cars. Need to check all internal endpoints to make sure they work. Still haven’t merged the DEV branch (TODO). All information is stored in one column as JSON. It works, buuuut I don’t like it that way. Need to clean up the proxy classes. updating docs What failed this time? The second photo attached shows it. Have a look before reading more. _contains__ If you see it, congrats! But if you have a screen full of code, it’s harder to spot. It should be __contains__ , and I spent, I think, two days debugging why all in statements just didn’t work. I was so happy when I finally found it! XAMPP and Apple Silicon The manager app doesn’t open after a restart, so after consulting Google and AI, I found a command that I use: sudo /Applications/XAMPP/xamppfiles/xampp start xampp If someone is asking why I didn’t use the server provided one it just wasn’t practical for now.
Ships:
A Milestone Welcome everybody to the first ship of this project. What is this project? This project simulates how the Volvo API works. Why was this project created in the first place? So it’s easier to create and test your app that uses the Volvo API without using ready-made libraries. I can’t find the features you mentioned in the devlog? Check the scope branch or the upcoming dev branch. What I’m proud of: I learned a lot of things (this is my first big public project): Tailwind Python stuff (I started with C++) Writing documentation (Markdown) I also learned the basics of OAuth2 and how APIs work. Making a project with all the features needed to get started. I created an additional document for you, Stardancers: Stardance PATH What is still on the TODO list? More APIs Scopes docker image See the roadmap . What to see? error logger recreated endpoints dashboard web socket realtime changes internal endpints interactivity of the car...
|
1793004616.137251
|
1793091016.137251
|