|
46735
|
AlternativeLink by @ERR0RW0LF | Stardance
|
ERR0RW0LF
|
1
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T19:24:36Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "AlternativeLink This project implements the SharkLink Protocol making it compatible with the Shark Jack Display by Hak5. This ship is for the underlying core lib in combination with the CLI. CLI The CLI tool provides a quick and easy way to use any pc in combination with the Shark Jack Display. Using the -h / --help flags this help message is printed: Rust implementation for SharkLink Usage: alternative-link-cli.exe [OPTIONS] --interface <INTERFACE> Options: -i, --interface <INTERFACE> Interface IP to bind to (skips interactive picker) -p, --port <PORT> UDP port to use [default: 1337] -c, --code <CODE> Shared room/pairing code [default: 1-3-3-7] --broadcast-interval <BROADCAST_INTERVAL> Broadcast interval in seconds [default: 5] --auto-test Run non-interactively: auto-test connection as soon as a peer is found. If this is not set after receiving a Ping and sending the Ack the program closes --no-stop Prevents the program from automatically stopping (you will need to manually kill the program if this is set) -v... Increase log verbosity (-v -vv) --json Emit machine-readable JSON status lines instead of prose --max-direct-tries <MAX_DIRECT_TRIES> Maximum retries for the direct connection test [default: 20] -h, --help Print help -V, --version Print version Development The first prototype was developed in python using package inspection with wireshark. After refining that prototype, I wrote a first all in one (file) interactive version of that prototype using rust. Then I found out that the SharkLink tool on the Shark Jack Display a bash script is. (I never looked at it properly but just found out that I accidentally implemented a similar control flow using python and rust) After that I split the project into the cargo workspace structure with one lib and cli crates. Now I have started developing an interactive version but more close to original. Trying it The README on GitHub details how to run it on windows. This is because I have only tested it in these combinations. But it should work everywhere because I haven’t used anything os specific and tested it on wsl.", "repo": "https://github.com/ERR0RW0LF/AlternativeLink", "demo": "https://github.com/ERR0RW0LF/AlternativeLink/releases"}]...
|
[{"post_id": 69567, "ts": "202 [{"post_id": 69567, "ts": "2026-09-17T10:11:34Z", "hours": 5.7008, "text": "Devlog 6: Finaly finished the CLI. Over the past hours I have improved my code a lot. By making it automaticly terminate if it gets pinged and adding the --no_stop flag to prevent automatic closing. Next up: Shipping it and maybe after getting some feedback improving it."}, {"post_id": 64219, "ts": "2026-09-08T13:45:01Z", "hours": 9.0597, "text": "Devlog 5: I finally did it! It’s now a cli tool! What changed: It’s a Cli. So, to use it just try the --help / -h flag to get the usage. Also, I restructured the project into a core lib and the cli bin crates using a cargo workspace. This should allow me to more easily develop the Tui later. I also set up two github workflows, one that audits my used packages using the actions-rust-lang/audit action. The other one builds me the cli for a lot of different targets using the dtolnay/rust-toolchain action. I also started writing some instructions to try the project, but this is still an area of active development. Next up I defiantly need to document the protocol that I’m using. Also, as I have mentioned I want to create a tui. Maybe later a gui would be a great addition but that’s something I’m not quite sure about."}, {"post_id": 55421, "ts": "2026-08-27T07:26:58Z", "hours": 3.2636, "text": "Devlog 4: (Now with logging) What change Rewrote a lot of the logic making it safer Added a timeout for pinging Added a Code struct which has TryFrom<&str> and std::fmt::Display implemented so it’s really easy to convert a code string to the code structure and back added logging with tracing Combined both sending sockets to one Arc<UdpSocket> so broadcaster and direct connection check share one socket reducing overhead Changed how I handle Errors, no longer ignoring them Next up: Cli Maybe a tui"}, {"post_id": 47172, "ts": "2026-08-14T21:15:25Z", "hours": 2.3325, "text": "Devlog 3: Got everything working in Rust. Now the direct connection check works in both directions. Next up: Optimizing TUI CLI"}, {"post_id": 46519, "ts": "2026-08-13T20:03:20Z", "hours": 7.4931, "text": "Devlog 2: I started reimplementing everything in rust. Already have the discovery broadcast and listener working. So the only things missing are the direct connection check from the program site and a better looking interface like a tui."}, {"post_id": 45299, "ts": "2026-08-11T17:42:09Z", "hours": 2.7483, "text": "Devlog 1: So I reverse engineered the protocol hak5 uses for SharkLink using one SharkJack Display and my PC with Wireshark for package inspection. I first needed to implement the device discovery which is a broadcast UDP package which in plan text says <PIN> <Sender_Ip>\\n so for example 1-3-3-7 192.168.178.1\\n Then I reverse engineered the ping messages which are a direct connection with first PING <Sender_IP>\\n and then the response which is ACK <Sender_IP>\\n . Nextup: Reimplement the program in rust and after that create a tui."}]...
|
Title: AlternativeLink by @ERR0RW0LF | Stardance
Title: AlternativeLink by @ERR0RW0LF | Stardance
Devlogs:
Devlog 1: So I reverse engineered the protocol hak5 uses for SharkLink using one SharkJack Display and my PC with Wireshark for package inspection. I first needed to implement the device discovery which is a broadcast UDP package which in plan text says <PIN> <Sender_Ip>\n so for example 1-3-3-7 192.168.178.1\n Then I reverse engineered the ping messages which are a direct connection with first PING <Sender_IP>\n and then the response which is ACK <Sender_IP>\n . Nextup: Reimplement the program in rust and after that create a tui.
Devlog 2: I started reimplementing everything in rust. Already have the discovery broadcast and listener working. So the only things missing are the direct connection check from the program site and a better looking interface like a tui.
Devlog 3: Got everything working in Rust. Now the direct connection check works in both directions. Next up: Optimizing TUI CLI
Devlog 4: (Now with logging) What change Rewrote a lot of the logic making it safer Added a timeout for pinging Added a Code struct which has TryFrom<&str> and std::fmt::Display implemented so it’s really easy to convert a code string to the code structure and back added logging with tracing Combined both sending sockets to one Arc<UdpSocket> so broadcaster and direct connection check share one socket reducing overhead Changed how I handle Errors, no longer ignoring them Next up: Cli Maybe a tui
Devlog 5: I finally did it! It’s now a cli tool! What changed: It’s a Cli. So, to use it just try the --help / -h flag to get the usage. Also, I restructured the project into a core lib and the cli bin crates using a cargo workspace. This should allow me to more easily develop the Tui later. I also set up two github workflows, one that audits my used packages using the actions-rust-lang/audit action. The other one builds me the cli for a lot of different targets using the dtolnay/rust-toolchain action. I also started writing some instructions to try the project, but this is still an area of active development. Next up I defiantly need to document the protocol that I’m using. Also, as I have mentioned I want to create a tui. Maybe later a gui would be a great addition but that’s something I’m not quite sure about.
Devlog 6: Finaly finished the CLI. Over the past hours I have improved my code a lot. By making it automaticly terminate if it gets pinged and adding the --no_stop flag to prevent automatic closing. Next up: Shipping it and maybe after getting some feedback improving it.
Ships:
AlternativeLink This project implements the SharkLink Protocol making it compatible with the Shark Jack Display by Hak5. This ship is for the underlying core lib in combination with the CLI. CLI The CLI tool provides a quick and easy way to use any pc in combination with the Shark Jack Display. Using the -h / --help flags this help message is printed: Rust implementation for SharkLink Usage: alternative-link-cli.exe [OPTIONS] --interface <INTERFACE> Options: -i, --interface <INTERFACE> Interface IP to bind to (skips interactive picker) -p, --port <PORT> UDP port to use [default: 1337] -c, --code <CODE> Shared room/pairing code [default: 1-3-3-7] --broadcast-interval <BROADCAST_INTERVAL> Broadcast interval in seconds [default: 5] --auto-test Run non-interactively: auto-test connection as soon as a peer is found. If this is not set after receiving a Ping and sending the Ack the program closes --no-stop Prevents the program from automatically stopping (you will need to manually kill the program if this is set) -v... Increase log verbosity (-v -vv) --json Emit machine-readable JSON status lines instead of prose --max-direct-tries <MAX_DIRECT_TRIES> Maximum retries for the direct connection test [default: 20] -h, --help Print help -V, --version Print version Development The first prototype was developed in python using package inspection with wireshark. After refining that prototype, I wrote a first all in one (file) interactive version of that prototype using rust. Then I found out that the SharkLink tool on the Shark Jack Display a bash script is. (I never looked at it properly but just found out that I accidentally implemented a similar control flow using python and rust) After that I split the project into the cargo workspace structure with one lib and cli crates. Now I have started developing an interactive version but more close to original. Trying it The README on GitHub details how to run it on windows. This is because I have only tested it in these combinations. But it should work everywhere because I haven’t used anything os specific and tested it on wsl....
|
1793335975.2457216
|
1793422375.2457216
|
|
62437
|
HackPad - Mission 1 by @muminmohamed | Stardance
|
muminmohamed
|
0
|
2.25
|
0
|
[]
|
[{"post_id": 69580, "ts": "202 [{"post_id": 69580, "ts": "2026-09-17T10:52:15Z", "hours": 2.25, "text": "HackPad Update 1 I’m (sorta) finally done with the schematic for my macro pad! I never thought building a mini keyboard would be so fun. Took around 3 days for me to get this done, still have to clean up some warnings (THESE BUGGERS AINT GOING AWAY) but uhh yeah hopefully I can troubleshoot them today or tomorrow at max, or knowing me, I’ll probably start the PCB design and leave the warnings for a future me 😭😭 Edit: I did not record log a major part of building this and I have no idea why"}]...
|
Title: HackPad - Mission 1 by @muminmohamed | Star Title: HackPad - Mission 1 by @muminmohamed | Stardance
Devlogs:
HackPad Update 1 I’m (sorta) finally done with the schematic for my macro pad! I never thought building a mini keyboard would be so fun. Took around 3 days for me to get this done, still have to clean up some warnings (THESE BUGGERS AINT GOING AWAY) but uhh yeah hopefully I can troubleshoot them today or tomorrow at max, or knowing me, I’ll probably start the PCB design and leave the warnings for a future me 😭😭 Edit: I did not record log a major part of building this and I have no idea why...
|
1793044419.01087
|
1793649219.01087
|
|
54970
|
The minecraft alarm by @Lionroar28 | Stardance
|
Lionroar28
|
0
|
1.33
|
0
|
[]
|
[{"post_id": 69584, "ts": "202 [{"post_id": 69584, "ts": "2026-09-17T11:08:01Z", "hours": 1.33, "text": "Devlog#1 Finished maing the PCB for the mc alarm! It has: -4 switches -a pin connection for the screen -a xiao controller -a buzzer to wake me up -cool minecraft decals to make it look super cool (pls tell me if I messed something up, its my first time!)"}]...
|
Title: The minecraft alarm by @Lionroar28 | Starda Title: The minecraft alarm by @Lionroar28 | Stardance
Devlogs:
Devlog#1 Finished maing the PCB for the mc alarm! It has: -4 switches -a pin connection for the screen -a xiao controller -a buzzer to wake me up -cool minecraft decals to make it look super cool (pls tell me if I messed something up, its my first time!)...
|
1793134052.0666463
|
1793738852.0666463
|
|
63082
|
Vortex Web Browser by @Divij | Stardance
|
Divij
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T11:59:32Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A Web Browser", "repo": "https://github.com/Divij808/Vortex-web-Browser", "demo": "https://github.com/Divij808/Vortex-web-Browser/releases/tag/WebBrowser"}]...
|
[{"post_id": 69595, "ts": "202 [{"post_id": 69595, "ts": "2026-09-17T11:46:29Z", "hours": 0.3942, "text": "I have built a simple web browser with tabs that can retrieve your search results."}]...
|
Title: Vortex Web Browser by @Divij | Stardance
D Title: Vortex Web Browser by @Divij | Stardance
Devlogs:
I have built a simple web browser with tabs that can retrieve your search results.
Ships:
A Web Browser...
|
1793210192.876538
|
1793296592.876538
|
|
62756
|
AdityaOOS by @adityajain1225 | Stardance
|
adityajain1225
|
0
|
0.26
|
0
|
[]
|
[{"post_id": 69604, "ts": "202 [{"post_id": 69604, "ts": "2026-09-17T12:16:34Z", "hours": 0.2597, "text": "I have started to work on the project involving the main index.html which will eventually be the main file of my project with js and css built within it"}]...
|
Title: AdityaOOS by @adityajain1225 | Stardance
D Title: AdityaOOS by @adityajain1225 | Stardance
Devlogs:
I have started to work on the project involving the main index.html which will eventually be the main file of my project with js and css built within it...
|
1793047772.2579575
|
1793652572.2579575
|
|
26406
|
Pendryx Pico by @Partholimew | Stardance
|
Partholimew
|
0
|
18.58
|
0
|
[]
|
[{"post_id": 69612, "ts": "202 [{"post_id": 69612, "ts": "2026-09-17T12:44:46Z", "hours": 1.7833, "text": "Here’s an update since it’s been awhile. I have received all my parts. It took awhile since I accidentally ordered the wrong solder paste and had to wait to get the new one though. Anyway, I have assembled the board, accidentally put the LEDs on backwards, had to remove and reorient them, and now I’m debugging it to see what could be wrong with it. The power LED does turn on, but the board is not recognized, so I’m still looking into why. Here’s how it turned out though! (SMD soldering is fun!)"}, {"post_id": 46410, "ts": "2026-08-13T16:24:25Z", "hours": 0.39, "text": "I did some last-minute organization to correct a few messy traces on the PCB, but now that I have funding, I have ordered the components and will be building once they arrive."}, {"post_id": 36041, "ts": "2026-07-27T21:19:25Z", "hours": 1.8294, "text": "Shipped! (At least until I have approval for funding) The Pendryx Pico is a rpi Pico-sized devboard with 28 GPIO pins, including I2C (In order), and a mic. It has 520 KB of ram, 18 MB of flash memory, and connects via USB-C!"}, {"post_id": 35538, "ts": "2026-07-27T01:27:33Z", "hours": 0.9503, "text": "I have completed my PCB checks and finished labeling the board. All that is left before shipping is to complete the GitHub page and actually ship!"}, {"post_id": 35228, "ts": "2026-07-26T15:10:06Z", "hours": 3.2003, "text": "I DID IT! I managed to route the entire PCB, and fit all the components. The only thing I had to cut was the I2C header. However, It’s still accessible on the GPIO (In the correct order and including the needed resistors) So you could directly connect a display to it. All that’s left to do before I ship is to check all my work and do some more friendly labeling! (And of course the GitHub repo)"}, {"post_id": 34636, "ts": "2026-07-25T15:06:01Z", "hours": 0.9308, "text": "I managed to hook up the power and usb data to the actual rp2354a chip, including both the 3.3 and 1.1v connections. It’s a bit messy, but it worked. I’m currently trying to figure out how to attach my extra flash memory, since that chip isn’t exactly tiny, and it still needs to reach the correct pins on the core. I’ll also have to leave room for GPIO wiring. But I’m still hoping it will continue to go fairly well."}, {"post_id": 34585, "ts": "2026-07-25T13:09:27Z", "hours": 4.9378, "text": "This one isn’t going to look like much progress per amount of time compared to the others, but here we go. I assigned pcb footprints to all my components. Then, I started on the pcb, only to realize that some of those footprints are a bit large for a 20 x 50 mm board. So after a lot of attempting to make it work, I finally changed to smaller resistor and capacitor footprints. I will also likely change my button and crystal footprints later, since they are a bit too large as well, but I’ll do that when I get to that part of the board. Anyway, I’m finished with the usb power and data parts of the pcb (for now) and have to do the main core and I/O next, which will likely be a pain, (Hence why my starting sections are so cramped) but I figured I should stop here to make a log. Hoping all goes well in the next steps!"}, {"post_id": 33768, "ts": "2026-07-23T23:07:08Z", "hours": 0.5283, "text": "Ok, so I’ve added an analog mic, as well as an extra 16 mb flash memory. So in theory you can store a decent amount of audio or whatever else on this thing. The mic won’t exactly be great quality, but it will work for general uses like sound activation. I’m tempted to add wifi, so I’m either going to do that next or start the PCB."}, {"post_id": 33755, "ts": "2026-07-23T22:26:45Z", "hours": 0.9836, "text": "I finished the main schematic for the board by adding a status LED and setting up the IO pins. I think I might still add a few things before working on the PCB though. I’m considering extra flash memory and perhaps an inbuilt mic for some extra features. I may end up making some modules for this board later on. But here’s thee pictures!"}, {"post_id": 33547, "ts": "2026-07-23T16:12:28Z", "hours": 0.5836, "text": "I finished the USB data sheet. So now the board can actually send and receive data, which is rather important for a devboard. Lots of screenshots this time due to small changes to various parts of the schematic. Once I finish all the critical systems, I’ll add some of the things that will make it a bit different from a standard pico."}, {"post_id": 33211, "ts": "2026-07-22T22:17:50Z", "hours": 1.6503, "text": "I updated the power sheet a bit. Then I worked on one of the more complicated parts of this schematic design; the core sheet. It took a little while, but I think it works, so long as I do the other sheets right of course. I also began my main schematic diagram since I have more than one sheet, and you can see the single 3.3v line from the usb-c power sheet running to the core! I know, exciting stuff, right? Anyways, I have a ways to go before I can work on the actual pcb, and will likely be adding some features to make it different from a basic pico, otherwise there wouldn’t be much point!"}, {"post_id": 32526, "ts": "2026-07-21T19:18:23Z", "hours": 0.8167, "text": "So I’ve decided to try making an Rpi Pico-esque devboard. Since I don’t have that much experience with such things, it’s a lot of trial and error, as well as referencing far too many things at once. I decided to start by trying to make the power delivery circuit. I’m not certain it is correct, but an attempt was made."}]...
|
Title: Pendryx Pico by @Partholimew | Stardance
D Title: Pendryx Pico by @Partholimew | Stardance
Devlogs:
So I’ve decided to try making an Rpi Pico-esque devboard. Since I don’t have that much experience with such things, it’s a lot of trial and error, as well as referencing far too many things at once. I decided to start by trying to make the power delivery circuit. I’m not certain it is correct, but an attempt was made.
I updated the power sheet a bit. Then I worked on one of the more complicated parts of this schematic design; the core sheet. It took a little while, but I think it works, so long as I do the other sheets right of course. I also began my main schematic diagram since I have more than one sheet, and you can see the single 3.3v line from the usb-c power sheet running to the core! I know, exciting stuff, right? Anyways, I have a ways to go before I can work on the actual pcb, and will likely be adding some features to make it different from a basic pico, otherwise there wouldn’t be much point!
I finished the USB data sheet. So now the board can actually send and receive data, which is rather important for a devboard. Lots of screenshots this time due to small changes to various parts of the schematic. Once I finish all the critical systems, I’ll add some of the things that will make it a bit different from a standard pico.
I finished the main schematic for the board by adding a status LED and setting up the IO pins. I think I might still add a few things before working on the PCB though. I’m considering extra flash memory and perhaps an inbuilt mic for some extra features. I may end up making some modules for this board later on. But here’s thee pictures!
Ok, so I’ve added an analog mic, as well as an extra 16 mb flash memory. So in theory you can store a decent amount of audio or whatever else on this thing. The mic won’t exactly be great quality, but it will work for general uses like sound activation. I’m tempted to add wifi, so I’m either going to do that next or start the PCB.
This one isn’t going to look like much progress per amount of time compared to the others, but here we go. I assigned pcb footprints to all my components. Then, I started on the pcb, only to realize that some of those footprints are a bit large for a 20 x 50 mm board. So after a lot of attempting to make it work, I finally changed to smaller resistor and capacitor footprints. I will also likely change my button and crystal footprints later, since they are a bit too large as well, but I’ll do that when I get to that part of the board. Anyway, I’m finished with the usb power and data parts of the pcb (for now) and have to do the main core and I/O next, which will likely be a pain, (Hence why my starting sections are so cramped) but I figured I should stop here to make a log. Hoping all goes well in the next steps!
I managed to hook up the power and usb data to the actual rp2354a chip, including both the 3.3 and 1.1v connections. It’s a bit messy, but it worked. I’m currently trying to figure out how to attach my extra flash memory, since that chip isn’t exactly tiny, and it still needs to reach the correct pins on the core. I’ll also have to leave room for GPIO wiring. But I’m still hoping it will continue to go fairly well.
I DID IT! I managed to route the entire PCB, and fit all the components. The only thing I had to cut was the I2C header. However, It’s still accessible on the GPIO (In the correct order and including the needed resistors) So you could directly connect a display to it. All that’s left to do before I ship is to check all my work and do some more friendly labeling! (And of course the GitHub repo)
I have completed my PCB checks and finished labeling the board. All that is left before shipping is to complete the GitHub page and actually ship!
Shipped! (At least until I have approval for funding) The Pendryx Pico is a rpi Pico-sized devboard with 28 GPIO pins, including I2C (In order), and a mic. It has 520 KB of ram, 18 MB of flash memory, and connects via USB-C!
I did some last-minute organization to correct a few messy traces on the PCB, but now that I have funding, I have ordered the components and will be building once they arrive.
Here’s an update since it’s been awhile. I have received all my parts. It took awhile since I accidentally ordered the wrong solder paste and had to wait to get the new one though. Anyway, I have assembled the board, accidentally put the LEDs on backwards, had to remove and reorient them, and now I’m debugging it to see what could be wrong with it. The power LED does turn on, but the board is not recognized, so I’m still looking into why. Here’s how it turned out though! (SMD soldering is fun!)...
|
1792774171.8277335
|
1793378971.8277335
|
|
9756
|
tinystudio by @ratmuds | Stardance
|
ratmuds
|
1
|
109.8
|
2123
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T02:08:29Z", "hours": 108.0, "multiplier": 19.71, "payout": 2123, "blessing": "neutral", "text": "I made a game engine that I tried to make the UI look nice and feel accessible. I wanted to design it around what I liked about other game engines like Roblox Studio and Godot, and try and make it as easy as possible to make prototypes of games quickly. The decision to not let any 3D imports was intentional to keep the engine style of more retro, as you can see by the rendering style. Instead, you can fuse and subtract shapes together with CSG. The flow editor state machines fully work, and was inspired by Playmaker. The scripting system is a little bit janky sometimes but it somewhat works. The scripting system has a basic scheduler and profiler similar to Roblox’s Luau scheduler but without the complexity of CPU budget. The engine uses a custom ECS that uses Svelte Runes to provide reactivity to the engine sidebars and editor. There is also a basic UI system, and physics. There are three demo projects to try out too.", "repo": "https://github.com/ratmuds/tinystudio", "demo": "https://tinystudio.ratmud.studio/"}]...
|
[{"post_id": 69622, "ts": "202 [{"post_id": 69622, "ts": "2026-09-17T13:08:36Z", "hours": 1.7972, "text": "Redid UI styling to feel more blocky I rewrote the UI to look less bubbly I guess, now it looks more like lego and stuff and more space for work instead of tons of padding"}, {"post_id": 67806, "ts": "2026-09-14T01:58:45Z", "hours": 5.0589, "text": "Finalized Project I added a projects manager and generally just cleaned up the repository. Then created three basic demos, like a basic moon landing game, a very basic parkour game, and a physics sandbox. And finished the README"}, {"post_id": 48210, "ts": "2026-08-16T14:44:47Z", "hours": 4.7264, "text": "Scope Leaking Bug Fixed, Mouse Input, Scripting Improvements, ECS & Events Scripting Improvements and Fixes, Cameras There was an issue where I used a single variable to hold the last used scope before and forgot to change it to support multiple scripts. That is fixed now and scopes aren’t mixed weirdly anymore. There is now mouse functions and events Events can be called like part.physics:on(\"touched\") instead of part:on(\"Physics.touched\") for clarity Cameras are added, game wide function to change active camera, and camera system that updates the camera things bidirectionally supporting multiple camera types."}, {"post_id": 46256, "ts": "2026-08-13T11:31:38Z", "hours": 5.1194, "text": "Script Scheduling Engine Revamp The entire scripting engine has been redone. It was a lot of cascading changes again, with now each “Scope” having it’s own scheduler. A “scope” is a single logic component that gets attached to entities. How it works now The scheduler handles the Lua engine stuff. It wraps the main script around into a coroutine automatically now, and extracts the coroutine into a thread. It then creates a scheduler job object, pending into the queue. The scheduler then gets stepped, and initializes the jobs into the main queue and steps them. By stepping them, it resumes the coroutine until the script either ends or manually pauses the coroutine itself (usually done with a predefined “wait” function). I think this is very similar to how Roblox handles it’s script scheduler, although Roblox’s is of course much more complicated. Handling the events and callbacks was much more difficult though. Each of those ALSO need it’s own thread to run to access coroutine related functions and to access data (otherwise very weird errors will happen, like calling code over a boundary or something). This all gets added as a scheduler job, and that allows us to record telemetry data. Eventually, threads can be assigned a “budget”, where they can be stalled if they consume more than the allotted time or even do things like infinite loop detection, etc. There was just generally tedious work that was annoying."}, {"post_id": 45759, "ts": "2026-08-12T13:35:44Z", "hours": 5.3428, "text": "Added CSG Operations I added CSG operations, using the Manifold library. It makes it a bit simpler, making watertight meshes and giving back the geometry for me to make a custom mesh in ThreeJS. The reason it took so long was because I had to add cascading changes to a lot of the data structures to support this custom geometry. I also added a little loading thing at the bottom right for CSG operations. As of right now Union and Subtract are supported. Materials are not preserved as of right now, due to the simplistic way I’m handling materials but when I finish building out the materials system I basically just need to get the triangle references out of Manifold and relink them to the correct materials."}, {"post_id": 40725, "ts": "2026-08-04T13:16:47Z", "hours": 5.4036, "text": "Engine Events System & Starting Significant Scheduler Engine Revamp So I made the events system. It works by a class on the JavaScript (engine) layer, and is attached to all entities. There are a couple of functions: on: fires on event once: fires on event only once off: clears event callback clear: clears all callbacks Other entities are allowed to access another entitys events, being able to listen or even emit. A game architecture could work like having “manager” entities at the top level of the game which hold different events. For example, an “InventoryManager” entity could have an event for when an item is picked up, it itself can listen to it, as well as any other things that may find it useful. I’ve also cleaned up the code, and now there is a “game” reference. Eventually, it will have access to more things but as of right now you can access an “inputManager” which holds functions and events for user inputs. It works by attaching a metatable to it and exposing global hidden functions to call to my JavaScript engine code. But a huge problem showed up, the way I was running scripts. Before I thought just a simple coroutine running with a timeout for delays was just fine, but I was super wrong. If a callback from an event is fired and the function wants to do something, like call an external function or wait, it completely breaks. Why? I didn’t know and it took me a lot of time to find out. It’s because the callbacks aren’t a coroutine too. This is when I realized why something like Roblox has a full blown scheduler. So I’ve been planning and starting on the scheduler engine. It has to handle a lot of stuff, including managing when scripts run, including WHEN they want to run (next frame, in 3 seconds, etc) and track if they are causing issues by keeping track of their budget. Everything will need to be in a coroutine coordinated by the scheduler. Including callbacks from events too. It’s going to be pretty complicated I think, requiring a rewrite of the entire scripting system. I also just encountered a lot of bugs. And I fixed the errors from Wasmoon including the entire JS stacktrace for no reason too."}, {"post_id": 39522, "ts": "2026-08-02T15:10:03Z", "hours": 4.0047, "text": "Scripting System Affecting the Game Scripts now can change parts. There are getEntityById and getEntityByName functions now, and a bunch of metatables and stuff to get it working. Now you can query for an entity, and then modify it’s component data with metatables. For example to access or set the position of a part, you can do part.transform.position . The transform finds the transform component and position finds the data entry of position inside the component. This is all done on runtime, with component queries happening dynamically so no manual programming for new components is required. This may affect performance a little bit though. There is a custom Vector3 object now too. Error messages are also now a little less vague but still pretty confusing. I don’t know how to solve that."}, {"post_id": 38632, "ts": "2026-08-01T04:02:22Z", "hours": 6.7036, "text": "Logic & Scripting Prototype Working this was so difficult basically a TON of things needed to be changed for this to work. i had to rework the entire scripting system. i had to also think about how the system is going to work the system i landed on, basically is you can create nodes in the state machine editor, and attach scripts on those states. instead of scripts, im calling the whole package of state machine + scripts a “Logic”. i havent reflected the name everywhere else yet though, and that is probably going to take a really long time as its a major architectural shift that i didn’t plan for beforehand. i made custom nodes in the editor as you can see, a start, end and the script node. there is now a nice dropdown to select the script (a searchbar will be added later) and you can create new scripts. i fixed the code editor to actually load/save code properly. i had to redo how it saved data, so i could communicate the scripts, nodes, connections, etc all to the ScriptingSystem, which starts off at the “Start” node and steps the state once, going into the first node. This part of the code is an absolute MESS. i had a ton of bugs to fix, including state and Svelte firing state over and over again for some reason, Lua issues, dealing with coroutines, dealing with external functions which would change the state and exit the code, etc To add the script, there is now a “Add component” button which you can select the script and select the logic. The state machine handles direct to end, looping nodes, multiple handles, infinite loops going into other nodes, etc. At the end of the video, you can see that i created two states and the second state had two outputs, and the path is a 50/50 random decided by the Lua code to loop back into the first state or exit. Overall, this was really tiring and I’m glad it’s done. The amount of time thinking and debugging isn’t included in the time tracked so yeah :("}, {"post_id": 36862, "ts": "2026-07-29T06:06:34Z", "hours": 2.8403, "text": "Scripting System I added Svelte Flow and the Monaco editor Basically, I think that the system will work mainly off of state machines. Each state will have an attached script. The scripts can decide when to change states. For example, the scripting for a bee in a game could have states for wandering, eating, etc and the scripts handle only it’s own state which could make the code a little cleaner. I also tried making the script editor to look really good. I spent a bunch of time trying to add LSPs and intellisense/autocomplete and syntax and formatting but honestly I give up for now."}, {"post_id": 36780, "ts": "2026-07-29T01:39:01Z", "hours": 3.6069, "text": "Fixed Constraints Getting constraints working was super annoying. Basically, there is a problem where the engine is built around models, and you can spawn in multiple models. When models are spawned in, the parts inside are cloned including their IDs to not lose reference, but this comes with the huge issue as in the backend, the engine actually flattens this structure for more efficient processing of entities, meaning that there will be multiple entities sharing IDs, which is really bad. But creating new IDs is also a huge problem because when we reference it, the ID is not final and changes all the time on load. So instead it does <model_id>:<entity_id>, for targeting. The constraint creator lets you select two points (snapping will be added in the future) and it creates a constraint. This is later processed by the PhysicsSystem detecting the ConstraintComponent. Later there will be debug viewer for constraints. Anyway it was just a lot of annoying work."}, {"post_id": 36178, "ts": "2026-07-28T03:01:00Z", "hours": 1.4972, "text": "Opening Tabs Working There is now a flow for opening and creating tabs, now new tabs can be created and new models in the same way. Opening a tab that is already open just switches to it."}, {"post_id": 35581, "ts": "2026-07-27T03:36:46Z", "hours": 5.8286, "text": "Runtime working This took so long There was just so many things that just weren’t working well together. Especially the data loading code. I initially just made the code use and modify the gameData directly, meaning that if I stop and play again the game would not reset and would probably completely break. But cloning is so difficult. Since the gameData is pretty complicated with nested classes and data, simply JSON.stringify and parse, and even structuredClone didn’t work. I had to use a function to manually copy a lot of things which was really annoying. Another thing that was weird was that parts would only have physics if it was dictated by the parent model, which wasn’t what I wanted. Now there is a function to flatten models, since I want them to kind of just be fancy folders at the end of the day anyway. There was just generally a lot of rework to get everything working, with systems and components working now with a setup phase, and a general frame tick function for systems to process. I also had to add dirty flags to all ComponentDataEntries so other components actually notice changes by OTHER components which was so annoying :(("}, {"post_id": 32943, "ts": "2026-07-22T12:52:14Z", "hours": 3.2719, "text": "Model Thumbnails, Better Highlighting, Reactivity, Sidebar, etc The models now have a place to store a thumbnail, and on save, it autogenerates a new thumbnail. It creates a new ThreeJS scene in the background and adds all the entities to it. For now it only cares about the Transform component, so that’s why all the parts don’t have the correct colors. The face highlighting also is fixed to use ThreeJS’s Line2 so an adjustable line thickness can be used. The face edge highlights are now thicker and a lot easier to see. Reactivity is now fixed, so dragging an object in the editor updates the UI, and the other way around. In the video, you can also see the “–” when multiple objects were selected. It means they have unique values, but they can still be all updated. The system works by storing all seen components in a JS map, and then only filtering for components that appear in ALL of the selected parts. I might change that functionality later but it works for now. I also added the sidebar to the model workspace. I also did work on the ECS system and just engine code in general."}, {"post_id": 32397, "ts": "2026-07-21T15:37:04Z", "hours": 3.5475, "text": "Fixed ECS Data Storage and UI Displays ECS Data I got the UI to display the data for the ECS components. I had some weird bugs, also I messed up earlier on the code to store the data entries for the components (stores things like data type and stuff) and then now it displays on the sidebar. For now I temporarily disabled the code to handle multiple different objects that could have differing component values or different components altogether, because it was causing a bunch of problems cuz the code is not great :("}, {"post_id": 31028, "ts": "2026-07-19T02:40:47Z", "hours": 4.5597, "text": "Started Data and ECS Code I started working on the ECS system, and now the parts spawned are “entities” and they have “components” like a mesh, a transform, and a physics component. The components are queried and cached by the game engine and passed to the “systems” that actually do work with the component data of the entity. I also dealt with a stupid tab bug :((( And generally other engine code."}, {"post_id": 15172, "ts": "2026-06-24T17:28:53Z", "hours": 3.5117, "text": "Worked on Model tab and Working on Refactoring Backend & Renderer Component There’s now a model tab, also I made some more animations and things to make the app more fun to use. I’m also in the process of rebuilding the data types and completely redoing the reusable Renderer component since it was an absolute disaster before."}, {"post_id": 14600, "ts": "2026-06-23T19:23:32Z", "hours": 6.5047, "text": "Completely Revamped UI and Working On Refactoring Entire Engine I really tried making the UI look a lot nicer than the generic UI it was before, and I think it looks pretty nice. I might need to simplify some stuff, but I spent a long time trying to make the UI more welcoming and easy to use and for the UI to seem more playful in a way I guess, than the more mono font boring gray it was last time. I also have started on completely refactoring the engine. The previous data stores and data types were too limiting and I made some bad decisions early on so starting from scratch is kind of necessary"}, {"post_id": 11366, "ts": "2026-06-18T16:29:57Z", "hours": 1.5181, "text": "Added constraints, which took a while because the way I store objects just isn’t sustainable I’m going to redo the entire architechure of this app, mostly the backend because it’s just such a mess. I’ve been piling on features and the technical debt and poor early decisions are catching up to me and it’s making development slower so I’m going to start refactoring a lot of stuff. This should mean everything will be less buggy and make it faster for me to develop new features Now that I know how the app will be I can make smarter decisions"}, {"post_id": 10184, "ts": "2026-06-16T20:00:27Z", "hours": 4.2217, "text": "Reworked script system for better and easier scripting and added some basic part modification functions Basically, before you would need to type something like find(“stud”):setVelocity({10, 10, 10}) or something like that, but with metatables Metatables are kind of weird, but they basically let me return a special object from the find() function, and modify that object to override functions and add new ones. For example, you can override the metatable of custom Vector3 objects to handle addition, so you can do v1 + v2 instead of addVectors(v1, v2) and it’s a lot cleaner and straightforward. This means injecting a bunch of Lua code to set these metatables, and exposing global functions from JS to handle the metatable calls. I also added some event handling (very basic for now) but you can see in the video the part moving from me using WASD You can also see a ton of errors, and I’m trying to fix those right now. I really don’t know why they are here"}, {"post_id": 8431, "ts": "2026-06-14T00:48:37Z", "hours": 3.4253, "text": "Part sidebar shows parent/child relationships now (also had to change backend) I also got save data to serialize, but loading seems to break the other components that rely on the state I also added the cool little part add thing. I changed the font of the app too and stuff. I tried different search things but this one from shadcn-svelte seemed to work the best. I also picked the Lyra theme from shadcn-svelte"}, {"post_id": 8181, "ts": "2026-06-13T17:01:57Z", "hours": 6.7944, "text": "It’s been a while, I kind of forgot to log in the middle I reimplemented parts of the backend to support play testing and handling the state of the current game, keeping track of parts and bodies and scripts Added physics engine (Rapier), requiring keeping track of colliders and physics bodies. Right now only convex meshes for performance meaning concave colliders might be a little broken for now so I plan to add something like VHACD or a more modern alternative to split up complicated meshes into smaller convex and simplified colliders. Added Wasmoon (Lua interpreter) and CodeMirror 6 (code editor component) and some old language parser for Lua to be supported properly, this was also a challenge because Wasmoon just wants to run all the code in one go, so instead there has to be a coroutine setup where the code returns back out temporarily (with a custom wait function that utilized the coroutine function) where then my code ticks every frame to tick the code (while loop) again and also adds the delay if applicable The renderer also needed a few tweaks to get this to work properly Also something kind of weird was I couldn’t get the playTest state to update and propagate throughout the application (thats why the top bar button doesn’t work for now) and honestly I have no idea why and I spent a lot of time debugging it"}, {"post_id": 7159, "ts": "2026-06-11T23:12:48Z", "hours": 0.8367, "text": "Can now apply textures to objects with a new Texture Studio tab :) It’s still really buggy and doesn’t work on CSG objects. It also ignores the coplanar face detection I have right now for simplicity so it only works on ThreeJS primitive face groups as of right now."}, {"post_id": 6571, "ts": "2026-06-11T01:16:28Z", "hours": 2.0747, "text": "I added the framework of a UV atlas editor, and also the painting studio for the texture editor I’m working on the texture system. I’m still working on UVs. It’s honestly really complicated, I have no idea so far how to make it intuitive for users. Auto unwrapping it would not give easy to use results because most assets in this engine are going to be simple. Showing all the vertices on a single atlas also would be very overwhelming. I’m trying to figure something out. It could be determined on a face by face basis, but some faces could be super super weird due to imported meshes or weird CSG operations, which would lead to a mess of a UV unwrap I’m also going to make an editor to assemble the texture atlases by stitching together the individual smaller textures."}, {"post_id": 5862, "ts": "2026-06-09T20:15:37Z", "hours": 2.4597, "text": "Finally got the world studio to work properly, it was because I didn’t assign an ID to the spawned objects And I added the premade things in the scene also be added to the store"}, {"post_id": 5285, "ts": "2026-06-09T00:22:45Z", "hours": 1.6897, "text": "I finally got model saving to sort of work. This required revamping the backend stores to support multiple tabs, and updating the sidebar to actually use the correct tab state data."}, {"post_id": 5199, "ts": "2026-06-08T21:54:17Z", "hours": 0.5725, "text": "Moved 3D rendering code to be shared between both studios via creating a component that applies the shading and stuff and exposing the scene for the individual studios to add objects And added an isolation mode that allows the user to focus a single object or group of objects (whatever the user is selecting) and pressing i to toggle. Useful for like creating constraints and stuff more easily"}, {"post_id": 4853, "ts": "2026-06-08T11:54:31Z", "hours": 0.6908, "text": "Transform controls (now can switch to rotate and scale) And basic undo/redo system that basically just takes the ThreeJS properties and saves it and reapplies it back on undo And delete"}, {"post_id": 4609, "ts": "2026-06-07T23:55:10Z", "hours": 1.5267, "text": "Face selection (took so long) and with face selection I added constraint creation system that just creates a constraint in the center of the faces selected I had to add another face renderer, and then also refactor the stores and how I stored data to get this to work and to keep track of faces selected and stuff which took a long time"}, {"post_id": 4556, "ts": "2026-06-07T22:02:26Z", "hours": 1.1836, "text": "The CSG works really well now. Union operations now maintain materials by keeping track of the mesh IDs and then reassigning the materials afterwards manually. Also some clean up and general improvement"}, {"post_id": 4504, "ts": "2026-06-07T20:51:13Z", "hours": 0.3275, "text": "I’ve fixed the face selection code to check the dot product of the faces to make sure they are actually coplanar. I also added some cleanup functions to perform after the CSG operations to clean up geometry to make it more usable"}, {"post_id": 4494, "ts": "2026-06-07T20:31:36Z", "hours": 1.1086, "text": "Face detection and highlighting working This was pretty complicated because 3D objects are made up of triangles, but the user probably does NOT want to select triangles, but the faces themselves. So basically, I got the face the raycast hit, and then looped through all the triangles of the mesh they are hovering and got the vertex indices and got their positions and turned that into a normal and compared it with the other faces and decided if the normals were close enough"}, {"post_id": 4361, "ts": "2026-06-07T17:35:23Z", "hours": 1.2006, "text": "Added retro shader that quantizes the colors to look more like a limited color space Fixed CSG errors and fixed gizmo disappearing over and over again Added another render pass and raycast to add outline to hovered objects"}, {"post_id": 4305, "ts": "2026-06-07T15:51:36Z", "hours": 0.5503, "text": "I switched the CSG library to Manifold3D and it’s better but the meshes are a bit weird. Hopefully I’ll figure it out later. Also for some reason selection of these meshes and their transform gizmos are really difficult and buggy so I have to fix that. Also I know that there are errors I’m going to fix that now"}, {"post_id": 4280, "ts": "2026-06-07T15:18:31Z", "hours": 1.0586, "text": "CSG is being very annoying. I’m using three-bvh-csg but it’s not really what I need I think. There’s some subtraction artifacts, and most importantly, materials are not preserved I think I’m going to switch to a different library because this one isn’t really working great for me but it is pretty nice and simple"}, {"post_id": 4244, "ts": "2026-06-07T14:14:51Z", "hours": 0.9067, "text": "Added multi part select. Trying to debug why CSG operations not working I honestly don’t know what’s wrong because I followed the example code from the library but it’s not working :("}, {"post_id": 4189, "ts": "2026-06-07T12:39:07Z", "hours": 0.9372, "text": "The sidebars are now synced, but I still need to make them sync correctly to the current tab. Right now they sync exclusively to the model studio. The raycasting & selection of parts work now and I fixed the tabs to not unload and reload on each tab switch which caused data sync issues and lag and instead all tabs stay loaded."}, {"post_id": 4157, "ts": "2026-06-07T11:23:44Z", "hours": 0.7944, "text": "I made the part selected have an outline and made the gizmo work, but currently I can’t select other parts for some reason and I’ve just been debugging that"}, {"post_id": 3649, "ts": "2026-06-06T17:48:15Z", "hours": 1.8894, "text": "I started work on the “World Studio” and “Model Studio” of this game engine/fantasy console. The model studio is where you create the models that you drag into the world studio. I’ve added a gizmo and a way to place the parts and also made a more stylized rendering thing to make it feel more retro in a way."}, {"post_id": 3482, "ts": "2026-06-06T13:13:24Z", "hours": 0.41, "text": "I started the project and installed SvelteKit and added ThreeJS"}]...
|
Title: tinystudio by @ratmuds | Stardance
Devlogs Title: tinystudio by @ratmuds | Stardance
Devlogs:
I started the project and installed SvelteKit and added ThreeJS
I started work on the “World Studio” and “Model Studio” of this game engine/fantasy console. The model studio is where you create the models that you drag into the world studio. I’ve added a gizmo and a way to place the parts and also made a more stylized rendering thing to make it feel more retro in a way.
I made the part selected have an outline and made the gizmo work, but currently I can’t select other parts for some reason and I’ve just been debugging that
The sidebars are now synced, but I still need to make them sync correctly to the current tab. Right now they sync exclusively to the model studio. The raycasting & selection of parts work now and I fixed the tabs to not unload and reload on each tab switch which caused data sync issues and lag and instead all tabs stay loaded.
Added multi part select. Trying to debug why CSG operations not working I honestly don’t know what’s wrong because I followed the example code from the library but it’s not working :(
CSG is being very annoying. I’m using three-bvh-csg but it’s not really what I need I think. There’s some subtraction artifacts, and most importantly, materials are not preserved I think I’m going to switch to a different library because this one isn’t really working great for me but it is pretty nice and simple
I switched the CSG library to Manifold3D and it’s better but the meshes are a bit weird. Hopefully I’ll figure it out later. Also for some reason selection of these meshes and their transform gizmos are really difficult and buggy so I have to fix that. Also I know that there are errors I’m going to fix that now
Added retro shader that quantizes the colors to look more like a limited color space Fixed CSG errors and fixed gizmo disappearing over and over again Added another render pass and raycast to add outline to hovered objects
Face detection and highlighting working This was pretty complicated because 3D objects are made up of triangles, but the user probably does NOT want to select triangles, but the faces themselves. So basically, I got the face the raycast hit, and then looped through all the triangles of the mesh they are hovering and got the vertex indices and got their positions and turned that into a normal and compared it with the other faces and decided if the normals were close enough
I’ve fixed the face selection code to check the dot product of the faces to make sure they are actually coplanar. I also added some cleanup functions to perform after the CSG operations to clean up geometry to make it more usable
The CSG works really well now. Union operations now maintain materials by keeping track of the mesh IDs and then reassigning the materials afterwards manually. Also some clean up and general improvement
Face selection (took so long) and with face selection I added constraint creation system that just creates a constraint in the center of the faces selected I had to add another face renderer, and then also refactor the stores and how I stored data to get this to work and to keep track of faces selected and stuff which took a long time
Transform controls (now can switch to rotate and scale) And basic undo/redo system that basically just takes the ThreeJS properties and saves it and reapplies it back on undo And delete
Moved 3D rendering code to be shared between both studios via creating a component that applies the shading and stuff and exposing the scene for the individual studios to add objects And added an isolation mode that allows the user to focus a single object or group of objects (whatever the user is selecting) and pressing i to toggle. Useful for like creating constraints and stuff more easily
I finally got model saving to sort of work. This required revamping the backend stores to support multiple tabs, and updating the sidebar to actually use the correct tab state data.
Finally got the world studio to work properly, it was because I didn’t assign an ID to the spawned objects And I added the premade things in the scene also be added to the store
I added the framework of a UV atlas editor, and also the painting studio for the texture editor I’m working on the texture system. I’m still working on UVs. It’s honestly really complicated, I have no idea so far how to make it intuitive for users. Auto unwrapping it would not give easy to use results because most assets in this engine are going to be simple. Showing all the vertices on a single atlas also would be very overwhelming. I’m trying to figure something out. It could be determined on a face by face basis, but some faces could be super super weird due to imported meshes or weird CSG operations, which would lead to a mess of a UV unwrap I’m also going to make an editor to assemble the texture atlases by stitching together the individual smaller textures.
Can now apply textures to objects with a new Texture Studio tab :) It’s still really buggy and doesn’t work on CSG objects. It also ignores the coplanar face detection I have right now for simplicity so it only works on ThreeJS primitive face groups as of right now.
It’s been a while, I kind of forgot to log in the middle I reimplemented parts of the backend to support play testing and handling the state of the current game, keeping track of parts and bodies and scripts Added physics engine (Rapier), requiring keeping track of colliders and physics bodies. Right now only convex meshes for performance meaning concave colliders might be a little broken for now so I plan to add something like VHACD or a more modern alternative to split up complicated meshes into smaller convex and simplified colliders. Added Wasmoon (Lua interpreter) and CodeMirror 6 (code editor component) and some old language parser for Lua to be supported properly, this was also a challenge because Wasmoon just wants to run all the code in one go, so instead there has to be a coroutine setup where the code returns back out temporarily (with a custom wait function that utilized the coroutine function) where then my code ticks every frame to tick the code (while loop) again and also adds the delay if applicable The renderer also needed a few tweaks to get this to work properly Also something kind of weird was I couldn’t get the playTest state to update and propagate throughout the application (thats why the top bar button doesn’t work for now) and honestly I have no idea why and I spent a lot of time debugging it
Part sidebar shows parent/child relationships now (also had to change backend) I also got save data to serialize, but loading seems to break the other components that rely on the state I also added the cool little part add thing. I changed the font of the app too and stuff. I tried different search things but this one from shadcn-svelte seemed to work the best. I also picked the Lyra theme from shadcn-svelte
Reworked script system for better and easier scripting and added some basic part modification functions Basically, before you would need to type something like find(“stud”):setVelocity({10, 10, 10}) or something like that, but with metatables Metatables are kind of weird, but they basically let me return a special object from the find() function, and modify that object to override functions and add new ones. For example, you can override the metatable of custom Vector3 objects to handle addition, so you can do v1 + v2 instead of addVectors(v1, v2) and it’s a lot cleaner and straightforward. This means injecting a bunch of Lua code to set these metatables, and exposing global functions from JS to handle the metatable calls. I also added some event handling (very basic for now) but you can see in the video the part moving from me using WASD You can also see a ton of errors, and I’m trying to fix those right now. I really don’t know why they are here
Added constraints, which took a while because the way I store objects just isn’t sustainable I’m going to redo the entire architechure of this app, mostly the backend because it’s just such a mess. I’ve been piling on features and the technical debt and poor early decisions are catching up to me and it’s making development slower so I’m going to start refactoring a lot of stuff. This should mean everything will be less buggy and make it faster for me to develop new features Now that I know how the app will be I can make smarter decisions
Completely Revamped UI and Working On Refactoring Entire Engine I really tried making the UI look a lot nicer than the generic UI it was before, and I think it looks pretty nice. I might need to simplify some stuff, but I spent a long time trying to make the UI more welcoming and easy to use and for the UI to seem more playful in a way I guess, than the more mono font boring gray it was last time. I also have started on completely refactoring the engine. The previous data stores and data types were too limiting and I made some bad decisions early on so starting from scratch is kind of necessary
Worked on Model tab and Working on Refactoring Backend & Renderer Component There’s now a model tab, also I made some more animations and things to make the app more fun to use. I’m also in the process of rebuilding the data types and completely redoing the reusable Renderer component since it was an absolute disaster before.
Started Data and ECS Code I started working on the ECS system, and now the parts spawned are “entities” and they have “components” like a mesh, a transform, and a physics component. The components are queried and cached by the game engine and passed to the “systems” that actually do work with the component data of the entity. I also dealt with a stupid tab bug :((( And generally other engine code.
Fixed ECS Data Storage and UI Displays ECS Data I got the UI to display the data for the ECS components. I had some weird bugs, also I messed up earlier on the code to store the data entries for the components (stores things like data type and stuff) and then now it displays on the sidebar. For now I temporarily disabled the code to handle multiple different objects that could have differing component values or different components altogether, because it was causing a bunch of problems cuz the code is not great :(
Model Thumbnails, Better Highlighting, Reactivity, Sidebar, etc The models now have a place to store a thumbnail, and on save, it autogenerates a new thumbnail. It creates a new ThreeJS scene in the background and adds all the entities to it. For now it only cares about the Transform component, so that’s why all the parts don’t have the correct colors. The face highlighting also is fixed to use ThreeJS’s Line2 so an adjustable line thickness can be used. The face edge highlights are now thicker and a lot easier to see. Reactivity is now fixed, so dragging an object in the editor updates the UI, and the other way around. In the video, you can also see the “–” when multiple objects were selected. It means they have unique values, but they can still be all updated. The system works by storing all seen components in a JS map, and then only filtering for components that appear in ALL of the selected parts. I might change that functionality later but it works for now. I also added the sidebar to the model workspace. I also did work on the ECS system and just engine code in general.
Runtime working This took so long There was just so many things that just weren’t working well together. Especially the data loading code. I initially just made the code use and modify the gameData directly, meaning that if I stop and play again the game would not reset and would probably completely break. But cloning is so difficult. Since the gameData is pretty complicated with nested classes and data, simply JSON.stringify and parse, and even structuredClone didn’t work. I had to use a function to manually copy a lot of things which was really annoying. Another thing that was weird was that parts would only have physics if it was dictated by the parent model, which wasn’t what I wanted. Now there is a function to flatten models, since I want them to kind of just be fancy folders at the end of the day anyway. There was just generally a lot of rework to get everything working, with systems and components working now with a setup phase, and a general frame tick function for systems to process. I also had to add dirty flags to all ComponentDataEntries so other components actually notice changes by OTHER components which was so annoying :((
Opening Tabs Working There is now a flow for opening and creating tabs, now new tabs can be created and new models in the same way. Opening a tab that is already open just switches to it.
Fixed Constraints Getting constraints working was super annoying. Basically, there is a problem where the engine is built around models, and you can spawn in multiple models. When models are spawned in, the parts inside are cloned including their IDs to not lose reference, but this comes with the huge issue as in the backend, the engine actually flattens this structure for more efficient processing of entities, meaning that there will be multiple entities sharing IDs, which is really bad. But creating new IDs is also a huge problem because when we reference it, the ID is not final and changes all the time on load. So instead it does <model_id>:<entity_id>, for targeting. The constraint creator lets you select two points (snapping will be added in the future) and it creates a constraint. This is later processed by the PhysicsSystem detecting the ConstraintComponent. Later there will be debug viewer for constraints. Anyway it was just a lot of annoying work.
Scripting System I added Svelte Flow and the Monaco editor Basically, I think that the system will work mainly off of state machines. Each state will have an attached script. The scripts can decide when to change states. For example, the scripting for a bee in a game could have states for wandering, eating, etc and the scripts handle only it’s own state which could make the code a little cleaner. I also tried making the script editor to look really good. I spent a bunch of time trying to add LSPs and intellisense/autocomplete and syntax and formatting but honestly I give up for now.
Logic & Scripting Prototype Working this was so difficult basically a TON of things needed to be changed for this to work. i had to rework the entire scripting system. i had to also think about how the system is going to work the system i landed on, basically is you can create nodes in the state machine editor, and attach scripts on those states. instead of scripts, im calling the whole package of state machine + scripts a “Logic”. i havent reflected the name everywhere else yet though, and that is probably going to take a really long time as its a major architectural shift that i didn’t plan for beforehand. i made custom nodes in the editor as you can see, a start, end and the script node. there is now a nice dropdown to select the script (a searchbar will be added later) and you can create new scripts. i fixed the code editor to actually load/save code properly. i had to redo how it saved data, so i could communicate the scripts, nodes, connections, etc all to the ScriptingSystem, which starts off at the “Start” node and steps the state once, going into the first node. This part of the code is an absolute MESS. i had a ton of bugs to fix, including state and Svelte firing state over and over again for some reason, Lua issues, dealing with coroutines, dealing with external functions which would change the state and exit the code, etc To add the script, there is now a “Add component” button which you can select the script and select the logic. The state machine handles direct to end, looping nodes, multiple handles, infinite loops going into other nodes, etc. At the end of the video, you can see that i created two states and the second state had two outputs, and the path is a 50/50 random decided by the Lua code to loop back into the first state or exit. Overall, this was really tiring and I’m glad it’s done. The amount of time thinking and debugging isn’t included in the time tracked so yeah :(
Scripting System Affecting the Game Scripts now can change parts. There are getEntityById and getEntityByName functions now, and a bunch of metatables and stuff to get it working. Now you can query for an entity, and then modify it’s component data with metatables. For example to access or set the position of a part, you can do part.transform.position . The transform finds the transform component and position finds the data entry of position inside the component. This is all done on runtime, with component queries happening dynamically so no manual programming for new components is required. This may affect performance a little bit though. There is a custom Vector3 object now too. Error messages are also now a little less vague but still pretty confusing. I don’t know how to solve that.
Engine Events System & Starting Significant Scheduler Engine Revamp So I made the events system. It works by a class on the JavaScript (engine) layer, and is attached to all entities. There are a couple of functions: on: fires on event once: fires on event only once off: clears event callback clear: clears all callbacks Other entities are allowed to access another entitys events, being able to listen or even emit. A game architecture could work like having “manager” entities at the top level of the game which hold different events. For example, an “InventoryManager” entity could have an event for when an item is picked up, it itself can listen to it, as well as any other things that may find it useful. I’ve also cleaned up the code, and now there is a “game” reference. Eventually, it will have access to more things but as of right now you can access an “inputManager” which holds functions and events for user inputs. It works by attaching a metatable to it and exposing global hidden functions to call to my JavaScript engine code. But a huge problem showed up, the way I was running scripts. Before I thought just a simple coroutine running with a timeout for delays was just fine, but I was super wrong. If a callback from an event is fired and the function wants to do something, like call an external function or wait, it completely breaks. Why? I didn’t know and it took me a lot of time to find out. It’s because the callbacks aren’t a coroutine too. This is when I realized why something like Roblox has a full blown scheduler. So I’ve been planning and starting on the scheduler engine. It has to handle a lot of stuff, including managing when scripts run, including WHEN they want to run (next frame, in 3 seconds, etc) and track if they are causing issues by keeping track of their budget. Everything will need to be in a coroutine coordinated by the scheduler. Including callbacks from events too. It’s going to be pretty complicated I think, requiring a rewrite of the entire scripting system. I also just encountered a lot of bugs. And I fixed the errors from Wasmoon including the entire JS stacktrace for no reason too.
Added CSG Operations I added CSG operations, using the Manifold library. It makes it a bit simpler, making watertight meshes and giving back the geometry for me to make a custom mesh in ThreeJS. The reason it took so long was because I had to add cascading changes to a lot of the data structures to support this custom geometry. I also added a little loading thing at the bottom right for CSG operations. As of right now Union and Subtract are supported. Materials are not preserved as of right now, due to the simplistic way I’m handling materials but when I finish building out the materials system I basically just need to get the triangle references out of Manifold and relink them to the correct materials.
Script Scheduling Engine Revamp The entire scripting engine has been redone. It was a lot of cascading changes again, with now each “Scope” having it’s own scheduler. A “scope” is a single logic component that gets attached to entities. How it works now The scheduler handles the Lua engine stuff. It wraps the main script around into a coroutine automatically now, and extracts the coroutine into a thread. It then creates a scheduler job object, pending into the queue. The scheduler then gets stepped, and initializes the jobs into the main queue and steps them. By stepping them, it resumes the coroutine until the script either ends or manually pauses the coroutine itself (usually done with a predefined “wait” function). I think this is very similar to how Roblox handles it’s script scheduler, although Roblox’s is of course much more complicated. Handling the events and callbacks was much more difficult though. Each of those ALSO need it’s own thread to run to access coroutine related functions and to access data (otherwise very weird errors will happen, like calling code over a boundary or something). This all gets added as a scheduler job, and that allows us to record telemetry data. Eventually, threads can be assigned a “budget”, where they can be stalled if they consume more than the allotted time or even do things like infinite loop detection, etc. There was just generally tedious work that was annoying.
Scope Leaking Bug Fixed, Mouse Input, Scripting Improvements, ECS & Events Scripting Improvements and Fixes, Cameras There was an issue where I used a single variable to hold the last used scope before and forgot to change it to support multiple scripts. That is fixed now and scopes aren’t mixed weirdly anymore. There is now mouse functions and events Events can be called like part.physics:on("touched") instead of part:on("Physics.touched") for clarity Cameras are added, game wide function to change active camera, and camera system that updates the camera things bidirectionally supporting multiple camera types.
Finalized Project I added a projects manager and generally just cleaned up the repository. Then created three basic demos, like a basic moon landing game, a very basic parkour game, and a physics sandbox. And finished the README
Redid UI styling to feel more blocky I rewrote the UI to look less bubbly I guess, now it looks more like lego and stuff and more space for work instead of tons of padding
Ships:
I made a game engine that I tried to make the UI look nice and feel accessible. I wanted to design it around what I liked about other game engines like Roblox Studio and Godot, and try and make it as easy as possible to make prototypes of games quickly. The decision to not let any 3D imports was intentional to keep the engine style of more retro, as you can see by the rendering style. Instead, you can fuse and subtract shapes together with CSG. The flow editor state machines fully work, and was inspired by Playmaker. The scripting system is a little bit janky sometimes but it somewhat works. The scripting system has a basic scheduler and profiler similar to Roblox’s Luau scheduler but without the complexity of CPU budget. The engine uses a custom ECS that uses Svelte Runes to provide reactivity to the engine sidebars and editor. There is also a basic UI system, and physics. There are three demo projects to try out too....
|
1793350232.7123666
|
1793436632.7123666
|
|
62497
|
the car mechanic on streamlit by @senthilnathan_ar the car mechanic on streamlit by @senthilnathan_arun | Stardance...
|
senthilnathan_arun
|
0
|
3.23
|
0
|
[]
|
[{"post_id": 69628, "ts": "202 [{"post_id": 69628, "ts": "2026-09-17T13:18:34Z", "hours": 3.2347, "text": "i first did the columns and ui placement but i forgot to dev log it , now i completed the buying customer ai with the use of disabled st.buttons .by the way , this is 2 devlogs in one"}]...
|
Title: the car mechanic on streamlit by @senthilna Title: the car mechanic on streamlit by @senthilnathan_arun | Stardance
Devlogs:
i first did the columns and ui placement but i forgot to dev log it , now i completed the buying customer ai with the use of disabled st.buttons .by the way , this is 2 devlogs in one...
|
1793044458.1091561
|
1793649258.1091561
|
|
63088
|
Neon_OS by @AnkitZu02281 | Stardance
|
AnkitZu02281
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T04:35:32Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A lightweight, retro cyberpunk-themed desktop environment that runs entirely in your web browser. Built using just vanilla HTML, CSS, and JavaScript with zero external frameworks or dependencies I felt the draggable window part quite difficult and liked the way it turned out including the themes", "repo": "https://github.com/ankitdey2682010-a11y/Neon_OS", "demo": "https://ankitdey2682010-a11y.github.io/Neon_OS/"}]...
|
[{"post_id": 69631, "ts": "202 [{"post_id": 69631, "ts": "2026-09-17T13:23:02Z", "hours": 0.5367, "text": "Made it ready to ship with adding theme and all possible things to include from my side"}, {"post_id": 69609, "ts": "2026-09-17T12:39:51Z", "hours": 0.4772, "text": "working on the core logic and draggable window"}, {"post_id": 69601, "ts": "2026-09-17T12:10:50Z", "hours": 0.9844, "text": "main UI and colours"}]...
|
Title: Neon_OS by @AnkitZu02281 | Stardance
Devlo Title: Neon_OS by @AnkitZu02281 | Stardance
Devlogs:
main UI and colours
working on the core logic and draggable window
Made it ready to ship with adding theme and all possible things to include from my side
Ships:
A lightweight, retro cyberpunk-themed desktop environment that runs entirely in your web browser. Built using just vanilla HTML, CSS, and JavaScript with zero external frameworks or dependencies I felt the draggable window part quite difficult and liked the way it turned out including the themes...
|
1793210204.9968383
|
1793296604.9968383
|
|
50472
|
Flight Tracker - ESP32 by @muminmohamed | Stardanc Flight Tracker - ESP32 by @muminmohamed | Stardance...
|
muminmohamed
|
0
|
0.36
|
0
|
[]
|
[{"post_id": 69640, "ts": "202 [{"post_id": 69640, "ts": "2026-09-17T13:57:17Z", "hours": 0.3608, "text": "Flight Tracker Day 01 So I finally started this project. The basic idea is that an ESP32 connects to an open source flight radar network, collects information about the nearest flight to my current location, and display it on either an OLED screen like the one I’ve used in Cirkit OR I might switch it out for an LCD screen later. Right now I didnt have a ton of time soo I just did the basic wiring - This is my first time using an ESP32 so I’m learning as I go. Personally, I’m not a HUGE fan of the Cirkit interface, as someone who majorly uses Tinkercad. But It’s not too bad tbh."}]...
|
Title: Flight Tracker - ESP32 by @muminmohamed | S Title: Flight Tracker - ESP32 by @muminmohamed | Stardance
Devlogs:
Flight Tracker Day 01 So I finally started this project. The basic idea is that an ESP32 connects to an open source flight radar network, collects information about the nearest flight to my current location, and display it on either an OLED screen like the one I’ve used in Cirkit OR I might switch it out for an LCD screen later. Right now I didnt have a ton of time soo I just did the basic wiring - This is my first time using an ESP32 so I’m learning as I go. Personally, I’m not a HUGE fan of the Cirkit interface, as someone who majorly uses Tinkercad. But It’s not too bad tbh....
|
1793339785.4043865
|
1793944585.4043865
|
|
59728
|
vn_folks by @lanhoamanh | Stardance
|
lanhoamanh
|
1
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T15:03:13Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made VNfolks, a small website about Vietnamese folklore, traditional beliefs, and the stories I grew up hearing about. I wanted to present these topics in English and look at them from both a cultural and scientific perspective .The hardest part was probably deciding how to present these stories without making them feel like I was trying to prove that supernatural things are real. I also had to spend quite a lot of time researching the background of different beliefs and figuring out how to turn all of that information into something simple and easy to read. I’m most proud of the fact that I actually finished and shipped the website. It started as an idea based on my own interests, and I ended up turning it into something that other people can explore too .If you want to test it, you can start from the Home page and use the navigation to explore the different topics and stories. The website is mainly designed for people who are curious about Vietnamese culture, folklore, or just enjoy learning about strange and mysterious stories.", "repo": "https://github.com/lanhoamanh/vn_folks", "demo": "https://vnfolks.vercel.app/"}]...
|
[{"post_id": 69647, "ts": "202 [{"post_id": 69647, "ts": "2026-09-17T14:16:30Z", "hours": 6.6447, "text": "I’ve finally added the data and JS to the website—yes, it’s complete."}, {"post_id": 67924, "ts": "2026-09-14T07:24:46Z", "hours": 4.1164, "text": "I have finished the website’s interface. I used AI to generate illustrations because finding actual photos was difficult given the spiritual and folklore-related theme; however, I still make an effort to include human-created illustrations in each article to help users visualize the content better. I will proceed with the JavaScript implementation and provide updates later."}, {"post_id": 64833, "ts": "2026-09-09T14:53:00Z", "hours": 12.1892, "text": "I am currently designing the interface; it is not yet finished, so I will continue working on it."}, {"post_id": 64139, "ts": "2026-09-08T10:32:50Z", "hours": 8.3653, "text": "I am building a website that compiles information on spiritual and folk traditions in Vietnam. I have finished the HTML structure and am currently developing ideas for the interface; I will provide updates later."}]...
|
Title: vn_folks by @lanhoamanh | Stardance
Devlog Title: vn_folks by @lanhoamanh | Stardance
Devlogs:
I am building a website that compiles information on spiritual and folk traditions in Vietnam. I have finished the HTML structure and am currently developing ideas for the interface; I will provide updates later.
I am currently designing the interface; it is not yet finished, so I will continue working on it.
I have finished the website’s interface. I used AI to generate illustrations because finding actual photos was difficult given the spiritual and folklore-related theme; however, I still make an effort to include human-created illustrations in each article to help users visualize the content better. I will proceed with the JavaScript implementation and provide updates later.
I’ve finally added the data and JS to the website—yes, it’s complete.
Ships:
I made VNfolks, a small website about Vietnamese folklore, traditional beliefs, and the stories I grew up hearing about. I wanted to present these topics in English and look at them from both a cultural and scientific perspective .The hardest part was probably deciding how to present these stories without making them feel like I was trying to prove that supernatural things are real. I also had to spend quite a lot of time researching the background of different beliefs and figuring out how to turn all of that information into something simple and easy to read. I’m most proud of the fact that I actually finished and shipped the website. It started as an idea based on my own interests, and I ended up turning it into something that other people can explore too .If you want to test it, you can start from the Home page and use the navigation to explore the different topics and stories. The website is mainly designed for people who are curious about Vietnamese culture, folklore, or just enjoy learning about strange and mysterious stories....
|
1793008366.3432298
|
1793872366.3432298
|
|
63027
|
Obstacle dodging game by @cosmic79conqueror | Star Obstacle dodging game by @cosmic79conqueror | Stardance...
|
cosmic79conqueror
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T14:51:19Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made a simple yet addictive obstacle dodging game. It is simple to play yet attractive. To start just get the html file from source and open it in browser. Hope You enjoy the game.", "repo": "https://github.com/cosmic79conqueror-coder/car-game-", "demo": "https://cosmic79conqueror-coder.github.io/car-game-/"}]...
|
[{"post_id": 69654, "ts": "202 [{"post_id": 69654, "ts": "2026-09-17T14:43:38Z", "hours": 0.84, "text": "#devlog2 the simple dodging game with a difficulty selector and on escape a remuse and exit screen appears"}, {"post_id": 69565, "ts": "2026-09-17T10:08:22Z", "hours": 0.5194, "text": "#DEVLOG1 so basically what i am creating is obstacle avoiding game and this is just the basic functioning version of it where you can control the car via arrow keys and collect points."}]...
|
Title: Obstacle dodging game by @cosmic79conqueror Title: Obstacle dodging game by @cosmic79conqueror | Stardance
Devlogs:
#DEVLOG1 so basically what i am creating is obstacle avoiding game and this is just the basic functioning version of it where you can control the car via arrow keys and collect points.
#devlog2 the simple dodging game with a difficulty selector and on escape a remuse and exit screen appears
Ships:
I have made a simple yet addictive obstacle dodging game. It is simple to play yet attractive. To start just get the html file from source and open it in browser. Hope You enjoy the game....
|
1793210181.2740028
|
1793296581.2740028
|
|
54137
|
Telegram assistent bot by @kdenis | Stardance
|
kdenis
|
1
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T14:27:28Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I built a simple Telegram bot that helps users track their daily activities (like sleep, workouts, or study time) and generates visual weekly charts using matplotlib to track progress over time. What was challenging? The most challenging part was understanding how to implement multi-step input flows using conversation handlers (like chaining prompts for logging data) and structuring the memory logic to track user activities dynamically over a week without needing a heavy database setup. What are you proud of? I am proud that I successfully learned Python from scratch while building this project! I used AI purely as a tutor—to explain concepts and guide me—rather than writing the code for me, meaning I wrote and understood every line myself. I am also proud to have mastered building fully functional Telegram bots, dynamic chart rendering, and asynchronous handling. What should people know so they can test your project? Simply open Telegram, search for @MySimpleAssistentBot (or use the link https://t.me/MySimpleAssistentBot ( https://t.me/MySimpleAssistentBot?utm_source=gemini )), and hit /start . You can use /log to record activities, /getstatistic to view your weekly graph, and /help for a list of all commands.", "repo": "https://github.com/deniska-design/telegram-bot", "demo": "https://t.me/MySimpleAssistentBot"}]...
|
[{"post_id": 69656, "ts": "202 [{"post_id": 69656, "ts": "2026-09-17T14:50:21Z", "hours": 7.7464, "text": "Devlog #4: Bot Architecture Cleanup, Persistence & Statistical Charts Hey everyone! Here’s an update on what I’ve been working on for my project over the past few days. 1. Weekly Activity Charts & Statistics The biggest new feature is visual weekly statistics! Now users can see a chart/graph of their activity over the course of the week. The Challenge: Storing data per user, per specific activity, and across each day of the week. The Solution: Kept it clean and simple using user_data . Persistence: Added persistent storage so data isn’t lost on restart. Honestly, I was mind-blown by how powerful Python persistence is—enabling this took literally just a couple of lines of code! 2. Refactoring & Modularizing Code I decided it was time to break up my codebase into multiple modules/files: Separation of Concerns: Initially, my architecture felt a bit messy—files knew too much about each other’s internal logic and were tightly coupled. I refactored the project so that each file and module is more autonomous and encapsulated. Troubleshooting: Splitting the code broke a few things at first, but after a bit of debugging, everything is working smoothly now. 3. User Experience & Input Validation I made several quality-of-life improvements to make the bot feel much more robust: Daily Log Reminders: Added a daily reminder prompting users to log their data for the day. (Note: Users just need to run /start once to initialize reminders and resets). Strict Input Validation: Added input filters. If a step requires a number, invalid text is rejected; if it asks to pick an activity, custom inputs are blocked. Python vs C++ appreciation: Coming from a C++ background, it constantly amazes me how complex user interactions and data handling can be written in just a few lines of Python! What’s Next? Writing a solid README.md Submitting the project!"}, {"post_id": 60747, "ts": "2026-09-03T09:55:40Z", "hours": 3.9458, "text": "Devlog #3: Changes In this update, I focused on refining the user metrics and implementing the automated weekly reset mechanism. Metric Adjustments: Removed water intake tracking from the list of monitored metrics. Simply put, I personally don’t track my daily water intake, so I decided to streamline the bot’s focus. Automated Weekly Reset: Spent most of my development time implementing a scheduled automated reset system that triggers every Saturday at 12:00 PM . While the underlying logic isn’t overly complex, working through it while learning Python took more time than expected. As shown in the screenshot, where test data entered before 11:31 AM was automatically cleared upon trigger. Learnings Logging ( logger.info ): Discovered how extremely valuable logger.info is for debugging scheduled jobs and tracking state transitions. Without proper logging, diagnosing automated execution bugs would have been significantly harder. Next Steps End-of-Week Summary Reporting: Implement logic to show results right before the automated reset occurs. Weekly Analytics & Graphs: Add visual statistics showing daily progress over the past week"}, {"post_id": 56574, "ts": "2026-08-28T11:53:37Z", "hours": 4.8633, "text": "DevLog #2: Switching Libraries Initially, I started building this bot using another library. However, I decided to rewrite the codebase using python-telegram-bot Why? python-telegram-bot is much more practical and scalable for complex, multi-step projects. Since I plan to build bigger features in the future, I figured it was best to learn and adopt a solid framework right now. I spent about an hour migrating my previous logic to PTB, and it was definitely worth it! New Features I added core bot commands and integrated custom reply keyboards: /help : Shows available commands. /log : Prompts you to pick an activity via a custom reply keyboard and log your stats. /analytic : Allows you to select an activity and view your current recorded progress. The trickiest part: was figuring out how to handle sequential user inputs : First function: Catches the initial command (e.g., /log ). Second function: Receives the chosen activity (e.g., Sport ), asks a follow-up question (e.g., “How long have you been doing this?” ) Third function: Takes the entered number/value and saves it to the selected activity state. fix-it list: Custom Prompts per Activity: Currently, selecting “Water” asks “How long have you been doing this?” instead of “How much water did you drink?” . I need to customize questions based on the activity type. Data Accumulation: Right now, logging a value overwrites context.user_data[activity] instead of adding to it. I will fix this so values accumulate properly over time. Weekly Reset: I need to implement an automated mechanism to reset tracking data every Saturday. Since fixing these remaining issues won’t take too much time, I’ll soon be ready to add new features. So let me know if you got any ideas in the comments below"}, {"post_id": 54384, "ts": "2026-08-25T11:25:35Z", "hours": 1.6775, "text": "DevLog #1: Learning Python Through Practice This is my first Python project. Instead of just memorizing syntax from tutorials, I decided to learn the language through hands-on practice. To test this approach, I’m building a simple Telegram Bot designed to track daily health habits. The Core Concept The bot will allow users to quickly log their daily metrics: Sleep duration Water intake Physical activity / workouts It stores this data and, upon clicking a button, generates a weekly summary analysis to track progress. Current Progress So far, I have: Created and structured the GitHub repository. Added essential initial files ( .gitignore , dependencies, configuration). Developed a basic, functional Telegram bot prototype. The Experiment This project isn’t meant to be a full-scale commercial application; it’s a personal challenge: Can I effectively master Python by building functional, real-world projects from scratch?"}]...
|
Title: Telegram assistent bot by @kdenis | Stardan Title: Telegram assistent bot by @kdenis | Stardance
Devlogs:
DevLog #1: Learning Python Through Practice This is my first Python project. Instead of just memorizing syntax from tutorials, I decided to learn the language through hands-on practice. To test this approach, I’m building a simple Telegram Bot designed to track daily health habits. The Core Concept The bot will allow users to quickly log their daily metrics: Sleep duration Water intake Physical activity / workouts It stores this data and, upon clicking a button, generates a weekly summary analysis to track progress. Current Progress So far, I have: Created and structured the GitHub repository. Added essential initial files ( .gitignore , dependencies, configuration). Developed a basic, functional Telegram bot prototype. The Experiment This project isn’t meant to be a full-scale commercial application; it’s a personal challenge: Can I effectively master Python by building functional, real-world projects from scratch?
DevLog #2: Switching Libraries Initially, I started building this bot using another library. However, I decided to rewrite the codebase using python-telegram-bot Why? python-telegram-bot is much more practical and scalable for complex, multi-step projects. Since I plan to build bigger features in the future, I figured it was best to learn and adopt a solid framework right now. I spent about an hour migrating my previous logic to PTB, and it was definitely worth it! New Features I added core bot commands and integrated custom reply keyboards: /help : Shows available commands. /log : Prompts you to pick an activity via a custom reply keyboard and log your stats. /analytic : Allows you to select an activity and view your current recorded progress. The trickiest part: was figuring out how to handle sequential user inputs : First function: Catches the initial command (e.g., /log ). Second function: Receives the chosen activity (e.g., Sport ), asks a follow-up question (e.g., “How long have you been doing this?” ) Third function: Takes the entered number/value and saves it to the selected activity state. fix-it list: Custom Prompts per Activity: Currently, selecting “Water” asks “How long have you been doing this?” instead of “How much water did you drink?” . I need to customize questions based on the activity type. Data Accumulation: Right now, logging a value overwrites context.user_data[activity] instead of adding to it. I will fix this so values accumulate properly over time. Weekly Reset: I need to implement an automated mechanism to reset tracking data every Saturday. Since fixing these remaining issues won’t take too much time, I’ll soon be ready to add new features. So let me know if you got any ideas in the comments below
Devlog #3: Changes In this update, I focused on refining the user metrics and implementing the automated weekly reset mechanism. Metric Adjustments: Removed water intake tracking from the list of monitored metrics. Simply put, I personally don’t track my daily water intake, so I decided to streamline the bot’s focus. Automated Weekly Reset: Spent most of my development time implementing a scheduled automated reset system that triggers every Saturday at 12:00 PM . While the underlying logic isn’t overly complex, working through it while learning Python took more time than expected. As shown in the screenshot, where test data entered before 11:31 AM was automatically cleared upon trigger. Learnings Logging ( logger.info ): Discovered how extremely valuable logger.info is for debugging scheduled jobs and tracking state transitions. Without proper logging, diagnosing automated execution bugs would have been significantly harder. Next Steps End-of-Week Summary Reporting: Implement logic to show results right before the automated reset occurs. Weekly Analytics & Graphs: Add visual statistics showing daily progress over the past week
Devlog #4: Bot Architecture Cleanup, Persistence & Statistical Charts Hey everyone! Here’s an update on what I’ve been working on for my project over the past few days. 1. Weekly Activity Charts & Statistics The biggest new feature is visual weekly statistics! Now users can see a chart/graph of their activity over the course of the week. The Challenge: Storing data per user, per specific activity, and across each day of the week. The Solution: Kept it clean and simple using user_data . Persistence: Added persistent storage so data isn’t lost on restart. Honestly, I was mind-blown by how powerful Python persistence is—enabling this took literally just a couple of lines of code! 2. Refactoring & Modularizing Code I decided it was time to break up my codebase into multiple modules/files: Separation of Concerns: Initially, my architecture felt a bit messy—files knew too much about each other’s internal logic and were tightly coupled. I refactored the project so that each file and module is more autonomous and encapsulated. Troubleshooting: Splitting the code broke a few things at first, but after a bit of debugging, everything is working smoothly now. 3. User Experience & Input Validation I made several quality-of-life improvements to make the bot feel much more robust: Daily Log Reminders: Added a daily reminder prompting users to log their data for the day. (Note: Users just need to run /start once to initialize reminders and resets). Strict Input Validation: Added input filters. If a step requires a number, invalid text is rejected; if it asks to pick an activity, custom inputs are blocked. Python vs C++ appreciation: Coming from a C++ background, it constantly amazes me how complex user interactions and data handling can be written in just a few lines of Python! What’s Next? Writing a solid README.md Submitting the project!
Ships:
What did you make? I built a simple Telegram bot that helps users track their daily activities (like sleep, workouts, or study time) and generates visual weekly charts using matplotlib to track progress over time. What was challenging? The most challenging part was understanding how to implement multi-step input flows using conversation handlers (like chaining prompts for logging data) and structuring the memory logic to track user activities dynamically over a week without needing a heavy database setup. What are you proud of? I am proud that I successfully learned Python from scratch while building this project! I used AI purely as a tutor—to explain concepts and guide me—rather than writing the code for me, meaning I wrote and understood every line myself. I am also proud to have mastered building fully functional Telegram bots, dynamic chart rendering, and asynchronous handling. What should people know so they can test your project? Simply open Telegram, search for @MySimpleAssistentBot (or use the link https://t.me/MySimpleAssistentBot ( https://t.me/MySimpleAssistentBot?utm_source=gemini )), and hit /start . You can use /log to record activities, /getstatistic to view your weekly graph, and /help for a list of all commands....
|
1793350659.4368124
|
1793437059.4368124
|
|
62498
|
Flower Jet by @raj77502k | Stardance
|
raj77502k
|
0
|
5.12
|
0
|
[]
|
[{"post_id": 69661, "ts": "202 [{"post_id": 69661, "ts": "2026-09-17T14:58:47Z", "hours": 2.9669, "text": "I made a SCRAM Jet like Jet"}, {"post_id": 68668, "ts": "2026-09-15T14:33:24Z", "hours": 2.1514, "text": "I am designing a MagnetoHydroDynamic Supersonic Combustion RAM Jet"}]...
|
Title: Flower Jet by @raj77502k | Stardance
Devlo Title: Flower Jet by @raj77502k | Stardance
Devlogs:
I am designing a MagnetoHydroDynamic Supersonic Combustion RAM Jet
I made a SCRAM Jet like Jet...
|
1793044458.9850488
|
1793649258.9850488
|
|
58180
|
SSwipy-Movie rating website by @mohithkumar | Star SSwipy-Movie rating website by @mohithkumar | Stardance...
|
mohithkumar
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T15:53:53Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "SSwipy-Movie rating website, The website was originally designed in Figma and used AI to convert into CSS. Since API for movie data cost money (which i couldn’t afford) so I used AI to get me a list of 50 movies. This Website main focus and inspiration was dating apps, I thought why not swipe and rate movies the same way we match couples, Thank for stardance for providing me this opportunity to present this to u.", "repo": "https://github.com/mohithkumar-kry/Sswipt", "demo": "https://mohithkumar-kry.github.io/Sswipt/"}]...
|
[{"post_id": 69676, "ts": "202 [{"post_id": 69676, "ts": "2026-09-17T15:44:55Z", "hours": 3.4367, "text": "Fixed some bugs"}, {"post_id": 64917, "ts": "2026-09-09T17:09:06Z", "hours": 0.3358, "text": "Sswipy , The website where u rate movies with swipe features. Actually the website is completed in another pc where hackatime isn’t installed, so it shows only 20 mins has been recorded but the website itself took me 4+ hr to create. I used AI to create 50+ movies name and rating for each one , i even used AI to create a custom photo card for each movie card. I first designed the website in figma which took 1 + hr as i am not that good in design. I am honestly shocked if u managed to read all the message, as myself i consider the above passage as yapping. Finally do try the website for urself!"}]...
|
Title: SSwipy-Movie rating website by @mohithkumar Title: SSwipy-Movie rating website by @mohithkumar | Stardance
Devlogs:
Sswipy , The website where u rate movies with swipe features. Actually the website is completed in another pc where hackatime isn’t installed, so it shows only 20 mins has been recorded but the website itself took me 4+ hr to create. I used AI to create 50+ movies name and rating for each one , i even used AI to create a custom photo card for each movie card. I first designed the website in figma which took 1 + hr as i am not that good in design. I am honestly shocked if u managed to read all the message, as myself i consider the above passage as yapping. Finally do try the website for urself!
Fixed some bugs
Ships:
SSwipy-Movie rating website, The website was originally designed in Figma and used AI to convert into CSS. Since API for movie data cost money (which i couldn’t afford) so I used AI to get me a list of 50 movies. This Website main focus and inspiration was dating apps, I thought why not swipe and rate movies the same way we match couples, Thank for stardance for providing me this opportunity to present this to u....
|
1793350369.06003
|
1793436769.06003
|
|
4149
|
Custom PX4 build by @olivercclarke1714 | Stardance
|
olivercclarke1714
|
0
|
7.29
|
0
|
[]
|
[{"post_id": 6968, "ts": "2026 [{"post_id": 6968, "ts": "2026-06-11T18:03:29Z", "hours": 7.2889, "text": "Focused on implementing the state machine that controls drone flip behavior. Struggling on overriding setpoint publishing from the flight mode and RC input."}]...
|
Title: Custom PX4 build by @olivercclarke1714 | St Title: Custom PX4 build by @olivercclarke1714 | Stardance
Devlogs:
Focused on implementing the state machine that controls drone flip behavior. Struggling on overriding setpoint publishing from the flight mode and RC input....
|
1793234997.7536025
|
1793839797.7536025
|
|
54111
|
Caffeine Crisis by @stutu_batu | Stardance
|
stutu_batu
|
3
|
17.33
|
126
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-09T09:05:35Z", "hours": 2.0, "multiplier": 8.84, "payout": 9, "blessing": "neutral", "text": "Hello I am shipping again, I just bug fix and added a real tutorial for you, If you have any ideas or notice anything wrong, please write in the feedback section.", "repo": "https://github.com/stutu-batu/Caffeine-Crisis", "demo": "https://stutu-batu.itch.io/caffeine-crisis"}, {"ship_num": 2, "ts": "2026-09-07T15:18:53Z", "hours": 9.0, "multiplier": 12.78, "payout": 114, "blessing": "neutral", "text": "I made a barista sim. You can make drinks and serve. And with the money you earned you can buy new stations or upgrade them. You can play it, game saves your progression. If you have any ideas or notice anything wrong, please write in the feedback section.", "repo": "https://github.com/stutu-batu/Caffeine-Crisis", "demo": "https://stutu-batu.itch.io/caffeine-crisis"}, {"ship_num": 3, "ts": "2026-08-26T12:01:40Z", "hours": 1.0, "multiplier": 2.96, "payout": 3, "blessing": "neutral", "text": "YOU CAN PLAY THE DEMO OF CAFFEİNE CRİSSİS", "repo": "https://github.com/stutu-batu/Caffeine-Crisis", "demo": "https://stutu-batu.itch.io/caffeine-crisis"}]...
|
[{"post_id": 69697, "ts": "202 [{"post_id": 69697, "ts": "2026-09-17T16:28:30Z", "hours": 1.1003, "text": "I tried some thing but It didnt work sory"}, {"post_id": 69183, "ts": "2026-09-16T15:25:38Z", "hours": 0.4503, "text": "I just polished the game and some balancing with bug fix"}, {"post_id": 68689, "ts": "2026-09-15T15:26:25Z", "hours": 0.3728, "text": "I added 5 more customer,"}, {"post_id": 68094, "ts": "2026-09-14T14:34:42Z", "hours": 0.4786, "text": "I just cant find customer image. Can you make a recommendation? Just leave the link to the photo."}, {"post_id": 67208, "ts": "2026-09-13T08:14:51Z", "hours": 0.6497, "text": "I made 2 things First I can add multiple customers Image. Second I made customers Personalitys. Customers have 5 different mods: -Impatient -Generous -Sleepy -Gourmet -Friendly I have a lot of different text."}, {"post_id": 65865, "ts": "2026-09-11T09:26:24Z", "hours": 1.25, "text": "I added all sound fx and that photo You can play it Now https://stutu-batu.itch.io/caffeine-crisis"}, {"post_id": 65277, "ts": "2026-09-10T08:55:32Z", "hours": 1.0328, "text": "Just bug fix and pollsh"}, {"post_id": 64683, "ts": "2026-09-09T08:47:23Z", "hours": 0.5328, "text": "If you want to know, play my game. (Just some bug fix). btw should I redesign my customer like this frog man ??? pls write your opinion"}, {"post_id": 64076, "ts": "2026-09-08T07:14:03Z", "hours": 1.4336, "text": "I made a tutorial for youuu You can play it now https://stutu-batu.itch.io/caffeine-crisis"}, {"post_id": 63447, "ts": "2026-09-07T09:28:20Z", "hours": 0.5, "text": "Improving Shop UI and price balancing"}, {"post_id": 62793, "ts": "2026-09-06T09:45:55Z", "hours": 0.5475, "text": "Yoo whats up I just test my game and do some bug fix"}, {"post_id": 62196, "ts": "2026-09-05T13:45:34Z", "hours": 1.2158, "text": "I added the SHOP system !!!! It took an hour but it was worth it :D I am gone add more UI but not right now. I’m bored of drawing."}, {"post_id": 61391, "ts": "2026-09-04T08:47:11Z", "hours": 1.0494, "text": "I added day ending screen dynamic price bug fix & UI reset button for test I will add more thing and fix the customer"}, {"post_id": 60750, "ts": "2026-09-03T10:05:16Z", "hours": 0.7497, "text": "I FINISH THE BACKGROUND (finaly)"}, {"post_id": 60152, "ts": "2026-09-02T10:41:02Z", "hours": 0.4669, "text": "I drew colored more"}, {"post_id": 59557, "ts": "2026-09-01T13:22:51Z", "hours": 0.3667, "text": "I colored the background"}, {"post_id": 58955, "ts": "2026-08-31T14:54:44Z", "hours": 0.6983, "text": "I drew back ground more🥱"}, {"post_id": 58261, "ts": "2026-08-30T17:05:33Z", "hours": 1.3975, "text": "Have a great day I added new recipes, new stations, and recipe book panel, I am gone draw a book panel (right now its just brown panel). I will add more things later, I am gone fix the customer"}, {"post_id": 57270, "ts": "2026-08-29T11:39:35Z", "hours": 0.6492, "text": "Wuhuu how you doing I added a MainMenu and day system (also clock) , a day ending screen, I will add more recipes and makes the UI better . later I add sound effect"}, {"post_id": 56577, "ts": "2026-08-28T12:00:55Z", "hours": 0.7161, "text": "Yooo whats up Today I add costumers body and coin model, new serve mod and delay to stations . (My friend created the character.)"}, {"post_id": 55638, "ts": "2026-08-27T16:27:11Z", "hours": 0.5664, "text": "how are you doing friends Adding customer mechanic, I will add visual customers wait for now"}, {"post_id": 54948, "ts": "2026-08-26T11:26:53Z", "hours": 0.3669, "text": "Hey everyone! Here is everything added to the project today: -Custom Hand-Drawn 2D UI and background Next Step Add more Recipe Add Costumers Add Ice and water type"}, {"post_id": 54329, "ts": "2026-08-25T09:02:58Z", "hours": 0.7164, "text": "–Devlog 1: Caffeine Crisis– Building the Core Gameplay Mechanics Today I started my new project : Caffeine Crisis. A barista sim. My goal for today was to build the core loop from scratch and make sure all liquid and order logic works seamlessly. Layered Liquid Stacking: Designed a vertical layout system so liquids (coffee, milk, water) stack from the bottom up as ingredients are added. Liquid Mixing Logic: Implemented a mixing routine that blends individual stacked layers into a single blended coffee color upon serving. (Improving it until it gets better.) Random order and recipe Next Step I’ll be focusing on adding visual assets, sound effects, a polished UI. It looks terrible right now, but I’ll make improvements another time and add more recipes. Have a nice day, have a working projects"}]...
|
Title: Caffeine Crisis by @stutu_batu | Stardance
Title: Caffeine Crisis by @stutu_batu | Stardance
Devlogs:
–Devlog 1: Caffeine Crisis– Building the Core Gameplay Mechanics Today I started my new project : Caffeine Crisis. A barista sim. My goal for today was to build the core loop from scratch and make sure all liquid and order logic works seamlessly. Layered Liquid Stacking: Designed a vertical layout system so liquids (coffee, milk, water) stack from the bottom up as ingredients are added. Liquid Mixing Logic: Implemented a mixing routine that blends individual stacked layers into a single blended coffee color upon serving. (Improving it until it gets better.) Random order and recipe Next Step I’ll be focusing on adding visual assets, sound effects, a polished UI. It looks terrible right now, but I’ll make improvements another time and add more recipes. Have a nice day, have a working projects
Hey everyone! Here is everything added to the project today: -Custom Hand-Drawn 2D UI and background Next Step Add more Recipe Add Costumers Add Ice and water type
how are you doing friends Adding customer mechanic, I will add visual customers wait for now
Yooo whats up Today I add costumers body and coin model, new serve mod and delay to stations . (My friend created the character.)
Wuhuu how you doing I added a MainMenu and day system (also clock) , a day ending screen, I will add more recipes and makes the UI better . later I add sound effect
Have a great day I added new recipes, new stations, and recipe book panel, I am gone draw a book panel (right now its just brown panel). I will add more things later, I am gone fix the customer
I drew back ground more🥱
I colored the background
I drew colored more
I FINISH THE BACKGROUND (finaly)
I added day ending screen dynamic price bug fix & UI reset button for test I will add more thing and fix the customer
I added the SHOP system !!!! It took an hour but it was worth it :D I am gone add more UI but not right now. I’m bored of drawing.
Yoo whats up I just test my game and do some bug fix
Improving Shop UI and price balancing
I made a tutorial for youuu You can play it now https://stutu-batu.itch.io/caffeine-crisis
If you want to know, play my game. (Just some bug fix). btw should I redesign my customer like this frog man ??? pls write your opinion
Just bug fix and pollsh
I added all sound fx and that photo You can play it Now https://stutu-batu.itch.io/caffeine-crisis
I made 2 things First I can add multiple customers Image. Second I made customers Personalitys. Customers have 5 different mods: -Impatient -Generous -Sleepy -Gourmet -Friendly I have a lot of different text.
I just cant find customer image. Can you make a recommendation? Just leave the link to the photo.
I added 5 more customer,
I just polished the game and some balancing with bug fix
I tried some thing but It didnt work sory
Ships:
YOU CAN PLAY THE DEMO OF CAFFEİNE CRİSSİS
I made a barista sim. You can make drinks and serve. And with the money you earned you can buy new stations or upgrade them. You can play it, game saves your progression. If you have any ideas or notice anything wrong, please write in the feedback section.
Hello I am shipping again, I just bug fix and added a real tutorial for you, If you have any ideas or notice anything wrong, please write in the feedback section....
|
1793285706.668409
|
1793372106.668409
|
|
62831
|
Learning with the Arduino UNO R4 Wifi by @jmuncey2 Learning with the Arduino UNO R4 Wifi by @jmuncey2009 | Stardance...
|
jmuncey2009
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T15:01:39Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have been going through an Arduino tutorial and have used the skills i have learnt to make this curcuit. There is lots of evidence in my devlogs. I hope to do much more with this kit and soon I am keen to start a Gold Crest Project inorder to not only get a good certification to put on my CV but to learn more in this area of electronics as I hope in the future I can become an electrical engineer.", "repo": "https://github.com/JeremyM1234/My-Arduino-Journey", "demo": ""}]...
|
[{"post_id": 69698, "ts": "202 [{"post_id": 69698, "ts": "2026-09-17T16:35:54Z", "hours": 9.3872, "text": "I have been working on learning the C++ code and how to put together Arduino and electronics on a breadboard. I have spent a lot of time putting together a circuit that allows you to move the digital joystick and then it will not only move the Stepper motor, buit it will tell you what the angle is on the OLED display. All the code is on: https://github.com/JeremyM1234/My-Arduino-Journey/blob/main/Saves/OLED%20%2B%20Joystick%20%2B%20%20Stepper If anyone is intrested then please look at the tutorial videos on youtube, they are great: https://youtu.be/S66Iwhk2V7A?si=yBDbfWdeotQruYgo"}, {"post_id": 69323, "ts": "2026-09-16T19:59:15Z", "hours": 1.7094, "text": "I have successfully made an LED dimmable via the code I made in Visual Studio Code."}, {"post_id": 69248, "ts": "2026-09-16T17:39:07Z", "hours": 0.8581, "text": "Arduino Electronics - I have bought a Sunfounder Arduino kit and have started going through the 100 tutorial YouTube videos and learning the C++ Arduino code."}]...
|
Title: Learning with the Arduino UNO R4 Wifi by @j Title: Learning with the Arduino UNO R4 Wifi by @jmuncey2009 | Stardance
Devlogs:
Arduino Electronics - I have bought a Sunfounder Arduino kit and have started going through the 100 tutorial YouTube videos and learning the C++ Arduino code.
I have successfully made an LED dimmable via the code I made in Visual Studio Code.
I have been working on learning the C++ code and how to put together Arduino and electronics on a breadboard. I have spent a lot of time putting together a circuit that allows you to move the digital joystick and then it will not only move the Stepper motor, buit it will tell you what the angle is on the OLED display. All the code is on: https://github.com/JeremyM1234/My-Arduino-Journey/blob/main/Saves/OLED%20%2B%20Joystick%20%2B%20%20Stepper If anyone is intrested then please look at the tutorial videos on youtube, they are great: https://youtu.be/S66Iwhk2V7A?si=yBDbfWdeotQruYgo
Ships:
I have been going through an Arduino tutorial and have used the skills i have learnt to make this curcuit. There is lots of evidence in my devlogs. I hope to do much more with this kit and soon I am keen to start a Gold Crest Project inorder to not only get a good certification to put on my CV but to learn more in this area of electronics as I hope in the future I can become an electrical engineer....
|
1793210117.1530075
|
1793296517.1530075
|
|
61804
|
My own site! by @sarthak008 | Stardance
|
sarthak008
|
1
|
5.08
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T13:23:02Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built my own personal website. Honestly, the most challenging part for me was to settle on theme and design of the website, I had so many options but they looked so generic. Then I stumbled upon this comic/graphic kind of visual. But things did not get easier here, even then I had a lot of design choices and I still plan on experimenting with the colors, layout, etc. One thing that I am proud of is that I built this whole thing almost by myself and had a fun time experimenting with html and css. I used AI to get references for the design and to narrow down what I actually want, basically brainstorming and also only around 10% of the code was done by AI which was mostly css. Its a pretty simple website, I don’t think there is something people should know before hand to test it. At last I wanna say, I had a great time building this and I hope you like it!😁", "repo": "https://github.com/sarthakm008/Portfolio", "demo": "https://sarthakm008.github.io/Portfolio/"}]...
|
[{"post_id": 69702, "ts": "202 [{"post_id": 69702, "ts": "2026-09-17T16:38:30Z", "hours": 0.2756, "text": "Haven’ done much as I have a quiz tomorrow😭. I have added some text and positioned it how I wanted to."}, {"post_id": 69214, "ts": "2026-09-16T16:33:50Z", "hours": 0.2806, "text": "Haven’t done much since the last devlog. Just positioned the divs at the right place, styled the button, nothing much."}, {"post_id": 68554, "ts": "2026-09-15T09:39:44Z", "hours": 0.5981, "text": "I have got the basic structure of where things would go. Now I have to design and resize them. Took some time to understand grid layouts, they were confusing at first now they seem quite simple to use. The colors are there right now just for visual clarity, I will remove them once they are in the right place with all the content in them."}, {"post_id": 68529, "ts": "2026-09-15T08:28:07Z", "hours": 0.9269, "text": "So my site was rejected as it looks AI generated, and to be fair I did use AI to get a clear image of how I want to website😭. So, I am building it again with a new idea. It still has the whole comic book vibe going on but the design and the flow is different. This is what I am thinking of. I am not quite sure how to explain it but its like those online movies/books details page kind of thing. You have the cover page, the title and a little peek of what in the book. The read comic button will take you to the actual portfolio where all my details, projects and everything else will be. Not sure how I will design that part yet. But for now I am building the landing page. I am going with a comicy black and red color for it. Let’s see how it turns out😁."}, {"post_id": 68047, "ts": "2026-09-14T12:56:01Z", "hours": 0.4744, "text": "I have completed building the rest o the site. Now I am just brainstorming as to what I can fill in those empty spaces. It would probably be something related to my interests, I guess. Let’s see where I end up."}, {"post_id": 68025, "ts": "2026-09-14T12:14:36Z", "hours": 2.8158, "text": "I am building my personal website. I am going toward a comic styled site. So far I have completed the top half of the site. I do plan on filling the empty space on the sides. I am thinking of adding some comic artworks there that would go well with the site, if not then I would just expand the section I have made."}]...
|
Title: My own site! by @sarthak008 | Stardance
De Title: My own site! by @sarthak008 | Stardance
Devlogs:
I am building my personal website. I am going toward a comic styled site. So far I have completed the top half of the site. I do plan on filling the empty space on the sides. I am thinking of adding some comic artworks there that would go well with the site, if not then I would just expand the section I have made.
I have completed building the rest o the site. Now I am just brainstorming as to what I can fill in those empty spaces. It would probably be something related to my interests, I guess. Let’s see where I end up.
So my site was rejected as it looks AI generated, and to be fair I did use AI to get a clear image of how I want to website😭. So, I am building it again with a new idea. It still has the whole comic book vibe going on but the design and the flow is different. This is what I am thinking of. I am not quite sure how to explain it but its like those online movies/books details page kind of thing. You have the cover page, the title and a little peek of what in the book. The read comic button will take you to the actual portfolio where all my details, projects and everything else will be. Not sure how I will design that part yet. But for now I am building the landing page. I am going with a comicy black and red color for it. Let’s see how it turns out😁.
I have got the basic structure of where things would go. Now I have to design and resize them. Took some time to understand grid layouts, they were confusing at first now they seem quite simple to use. The colors are there right now just for visual clarity, I will remove them once they are in the right place with all the content in them.
Haven’t done much since the last devlog. Just positioned the divs at the right place, styled the button, nothing much.
Haven’ done much as I have a quiz tomorrow😭. I have added some text and positioned it how I wanted to.
Ships:
I built my own personal website. Honestly, the most challenging part for me was to settle on theme and design of the website, I had so many options but they looked so generic. Then I stumbled upon this comic/graphic kind of visual. But things did not get easier here, even then I had a lot of design choices and I still plan on experimenting with the colors, layout, etc. One thing that I am proud of is that I built this whole thing almost by myself and had a fun time experimenting with html and css. I used AI to get references for the design and to narrow down what I actually want, basically brainstorming and also only around 10% of the code was done by AI which was mostly css. Its a pretty simple website, I don’t think there is something people should know before hand to test it. At last I wanna say, I had a great time building this and I hope you like it!😁...
|
1793209804.219015
|
1793296204.219015
|
|
57223
|
Laser CNC by @SohamKaran | Stardance
|
SohamKaran
|
0
|
5.19
|
0
|
[]
|
[{"post_id": 69706, "ts": "202 [{"post_id": 69706, "ts": "2026-09-17T16:47:04Z", "hours": 5.1928, "text": "few days ago when i was cutting acryallic sheet for my project it was kind of really tuff so insted of hand cutting i decided to make a laser cutting machine so at first i find right parts to build then i design 3d models for mount all motors bearings and other parts after that i created the repo and add all minecar parts to build it and i understand that it is quite complex to understand so i would make a tutorial video while building it:)"}]...
|
Title: Laser CNC by @SohamKaran | Stardance
Devlo Title: Laser CNC by @SohamKaran | Stardance
Devlogs:
few days ago when i was cutting acryallic sheet for my project it was kind of really tuff so insted of hand cutting i decided to make a laser cutting machine so at first i find right parts to build then i design 3d models for mount all motors bearings and other parts after that i created the repo and add all minecar parts to build it and i understand that it is quite complex to understand so i would make a tutorial video while building it:)...
|
1792698485.3836317
|
1793303285.3836317
|
|
35169
|
My own site! by @Midhunesh | Stardance
|
Midhunesh
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T16:26:57Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Website that tells the Life of Dr. A.P.J Abdul Kalam also known as the missile man of India. I was very interested to make this project since it was my fist ever website to make. CSS was bit challenging for me but I overcame the challenge with the help of Internet and AI. I used AI to just know the basics of CSS and HTML. I needed to know the basics of them, so I used the AI platform. I am proud of myself because I made a Website which gives information about the Life of Dr. A.P.J Abdul Kalam Sir who inspired me a lot. Also, I am really proud of making an amazing CSS which made my website cool. This website includes every mission as per the guidelines and I think that it is worth to test because it is my first ever website. I believe in myself and I believe in my website. Thank you!", "repo": "https://github.com/midhuneshbraj123/My-Website", "demo": "https://midhuneshbraj123.github.io/My-Website/"}]...
|
[{"post_id": 69707, "ts": "202 [{"post_id": 69707, "ts": "2026-09-17T16:51:08Z", "hours": 0.3128, "text": "Devlog Number 5: I have completed making both the content of the website and the style of the website. It was really hard to figure out how to do the style.css but I learned the basics from some online resources and videos. Now, my website looks really cool after combining the HTML and the style. My first website is ready to DEPLOY!!!"}, {"post_id": 68693, "ts": "2026-09-15T15:34:17Z", "hours": 0.6069, "text": "Devlog Number 4: I learned how to add images and i added images for the previous sub topics which I have completed. Now I am uploading images after completion of the paragraph…"}, {"post_id": 68659, "ts": "2026-09-15T14:22:00Z", "hours": 0.2639, "text": "Devlog Number 3: I have been adding more informations about Abdul Kalam Sir and trying to know more about him. I am adding extra sections and paragraphs to segregate each phase of his life…"}, {"post_id": 68652, "ts": "2026-09-15T13:57:58Z", "hours": 0.3325, "text": "Devlog Number 2: It is my first time making a website and I am adding extra details to make it attractive. I have added extra sections and paragraphs mentioning the life of A.P.J Abdul Kalam Sir. Sub heading for each paragraph is given and images should be added soon."}, {"post_id": 68144, "ts": "2026-09-14T16:12:45Z", "hours": 0.9808, "text": "There are many personalities who inspire the younger generation to get out of their comfort zone and explore many things. One of the Personalities are A.P.J Abdul Kalam Sir. He was a famous scientist, popularly known as the Missile Man of India. He inspired many youths and I am one of them. Since he is one of my inspirations, I decided to make a website that shows the life that he has lived…"}]...
|
Title: My own site! by @Midhunesh | Stardance
Dev Title: My own site! by @Midhunesh | Stardance
Devlogs:
There are many personalities who inspire the younger generation to get out of their comfort zone and explore many things. One of the Personalities are A.P.J Abdul Kalam Sir. He was a famous scientist, popularly known as the Missile Man of India. He inspired many youths and I am one of them. Since he is one of my inspirations, I decided to make a website that shows the life that he has lived…
Devlog Number 2: It is my first time making a website and I am adding extra details to make it attractive. I have added extra sections and paragraphs mentioning the life of A.P.J Abdul Kalam Sir. Sub heading for each paragraph is given and images should be added soon.
Devlog Number 3: I have been adding more informations about Abdul Kalam Sir and trying to know more about him. I am adding extra sections and paragraphs to segregate each phase of his life…
Devlog Number 4: I learned how to add images and i added images for the previous sub topics which I have completed. Now I am uploading images after completion of the paragraph…
Devlog Number 5: I have completed making both the content of the website and the style of the website. It was really hard to figure out how to do the style.css but I learned the basics from some online resources and videos. Now, my website looks really cool after combining the HTML and the style. My first website is ready to DEPLOY!!!
Ships:
I made a Website that tells the Life of Dr. A.P.J Abdul Kalam also known as the missile man of India. I was very interested to make this project since it was my fist ever website to make. CSS was bit challenging for me but I overcame the challenge with the help of Internet and AI. I used AI to just know the basics of CSS and HTML. I needed to know the basics of them, so I used the AI platform. I am proud of myself because I made a Website which gives information about the Life of Dr. A.P.J Abdul Kalam Sir who inspired me a lot. Also, I am really proud of making an amazing CSS which made my website cool. This website includes every mission as per the guidelines and I think that it is worth to test because it is my first ever website. I believe in myself and I believe in my website. Thank you!...
|
1793336045.6668136
|
1793422445.6668136
|
|
55819
|
a very Craic site by @craicrat | Stardance
|
craicrat
|
2
|
11.0
|
25
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T08:48:23Z", "hours": 1.0, "multiplier": 1.52, "payout": 2, "blessing": "neutral", "text": "here is the second ship of my first personal website. I just added the 4 new images and fixed the video. since my exam date is coming closer i couldnt really get time to work on anything else. decided to do this ship to push forward the changes i did make. hope whoever sees this project has a nice day.", "repo": "https://github.com/SyedUmerAsim/My-Website", "demo": "https://syedumerasim.github.io/My-Website/"}, {"ship_num": 2, "ts": "2026-09-16T19:09:44Z", "hours": 10.0, "multiplier": 2.34, "payout": 23, "blessing": "neutral", "text": "I made my very own personal Website. It isn’t anything professional, if anything its more silly than serious. This was my first time coding on html+css, as well as my first time dealing with github, setting up the repositories, source control(had me losing my mind for an hour). But im happy with the progress ive made, could have done better.", "repo": "https://github.com/SyedUmerAsim/My-Website", "demo": "https://syedumerasim.github.io/My-Website/"}]...
|
[{"post_id": 69716, "ts": "202 [{"post_id": 69716, "ts": "2026-09-17T17:13:58Z", "hours": 1.0097, "text": "I read the Rating reasons thingies, and most of them were about how the video didnt work, so i fixed that, because i wanted people to see what that video really is. Another person pointed out i should have more pictures in the website, i couldn’t figure out where to add pictures in Contacts and Projects, but i added 4 new pics to the Landing page, idk why i didnt think of this before.. I also centered the navigation bar, as it looked too far to the left."}, {"post_id": 69288, "ts": "2026-09-16T18:59:51Z", "hours": 1.6747, "text": "My last devlog(for this project). Ive added everything i could have, everything i could think of, the tabs, the information, the fun stuff, added animations for the contacts images, now they slide In when opening contacts page, and the navigation bar tabs grow and shrink in size when hovering over them. and now i think its time to ship my first project."}, {"post_id": 66118, "ts": "2026-09-11T18:45:48Z", "hours": 2.7975, "text": "been a while since my last devlog, I still didn’t get to the “adding life to About page” part, mainly because i still dont know how to. However I made a “secret” area with “valuable” information inside…only a true keen eye will spot where it is… Other than that i updated projects page. now one box is for, the website itself, second box is supposed to be for a whole different list of all my other projects, but because there aren’t any, I have a feeling its gonna remain WIP even after i ship this project. and for the third one, I thought it would be cool to add my 3x3 Pb but recording is hard. thats all for now."}, {"post_id": 62879, "ts": "2026-09-06T12:27:30Z", "hours": 3.3556, "text": "i finally got the navigation bar working, now it doesnt run into the stupid 404 error anymore. I also added 4 empty slots to display my projects(which hopefully wont remain empty :>) i also gave the contacts a background that matches the websites main background color. I havent done much in these 3 hours but i will say i have learnt more than ever(and still learning!!!) Next I will probably try giving the About page some life, as currently its just three lines, along with some animations. you can see the current state of the website here: https://syedumerasim.github.io/My-Website/"}, {"post_id": 58284, "ts": "2026-08-30T17:29:13Z", "hours": 2.1456, "text": "Created a github repository just today, although i started working on this a 5 days ago. so far theres only 3 pages to it. because i never viewed the website on github before(because like i said i just uploaded it) i had been using the VS code live server extension, which had no issues, but on github when clicking any “Projects” or “Contacts” it runs into a 404 error, im not sure why thats happening but I will try to fix that hopefully before my next devlog.(first devlog, how did i do?)"}]...
|
Title: a very Craic site by @craicrat | Stardance
Title: a very Craic site by @craicrat | Stardance
Devlogs:
Created a github repository just today, although i started working on this a 5 days ago. so far theres only 3 pages to it. because i never viewed the website on github before(because like i said i just uploaded it) i had been using the VS code live server extension, which had no issues, but on github when clicking any “Projects” or “Contacts” it runs into a 404 error, im not sure why thats happening but I will try to fix that hopefully before my next devlog.(first devlog, how did i do?)
i finally got the navigation bar working, now it doesnt run into the stupid 404 error anymore. I also added 4 empty slots to display my projects(which hopefully wont remain empty :>) i also gave the contacts a background that matches the websites main background color. I havent done much in these 3 hours but i will say i have learnt more than ever(and still learning!!!) Next I will probably try giving the About page some life, as currently its just three lines, along with some animations. you can see the current state of the website here: https://syedumerasim.github.io/My-Website/
been a while since my last devlog, I still didn’t get to the “adding life to About page” part, mainly because i still dont know how to. However I made a “secret” area with “valuable” information inside…only a true keen eye will spot where it is… Other than that i updated projects page. now one box is for, the website itself, second box is supposed to be for a whole different list of all my other projects, but because there aren’t any, I have a feeling its gonna remain WIP even after i ship this project. and for the third one, I thought it would be cool to add my 3x3 Pb but recording is hard. thats all for now.
My last devlog(for this project). Ive added everything i could have, everything i could think of, the tabs, the information, the fun stuff, added animations for the contacts images, now they slide In when opening contacts page, and the navigation bar tabs grow and shrink in size when hovering over them. and now i think its time to ship my first project.
I read the Rating reasons thingies, and most of them were about how the video didnt work, so i fixed that, because i wanted people to see what that video really is. Another person pointed out i should have more pictures in the website, i couldn’t figure out where to add pictures in Contacts and Projects, but i added 4 new pics to the Landing page, idk why i didnt think of this before.. I also centered the navigation bar, as it looked too far to the left.
Ships:
I made my very own personal Website. It isn’t anything professional, if anything its more silly than serious. This was my first time coding on html+css, as well as my first time dealing with github, setting up the repositories, source control(had me losing my mind for an hour). But im happy with the progress ive made, could have done better.
here is the second ship of my first personal website. I just added the 4 new images and fixed the video. since my exam date is coming closer i couldnt really get time to work on anything else. decided to do this ship to push forward the changes i did make. hope whoever sees this project has a nice day....
|
1793346658.485791
|
1793433058.485791
|
|
62564
|
imgKit by @Xenon | Stardance
|
Xenon
|
0
|
3.24
|
0
|
[]
|
[{"post_id": 69724, "ts": "202 [{"post_id": 69724, "ts": "2026-09-17T17:30:32Z", "hours": 1.3967, "text": "i switched to a different component library, and finished up compression!"}, {"post_id": 69257, "ts": "2026-09-16T18:04:56Z", "hours": 1.8456, "text": "got some basic UI down with shadcn-svelte and lucide icons for the background remover"}]...
|
Title: imgKit by @Xenon | Stardance
Devlogs:
got Title: imgKit by @Xenon | Stardance
Devlogs:
got some basic UI down with shadcn-svelte and lucide icons for the background remover
i switched to a different component library, and finished up compression!...
|
1793044511.3392692
|
1793649311.3392692
|
|
987
|
Oppurtunity OS by @dseshukumar2008 | Stardance
|
dseshukumar2008
|
1
|
219.84
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T15:28:16Z", "hours": 136.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built and refined OppurtunityOS , an AI powered career development platform designed to help students understand their skills, career paths, and can be more confident about the career . The platform includes the features such as Career Roadmaps, Project recommendations, AI Career coach, Resume Builder and Analyzer , Github Analyzer , Skill Gap Analysis , Career Explorer, and Analytics. One of the main challenges that I faced was handling API calls . I refined the interface , removed unnecessary features , and ensured final platform is deployed. I am proud of bringing the different career-development tools together into one working platform. To use the project , use the try project button to explore the deployed application , and see the source code to view the complete implementation and README.", "repo": "https://github.com/dseshukumar2008-hub/opportunityOS", "demo": "https://opportunity-os-rust.vercel.app/"}]...
|
[{"post_id": 69727, "ts": "202 [{"post_id": 69727, "ts": "2026-09-17T17:35:11Z", "hours": 9.6806, "text": "While working on OpportunityOS, I realized as the project grew , the CSS had become more complex , With repeated tailwind classes , different styling patterns, larger border radiuses. I decided to simplify the existing styling component by component, focusing on cleaner layouts, consistent colors, simpler borders and shadows, and more maintainable CSS while keeping the existing UI structure and functionality unchanged. I made changes and removed unnecessary repeated code."}, {"post_id": 64952, "ts": "2026-09-09T18:06:24Z", "hours": 11.1286, "text": "Fixed the local AI connection issue by routing frontend API requests through the vite proxy to the deployed backend . Debugged several issues including: -> offline fallback states -> Incorrect AI response handling -> stuck analysis / loading states scrolling and time stamp issues"}, {"post_id": 63536, "ts": "2026-09-07T13:33:53Z", "hours": 10.7625, "text": "Working on the project engine . The main page is taking step , but OppurtunityOS Copilot side panel still needs fixing - messages are not getting a proper response . Fixing the integration and working to get the proper response"}, {"post_id": 62056, "ts": "2026-09-05T09:06:42Z", "hours": 10.3364, "text": "Added the Career quiz to the Skill Arcade - a timed 10 question challenge designed to test challenge around coding and technology . Currently polishing the Skill arcade experience and getting oppurtunityOS closer to final submission."}, {"post_id": 60708, "ts": "2026-09-03T08:22:30Z", "hours": 11.0881, "text": "Build Tech Match for the Skill Arcade !!! A quick challenge where you match technologies with their correct categories and test your knowledge under time pressure."}, {"post_id": 58637, "ts": "2026-08-31T03:49:46Z", "hours": 10.4067, "text": "After spending time fixing the bugs - I decided to make finding bugs a game . So I added a new game to my skill arcade - bug hunter. The idea is simple , first the user have to select the programming language , and then have to select the toughness level , based on that there will be code snippets and options for that code snippets."}, {"post_id": 56740, "ts": "2026-08-28T16:48:24Z", "hours": 10.3039, "text": "After spending too much time fixing bugs , i got tired of debugging So instead of fixing another bug …. I tried to build something new . I implemented Skill Arcade in Opportunity OS - a small gamified section where users can test their skills through interactive games"}, {"post_id": 55130, "ts": "2026-08-26T16:22:11Z", "hours": 10.1347, "text": "I am continuing to manually refine and test the project feature by feature . I focused on debugging the Resume Analyzer , improving the error flow , and checking the complete analysis process . Still refining the project , making changes in the code , getting errors and fixing them ."}, {"post_id": 53102, "ts": "2026-08-23T15:17:00Z", "hours": 4.3336, "text": "finally OpportunityOS is deployed and it is live !!!"}, {"post_id": 52494, "ts": "2026-08-22T17:11:34Z", "hours": 9.8203, "text": "Recently I have been refining the career intelligence dashboard and improving the overall UI and user experience . I am also working on connecting the Analytics page with all the existing features , so users can get a complete view of their progress and activity across Opportunity OS . The focus is now on making the existing features feel more connected , polished , and product ready . Still Building … still improving !!!"}, {"post_id": 49693, "ts": "2026-08-18T16:16:04Z", "hours": 9.9183, "text": "Opportunity OS is getting closer to the finish line !!! The focus has now shifted from building features to make sure everything actually works as intended Currently working on : Fixing remaining bugs Testing complete user flows checking AI - powered features polishing UI Fixing navigation and state issues verifying existing features before release At this stage , it’s less about adding more and more features - and more about making the existing product reliable , consistent , and ready to ship . The final stretch is here ……."}, {"post_id": 38424, "ts": "2026-07-31T19:45:09Z", "hours": 10.7006, "text": "Opportunity OS has entered its final phase . Currently I am focusing on fixing the bugs , testing and ensuring every feature works before final release . The finish line is getting closer"}, {"post_id": 28867, "ts": "2026-07-15T12:57:36Z", "hours": 9.6481, "text": "continued refining the OpportunityOS onboarding experience by improving the overall UI, spacing, alignment, typography, and visual consistency across all onboarding steps. The focus wasn’t on adding new features but on creating a smoother, more intuitive, and premium experience that makes a great first impression. One step closer to a polished SaaS product!"}, {"post_id": 23475, "ts": "2026-07-06T14:05:30Z", "hours": 10.7319, "text": "I focused on improving the onboarding experience for OpportunityOS. I redesigned the Personal Details, Education, and Skills screens to create a cleaner and more premium user experience. I also introduced a new Career Interests step, allowing users to share their career goals so OpportunityOS can deliver more personalized opportunities and recommendations. The onboarding is becoming more intuitive, engaging, and aligned with the vision of building an AI-powered career platform for students"}, {"post_id": 15145, "ts": "2026-06-24T16:31:24Z", "hours": 8.7697, "text": "I focused on enhancing the Resume Builder in OpportunityOS. Improved the resume creation workflow, refined the live preview experience, strengthened Firebase data synchronization, and validated auto-save functionality for a smoother user experience. Also worked on ATS analysis improvements and overall stability to ensure users can build professional resumes seamlessly."}, {"post_id": 14465, "ts": "2026-06-23T16:26:54Z", "hours": 14.9064, "text": "Built the Career Explorer module in OpportunityOS to help users discover career paths based on their skills and profile. Added role-based career cards, skill gap insights, recommended projects, learning timelines, and roadmap generation for different career tracks. Currently focusing on improving matching accuracy, personalization, and overall user experience."}, {"post_id": 11928, "ts": "2026-06-19T13:37:55Z", "hours": 5.7172, "text": "Project Recommendation Engine in OpportunityOS. One problem I noticed is that many students know their dream role but have no idea what projects they should actually build. So I developed an AI-powered engine that analyzes a student’s target role and skill gaps, then recommends portfolio-worthy projects that can strengthen their profile and improve career readiness. Turning career goals into actionable projects, one recommendation at a time. user flow : user selects the specialization that he has choosen next user selects the target role Stay tuned for more updates !!!"}, {"post_id": 10024, "ts": "2026-06-16T16:13:40Z", "hours": 10.1594, "text": "After generating a personalized Career Roadmap, the next step is understanding what’s missing. The Skill Gap Analysis feature helps users compare their current skills with the skills required for their dream career. For example, if someone wants to become an AI Engineer, OpportunityOS can analyze their profile and show which skills they already have and which skills they still need to learn."}, {"post_id": 8533, "ts": "2026-06-14T06:06:49Z", "hours": 6.7772, "text": "Development Update: AI-Powered Career Roadmap in OpportunityOS One challenge students face is not knowing what to learn next after choosing a career path. Today, I worked on the Career Roadmap Module in OpportunityOS. How does it work : -> Lets users choose a target role (Software Engineer, AI Engineer, Full Stack Developer, etc.) -> Generates a structured learning roadmap Breaks the journey into clear phases and milestones -> Shows recommended learning resources for each phase -> Tracks roadmap progress over time Integrates with Skill Gap Analysis to recommend the next skills to learn Still improving the experience, but excited to see the roadmap becoming more interactive and personalized."}, {"post_id": 7300, "ts": "2026-06-12T05:14:32Z", "hours": 4.055, "text": "One of the biggest challenges students face is finding relevant opportunities scattered across multiple platforms. To solve this, I built the Opportunities Hub inside OpportunityOS , where students can discover internships, jobs, hackathons, scholarships, and competitions from a single platform."}, {"post_id": 4909, "ts": "2026-06-08T14:24:57Z", "hours": 3.5189, "text": "AI Resume Analysis is now live in OpportunityOS. One thing I’ve noticed is that many students apply for opportunities without knowing whether their resume is actually ATS-friendly or aligned with the role they’re targeting. To address this, I built an AI-powered Resume Analysis feature using Google Gemini, allowing users to upload a resume or analyze their OpportunityOS profile to receive ATS scoring, strengths and weaknesses analysis, missing skill detection, and personalized improvement suggestions. Stay tuned for more features !!!"}, {"post_id": 4726, "ts": "2026-06-08T05:04:03Z", "hours": 2.1067, "text": "Thinking a lot , I thought of building a OpportunityOS Copilot, a context-aware AI assistant built directly into the platform. Instead of acting like a generic chatbot, the Copilot is designed to understand a user’s profile, skills, career goals, resume insights, and opportunities data to provide personalized guidance. And Guess what the answer is insane !!!"}, {"post_id": 3598, "ts": "2026-06-06T16:25:34Z", "hours": 4.8642, "text": "Worked on OpportunityOS onboarding and authentication today. Implemented a first-time user onboarding flow that guides users through profile creation, skill selection, interests, and career goals setup after Google Sign In."}, {"post_id": 2781, "ts": "2026-06-05T16:10:58Z", "hours": 10.1692, "text": "Built and organized multiple settings components including Account Information, Password & Security, Notifications, Privacy, Integrations, Appearance, Data Storage, and Email Preferences. Next, I’ll connect these settings to live backend services and replace remaining placeholder functionality with real-time integrations. Stay tuned !!!!!"}, {"post_id": 1548, "ts": "2026-06-03T17:07:23Z", "hours": 4.4708, "text": "I worked on the login page of Oppurtunity OS . I added a branding section on the left side to highlight the main features of the platform . I also improved the login form layout and added google and github signin options to make the user interface look more good and efficient ."}, {"post_id": 935, "ts": "2026-06-02T18:06:06Z", "hours": 5.0983, "text": "I worked on the home page of Oppurtunity OS I improved the landing page design , navigation bar, overall layout . I also fixed alignment issues ."}, {"post_id": 228, "ts": "2026-06-01T10:39:24Z", "hours": 0.5008, "text": "I completed the foundation of OppurtunityOS, a platform designed to help students , discover the hackathons , internships , competitions and scholarships."}]...
|
Title: Oppurtunity OS by @dseshukumar2008 | Starda Title: Oppurtunity OS by @dseshukumar2008 | Stardance
Devlogs:
I completed the foundation of OppurtunityOS, a platform designed to help students , discover the hackathons , internships , competitions and scholarships.
I worked on the home page of Oppurtunity OS I improved the landing page design , navigation bar, overall layout . I also fixed alignment issues .
I worked on the login page of Oppurtunity OS . I added a branding section on the left side to highlight the main features of the platform . I also improved the login form layout and added google and github signin options to make the user interface look more good and efficient .
Built and organized multiple settings components including Account Information, Password & Security, Notifications, Privacy, Integrations, Appearance, Data Storage, and Email Preferences. Next, I’ll connect these settings to live backend services and replace remaining placeholder functionality with real-time integrations. Stay tuned !!!!!
Worked on OpportunityOS onboarding and authentication today. Implemented a first-time user onboarding flow that guides users through profile creation, skill selection, interests, and career goals setup after Google Sign In.
Thinking a lot , I thought of building a OpportunityOS Copilot, a context-aware AI assistant built directly into the platform. Instead of acting like a generic chatbot, the Copilot is designed to understand a user’s profile, skills, career goals, resume insights, and opportunities data to provide personalized guidance. And Guess what the answer is insane !!!
AI Resume Analysis is now live in OpportunityOS. One thing I’ve noticed is that many students apply for opportunities without knowing whether their resume is actually ATS-friendly or aligned with the role they’re targeting. To address this, I built an AI-powered Resume Analysis feature using Google Gemini, allowing users to upload a resume or analyze their OpportunityOS profile to receive ATS scoring, strengths and weaknesses analysis, missing skill detection, and personalized improvement suggestions. Stay tuned for more features !!!
One of the biggest challenges students face is finding relevant opportunities scattered across multiple platforms. To solve this, I built the Opportunities Hub inside OpportunityOS , where students can discover internships, jobs, hackathons, scholarships, and competitions from a single platform.
Development Update: AI-Powered Career Roadmap in OpportunityOS One challenge students face is not knowing what to learn next after choosing a career path. Today, I worked on the Career Roadmap Module in OpportunityOS. How does it work : -> Lets users choose a target role (Software Engineer, AI Engineer, Full Stack Developer, etc.) -> Generates a structured learning roadmap Breaks the journey into clear phases and milestones -> Shows recommended learning resources for each phase -> Tracks roadmap progress over time Integrates with Skill Gap Analysis to recommend the next skills to learn Still improving the experience, but excited to see the roadmap becoming more interactive and personalized.
After generating a personalized Career Roadmap, the next step is understanding what’s missing. The Skill Gap Analysis feature helps users compare their current skills with the skills required for their dream career. For example, if someone wants to become an AI Engineer, OpportunityOS can analyze their profile and show which skills they already have and which skills they still need to learn.
Project Recommendation Engine in OpportunityOS. One problem I noticed is that many students know their dream role but have no idea what projects they should actually build. So I developed an AI-powered engine that analyzes a student’s target role and skill gaps, then recommends portfolio-worthy projects that can strengthen their profile and improve career readiness. Turning career goals into actionable projects, one recommendation at a time. user flow : user selects the specialization that he has choosen next user selects the target role Stay tuned for more updates !!!
Built the Career Explorer module in OpportunityOS to help users discover career paths based on their skills and profile. Added role-based career cards, skill gap insights, recommended projects, learning timelines, and roadmap generation for different career tracks. Currently focusing on improving matching accuracy, personalization, and overall user experience.
I focused on enhancing the Resume Builder in OpportunityOS. Improved the resume creation workflow, refined the live preview experience, strengthened Firebase data synchronization, and validated auto-save functionality for a smoother user experience. Also worked on ATS analysis improvements and overall stability to ensure users can build professional resumes seamlessly.
I focused on improving the onboarding experience for OpportunityOS. I redesigned the Personal Details, Education, and Skills screens to create a cleaner and more premium user experience. I also introduced a new Career Interests step, allowing users to share their career goals so OpportunityOS can deliver more personalized opportunities and recommendations. The onboarding is becoming more intuitive, engaging, and aligned with the vision of building an AI-powered career platform for students
continued refining the OpportunityOS onboarding experience by improving the overall UI, spacing, alignment, typography, and visual consistency across all onboarding steps. The focus wasn’t on adding new features but on creating a smoother, more intuitive, and premium experience that makes a great first impression. One step closer to a polished SaaS product!
Opportunity OS has entered its final phase . Currently I am focusing on fixing the bugs , testing and ensuring every feature works before final release . The finish line is getting closer
Opportunity OS is getting closer to the finish line !!! The focus has now shifted from building features to make sure everything actually works as intended Currently working on : Fixing remaining bugs Testing complete user flows checking AI - powered features polishing UI Fixing navigation and state issues verifying existing features before release At this stage , it’s less about adding more and more features - and more about making the existing product reliable , consistent , and ready to ship . The final stretch is here …….
Recently I have been refining the career intelligence dashboard and improving the overall UI and user experience . I am also working on connecting the Analytics page with all the existing features , so users can get a complete view of their progress and activity across Opportunity OS . The focus is now on making the existing features feel more connected , polished , and product ready . Still Building … still improving !!!
finally OpportunityOS is deployed and it is live !!!
I am continuing to manually refine and test the project feature by feature . I focused on debugging the Resume Analyzer , improving the error flow , and checking the complete analysis process . Still refining the project , making changes in the code , getting errors and fixing them .
After spending too much time fixing bugs , i got tired of debugging So instead of fixing another bug …. I tried to build something new . I implemented Skill Arcade in Opportunity OS - a small gamified section where users can test their skills through interactive games
After spending time fixing the bugs - I decided to make finding bugs a game . So I added a new game to my skill arcade - bug hunter. The idea is simple , first the user have to select the programming language , and then have to select the toughness level , based on that there will be code snippets and options for that code snippets.
Build Tech Match for the Skill Arcade !!! A quick challenge where you match technologies with their correct categories and test your knowledge under time pressure.
Added the Career quiz to the Skill Arcade - a timed 10 question challenge designed to test challenge around coding and technology . Currently polishing the Skill arcade experience and getting oppurtunityOS closer to final submission.
Working on the project engine . The main page is taking step , but OppurtunityOS Copilot side panel still needs fixing - messages are not getting a proper response . Fixing the integration and working to get the proper response
Fixed the local AI connection issue by routing frontend API requests through the vite proxy to the deployed backend . Debugged several issues including: -> offline fallback states -> Incorrect AI response handling -> stuck analysis / loading states scrolling and time stamp issues
While working on OpportunityOS, I realized as the project grew , the CSS had become more complex , With repeated tailwind classes , different styling patterns, larger border radiuses. I decided to simplify the existing styling component by component, focusing on cleaner layouts, consistent colors, simpler borders and shadows, and more maintainable CSS while keeping the existing UI structure and functionality unchanged. I made changes and removed unnecessary repeated code.
Ships:
I built and refined OppurtunityOS , an AI powered career development platform designed to help students understand their skills, career paths, and can be more confident about the career . The platform includes the features such as Career Roadmaps, Project recommendations, AI Career coach, Resume Builder and Analyzer , Github Analyzer , Skill Gap Analysis , Career Explorer, and Analytics. One of the main challenges that I faced was handling API calls . I refined the interface , removed unnecessary features , and ensured final platform is deployed. I am proud of bringing the different career-development tools together into one working platform. To use the project , use the try project button to explore the deployed application , and see the source code to view the complete implementation and README....
|
1793253347.7575657
|
1793339747.7575657
|
|
63024
|
Galaxy game by @cosmic79conqueror | Stardance
|
cosmic79conqueror
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T17:40:36Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made a basic shooting game and was learning to resolve the the issue of short game time and transform it into an infinite game", "repo": "https://github.com/cosmic79conqueror-coder/Galaxyshooters", "demo": "https://cosmic79conqueror-coder.github.io/Galaxyshooters/"}]...
|
[{"post_id": 69728, "ts": "202 [{"post_id": 69728, "ts": "2026-09-17T17:38:59Z", "hours": 0.695, "text": "Was Trying to resolve the issue of short game time"}, {"post_id": 69573, "ts": "2026-09-17T10:29:42Z", "hours": 0.7636, "text": "#DEVLOG1 it just a basic function model of shooting game where in you can shoot enemies and and score 20 points on each kill and can control the spaceship by left and right arrow keys"}]...
|
Title: Galaxy game by @cosmic79conqueror | Stardan Title: Galaxy game by @cosmic79conqueror | Stardance
Devlogs:
#DEVLOG1 it just a basic function model of shooting game where in you can shoot enemies and and score 20 points on each kill and can control the spaceship by left and right arrow keys
Was Trying to resolve the issue of short game time
Ships:
Made a basic shooting game and was learning to resolve the the issue of short game time and transform it into an infinite game...
|
1793210176.4841545
|
1793296576.4841545
|
|
16176
|
Cursor Convertor by @flummoxed | Stardance
|
flummoxed
|
0
|
1.72
|
0
|
[]
|
[{"post_id": 6974, "ts": "2026 [{"post_id": 6974, "ts": "2026-06-11T18:17:50Z", "hours": 1.2183, "text": "Devlog #2: Successfully got .ani hotspot value To read the .ani file, I had to go through a lot of trouble. .ani files are binary files, which means a a weird amount of struggle regarding reading them. And it’s not as simple as reading a .cur file, since .ani files are dynamic in their number of bytes. After fighting the internet for an ani-file parser, and a LOT of struggle with that ani-file library… being outdated… I went in and edited the issues with the ani-file library, still struggled to get it working… and gave up eventually. I resorted to Gemini to help me debug the issue. Got it working finally! A little note: did have to fight the AI as well to get it to work… but here it is! Now I have hotspot values for both .cur and .ani cursors… and the hard part is done I believe. (I hope I didn’t jinx myself…)"}, {"post_id": 6615, "ts": "2026-06-11T03:04:15Z", "hours": 0.4975, "text": "Devlog #1: Began writing a program to convert Windows cursors into usable Mac cursors Here we go. I’ve been quite irritated at the inability to find cursors that run with Mousecape, a program built to change your cursor for mac. Most are built for Windows, which is easier to put in custom cursors with. I believe this has been done by some other people; however they didn’t work… perhaps due to my human error, so I thought it would be a good idea just… to build it myself. End goal is to make a website or app of some sorts to make it really easy. A lot of research was required to start this one off. I had to do some research into .inf files (these help download .cur & .ani files into Windows systems) and .cape files (which are how Mousecape cursors are stored). Now, the difference between .cur files and normal .png files is that .cur files store an additional value (a hotspot value, which tells at what exact point the cursor can click? That’s the best explanation I have right now). And to get this value, you need to parse through the binary file of a .cur file to specific bytes. Through those specific bytes (stored as these funny little things called little-endian numbers (?)) we get our x and y value of the hotspot. With this predetermined value set by the author of the cursorpack, I can now place that directly into the .cape value. Less hassle for the user! With all of that out of the way, let me succinctly write what I have accomplished here: Wrote a Python script to get the values of the cursor hotspot from a .cur value, by taking the byte data and converting them into integers. Now, there was some struggle in getting .ani cursors (animated cursors!) to do the same thing (as you can see), and I haven’t exactly figured out what byte data things I need to do with that. (More research… I suppose :/) My next step tomorrow is to figure that out. Point is, that I got the .cur file to give me what I need. (I am quite aware of the rambling here, it is late and I will edit this log tomorrow.)"}]...
|
Title: Cursor Convertor by @flummoxed | Stardance
Title: Cursor Convertor by @flummoxed | Stardance
Devlogs:
Devlog #1: Began writing a program to convert Windows cursors into usable Mac cursors Here we go. I’ve been quite irritated at the inability to find cursors that run with Mousecape, a program built to change your cursor for mac. Most are built for Windows, which is easier to put in custom cursors with. I believe this has been done by some other people; however they didn’t work… perhaps due to my human error, so I thought it would be a good idea just… to build it myself. End goal is to make a website or app of some sorts to make it really easy. A lot of research was required to start this one off. I had to do some research into .inf files (these help download .cur & .ani files into Windows systems) and .cape files (which are how Mousecape cursors are stored). Now, the difference between .cur files and normal .png files is that .cur files store an additional value (a hotspot value, which tells at what exact point the cursor can click? That’s the best explanation I have right now). And to get this value, you need to parse through the binary file of a .cur file to specific bytes. Through those specific bytes (stored as these funny little things called little-endian numbers (?)) we get our x and y value of the hotspot. With this predetermined value set by the author of the cursorpack, I can now place that directly into the .cape value. Less hassle for the user! With all of that out of the way, let me succinctly write what I have accomplished here: Wrote a Python script to get the values of the cursor hotspot from a .cur value, by taking the byte data and converting them into integers. Now, there was some struggle in getting .ani cursors (animated cursors!) to do the same thing (as you can see), and I haven’t exactly figured out what byte data things I need to do with that. (More research… I suppose :/) My next step tomorrow is to figure that out. Point is, that I got the .cur file to give me what I need. (I am quite aware of the rambling here, it is late and I will edit this log tomorrow.)
Devlog #2: Successfully got .ani hotspot value To read the .ani file, I had to go through a lot of trouble. .ani files are binary files, which means a a weird amount of struggle regarding reading them. And it’s not as simple as reading a .cur file, since .ani files are dynamic in their number of bytes. After fighting the internet for an ani-file parser, and a LOT of struggle with that ani-file library… being outdated… I went in and edited the issues with the ani-file library, still struggled to get it working… and gave up eventually. I resorted to Gemini to help me debug the issue. Got it working finally! A little note: did have to fight the AI as well to get it to work… but here it is! Now I have hotspot values for both .cur and .ani cursors… and the hard part is done I believe. (I hope I didn’t jinx myself…)...
|
1792760086.4283876
|
1793364886.4283876
|
|
57204
|
PERFECT DAYY by @aliya | Stardance
|
aliya
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T21:19:19Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "ABOUT: ✨ It’s a website which is supposed to help you be more productive. You have three tasks. The more tasks you complete, the sun rises, helping the dillagers (ducks+villagers = dillagers, cuz the ducks are villagers) come out of their home and work for their families and bring them food. But if you keep stalling the tasks… they’ll go hungry.. and have nothing to feed their family… You want that? THEN QUIT WHINING AND GET TO WORK SUSAN! (Apologies to the Susans out in the world.) WHAT I LEARNT: 🤩🤩🤩 Lots of css properties and javascript (I’m a total newbie; I started in July) and to for the love of god — RECHECK YOUR CODE. PROBLEMS 😰😰 AND SOLUTIONS: 🥳🥳 I used html, a lot of css and some java. I had issues in pixelating the background and creating these shapes (still trying to get a hang of the pixelated thing.) I also kept having an error while building the notepad, it would either not show up or wouldn’t align with the animation. I realized I was using some wrong css properties and kept mixing stuff up. I also accidentally kept duplicating the amount of ducks lol but it was solved by just revisiting your code again at different times.", "repo": "https://github.com/aliya-8411/Perfect-Day-website", "demo": "https://aliya-8411.github.io/Perfect-Day-website/"}]...
|
[{"post_id": 69742, "ts": "202 [{"post_id": 69742, "ts": "2026-09-17T18:10:21Z", "hours": 1.1392, "text": "Hi, I’m alive. What a surprise, huh?” So my guess is you might be wondering where I was all these days. So lemme just tell you which hell I was damned to. So basically we went to our grandmas house for a lil while. It’s not in the city its more in the country side and there are jackals in those fields. Me and my cousin were wandering and we saw a puppy. Or what we thought was a puppy , I tried to pet it and then we hear : ” WWEEEAAAOOO WEEAAOOO” And those who don’t know jackals have this eery cry like thing its creepy as hell and then the puppy starts bakring like CRAZY , i could see the ishowspeed in him, parents need to monitor what their child is watching. AND THEN THE JACKALS STARTED COMING TOWARDS AND WE STARTED RUNNING BUT THE BACKDOOR (the one towards the fields and we came from) WAS LOCKED AND WE STARTED SCREAMING AND CRYING AND THEN MY GRANDMA CAME OUT WITH A SHOTGUN AND- nothing like that happened. I never went to my grandmas house, there aren’t even jackals there. It is in the country side tho. I was just lazy. :| uhh yeahh so umm BUT I completed the project! Woo hoo yeahhh (crickets) The secret suprise was ducks. Duck-villagers. Dillagers if I may. Or Duckagers? One tiny duck kept being a nuisance and wasn’t adjusting accordingly to the size but it eventually did. I added a “$2+” msg when u complete the second task so the ducks get an earning and when you complete all your tasks the ducks start a lil dance :) Go see it."}, {"post_id": 60355, "ts": "2026-09-02T17:21:23Z", "hours": 0.4361, "text": "DEVLOG 2: Wassup guysss I didn’t do much today. and i’m not gonna tell it yet either XD HOWEVER, keep in mind that it involves ducks. And I haven’t committed changes yet either so don’t bother :P But thats not it , I’m not sure if this is to early to say cuz I only have four followers in total but still, seeing these replies and people engaging with my devlogs really makes me happy, esp since I’m having some rough days cuz I just found out my ‘friends’ turned out to be faker than those no borax, no activator, no glue slime videos (ifykyk). But ya’ll GENUINELY making me smile. So thanks. Alot. (Me rn:)"}, {"post_id": 59718, "ts": "2026-09-01T17:21:10Z", "hours": 1.99, "text": "DEVLOG 1: Although the event is over, I still thought I’d make some cool changes. Today I adjusted the position of the sun better, to look like it’s actually rising and then I added a color transition, and I also updated the readme. PLEASE READ IT. See you tmrw, (I’ll be finishing this frst and then I’ll start on the personal site again.)"}]...
|
Title: PERFECT DAYY by @aliya | Stardance
Devlogs Title: PERFECT DAYY by @aliya | Stardance
Devlogs:
DEVLOG 1: Although the event is over, I still thought I’d make some cool changes. Today I adjusted the position of the sun better, to look like it’s actually rising and then I added a color transition, and I also updated the readme. PLEASE READ IT. See you tmrw, (I’ll be finishing this frst and then I’ll start on the personal site again.)
DEVLOG 2: Wassup guysss I didn’t do much today. and i’m not gonna tell it yet either XD HOWEVER, keep in mind that it involves ducks. And I haven’t committed changes yet either so don’t bother :P But thats not it , I’m not sure if this is to early to say cuz I only have four followers in total but still, seeing these replies and people engaging with my devlogs really makes me happy, esp since I’m having some rough days cuz I just found out my ‘friends’ turned out to be faker than those no borax, no activator, no glue slime videos (ifykyk). But ya’ll GENUINELY making me smile. So thanks. Alot. (Me rn:)
Hi, I’m alive. What a surprise, huh?” So my guess is you might be wondering where I was all these days. So lemme just tell you which hell I was damned to. So basically we went to our grandmas house for a lil while. It’s not in the city its more in the country side and there are jackals in those fields. Me and my cousin were wandering and we saw a puppy. Or what we thought was a puppy , I tried to pet it and then we hear : ” WWEEEAAAOOO WEEAAOOO” And those who don’t know jackals have this eery cry like thing its creepy as hell and then the puppy starts bakring like CRAZY , i could see the ishowspeed in him, parents need to monitor what their child is watching. AND THEN THE JACKALS STARTED COMING TOWARDS AND WE STARTED RUNNING BUT THE BACKDOOR (the one towards the fields and we came from) WAS LOCKED AND WE STARTED SCREAMING AND CRYING AND THEN MY GRANDMA CAME OUT WITH A SHOTGUN AND- nothing like that happened. I never went to my grandmas house, there aren’t even jackals there. It is in the country side tho. I was just lazy. :| uhh yeahh so umm BUT I completed the project! Woo hoo yeahhh (crickets) The secret suprise was ducks. Duck-villagers. Dillagers if I may. Or Duckagers? One tiny duck kept being a nuisance and wasn’t adjusting accordingly to the size but it eventually did. I added a “$2+” msg when u complete the second task so the ducks get an earning and when you complete all your tasks the ducks start a lil dance :) Go see it.
Ships:
ABOUT: ✨ It’s a website which is supposed to help you be more productive. You have three tasks. The more tasks you complete, the sun rises, helping the dillagers (ducks+villagers = dillagers, cuz the ducks are villagers) come out of their home and work for their families and bring them food. But if you keep stalling the tasks… they’ll go hungry.. and have nothing to feed their family… You want that? THEN QUIT WHINING AND GET TO WORK SUSAN! (Apologies to the Susans out in the world.) WHAT I LEARNT: 🤩🤩🤩 Lots of css properties and javascript (I’m a total newbie; I started in July) and to for the love of god — RECHECK YOUR CODE. PROBLEMS 😰😰 AND SOLUTIONS: 🥳🥳 I used html, a lot of css and some java. I had issues in pixelating the background and creating these shapes (still trying to get a hang of the pixelated thing.) I also kept having an error while building the notepad, it would either not show up or wouldn’t align with the animation. I realized I was using some wrong css properties and kept mixing stuff up. I also accidentally kept duplicating the amount of ducks lol but it was solved by just revisiting your code again at different times....
|
1793350073.684094
|
1793436473.684094
|
|
32752
|
FourThirtyFive by @thenasaplusit | Stardance
|
thenasaplusit
|
0
|
17.57
|
0
|
[]
|
[{"post_id": 69744, "ts": "202 [{"post_id": 69744, "ts": "2026-09-17T18:17:38Z", "hours": 0.8844, "text": "Now my pace is picking up, I’ve already gotten the initial work in place for showing info about the election! I needed to scrape the infobox from the Wikipedia page on the election (in this case https://en.wikipedia.org/wiki/2026_United_States_Senate_election_in_Texas ), pass a useragent so it doesn’t deny access, and then render the HTML within the app, which works suprisingly beautifully in both dark and light mode."}, {"post_id": 69339, "ts": "2026-09-16T20:45:29Z", "hours": 4.6253, "text": "After a hell of a lot of procrastination and conflicts in my head on what to do, I finally have a almost-complete interface! As you can see, this model predicts outcomes that align fairly well with models such as RaceToTheWH or Silver Bulletin, if a bit D-optimistic (probably due to the data-driven nature of the model, which I believed was the right path). I want to add some QoL improvements such as candidate names, methodology breakdowns per prediction, and maybe even the latest news per race, but I think overall it’s fairly close to shipping!"}, {"post_id": 54056, "ts": "2026-08-24T20:28:12Z", "hours": 4.1094, "text": "Well, I switched to a ridge regression model, which yielded far better results. Did you know most regression models can have inference run with just a few basic json parameters? Well, I didn’t until today, but they can. Anyway, with that done and mostly accurate, I got my first prediction working and with the assistance of Copilot, even a window! Now, there is still serious work on the table, but it feel good to finally have something tangible, doesn’t it?"}, {"post_id": 53382, "ts": "2026-08-23T22:15:14Z", "hours": 4.0064, "text": "It seems that maybe using a gradient-boosted tree with the limited features I can use with only 12 data points is perhaps a bad idea…. A one-point swing in the generic ballot causes a double-digit swing in the predicted national lean, turning a predicted blue wave into a comfortable Republican win."}, {"post_id": 51627, "ts": "2026-08-21T12:27:56Z", "hours": 3.9403, "text": "Preprocessing the data is finally over (I really slacked off for a while, bad idea)! This was actually fairly straightforward to do, it’s just that I kept having different ideas on how to implement the model. What I ended up settling on is a XGBoost gradient-boosted tree that predicts the national House lean (even though this will start by predicting Senate races) using three fundamentals, and then it will use a polling aggregate per race that gets more weight as election day nears."}]...
|
Title: FourThirtyFive by @thenasaplusit | Stardanc Title: FourThirtyFive by @thenasaplusit | Stardance
Devlogs:
Preprocessing the data is finally over (I really slacked off for a while, bad idea)! This was actually fairly straightforward to do, it’s just that I kept having different ideas on how to implement the model. What I ended up settling on is a XGBoost gradient-boosted tree that predicts the national House lean (even though this will start by predicting Senate races) using three fundamentals, and then it will use a polling aggregate per race that gets more weight as election day nears.
It seems that maybe using a gradient-boosted tree with the limited features I can use with only 12 data points is perhaps a bad idea…. A one-point swing in the generic ballot causes a double-digit swing in the predicted national lean, turning a predicted blue wave into a comfortable Republican win.
Well, I switched to a ridge regression model, which yielded far better results. Did you know most regression models can have inference run with just a few basic json parameters? Well, I didn’t until today, but they can. Anyway, with that done and mostly accurate, I got my first prediction working and with the assistance of Copilot, even a window! Now, there is still serious work on the table, but it feel good to finally have something tangible, doesn’t it?
After a hell of a lot of procrastination and conflicts in my head on what to do, I finally have a almost-complete interface! As you can see, this model predicts outcomes that align fairly well with models such as RaceToTheWH or Silver Bulletin, if a bit D-optimistic (probably due to the data-driven nature of the model, which I believed was the right path). I want to add some QoL improvements such as candidate names, methodology breakdowns per prediction, and maybe even the latest news per race, but I think overall it’s fairly close to shipping!
Now my pace is picking up, I’ve already gotten the initial work in place for showing info about the election! I needed to scrape the infobox from the Wikipedia page on the election (in this case https://en.wikipedia.org/wiki/2026_United_States_Senate_election_in_Texas ), pass a useragent so it doesn’t deny access, and then render the HTML within the app, which works suprisingly beautifully in both dark and light mode....
|
1793231747.4227102
|
1793836547.4227102
|
|
62001
|
My own site! by @Praca | Stardance
|
Praca
|
0
|
0.84
|
0
|
[]
|
[{"post_id": 69749, "ts": "202 [{"post_id": 69749, "ts": "2026-09-17T18:31:31Z", "hours": 0.8389, "text": "Im working on my site!"}]...
|
Title: My own site! by @Praca | Stardance
Devlogs Title: My own site! by @Praca | Stardance
Devlogs:
Im working on my site!...
|
1793044129.5022938
|
1793648929.5022938
|
|
16803
|
Guitar Tuner by @Alexander_Wolf | Stardance
|
Alexander_Wolf
|
0
|
2.08
|
0
|
[]
|
[{"post_id": 6975, "ts": "2026 [{"post_id": 6975, "ts": "2026-06-11T18:22:18Z", "hours": 2.0792, "text": "Devlog #01 I tried to determine the guitar string played with the frequencies of a 2 second audio (wav file). There are many issues with the audio quality which causes the program to just think there’s no noise and fail. I tried many attempts to improve the quality as well as the volume, but this just worked for 3 out of the 6 open strings. Right now the goal is to reach the 6 open strings. After that I’ll go for the variations. If you have some suggestions or have done something like this before, I would gladly accept any help possible ;)"}]...
|
Title: Guitar Tuner by @Alexander_Wolf | Stardance Title: Guitar Tuner by @Alexander_Wolf | Stardance
Devlogs:
Devlog #01 I tried to determine the guitar string played with the frequencies of a 2 second audio (wav file). There are many issues with the audio quality which causes the program to just think there’s no noise and fail. I tried many attempts to improve the quality as well as the volume, but this just worked for 3 out of the 6 open strings. Right now the goal is to reach the 6 open strings. After that I’ll go for the variations. If you have some suggestions or have done something like this before, I would gladly accept any help possible ;)...
|
1792777822.2764843
|
1793382622.2764843
|
|
57829
|
web_fileencoder by @roy4002 | Stardance
|
roy4002
|
0
|
5.42
|
0
|
[]
|
[{"post_id": 69757, "ts": "202 [{"post_id": 69757, "ts": "2026-09-17T18:48:27Z", "hours": 2.4531, "text": "Finally added support to encripyt all file types . except your feeling for her can’t do anything of that 🥲"}, {"post_id": 67374, "ts": "2026-09-13T13:48:12Z", "hours": 2.9647, "text": "This is what happens when you make plans in half sleep 🙂🙂. Removing the base64 function because it increases the file size by freaking 33% without any benefit . Sad but 🥲have to re-write the whole code from zero. Moral of the story compleat your sleep"}]...
|
Title: web_fileencoder by @roy4002 | Stardance
De Title: web_fileencoder by @roy4002 | Stardance
Devlogs:
This is what happens when you make plans in half sleep 🙂🙂. Removing the base64 function because it increases the file size by freaking 33% without any benefit . Sad but 🥲have to re-write the whole code from zero. Moral of the story compleat your sleep
Finally added support to encripyt all file types . except your feeling for her can’t do anything of that 🥲...
|
1792727309.9321108
|
1793332109.9321108
|
|
53301
|
reverse clock by @zenzei | Stardance
|
zenzei
|
0
|
3.47
|
0
|
[]
|
[{"post_id": 69770, "ts": "202 [{"post_id": 69770, "ts": "2026-09-17T19:14:46Z", "hours": 0.3, "text": "It works finally"}, {"post_id": 69318, "ts": "2026-09-16T19:47:14Z", "hours": 1.8253, "text": "To train a model is so annoying !"}, {"post_id": 54435, "ts": "2026-08-25T13:24:38Z", "hours": 0.6069, "text": "Bitmap is a simple task but there are some debugging area for rephrasing ."}, {"post_id": 53658, "ts": "2026-08-24T09:59:28Z", "hours": 0.7333, "text": "The joyful part of CAD design done , btw so many task still has to be done!"}]...
|
Title: reverse clock by @zenzei | Stardance
Devlo Title: reverse clock by @zenzei | Stardance
Devlogs:
The joyful part of CAD design done , btw so many task still has to be done!
Bitmap is a simple task but there are some debugging area for rephrasing .
To train a model is so annoying !
It works finally...
|
1792745258.6282315
|
1793350058.6282315
|
|
11950
|
Assembly os x64 custom kernel and bootloader by @s Assembly os x64 custom kernel and bootloader by @scrt401 | Stardance...
|
scrt401
|
1
|
415.3
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T10:02:38Z", "hours": 415.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Simple os with access to Ring 0 stuff the ai no work sadly", "repo": "https://github.com/majster0su0lin/SofaOs/tree/SofaOs-x86/x64", "demo": "https://github.com/majster0su0lin/SofaOs/releases/tag/V1"}]...
|
[{"post_id": 69772, "ts": "202 [{"post_id": 69772, "ts": "2026-09-17T19:19:09Z", "hours": 0.3047, "text": "ok so let me defend originality : it is a ring 0 os made for hardvare inspection while i saw others did os stuff to before me on stardance i already made an os before stardance in arm , technicality : assembly ,usability : it is meant to inspect pcs when something goes wrong hardvare level not daily driver, you decide storitelyng i pored my heart into those devlogs"}, {"post_id": 69042, "ts": "2026-09-16T08:32:04Z", "hours": 9.0064, "text": "Ok so refined devlogs polished sofaos and GitHub couldn’t ship because rhe whole kernel inflated from 52 to 838 sectors by some miracle, destroyed interrupt table, tensor hard coded stuff and other stuff it ruined my day also ok so let me defend originality : it is a ring 0 os made for hardvare inspection while i saw others did os stuff to before me on stardance i already made an os before stardance in arm , technicality : assembly ,usability : it is meant to inspect pcs when something goes wrong hardvare level not daily driver, you decide storitelyng i pored my heart into those devlogs"}, {"post_id": 68695, "ts": "2026-09-15T15:39:08Z", "hours": 3.1717, "text": "So today i finished argmax which finds closest token to response, now i have everything but it still has some errors it prints 0 every time so meybie some register colision but the good thing is that it doesn’t crash."}, {"post_id": 66064, "ts": "2026-09-11T17:07:16Z", "hours": 6.7411, "text": "Ok i have successfully made detokenizator which goes trough the token id book that many times as a token because token id =id book entries untill the token, and also i have made matrix–vector dot product calculator which goes through all token ids and translates them into a big amount of vectors which then in another step i will be doing comparison hbuf with all these vectors to find a token with lovest diff and that will be our output token, but big but it still isn’t tested i will be testing it when i will have the full command done for now i just want to live in an illusion that my code is error free"}, {"post_id": 65678, "ts": "2026-09-11T00:04:31Z", "hours": 7.4689, "text": "There was a problem with pointers in rnsm found it when i did double check and from there errors just piled up but at least its fixed now"}, {"post_id": 65088, "ts": "2026-09-09T23:44:59Z", "hours": 10.7261, "text": "Today i got help from my great teacher and was able to do more than usual, today i did hbuf setuper it basically just calls fcon 576 times to translate the values from 16 bit quantization to 32 then i have written a function RMSNorm which uses hbuf and weights you give it and calculates rescaled feuture vector"}, {"post_id": 64514, "ts": "2026-09-08T23:45:58Z", "hours": 4.1469, "text": "I have no idea how to fix it so i retreated ro the ol reliable method by first hardcoding it and after some time actually fixing it"}, {"post_id": 64041, "ts": "2026-09-08T05:17:04Z", "hours": 9.4239, "text": "Today i am a bit better so i did the harder part that is needed to be done, i have made tensor info gatherer, basically each layer has 9 tensor info, so for my model 9*30 tensor infos, also the string i am comparing in the function needs to be like [blk.][number of current layer in decimal(use bintrn)][specification string], it still doesn’t work but it will be something like infinite inc loop to memory or division basically smth that generates general protection, also because I was smart i saved my previous error where i used tensor info praser so i didn’t Neded to reerite it."}, {"post_id": 63041, "ts": "2026-09-06T16:40:58Z", "hours": 13.9978, "text": "Ok so uuh those 5l of Kofola wasn’t a great ide today i got a fever or flu or whatever the thing that makes you feel hot but i made some progress even though it was hard cuz i had a headache and couldn’t do anything so what i did i made a f16 to 32 translation and you might say hmm but this doesn’t seem too vomplex first of all i had to split registers inro 3 sections do calculation on them and the glue them together to xmm0 but what you might not know is if you don’t allow xmm is 32 bit mode it will throw gp an the whole code and you cant know why it crashed because whole runtime in crash log looks absolutely normal for some reason also I don’t actually care about the time anymore i just want to get this working so i can get a laptop to not code on my phone"}, {"post_id": 62412, "ts": "2026-09-05T19:08:49Z", "hours": 4.2733, "text": "Ok bad News today i drank 5l of Kofola and now me attention me hyperactive me cant concentrate but did token and bos token enumetion there was a problem with division because of no xor rdx,rdx but ez fix if boestoken add 1 it adds tokwn"}, {"post_id": 61794, "ts": "2026-09-04T21:32:05Z", "hours": 9.7972, "text": "Made the metadata praser work i was using tensor format and nkt metadata Format also verifyed it works on pc"}, {"post_id": 61430, "ts": "2026-09-04T10:41:02Z", "hours": 10.1667, "text": "Tokenizer done now for vector context calculator . The tokenizer was somwhat refusing to work but one rewrite later it subdued to my power it is split into teo parts the text decoder and encoder decoder formats the words for encoder and encoder finds tokens for the words"}, {"post_id": 61031, "ts": "2026-09-03T18:48:37Z", "hours": 9.1417, "text": "Ok i gave lost the war against the matadata praser i will not fight it now i will fix it in second ship for now i have hard coded the data needed and also made the core of the tokenizer which was relatively easy compared to the praser"}, {"post_id": 60700, "ts": "2026-09-03T07:49:19Z", "hours": 9.9789, "text": "Ok all metadata entry data prased but when i delete the print at the bottom it for some reason triple faults going to report every ±9 hrs because i need to speedrun this because the stardance is ending soon now onto tensor data praser"}, {"post_id": 60330, "ts": "2026-09-02T16:41:32Z", "hours": 9.3447, "text": "Ok bigg devlog todat i decided to speedrun this so i can ship this project as fast as possible also changed the model to a smaller native f16 quantization and It works which is a proof that anyone can put their model into sofaos and run it rn it just loops troug metadata to find general architecture"}, {"post_id": 59645, "ts": "2026-09-01T15:49:30Z", "hours": 5.2714, "text": "Hello good news today have started on setting up the data from GGUF rn it is just getting version metadata entryes and tensor entry, I Also started a loop for the metadata entryes but just started this one was easy cuz it has prefixed everything 4 bytes gguf magic 4 version 8 metadata entryes and 8 tensor info entry which makes 24 bytes in total"}, {"post_id": 58380, "ts": "2026-08-30T19:52:10Z", "hours": 6.5333, "text": "I have successfully loaded whole LLM problem was that It was loading 1 gb by 512 bytes and that takes very long and thats why it seemed it hanged I fixed it by giving it a counter so you can see that it doesn’t hang"}, {"post_id": 57573, "ts": "2026-08-29T19:16:39Z", "hours": 6.3667, "text": "Ok sooo I made the code buuut it hangs when I do the loading idk what happening will have to debug"}, {"post_id": 55739, "ts": "2026-08-27T18:30:20Z", "hours": 6.9333, "text": "Ok I give up on writing it, cuz GGUF file structure is ass and I can’t write it in the way it should be I am going to pull a cheap trick by putting a control string at the end of the file to know when the file is ending below is structure of how the whole file should look like"}, {"post_id": 54996, "ts": "2026-08-26T12:56:49Z", "hours": 8.4742, "text": "Ok I was figuring out how to load the gguf file which I think I got right but I can’t find a way to know how many sectors to pull out of disk because the metadata in gguf aren’t always the same nor size of the entries are the same so there is now way to know when they end and I need them to find the size of the file in picture you can see how the metadata is structured"}, {"post_id": 54059, "ts": "2026-08-24T20:31:14Z", "hours": 2.0172, "text": "Ok I have made a new command inout it let’s user chose number port in and port to listen from and it spits out response from the port as you can see I tried corrupting time register and it worked"}, {"post_id": 53159, "ts": "2026-08-23T16:30:52Z", "hours": 4.3508, "text": "Ok so I half rewritten the code for sector read I had to drop hard coded 0 and look for actuall devices to get the data from as you can see it works still"}, {"post_id": 52420, "ts": "2026-08-22T15:26:25Z", "hours": 4.1333, "text": "Ok so I was working on gluing gguf file at the end of my iso you can see image it was successful also needed to generalize ahci driver to work on all PCs now writing the gguf retrieve from disk code"}, {"post_id": 51949, "ts": "2026-08-21T22:06:31Z", "hours": 6.9186, "text": "Ok so uuuh….. Somehow secr destroyditself up and I had to fix it the thing is that from 0xffffff… Somehow one of the f magically dissapeared and I had to basically trace whole Drs sector to find what was wrong also waking aps for some reason isn’t working even I am using textbook code to wake it up I now have no idea why is it not working mameybie I will gat back to it at the end and now do the special function because everyone on stardance for some reason started doing X64 os so I had to come up with something radical, I am going to make a full local assembly llm chat engine like llama.cpp fully in assembly for sofaos all things from scratch tokenizer network loading calculation and other stuff I have nothing really to show so just enjoy some random pic from my gallery"}, {"post_id": 50626, "ts": "2026-08-19T21:25:41Z", "hours": 1.5097, "text": "Aps not responding should put 67 to px67 but aps not doing idk if because of qemu or whatever I don’t want to debug this piece of shi"}, {"post_id": 48801, "ts": "2026-08-17T10:37:03Z", "hours": 9.8594, "text": "Spent I don’t even know how much time I lost track of time doing this shit I did it whole night I am happy that I am going to sleep at 12:33 the error was that I wasn’t sending enough sipis so the aps didn’t actually wake up but I didn’t knew that so I was tracing the whole os to find the error then I actually checked on internet how should it be done and that’s when I was finally able to fix this simple ass problem"}, {"post_id": 46606, "ts": "2026-08-13T23:28:04Z", "hours": 9.4331, "text": "Finished the core wakeup now I can wakeup any numver of cores that I have and now I am going to make some serious multitasking i still need to do the trampoline to launch the cores to 64 bit mode but they will be fast also the limit of cores for legacy PCs is 255 but it is still engouh to wake up amd epyc"}, {"post_id": 45351, "ts": "2026-08-11T19:00:05Z", "hours": 7.7386, "text": "Ok I have found the number of cores which is a huge milestone now I need to find what is the bsp to not wakeup already woken up core number of cores is in a memory buffer 256 bytes big cous the CPU doesn’t have enough IDs for more than 255 cores so even In future it will be ok"}, {"post_id": 42209, "ts": "2026-08-06T20:25:10Z", "hours": 6.2731, "text": "Found Madt table finally going to get number of cores to wakeup"}, {"post_id": 41610, "ts": "2026-08-05T22:27:33Z", "hours": 7.7322, "text": "I did some preparations for init sipi sipi trampoline to wake up more cores for multitasking it just finds acpi rsdp in memory I also want to be able for user to chose how many cores to wakeup"}, {"post_id": 39343, "ts": "2026-08-02T08:01:35Z", "hours": 9.4314, "text": "Added the ability to read what’s on the disk there was a problem with R14 cuz one function that I called used it but push and pop fixed it after I traced the problem without it would print 20 endlessly till it crashed"}, {"post_id": 36740, "ts": "2026-07-29T00:11:34Z", "hours": 4.6686, "text": "Ok I have found the solution instead of looking trough all ports it stops on the firt found idk how it works but it works now I can extract data from disk"}, {"post_id": 35588, "ts": "2026-07-27T03:43:28Z", "hours": 9.2492, "text": "Something is very wrong here. Every debug marker along the boot/init path prints exactly like it should, and it still never makes it to the shell. Going to need a proper trace through this instead of guessing."}, {"post_id": 32921, "ts": "2026-07-22T12:09:35Z", "hours": 8.0367, "text": "PCI bus enumeration, done by brute-force, but like every os does it this way loop over every bus, device, and function number, write a config address to IO port 0xCF8 , read whatever comes back from 0xCFC . All ones means nothing’s there; anything else gets recorded. Once every device on the bus is found, it scans the results for a class code matching AHCI (SATA storage), grabs that device’s BAR5, and starts bringing the controller up — reset bit set, poll until it clears, enable global host control. This is what opens up actual disk read/write instead of relying on BIOS"}, {"post_id": 29065, "ts": "2026-07-15T18:30:38Z", "hours": 0.2567, "text": "Added whatindr just copied function whatincr and changed registers from control to debug"}, {"post_id": 28980, "ts": "2026-07-15T16:38:29Z", "hours": 12.4869, "text": "I added so when the user types it automatically moves screen to VGA buffer so it doesn’t overwrite bad memmory and implemented this thing for cpritn too so if you are near end of the screen it automatically moves up (number of rewrites this function took 3) in pic you can see how cpritn automatically moved up"}, {"post_id": 26737, "ts": "2026-07-11T18:16:27Z", "hours": 9.8742, "text": "Added translate which translates number from hex to dec and also the other way and command to see what in memory I had to make a new function to accept hex and Dec and figure out which one is which than grab byte from memory not 8 bytes was stuck on that then output which was easy cus I already have function for that then added translate which just uses hexbin function for Dec and bin for hex and outputs in the other format also I don’t have much time to code because I am a slave on a construction now and I get paid absolute minimum"}, {"post_id": 20804, "ts": "2026-07-02T14:45:38Z", "hours": 7.6444, "text": "Ok so today I have made saythis command which is basically echo (system says what you tell it to) and whatincr which basically spits out what is in control registers which might be useful for some repairman or whatever but I had to make new functions like bintrn which turns normal pc number into decimal ASCII string but I had the loop wrong it started at wrong point but now it should work"}, {"post_id": 18754, "ts": "2026-06-29T23:04:10Z", "hours": 7.3631, "text": "Added scroll up, just the reverse of scroll down — but still needed its own direction logic and its own set of variables reset correctly, and the first version was so badly written that i just rewrote the thing"}, {"post_id": 16826, "ts": "2026-06-27T10:08:25Z", "hours": 14.0714, "text": "Limited coding time cuz i am on vacation in Berlin but made progress on scrolling the screen now scrolls down good text overflows the bottom. Scroll up still doesn’t exist the first attempt was so tangled it wasn’t worth saving, so that one got scrapped rather than patched."}, {"post_id": 14559, "ts": "2026-06-23T18:40:49Z", "hours": 15.5939, "text": "Added more text commands and started on ones that actually do something, like echo. Also started work on moving text up and down the screen, which is lowk hard"}, {"post_id": 12479, "ts": "2026-06-20T11:33:22Z", "hours": 9.3064, "text": "Completed the command system — a compare routine ( cmper ) checks whatever’s typed against a table of known command strings and jumps straight to that command’s handler on a match. First command wired up was cls , mostly because the screen clearer routine already existed. Everything else gets added the same way from here."}, {"post_id": 11616, "ts": "2026-06-18T22:21:16Z", "hours": 5.1686, "text": "Terminal UI is functional now — Enter does something, and extended interrupts (arrow keys) get decoded properly instead of coming through as garbage. Also added a distinct sys response visual state vs just characters The color choices right now are not best need to actually look into color theory."}, {"post_id": 11321, "ts": "2026-06-18T15:03:42Z", "hours": 3.1789, "text": "Forgot to say this last time, but there’s now a basic (not working) concept of user input reaching the system layer — just the shape of how it should work, not the real thing yet. Finishing that up next so it actually looks like a terminal. Worth sayi the cursor ( curzor ) tracking and the cls screen-clear command both went in a little earlier and are what everything since has been built on top of."}, {"post_id": 11192, "ts": "2026-06-18T09:50:01Z", "hours": 8.1875, "text": "Text now behaves like a normal shell — typing lands where it should, and added a working delete/backspace key plus some general UI cleanup. Starting to lok like an actual terminal instead of a proof of concept."}, {"post_id": 10930, "ts": "2026-06-17T22:14:13Z", "hours": 4.3675, "text": "Keyboard handler is fixed. Can freely type now. thought: there’s currently nothing stopping unrestricted writes from going past where they should, which means someone could in theory type their way into overwriting parts of the running system. Needs boundaries before this goes further."}, {"post_id": 10672, "ts": "2026-06-17T15:09:06Z", "hours": 4.9003, "text": "Fixed yesterday’s error. Now testing on real hardware to check whether the machine actually virtualizes PS2 keyboard controller the same way QEMU does, since the handler logic depends on that"}, {"post_id": 10316, "ts": "2026-06-16T23:51:15Z", "hours": 8.5125, "text": "Tried implementing a keyboard press handler. Sadly, it does not work. Something in the interrupt handling isn’t right — more debugging needed before typing does anything useful."}, {"post_id": 9785, "ts": "2026-06-16T07:03:14Z", "hours": 6.5003, "text": "Finally transitioned into 64-bit mode, so the actual OS can start getting written now. Not going to explain every step in detail since it’s always the same , but simple: built page tables using 2MB pages so the fourth paging level (the 4KB page table) could be skipped entirely, set up the stack, and did the rest of the long-mode setup (PAE, the EFER long-mode-enable bit, then paging itself) before the far jump into 64-bit code."}, {"post_id": 9416, "ts": "2026-06-15T19:29:46Z", "hours": 6.1778, "text": "Big milestone got it running on an actual my pc instead of just QEMU. Had to go back into stage 1 real BIOSes are pickier than QEMU’s about a few things. Nothing structural changed, just les forgiving to handle."}, {"post_id": 9090, "ts": "2026-06-15T05:59:09Z", "hours": 5.4553, "text": "Ok found the bug it was bad cmp flag check still a bad Habit I have from arm to instead of je is Zero try to do arm syntax and do jz, (BZ branch if zero) but now it works ok"}, {"post_id": 8967, "ts": "2026-06-14T22:37:16Z", "hours": 14.9994, "text": "Pulled an all-nighter and finally got a boot working — turned out QEMU was set to -nographic, so my VGA output was being generated correctly but never actually displayed. Once I fixed that, i found a new problem up: once in 32-bit mode, my code started printing from the top of the screen and overwriting text the BIOS had already written. Progress, but a new bug was right behind the old one. Still it doesn’t want to move forward it should print k at the end so something is wrong I am going to investigate It."}, {"post_id": 8362, "ts": "2026-06-13T22:01:15Z", "hours": 16.1964, "text": "I hate this stupid code , literally the only thing I do is find an error, find what could possibly cause it, fix it, and it still doesn’t work. Do that a hundred times, and it turns out the BIOS — which promises not to touch DL — corrupts it anyway during interrupt 0x16. Whatever. Still not fully working, but at least I’ve got the core structure for moving into 32-bit mode. I hate this — why do all x64 processors have to wake up going “uhm I think I’m an IBM processor from 1967” instead of just dropping into 64-bit like ARM does? Also my PC screen broke, so now I’m SSH’d in through Termux to code this thing. I hate assembly but low-key need a new PC — that old Compaq 6510b with 2GHz and two cores isn’t cutting it anymore."}, {"post_id": 7061, "ts": "2026-06-11T20:39:29Z", "hours": 3.8658, "text": "Getting close to 32-bit mode. Added a memory tester using INT 0x15, EAX=0xE820 so the OS actually knows how much RAM exists and where, instead of assuming. Also built two different A20 gate openers — the fast method through port 0x92 first, and a manual read/write test on mirrored addresses as a fallback if that doesn’t take. If one fails, the other starts"}, {"post_id": 6770, "ts": "2026-06-11T10:43:03Z", "hours": 5.9658, "text": "Went back and leaned stage 1 more heavily on the print funtion ( cpritn ) instead of duplicating printing logic, and tightened up the handoff into stage 2. Stage 2 now loads the kernel using a preset Disk Address Packet instead of recalculating the sector count and offset from scratch every single time it runs."}, {"post_id": 5895, "ts": "2026-06-09T21:12:59Z", "hours": 2.0008, "text": "Added LBA (logical block addressing) table implementation — sadly no support hard drives that don’t support it. Also added a test so if the computer’s too old to do extended reads, it just refuses to boot instead of silently corrupting stuff. Auto-retry if something goes wrong, and it jumps to address 0x7E00, where the end of the 2# stage starts."}, {"post_id": 5202, "ts": "2026-06-08T21:59:31Z", "hours": 0.3206, "text": "Did some testing on the 1# stage bootloader today. Now I need to link it up to the 2# stage and then to the actual OS — right now the 1# stage basically just saves what the BIOS hands us (bios present) and tells the system where the 2# stage lives."}]...
|
Title: Assembly os x64 custom kernel and bootloade Title: Assembly os x64 custom kernel and bootloader by @scrt401 | Stardance
Devlogs:
Did some testing on the 1# stage bootloader today. Now I need to link it up to the 2# stage and then to the actual OS — right now the 1# stage basically just saves what the BIOS hands us (bios present) and tells the system where the 2# stage lives.
Added LBA (logical block addressing) table implementation — sadly no support hard drives that don’t support it. Also added a test so if the computer’s too old to do extended reads, it just refuses to boot instead of silently corrupting stuff. Auto-retry if something goes wrong, and it jumps to address 0x7E00, where the end of the 2# stage starts.
Went back and leaned stage 1 more heavily on the print funtion ( cpritn ) instead of duplicating printing logic, and tightened up the handoff into stage 2. Stage 2 now loads the kernel using a preset Disk Address Packet instead of recalculating the sector count and offset from scratch every single time it runs.
Getting close to 32-bit mode. Added a memory tester using INT 0x15, EAX=0xE820 so the OS actually knows how much RAM exists and where, instead of assuming. Also built two different A20 gate openers — the fast method through port 0x92 first, and a manual read/write test on mirrored addresses as a fallback if that doesn’t take. If one fails, the other starts
I hate this stupid code , literally the only thing I do is find an error, find what could possibly cause it, fix it, and it still doesn’t work. Do that a hundred times, and it turns out the BIOS — which promises not to touch DL — corrupts it anyway during interrupt 0x16. Whatever. Still not fully working, but at least I’ve got the core structure for moving into 32-bit mode. I hate this — why do all x64 processors have to wake up going “uhm I think I’m an IBM processor from 1967” instead of just dropping into 64-bit like ARM does? Also my PC screen broke, so now I’m SSH’d in through Termux to code this thing. I hate assembly but low-key need a new PC — that old Compaq 6510b with 2GHz and two cores isn’t cutting it anymore.
Pulled an all-nighter and finally got a boot working — turned out QEMU was set to -nographic, so my VGA output was being generated correctly but never actually displayed. Once I fixed that, i found a new problem up: once in 32-bit mode, my code started printing from the top of the screen and overwriting text the BIOS had already written. Progress, but a new bug was right behind the old one. Still it doesn’t want to move forward it should print k at the end so something is wrong I am going to investigate It.
Ok found the bug it was bad cmp flag check still a bad Habit I have from arm to instead of je is Zero try to do arm syntax and do jz, (BZ branch if zero) but now it works ok
Big milestone got it running on an actual my pc instead of just QEMU. Had to go back into stage 1 real BIOSes are pickier than QEMU’s about a few things. Nothing structural changed, just les forgiving to handle.
Finally transitioned into 64-bit mode, so the actual OS can start getting written now. Not going to explain every step in detail since it’s always the same , but simple: built page tables using 2MB pages so the fourth paging level (the 4KB page table) could be skipped entirely, set up the stack, and did the rest of the long-mode setup (PAE, the EFER long-mode-enable bit, then paging itself) before the far jump into 64-bit code.
Tried implementing a keyboard press handler. Sadly, it does not work. Something in the interrupt handling isn’t right — more debugging needed before typing does anything useful.
Fixed yesterday’s error. Now testing on real hardware to check whether the machine actually virtualizes PS2 keyboard controller the same way QEMU does, since the handler logic depends on that
Keyboard handler is fixed. Can freely type now. thought: there’s currently nothing stopping unrestricted writes from going past where they should, which means someone could in theory type their way into overwriting parts of the running system. Needs boundaries before this goes further.
Text now behaves like a normal shell — typing lands where it should, and added a working delete/backspace key plus some general UI cleanup. Starting to lok like an actual terminal instead of a proof of concept.
Forgot to say this last time, but there’s now a basic (not working) concept of user input reaching the system layer — just the shape of how it should work, not the real thing yet. Finishing that up next so it actually looks like a terminal. Worth sayi the cursor ( curzor ) tracking and the cls screen-clear command both went in a little earlier and are what everything since has been built on top of.
Terminal UI is functional now — Enter does something, and extended interrupts (arrow keys) get decoded properly instead of coming through as garbage. Also added a distinct sys response visual state vs just characters The color choices right now are not best need to actually look into color theory.
Completed the command system — a compare routine ( cmper ) checks whatever’s typed against a table of known command strings and jumps straight to that command’s handler on a match. First command wired up was cls , mostly because the screen clearer routine already existed. Everything else gets added the same way from here.
Added more text commands and started on ones that actually do something, like echo. Also started work on moving text up and down the screen, which is lowk hard
Limited coding time cuz i am on vacation in Berlin but made progress on scrolling the screen now scrolls down good text overflows the bottom. Scroll up still doesn’t exist the first attempt was so tangled it wasn’t worth saving, so that one got scrapped rather than patched.
Added scroll up, just the reverse of scroll down — but still needed its own direction logic and its own set of variables reset correctly, and the first version was so badly written that i just rewrote the thing
Ok so today I have made saythis command which is basically echo (system says what you tell it to) and whatincr which basically spits out what is in control registers which might be useful for some repairman or whatever but I had to make new functions like bintrn which turns normal pc number into decimal ASCII string but I had the loop wrong it started at wrong point but now it should work
Added translate which translates number from hex to dec and also the other way and command to see what in memory I had to make a new function to accept hex and Dec and figure out which one is which than grab byte from memory not 8 bytes was stuck on that then output which was easy cus I already have function for that then added translate which just uses hexbin function for Dec and bin for hex and outputs in the other format also I don’t have much time to code because I am a slave on a construction now and I get paid absolute minimum
I added so when the user types it automatically moves screen to VGA buffer so it doesn’t overwrite bad memmory and implemented this thing for cpritn too so if you are near end of the screen it automatically moves up (number of rewrites this function took 3) in pic you can see how cpritn automatically moved up
Added whatindr just copied function whatincr and changed registers from control to debug
PCI bus enumeration, done by brute-force, but like every os does it this way loop over every bus, device, and function number, write a config address to IO port 0xCF8 , read whatever comes back from 0xCFC . All ones means nothing’s there; anything else gets recorded. Once every device on the bus is found, it scans the results for a class code matching AHCI (SATA storage), grabs that device’s BAR5, and starts bringing the controller up — reset bit set, poll until it clears, enable global host control. This is what opens up actual disk read/write instead of relying on BIOS
Something is very wrong here. Every debug marker along the boot/init path prints exactly like it should, and it still never makes it to the shell. Going to need a proper trace through this instead of guessing.
Ok I have found the solution instead of looking trough all ports it stops on the firt found idk how it works but it works now I can extract data from disk
Added the ability to read what’s on the disk there was a problem with R14 cuz one function that I called used it but push and pop fixed it after I traced the problem without it would print 20 endlessly till it crashed
I did some preparations for init sipi sipi trampoline to wake up more cores for multitasking it just finds acpi rsdp in memory I also want to be able for user to chose how many cores to wakeup
Found Madt table finally going to get number of cores to wakeup
Ok I have found the number of cores which is a huge milestone now I need to find what is the bsp to not wakeup already woken up core number of cores is in a memory buffer 256 bytes big cous the CPU doesn’t have enough IDs for more than 255 cores so even In future it will be ok
Finished the core wakeup now I can wakeup any numver of cores that I have and now I am going to make some serious multitasking i still need to do the trampoline to launch the cores to 64 bit mode but they will be fast also the limit of cores for legacy PCs is 255 but it is still engouh to wake up amd epyc
Spent I don’t even know how much time I lost track of time doing this shit I did it whole night I am happy that I am going to sleep at 12:33 the error was that I wasn’t sending enough sipis so the aps didn’t actually wake up but I didn’t knew that so I was tracing the whole os to find the error then I actually checked on internet how should it be done and that’s when I was finally able to fix this simple ass problem
Aps not responding should put 67 to px67 but aps not doing idk if because of qemu or whatever I don’t want to debug this piece of shi
Ok so uuuh….. Somehow secr destroyditself up and I had to fix it the thing is that from 0xffffff… Somehow one of the f magically dissapeared and I had to basically trace whole Drs sector to find what was wrong also waking aps for some reason isn’t working even I am using textbook code to wake it up I now have no idea why is it not working mameybie I will gat back to it at the end and now do the special function because everyone on stardance for some reason started doing X64 os so I had to come up with something radical, I am going to make a full local assembly llm chat engine like llama.cpp fully in assembly for sofaos all things from scratch tokenizer network loading calculation and other stuff I have nothing really to show so just enjoy some random pic from my gallery
Ok so I was working on gluing gguf file at the end of my iso you can see image it was successful also needed to generalize ahci driver to work on all PCs now writing the gguf retrieve from disk code
Ok so I half rewritten the code for sector read I had to drop hard coded 0 and look for actuall devices to get the data from as you can see it works still
Ok I have made a new command inout it let’s user chose number port in and port to listen from and it spits out response from the port as you can see I tried corrupting time register and it worked
Ok I was figuring out how to load the gguf file which I think I got right but I can’t find a way to know how many sectors to pull out of disk because the metadata in gguf aren’t always the same nor size of the entries are the same so there is now way to know when they end and I need them to find the size of the file in picture you can see how the metadata is structured
Ok I give up on writing it, cuz GGUF file structure is ass and I can’t write it in the way it should be I am going to pull a cheap trick by putting a control string at the end of the file to know when the file is ending below is structure of how the whole file should look like
Ok sooo I made the code buuut it hangs when I do the loading idk what happening will have to debug
I have successfully loaded whole LLM problem was that It was loading 1 gb by 512 bytes and that takes very long and thats why it seemed it hanged I fixed it by giving it a counter so you can see that it doesn’t hang
Hello good news today have started on setting up the data from GGUF rn it is just getting version metadata entryes and tensor entry, I Also started a loop for the metadata entryes but just started this one was easy cuz it has prefixed everything 4 bytes gguf magic 4 version 8 metadata entryes and 8 tensor info entry which makes 24 bytes in total
Ok bigg devlog todat i decided to speedrun this so i can ship this project as fast as possible also changed the model to a smaller native f16 quantization and It works which is a proof that anyone can put their model into sofaos and run it rn it just loops troug metadata to find general architecture
Ok all metadata entry data prased but when i delete the print at the bottom it for some reason triple faults going to report every ±9 hrs because i need to speedrun this because the stardance is ending soon now onto tensor data praser
Ok i gave lost the war against the matadata praser i will not fight it now i will fix it in second ship for now i have hard coded the data needed and also made the core of the tokenizer which was relatively easy compared to the praser
Tokenizer done now for vector context calculator . The tokenizer was somwhat refusing to work but one rewrite later it subdued to my power it is split into teo parts the text decoder and encoder decoder formats the words for encoder and encoder finds tokens for the words
Made the metadata praser work i was using tensor format and nkt metadata Format also verifyed it works on pc
Ok bad News today i drank 5l of Kofola and now me attention me hyperactive me cant concentrate but did token and bos token enumetion there was a problem with division because of no xor rdx,rdx but ez fix if boestoken add 1 it adds tokwn
Ok so uuh those 5l of Kofola wasn’t a great ide today i got a fever or flu or whatever the thing that makes you feel hot but i made some progress even though it was hard cuz i had a headache and couldn’t do anything so what i did i made a f16 to 32 translation and you might say hmm but this doesn’t seem too vomplex first of all i had to split registers inro 3 sections do calculation on them and the glue them together to xmm0 but what you might not know is if you don’t allow xmm is 32 bit mode it will throw gp an the whole code and you cant know why it crashed because whole runtime in crash log looks absolutely normal for some reason also I don’t actually care about the time anymore i just want to get this working so i can get a laptop to not code on my phone
Today i am a bit better so i did the harder part that is needed to be done, i have made tensor info gatherer, basically each layer has 9 tensor info, so for my model 9*30 tensor infos, also the string i am comparing in the function needs to be like [blk.][number of current layer in decimal(use bintrn)][specification string], it still doesn’t work but it will be something like infinite inc loop to memory or division basically smth that generates general protection, also because I was smart i saved my previous error where i used tensor info praser so i didn’t Neded to reerite it.
I have no idea how to fix it so i retreated ro the ol reliable method by first hardcoding it and after some time actually fixing it
Today i got help from my great teacher and was able to do more than usual, today i did hbuf setuper it basically just calls fcon 576 times to translate the values from 16 bit quantization to 32 then i have written a function RMSNorm which uses hbuf and weights you give it and calculates rescaled feuture vector
There was a problem with pointers in rnsm found it when i did double check and from there errors just piled up but at least its fixed now
Ok i have successfully made detokenizator which goes trough the token id book that many times as a token because token id =id book entries untill the token, and also i have made matrix–vector dot product calculator which goes through all token ids and translates them into a big amount of vectors which then in another step i will be doing comparison hbuf with all these vectors to find a token with lovest diff and that will be our output token, but big but it still isn’t tested i will be testing it when i will have the full command done for now i just want to live in an illusion that my code is error free
So today i finished argmax which finds closest token to response, now i have everything but it still has some errors it prints 0 every time so meybie some register colision but the good thing is that it doesn’t crash.
Ok so refined devlogs polished sofaos and GitHub couldn’t ship because rhe whole kernel inflated from 52 to 838 sectors by some miracle, destroyed interrupt table, tensor hard coded stuff and other stuff it ruined my day also ok so let me defend originality : it is a ring 0 os made for hardvare inspection while i saw others did os stuff to before me on stardance i already made an os before stardance in arm , technicality : assembly ,usability : it is meant to inspect pcs when something goes wrong hardvare level not daily driver, you decide storitelyng i pored my heart into those devlogs
ok so let me defend originality : it is a ring 0 os made for hardvare inspection while i saw others did os stuff to before me on stardance i already made an os before stardance in arm , technicality : assembly ,usability : it is meant to inspect pcs when something goes wrong hardvare level not daily driver, you decide storitelyng i pored my heart into those devlogs
Ships:
Simple os with access to Ring 0 stuff the ai no work sadly...
|
1793008448.7407556
|
1793872448.7407556
|
|
50979
|
Picoballoon by @dankogranko | Stardance
|
dankogranko
|
0
|
14.84
|
0
|
[]
|
[{"post_id": 69774, "ts": "202 [{"post_id": 69774, "ts": "2026-09-17T19:23:14Z", "hours": 0.9669, "text": "Picoballoon - DEVLOG #5 🎈 Hello! My progress past 2 - 3 weeks was slower, because of school and lazyness:D But I want to get this done till the end of the stardance challange. So here is some of the new progress: 1. - Helium tank adapter I’ve finally bought a helium tank for party balloons. It is circa 250 liters of helium in this small tank. :D It cost me about 25 usd, including shipping. It is party grade, that means it is about 85% pure. But it should be enough for this project. Anyway, back to the adapter. The nozzle was too short and thick for filling my 32” balloon. I’ve dig around our house a litlle, and found this plastic tube. The tube was slightly smaller diameter than the nozzle (it’s good to be like that, because you can litlle widen it with some hot screwdriver - it seals better then, atleast acording to my thoughts) You can see the tank and the adapter on the photos. 2. - Balloon testing I got my ballons for very cheap from china. I have inflated one about 2 weeks ago, and it’s still looking good to this day! :D Hope all of them are the same quality. U can see the test ballon on the photo too. 📸 3. - Tracker eletronics taping/glueing together I choose as the final design of the tracker case lighter and simpler solution. I’ve just insolated it with some foam between the eletronics (0.5 cm thick) and glued it together with hot glue. Its isn’t done yet though. I will cover it with some more foam, and mainly with epoxy glue (for water resistance). Currently the whole tracker weights 27 grams. ⚖️"}, {"post_id": 59862, "ts": "2026-09-01T20:50:29Z", "hours": 2.4942, "text": "Picoballoon - DEVLOG 4# 🎈 Hello guys! I had litlle break last week, but im back at it. I’ve finally started to write my final micropython code for the balloon tracker. (hopefully) :D I will copy and paste the code here. That way you can look trough it/correct me if needed. :) (I’ve made a labels for each section) So far code looks like this: #Some importing stuff from machine import Pin, SPI, ADC, deepsleep import time import ucryptolib #channels settings (frequency / spreading factor) #There are 2 groups of channels. #1. MIN_CHANNELS - Most important ones. One channel from each region. (in case of power saving mode) #2. ALL_CHANNELS - All other channels for higher chance of being detected. (when power isn’t a problem:D) #US spreading factor is set at 10, because of duty cycle limits. MIN_CHANNELS = [ (868_100000, 12), #EU868 - 1. (903_900000, 10), #US915 - 2. (916_800000, 12), #AU915 - 3. (923_200000, 12), #AS923 - 4. ] ALL_CHANNELS = [ (868_100000, 12), #EU868 - 1. (868_300000, 12), #EU868 - 2. (868_500000, 12), #EU686 - 3. (903_900000, 10), #US915 - 4. (904_900000, 10), #US915 - 5. (916_800000, 12), #AU915 - 6. (917_600000, 12), #AU915 - 7. (923_200000, 12), #AS923 - 8. (923_600000, 12), #AS923 - 9. ] #Delay between packets transmitions - radio stabilization INTER_PACKETS_MS = 300 # 0.3s #Transmition power set by voltage POWER_HIGH = 16 #dBm 1. POWER_MID = 14 #dBm 2. POWER_LOW = 12 #dBm 3. #VSYS Power levels VSYS_HIGH = 4.0 #V VSYS_MID = 3.3 #V VSYS_LOW = 2.3 #V #Time between transmitions based on the voltage level SLEEP_5MINUTES = 5 * 60 * 1000 SLEEP_10MINUTES = 10 * 60 * 1000 SLEEP_15MINUTES = 15 * 60 * 1000 SLEEP_20MINUTES = 20 * 60 * 1000 #LoRaWAN ABP information from TTN console (fill in YOURS - I will replace them with 1) :-) DEVADDR = bytes([0x11, 0x11, 0x11, 0x11]) APPSKEY = bytes([0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11]) NWKSKEY = bytes([0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11]) #MESSAGE number FPORT = 1 #communitacion channel between Pico and RFM95W (SPI0) - it needs 3 signal channels (sck,mosi,miso) spi = SPI(0, baudrate=1000_000, polarity=0, phase=0, sck=Pin(22), mosi=Pin(19), miso=Pin(16)) #Chip select pin (NSS/SS), reset pin, led pin) cs = Pin(4, Pin.OUT) cs.value(1) rst = Pin(15, Pin.OUT) led = Pin(25, Pin.OUT) #RFM95W startup reset rst.value(0) time.sleep_ms (10) rst.value (1) time.sleep_ms(10) #voltage measuring pin adc_vsys = ADC(3) #4 main tools for communication with RFM95W and voltage mesauring #1. - write into RFM95W register def write(addr,val): cs.value(0) spi.write(bytes([addr | 0x80, val])) cs.value(1) #2. - read from RFM95W register def read(addr): cs.value(0) spi.write(bytes[addr & 0x7F])) val = spi.read(1) cs.value(0) return value[0] #3. - good nigt for the RFM95W (power save) def RFM95W_sleep(): write(0x01, 0x00) #4. - Measures capacitor voltage (calculates avarage voltage from 8 measurings - adds up all 8 of them, then divide them by 8 ) def read_vsys(): total = sum(adc_vsys.read_u16() for _ in range (8)) /8 #now convert raw 16bit number to voltage return total * 3.3 * 3 / 65535 **Hope it will be readable somehow:D ** AI helped me only with minor things ( converting raw 16bit number, RFM95W registers)"}, {"post_id": 54386, "ts": "2026-08-25T11:35:05Z", "hours": 2.6339, "text": "Picoballoon - DEVLOG #3 🎈 Hi! Yesterday I’ve finished the power and radio system. Also decided to use foam cover instead of the 3D printed one. Foam one weighs only about 9 grams and has better insulation for the components. Testing the LoRaWAN connection I took a bus to the nearest TTN gateway. With the first testing code helped me Claude a lot, because my coding skills in micropython are pretty poor at this time. :D I will lock myself in my room until I’m capable of writing it. (because AI micropython code pretty much screwed up the testing) - The radio was left on the default private-network sync word (0x12) instead of TTN’s public sync word (0x34). So the gateway never had a chance to decode it. Instead got some basic MAC data from the gateway, at least i know the radio does work. I did look kinda funny with the laptop on the street tho. :)"}, {"post_id": 52964, "ts": "2026-08-23T10:45:42Z", "hours": 1.8706, "text": "Picoballoon - DEVLOG #2 🎈 Hello! These 2 hours i’ve been working on the solar power system, antenas, and last devlog. Why the solar system again? Because i screwed up first time making it. But nothing big. I have accidentally put the 2 supercapaticors on top of each other without isolation. It was taking down energy so much, that at the end of the circuit was about 0.2 V, instead of 5V. Now i soldered them next to each other. Everything is well isolated from now. Still need to wire them to the solar panel, but that will be easy. Also wired two 7.5 cm copper antennas on the rf module. The 7.5 cm antenna length is a compromise across all three LoRaWAN frequency bands (EU868, US915, and AS923) 📡 Now the dilemma Can i count time spent on the devlogs/repo as a project time? If you have any idea, please let me know. :)"}, {"post_id": 51832, "ts": "2026-08-21T18:06:09Z", "hours": 6.8703, "text": "Picoballoon - DEVLOG #1 🎈 Hello! This month i have been obsessed with picoballoons. What is a picoballoon? ⬇️ Picoballoon is a helium/hydrogen balloon carrying light tracker beneath it. If you are lucky/build them correctly, they are capable of flying for couple of days/weeks in stratosphere. They are equipped with long range radio transmitter 📻 I will be using LoRaWAN radio protocol (because I don’t have HAM radio license:D) It can send data packets on ISM band to a ground radio station. (TTN gateway in my case) I will further explain how it should work in further devlogs/README. 📎 Back to my logged hours. First hour CAD design of tracker case in FUSION 360 (I will maybe not use it, because it is too heavy) I also printed it. Rest of the time Soldering hell :D Accidentally broke 2 pads off on the RF module. (most important 2 ) I had to desolder it and i need to replace it. I didn’t test the solar power system yet. Hope it will work. I didn’t record drawing the wiring, because I forgot to. AI helped me by correcting my wiring scheme (I forgot some things while making it) I hope my english is readable, thanks for reading!"}]...
|
Title: Picoballoon by @dankogranko | Stardance
De Title: Picoballoon by @dankogranko | Stardance
Devlogs:
Picoballoon - DEVLOG #1 🎈 Hello! This month i have been obsessed with picoballoons. What is a picoballoon? ⬇️ Picoballoon is a helium/hydrogen balloon carrying light tracker beneath it. If you are lucky/build them correctly, they are capable of flying for couple of days/weeks in stratosphere. They are equipped with long range radio transmitter 📻 I will be using LoRaWAN radio protocol (because I don’t have HAM radio license:D) It can send data packets on ISM band to a ground radio station. (TTN gateway in my case) I will further explain how it should work in further devlogs/README. 📎 Back to my logged hours. First hour CAD design of tracker case in FUSION 360 (I will maybe not use it, because it is too heavy) I also printed it. Rest of the time Soldering hell :D Accidentally broke 2 pads off on the RF module. (most important 2 ) I had to desolder it and i need to replace it. I didn’t test the solar power system yet. Hope it will work. I didn’t record drawing the wiring, because I forgot to. AI helped me by correcting my wiring scheme (I forgot some things while making it) I hope my english is readable, thanks for reading!
Picoballoon - DEVLOG #2 🎈 Hello! These 2 hours i’ve been working on the solar power system, antenas, and last devlog. Why the solar system again? Because i screwed up first time making it. But nothing big. I have accidentally put the 2 supercapaticors on top of each other without isolation. It was taking down energy so much, that at the end of the circuit was about 0.2 V, instead of 5V. Now i soldered them next to each other. Everything is well isolated from now. Still need to wire them to the solar panel, but that will be easy. Also wired two 7.5 cm copper antennas on the rf module. The 7.5 cm antenna length is a compromise across all three LoRaWAN frequency bands (EU868, US915, and AS923) 📡 Now the dilemma Can i count time spent on the devlogs/repo as a project time? If you have any idea, please let me know. :)
Picoballoon - DEVLOG #3 🎈 Hi! Yesterday I’ve finished the power and radio system. Also decided to use foam cover instead of the 3D printed one. Foam one weighs only about 9 grams and has better insulation for the components. Testing the LoRaWAN connection I took a bus to the nearest TTN gateway. With the first testing code helped me Claude a lot, because my coding skills in micropython are pretty poor at this time. :D I will lock myself in my room until I’m capable of writing it. (because AI micropython code pretty much screwed up the testing) - The radio was left on the default private-network sync word (0x12) instead of TTN’s public sync word (0x34). So the gateway never had a chance to decode it. Instead got some basic MAC data from the gateway, at least i know the radio does work. I did look kinda funny with the laptop on the street tho. :)
Picoballoon - DEVLOG 4# 🎈 Hello guys! I had litlle break last week, but im back at it. I’ve finally started to write my final micropython code for the balloon tracker. (hopefully) :D I will copy and paste the code here. That way you can look trough it/correct me if needed. :) (I’ve made a labels for each section) So far code looks like this: #Some importing stuff from machine import Pin, SPI, ADC, deepsleep import time import ucryptolib #channels settings (frequency / spreading factor) #There are 2 groups of channels. #1. MIN_CHANNELS - Most important ones. One channel from each region. (in case of power saving mode) #2. ALL_CHANNELS - All other channels for higher chance of being detected. (when power isn’t a problem:D) #US spreading factor is set at 10, because of duty cycle limits. MIN_CHANNELS = [ (868_100000, 12), #EU868 - 1. (903_900000, 10), #US915 - 2. (916_800000, 12), #AU915 - 3. (923_200000, 12), #AS923 - 4. ] ALL_CHANNELS = [ (868_100000, 12), #EU868 - 1. (868_300000, 12), #EU868 - 2. (868_500000, 12), #EU686 - 3. (903_900000, 10), #US915 - 4. (904_900000, 10), #US915 - 5. (916_800000, 12), #AU915 - 6. (917_600000, 12), #AU915 - 7. (923_200000, 12), #AS923 - 8. (923_600000, 12), #AS923 - 9. ] #Delay between packets transmitions - radio stabilization INTER_PACKETS_MS = 300 # 0.3s #Transmition power set by voltage POWER_HIGH = 16 #dBm 1. POWER_MID = 14 #dBm 2. POWER_LOW = 12 #dBm 3. #VSYS Power levels VSYS_HIGH = 4.0 #V VSYS_MID = 3.3 #V VSYS_LOW = 2.3 #V #Time between transmitions based on the voltage level SLEEP_5MINUTES = 5 * 60 * 1000 SLEEP_10MINUTES = 10 * 60 * 1000 SLEEP_15MINUTES = 15 * 60 * 1000 SLEEP_20MINUTES = 20 * 60 * 1000 #LoRaWAN ABP information from TTN console (fill in YOURS - I will replace them with 1) :-) DEVADDR = bytes([0x11, 0x11, 0x11, 0x11]) APPSKEY = bytes([0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11]) NWKSKEY = bytes([0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11]) #MESSAGE number FPORT = 1 #communitacion channel between Pico and RFM95W (SPI0) - it needs 3 signal channels (sck,mosi,miso) spi = SPI(0, baudrate=1000_000, polarity=0, phase=0, sck=Pin(22), mosi=Pin(19), miso=Pin(16)) #Chip select pin (NSS/SS), reset pin, led pin) cs = Pin(4, Pin.OUT) cs.value(1) rst = Pin(15, Pin.OUT) led = Pin(25, Pin.OUT) #RFM95W startup reset rst.value(0) time.sleep_ms (10) rst.value (1) time.sleep_ms(10) #voltage measuring pin adc_vsys = ADC(3) #4 main tools for communication with RFM95W and voltage mesauring #1. - write into RFM95W register def write(addr,val): cs.value(0) spi.write(bytes([addr | 0x80, val])) cs.value(1) #2. - read from RFM95W register def read(addr): cs.value(0) spi.write(bytes[addr & 0x7F])) val = spi.read(1) cs.value(0) return value[0] #3. - good nigt for the RFM95W (power save) def RFM95W_sleep(): write(0x01, 0x00) #4. - Measures capacitor voltage (calculates avarage voltage from 8 measurings - adds up all 8 of them, then divide them by 8 ) def read_vsys(): total = sum(adc_vsys.read_u16() for _ in range (8)) /8 #now convert raw 16bit number to voltage return total * 3.3 * 3 / 65535 **Hope it will be readable somehow:D ** AI helped me only with minor things ( converting raw 16bit number, RFM95W registers)
Picoballoon - DEVLOG #5 🎈 Hello! My progress past 2 - 3 weeks was slower, because of school and lazyness:D But I want to get this done till the end of the stardance challange. So here is some of the new progress: 1. - Helium tank adapter I’ve finally bought a helium tank for party balloons. It is circa 250 liters of helium in this small tank. :D It cost me about 25 usd, including shipping. It is party grade, that means it is about 85% pure. But it should be enough for this project. Anyway, back to the adapter. The nozzle was too short and thick for filling my 32” balloon. I’ve dig around our house a litlle, and found this plastic tube. The tube was slightly smaller diameter than the nozzle (it’s good to be like that, because you can litlle widen it with some hot screwdriver - it seals better then, atleast acording to my thoughts) You can see the tank and the adapter on the photos. 2. - Balloon testing I got my ballons for very cheap from china. I have inflated one about 2 weeks ago, and it’s still looking good to this day! :D Hope all of them are the same quality. U can see the test ballon on the photo too. 📸 3. - Tracker eletronics taping/glueing together I choose as the final design of the tracker case lighter and simpler solution. I’ve just insolated it with some foam between the eletronics (0.5 cm thick) and glued it together with hot glue. Its isn’t done yet though. I will cover it with some more foam, and mainly with epoxy glue (for water resistance). Currently the whole tracker weights 27 grams. ⚖️...
|
1793368554.4934416
|
1793973354.4934416
|
|
62574
|
Anti-Slack-Off by @CatPowerz | Stardance
|
CatPowerz
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T19:32:36Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is CatBot, a 24/7 Slack Bot live now with three commands! Get motivational quotes and tips based on your command. Setup is easy. Even better, you don’t need to set up at all! It’s already live on my personal VPS and is running in the Hack Club Workspace on Slack. AI (Gemini) was barely used, just to verify and confirm safety around API keys and environment variables.", "repo": "https://github.com/CatPowerz/slackbot/", "demo": "https://hackclub.slack.com/archives/C0C2X9MPJG3"}]...
|
[{"post_id": 69776, "ts": "202 [{"post_id": 69776, "ts": "2026-09-17T19:24:00Z", "hours": 0.6839, "text": "Slack Bot is now live! You can now command /cat-quote, /cat-focus and /cat-boost to get a quote returned. No parameters required. Hosted on own personal VPS, currently active in Hack Club Workspace on Slack."}]...
|
Title: Anti-Slack-Off by @CatPowerz | Stardance
D Title: Anti-Slack-Off by @CatPowerz | Stardance
Devlogs:
Slack Bot is now live! You can now command /cat-quote, /cat-focus and /cat-boost to get a quote returned. No parameters required. Hosted on own personal VPS, currently active in Hack Club Workspace on Slack.
Ships:
This is CatBot, a 24/7 Slack Bot live now with three commands! Get motivational quotes and tips based on your command. Setup is easy. Even better, you don’t need to set up at all! It’s already live on my personal VPS and is running in the Hack Club Workspace on Slack. AI (Gemini) was barely used, just to verify and confirm safety around API keys and environment variables....
|
1793210049.6906867
|
1793296449.6906867
|
|
61822
|
Aura Tab by @pakistan_pc_x_47 | Stardance
|
pakistan_pc_x_47
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T21:13:30Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I make a tab for my use bay the way i am new and this is my second project so i dont now how much the tab you like but i love BMW M4 so i put the picture of M4 at background and i add mostly that feature that neaded by everyone", "repo": "https://github.com/hussain47x/AuraTab", "demo": "https://aura-tab-five.vercel.app"}]...
|
[{"post_id": 69783, "ts": "202 [{"post_id": 69783, "ts": "2026-09-17T19:35:38Z", "hours": 1.2717, "text": "I built AuraTab, a customizable new-tab dashboard designed to make browsing more useful, focused, and personal. I built it using React, JavaScript, HTML, CSS, and Vite. The main features include: Live clock, date, and greeting Google search Website shortcuts Add Shortcut system Tasks with add, complete, and delete functionality Focus timer Notes Themes Settings Dark glass-style interface I also connected AuraTab to GitHub and deployed it with Vercel so it has a live demo. One challenge was setting up Hackatime correctly so my development time was tracked under the AuraTab project. I also created a Chrome New Tab extension that loads the live AuraTab website. This project helped me practice React, localStorage, CSS, Git/GitHub, Vercel deployment, and Chrome extension basics. Live demo: https://aura-tab-five.vercel.app GitHub: https://github.com/hussain47x/AuraTab"}]...
|
Title: Aura Tab by @pakistan_pc_x_47 | Stardance
Title: Aura Tab by @pakistan_pc_x_47 | Stardance
Devlogs:
I built AuraTab, a customizable new-tab dashboard designed to make browsing more useful, focused, and personal. I built it using React, JavaScript, HTML, CSS, and Vite. The main features include: Live clock, date, and greeting Google search Website shortcuts Add Shortcut system Tasks with add, complete, and delete functionality Focus timer Notes Themes Settings Dark glass-style interface I also connected AuraTab to GitHub and deployed it with Vercel so it has a live demo. One challenge was setting up Hackatime correctly so my development time was tracked under the AuraTab project. I also created a Chrome New Tab extension that loads the live AuraTab website. This project helped me practice React, localStorage, CSS, Git/GitHub, Vercel deployment, and Chrome extension basics. Live demo: https://aura-tab-five.vercel.app GitHub: https://github.com/hussain47x/AuraTab
Ships:
I make a tab for my use bay the way i am new and this is my second project so i dont now how much the tab you like but i love BMW M4 so i put the picture of M4 at background and i add mostly that feature that neaded by everyone...
|
1793209817.5961936
|
1793296217.5961936
|
|
63094
|
My very own WebOS by @Sharma07 | Stardance
|
Sharma07
|
0
|
0.51
|
0
|
[]
|
[{"post_id": 69788, "ts": "202 [{"post_id": 69788, "ts": "2026-09-17T19:52:03Z", "hours": 0.5058, "text": "My First WebOS Started building my own web OS using HTML and CSS For Part1 I’ve added: A welcome screen A small about me section My interests and hobbies Links to my GitHub Some basic styling using HTML and CSS Next, I’m gonna work on the desktop, windows, top bar, and adding a clock."}]...
|
Title: My very own WebOS by @Sharma07 | Stardance
Title: My very own WebOS by @Sharma07 | Stardance
Devlogs:
My First WebOS Started building my own web OS using HTML and CSS For Part1 I’ve added: A welcome screen A small about me section My interests and hobbies Links to my GitHub Some basic styling using HTML and CSS Next, I’m gonna work on the desktop, windows, top bar, and adding a clock....
|
1793048039.0269108
|
1793652839.0269108
|
|
60242
|
Scratchpad by @InvalidJoker | Stardance
|
InvalidJoker
|
1
|
10.0
|
41
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T10:32:14Z", "hours": 10.0, "multiplier": 4.22, "payout": 41, "blessing": "neutral", "text": "Scratchpad release We have finished: all management commands setup tui management tui Download via: https://github.com/InvalidJoker/scratchpad/releases/latest", "repo": "https://github.com/InvalidJoker/scratchpad", "demo": "https://github.com/InvalidJoker/scratchpad/releases/latest"}]...
|
[{"post_id": 69795, "ts": "202 [{"post_id": 69795, "ts": "2026-09-17T20:02:40Z", "hours": 2.0558, "text": "Project Manager TUI Added Built an interactive terminal user interface (TUI) to manage local projects seamlessly. Status indicators display whether a project is currently active. Selecting a project opens it directly in your preferred editor."}, {"post_id": 67284, "ts": "2026-09-13T11:02:51Z", "hours": 3.8764, "text": "Release Setup & CI Integration Automated CI pipeline validates every single commit. Releases and builds are automatically published to GitHub on update. Auto-completion support for fast terminal navigation and project tracking. What’s Next Built-in auto-updater. TUI for project management You can try it now at https://github.com/InvalidJoker/scratchpad/releases"}, {"post_id": 65398, "ts": "2026-09-10T14:52:20Z", "hours": 2.4911, "text": "Base is ready now Added First-Run Onboarding : Prompts users to run setup on initial execution to initialize CLI configuration. Project Creation & Lifecycle : new <name> : Create a scratch project. open <name> : Open a project and mark it active. keep <name> : Promote a project out of scratch, permanently. Project Discovery & Inspection : list : List your scratch projects. info <name> : Show everything known about a project. Trash Management : trash <name>... : Move a project to the trash. restore <name> : Bring a project back from the trash."}, {"post_id": 65039, "ts": "2026-09-09T20:59:50Z", "hours": 1.19, "text": "Scratchpad I’ve started working on Scratchpad, a small tool for managing temporary projects and experiments. The idea behind Scratchpad is simple: I often create projects in my Downloads folder when I’m testing an idea or starting something small. After a while, those projects pile up and I have to manually figure out what I still need and what I can delete. Scratchpad is meant to make that process easier by giving these temporary projects their own workspace and eventually helping manage their lifecycle. For the first step, I set up the project in Go and implemented the first command. This gives me the basic foundation to start building the rest of the tool around. It’s still very early, but the initial structure is now in place."}]...
|
Title: Scratchpad by @InvalidJoker | Stardance
De Title: Scratchpad by @InvalidJoker | Stardance
Devlogs:
Scratchpad I’ve started working on Scratchpad, a small tool for managing temporary projects and experiments. The idea behind Scratchpad is simple: I often create projects in my Downloads folder when I’m testing an idea or starting something small. After a while, those projects pile up and I have to manually figure out what I still need and what I can delete. Scratchpad is meant to make that process easier by giving these temporary projects their own workspace and eventually helping manage their lifecycle. For the first step, I set up the project in Go and implemented the first command. This gives me the basic foundation to start building the rest of the tool around. It’s still very early, but the initial structure is now in place.
Base is ready now Added First-Run Onboarding : Prompts users to run setup on initial execution to initialize CLI configuration. Project Creation & Lifecycle : new <name> : Create a scratch project. open <name> : Open a project and mark it active. keep <name> : Promote a project out of scratch, permanently. Project Discovery & Inspection : list : List your scratch projects. info <name> : Show everything known about a project. Trash Management : trash <name>... : Move a project to the trash. restore <name> : Bring a project back from the trash.
Release Setup & CI Integration Automated CI pipeline validates every single commit. Releases and builds are automatically published to GitHub on update. Auto-completion support for fast terminal navigation and project tracking. What’s Next Built-in auto-updater. TUI for project management You can try it now at https://github.com/InvalidJoker/scratchpad/releases
Project Manager TUI Added Built an interactive terminal user interface (TUI) to manage local projects seamlessly. Status indicators display whether a project is currently active. Selecting a project opens it directly in your preferred editor.
Ships:
Scratchpad release We have finished: all management commands setup tui management tui Download via: https://github.com/InvalidJoker/scratchpad/releases/latest...
|
1793206371.470858
|
1793292771.470858
|
|
61690
|
My own site! by @Jas1k | Stardance
|
Jas1k
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T09:53:47Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I build a website. The most challenging was the css. I am beginner.", "repo": "https://github.com/cubajastk-hue/myweb", "demo": "https://cubajastk-hue.github.io/myweb/"}]...
|
[{"post_id": 69798, "ts": "202 [{"post_id": 69798, "ts": "2026-09-17T20:10:28Z", "hours": 0.3983, "text": "I give it a cyberpunk look by ai, realised it look bad as … I have to redo the color/style."}, {"post_id": 69331, "ts": "2026-09-16T20:30:02Z", "hours": 0.2606, "text": "Have done some easy text W pictures on pexels, not mine, and some good css. Tomorrow I am working on the scroll thing, logo transition and beter pictures."}, {"post_id": 68833, "ts": "2026-09-15T20:33:37Z", "hours": 0.2569, "text": "Changed some style and body, created hover over navbar texts except logo."}, {"post_id": 68217, "ts": "2026-09-14T18:26:38Z", "hours": 0.5622, "text": "Did some web logo design and easy aligning. Still running on localhost."}, {"post_id": 67235, "ts": "2026-09-13T09:16:15Z", "hours": 0.3583, "text": "Creating mz first own site."}]...
|
Title: My own site! by @Jas1k | Stardance
Devlogs Title: My own site! by @Jas1k | Stardance
Devlogs:
Creating mz first own site.
Did some web logo design and easy aligning. Still running on localhost.
Changed some style and body, created hover over navbar texts except logo.
Have done some easy text W pictures on pexels, not mine, and some good css. Tomorrow I am working on the scroll thing, logo transition and beter pictures.
I give it a cyberpunk look by ai, realised it look bad as … I have to redo the color/style.
Ships:
I build a website. The most challenging was the css. I am beginner....
|
1793209763.0754974
|
1793296163.0754974
|
|
43574
|
Oxidian Client by @Str-F | Stardance
|
Str-F
|
0
|
37.36
|
0
|
[]
|
[{"post_id": 69823, "ts": "202 [{"post_id": 69823, "ts": "2026-09-17T21:02:54Z", "hours": 8.1678, "text": "in this devlog I not did too much. I just improved some packet handling, fixed errors, improved error handling. also added requesting status from the server and the keep alive packet so the client does not Time out. I now start with the play state packets implementation"}, {"post_id": 61039, "ts": "2026-09-03T19:02:42Z", "hours": 5.3194, "text": "added handling registry data from server. no the client can receive registry data from the server. if previously said by the client in known packs that every is there the data gets load from file if not it gets send by server."}, {"post_id": 58720, "ts": "2026-08-31T08:21:41Z", "hours": 4.8197, "text": "Rewrote the Networking threaded in Tokio. also rewrote some function and the architecture is now way more cleaner. enhanced the log writing a bit, next I will start with the gui."}, {"post_id": 40350, "ts": "2026-08-03T19:54:18Z", "hours": 19.0517, "text": "I got the the first connection to work!! The server now accepts the client joining the server, and the player is really in world joined on the server! (it gets kicked after a while for not responding to more packets). it was really hard to get the decode and encode and all the Minecraft special types like VarInt to work, but they work now! next I will be trying to make it threaded, add the first gui, also I need to implement like 300 more packets fore the client but at the moment only some are importent so yeaa!"}]...
|
Title: Oxidian Client by @Str-F | Stardance
Devlo Title: Oxidian Client by @Str-F | Stardance
Devlogs:
I got the the first connection to work!! The server now accepts the client joining the server, and the player is really in world joined on the server! (it gets kicked after a while for not responding to more packets). it was really hard to get the decode and encode and all the Minecraft special types like VarInt to work, but they work now! next I will be trying to make it threaded, add the first gui, also I need to implement like 300 more packets fore the client but at the moment only some are importent so yeaa!
Rewrote the Networking threaded in Tokio. also rewrote some function and the architecture is now way more cleaner. enhanced the log writing a bit, next I will start with the gui.
added handling registry data from server. no the client can receive registry data from the server. if previously said by the client in known packs that every is there the data gets load from file if not it gets send by server.
in this devlog I not did too much. I just improved some packet handling, fixed errors, improved error handling. also added requesting status from the server and the keep alive packet so the client does not Time out. I now start with the play state packets implementation...
|
1793228123.8768134
|
1793832923.8768134
|
|
59980
|
FigmaTime by @Glitchtest | Stardance
|
Glitchtest
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T21:16:53Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Wakatime-compatible Figma Plugin! Figma takes 2-3 weeks to finish approving plugins, so it wouldnt be approved by the time stardance is over, but it is still possible to use the plugin via developer mode! https://developers.figma.com/docs/plugins/plugin-quickstart-guide/", "repo": "https://github.com/Glitchtest51/FigmaTime", "demo": "https://www.figma.com/community/plugin/1678682497647704981/figmatime"}]...
|
[{"post_id": 69825, "ts": "202 [{"post_id": 69825, "ts": "2026-09-17T21:12:05Z", "hours": 6.1039, "text": "Plugin works!"}]...
|
Title: FigmaTime by @Glitchtest | Stardance
Devlo Title: FigmaTime by @Glitchtest | Stardance
Devlogs:
Plugin works!
Ships:
I made a Wakatime-compatible Figma Plugin! Figma takes 2-3 weeks to finish approving plugins, so it wouldnt be approved by the time stardance is over, but it is still possible to use the plugin via developer mode! https://developers.figma.com/docs/plugins/plugin-quickstart-guide/...
|
1793206297.8335967
|
1793292697.8335967
|
|
60749
|
EyeClock by @Snetch | Stardance
|
Snetch
|
0
|
13.63
|
0
|
[]
|
[{"post_id": 69829, "ts": "202 [{"post_id": 69829, "ts": "2026-09-17T21:16:44Z", "hours": 4.9272, "text": "fixed the schematic and the pcb , made the readme and let go"}, {"post_id": 68107, "ts": "2026-09-14T15:01:35Z", "hours": 8.7006, "text": "made the pcb and i am designing the clock at onshape , the clock is going to be with a screen of two animated eyes that move around and will show time each 5 min"}]...
|
Title: EyeClock by @Snetch | Stardance
Devlogs:
m Title: EyeClock by @Snetch | Stardance
Devlogs:
made the pcb and i am designing the clock at onshape , the clock is going to be with a screen of two animated eyes that move around and will show time each 5 min
fixed the schematic and the pcb , made the readme and let go...
|
1793036999.0805209
|
1793641799.0805209
|
|
13420
|
My very own WebOS by @eroga | Stardance
|
eroga
|
1
|
14.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T15:05:41Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a fake OS that runs in the browser as a kind of portfolio. instead of a normal page you get a desktop with draggable windows, a topbar, icons and a terminal with real commands. the hardest part was the terminal; command history with arrow keys, HTML escaping so echo doesn’t break everything, and making the command system easy to extend. also getting the windows to stack properly with z-index took longer than I expected. to test it: double-click the desktop icons or use the top menu. open the Terminal and type help to see all commands. try neofetch, ls or open about. sticky notes are the custom feature, create one from the topbar or by typing note.", "repo": "https://github.com/Er0ga/MiOS---browser-based-OS", "demo": "https://github.com/Er0ga/MiOS---browser-based-OS/blob/main/index.html"}]...
|
[{"post_id": 6983, "ts": "2026 [{"post_id": 6983, "ts": "2026-06-11T18:38:44Z", "hours": 12.2617, "text": "So I think the project is finished and I’m actually pretty happy with how it turned out. The OS has a desktop with a gradient background, a topbar with a live clock and fake battery, and five apps: a welcome screen, an about me section with a sidebar, a projects grid, a contact window, and a terminal. The terminal was the most work by far. I had to add command history with the arrow keys, escape user input so nobody breaks it with echo , and set up a command system that’s easy to extend. The custom feature I added is sticky notes. You can make one from the topbar button, the desktop icon, or by typing nota in the terminal. Each note is a draggable window with a text area, and they come in four colors so you can tell them apart. The way it works is each note gets created with document.createElement and then I just pass it to the same dragElement() function everything else uses — nothing had to be rewritten. The biggest thing I learned from this whole jam is how mouse events actually work. Before this I’d never done drag and drop from scratch. The key detail is you have to put mousemove and mouseup on the document , not on the element — otherwise if you move the mouse too fast it slips off and the drag breaks. Took me a while to figure that out. Anyway, it works, it looks decent, and it’s all vanilla JS with no libraries."}, {"post_id": 5496, "ts": "2026-06-09T09:35:34Z", "hours": 1.3175, "text": "Got window dragging working. The key thing I learned: you have to attach mousemove and mouseup to the document , not to the window element itself otherwise if you move the mouse too fast it slips off the element and the drag breaks. Added the About, Projects, Contact, and Terminal apps. The About app has a sidebar you can click through, and Projects renders cards from a JavaScript array which made it easy to add new ones. The terminal took the most time. Also added z-index stacking so clicking a window always brings it to the front, and desktop icons that select on single click and open on double click."}, {"post_id": 5166, "ts": "2026-06-08T20:58:36Z", "hours": 0.5761, "text": "First day on the webOS jam. The idea of building an OS inside a browser felt weird at first, but also really cool. I got the desktop background working using a CSS gradient and added a live clock to the topbar using setInterval . The hardest part was figuring out position: absolute windows kept showing up in completely wrong places until I understood that everything is positioned relative to the body. By the end of the session I had a working desktop with a welcome window sitting in the middle."}]...
|
Title: My very own WebOS by @eroga | Stardance
De Title: My very own WebOS by @eroga | Stardance
Devlogs:
First day on the webOS jam. The idea of building an OS inside a browser felt weird at first, but also really cool. I got the desktop background working using a CSS gradient and added a live clock to the topbar using setInterval . The hardest part was figuring out position: absolute windows kept showing up in completely wrong places until I understood that everything is positioned relative to the body. By the end of the session I had a working desktop with a welcome window sitting in the middle.
Got window dragging working. The key thing I learned: you have to attach mousemove and mouseup to the document , not to the window element itself otherwise if you move the mouse too fast it slips off the element and the drag breaks. Added the About, Projects, Contact, and Terminal apps. The About app has a sidebar you can click through, and Projects renders cards from a JavaScript array which made it easy to add new ones. The terminal took the most time. Also added z-index stacking so clicking a window always brings it to the front, and desktop icons that select on single click and open on double click.
So I think the project is finished and I’m actually pretty happy with how it turned out. The OS has a desktop with a gradient background, a topbar with a live clock and fake battery, and five apps: a welcome screen, an about me section with a sidebar, a projects grid, a contact window, and a terminal. The terminal was the most work by far. I had to add command history with the arrow keys, escape user input so nobody breaks it with echo , and set up a command system that’s easy to extend. The custom feature I added is sticky notes. You can make one from the topbar button, the desktop icon, or by typing nota in the terminal. Each note is a draggable window with a text area, and they come in four colors so you can tell them apart. The way it works is each note gets created with document.createElement and then I just pass it to the same dragElement() function everything else uses — nothing had to be rewritten. The biggest thing I learned from this whole jam is how mouse events actually work. Before this I’d never done drag and drop from scratch. The key detail is you have to put mousemove and mouseup on the document , not on the element — otherwise if you move the mouse too fast it slips off and the drag breaks. Took me a while to figure that out. Anyway, it works, it looks decent, and it’s all vanilla JS with no libraries.
Ships:
I made a fake OS that runs in the browser as a kind of portfolio. instead of a normal page you get a desktop with draggable windows, a topbar, icons and a terminal with real commands. the hardest part was the terminal; command history with arrow keys, HTML escaping so echo doesn’t break everything, and making the command system easy to extend. also getting the windows to stack properly with z-index took longer than I expected. to test it: double-click the desktop icons or use the top menu. open the Terminal and type help to see all commands. try neofetch, ls or open about. sticky notes are the custom feature, create one from the topbar or by typing note....
|
1793303767.0030885
|
1793390167.0030885
|
|
60466
|
Stardance Mult Utility by @ethmarks | Stardance
|
ethmarks
|
0
|
7.66
|
0
|
[]
|
[{"post_id": 69835, "ts": "202 [{"post_id": 69835, "ts": "2026-09-17T21:32:20Z", "hours": 0.5992, "text": "I wrote the README! Something funny I noticed is that the background color used by Bahunya is exactly the same as the GitHub web UI’s dark mode background color. So my screenshots were blending in with the background in a confusing way. I added a frame to the screenshots to fix it"}, {"post_id": 69365, "ts": "2026-09-16T22:05:35Z", "hours": 1.5319, "text": "I added modifiers, replaced the desmos embed, and added an hour calculator! For the modifiers, I just made it change the min and max mult. I was originality going to make the modifiers a separate variable in the formula, but that would be unnecessarily complicated compared to just changing the min and max. The new graph is mostly vibe-coded because I couldn’t find any graphing libraries that I liked, and I don’t have time to learn to make it myself (im busy with other projects) The hours calculator was really easy because I basically just duplicated the percentile<->mult calculator component and tweaked it slightly"}, {"post_id": 68424, "ts": "2026-09-15T03:00:27Z", "hours": 1.0469, "text": "I added the code walkthrough! I used Nueglow for the syntax highlighting because it’s quick and easy and I like it. I only annotated the two most relevant files because I didn’t want to flood the page with a bunch of walkthroughs of tangentially-related code snippets, so I had to draw the line somewhere."}, {"post_id": 66808, "ts": "2026-09-12T18:16:37Z", "hours": 1.3694, "text": "I have mixed feelings about MathML . I’d never used MathML before, and I was a little worried that it would be extremely complicated and difficult. But really, it was just tedious and verbose. The opaque syntax took a while to get used to, but it’s fairly straightforward. I added a new section to the site, which renders the formula step-by-step using MathML, substituting the percentile and mult from the other tools. So when you change the calculator, it also updates the formula. Once I implement the graph, moving the point along the graph will update the calculator and the formula. So it’ll all be unified. Anyways, now I have a 340+ line Svelte file mostly comprised of a bunch of repetitive MathML tags. Usually I want to refactor really long files, but I don’t think I really can in this case."}, {"post_id": 66678, "ts": "2026-09-12T15:26:48Z", "hours": 1.8297, "text": "I implemented the mult formula! I added the percentileToMult() function which basically just reimplements the Ruby code in TypeScript I added the multToPercentile() function, which performs the exact mathematical inverse of percentileToMult() I added 25 tests to make sure that my formula implementation was correct. I’m glad I tested it, because on my first attempt at the inverse function, I used a logarithm instead of a root 🤦 I made a Calculator.svelte component and put it on the site, which uses the functions I made Next I think I’ll work on the annotated Ruby code walkthrough. I also have an idea to use <math> tags to render the steps to compute the formula, which I think would be interesting."}, {"post_id": 65738, "ts": "2026-09-11T02:40:37Z", "hours": 0.9642, "text": "I’ve started working on the site! You can check it out at https://ethmarks.github.io/sdmu/ I decided that I am going to use SvelteKit, because it gets the job done and I have the most experience with it. As usual (if you’ve seen any of my other projects, I do this a lot), I’m using a classless CSS stylesheet for the base site styles. I decided to try out Bahunya this time, because it fits the aesthetic that I’m going for. So far, the only actual functionality is that I embedded the Desmos graph as an iframe . I plan on replacing it with my own graph ASAP, but it’ll stay for now. Next, I think I’ll work on re-implementing the formula in TypeScript. It’s like 5 operators of basic arithmetic, so it shouldn’t take long at all, though I’ll try to make the code modular so that later I can easily implement the modifiers like blessed and cursed."}, {"post_id": 65126, "ts": "2026-09-10T01:35:04Z", "hours": 0.3164, "text": "Do you wish there was a way to predict how much Stardust your project will get? Well look no further: @The_Craw made a tool to do that over two months ago: https://www.desmos.com/calculator/ww5xp3gi52 . It’s been mentioned literally multiple dozens of times in the Slack. But do you wish that the graph had more features? No? Well too bad, because I’m making it anyways. Here are some of the planned features of Stardance Mult Utility: Interactive graph of percentile vs multiplier. Like the Desmos graph, but not using Desmos. Idk what I’m going to use instead. Probably some kind of graphing component. Exact/direct calculator. This is for if you want an exact value rather than just estimating via the graph. If you want to know what multiplier a specific percentile will earn, then you just type it into the little box and it’ll output an answer. But it also works in the other direction, if you want to know what percentile you’ll need for a specific multiplier. Annotated walkthrough of the actual Ruby code that the Stardance codebase uses, so you can learn exactly how it works behind the scenes. Percentile calculator. I’m only like 70% clear on the exact method that Stardance uses to calculate percentile from the category ratings, so I’ll have to look through the codebase more thoroughly to figure it out. But once I do, I hope to have a way that you can convert the ratings in each category (Originality, Technicality, Usability, Storytelling) into a percentile, and then into a multiplier. Blessed/cursed/viral modifiers. These will modify the other tools to show what’ll happen if your ship is blessed, cursed, or viral. 30x max mult simulator. Did you know that the max mult used to be 30x before they changed it to 20x when they added blessed/cursed/viral modifiers? I don’t know what tech stack I’m going to use. I haven’t thought that far ahead, lol. It’s definitely going to be a web project, and I’ll probably use SvelteKit. but I don’t know what library/component I’ll use to make the interactive graph, because I’ve never done anything like this before, so I’ll have to research it along the way."}]...
|
Title: Stardance Mult Utility by @ethmarks | Stard Title: Stardance Mult Utility by @ethmarks | Stardance
Devlogs:
Do you wish there was a way to predict how much Stardust your project will get? Well look no further: @The_Craw made a tool to do that over two months ago: https://www.desmos.com/calculator/ww5xp3gi52 . It’s been mentioned literally multiple dozens of times in the Slack. But do you wish that the graph had more features? No? Well too bad, because I’m making it anyways. Here are some of the planned features of Stardance Mult Utility: Interactive graph of percentile vs multiplier. Like the Desmos graph, but not using Desmos. Idk what I’m going to use instead. Probably some kind of graphing component. Exact/direct calculator. This is for if you want an exact value rather than just estimating via the graph. If you want to know what multiplier a specific percentile will earn, then you just type it into the little box and it’ll output an answer. But it also works in the other direction, if you want to know what percentile you’ll need for a specific multiplier. Annotated walkthrough of the actual Ruby code that the Stardance codebase uses, so you can learn exactly how it works behind the scenes. Percentile calculator. I’m only like 70% clear on the exact method that Stardance uses to calculate percentile from the category ratings, so I’ll have to look through the codebase more thoroughly to figure it out. But once I do, I hope to have a way that you can convert the ratings in each category (Originality, Technicality, Usability, Storytelling) into a percentile, and then into a multiplier. Blessed/cursed/viral modifiers. These will modify the other tools to show what’ll happen if your ship is blessed, cursed, or viral. 30x max mult simulator. Did you know that the max mult used to be 30x before they changed it to 20x when they added blessed/cursed/viral modifiers? I don’t know what tech stack I’m going to use. I haven’t thought that far ahead, lol. It’s definitely going to be a web project, and I’ll probably use SvelteKit. but I don’t know what library/component I’ll use to make the interactive graph, because I’ve never done anything like this before, so I’ll have to research it along the way.
I’ve started working on the site! You can check it out at https://ethmarks.github.io/sdmu/ I decided that I am going to use SvelteKit, because it gets the job done and I have the most experience with it. As usual (if you’ve seen any of my other projects, I do this a lot), I’m using a classless CSS stylesheet for the base site styles. I decided to try out Bahunya this time, because it fits the aesthetic that I’m going for. So far, the only actual functionality is that I embedded the Desmos graph as an iframe . I plan on replacing it with my own graph ASAP, but it’ll stay for now. Next, I think I’ll work on re-implementing the formula in TypeScript. It’s like 5 operators of basic arithmetic, so it shouldn’t take long at all, though I’ll try to make the code modular so that later I can easily implement the modifiers like blessed and cursed.
I implemented the mult formula! I added the percentileToMult() function which basically just reimplements the Ruby code in TypeScript I added the multToPercentile() function, which performs the exact mathematical inverse of percentileToMult() I added 25 tests to make sure that my formula implementation was correct. I’m glad I tested it, because on my first attempt at the inverse function, I used a logarithm instead of a root 🤦 I made a Calculator.svelte component and put it on the site, which uses the functions I made Next I think I’ll work on the annotated Ruby code walkthrough. I also have an idea to use <math> tags to render the steps to compute the formula, which I think would be interesting.
I have mixed feelings about MathML . I’d never used MathML before, and I was a little worried that it would be extremely complicated and difficult. But really, it was just tedious and verbose. The opaque syntax took a while to get used to, but it’s fairly straightforward. I added a new section to the site, which renders the formula step-by-step using MathML, substituting the percentile and mult from the other tools. So when you change the calculator, it also updates the formula. Once I implement the graph, moving the point along the graph will update the calculator and the formula. So it’ll all be unified. Anyways, now I have a 340+ line Svelte file mostly comprised of a bunch of repetitive MathML tags. Usually I want to refactor really long files, but I don’t think I really can in this case.
I added the code walkthrough! I used Nueglow for the syntax highlighting because it’s quick and easy and I like it. I only annotated the two most relevant files because I didn’t want to flood the page with a bunch of walkthroughs of tangentially-related code snippets, so I had to draw the line somewhere.
I added modifiers, replaced the desmos embed, and added an hour calculator! For the modifiers, I just made it change the min and max mult. I was originality going to make the modifiers a separate variable in the formula, but that would be unnecessarily complicated compared to just changing the min and max. The new graph is mostly vibe-coded because I couldn’t find any graphing libraries that I liked, and I don’t have time to learn to make it myself (im busy with other projects) The hours calculator was really easy because I basically just duplicated the percentile<->mult calculator component and tweaked it slightly
I wrote the README! Something funny I noticed is that the background color used by Bahunya is exactly the same as the GitHub web UI’s dark mode background color. So my screenshots were blending in with the background in a confusing way. I added a frame to the screenshots to fix it...
|
1793033518.6327193
|
1793638318.6327193
|
|
62331
|
Game Dashboard by @Parrot | Stardance
|
Parrot
|
2
|
1.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T15:56:29Z", "hours": 1.0, "multiplier": 1.18, "payout": 2, "blessing": "neutral", "text": "Hey, this is my project Game Dash Board Added new log out feature and favourting feature ran into couple of bugs bug now its fixed!!!!!", "repo": "https://github.com/ryan113cpu/game-dashboard", "demo": "https://ryan113cpu.github.io/game-dashboard/"}, {"ship_num": 2, "ts": "2026-09-15T20:38:39Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "HI guys this my is my first Devlog and so far is been 30 minutes of me grinding i just added saving featue and favoutriting features more is coming do not worry!!!!!", "repo": "https://github.com/ryan113cpu/game-dashboard", "demo": "https://ryan113cpu.github.io/game-dashboard/"}]...
|
[{"post_id": 69852, "ts": "202 [{"post_id": 69852, "ts": "2026-09-17T22:29:04Z", "hours": 0.3189, "text": "Devlog #4 this may or may not be my Final devlog depending on if they return it or not i hope i Pass this mission!! In this devlog i added a Logout button and made it so you can track you video game time Untill next time or maybe not who knows??????!!!!!"}, {"post_id": 69845, "ts": "2026-09-17T21:54:09Z", "hours": 0.4864, "text": "Devlog # 3 so lowki i kinda forgot to make it so when you sign up/ log in to hide the backgound and yeah fixed it"}, {"post_id": 69413, "ts": "2026-09-17T00:26:26Z", "hours": 0.5819, "text": "Greetings everyone Devlog #2 so For my first Devlog i acsedently shiped it insed of doing devlog LOL so anyways they returned the mission and gave me the idea to add……… Athentication Untill next time"}, {"post_id": 68830, "ts": "2026-09-15T20:27:10Z", "hours": 0.3297, "text": "added game input check!!!!!"}]...
|
Title: Game Dashboard by @Parrot | Stardance
Devl Title: Game Dashboard by @Parrot | Stardance
Devlogs:
added game input check!!!!!
Greetings everyone Devlog #2 so For my first Devlog i acsedently shiped it insed of doing devlog LOL so anyways they returned the mission and gave me the idea to add……… Athentication Untill next time
Devlog # 3 so lowki i kinda forgot to make it so when you sign up/ log in to hide the backgound and yeah fixed it
Devlog #4 this may or may not be my Final devlog depending on if they return it or not i hope i Pass this mission!! In this devlog i added a Logout button and made it so you can track you video game time Untill next time or maybe not who knows??????!!!!!
Ships:
HI guys this my is my first Devlog and so far is been 30 minutes of me grinding i just added saving featue and favoutriting features more is coming do not worry!!!!!
Hey, this is my project Game Dash Board Added new log out feature and favourting feature ran into couple of bugs bug now its fixed!!!!!...
|
1793008368.0880623
|
1793872368.0880623
|
|
53598
|
Vision Based RL by @arushg | Stardance
|
arushg
|
0
|
84.36
|
0
|
[]
|
[{"post_id": 69857, "ts": "202 [{"post_id": 69857, "ts": "2026-09-17T22:43:43Z", "hours": 11.3953, "text": "I was mostly working on tuning the model and fixing hardware since the previous circuit did not give the servo enough power. Hence, I added an external power supply (which took hours to debug… turns out I had to ground the ESP32 to the external GND)"}, {"post_id": 64503, "ts": "2026-09-08T23:10:53Z", "hours": 13.4825, "text": "I noticed the size of the ball and beam in simulation was not the same as the actual one, so I updated sim to be closer. I also added the past action rolling list to the model, which allowed it to see what it tried to do previously. It now survives 1000 steps in simulation (~50 seconds)"}, {"post_id": 59961, "ts": "2026-09-02T01:13:57Z", "hours": 4.8553, "text": "QT-Opt worked much better, but now the problem is with the hardware. The ball just falls forward since the beam is not thick enough. I will print and try again with a thicker beam"}, {"post_id": 59059, "ts": "2026-08-31T17:28:41Z", "hours": 8.2167, "text": "I also tried PID as a benchmark (only in simulation of course). It did pretty well as shown below, so I might try either imitation learning or a different model that just identifies ball and beam position to then apply PID on top. In parallel, I also tested QT-Opt on hardware and it failed… I’m trying more training with visual distortions in the simulation environment so it becomes more robust"}, {"post_id": 58327, "ts": "2026-08-30T18:22:37Z", "hours": 7.2428, "text": "I tried QT-Opt and at least in simulation, it did a lot better (it also trained much faster due to the other architectural change I made; see next). I also switched the backbone to Dinov2 Small, which is newer and smaller than the previous Dino Base backbone."}, {"post_id": 57636, "ts": "2026-08-29T20:51:44Z", "hours": 7.5353, "text": "Added the physical hardware bridge and it turns out the model does not do very well. I am going to try three approaches: More training in sim with variation like camera distortion and stuff Fine-tuning on physical hardware QT-Opt"}, {"post_id": 54824, "ts": "2026-08-25T23:48:28Z", "hours": 3.3669, "text": "Improved the training loop to reflect actual control rate (20 Hz vs 500 Hz in simulation previously). Used AMD GPU for faster training and this is what it looks like (able to balance for ~6 seconds in simulation)"}, {"post_id": 54164, "ts": "2026-08-25T00:48:42Z", "hours": 5.9803, "text": "I refined the reward function and ran training for longer. This is how it looks like in simulation after 1000 steps (very little it’ll get better trust)"}, {"post_id": 53543, "ts": "2026-08-24T04:16:21Z", "hours": 22.2889, "text": "I am training an Agent using Soft Actor Critic, and this is the performance after 12k steps of training (yes it’s a little violent rn but I will either train for longer, increase frequency or implement imitation learning)"}]...
|
Title: Vision Based RL by @arushg | Stardance
Dev Title: Vision Based RL by @arushg | Stardance
Devlogs:
I am training an Agent using Soft Actor Critic, and this is the performance after 12k steps of training (yes it’s a little violent rn but I will either train for longer, increase frequency or implement imitation learning)
I refined the reward function and ran training for longer. This is how it looks like in simulation after 1000 steps (very little it’ll get better trust)
Improved the training loop to reflect actual control rate (20 Hz vs 500 Hz in simulation previously). Used AMD GPU for faster training and this is what it looks like (able to balance for ~6 seconds in simulation)
Added the physical hardware bridge and it turns out the model does not do very well. I am going to try three approaches: More training in sim with variation like camera distortion and stuff Fine-tuning on physical hardware QT-Opt
I tried QT-Opt and at least in simulation, it did a lot better (it also trained much faster due to the other architectural change I made; see next). I also switched the backbone to Dinov2 Small, which is newer and smaller than the previous Dino Base backbone.
I also tried PID as a benchmark (only in simulation of course). It did pretty well as shown below, so I might try either imitation learning or a different model that just identifies ball and beam position to then apply PID on top. In parallel, I also tested QT-Opt on hardware and it failed… I’m trying more training with visual distortions in the simulation environment so it becomes more robust
QT-Opt worked much better, but now the problem is with the hardware. The ball just falls forward since the beam is not thick enough. I will print and try again with a thicker beam
I noticed the size of the ball and beam in simulation was not the same as the actual one, so I updated sim to be closer. I also added the past action rolling list to the model, which allowed it to see what it tried to do previously. It now survives 1000 steps in simulation (~50 seconds)
I was mostly working on tuning the model and fixing hardware since the previous circuit did not give the servo enough power. Hence, I added an external power supply (which took hours to debug… turns out I had to ground the ESP32 to the external GND)...
|
1792752738.598552
|
1793357538.598552
|
|
62142
|
Pulse Terminal by @Kxrtik1315 | Stardance
|
Kxrtik1315
|
1
|
6.35
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T14:20:23Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built Pulse Terminal, a dope custom dev command center to replace boring new tabs rn. Ngl, coding the pure vanilla JS for the CLI search router and getting that retro CRT scanline CSS to look clean without any heavy frameworks was lowkey challenging asf. I’m proudest of how the dark glassmorphism UI turned out and that the custom routing protocol actually works flawlessly, fr. Lemme tell you how to test it: just pull up the live link and type in the terminal prompt. Use /gh [your query] to search GitHub, /so for StackOverflow, /yt for YouTube, or just type normally to default to a Google search. It instantly routes you to the right platform, which is awesomee.", "repo": "https://github.com/Kxrtik13-A19/Parallax-New-Tab", "demo": "https://kxrtik13-a19.github.io/Parallax-New-Tab/"}]...
|
[{"post_id": 69860, "ts": "202 [{"post_id": 69860, "ts": "2026-09-17T22:53:44Z", "hours": 3.3586, "text": "created a new css own my own! This time my favourite place’s bg and used my vibe colors! my own world!"}, {"post_id": 69053, "ts": "2026-09-16T09:36:28Z", "hours": 1.1297, "text": "Finally CSS is also completed again with improve features! My Pulse Terminal is Ready Once again with new features and improvements!"}, {"post_id": 69038, "ts": "2026-09-16T08:19:28Z", "hours": 0.4322, "text": "typed script.js again with improvements! enhanced version, replaced local host option with discord and added /yt for youtube!"}, {"post_id": 69028, "ts": "2026-09-16T07:47:42Z", "hours": 0.4272, "text": "written html code again! Some mistakes were there! Now Perfect!"}, {"post_id": 68080, "ts": "2026-09-14T14:15:22Z", "hours": 0.6828, "text": "Just grinding on the Pulse Terminal rn! Spent this 40-minute session locking in the pure vanilla HTML structure and styling that dark IDE glassmorphism vibe with CSS. Got the CRT scanline overlay looking clean asf. Next up is wiring the JS for the live clock and CLI search router so this thing actually functions like a dope command center, fr."}]...
|
Title: Pulse Terminal by @Kxrtik1315 | Stardance
Title: Pulse Terminal by @Kxrtik1315 | Stardance
Devlogs:
Just grinding on the Pulse Terminal rn! Spent this 40-minute session locking in the pure vanilla HTML structure and styling that dark IDE glassmorphism vibe with CSS. Got the CRT scanline overlay looking clean asf. Next up is wiring the JS for the live clock and CLI search router so this thing actually functions like a dope command center, fr.
written html code again! Some mistakes were there! Now Perfect!
typed script.js again with improvements! enhanced version, replaced local host option with discord and added /yt for youtube!
Finally CSS is also completed again with improve features! My Pulse Terminal is Ready Once again with new features and improvements!
created a new css own my own! This time my favourite place’s bg and used my vibe colors! my own world!
Ships:
I built Pulse Terminal, a dope custom dev command center to replace boring new tabs rn. Ngl, coding the pure vanilla JS for the CLI search router and getting that retro CRT scanline CSS to look clean without any heavy frameworks was lowkey challenging asf. I’m proudest of how the dark glassmorphism UI turned out and that the custom routing protocol actually works flawlessly, fr. Lemme tell you how to test it: just pull up the live link and type in the terminal prompt. Use /gh [your query] to search GitHub, /so for StackOverflow, /yt for YouTube, or just type normally to default to a Google search. It instantly routes you to the right platform, which is awesomee....
|
1793209930.205108
|
1793296330.205108
|
|
61194
|
RaceESC by @billythekid | Stardance
|
billythekid
|
0
|
33.5
|
0
|
[]
|
[{"post_id": 69875, "ts": "202 [{"post_id": 69875, "ts": "2026-09-17T23:45:52Z", "hours": 1.3228, "text": "Github repo for the project is live, put together some documentation for the esc, an collated files and wiring diagrams."}, {"post_id": 69142, "ts": "2026-09-16T13:36:18Z", "hours": 4.99, "text": "Layout final and enclosure cad"}, {"post_id": 68647, "ts": "2026-09-15T13:48:18Z", "hours": 6.6139, "text": "layout 3 Version 2, completely rerouted it made it better, its still tight though"}, {"post_id": 67999, "ts": "2026-09-14T11:03:52Z", "hours": 5.8436, "text": "Finished version 1 of the layout, apart from some minor quirks. Added a charge pump fromt the regulated 5V to double the voltage to regulated 10V, for the gate driver. I dont like this layout. It sucks. Areas to improve: Looks super ugly Doesnt have power connections Doesnt have a continuous ground plane at all (really bad for signals) Buck layout has heaps of vias which stops me from putting anything on the other side of it. In engineering, do everything twice, because youll fix all the stupid mistakes you make using the power of foresight."}, {"post_id": 67481, "ts": "2026-09-13T16:27:29Z", "hours": 5.3669, "text": "Finished routing the board on 4 layers, I put the high side FETs on the top, and low side fets on the bottom to keep the board compact, optimised the layout of my buck converter to reduce EMI, by reducing loop area, and used a logic one side, power on the other design. I want to change some things with the board, especially the boost converter, which is way overkill at 10V/2A… I only need to supply the gate driver with like 10V/20mA."}, {"post_id": 67271, "ts": "2026-09-13T10:42:02Z", "hours": 3.4422, "text": "Mostly finished the schematic! Things added: Gate driver: Allows MCU to drive mosfet gates at high currents (like 1.2A), which the MCU pins cannot source. Also allows the use of bootstrap capacitors which I can use to switch the high side FETs. I went with relatively large bootstrap capacitors as this is a relatively low frequency ESC. Mosfets: 6 High currrent 3.3x3.3mm N-MOSFETs arranged in a half bridge fo the ESC. As this esc connects to a separate board with current sensors already on it, The power layer does not include any current shunts MCU: To read Back EMF from the motor, manage signals and control the mosfets, you need a microcontroller. For this ESC I went with the ARTERY AT32F421 because it is cheap and adequite for this application. I had to break out the debug pins (GND, NRST, SWDIO, SWCLK), add decoupling capacitors and pull up/down resistors. The AT32 is also useful because it has a comparator (compares two voltages and outputs 1 if one is higher and 0 if the other is higher) in it which I can use to read the motor Back EMF really quickly. Feedback network: Splits the phase voltage (voltage on the wire of the floating (unpowered) phase of the motor) using a voltage divider, so that the MCU can read it. 3 resistors for each phase + 1 feedforward cap for high frequency noise. Connectors: The board has a 5 pin JST SH connector which carries 5V, GND, SCL, SDA and GPIO (broken out I/O pin from the control pcb). This allows the master board (the telemetry/control board for the car) to control the esc and link the ESC MCU to the master boards sensors (EG the IMU for traction control). 3.3V regulator and indicators: 3.3V LDO drawing power from the buck output to feed the MCU. 2 generic indicator LEDs, one connected directly to an MCU pin, one to GPIO pin on the interface connector, which could be used to indicate a complete connection between the telemetry board and the esc. Power capacitors: For bulk capacitance (for large voltage spikes), two low-esr polymer 220uF capacitors were used. Each MOSFET gate also gets a 4.7uF and 100nF capacitor to smooth out voltage spikes caused by sudden changes in current caused by the FET switching on. Now comes the fun part: ROUTING!!"}, {"post_id": 67149, "ts": "2026-09-13T06:49:52Z", "hours": 3.8333, "text": "Boost converter desigh headache, lapse isnt working. WHY ARE BOOST CONVERTERS SO COMPLICATED?? Spent a solid 2-3 hours trying to wrap my head around the “right half plane zero”, Finally understood it enough to finish the schematic, (this devlog actually too 7 hours). The bit that was the hardest was the small RC (resistor capacitor) network connected to the COMP pin, which allows the chip to dampen oscillations on the voltage feedback loop. It required complex numbers which I have NEVER used before so this was scary. The purpose of the buck converter is to supply 10V to drive the mosfet gates, which will help efficiency (lower RDS on), and make sure the UVLO on the gate driver chip doesnt trip and shut off the motor if the battery voltage dips below it (eg under heavy load voltage drips). The boost converter should be capable of 10V/2A, which is overkill for the gate driver so I might look at compacting it in the future"}, {"post_id": 66489, "ts": "2026-09-12T10:20:59Z", "hours": 2.0833, "text": "Turns out the MPS2315 isnt available on JLC assembly, so I have to choose a new buck converter. Chose this TPS54302 Buck converter from TI and the documentation for it was really really good. Turns out the schematic for this also has less parts and has the added bonus of zero (or very little) dropout (dropout is the minimum input voltage to still output 5V). The buck will still be able to provide 5V/3A as a BEC - not bad. Used a 22uF input capacitor and 2x 22uF output capacitors. The input pin “EN” lets me set a UVLO (under voltage lock out), where the chip will turn off if the input goes below a certain voltage (EN takes input from a voltage divider). The chip has internal weak resistors for EN, so the standard UVLO is ~4.4V, which is perfect, which is why I left EN as no connect."}]...
|
Title: RaceESC by @billythekid | Stardance
Devlog Title: RaceESC by @billythekid | Stardance
Devlogs:
Turns out the MPS2315 isnt available on JLC assembly, so I have to choose a new buck converter. Chose this TPS54302 Buck converter from TI and the documentation for it was really really good. Turns out the schematic for this also has less parts and has the added bonus of zero (or very little) dropout (dropout is the minimum input voltage to still output 5V). The buck will still be able to provide 5V/3A as a BEC - not bad. Used a 22uF input capacitor and 2x 22uF output capacitors. The input pin “EN” lets me set a UVLO (under voltage lock out), where the chip will turn off if the input goes below a certain voltage (EN takes input from a voltage divider). The chip has internal weak resistors for EN, so the standard UVLO is ~4.4V, which is perfect, which is why I left EN as no connect.
Boost converter desigh headache, lapse isnt working. WHY ARE BOOST CONVERTERS SO COMPLICATED?? Spent a solid 2-3 hours trying to wrap my head around the “right half plane zero”, Finally understood it enough to finish the schematic, (this devlog actually too 7 hours). The bit that was the hardest was the small RC (resistor capacitor) network connected to the COMP pin, which allows the chip to dampen oscillations on the voltage feedback loop. It required complex numbers which I have NEVER used before so this was scary. The purpose of the buck converter is to supply 10V to drive the mosfet gates, which will help efficiency (lower RDS on), and make sure the UVLO on the gate driver chip doesnt trip and shut off the motor if the battery voltage dips below it (eg under heavy load voltage drips). The boost converter should be capable of 10V/2A, which is overkill for the gate driver so I might look at compacting it in the future
Mostly finished the schematic! Things added: Gate driver: Allows MCU to drive mosfet gates at high currents (like 1.2A), which the MCU pins cannot source. Also allows the use of bootstrap capacitors which I can use to switch the high side FETs. I went with relatively large bootstrap capacitors as this is a relatively low frequency ESC. Mosfets: 6 High currrent 3.3x3.3mm N-MOSFETs arranged in a half bridge fo the ESC. As this esc connects to a separate board with current sensors already on it, The power layer does not include any current shunts MCU: To read Back EMF from the motor, manage signals and control the mosfets, you need a microcontroller. For this ESC I went with the ARTERY AT32F421 because it is cheap and adequite for this application. I had to break out the debug pins (GND, NRST, SWDIO, SWCLK), add decoupling capacitors and pull up/down resistors. The AT32 is also useful because it has a comparator (compares two voltages and outputs 1 if one is higher and 0 if the other is higher) in it which I can use to read the motor Back EMF really quickly. Feedback network: Splits the phase voltage (voltage on the wire of the floating (unpowered) phase of the motor) using a voltage divider, so that the MCU can read it. 3 resistors for each phase + 1 feedforward cap for high frequency noise. Connectors: The board has a 5 pin JST SH connector which carries 5V, GND, SCL, SDA and GPIO (broken out I/O pin from the control pcb). This allows the master board (the telemetry/control board for the car) to control the esc and link the ESC MCU to the master boards sensors (EG the IMU for traction control). 3.3V regulator and indicators: 3.3V LDO drawing power from the buck output to feed the MCU. 2 generic indicator LEDs, one connected directly to an MCU pin, one to GPIO pin on the interface connector, which could be used to indicate a complete connection between the telemetry board and the esc. Power capacitors: For bulk capacitance (for large voltage spikes), two low-esr polymer 220uF capacitors were used. Each MOSFET gate also gets a 4.7uF and 100nF capacitor to smooth out voltage spikes caused by sudden changes in current caused by the FET switching on. Now comes the fun part: ROUTING!!
Finished routing the board on 4 layers, I put the high side FETs on the top, and low side fets on the bottom to keep the board compact, optimised the layout of my buck converter to reduce EMI, by reducing loop area, and used a logic one side, power on the other design. I want to change some things with the board, especially the boost converter, which is way overkill at 10V/2A… I only need to supply the gate driver with like 10V/20mA.
Finished version 1 of the layout, apart from some minor quirks. Added a charge pump fromt the regulated 5V to double the voltage to regulated 10V, for the gate driver. I dont like this layout. It sucks. Areas to improve: Looks super ugly Doesnt have power connections Doesnt have a continuous ground plane at all (really bad for signals) Buck layout has heaps of vias which stops me from putting anything on the other side of it. In engineering, do everything twice, because youll fix all the stupid mistakes you make using the power of foresight.
layout 3 Version 2, completely rerouted it made it better, its still tight though
Layout final and enclosure cad
Github repo for the project is live, put together some documentation for the esc, an collated files and wiring diagrams....
|
1793040449.3520586
|
1793645249.3520586
|
|
61984
|
The Lynch Pig by @TheGeekachu | Stardance
|
TheGeekachu
|
0
|
1.14
|
0
|
[]
|
[{"post_id": 69878, "ts": "202 [{"post_id": 69878, "ts": "2026-09-17T23:56:56Z", "hours": 1.1411, "text": "I added coins, set up basic character movement, and did an idle animation."}]...
|
Title: The Lynch Pig by @TheGeekachu | Stardance
Title: The Lynch Pig by @TheGeekachu | Stardance
Devlogs:
I added coins, set up basic character movement, and did an idle animation....
|
1793044119.0488513
|
1793648919.0488513
|
|
7215
|
Mimi the Peanut by @Lauren_hackalicious | Stardanc Mimi the Peanut by @Lauren_hackalicious | Stardance...
|
Lauren_hackalicious
|
0
|
4.43
|
0
|
[]
|
[{"post_id": 6988, "ts": "2026 [{"post_id": 6988, "ts": "2026-06-11T18:47:18Z", "hours": 0.7489, "text": "Really short update. I tried working on the form section of the page, but I still have some learning to do in relation to properly organizing “form” properties in CSS."}, {"post_id": 5978, "ts": "2026-06-10T00:53:07Z", "hours": 0.8986, "text": "I updated the main page with new fonts! I fixed the banner’s margin so it displays as it should. I’m working on a second tab for the website, “Jellycat form submission”! I’m still determining how to store the submission from my website, and I’m willing to learn!"}, {"post_id": 5107, "ts": "2026-06-08T19:54:50Z", "hours": 1.2072, "text": "Bug fixes + added more to the frontpage! I was able to fix the weird image bug I had in my previous declog. Turns out it was a confusion in the semantics, specifically the tag. I placed the 3 images inside it, which caused the strange crowding. I fixed this by adding tags between each image. I added 3 more images of mimi to the frontpage, and added a cute border to each one, providing a nice pop of color contrasting the brown background. In the next devlog, I plan to begin developing inside the “Pictures” tab. (hint: lots of color :) ) Mimi is the cutest"}, {"post_id": 4445, "ts": "2026-06-07T19:28:06Z", "hours": 0.8589, "text": "I removed the margins from the top of the page! I centered the text as well as the main photo of Mimi the Peanut. I am currently trying to add 3 more photos below, but I have to pause as I am having trouble displaying them correctly. It probably has something to do with my wifi. Will be updating soon!"}, {"post_id": 3692, "ts": "2026-06-06T18:55:37Z", "hours": 0.7156, "text": "I just started the front of Mimi’s website! I’m learning CSS on codedex while making the website. (Not an advertisement) I added a header, banner, a picture of Mimi (no loading due to my poor wifi connection), and a small bio about Mimi. More coming soon!"}]...
|
Title: Mimi the Peanut by @Lauren_hackalicious | S Title: Mimi the Peanut by @Lauren_hackalicious | Stardance
Devlogs:
I just started the front of Mimi’s website! I’m learning CSS on codedex while making the website. (Not an advertisement) I added a header, banner, a picture of Mimi (no loading due to my poor wifi connection), and a small bio about Mimi. More coming soon!
I removed the margins from the top of the page! I centered the text as well as the main photo of Mimi the Peanut. I am currently trying to add 3 more photos below, but I have to pause as I am having trouble displaying them correctly. It probably has something to do with my wifi. Will be updating soon!
Bug fixes + added more to the frontpage! I was able to fix the weird image bug I had in my previous declog. Turns out it was a confusion in the semantics, specifically the tag. I placed the 3 images inside it, which caused the strange crowding. I fixed this by adding tags between each image. I added 3 more images of mimi to the frontpage, and added a cute border to each one, providing a nice pop of color contrasting the brown background. In the next devlog, I plan to begin developing inside the “Pictures” tab. (hint: lots of color :) ) Mimi is the cutest
I updated the main page with new fonts! I fixed the banner’s margin so it displays as it should. I’m working on a second tab for the website, “Jellycat form submission”! I’m still determining how to store the submission from my website, and I’m willing to learn!
Really short update. I tried working on the form section of the page, but I still have some learning to do in relation to properly organizing “form” properties in CSS....
|
1793166554.6524413
|
1793771354.6524413
|