|
52605
|
actionator by @evmaagca | Stardance
|
evmaagca
|
1
|
41.27
|
711
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-09T22:17:28Z", "hours": 41.0, "multiplier": 17.32, "payout": 711, "blessing": "neutral", "text": "#13 all of the features of this game: The player can move, attack, dash, use charged attacks, and build combos while managing their health and stamina. Players can collect apples, earn points, open chests, and find upgrades throughout the levels. The game includes different terrain, enemies, sound effects, animations, and visual effects to make the gameplay more engaging. There is also a timer and high score system that tracks how far and how quickly the player gets. The game has a title screen, pause menu, controls, credits, run results, and achievement menu where players can see their accomplishments. The overall goal is to survive as long as possible and reach Level 15. finally finished what I believe as my favorite coding project! I am so proud of this game and it is the first one I can truly call a success. I learned so much when making this and am hoping to continue with this knowledge on the next game. my final question is “how far can you go?”", "repo": "https://github.com/evacoffee/actionator", "demo": "https://evmaagca.itch.io/actionatior"}]...
|
[{"post_id": 68843, "ts": "202 [{"post_id": 68843, "ts": "2026-09-15T20:58:50Z", "hours": 0.2667, "text": "#14 just rewrote some code that was bothering me, also I forgot to write why I made this code, I’m hoping to get a Bambu Lab A1 3D printer to help bring parts of the project into the real world. If you’re rating my project, any support toward helping me reach that goal would mean a lot! Thank you in advance!"}, {"post_id": 65010, "ts": "2026-09-09T20:00:19Z", "hours": 7.0094, "text": "#12 completely updated the title screen (now has moving slime!! + buttons for other stuff (still kinda bad) will update again"}, {"post_id": 63138, "ts": "2026-09-06T19:31:16Z", "hours": 4.5922, "text": "#11 added heartbeatsound, bestscore/bestlevel, created combo score thingy, fixed double attack, added chests + upgrades in them"}, {"post_id": 61183, "ts": "2026-09-04T00:00:21Z", "hours": 6.0297, "text": "#10 added 2 levels, added feature where you gain a heart after 5 apples, added flickering during dashing + no damage when dashing, redid player, fixed the apple collection and scoring system, added a end of run screen with stats, added paused menu, added title screen, added stamina bar, added dashes and a second stronger attack"}, {"post_id": 59523, "ts": "2026-09-01T12:07:31Z", "hours": 4.0561, "text": "#9 added another level and tried (key word tried) to add collectables with a score hud for like 2 hours straight until i realized i just forgot to capitalize something"}, {"post_id": 58069, "ts": "2026-08-30T12:41:24Z", "hours": 2.5608, "text": "#8 added 2 more levels, more notes, changed the music, fixed a bug that was hindering the loading of levels and fixed (again) the textboxes"}, {"post_id": 56988, "ts": "2026-08-29T01:33:08Z", "hours": 3.47, "text": "#7 added 2 more levels, also added words to some levels using canvaslayer, panels and layers!!"}, {"post_id": 55295, "ts": "2026-08-27T01:16:44Z", "hours": 1.3264, "text": "#6 kind of short but I added 2 more levels and fixed a few more bugs with the nodes :0"}, {"post_id": 55159, "ts": "2026-08-26T17:09:10Z", "hours": 2.4722, "text": "#5 added more levels, fixed some music bugs, and added level numbers on the levels themselves"}, {"post_id": 54972, "ts": "2026-08-26T12:27:23Z", "hours": 2.1908, "text": "#4 added hearts after killing slimes, added bg music and added more levels with water"}, {"post_id": 54072, "ts": "2026-08-24T20:54:04Z", "hours": 2.8656, "text": "#3 added player health & damage, created a fading black and white screen between levels and added 2 more levels (there are more to the scripts not just what i uploaded)"}, {"post_id": 52713, "ts": "2026-08-23T00:55:19Z", "hours": 1.5569, "text": "#2 added the tilemaplayer, the level itself, and the foliage around it!"}, {"post_id": 52004, "ts": "2026-08-22T00:56:02Z", "hours": 2.9169, "text": "#1 adding character/slime/config movements basically all i did was add all the main entities, added sword, combat system & attack hitbox, and player/enemy movement and animation."}]...
|
Title: actionator by @evmaagca | Stardance
Devlog Title: actionator by @evmaagca | Stardance
Devlogs:
#1 adding character/slime/config movements basically all i did was add all the main entities, added sword, combat system & attack hitbox, and player/enemy movement and animation.
#2 added the tilemaplayer, the level itself, and the foliage around it!
#3 added player health & damage, created a fading black and white screen between levels and added 2 more levels (there are more to the scripts not just what i uploaded)
#4 added hearts after killing slimes, added bg music and added more levels with water
#5 added more levels, fixed some music bugs, and added level numbers on the levels themselves
#6 kind of short but I added 2 more levels and fixed a few more bugs with the nodes :0
#7 added 2 more levels, also added words to some levels using canvaslayer, panels and layers!!
#8 added 2 more levels, more notes, changed the music, fixed a bug that was hindering the loading of levels and fixed (again) the textboxes
#9 added another level and tried (key word tried) to add collectables with a score hud for like 2 hours straight until i realized i just forgot to capitalize something
#10 added 2 levels, added feature where you gain a heart after 5 apples, added flickering during dashing + no damage when dashing, redid player, fixed the apple collection and scoring system, added a end of run screen with stats, added paused menu, added title screen, added stamina bar, added dashes and a second stronger attack
#11 added heartbeatsound, bestscore/bestlevel, created combo score thingy, fixed double attack, added chests + upgrades in them
#12 completely updated the title screen (now has moving slime!! + buttons for other stuff (still kinda bad) will update again
#14 just rewrote some code that was bothering me, also I forgot to write why I made this code, I’m hoping to get a Bambu Lab A1 3D printer to help bring parts of the project into the real world. If you’re rating my project, any support toward helping me reach that goal would mean a lot! Thank you in advance!
Ships:
#13 all of the features of this game: The player can move, attack, dash, use charged attacks, and build combos while managing their health and stamina. Players can collect apples, earn points, open chests, and find upgrades throughout the levels. The game includes different terrain, enemies, sound effects, animations, and visual effects to make the gameplay more engaging. There is also a timer and high score system that tracks how far and how quickly the player gets. The game has a title screen, pause menu, controls, credits, run results, and achievement menu where players can see their accomplishments. The overall goal is to survive as long as possible and reach Level 15. finally finished what I believe as my favorite coding project! I am so proud of this game and it is the first one I can truly call a success. I learned so much when making this and am hoping to continue with this knowledge on the next game. my final question is “how far can you go?”...
|
1793116422.4123514
|
1793202822.4123514
|
|
44009
|
Multiversal Remote by @antellij | Stardance
|
antellij
|
1
|
41.2
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T01:35:17Z", "hours": 39.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A project aimed at replicating IR signals for media communication while also being able to act as a Bluetooth keyboard (Can do media controls and keystrokes), with the ability to be (fairly) easily extensible for more profiles and devices.", "repo": "https://github.com/antelliJ/Universal-Remote", "demo": ""}]...
|
[{"post_id": 78449, "ts": "202 [{"post_id": 78449, "ts": "2026-10-10T20:25:14Z", "hours": 0.725, "text": "Added a BOM and STEP file to the repository, so it should become a lot more clear on how to reproduce the project, and should help prepare for shipping."}, {"post_id": 64470, "ts": "2026-09-08T21:54:07Z", "hours": 1.4783, "text": "Actually started designing something to make it look nice in, and something to hold down the microcontroller and other components. That means you don’t need to touch the main board when plugging in power (novel). The wiring has been cleaned up a little (still looks terrible), so it should be far easier to repair / replace any parts that aren’t working. I have now actually been able to use the 8 buttons of the shift register due to this. I cut some grooves for necessary IO sensors and for the power, added a filet to the corners to make it more ergonomic and comfortable to hold. There is now also a back panel so you can rest your hands there instead of pulling out a wire. I also designed a 3d version of this just incase it was necessary."}, {"post_id": 56312, "ts": "2026-08-28T01:29:34Z", "hours": 1.6631, "text": "Devlog 7.1 Was just about to ship when I realized there was a bug that I somehow never noticed before that would mean you couldn’t functionally use more than a single page of profiles (4), which would be quite detrimental to anyone wishing to turn on more than a set of lights"}, {"post_id": 55369, "ts": "2026-08-27T04:50:28Z", "hours": 1.7567, "text": "Devlog 7 While I could at leas try to make something pretty, I’ll just say I’m a pragmatist and don’t need extra fluff. The casing is just a wooden frame that I drilled holes for the buttons and screen, and the final and basically only functional button is just taped on at the top, but with that being said, it does do what I want it to do, and I think that that is enough. I’ve decided this project has set its sail and is about to roam the open waters of the shipyard. I’ve taken some fine looking photos to attach to the top of the github repository, shined up the README to make proper installation instructions, and am just about ready to ship what I have."}, {"post_id": 54557, "ts": "2026-08-25T16:04:53Z", "hours": 6.6308, "text": "Devlog 6 I might just be the most oblivious person I know Since my shift register wasn’t registering, I went ahead to continuity check every connection from each input pin to the register, then form the register to the microcontroller, then to just about every other pin, and cross referencing with the schematic, fixing minor issues and repeat like 5 times, but to no avail. I seemed to believe I was Terry Davis or something because I was convinced it was a hardware issue and didn’t check any of the software, only the code that checks the inputs, which theoretically should have worked. I assumed at some point I catastrophically ruined the IC So I desoldered all register related components and just used a single button for debugging. Just for fun I tested the IC on another breadboard with an ESP32 that I know was working and it functioned properly. Odd. When I’m rewriting the code to work for a single button I was trying to alter the logic for the register setup, it was at this moment I realized the setup function wasn’t called - gasp one line – registerSetup(); would have made everything work. While I could put everything back together, I don’t want to deal with the glob just yet, I’ll wait to get a socket (in case the IC does actually break at some point) I’ll also begin writing the README for the project on github since the major parts of the project are done PS - I just realized I missed devlog 3 - welp there’s no going back now"}, {"post_id": 52768, "ts": "2026-08-23T03:32:44Z", "hours": 5.8708, "text": "Devlog 5 I’ve done a bit of soldering at this point, but I will say it is definitely not pretty. It is a rats nest of floating wires that probably won’t short or disconnect if I’m lucky, and all the power lines are held together with massive blobs of solder (or wires connecting the blobs since the blobs don’t stay together if they get too large) In all my genius I also used solid core wire, which means they are more stiff, and more likely to break off from my weak solder points than flex, so I had to do a lot of reattachment. Magically, it appears a lot of things are working, just not the shift register and its hard to say why. Perhaps I burned it and ruined the internal ICs, I’m not sure. I think I’ll disconnect it and reattach a singular button just to make sure everything else works (and I at least have some feasible product at the end of this)."}, {"post_id": 50723, "ts": "2026-08-20T02:04:22Z", "hours": 3.6953, "text": "Devlog 4 I’ve been working on some light soldering, but the most interesting part was the work on the woodwork for the actual remote chassis since I don’t have a 3d printer. I used an old wooden frame i had around. Maybe its the calm before the storm, but I found this part really relaxing. I would drill and chip away bit by bit, and eventually things would go in and fit flushly, and was really rewarding. During the timelapse you can see each hit as the camera moves, and I think its really satisfying cleaning the workbench, making progress, and the cleanup. Feeling the buttons and rotary encoder firmly in place made me realize I quite like the tactile feel, and I might want to implement some games, maybe like a memory game so I can use all the buttons or a space invaders replica."}, {"post_id": 49180, "ts": "2026-08-17T20:24:29Z", "hours": 7.9239, "text": "Devlog 2 Now that I have the bluetooth and IR functionality working together, the ir demo is attached in the video. I’ve also created a schematic, which was done as my first time ever using KiCad, so I first followed the web tutorial to get the basics, then went in. While I don’t need to get a pcb since I plan on just soldering everything directly, it does make visualizing the connections easier. That is especially imoprtant since I’m running very tight on applicable GPIO pins. I need 10 total IO pins for everything (screen I2C, shift register, rotary encoder, IR receiver and transmitter). The board I’m using (ESP32 C3 super-mini) has 16 pins, 13 for GPIO. But of that 13, 3 are strapping pins (required to be in particular states at boot), and 2 are for UART transmission. Leaving only 8 fully open pins. Theoretically I could just stack shift registers for everything input and only use like 5 pins, but that sounds overcomplicated, and I thought it would be a fun challenge to get everything to work. I went through the datasheets to figure out which state would be safest and would logically not be a worry, for instance pin 8 should be low at boot, but afterwards it acts an output to the internal LED, that meant I could safely connect that to the IR since it would never need to be pulled high unless it was being used, and having a visual indicator of when the IR was transmitting seemed like a fun inclusion. I’m sure the final schematic is not the most tidy thing, but I think it works for what it needs to be. I attached it to the end of the video"}, {"post_id": 45873, "ts": "2026-08-12T16:41:02Z", "hours": 3.1183, "text": "Devlog 1 I seem to be very good at getting lost. I realized that I couldn’t safely handle Bluetooth or IR commands since all the logic uses the base class (that makes switching between them easy). The only problem is when I actually have to use the specific properties of each. So I went into a rabbit hole trying to get variants, and implementing some of the bluetooth protocols as I passed by that file, and when I remembered what was actually trying to fix I realized I could just force it to recognize it based on the state (the property that I had set up at the start). At least working on the bluetooth media part did make me realize that I only had the foresight to add character presses into my structs, and not necessarily media keys. So I’ll need to figure that out… Since I’ll be getting my proper board with some other necessary components soon, I think I’ll also start to work on a schematic and readme as I’m getting closer to actually finishing (and shipping) this project"}, {"post_id": 44303, "ts": "2026-08-09T23:29:14Z", "hours": 8.5378, "text": "Devlog 0 yap yap A whole lot of things today are built on being convenient and therefore wireless, but sometimes things are too convenient that they end up creating an annoyance. Case being the amount of remotes that powers an LED strip at most once a month and then hides away collecting dust ready to be forgotten, and it being the only way to power these devices makes them quite necessary. I wanted to solve this by creating my own IR remote, which can read any signal and proceed to save it so that I only need one remote for LEDs, TVs, or other IR devices. Using the beloved ESP32, I also have bluetooth functionality and thought it would be good to bring the idea of a universal remote into a modern age by allowing it to also connect and give wireless commands through bluetooth. This allows it to pause/play/skip media, act as a shutter for a phone’s camera, become a macro pad, all through the various profiles that you can set up for your own needs. what I’ve actually done Now with all these lofty ideas requires a strong foundation, so after testing all the libraries and components individually I needed to bring these all together gracefully (at least to the best of my ability). So I started creating a framework for all of the components and how they will relate to each other without having the ability to cause direct harm to the other parts of the system should I mess up (which is likely). I’ve done enough coding to get my way around and find what I need, but I wouldn’t be able to name what approach I’m using at the top of my head, and maybe putting everything in header files isn’t the best idea long term but that’s a problem for later. Component wise I’m using an esp32-c3 with a standard OLED module, a rotary encoder, several buttons, and a shift register. Apparently the shift register is rated for 5v logic only, but it appears to be working during my tests so I’m assuming its fine. Anyways actually creating a derived class and propagating the values of the current state of the program was a bit more involved than I thought, so I needed to spend time debugging that while I was setting up the screen logic at the same time. It currently works by showing the title of the current profile, the available 8 commands (which would map to the 8 buttons), and whether there are more commands that can be scrolled to using the rotary encoder. Video stuff Attached is the video that shows the first 8 commands of a profile being drawn step by step. Afterwards is a showcase of some of the planning and code (terribly written I’m sure) that I’ve done so far"}]...
|
Title: Multiversal Remote by @antellij | Stardance Title: Multiversal Remote by @antellij | Stardance
Devlogs:
Devlog 0 yap yap A whole lot of things today are built on being convenient and therefore wireless, but sometimes things are too convenient that they end up creating an annoyance. Case being the amount of remotes that powers an LED strip at most once a month and then hides away collecting dust ready to be forgotten, and it being the only way to power these devices makes them quite necessary. I wanted to solve this by creating my own IR remote, which can read any signal and proceed to save it so that I only need one remote for LEDs, TVs, or other IR devices. Using the beloved ESP32, I also have bluetooth functionality and thought it would be good to bring the idea of a universal remote into a modern age by allowing it to also connect and give wireless commands through bluetooth. This allows it to pause/play/skip media, act as a shutter for a phone’s camera, become a macro pad, all through the various profiles that you can set up for your own needs. what I’ve actually done Now with all these lofty ideas requires a strong foundation, so after testing all the libraries and components individually I needed to bring these all together gracefully (at least to the best of my ability). So I started creating a framework for all of the components and how they will relate to each other without having the ability to cause direct harm to the other parts of the system should I mess up (which is likely). I’ve done enough coding to get my way around and find what I need, but I wouldn’t be able to name what approach I’m using at the top of my head, and maybe putting everything in header files isn’t the best idea long term but that’s a problem for later. Component wise I’m using an esp32-c3 with a standard OLED module, a rotary encoder, several buttons, and a shift register. Apparently the shift register is rated for 5v logic only, but it appears to be working during my tests so I’m assuming its fine. Anyways actually creating a derived class and propagating the values of the current state of the program was a bit more involved than I thought, so I needed to spend time debugging that while I was setting up the screen logic at the same time. It currently works by showing the title of the current profile, the available 8 commands (which would map to the 8 buttons), and whether there are more commands that can be scrolled to using the rotary encoder. Video stuff Attached is the video that shows the first 8 commands of a profile being drawn step by step. Afterwards is a showcase of some of the planning and code (terribly written I’m sure) that I’ve done so far
Devlog 1 I seem to be very good at getting lost. I realized that I couldn’t safely handle Bluetooth or IR commands since all the logic uses the base class (that makes switching between them easy). The only problem is when I actually have to use the specific properties of each. So I went into a rabbit hole trying to get variants, and implementing some of the bluetooth protocols as I passed by that file, and when I remembered what was actually trying to fix I realized I could just force it to recognize it based on the state (the property that I had set up at the start). At least working on the bluetooth media part did make me realize that I only had the foresight to add character presses into my structs, and not necessarily media keys. So I’ll need to figure that out… Since I’ll be getting my proper board with some other necessary components soon, I think I’ll also start to work on a schematic and readme as I’m getting closer to actually finishing (and shipping) this project
Devlog 2 Now that I have the bluetooth and IR functionality working together, the ir demo is attached in the video. I’ve also created a schematic, which was done as my first time ever using KiCad, so I first followed the web tutorial to get the basics, then went in. While I don’t need to get a pcb since I plan on just soldering everything directly, it does make visualizing the connections easier. That is especially imoprtant since I’m running very tight on applicable GPIO pins. I need 10 total IO pins for everything (screen I2C, shift register, rotary encoder, IR receiver and transmitter). The board I’m using (ESP32 C3 super-mini) has 16 pins, 13 for GPIO. But of that 13, 3 are strapping pins (required to be in particular states at boot), and 2 are for UART transmission. Leaving only 8 fully open pins. Theoretically I could just stack shift registers for everything input and only use like 5 pins, but that sounds overcomplicated, and I thought it would be a fun challenge to get everything to work. I went through the datasheets to figure out which state would be safest and would logically not be a worry, for instance pin 8 should be low at boot, but afterwards it acts an output to the internal LED, that meant I could safely connect that to the IR since it would never need to be pulled high unless it was being used, and having a visual indicator of when the IR was transmitting seemed like a fun inclusion. I’m sure the final schematic is not the most tidy thing, but I think it works for what it needs to be. I attached it to the end of the video
Devlog 4 I’ve been working on some light soldering, but the most interesting part was the work on the woodwork for the actual remote chassis since I don’t have a 3d printer. I used an old wooden frame i had around. Maybe its the calm before the storm, but I found this part really relaxing. I would drill and chip away bit by bit, and eventually things would go in and fit flushly, and was really rewarding. During the timelapse you can see each hit as the camera moves, and I think its really satisfying cleaning the workbench, making progress, and the cleanup. Feeling the buttons and rotary encoder firmly in place made me realize I quite like the tactile feel, and I might want to implement some games, maybe like a memory game so I can use all the buttons or a space invaders replica.
Devlog 5 I’ve done a bit of soldering at this point, but I will say it is definitely not pretty. It is a rats nest of floating wires that probably won’t short or disconnect if I’m lucky, and all the power lines are held together with massive blobs of solder (or wires connecting the blobs since the blobs don’t stay together if they get too large) In all my genius I also used solid core wire, which means they are more stiff, and more likely to break off from my weak solder points than flex, so I had to do a lot of reattachment. Magically, it appears a lot of things are working, just not the shift register and its hard to say why. Perhaps I burned it and ruined the internal ICs, I’m not sure. I think I’ll disconnect it and reattach a singular button just to make sure everything else works (and I at least have some feasible product at the end of this).
Devlog 6 I might just be the most oblivious person I know Since my shift register wasn’t registering, I went ahead to continuity check every connection from each input pin to the register, then form the register to the microcontroller, then to just about every other pin, and cross referencing with the schematic, fixing minor issues and repeat like 5 times, but to no avail. I seemed to believe I was Terry Davis or something because I was convinced it was a hardware issue and didn’t check any of the software, only the code that checks the inputs, which theoretically should have worked. I assumed at some point I catastrophically ruined the IC So I desoldered all register related components and just used a single button for debugging. Just for fun I tested the IC on another breadboard with an ESP32 that I know was working and it functioned properly. Odd. When I’m rewriting the code to work for a single button I was trying to alter the logic for the register setup, it was at this moment I realized the setup function wasn’t called - gasp one line – registerSetup(); would have made everything work. While I could put everything back together, I don’t want to deal with the glob just yet, I’ll wait to get a socket (in case the IC does actually break at some point) I’ll also begin writing the README for the project on github since the major parts of the project are done PS - I just realized I missed devlog 3 - welp there’s no going back now
Devlog 7 While I could at leas try to make something pretty, I’ll just say I’m a pragmatist and don’t need extra fluff. The casing is just a wooden frame that I drilled holes for the buttons and screen, and the final and basically only functional button is just taped on at the top, but with that being said, it does do what I want it to do, and I think that that is enough. I’ve decided this project has set its sail and is about to roam the open waters of the shipyard. I’ve taken some fine looking photos to attach to the top of the github repository, shined up the README to make proper installation instructions, and am just about ready to ship what I have.
Devlog 7.1 Was just about to ship when I realized there was a bug that I somehow never noticed before that would mean you couldn’t functionally use more than a single page of profiles (4), which would be quite detrimental to anyone wishing to turn on more than a set of lights
Actually started designing something to make it look nice in, and something to hold down the microcontroller and other components. That means you don’t need to touch the main board when plugging in power (novel). The wiring has been cleaned up a little (still looks terrible), so it should be far easier to repair / replace any parts that aren’t working. I have now actually been able to use the 8 buttons of the shift register due to this. I cut some grooves for necessary IO sensors and for the power, added a filet to the corners to make it more ergonomic and comfortable to hold. There is now also a back panel so you can rest your hands there instead of pulling out a wire. I also designed a 3d version of this just incase it was necessary.
Added a BOM and STEP file to the repository, so it should become a lot more clear on how to reproduce the project, and should help prepare for shipping.
Ships:
A project aimed at replicating IR signals for media communication while also being able to act as a Bluetooth keyboard (Can do media controls and keystrokes), with the ability to be (fairly) easily extensible for more profiles and devices....
|
1793138089.783648
|
1793224489.783648
|
|
66608
|
PULSAR OS by @N1kamaro | Stardance
|
N1kamaro
|
1
|
41.14
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-02T13:49:59Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is Pulsar OS, a WebOS focused on hardware and software development. To be honest, those three days spent developing Pulsar were a massive headache—especially developing the project’s core (the JavaScript) and getting the whole system to communicate seamlessly without any glitches ☠️. And I won’t lie: I’m really proud to have successfully made the WebOS communicate properly with an ESP32 or even an Arduino! I hadn’t seen this feature anywhere else; I spent hours researching and trying to figure out how it worked. It was a huge headache, too, but—would you look at that—it actually worked! Now the system includes a calculator, a functional built-in browser (with some limitations, but it works), customization options, a notepad, and a guide in case you’re unsure how things work. All in all, it turned into a pretty complete system that I’m happy to share with you all! SEE YA IN THE NEXT PROJECT!!", "repo": "https://github.com/N1kamaro/Project-PULSAR-OS", "demo": "https://n1kamaro.github.io/Project-PULSAR-OS/"}]...
|
[{"post_id": 83835, "ts": "202 [{"post_id": 83835, "ts": "2026-10-28T18:11:20Z", "hours": 1.1292, "text": "BUILD 1.0 VER. Ultra Lite (Ultra litefication) heya guys, today i started something that im calling “Ultra litefication”! The idea is pretty simple, the interface looks complex and modern, but why not make it simpler? -THATS WHAT IM GONNA DO!! -im making the code simpler, by removing more things, like the source map in the html, css and in the javascript. -Im gonna change the boot screen completely. -Fixing some little visual details, and im planning to remove the Applications menu and move all the apps directly onto the pulsar desktop, just like the desktop shortcuts in Windows! This way, you’ll be able to access everything right from the desktop, without having to open a menu, ths lowkey simplifies everything, so everything looks even better What have I done so far? -I changed the appearance of the top bar, starting by the color, it was looking like a glass, so i changed it so the black would be completely solid. -Apps padronization changed too, now everything’s solid black or sum color near that. -Deleted all the source map in the code. -Pushed the code, so all the changes and the commit is already available ( Every commit I make on GitHub counts as a devlog entry here. ) And thats pretty much everything i wanted to say, ill be publishing about my progress every single day till i finish this project, see ya!"}, {"post_id": 82143, "ts": "2026-10-24T03:02:22Z", "hours": 6.56, "text": "FINALLY, WE DID IT, 40 HOURS OF DEVELOPMENT!! Now, the rework is finally done!! I reorganized and simplified tons of things throughout the codebase, like merging repeated CSS blocks (identical headers, footers, and scrollbars), and created variables for text, borders, backgrounds, status colors, and things like that! :D So now, instead of just having random hex colors and repeated values everywhere (not cool), everything is waaaay more organized now :D. Isn’t that nice? And I also fixed a lot of bugs in the CSS: The dark wallpaper overlay is back, now controlled by --desktop-dim . Removed the duplicated .wallpaper-grid class. Fixed the card grid so it only applies inside the Customization window. Notes, Calculator, and Terminal now have their own mobile layout rules instead of overflowing the screen. Guide and Device Manager are properly centered on smaller screens. Signal Log and Customization now use clamp() to fit smaller displays. Removed useless hover effects, unnecessary opacity rules, and unused CSS. I also simplified tons of other things and fixed more issues than I expected. :D BUT, THERE’S SOMETHING IMPORTANT! PULSAR-OS has its own personality. The visual identity is basically fixed and WILL STAY like this. The important details and the app dimensions are still the same. I didn’t want to turn the whole project into smth generic just to make the code shorter. The goal was to make the CSS cleaner, easier to understand, and more consistent, without losing what makes PULSAR-OS feel like PULSAR-OS. THE REWORK IS DONE. PULSAR-OS IS STILL ALIVE!! SEE YA IN THE NEXT ADVENTURE!!! :DDD (btw, there are a lot of comments in Brazilian Portuguese (PT-BR) throughout the code, so feel free to use a translator if you want to read them! :D)"}, {"post_id": 78172, "ts": "2026-10-09T21:04:34Z", "hours": 6.5275, "text": "THE FINAL DEVLOG 😭😭😭😭😭😭 After days of fixing stuff, rewriting parts of javascript, css and testing EVERYTHING , FINALLY THE REMAKE IS READY!!! but.. what changed? Reworked JavaScript, Html and Css! Fixed bugs and removed a LOT of unnecessary code. Improved the interface and the interface of window manager. Kept all apps, settings, and LocalStorage working 100%. Tested the serial monitor and Device Manager with a Esp32 - STILL WORKS PERFECLY! Cleaned lots of ai stuff and changed the logo made with Ai The hasdest part was definitely cleaning up the code without breaking the whole system, and honestly, sometimes there were moments when i genuinaly thought i was going to lose my mind and i really wanted to give up, but here we are, everything done :D I need to reiterate one thing about the project: the browser DOES WORK. BUT, IT HAS SOME LIMITATIONS ABOUT THE SITE 𝙔𝙊𝙐 WANT TO ACESS! Many sites refuse embedded viewing, while others allow it; it is up to you to research which ones do and which ones don’t. Anyway, thanks a lot for reading. It was a headache getting all this done, and unfortunately, I couldn’t find a more practical way to fix it without rebuilding my entire code—but yaaah, here we are. BUILD 1.0 (REMAKE) IS COMPLETE! SEE YA NEXT PROJECT (or devlog, i dunno :D )"}, {"post_id": 76585, "ts": "2026-10-04T02:01:03Z", "hours": 8.9256, "text": "Actually, I’ve been developing Build 1.0 (the remake)! I’ve been fixing bugs, changing some AI stuff, deleting dead stuff from the CSS, cleaning up the code, and doing lots of other things like that! But… what’s actually different?Wallpapers — They were all replaced with real photos taken by the Hubble Space Telescope! I also added a new tab where you can check the sources for all of them, with links to the official ESA pages. Tiny differences — Some small design changes, like changing the opacity of the top bar and menu, plus a bunch of tiny things like that :D I’m still developing and changing tons of stuff, so that’s it for now! See ya :D"}, {"post_id": 76133, "ts": "2026-10-02T13:29:44Z", "hours": 7.5233, "text": "YEEEEEAH, I ACTUALLY DID IT :D Remember when I said: “PULSAR STARTED YESTERDAY. PULSAR SHIPS TODAY.” WELL… PULSAR SHIPPED. After a LOT of debugging, testing, fixing things, breaking other things while fixing those things KKKKKKKK, and finishing the last parts of the system, PULSAR OS // BUILD 1.0 IS FINALLY DONE. The last development phase was basically about making everything actually work together. We finished all the applications, connected the hardware system, tested everything, fixed the remaining bugs and then cleaned and mapped the source code so that someone opening the project can actually understand WHERE EVERYTHING IS KKKKKKK. And somehow, this thing now has: NOTES // local storage + autosave CALCULATOR // because every OS needs one :D TERMINAL // commands, system tools and hardware communication PULSAR WEB // a web interface inside a Web OS SERIAL MONITOR // direct RX/TX communication with microcontrollers DEVICE MANAGER // connected hardware information and management GUIDE // documentation built directly into PULSAR CUSTOMIZATION // wallpapers and system personalization And yes, the hardware part WORKS. For the final test, I connected an ESP32 to PULSAR and sent: PULSAR > Hello ESP And it answered: ESP32 > Hello Pulsar! :D We also went through the HTML, CSS and JavaScript and mapped the different parts of the source code, so if someone wants to explore PULSAR or use it to understand how a Web OS like this works, the project is MUCH easier to navigate now. And then… WE PUT IT ONLINE. Obviously, the first completely reasonable thing I did was open PULSAR inside PULSAR Web… SO YES. PULSAR CAN RUN PULSAR INSIDE PULSAR. KKKKKKKKKKKKKKKKKKKKKKKK This project started with me giving myself the incredibly stupid challenge of making an entire Web OS in basically one day. Then I made the challenge worse. Then I called it “50 YEARS IN 5.” And now I’m looking at a finished Web OS with a desktop, apps, terminal, documentation, storage, hardware communication and its own little ecosystem. So… I think we’re done here :D PULSAR OS // BUILD 1.0 SYSTEM // ONLINE DEVELOPMENT … COMPLETE !!!!!! SIGNAL // ACQUIRED Thank you to everyone who followed these devlogs! This was PULSAR. BYE BYEEEE :D SEE YA IN THE NEXT PROJECT!!! — N1K A STAR. A SIGNAL. AN INTERFACE."}, {"post_id": 75649, "ts": "2026-09-30T17:17:00Z", "hours": 5.0481, "text": "OKAY, WE ARE DOING 50 YEARS IN 5 (Brazillian history class ref). Remember when I said I would start AND finish PULSAR-OS yesterday?? Well… I decided to make that challenge EVEN WORSE KKKKKKKPULSAR already looks like an OS, but I don’t want it to just look like one. I WANT IT TO FEEL LIKE ONE. So I’m calling this next phase: 50 YEARS IN 5. I’m basically speedrunning decades of OS features into PULSAR before shipping it today :D And we already made some serious progress:STORAGE // ONLINEBOOT // WORKINGSYSTEM MENU // WORKINGCUSTOMIZATION // WORKING 0 ERRORS. Now comes the insanity: apps, terminal, notes, calculator, search, documentation and, most importantly, the microcontroller/hardware system. Is this reasonable?NO. Are we doing it anyway?YEAH. PULSAR STARTED YESTERDAY. PULSAR SHIPS TODAY. SEE YA IN THE FINAL DEVLOG :D"}, {"post_id": 75297, "ts": "2026-09-29T17:45:11Z", "hours": 5.8247, "text": "YEEEAH PULSAR-OS IS ALIVE!!!!Sooo… I decided to give myself a pretty stupid challenge today:START AND FINISH AN ENTIRE WEB OS IN ONE DAY.Yep.I started PULSAR-OS TODAY, and my goal is to have the project finished and shipped before the end of the day KKKKKKKPULSAR is a web-based operating system / hardware interface that I want to use to interact with microcontrollers and some of my electronics projects :DAnd somehow, after almost 6 hours of work, this thing went from basically nothing to ACTUALLY LOOKING LIKE AN OPERATING SYSTEM.PULSAR already has multiple wallpapers, and you can change them directly through the customization window. I spent WAY too much time fighting bugs with this part, but IT FINALLY WORKS.BUT my favorite part so far is definitely the boot sequence!!The thing is: I started doing this today, and the mission? FINISHING IT TODAY TOO!I have only a few more hours left.SEE YA IN THE FINAL DEVLOG :D"}]...
|
Title: PULSAR OS by @N1kamaro | Stardance
Devlogs Title: PULSAR OS by @N1kamaro | Stardance
Devlogs:
YEEEAH PULSAR-OS IS ALIVE!!!!Sooo… I decided to give myself a pretty stupid challenge today:START AND FINISH AN ENTIRE WEB OS IN ONE DAY.Yep.I started PULSAR-OS TODAY, and my goal is to have the project finished and shipped before the end of the day KKKKKKKPULSAR is a web-based operating system / hardware interface that I want to use to interact with microcontrollers and some of my electronics projects :DAnd somehow, after almost 6 hours of work, this thing went from basically nothing to ACTUALLY LOOKING LIKE AN OPERATING SYSTEM.PULSAR already has multiple wallpapers, and you can change them directly through the customization window. I spent WAY too much time fighting bugs with this part, but IT FINALLY WORKS.BUT my favorite part so far is definitely the boot sequence!!The thing is: I started doing this today, and the mission? FINISHING IT TODAY TOO!I have only a few more hours left.SEE YA IN THE FINAL DEVLOG :D
OKAY, WE ARE DOING 50 YEARS IN 5 (Brazillian history class ref). Remember when I said I would start AND finish PULSAR-OS yesterday?? Well… I decided to make that challenge EVEN WORSE KKKKKKKPULSAR already looks like an OS, but I don’t want it to just look like one. I WANT IT TO FEEL LIKE ONE. So I’m calling this next phase: 50 YEARS IN 5. I’m basically speedrunning decades of OS features into PULSAR before shipping it today :D And we already made some serious progress:STORAGE // ONLINEBOOT // WORKINGSYSTEM MENU // WORKINGCUSTOMIZATION // WORKING 0 ERRORS. Now comes the insanity: apps, terminal, notes, calculator, search, documentation and, most importantly, the microcontroller/hardware system. Is this reasonable?NO. Are we doing it anyway?YEAH. PULSAR STARTED YESTERDAY. PULSAR SHIPS TODAY. SEE YA IN THE FINAL DEVLOG :D
YEEEEEAH, I ACTUALLY DID IT :D Remember when I said: “PULSAR STARTED YESTERDAY. PULSAR SHIPS TODAY.” WELL… PULSAR SHIPPED. After a LOT of debugging, testing, fixing things, breaking other things while fixing those things KKKKKKKK, and finishing the last parts of the system, PULSAR OS // BUILD 1.0 IS FINALLY DONE. The last development phase was basically about making everything actually work together. We finished all the applications, connected the hardware system, tested everything, fixed the remaining bugs and then cleaned and mapped the source code so that someone opening the project can actually understand WHERE EVERYTHING IS KKKKKKK. And somehow, this thing now has: NOTES // local storage + autosave CALCULATOR // because every OS needs one :D TERMINAL // commands, system tools and hardware communication PULSAR WEB // a web interface inside a Web OS SERIAL MONITOR // direct RX/TX communication with microcontrollers DEVICE MANAGER // connected hardware information and management GUIDE // documentation built directly into PULSAR CUSTOMIZATION // wallpapers and system personalization And yes, the hardware part WORKS. For the final test, I connected an ESP32 to PULSAR and sent: PULSAR > Hello ESP And it answered: ESP32 > Hello Pulsar! :D We also went through the HTML, CSS and JavaScript and mapped the different parts of the source code, so if someone wants to explore PULSAR or use it to understand how a Web OS like this works, the project is MUCH easier to navigate now. And then… WE PUT IT ONLINE. Obviously, the first completely reasonable thing I did was open PULSAR inside PULSAR Web… SO YES. PULSAR CAN RUN PULSAR INSIDE PULSAR. KKKKKKKKKKKKKKKKKKKKKKKK This project started with me giving myself the incredibly stupid challenge of making an entire Web OS in basically one day. Then I made the challenge worse. Then I called it “50 YEARS IN 5.” And now I’m looking at a finished Web OS with a desktop, apps, terminal, documentation, storage, hardware communication and its own little ecosystem. So… I think we’re done here :D PULSAR OS // BUILD 1.0 SYSTEM // ONLINE DEVELOPMENT … COMPLETE !!!!!! SIGNAL // ACQUIRED Thank you to everyone who followed these devlogs! This was PULSAR. BYE BYEEEE :D SEE YA IN THE NEXT PROJECT!!! — N1K A STAR. A SIGNAL. AN INTERFACE.
Actually, I’ve been developing Build 1.0 (the remake)! I’ve been fixing bugs, changing some AI stuff, deleting dead stuff from the CSS, cleaning up the code, and doing lots of other things like that! But… what’s actually different?Wallpapers — They were all replaced with real photos taken by the Hubble Space Telescope! I also added a new tab where you can check the sources for all of them, with links to the official ESA pages. Tiny differences — Some small design changes, like changing the opacity of the top bar and menu, plus a bunch of tiny things like that :D I’m still developing and changing tons of stuff, so that’s it for now! See ya :D
THE FINAL DEVLOG 😭😭😭😭😭😭 After days of fixing stuff, rewriting parts of javascript, css and testing EVERYTHING , FINALLY THE REMAKE IS READY!!! but.. what changed? Reworked JavaScript, Html and Css! Fixed bugs and removed a LOT of unnecessary code. Improved the interface and the interface of window manager. Kept all apps, settings, and LocalStorage working 100%. Tested the serial monitor and Device Manager with a Esp32 - STILL WORKS PERFECLY! Cleaned lots of ai stuff and changed the logo made with Ai The hasdest part was definitely cleaning up the code without breaking the whole system, and honestly, sometimes there were moments when i genuinaly thought i was going to lose my mind and i really wanted to give up, but here we are, everything done :D I need to reiterate one thing about the project: the browser DOES WORK. BUT, IT HAS SOME LIMITATIONS ABOUT THE SITE 𝙔𝙊𝙐 WANT TO ACESS! Many sites refuse embedded viewing, while others allow it; it is up to you to research which ones do and which ones don’t. Anyway, thanks a lot for reading. It was a headache getting all this done, and unfortunately, I couldn’t find a more practical way to fix it without rebuilding my entire code—but yaaah, here we are. BUILD 1.0 (REMAKE) IS COMPLETE! SEE YA NEXT PROJECT (or devlog, i dunno :D )
FINALLY, WE DID IT, 40 HOURS OF DEVELOPMENT!! Now, the rework is finally done!! I reorganized and simplified tons of things throughout the codebase, like merging repeated CSS blocks (identical headers, footers, and scrollbars), and created variables for text, borders, backgrounds, status colors, and things like that! :D So now, instead of just having random hex colors and repeated values everywhere (not cool), everything is waaaay more organized now :D. Isn’t that nice? And I also fixed a lot of bugs in the CSS: The dark wallpaper overlay is back, now controlled by --desktop-dim . Removed the duplicated .wallpaper-grid class. Fixed the card grid so it only applies inside the Customization window. Notes, Calculator, and Terminal now have their own mobile layout rules instead of overflowing the screen. Guide and Device Manager are properly centered on smaller screens. Signal Log and Customization now use clamp() to fit smaller displays. Removed useless hover effects, unnecessary opacity rules, and unused CSS. I also simplified tons of other things and fixed more issues than I expected. :D BUT, THERE’S SOMETHING IMPORTANT! PULSAR-OS has its own personality. The visual identity is basically fixed and WILL STAY like this. The important details and the app dimensions are still the same. I didn’t want to turn the whole project into smth generic just to make the code shorter. The goal was to make the CSS cleaner, easier to understand, and more consistent, without losing what makes PULSAR-OS feel like PULSAR-OS. THE REWORK IS DONE. PULSAR-OS IS STILL ALIVE!! SEE YA IN THE NEXT ADVENTURE!!! :DDD (btw, there are a lot of comments in Brazilian Portuguese (PT-BR) throughout the code, so feel free to use a translator if you want to read them! :D)
BUILD 1.0 VER. Ultra Lite (Ultra litefication) heya guys, today i started something that im calling “Ultra litefication”! The idea is pretty simple, the interface looks complex and modern, but why not make it simpler? -THATS WHAT IM GONNA DO!! -im making the code simpler, by removing more things, like the source map in the html, css and in the javascript. -Im gonna change the boot screen completely. -Fixing some little visual details, and im planning to remove the Applications menu and move all the apps directly onto the pulsar desktop, just like the desktop shortcuts in Windows! This way, you’ll be able to access everything right from the desktop, without having to open a menu, ths lowkey simplifies everything, so everything looks even better What have I done so far? -I changed the appearance of the top bar, starting by the color, it was looking like a glass, so i changed it so the black would be completely solid. -Apps padronization changed too, now everything’s solid black or sum color near that. -Deleted all the source map in the code. -Pushed the code, so all the changes and the commit is already available ( Every commit I make on GitHub counts as a devlog entry here. ) And thats pretty much everything i wanted to say, ill be publishing about my progress every single day till i finish this project, see ya!
Ships:
This is Pulsar OS, a WebOS focused on hardware and software development. To be honest, those three days spent developing Pulsar were a massive headache—especially developing the project’s core (the JavaScript) and getting the whole system to communicate seamlessly without any glitches ☠️. And I won’t lie: I’m really proud to have successfully made the WebOS communicate properly with an ESP32 or even an Arduino! I hadn’t seen this feature anywhere else; I spent hours researching and trying to figure out how it worked. It was a huge headache, too, but—would you look at that—it actually worked! Now the system includes a calculator, a functional built-in browser (with some limitations, but it works), customization options, a notepad, and a guide in case you’re unsure how things work. All in all, it turned into a pretty complete system that I’m happy to share with you all! SEE YA IN THE NEXT PROJECT!!...
|
1793216978.1471126
|
1793303378.1471126
|
|
63273
|
Robotic arm for mbot 2 by @Andresiwi | Stardance
|
Andresiwi
|
1
|
41.12
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T22:36:54Z", "hours": 17.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hi everyone! This time, I built a double claw that spins on its own axis and can move up and down. I used three servos and one of those yellow TT motors. I kept the design simple so others can replicate it—I hope you like it! I also designed it to be easily modifiable.", "repo": "https://github.com/2tobefrank-afk/Mbot2-DOUBLE-GRIPPER", "demo": ""}]...
|
[{"post_id": 77444, "ts": "202 [{"post_id": 77444, "ts": "2026-10-07T01:00:12Z", "hours": 1.6711, "text": "HOLIWISSSS EVERYONE!!!!!!!!!! I’ve finished version 2 of the arm (sorry for the terrible photo quality). As I mentioned, I completed an improved version; it now has greater reach so the claw can grab more things, and both the chassis and the arm are lighter—and, in my opinion, more stylish. I’ll be uploading the files soon so you can take a look or use the model yourself. I hope you like it!"}, {"post_id": 76529, "ts": "2026-10-03T20:49:26Z", "hours": 14.7144, "text": "HOLIWISSS GUYSS, so I spent last night and most of this morning printing some parts—there are still a few left, but you’ll soon see the new 3D-printed version of the claw. I hope you like it; I also fixed some errors from the previous version."}, {"post_id": 76013, "ts": "2026-10-02T01:49:25Z", "hours": 2.4644, "text": "MBOT DOUBLE GRIPPER V2!!!!!!!!! HOLIWISS, today I bring you a new update of my modification for the mbot 2, I hope you like it—I added a little more height so that the claw can shit things and be able to carry them higher. I also made a great weight reduction to be able to make the robot more stable since due to its height it can lose its balance a little since the center of gravity is displaced from the base of the robot. I also added a space in the middle of the claw to add to it. an RGB module and detect colors I don’t have the model yet, but I did put the measurements of the holes that hold it so that they can be screwed correctly. I will finally be publishing a new version later today or tomorrow. Thank you for your great support. Hugs to all of you"}, {"post_id": 75109, "ts": "2026-09-29T04:46:39Z", "hours": 3.6675, "text": "Holiwiss everyone, sorry for the late update. I’ve significantly improved the robot so I can easily add more modules—including an RGB sensor—and I also made room for an ultrasonic sensor. It’s just a small update, and you’ll be able to see the new 3D model tomorrow."}, {"post_id": 74311, "ts": "2026-09-27T05:11:20Z", "hours": 0.7922, "text": "你好!(HELLOOOO) Today I’m finally showing you how the model looks with the mBot. However, I’m still not entirely convinced by it, so I’m going to make it compatible with more modules to ensure there are virtually no compatibility issues with future robot modules. Stay tuned—you’ll see a new version soon; as usual, I sometimes tend to over-refine my projects."}, {"post_id": 73822, "ts": "2026-09-26T03:17:05Z", "hours": 0.3381, "text": "Holiwisssss, I’ve finished assembling the double claw. Tomorrow, I’ll show you a bit of how it works, and finally, I’ll make some updates to the GitHub repository to make everything easier. Thanks for waiting."}, {"post_id": 72899, "ts": "2026-09-23T23:51:46Z", "hours": 0.4736, "text": "Hi everyone, here are some images I rendered of the mBot2’s double gripper."}, {"post_id": 71592, "ts": "2026-09-21T03:47:28Z", "hours": 1.0636, "text": "Little improvements"}, {"post_id": 70607, "ts": "2026-09-19T13:24:00Z", "hours": 11.8897, "text": "Hi everyone! Today I’m sharing some images of the mBot2’s dual gripper. I’ll be posting images of it in action soon, and I’d love to hear what you think. That’s all for now bye, everyone, and have a great day!"}, {"post_id": 70341, "ts": "2026-09-19T00:11:56Z", "hours": 2.3311, "text": "Hi everyone! Today I’m sharing the final version of the robot claw. I’ll be 3D printing it soon and will show you how it all turns out tomorrow. Thanks for your unwavering support, friends."}, {"post_id": 69932, "ts": "2026-09-18T02:52:00Z", "hours": 1.9744, "text": "Hey guys, today I focused on a new project I had in mind: a robotic arm for the mbot2 robot. It’s a project that I found interesting and somewhat out of the ordinary."}]...
|
Title: Robotic arm for mbot 2 by @Andresiwi | Star Title: Robotic arm for mbot 2 by @Andresiwi | Stardance
Devlogs:
Hey guys, today I focused on a new project I had in mind: a robotic arm for the mbot2 robot. It’s a project that I found interesting and somewhat out of the ordinary.
Hi everyone! Today I’m sharing the final version of the robot claw. I’ll be 3D printing it soon and will show you how it all turns out tomorrow. Thanks for your unwavering support, friends.
Hi everyone! Today I’m sharing some images of the mBot2’s dual gripper. I’ll be posting images of it in action soon, and I’d love to hear what you think. That’s all for now bye, everyone, and have a great day!
Little improvements
Hi everyone, here are some images I rendered of the mBot2’s double gripper.
Holiwisssss, I’ve finished assembling the double claw. Tomorrow, I’ll show you a bit of how it works, and finally, I’ll make some updates to the GitHub repository to make everything easier. Thanks for waiting.
你好!(HELLOOOO) Today I’m finally showing you how the model looks with the mBot. However, I’m still not entirely convinced by it, so I’m going to make it compatible with more modules to ensure there are virtually no compatibility issues with future robot modules. Stay tuned—you’ll see a new version soon; as usual, I sometimes tend to over-refine my projects.
Holiwiss everyone, sorry for the late update. I’ve significantly improved the robot so I can easily add more modules—including an RGB sensor—and I also made room for an ultrasonic sensor. It’s just a small update, and you’ll be able to see the new 3D model tomorrow.
MBOT DOUBLE GRIPPER V2!!!!!!!!! HOLIWISS, today I bring you a new update of my modification for the mbot 2, I hope you like it—I added a little more height so that the claw can shit things and be able to carry them higher. I also made a great weight reduction to be able to make the robot more stable since due to its height it can lose its balance a little since the center of gravity is displaced from the base of the robot. I also added a space in the middle of the claw to add to it. an RGB module and detect colors I don’t have the model yet, but I did put the measurements of the holes that hold it so that they can be screwed correctly. I will finally be publishing a new version later today or tomorrow. Thank you for your great support. Hugs to all of you
HOLIWISSS GUYSS, so I spent last night and most of this morning printing some parts—there are still a few left, but you’ll soon see the new 3D-printed version of the claw. I hope you like it; I also fixed some errors from the previous version.
HOLIWISSSS EVERYONE!!!!!!!!!! I’ve finished version 2 of the arm (sorry for the terrible photo quality). As I mentioned, I completed an improved version; it now has greater reach so the claw can grab more things, and both the chassis and the arm are lighter—and, in my opinion, more stylish. I’ll be uploading the files soon so you can take a look or use the model yourself. I hope you like it!
Ships:
Hi everyone! This time, I built a double claw that spins on its own axis and can move up and down. I used three servos and one of those yellow TT motors. I kept the design simple so others can replicate it—I hope you like it! I also designed it to be easily modifiable....
|
1793213260.1627638
|
1793299660.1627638
|
|
40905
|
Cognita Study App by @cognitayohan | Stardance
|
cognitayohan
|
1
|
41.11
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T00:49:36Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Cognita Study is your AI-powered study companion. You can effortlessly create flashcards, practice tests, and quizzes from your study materials using the 45+ features Cognita has. Some major features include AI Chat/Image/Video, Flashcards, Scan Image to Flashcards, AP/SAT Practice Exams, and much more! Cognita Study solves the issue where many study app require $$$ in order to actually have a meaningful amount of time studying. It also streamlines the time needed when switching tabs for assignments by providing a one for all type of product- AI chat, calculator, chem balancer, and the exam prep all in your hands on the same website.", "repo": "https://github.com/robot3-track/cognita-clean", "demo": "https://cognitastudy.me"}]...
|
[{"post_id": 74760, "ts": "202 [{"post_id": 74760, "ts": "2026-09-28T05:00:43Z", "hours": 0.5164, "text": "Cognita Study App Devlog 37 - Updated signin pathways and fixed broken APK file structures for future development. I updated the UI for the signin pathway page and also started to build the APK file for development in the application."}, {"post_id": 72966, "ts": "2026-09-24T03:58:52Z", "hours": 1.3392, "text": "Cognita Study App Devlog 36 - Continuous improvements through UI and Functionality I continued to work on the functionality of the app. Right now I changed up the CSS values, added new styling for the signin page, and also created easy-to-use search bars for decks."}, {"post_id": 70325, "ts": "2026-09-18T22:57:41Z", "hours": 1.1017, "text": "Cognita Study App Devlog 35 - Light Mode Contrasting Fix + AI Speed Enhancement During these days I continued to make adjustments to the UX and UI for light mode/dark mode contrasting. I also fixed the the loading times for AI quiz/tests- now it can generate a whole 50+ question test within a few seconds!"}, {"post_id": 68415, "ts": "2026-09-15T02:29:15Z", "hours": 1.6572, "text": "Cognita Study App Devlog 34 - App CSS Full Upgrade I have upgraded the CSS and app layout for the entire application- from the home page, login page, and deck page to courses in Cognita Academy. No more lucide react icons or cheesy emojis- rather now there are professional holders and proper formatting for optimal studying."}, {"post_id": 65768, "ts": "2026-09-11T04:04:26Z", "hours": 1.2247, "text": "Cognita Study App Devlog 33 - App style cleanup I cleaned up the style of the app and also fixed the AI features for scanning images to create notes/flashcards. Note that some people may think the signin page is AI- but it was actually manually coded by myself (I also manually edited the logo/image)."}, {"post_id": 63696, "ts": "2026-09-07T17:05:08Z", "hours": 3.4681, "text": "Cognita Study App Devlog 32 - Full application run through and update for consistency. After hours of work, I have modified and edited multiple files across the app to properly reflect the UX styling and proper formatting."}, {"post_id": 58585, "ts": "2026-08-31T01:41:44Z", "hours": 0.7367, "text": "Cognita Study App Devlog 31 - Updated UX of Spaced Repition and Advanced tools features I have continued to update the UI as well as the UX of multiple features in the app!"}, {"post_id": 54835, "ts": "2026-08-26T00:18:40Z", "hours": 0.5967, "text": "Cognita Study App Devlog 30 - Create new UI style for students Updated the UI for the app using nice flashcards styling."}, {"post_id": 51148, "ts": "2026-08-20T17:19:21Z", "hours": 0.3422, "text": "Cognita Study App Devlog 29 - Update loading page, signin page, and all other pages for new CSS styling. I also updated the CSS for other pages in the app and also updated loading time speeds."}, {"post_id": 51117, "ts": "2026-08-20T16:45:32Z", "hours": 0.7936, "text": "Cognita Study App Devlog 28 - Updated Home page, Course page, UI, font, orientation, and more! I did a full update of the CSS for the app, renamed a few features, updated pages, used new font, and changed the orientation of buttons and pages."}, {"post_id": 50797, "ts": "2026-08-20T06:02:14Z", "hours": 0.4469, "text": "Cognita Study App Devlog 27 - Redid Home UI Design and Format Updated the UI for the Home page and also removed old files that slowed down the app’s performance."}, {"post_id": 50777, "ts": "2026-08-20T04:44:17Z", "hours": 0.545, "text": "Cognita Study App Devlog 26 - Worked on CSS Manually To fix the issues with CSS formatting and dark/light mode patterns, I fixed a few CSS files including Katex, Index, and Global.css."}, {"post_id": 50663, "ts": "2026-08-19T22:52:35Z", "hours": 0.7411, "text": "Cognita Study App Devlog 25 - Added new Referrals Feature Now you can refer your friends and earn AI credits for FREE!"}, {"post_id": 50109, "ts": "2026-08-19T05:32:03Z", "hours": 0.3239, "text": "Cognita Study App Devlog 24 - Updated UI for Welcome Page I have manually updated the user interface and formatting of the welcome page to be easier to access. I also made sure to have the loader properly check the database status and not show the steps until the database is properly loaded in Firestore."}, {"post_id": 49918, "ts": "2026-08-18T21:41:29Z", "hours": 1.0469, "text": "Cognita Study App Devlog 23 - Updated AP Testing UI I decided to go back to my original AP Testing site and also update some features including mobile view while doing the AP Test environment."}, {"post_id": 49242, "ts": "2026-08-17T22:32:09Z", "hours": 0.7783, "text": "Cognita Study App Devlog 22 - Updated home page UI! I have updated the home page UI to be easier accessed and also remove previous AI dependencies. Now the app supports easy access for major tools for both desktop and mobile!"}, {"post_id": 46723, "ts": "2026-08-14T05:32:41Z", "hours": 0.5783, "text": "Cognita Study App Devlog 21 - Debug small errors in app I fixed a few errors in the app, such as not having a loader for generating images and have inaccurate saving values for all-time progress."}, {"post_id": 46699, "ts": "2026-08-14T04:21:37Z", "hours": 0.8775, "text": "Cognita Study App Devlog 20 - Updated Groq Model I received notice today that Groq’s llama-3.1-8b-instant model was getting decommissioned on the 16th- thus I changed the model to openai/gpt-oss-20b. It is the next fastest model and the new instant model that Groq is transitioning to currently."}, {"post_id": 44425, "ts": "2026-08-10T05:43:47Z", "hours": 0.5925, "text": "Cognita Study App Devlog 19 - Updated Footer UI layout and feedback button Because the original footer that I made was not very pleasing visually, I decided to reformat it so that it would be easier to access on desktop and mobile devices."}, {"post_id": 44276, "ts": "2026-08-09T22:28:46Z", "hours": 0.8817, "text": "Cogntia Study App Devlog 18 - Updated UI and loader Today I worked on the badge page UI to make it look more professional and easier to use. I also updated the loader for the home page to look more professional and cool (and to prevent lags)."}, {"post_id": 43743, "ts": "2026-08-09T05:01:05Z", "hours": 0.6697, "text": "Cognita Study App Devlog 17 - Added image generation to AI Studio After the image generation was working steadily, I added it officially to the AI studio! It can also be triggered by the AI chat. One thing to keep in mind about image generation- this is the ultimate fast generation, so it can only generate simple images locally. NO complex diagrams."}, {"post_id": 43087, "ts": "2026-08-08T05:18:37Z", "hours": 0.5531, "text": "Cogntia Study App Devlog 16 - Finally got image generation to work! It is still a work in progress…. but a big accomplishment! I managed to connect my personalized trained API with my specific Cognita prompt to the powerful Mistral API for image generation at fast speeds. Mistral API can generate images within 2 seconds at best, which is quite amazing. However, the AI needs further training as images are not very accurate/realistic. While sometimes there are still image loading error times and I am still working on CORS image handling errors- it is an improvement from before! Stay tuned for more updates!"}, {"post_id": 42946, "ts": "2026-08-07T22:41:53Z", "hours": 1.2031, "text": "Cogntia Study App Devlog 15 - Upgraded app AI features speed by 12x! Using Groq AI! Today I set Groq AI as one of the first AI models in the priority list to use due to its amazing speeds. Since it can generate 800 tokens/sec and can go 12 times faster than your regular ChatGPT, it really enhances the app! Also, not only is Groq AI fast, but it is efficeint and smart as well. I feel like this was the right direction to go to for my AI models. However, there are limits to usage of this model, so slower models such as Claude, GPT, Gemini, Cohere, and Openrouter models will be used as backup and for specialized tasks. This is why not every feature in the app would be lightning fast, but the majority should still be!"}, {"post_id": 41775, "ts": "2026-08-06T05:23:17Z", "hours": 1.1192, "text": "Cognita Study App Devlog 14 - Edited iReady Exam Prep as well as updated user logics While debugging the app, I realized that some users that were transferred over didn’t properly save on the database. With a quick fix in the code to recognize users that are added, not only users that recently logged in, I was able to save all user data. In addition, I also updated the iReady exam prep site and linked it over to my main Cognita Study site. (this is the reason why iready prep is also linked in the hackatime for this project since they are all together)."}, {"post_id": 41476, "ts": "2026-08-05T18:16:24Z", "hours": 0.9842, "text": "Cognita Study App Devlog 13 - Adding more advanced AI for special tasks Today I added NVIDIA NIM free-tier models as a backup for advanced AI usage such as the code sandbox in the app. NVIDIA runs pretty well but takes time, so it is currently used as backup rather than the first setup. NVIDIA requires proxy so I used /api/nvidia for Vercel to do it."}, {"post_id": 41148, "ts": "2026-08-05T05:30:05Z", "hours": 0.7183, "text": "Cognita Study App Devlog 12 - Fixed UI for drop down menus Originally the drop down menus had a layering issue with the search bar- I quickly fixed it by removing any transparent properties as well as fixing the order of the layering."}, {"post_id": 40544, "ts": "2026-08-04T05:20:52Z", "hours": 2.0553, "text": "Cognita Study App Devlog 11 - Add SAT Prep and add more AP Questions Today I decided to go and work on my exam prep sites. I added more bank questions for AP tests, (biology, chemistry, etc.) and I also created a whole new SAT prep site! Originally the AI had issues functioning, but after some debugging now SAT prep works fully!"}, {"post_id": 40382, "ts": "2026-08-03T21:04:18Z", "hours": 0.9772, "text": "Cognita Study App Devlog 10 - Fix AI Chat store logic While debugging and testing features, I realized that there was a Firestore error while trying to store the values of the AI chat. It was due to an undefined title if the user doesn’t make a title for the AI chat. To fix this, I made an autogenerated title (just like how other leading AI chats do) that makes Firestore “happy”. With that fixed, I continued to work and move onto a few other errors including friendship check logic."}, {"post_id": 39893, "ts": "2026-08-03T05:31:30Z", "hours": 0.6925, "text": "Cognita Study App Devlog 9 - Adding new API in the meantime While I still can’t fix the classroom error just yet, I decided to add something in the meantime. Right now, my APIs are very limited and don’t have that many backups in case of an overload. Thus, I added OpenRouter API free models as backups for features to make sure AI features don’t crash. I also updated the prompt clearly to make the AIs understand how it works."}, {"post_id": 39849, "ts": "2026-08-03T03:22:41Z", "hours": 0.7019, "text": "Cognita Study App Devlog 8 - Debugging.. Today I continued to debug on the classroom game errors- right now it still has an issue where when the host already started the game, the users in the classroom game still can’t see it. However, I am still making progress as I started formatting the Latex format for math equations in the classroom game mode."}, {"post_id": 39310, "ts": "2026-08-02T06:28:11Z", "hours": 1.9572, "text": "Cognita Study App Devlog 7 - Started to work on Classroom logic After finishing up personal deck, public decks, and user logics, I decided to move on to the classroom game feature. Basically it is kinda like blooket where you can host live game with everyone in the class. Right now it is a work in progress with some errors, but the progress is looking good so far!"}, {"post_id": 39028, "ts": "2026-08-01T18:10:56Z", "hours": 1.6681, "text": "Cognita Study App Devlog 6 - Fixed Users Issue Due to the recent firebase oauth login setup, some errors were caused by the paywalls from firebase. For some reason, when certain users signup at a certain time, the app doesn’t record them as users in the database and doesn’t save their preferences. I quickly recovered and fix the issue though, so all errors should be gone by now! I did this by building a sync button in my devdashboard to make sure to sync users’ data. The trick was setting the backup users as “admin” but then restricting what “admin” meant- because actual admins require another email verification, giving the “admin” status only bypasses the firebase walls rather than giving free admin statuses to other users. In the meantime, I also edited the firebase API key for oauth that was outdated."}, {"post_id": 38393, "ts": "2026-07-31T18:56:36Z", "hours": 0.3194, "text": "Cognita Study App Devlog 5 - Cloned New Repo for Public Viewing. Unfortunately, the original Repo of the app has old commits that include accidentally leaked API keys, so I had to create a clone of the Repo without those commits. However, this also deleted all of my past history. I added my commit history that was erased onto the README for public viewing."}, {"post_id": 38272, "ts": "2026-07-31T16:09:38Z", "hours": 0.8583, "text": "Cognita Study App Devlog 4 - Updated 404 error page as well as Documentation on security practices! In order to protect the app and list out security practices, I built a new “Documentation” page that clearly lists the app’s guidelines. I also listed the official domains of the app to protect users from fake sites. In addition, I also updated the 404 page to be more lively and fun!"}, {"post_id": 38014, "ts": "2026-07-31T04:37:39Z", "hours": 1.4875, "text": "Cognita Study App Devlog 3 - Continuing the UI update as well as updating features for usability I figured that my app was cluttered- especially my home page. So I decided to edit my home page to include only the core features up front with an easy access search bar so users can easily find things around the app. I also designed my own “ad” to place on the sign in page- it is lowkey nice looking tbh."}, {"post_id": 37434, "ts": "2026-07-30T05:09:58Z", "hours": 1.2131, "text": "Cognita Study App Devlog 2 - UI UPDATE! Cognita Study was a project I built prior to the Stardance Challenge. For Devlog 2, I have updated a few more features adding on from Devlog 1. I updated the UI for the signin page as well as the home page to ‘match’ leading study app designs (Quizlet, etc.). I also fixed some broken database logic for logins as well as Profile pictures and bios."}, {"post_id": 37349, "ts": "2026-07-30T00:19:54Z", "hours": 5.5881, "text": "Cognita Study App Devlog 1 - FULL APP UPDATE! Cognita Study was a project I built prior to the Stardance Challenge, so at that time my app originally was a simple study app capable of a few features such as flashcards view, quiz, etc before Stardance started. By now I have completely changed the UI, connected to Firebase Database for user storage, added Gamification modes, Advanced Tools for each subject, AP Exam Prep , State Test prep , and added my own Custom APIs to support all AI tools within my app. Unfortunately, that also meant around 30 hours of coding wasn’t logged from before.. Well, nevertheless, I continued to build and update my app to include these new helpful features. There are 45+ different features and counting now! I made this project to help my fellow students from my school originally, but seeing it’s success I really wanted to push my app to another scale. What was really hard for me while updating the app included debugging Firebase Database storing data framework and also connecting my app to a API-chain (where I have multiple AI models support each other). Now that I have successfully completed those changes, I just have one more error to fix for now- the loading times are too long. I believe the error is due to the problem where the app tries to load everything at once- I’ll probably just make it load things in a step flow. Finally, for the project, I really hope you guys would try it out! It has really helped me and my classmates and I’m sure it could help you all too! Live Website: https://cognitastudy.me Instagram: https://www.instagram.com/cognita.study Lmk what else I should add/update in the future!"}]...
|
Title: Cognita Study App by @cognitayohan | Starda Title: Cognita Study App by @cognitayohan | Stardance
Devlogs:
Cognita Study App Devlog 1 - FULL APP UPDATE! Cognita Study was a project I built prior to the Stardance Challenge, so at that time my app originally was a simple study app capable of a few features such as flashcards view, quiz, etc before Stardance started. By now I have completely changed the UI, connected to Firebase Database for user storage, added Gamification modes, Advanced Tools for each subject, AP Exam Prep , State Test prep , and added my own Custom APIs to support all AI tools within my app. Unfortunately, that also meant around 30 hours of coding wasn’t logged from before.. Well, nevertheless, I continued to build and update my app to include these new helpful features. There are 45+ different features and counting now! I made this project to help my fellow students from my school originally, but seeing it’s success I really wanted to push my app to another scale. What was really hard for me while updating the app included debugging Firebase Database storing data framework and also connecting my app to a API-chain (where I have multiple AI models support each other). Now that I have successfully completed those changes, I just have one more error to fix for now- the loading times are too long. I believe the error is due to the problem where the app tries to load everything at once- I’ll probably just make it load things in a step flow. Finally, for the project, I really hope you guys would try it out! It has really helped me and my classmates and I’m sure it could help you all too! Live Website: https://cognitastudy.me Instagram: https://www.instagram.com/cognita.study Lmk what else I should add/update in the future!
Cognita Study App Devlog 2 - UI UPDATE! Cognita Study was a project I built prior to the Stardance Challenge. For Devlog 2, I have updated a few more features adding on from Devlog 1. I updated the UI for the signin page as well as the home page to ‘match’ leading study app designs (Quizlet, etc.). I also fixed some broken database logic for logins as well as Profile pictures and bios.
Cognita Study App Devlog 3 - Continuing the UI update as well as updating features for usability I figured that my app was cluttered- especially my home page. So I decided to edit my home page to include only the core features up front with an easy access search bar so users can easily find things around the app. I also designed my own “ad” to place on the sign in page- it is lowkey nice looking tbh.
Cognita Study App Devlog 4 - Updated 404 error page as well as Documentation on security practices! In order to protect the app and list out security practices, I built a new “Documentation” page that clearly lists the app’s guidelines. I also listed the official domains of the app to protect users from fake sites. In addition, I also updated the 404 page to be more lively and fun!
Cognita Study App Devlog 5 - Cloned New Repo for Public Viewing. Unfortunately, the original Repo of the app has old commits that include accidentally leaked API keys, so I had to create a clone of the Repo without those commits. However, this also deleted all of my past history. I added my commit history that was erased onto the README for public viewing.
Cognita Study App Devlog 6 - Fixed Users Issue Due to the recent firebase oauth login setup, some errors were caused by the paywalls from firebase. For some reason, when certain users signup at a certain time, the app doesn’t record them as users in the database and doesn’t save their preferences. I quickly recovered and fix the issue though, so all errors should be gone by now! I did this by building a sync button in my devdashboard to make sure to sync users’ data. The trick was setting the backup users as “admin” but then restricting what “admin” meant- because actual admins require another email verification, giving the “admin” status only bypasses the firebase walls rather than giving free admin statuses to other users. In the meantime, I also edited the firebase API key for oauth that was outdated.
Cognita Study App Devlog 7 - Started to work on Classroom logic After finishing up personal deck, public decks, and user logics, I decided to move on to the classroom game feature. Basically it is kinda like blooket where you can host live game with everyone in the class. Right now it is a work in progress with some errors, but the progress is looking good so far!
Cognita Study App Devlog 8 - Debugging.. Today I continued to debug on the classroom game errors- right now it still has an issue where when the host already started the game, the users in the classroom game still can’t see it. However, I am still making progress as I started formatting the Latex format for math equations in the classroom game mode.
Cognita Study App Devlog 9 - Adding new API in the meantime While I still can’t fix the classroom error just yet, I decided to add something in the meantime. Right now, my APIs are very limited and don’t have that many backups in case of an overload. Thus, I added OpenRouter API free models as backups for features to make sure AI features don’t crash. I also updated the prompt clearly to make the AIs understand how it works.
Cognita Study App Devlog 10 - Fix AI Chat store logic While debugging and testing features, I realized that there was a Firestore error while trying to store the values of the AI chat. It was due to an undefined title if the user doesn’t make a title for the AI chat. To fix this, I made an autogenerated title (just like how other leading AI chats do) that makes Firestore “happy”. With that fixed, I continued to work and move onto a few other errors including friendship check logic.
Cognita Study App Devlog 11 - Add SAT Prep and add more AP Questions Today I decided to go and work on my exam prep sites. I added more bank questions for AP tests, (biology, chemistry, etc.) and I also created a whole new SAT prep site! Originally the AI had issues functioning, but after some debugging now SAT prep works fully!
Cognita Study App Devlog 12 - Fixed UI for drop down menus Originally the drop down menus had a layering issue with the search bar- I quickly fixed it by removing any transparent properties as well as fixing the order of the layering.
Cognita Study App Devlog 13 - Adding more advanced AI for special tasks Today I added NVIDIA NIM free-tier models as a backup for advanced AI usage such as the code sandbox in the app. NVIDIA runs pretty well but takes time, so it is currently used as backup rather than the first setup. NVIDIA requires proxy so I used /api/nvidia for Vercel to do it.
Cognita Study App Devlog 14 - Edited iReady Exam Prep as well as updated user logics While debugging the app, I realized that some users that were transferred over didn’t properly save on the database. With a quick fix in the code to recognize users that are added, not only users that recently logged in, I was able to save all user data. In addition, I also updated the iReady exam prep site and linked it over to my main Cognita Study site. (this is the reason why iready prep is also linked in the hackatime for this project since they are all together).
Cogntia Study App Devlog 15 - Upgraded app AI features speed by 12x! Using Groq AI! Today I set Groq AI as one of the first AI models in the priority list to use due to its amazing speeds. Since it can generate 800 tokens/sec and can go 12 times faster than your regular ChatGPT, it really enhances the app! Also, not only is Groq AI fast, but it is efficeint and smart as well. I feel like this was the right direction to go to for my AI models. However, there are limits to usage of this model, so slower models such as Claude, GPT, Gemini, Cohere, and Openrouter models will be used as backup and for specialized tasks. This is why not every feature in the app would be lightning fast, but the majority should still be!
Cogntia Study App Devlog 16 - Finally got image generation to work! It is still a work in progress…. but a big accomplishment! I managed to connect my personalized trained API with my specific Cognita prompt to the powerful Mistral API for image generation at fast speeds. Mistral API can generate images within 2 seconds at best, which is quite amazing. However, the AI needs further training as images are not very accurate/realistic. While sometimes there are still image loading error times and I am still working on CORS image handling errors- it is an improvement from before! Stay tuned for more updates!
Cognita Study App Devlog 17 - Added image generation to AI Studio After the image generation was working steadily, I added it officially to the AI studio! It can also be triggered by the AI chat. One thing to keep in mind about image generation- this is the ultimate fast generation, so it can only generate simple images locally. NO complex diagrams.
Cogntia Study App Devlog 18 - Updated UI and loader Today I worked on the badge page UI to make it look more professional and easier to use. I also updated the loader for the home page to look more professional and cool (and to prevent lags).
Cognita Study App Devlog 19 - Updated Footer UI layout and feedback button Because the original footer that I made was not very pleasing visually, I decided to reformat it so that it would be easier to access on desktop and mobile devices.
Cognita Study App Devlog 20 - Updated Groq Model I received notice today that Groq’s llama-3.1-8b-instant model was getting decommissioned on the 16th- thus I changed the model to openai/gpt-oss-20b. It is the next fastest model and the new instant model that Groq is transitioning to currently.
Cognita Study App Devlog 21 - Debug small errors in app I fixed a few errors in the app, such as not having a loader for generating images and have inaccurate saving values for all-time progress.
Cognita Study App Devlog 22 - Updated home page UI! I have updated the home page UI to be easier accessed and also remove previous AI dependencies. Now the app supports easy access for major tools for both desktop and mobile!
Cognita Study App Devlog 23 - Updated AP Testing UI I decided to go back to my original AP Testing site and also update some features including mobile view while doing the AP Test environment.
Cognita Study App Devlog 24 - Updated UI for Welcome Page I have manually updated the user interface and formatting of the welcome page to be easier to access. I also made sure to have the loader properly check the database status and not show the steps until the database is properly loaded in Firestore.
Cognita Study App Devlog 25 - Added new Referrals Feature Now you can refer your friends and earn AI credits for FREE!
Cognita Study App Devlog 26 - Worked on CSS Manually To fix the issues with CSS formatting and dark/light mode patterns, I fixed a few CSS files including Katex, Index, and Global.css.
Cognita Study App Devlog 27 - Redid Home UI Design and Format Updated the UI for the Home page and also removed old files that slowed down the app’s performance.
Cognita Study App Devlog 28 - Updated Home page, Course page, UI, font, orientation, and more! I did a full update of the CSS for the app, renamed a few features, updated pages, used new font, and changed the orientation of buttons and pages.
Cognita Study App Devlog 29 - Update loading page, signin page, and all other pages for new CSS styling. I also updated the CSS for other pages in the app and also updated loading time speeds.
Cognita Study App Devlog 30 - Create new UI style for students Updated the UI for the app using nice flashcards styling.
Cognita Study App Devlog 31 - Updated UX of Spaced Repition and Advanced tools features I have continued to update the UI as well as the UX of multiple features in the app!
Cognita Study App Devlog 32 - Full application run through and update for consistency. After hours of work, I have modified and edited multiple files across the app to properly reflect the UX styling and proper formatting.
Cognita Study App Devlog 33 - App style cleanup I cleaned up the style of the app and also fixed the AI features for scanning images to create notes/flashcards. Note that some people may think the signin page is AI- but it was actually manually coded by myself (I also manually edited the logo/image).
Cognita Study App Devlog 34 - App CSS Full Upgrade I have upgraded the CSS and app layout for the entire application- from the home page, login page, and deck page to courses in Cognita Academy. No more lucide react icons or cheesy emojis- rather now there are professional holders and proper formatting for optimal studying.
Cognita Study App Devlog 35 - Light Mode Contrasting Fix + AI Speed Enhancement During these days I continued to make adjustments to the UX and UI for light mode/dark mode contrasting. I also fixed the the loading times for AI quiz/tests- now it can generate a whole 50+ question test within a few seconds!
Cognita Study App Devlog 36 - Continuous improvements through UI and Functionality I continued to work on the functionality of the app. Right now I changed up the CSS values, added new styling for the signin page, and also created easy-to-use search bars for decks.
Cognita Study App Devlog 37 - Updated signin pathways and fixed broken APK file structures for future development. I updated the UI for the signin pathway page and also started to build the APK file for development in the application.
Ships:
Cognita Study is your AI-powered study companion. You can effortlessly create flashcards, practice tests, and quizzes from your study materials using the 45+ features Cognita has. Some major features include AI Chat/Image/Video, Flashcards, Scan Image to Flashcards, AP/SAT Practice Exams, and much more! Cognita Study solves the issue where many study app require $$$ in order to actually have a meaningful amount of time studying. It also streamlines the time needed when switching tabs for assignments by providing a one for all type of product- AI chat, calculator, chem balancer, and the exam prep all in your hands on the same website....
|
1793094513.676778
|
1793180913.676778
|
|
3461
|
NOVA - AI Memory by @Vsync_66 | Stardance
|
Vsync_66
|
0
|
41.08
|
0
|
[]
|
[{"post_id": 60795, "ts": "202 [{"post_id": 60795, "ts": "2026-09-03T12:00:10Z", "hours": 14.0722, "text": "This is what I call a perception producer. Every agentic framework has input and output. Input represents what an AI perceives in the world. This could be text, images, sounds, and more. This first one is a basic system time daemon. Because with every agentic framework I’ve used (Hermes, Openclaw, more), the AI doesn’t know what time it is! This solution is so ridiculously simple, I don’t know why people overlook it. Every minute, the context payload that goes into an API call gets updated with the new time. And yes, I made it prompt caching safe. (by ordering context blocks very specifically.) The loop is technically complete. A developer could just attach more input sources (like user messages, reminders, etc) and output tools, to turn this into a useful system. But I have to refactor some code, and update documentation."}, {"post_id": 27220, "ts": "2026-07-12T16:27:05Z", "hours": 9.595, "text": "Two Major Milestones… Context system is done! There’s a lot of data flow, async operations, and flexibility involved. Model calling is also done. LiteLLM is very powerful… But it requires a lot of error checking with configs and model preferences. The world model is being built… And it’s feeling more like a separate project itself. A ridiculous amount of data flow is involved here… More than context. And even more logic. Considering that with AI memory, accuracy and precision drops mostly in the retrieval part. Not the storage. But, slowly, I’m making progress! Writing down my thoughts has helped a lot."}, {"post_id": 22992, "ts": "2026-07-05T18:04:33Z", "hours": 10.8619, "text": "Thought about prompt caching and the OpenAI API. As long as the system prompt stays the same… It doesn’t matter what’s included in ‘user’ or ‘assistant’. You’ll still be able to use prompt caching! Also cleaned up code and added many edge cases/logic improvements."}, {"post_id": 21053, "ts": "2026-07-02T20:37:45Z", "hours": 4.2961, "text": "Lots of refactoring… But /nova can now take input from multiple endpoints, and have context ready, when an AI API needs it. Learned a lot about classes and asyncio logic!"}, {"post_id": 19985, "ts": "2026-07-01T13:45:49Z", "hours": 1.1789, "text": "Messy, messy code. I was 95% there to getting a clean response… But, after 30 minutes of debugging, I’m able to get a response from Ollama Cloud! Next step is to clean up my code, and see if I can split it. (Shoving everything into ‘File1.py’ gets messy)"}, {"post_id": 19368, "ts": "2026-06-30T17:24:11Z", "hours": 1.0792, "text": "Spent time creating a way to take inputs from a program, assemble it into a python dict, and convert that into a JSON block. Will use later with LiteLLM!"}]...
|
Title: NOVA - AI Memory by @Vsync_66 | Stardance
Title: NOVA - AI Memory by @Vsync_66 | Stardance
Devlogs:
Spent time creating a way to take inputs from a program, assemble it into a python dict, and convert that into a JSON block. Will use later with LiteLLM!
Messy, messy code. I was 95% there to getting a clean response… But, after 30 minutes of debugging, I’m able to get a response from Ollama Cloud! Next step is to clean up my code, and see if I can split it. (Shoving everything into ‘File1.py’ gets messy)
Lots of refactoring… But /nova can now take input from multiple endpoints, and have context ready, when an AI API needs it. Learned a lot about classes and asyncio logic!
Thought about prompt caching and the OpenAI API. As long as the system prompt stays the same… It doesn’t matter what’s included in ‘user’ or ‘assistant’. You’ll still be able to use prompt caching! Also cleaned up code and added many edge cases/logic improvements.
Two Major Milestones… Context system is done! There’s a lot of data flow, async operations, and flexibility involved. Model calling is also done. LiteLLM is very powerful… But it requires a lot of error checking with configs and model preferences. The world model is being built… And it’s feeling more like a separate project itself. A ridiculous amount of data flow is involved here… More than context. And even more logic. Considering that with AI memory, accuracy and precision drops mostly in the retrieval part. Not the storage. But, slowly, I’m making progress! Writing down my thoughts has helped a lot.
This is what I call a perception producer. Every agentic framework has input and output. Input represents what an AI perceives in the world. This could be text, images, sounds, and more. This first one is a basic system time daemon. Because with every agentic framework I’ve used (Hermes, Openclaw, more), the AI doesn’t know what time it is! This solution is so ridiculously simple, I don’t know why people overlook it. Every minute, the context payload that goes into an API call gets updated with the new time. And yes, I made it prompt caching safe. (by ordering context blocks very specifically.) The loop is technically complete. A developer could just attach more input sources (like user messages, reminders, etc) and output tools, to turn this into a useful system. But I have to refactor some code, and update documentation....
|
1792637634.2370179
|
1793242434.2370179
|
|
54649
|
Vid Transcribe by @rnabilaltamis14 | Stardance
|
rnabilaltamis14
|
1
|
41.05
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T14:01:17Z", "hours": 39.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made an AI video transcriber, the most chalangging part is , making new UI and connecting electron foor the apps, also about the AI call model, what am i proud of? The results!, this is my first dekstop apps with my storage at the edge (128 gb), what should people know?, if you are confused with the problem, same with me :V", "repo": "https://github.com/Rahmat-Altamis/vid-transcriber", "demo": "https://github.com/Rahmat-Altamis/vid-transcriber/releases/tag/v1.1.1"}]...
|
[{"post_id": 83173, "ts": "202 [{"post_id": 83173, "ts": "2026-10-27T04:09:05Z", "hours": 0.6692, "text": "last devlog? helllo its probably my last devlog post, what i changed? uhh from.exe to .appimage and now its full local and no yt dlp after many issues with it"}, {"post_id": 73078, "ts": "2026-09-24T10:22:43Z", "hours": 1.3842, "text": "dunno"}, {"post_id": 58905, "ts": "2026-08-31T13:57:33Z", "hours": 1.0389, "text": "finished finnaly i come at this place everything is done and running, wish me luck at shipping XD"}, {"post_id": 58698, "ts": "2026-08-31T07:00:20Z", "hours": 8.9872, "text": "WRONG UI WRONG UI 😂😂 quick update - currently making into electron and js thankyou LOL"}, {"post_id": 57195, "ts": "2026-08-29T09:36:32Z", "hours": 9.4803, "text": "recycling old UI day 4 of building this, currently the progress been good, probably tomrrow shipping. quick update: -UI in progress -backend 80% done planning to change provider and i will make it into an app (yes real .exe app) via electron"}, {"post_id": 56453, "ts": "2026-08-28T06:56:59Z", "hours": 9.8128, "text": "some files are done hello!, after some crazy prototyping and experiment with my little captioner.py about the structure currently im moving to divide the files for more cleaner view not a hundred lines of code in 1 file"}, {"post_id": 55070, "ts": "2026-08-26T14:37:19Z", "hours": 9.8978, "text": "making the base, also some code layout design : -groq client for groq client of course -fireworks client for fw client -server.py for web -dashboard.html for dashboard -captioner.py for main pipeline some chaos in pipeline here XD"}]...
|
Title: Vid Transcribe by @rnabilaltamis14 | Starda Title: Vid Transcribe by @rnabilaltamis14 | Stardance
Devlogs:
making the base, also some code layout design : -groq client for groq client of course -fireworks client for fw client -server.py for web -dashboard.html for dashboard -captioner.py for main pipeline some chaos in pipeline here XD
some files are done hello!, after some crazy prototyping and experiment with my little captioner.py about the structure currently im moving to divide the files for more cleaner view not a hundred lines of code in 1 file
recycling old UI day 4 of building this, currently the progress been good, probably tomrrow shipping. quick update: -UI in progress -backend 80% done planning to change provider and i will make it into an app (yes real .exe app) via electron
WRONG UI WRONG UI 😂😂 quick update - currently making into electron and js thankyou LOL
finished finnaly i come at this place everything is done and running, wish me luck at shipping XD
dunno
last devlog? helllo its probably my last devlog post, what i changed? uhh from.exe to .appimage and now its full local and no yt dlp after many issues with it
Ships:
i made an AI video transcriber, the most chalangging part is , making new UI and connecting electron foor the apps, also about the AI call model, what am i proud of? The results!, this is my first dekstop apps with my storage at the edge (128 gb), what should people know?, if you are confused with the problem, same with me :V...
|
1793090905.9138594
|
1793177305.9138594
|
|
13061
|
GoDotWebs by @rickyred | Stardance
|
rickyred
|
1
|
41.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T11:52:05Z", "hours": 41.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "GoDotWebs auto-fills online applications and web forms using a saved profile, and provides outcome predictions and simulated reviewer feedback on the page you are applying to.", "repo": "https://github.com/RedTotally/godotwebs-closed-source", "demo": "https://godotwebs.com/"}]...
|
[{"post_id": 10494, "ts": "202 [{"post_id": 10494, "ts": "2026-06-17T07:31:23Z", "hours": 9.1172, "text": "Now, it’s just me waiting for Google to approve the latest version of GoDotWebs’ extension. https://youtu.be/mglfqEzU0cg?si=78BLqf_MO6WqXgow"}, {"post_id": 8029, "ts": "2026-06-13T12:03:26Z", "hours": 4.3044, "text": "Submitted the extension; hope for the best."}, {"post_id": 7508, "ts": "2026-06-12T15:15:01Z", "hours": 5.8794, "text": "Cooking up the home page."}, {"post_id": 7344, "ts": "2026-06-12T07:41:14Z", "hours": 3.1031, "text": "Added onboarding; now there should only be skeleton loading and responsiveness left for me to work on. Then I can finally move to designing the home page & other pages."}, {"post_id": 6833, "ts": "2026-06-11T13:46:08Z", "hours": 3.8719, "text": "Did some UI updates."}, {"post_id": 6724, "ts": "2026-06-11T08:16:43Z", "hours": 0.6756, "text": "Also added web browsing to the simulation models generation."}, {"post_id": 6705, "ts": "2026-06-11T07:27:37Z", "hours": 2.4819, "text": "Just finished the new file page, where you tell GoDotWebs who you are, and it will generate a full profile according to that. Then, you may use the extension to fill out your applications, and it will be based on the profile."}, {"post_id": 6639, "ts": "2026-06-11T03:59:20Z", "hours": 3.2383, "text": "Kind of designed the dashboard, still a long way to go. Hopefully, I can ship it very soon."}, {"post_id": 6095, "ts": "2026-06-10T07:42:54Z", "hours": 1.6053, "text": "Apart from filling out your forms, it also predicts the outcome of your application. You may also create models. They could be simulations of people who will comment on your application based on their trials. (UI’s still bad, I know, I will work on that later)"}, {"post_id": 6042, "ts": "2026-06-10T04:45:20Z", "hours": 6.5967, "text": "So, this is my first devlog. I am building an application filler. So when you are coding, your code editor will provide you with code completion. I took inspiration from it and thought I could make something like that, except for applications. Could be university, job, or event applications. UI is still scrappy, but I mainly focus on the UX first because to compete with similar products in the market, it is super essential."}]...
|
Title: GoDotWebs by @rickyred | Stardance
Devlogs Title: GoDotWebs by @rickyred | Stardance
Devlogs:
So, this is my first devlog. I am building an application filler. So when you are coding, your code editor will provide you with code completion. I took inspiration from it and thought I could make something like that, except for applications. Could be university, job, or event applications. UI is still scrappy, but I mainly focus on the UX first because to compete with similar products in the market, it is super essential.
Apart from filling out your forms, it also predicts the outcome of your application. You may also create models. They could be simulations of people who will comment on your application based on their trials. (UI’s still bad, I know, I will work on that later)
Kind of designed the dashboard, still a long way to go. Hopefully, I can ship it very soon.
Just finished the new file page, where you tell GoDotWebs who you are, and it will generate a full profile according to that. Then, you may use the extension to fill out your applications, and it will be based on the profile.
Also added web browsing to the simulation models generation.
Did some UI updates.
Added onboarding; now there should only be skeleton loading and responsiveness left for me to work on. Then I can finally move to designing the home page & other pages.
Cooking up the home page.
Submitted the extension; hope for the best.
Now, it’s just me waiting for Google to approve the latest version of GoDotWebs’ extension. https://youtu.be/mglfqEzU0cg?si=78BLqf_MO6WqXgow
Ships:
GoDotWebs auto-fills online applications and web forms using a saved profile, and provides outcome predictions and simulated reviewer feedback on the page you are applying to....
|
1793120117.8079193
|
1793206517.8079193
|
|
14413
|
quartz by @p0tato | Stardance
|
p0tato
|
1
|
41.0
|
670
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-03T05:04:04Z", "hours": 41.0, "multiplier": 17.33, "payout": 670, "blessing": "neutral", "text": "I made Quartz, a desktop automation app for Windows and Linux. It’s pretty similar to the Shortcuts app on MacOS. Quartz allows you to create shortcuts, which are lists of actions, that run things on your computer, whether that is read a file, send a web request, or something else. These shortcuts can be activated manually or using triggers (e.g. at a certain time). The main reason I created this, and the most important QoL improvement is that with Quartz, you can easily create and manage small scripts that do stuff on your computer, like watch a file or directory and running subsequent actions. The most challenging part was adapting/scrapping features for Linux, since a user’s environment can be very different from another user’s environment, so I had to choose some important features and scrap the unrealistic ones. For example, I really wanted to add an emulate mouse/keyboard button action, but it simply wasn’t feasible, since the app would have to require root privileges on both platforms, which was something I was trying to avoid. I am proud of how the project turned out, but especially the user interface, since it took a while to design and actually build the interface, and I think it turned out well, with a bit room for improvement. Some UI changes will come in future updates. To test the project, you first need to make sure that you are on either Windows or a systemd-based Linux distribution. Then you can simply just follow the instructions on the README. The app uses a Python FastAPI daemon with a Flutter UI. To save memory, the UI is a completely seperate process than the daemon, so it’s OK to close the app window/kill the UI process without affecting the backend.", "repo": "https://github.com/Someone68/quartz", "demo": "https://github.com/Someone68/quartz/releases/latest/"}]...
|
[{"post_id": 60650, "ts": "202 [{"post_id": 60650, "ts": "2026-09-03T04:38:11Z", "hours": 1.2889, "text": "i said last time that it was the final devlog before ship but then i realized there were a lot of bugs to fix and stuff so this the the ACTUAL final devlog before ship!!! changes include: bugfixes (a lot) github actions wiki/docs release 0.2.0"}, {"post_id": 59354, "ts": "2026-09-01T03:07:16Z", "hours": 2.7883, "text": "final devlog before ship!! i mostly just worked on refining the build process and bug fixing, which is why im not going over each change individually. the UI/UX could be improved, but its good enough for the initial ship. all that’s left: re-build the new binaries and release release the windows binaries ship!!! the very compressed and unreadable gif below is the one in the readme lol"}, {"post_id": 50702, "ts": "2026-08-20T01:03:03Z", "hours": 9.3431, "text": "FINALLY i got the build process and packaging working now it works and people can install it! windows works now too! i didnt have time to create a devlog until now so enjoy heres the full changelog: main changes: added action: truncate number allowed users to assign each shortcut a color removed shortcut icons since an icon picker would be really annoying to add overhauled the homepage, now you can select shortcuts, batch delete, and more (see screenshot!!) fixed kill process action disabled running a shortcut while it’s already running (very inconsistent behavior previously) UI now ensures that there is only one window using a weird hack fixed notifications not showing on windows removed emulate mouse button stub action (extremely difficult cross-platform) wrote some docs that i realize i need to update now since i changed the linux install process lol packaging AI: create the windows installer builder AI: create uninstaller create a logo that i put so much effort into (2 minutes in figma) a ton of other stuff including a whole build process for linux notes yea, i did use ai for some stuff, either because i was lazy or… yeah i was lazy. todo major UI improvements released binaries 🚢ing"}, {"post_id": 38525, "ts": "2026-07-31T23:15:42Z", "hours": 2.1325, "text": "quartz update 5.1: the actions update 1 added a ton of cool actions, heres the full list: NEW filesystem: create directory NEW filesystem: create file NEW filesystem: delete directory NEW filesystem: delete file NEW filesystem: get file properties NEW filesystem: read file NEW filesystem: write file NEW filesystem: rename or move file or directory NEW system: power - lock, logout, suspend, hibernate, shutdown, reboot NEW system: send notification NEW misc: send web request other changes: fixed some overflow issues in the UI ok bye new update coming soon"}, {"post_id": 37961, "ts": "2026-07-31T01:01:52Z", "hours": 2.9072, "text": "quartz update #5: the apps update smaller update this time changes added some config file support (located in USER/.config/quartz) added tooltips (?) to certain action inputs added the app selector, as seen in the screenshot below! action updates: NEW open app: opens an app using the selector NEW open link: opens a link, as a website, file, etc. NEW kill process: kills a process via app selector, name, or pid with the option to terminate instead WIP emulate mouse: stub (not implemented) trigger updates: app open: change to use app selector app close: change to use app selector lots of bugfixes, both on backend and UI fixed a lot of overflow issues on UI on smaller screens todo add the remaining trigger types add some more actions figure out how to build and package the app (really need this to ship) notes yes i am aware that deltarune is in my apps list, and yes i have played chapter five"}, {"post_id": 36177, "ts": "2026-07-28T03:00:44Z", "hours": 2.1269, "text": "quartz update #4 changes: optimize polling trigger listeners by limiting one polling agent per trigger type add more triggerss directory watch (file create/delete/rename) directory contents watch (file content changes) app open app close schedule (cron) fixed file watch trigger updated ui pubsec.yaml name to “quartz” instead of “ui” added bracket/quote formatting to text fields added trigger output usage in ui like action outputs allow viewing run logs from settings page"}, {"post_id": 32655, "ts": "2026-07-21T23:02:12Z", "hours": 2.9225, "text": "quartz update #3 changes: added some basic automatic shortcut triggers startup, file watch, clipboard watch will add more later fixed some issues and improved message box/dialog box (using ai) removed collapsible sidebar on editor page polishing/consistency changes including adding a mono font for text fields allow changing shortcut properties through inspector (see image) split editor page file into several modules (previously 1400+ lines long…) to-do: add more triggers and actions figure out how to detect hotkeys on linux (may not be possible on wayland) fix windows functionality figure out how to build/package app more stuff that i forgot about"}, {"post_id": 30446, "ts": "2026-07-18T00:19:18Z", "hours": 0.8075, "text": "update 2: made a cool thing where variables and outputs in a text field are highlighted (see right of image)"}, {"post_id": 29672, "ts": "2026-07-16T18:59:07Z", "hours": 4.3172, "text": "update: added drag and drop, added flow control, removed client side decorations on linux, and more"}, {"post_id": 28048, "ts": "2026-07-14T02:16:11Z", "hours": 12.6333, "text": "devlog #1 of quartz, a desktop automation app similar to shortcuts on ios/mac but for linux (and maybe windows in the future). the main idea is that you create shortcuts that contain multiple “steps”, which can do many things, including: setting a variable, showing a pop-up, running a command, and more. the main reason i decided to work on this is because making shell scripts and managing them are kind of annoying, so creating a nice interface to easily manage scripts (or shortcuts) would be very helpful. as for technical details, the backend (saving and running) uses a background python process, while the ui uses flutter and material design. current features done: basic backend (saving and running shortcuts), some ui (creating, editing shortcuts/steps). todo: add UI for control flow (if/else), add shortcut triggers (to automatically run shortcuts), add a lot more actions, improve the UI, (maybe) app integrations. the reason this took over 10hr is mostly because of the ui, since i am not the most familiar with flutter and there are a lot of moving parts."}]...
|
Title: quartz by @p0tato | Stardance
Devlogs:
dev Title: quartz by @p0tato | Stardance
Devlogs:
devlog #1 of quartz, a desktop automation app similar to shortcuts on ios/mac but for linux (and maybe windows in the future). the main idea is that you create shortcuts that contain multiple “steps”, which can do many things, including: setting a variable, showing a pop-up, running a command, and more. the main reason i decided to work on this is because making shell scripts and managing them are kind of annoying, so creating a nice interface to easily manage scripts (or shortcuts) would be very helpful. as for technical details, the backend (saving and running) uses a background python process, while the ui uses flutter and material design. current features done: basic backend (saving and running shortcuts), some ui (creating, editing shortcuts/steps). todo: add UI for control flow (if/else), add shortcut triggers (to automatically run shortcuts), add a lot more actions, improve the UI, (maybe) app integrations. the reason this took over 10hr is mostly because of the ui, since i am not the most familiar with flutter and there are a lot of moving parts.
update: added drag and drop, added flow control, removed client side decorations on linux, and more
update 2: made a cool thing where variables and outputs in a text field are highlighted (see right of image)
quartz update #3 changes: added some basic automatic shortcut triggers startup, file watch, clipboard watch will add more later fixed some issues and improved message box/dialog box (using ai) removed collapsible sidebar on editor page polishing/consistency changes including adding a mono font for text fields allow changing shortcut properties through inspector (see image) split editor page file into several modules (previously 1400+ lines long…) to-do: add more triggers and actions figure out how to detect hotkeys on linux (may not be possible on wayland) fix windows functionality figure out how to build/package app more stuff that i forgot about
quartz update #4 changes: optimize polling trigger listeners by limiting one polling agent per trigger type add more triggerss directory watch (file create/delete/rename) directory contents watch (file content changes) app open app close schedule (cron) fixed file watch trigger updated ui pubsec.yaml name to “quartz” instead of “ui” added bracket/quote formatting to text fields added trigger output usage in ui like action outputs allow viewing run logs from settings page
quartz update #5: the apps update smaller update this time changes added some config file support (located in USER/.config/quartz) added tooltips (?) to certain action inputs added the app selector, as seen in the screenshot below! action updates: NEW open app: opens an app using the selector NEW open link: opens a link, as a website, file, etc. NEW kill process: kills a process via app selector, name, or pid with the option to terminate instead WIP emulate mouse: stub (not implemented) trigger updates: app open: change to use app selector app close: change to use app selector lots of bugfixes, both on backend and UI fixed a lot of overflow issues on UI on smaller screens todo add the remaining trigger types add some more actions figure out how to build and package the app (really need this to ship) notes yes i am aware that deltarune is in my apps list, and yes i have played chapter five
quartz update 5.1: the actions update 1 added a ton of cool actions, heres the full list: NEW filesystem: create directory NEW filesystem: create file NEW filesystem: delete directory NEW filesystem: delete file NEW filesystem: get file properties NEW filesystem: read file NEW filesystem: write file NEW filesystem: rename or move file or directory NEW system: power - lock, logout, suspend, hibernate, shutdown, reboot NEW system: send notification NEW misc: send web request other changes: fixed some overflow issues in the UI ok bye new update coming soon
FINALLY i got the build process and packaging working now it works and people can install it! windows works now too! i didnt have time to create a devlog until now so enjoy heres the full changelog: main changes: added action: truncate number allowed users to assign each shortcut a color removed shortcut icons since an icon picker would be really annoying to add overhauled the homepage, now you can select shortcuts, batch delete, and more (see screenshot!!) fixed kill process action disabled running a shortcut while it’s already running (very inconsistent behavior previously) UI now ensures that there is only one window using a weird hack fixed notifications not showing on windows removed emulate mouse button stub action (extremely difficult cross-platform) wrote some docs that i realize i need to update now since i changed the linux install process lol packaging AI: create the windows installer builder AI: create uninstaller create a logo that i put so much effort into (2 minutes in figma) a ton of other stuff including a whole build process for linux notes yea, i did use ai for some stuff, either because i was lazy or… yeah i was lazy. todo major UI improvements released binaries 🚢ing
final devlog before ship!! i mostly just worked on refining the build process and bug fixing, which is why im not going over each change individually. the UI/UX could be improved, but its good enough for the initial ship. all that’s left: re-build the new binaries and release release the windows binaries ship!!! the very compressed and unreadable gif below is the one in the readme lol
i said last time that it was the final devlog before ship but then i realized there were a lot of bugs to fix and stuff so this the the ACTUAL final devlog before ship!!! changes include: bugfixes (a lot) github actions wiki/docs release 0.2.0
Ships:
I made Quartz, a desktop automation app for Windows and Linux. It’s pretty similar to the Shortcuts app on MacOS. Quartz allows you to create shortcuts, which are lists of actions, that run things on your computer, whether that is read a file, send a web request, or something else. These shortcuts can be activated manually or using triggers (e.g. at a certain time). The main reason I created this, and the most important QoL improvement is that with Quartz, you can easily create and manage small scripts that do stuff on your computer, like watch a file or directory and running subsequent actions. The most challenging part was adapting/scrapping features for Linux, since a user’s environment can be very different from another user’s environment, so I had to choose some important features and scrap the unrealistic ones. For example, I really wanted to add an emulate mouse/keyboard button action, but it simply wasn’t feasible, since the app would have to require root privileges on both platforms, which was something I was trying to avoid. I am proud of how the project turned out, but especially the user interface, since it took a while to design and actually build the interface, and I think it turned out well, with a bit room for improvement. Some UI changes will come in future updates. To test the project, you first need to make sure that you are on either Windows or a systemd-based Linux distribution. Then you can simply just follow the instructions on the README. The app uses a Python FastAPI daemon with a Flutter UI. To save memory, the UI is a completely seperate process than the daemon, so it’s OK to close the app window/kill the UI process without affecting the backend....
|
1793091118.5908687
|
1793177518.5908687
|
|
24750
|
Drive and Lift by @aayushg | Stardance
|
aayushg
|
1
|
41.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T17:06:06Z", "hours": 41.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This project of mine is a basic drivetrain and lift mechanism. This taught me how to use motors, code in C++ and build basic robots. I am a slow build which is why it took longer.", "repo": "https://github.com/aayushg12/vex", "demo": ""}]...
|
[{"post_id": 74553, "ts": "202 [{"post_id": 74553, "ts": "2026-09-27T16:51:57Z", "hours": 5.9172, "text": "Finished the drive and lift mechanism. And fully coded and tested the drive!"}, {"post_id": 56975, "ts": "2026-08-29T00:52:35Z", "hours": 9.9981, "text": "Finally completed drivetrain and constructed lift. Just need to finish adding pulleys then will start working on the intake."}, {"post_id": 52036, "ts": "2026-08-22T02:18:14Z", "hours": 0.815, "text": "Coded basic 4 omni wheel drive train with 4 11w motors and imu"}, {"post_id": 50015, "ts": "2026-08-19T01:20:27Z", "hours": 4.7833, "text": "I have to rebuild the drivetrain because it was too long and wide. this is the difference. After fixing things up I am halfway done and I am saving 1 inch in vertical and 2 inches in horizontal space."}, {"post_id": 46070, "ts": "2026-08-13T00:46:52Z", "hours": 1.1, "text": "Began building intake so that it can be geared up and used pieces of polycarb for ramp"}, {"post_id": 44256, "ts": "2026-08-09T21:43:32Z", "hours": 3.8836, "text": "Found parts for my cascade lift and fixed the drive train spacing."}, {"post_id": 40399, "ts": "2026-08-03T21:19:06Z", "hours": 1.3669, "text": "Added intake roller and fixed/tested drivetrain"}, {"post_id": 16519, "ts": "2026-06-26T21:29:50Z", "hours": 1.2836, "text": "Almost finished the drivetrain just need to add a few more standoffs then code!"}, {"post_id": 16392, "ts": "2026-06-26T17:50:12Z", "hours": 1.9836, "text": "Removed old connections because they didn’t work and added new ones (really hard to add the new ones that’s why it took so long)"}, {"post_id": 15736, "ts": "2026-06-25T16:33:36Z", "hours": 2.2592, "text": "Attached both sides of the drivetrain. Added more connections to make it more stable. Next Steps: continue making it more secure and stable then start coding."}, {"post_id": 15376, "ts": "2026-06-25T00:23:31Z", "hours": 2.0503, "text": "Added gears and wheels to the drive train. Next step is to connect both pieces, add bracing, and code!"}, {"post_id": 15127, "ts": "2026-06-24T16:08:20Z", "hours": 1.9503, "text": "Tested all driving motors. Attached motors and completed frame of the drive base."}, {"post_id": 14781, "ts": "2026-06-24T00:40:34Z", "hours": 0.8669, "text": "Began the assembly and sorted all parts!"}, {"post_id": 14546, "ts": "2026-06-23T18:14:30Z", "hours": 2.7364, "text": "Building the drivetrain for the robot"}]...
|
Title: Drive and Lift by @aayushg | Stardance
Dev Title: Drive and Lift by @aayushg | Stardance
Devlogs:
Building the drivetrain for the robot
Began the assembly and sorted all parts!
Tested all driving motors. Attached motors and completed frame of the drive base.
Added gears and wheels to the drive train. Next step is to connect both pieces, add bracing, and code!
Attached both sides of the drivetrain. Added more connections to make it more stable. Next Steps: continue making it more secure and stable then start coding.
Removed old connections because they didn’t work and added new ones (really hard to add the new ones that’s why it took so long)
Almost finished the drivetrain just need to add a few more standoffs then code!
Added intake roller and fixed/tested drivetrain
Found parts for my cascade lift and fixed the drive train spacing.
Began building intake so that it can be geared up and used pieces of polycarb for ramp
I have to rebuild the drivetrain because it was too long and wide. this is the difference. After fixing things up I am halfway done and I am saving 1 inch in vertical and 2 inches in horizontal space.
Coded basic 4 omni wheel drive train with 4 11w motors and imu
Finally completed drivetrain and constructed lift. Just need to finish adding pulleys then will start working on the intake.
Finished the drive and lift mechanism. And fully coded and tested the drive!
Ships:
This project of mine is a basic drivetrain and lift mechanism. This taught me how to use motors, code in C++ and build basic robots. I am a slow build which is why it took longer....
|
1793155709.246501
|
1793242109.246501
|
|
25559
|
an overly-asthetic personal website by @Jeremy_W | an overly-asthetic personal website by @Jeremy_W | Stardance...
|
Jeremy_W
|
1
|
41.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T07:36:20Z", "hours": 41.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I tried to make a personal website and give it the most aesthetic tailwind effects I could give it", "repo": "https://github.com/khwongjeremy-netizen/Make-da-best-personal-website-ever", "demo": "https://khwongjeremy-netizen.github.io/Make-da-best-personal-website-ever/index.html"}]...
|
[{"post_id": 62659, "ts": "202 [{"post_id": 62659, "ts": "2026-09-06T04:08:38Z", "hours": 1.5033, "text": "This time, I wokred on adding finishing touches to ship the project. I have deployed it on gihtub and you can access it via link"}, {"post_id": 57686, "ts": "2026-08-29T22:32:59Z", "hours": 2.0222, "text": "Hi, from two hours I succesffully deployed my first few images into my projects page. this willl help better present the projects ath I have recently been working on. On top of that OI have uniqley styled these pages to have thier own matching colour scheme"}, {"post_id": 53327, "ts": "2026-08-23T20:02:24Z", "hours": 1.3681, "text": "I worked on making the website links more accesible on all links, adding to it;s interactability while fixiign up on a. few more issues and adjustments. i am running otu of Ideas for my website. I’ll be finnishing this up soon."}, {"post_id": 52135, "ts": "2026-08-22T07:07:54Z", "hours": 1.105, "text": "added a navigation ection on my contacts page. now my website can be througuhgly traversed accrsoss all pages I’ve jsut been polishing up and adding more details and features like underlines bars etc."}, {"post_id": 51830, "ts": "2026-08-21T18:03:41Z", "hours": 1.0936, "text": "I am logging off an hour of work I have made, I added more hover effcts to the sectiosn of the projects page for more interactivity"}, {"post_id": 51474, "ts": "2026-08-21T06:21:11Z", "hours": 2.9911, "text": "I am not sure why I logged 3 hours of this, but I just tried working more on thje layout just polishing some pages of the website."}, {"post_id": 48654, "ts": "2026-08-17T04:17:19Z", "hours": 2.2561, "text": "Creaeted the baseline for this clean aeshtetic for my contacts page, I amde it kind fo absic and i am runnning out of images to put here soI just amde a bse tempalte for now I am planning on mkaing this a little more cooler with some features later. To be honest, I don’t think this website has done too good of a job of what it’s intended to do, I mean it is interactive but, not what I envision it to be at it’s peak… I’m not sure yet but I’ll keep trying. I was really inspired by those websites that had won awards like nk studios and igloo.inc. But I understand those were prodcued by teams of professionals"}, {"post_id": 44994, "ts": "2026-08-11T04:00:05Z", "hours": 1.8119, "text": "Today I really tried to create the scrollign dial wheel feature on my website, but it proved ot be really challenging. I ran into multiple errors and complications with importing libraries using suitable libraries and finding good ways to test code. I ended up going back to square one with no animations, just divs. Which is arguable better than what I origionally had, because the animation then looked atrocious. It being slow, choppy and delayed."}, {"post_id": 43468, "ts": "2026-08-08T19:04:45Z", "hours": 1.2328, "text": "Got started working on the projects tab on my website, I want to make like a dail formation on loike a row to reveal my projects that I have built across the years"}, {"post_id": 43134, "ts": "2026-08-08T07:15:10Z", "hours": 1.1653, "text": "Update on Personal Portoflio:: -Created another category for my stories page -This will lead into my next page where it will be about projects I have wroked on and other greate work I have done, Photography, codig, building, etc. I also did try to add anothe interactive background but unfortunately I ran into a bunch of errors and I didn’t know how to solve alot of them -I will liekly work on this project for longer durations in the next upcomming weeks and days. while balanacing other responsibilites and habits as well."}, {"post_id": 35655, "ts": "2026-07-27T07:24:03Z", "hours": 0.7811, "text": "I lowkey made the prject worse< I typed in some fo the ocntent heere for the storty making it drasticllt shorter and mroe consicce then the last one. I tried putting in some animation stuff ofr it but it hasn;t worked."}, {"post_id": 34469, "ts": "2026-07-25T06:16:41Z", "hours": 1.2956, "text": "I started working on my story page, of my jounrye to becommming an engineer. I started styling the webpage and got the basic layout of it down, ttomorrow I will focus on the animations and foinal touches and texgt of the story page."}, {"post_id": 33749, "ts": "2026-07-23T22:14:38Z", "hours": 1.1364, "text": "So I added this section popup fro my images and I added in some text for the images of my website. So that will pretty much conclude my first age, I am happy with this design and I will move onto the nxt page"}, {"post_id": 33308, "ts": "2026-07-23T03:13:09Z", "hours": 2.1403, "text": "MWHAHAAHHAHA GUYS I am back and now after beng finnished my header for my. opening page I am moving onto the iamges where I styled them and gave them a fading in intro, I lowk didn’t work on much today and I know I have to do like homework and sstuff so Imma leave it there."}, {"post_id": 31627, "ts": "2026-07-20T05:43:00Z", "hours": 1.2494, "text": "So, I decided to work on it for a little bit more, this time I got started on teh dropdown feature of. my homepage webstie. this is. ahuge part as this helsp show who i am and what I like and it should be relevant to nayone chekcing my website. this took a while to input, but it still needs a little tweaking to be considered done."}, {"post_id": 31584, "ts": "2026-07-20T03:04:11Z", "hours": 1.8481, "text": "HAHA! after 2 weeks of summer school, a hackathon later and practicing arduino stuff. I am back on this project! I found it really challenging to find a good color pallet to maket this thing interactable, so maybe color pallete is like a later thing, ut I gave it a 3d interactable bacgkround header!! woohoo!! thius is one of my goals when tryuing to replicate those really cool websites so I’m really proud. for a second it did wokr but I kinda. broke it again becasue I tried adding some new code. I will probably fix it tomorrow. the colopallete must wait"}, {"post_id": 25738, "ts": "2026-07-10T05:32:17Z", "hours": 1.0089, "text": "I tried getting gemini to create an example of what I had wanted for my overly-aesthetic website, I use ai to generate code which I then manually check over and type on my own finding out and discovering my mechanics while being given a somewhat of a image or refrence of what I want, but following the code gemini had created was found confusing when I tried to tell it how it would create my draft of my personal website, not only did I run into errors trying to type the code but i had found that it had included alot of weird divs created and language used that seemingly served no purpose to my idea of the website, rather than being helpful it was kind of fluffy and being extra so I lowkey ran into wasting an hour of coding, however I found a good website refrence that I was fascinated by it’s simple and effective design that I could adopt into my own website, in the future I will closely analyze this website and use ais to teach me more about this type of design."}, {"post_id": 25169, "ts": "2026-07-09T06:55:21Z", "hours": 1.2892, "text": "Since getting an inspiration and refrence from other websites. I have restarted the project and started working on hte basic html layout fo the first two pages, I’ll try to style them in a really interactive and visually apppealing style that resembles most modern websites."}, {"post_id": 24519, "ts": "2026-07-08T03:48:37Z", "hours": 0.2767, "text": "I was pretty unsatisfieied with the vision of my resulting outcome of my website, it still in a way seemede a little generic broing and balnd even with the extensive hover and intractive freatures so I topok today to draw inspriation from 3 other websitesl. i created an md file to map out my thoughts and since I kinda got a bit busier with summer school I will be stalling toay and picking up pace when I get the oppportunity."}, {"post_id": 23860, "ts": "2026-07-07T01:30:45Z", "hours": 0.6308, "text": "I finnished up on the fading in effect for the timeline/story of my website protfolio I haven’t added any imagees tho. I’ll work on all the tailwind and mechanics first then I’ll move to importing images, and finding a better colour scheme and making the layout more visually appealing"}, {"post_id": 23819, "ts": "2026-07-06T23:54:30Z", "hours": 0.8631, "text": "I started working on the scroll- flow-in timeline mechanic of my story tab in the website, currently it’s not done and I think it’s a little broken but I’ll finnish it up later."}, {"post_id": 23230, "ts": "2026-07-06T01:42:29Z", "hours": 0.9997, "text": "I added a new music list onto the portfolio webstie talking about all the favourite songs I like, I also stared working on the story page that talked about how i came onto this personal path. I faced some small typos but overall got through it. I am planning on adding a similar effect I had with my lists to the small description on the “my story” page. I am planning to style this like a timeline. where boxes adn their yeaers will slowly reveal themselves as you scroll down"}, {"post_id": 22682, "ts": "2026-07-05T07:32:27Z", "hours": 0.5531, "text": "worked on adding the list changing image feature on all of the lists of my home page. Now I just have to add a music taste list and add links to each of the lits items and that should be it for the home page. it sitll looks a little 2d and basic…. the styling color pa;llet literally has only 3-4 colors and uses only 2 most of the time…. so I am gonna have to change that up. yt that’s just a simple code fix. I had this problem where the image kept being at the bottom of the lsit isntead of opening up on the side and it was because I realzied I hadn’t used flexbox propoerties so once I appleid them to both items of teh list and the image I was able to get a smooth visual expression of my interests with a clean smooth layout, aesthetic and appeal. Lowkey midnight motivation pushed me throguh some key changes in the website that’s probably it for the night I am gonna turn the monitor off."}, {"post_id": 22582, "ts": "2026-07-05T03:25:47Z", "hours": 1.6742, "text": "I worked to implement the swtich image freature to all lists, i haven’t found suitabele images for it tho and I am kinda lazy for it … ;("}, {"post_id": 21940, "ts": "2026-07-04T04:21:09Z", "hours": 2.1508, "text": "So, I added a reveal list contents feature to each of the lists using javascript, origionally I ahd to make a unique function for each lsit which was super tedious and annoying and it was just really bad coding rpactices so I deciced to wokr to make my code shorter, more organized and readable, this project, has already come along way thenw hen I had first started it 2 weeks ago… I still am thinking of what kind of images I should add but to be hoenst , finding an image that perfectly represent the topic and adding it is a bit of a drag and kinda disrupts the coding workflow flow-state I sually get into in coding so, I’m gonna have to trian my mind for that. I usually am not that good at using javascript so it was good that I got able to practice it well here."}, {"post_id": 21292, "ts": "2026-07-03T04:30:40Z", "hours": 0.7961, "text": "Worked to make the effect for one of the lsits apply to all lists for the home page. Also planning to add more imgaes to teh website in the future."}, {"post_id": 21135, "ts": "2026-07-02T22:48:18Z", "hours": 1.1833, "text": "I figured out the layout of styling the lists for my portfolio websote and it’s comming together alot. better now. I’ve made a list have special animations when hovereed that reveal it’s contents and I’ve figured out some JS to make a quote appear when you click on my profile. next time I will focus on giving that effect to all of the lists !! a Huge challenge was actually getting the animatiosn right. I had so many unbeleivable typos which was annoying to work with. Some of the syntax also still confused me and I did not yet understnad the meaning of some commands like “overflow-hidden”. but Learning is definitely part of the process here! Although the aesthetic is kinda nice the color pallete is a bit too simple I’lll try and make it more flashy and expressive rather than deep, dark and lowkey"}, {"post_id": 20529, "ts": "2026-07-02T04:33:54Z", "hours": 1.3314, "text": "I proofread and revised parts of my descirption for my personal website, since the goal is overly-aesthetic and interactivness I went ahead and added a profile-hover name reveal feature. Additionally making it minamalisitc while also intractive this is a major drafting and learning leap for my project as I learned more mechanics about tailwind and set the tone on future design of the website. Overall. I am very proud of my work today. Although I had initially struggled with styling the image correctly and somehwo it would never update, I had finally realzied that it was ebcause my tailwind css wasn’t reading my html correctly and I now had a deeper understandin gof where errors like those came from when using tailwind."}, {"post_id": 17453, "ts": "2026-06-28T07:31:31Z", "hours": 0.6325, "text": "Since my personal profiel information was now. alittle outdated and needed some updating I worked to add in those updates I am near running a dead end on how to make this overly aesthetic so when I hit that roadblock I am gonna start planning out how I actually want my own website to look"}, {"post_id": 16768, "ts": "2026-06-27T07:18:40Z", "hours": 0.27, "text": "Not much was done today B Ut I mostyl focused on adding links to the personal website lists. on my home page and I got stared on inputting basics for images. i want tsi to be interactive and a profile that provides the depth of my charceter so I should include links, refernces etc that lead to my hobbies, projects, likes and more I will work more on these features in the morning,"}, {"post_id": 16152, "ts": "2026-06-26T07:56:57Z", "hours": 0.6483, "text": "So I started on moving the css styling components from the origional website ot it;s outer parts to salvage supplies"}, {"post_id": 15521, "ts": "2026-06-25T06:41:24Z", "hours": 1.2978, "text": "overall I worked on connectin gthis repository to this program and I got to work trasnfering the tailwind design styles on my home page across other pages. My overall goal is to learn how to use tailwind and create a project for my own so trying to use aistrictly as likea. google but never let it automate writing code for me. Trying to learn the basics of tailwind for now and then when I ge tmore proficient at it I can master some more creative design options"}]...
|
Title: an overly-asthetic personal website by @Jer Title: an overly-asthetic personal website by @Jeremy_W | Stardance
Devlogs:
overall I worked on connectin gthis repository to this program and I got to work trasnfering the tailwind design styles on my home page across other pages. My overall goal is to learn how to use tailwind and create a project for my own so trying to use aistrictly as likea. google but never let it automate writing code for me. Trying to learn the basics of tailwind for now and then when I ge tmore proficient at it I can master some more creative design options
So I started on moving the css styling components from the origional website ot it;s outer parts to salvage supplies
Not much was done today B Ut I mostyl focused on adding links to the personal website lists. on my home page and I got stared on inputting basics for images. i want tsi to be interactive and a profile that provides the depth of my charceter so I should include links, refernces etc that lead to my hobbies, projects, likes and more I will work more on these features in the morning,
Since my personal profiel information was now. alittle outdated and needed some updating I worked to add in those updates I am near running a dead end on how to make this overly aesthetic so when I hit that roadblock I am gonna start planning out how I actually want my own website to look
I proofread and revised parts of my descirption for my personal website, since the goal is overly-aesthetic and interactivness I went ahead and added a profile-hover name reveal feature. Additionally making it minamalisitc while also intractive this is a major drafting and learning leap for my project as I learned more mechanics about tailwind and set the tone on future design of the website. Overall. I am very proud of my work today. Although I had initially struggled with styling the image correctly and somehwo it would never update, I had finally realzied that it was ebcause my tailwind css wasn’t reading my html correctly and I now had a deeper understandin gof where errors like those came from when using tailwind.
I figured out the layout of styling the lists for my portfolio websote and it’s comming together alot. better now. I’ve made a list have special animations when hovereed that reveal it’s contents and I’ve figured out some JS to make a quote appear when you click on my profile. next time I will focus on giving that effect to all of the lists !! a Huge challenge was actually getting the animatiosn right. I had so many unbeleivable typos which was annoying to work with. Some of the syntax also still confused me and I did not yet understnad the meaning of some commands like “overflow-hidden”. but Learning is definitely part of the process here! Although the aesthetic is kinda nice the color pallete is a bit too simple I’lll try and make it more flashy and expressive rather than deep, dark and lowkey
Worked to make the effect for one of the lsits apply to all lists for the home page. Also planning to add more imgaes to teh website in the future.
So, I added a reveal list contents feature to each of the lists using javascript, origionally I ahd to make a unique function for each lsit which was super tedious and annoying and it was just really bad coding rpactices so I deciced to wokr to make my code shorter, more organized and readable, this project, has already come along way thenw hen I had first started it 2 weeks ago… I still am thinking of what kind of images I should add but to be hoenst , finding an image that perfectly represent the topic and adding it is a bit of a drag and kinda disrupts the coding workflow flow-state I sually get into in coding so, I’m gonna have to trian my mind for that. I usually am not that good at using javascript so it was good that I got able to practice it well here.
I worked to implement the swtich image freature to all lists, i haven’t found suitabele images for it tho and I am kinda lazy for it … ;(
worked on adding the list changing image feature on all of the lists of my home page. Now I just have to add a music taste list and add links to each of the lits items and that should be it for the home page. it sitll looks a little 2d and basic…. the styling color pa;llet literally has only 3-4 colors and uses only 2 most of the time…. so I am gonna have to change that up. yt that’s just a simple code fix. I had this problem where the image kept being at the bottom of the lsit isntead of opening up on the side and it was because I realzied I hadn’t used flexbox propoerties so once I appleid them to both items of teh list and the image I was able to get a smooth visual expression of my interests with a clean smooth layout, aesthetic and appeal. Lowkey midnight motivation pushed me throguh some key changes in the website that’s probably it for the night I am gonna turn the monitor off.
I added a new music list onto the portfolio webstie talking about all the favourite songs I like, I also stared working on the story page that talked about how i came onto this personal path. I faced some small typos but overall got through it. I am planning on adding a similar effect I had with my lists to the small description on the “my story” page. I am planning to style this like a timeline. where boxes adn their yeaers will slowly reveal themselves as you scroll down
I started working on the scroll- flow-in timeline mechanic of my story tab in the website, currently it’s not done and I think it’s a little broken but I’ll finnish it up later.
I finnished up on the fading in effect for the timeline/story of my website protfolio I haven’t added any imagees tho. I’ll work on all the tailwind and mechanics first then I’ll move to importing images, and finding a better colour scheme and making the layout more visually appealing
I was pretty unsatisfieied with the vision of my resulting outcome of my website, it still in a way seemede a little generic broing and balnd even with the extensive hover and intractive freatures so I topok today to draw inspriation from 3 other websitesl. i created an md file to map out my thoughts and since I kinda got a bit busier with summer school I will be stalling toay and picking up pace when I get the oppportunity.
Since getting an inspiration and refrence from other websites. I have restarted the project and started working on hte basic html layout fo the first two pages, I’ll try to style them in a really interactive and visually apppealing style that resembles most modern websites.
I tried getting gemini to create an example of what I had wanted for my overly-aesthetic website, I use ai to generate code which I then manually check over and type on my own finding out and discovering my mechanics while being given a somewhat of a image or refrence of what I want, but following the code gemini had created was found confusing when I tried to tell it how it would create my draft of my personal website, not only did I run into errors trying to type the code but i had found that it had included alot of weird divs created and language used that seemingly served no purpose to my idea of the website, rather than being helpful it was kind of fluffy and being extra so I lowkey ran into wasting an hour of coding, however I found a good website refrence that I was fascinated by it’s simple and effective design that I could adopt into my own website, in the future I will closely analyze this website and use ais to teach me more about this type of design.
HAHA! after 2 weeks of summer school, a hackathon later and practicing arduino stuff. I am back on this project! I found it really challenging to find a good color pallet to maket this thing interactable, so maybe color pallete is like a later thing, ut I gave it a 3d interactable bacgkround header!! woohoo!! thius is one of my goals when tryuing to replicate those really cool websites so I’m really proud. for a second it did wokr but I kinda. broke it again becasue I tried adding some new code. I will probably fix it tomorrow. the colopallete must wait
So, I decided to work on it for a little bit more, this time I got started on teh dropdown feature of. my homepage webstie. this is. ahuge part as this helsp show who i am and what I like and it should be relevant to nayone chekcing my website. this took a while to input, but it still needs a little tweaking to be considered done.
MWHAHAAHHAHA GUYS I am back and now after beng finnished my header for my. opening page I am moving onto the iamges where I styled them and gave them a fading in intro, I lowk didn’t work on much today and I know I have to do like homework and sstuff so Imma leave it there.
So I added this section popup fro my images and I added in some text for the images of my website. So that will pretty much conclude my first age, I am happy with this design and I will move onto the nxt page
I started working on my story page, of my jounrye to becommming an engineer. I started styling the webpage and got the basic layout of it down, ttomorrow I will focus on the animations and foinal touches and texgt of the story page.
I lowkey made the prject worse< I typed in some fo the ocntent heere for the storty making it drasticllt shorter and mroe consicce then the last one. I tried putting in some animation stuff ofr it but it hasn;t worked.
Update on Personal Portoflio:: -Created another category for my stories page -This will lead into my next page where it will be about projects I have wroked on and other greate work I have done, Photography, codig, building, etc. I also did try to add anothe interactive background but unfortunately I ran into a bunch of errors and I didn’t know how to solve alot of them -I will liekly work on this project for longer durations in the next upcomming weeks and days. while balanacing other responsibilites and habits as well.
Got started working on the projects tab on my website, I want to make like a dail formation on loike a row to reveal my projects that I have built across the years
Today I really tried to create the scrollign dial wheel feature on my website, but it proved ot be really challenging. I ran into multiple errors and complications with importing libraries using suitable libraries and finding good ways to test code. I ended up going back to square one with no animations, just divs. Which is arguable better than what I origionally had, because the animation then looked atrocious. It being slow, choppy and delayed.
Creaeted the baseline for this clean aeshtetic for my contacts page, I amde it kind fo absic and i am runnning out of images to put here soI just amde a bse tempalte for now I am planning on mkaing this a little more cooler with some features later. To be honest, I don’t think this website has done too good of a job of what it’s intended to do, I mean it is interactive but, not what I envision it to be at it’s peak… I’m not sure yet but I’ll keep trying. I was really inspired by those websites that had won awards like nk studios and igloo.inc. But I understand those were prodcued by teams of professionals
I am not sure why I logged 3 hours of this, but I just tried working more on thje layout just polishing some pages of the website.
I am logging off an hour of work I have made, I added more hover effcts to the sectiosn of the projects page for more interactivity
added a navigation ection on my contacts page. now my website can be througuhgly traversed accrsoss all pages I’ve jsut been polishing up and adding more details and features like underlines bars etc.
I worked on making the website links more accesible on all links, adding to it;s interactability while fixiign up on a. few more issues and adjustments. i am running otu of Ideas for my website. I’ll be finnishing this up soon.
Hi, from two hours I succesffully deployed my first few images into my projects page. this willl help better present the projects ath I have recently been working on. On top of that OI have uniqley styled these pages to have thier own matching colour scheme
This time, I wokred on adding finishing touches to ship the project. I have deployed it on gihtub and you can access it via link
Ships:
I tried to make a personal website and give it the most aesthetic tailwind effects I could give it...
|
1793155671.1593053
|
1793242071.1593053
|
|
26059
|
Better Bible Guesser by @Synxed | Stardance
|
Synxed
|
1
|
41.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T04:32:46Z", "hours": 41.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Better Bible Guesser has had all its maintenance and new features added and fixed, and I think it is ready to be shipped now! Whilst I know that I haven’t done many dev-logs, this is majorly due to myself forgetting to complete incremental logs, and ending up doing one log every 20-or-so hours of work, so please forgive me. It can be a bit confusing how to play my game, so here is a little breakdown of the different features you can use! Sign-In/Register an account: This is handled by Firestore Authentication securely, so I am not even able to actually view passwords as well. Play the game-modes: There are a few game-modes including: Normal, 5 rounds of playing. Multiplayer lobbies. Custom singleplayer mode. Create mode to create a specific custom game for others to play. Quest Mode! This is new game mode, where you can interact with 4 different places on the town map: the Marketplace, Academy, Racecourse and the Castle (not released yet). Most of these will reward you with “scrolls” which can be spent in the Marketplace to obtain unique and rare profile customisation options such as username colour effects and logos. It has been an interesting project, having to work on expanding a previous existing project rather than creating a new one. So please don’t beat me up when you read my code… I ran into MANY issues, and have suffered through the infamous vsCode crash “You must free up system storage” because I had too many Chrome tabs open! If you have any questions about how to actually play, or what some of the features do, I actually have a GitHub Wiki page (generated by an AI agent for me), so you can check that out too here: https://github.com/toosynxed/angularbibleguesser/wiki Along with the live version of the game at: https://better-bibleguesser.web.app Thanks for taking the time to read this! -Ta!", "repo": "https://github.com/toosynxed/angularbibleguesser", "demo": "https://angularbetterbibleguesser.web.app/"}]...
|
[{"post_id": 54951, "ts": "202 [{"post_id": 54951, "ts": "2026-08-26T11:31:55Z", "hours": 2.3886, "text": "Been a while since I last worked on this project, but I came back just to do a few touch-ups and bug fixes. What was fixed: Item shop allowing duplicate purchases with two open tabs: A friend actually found this for me, where if you had two browser tabs open on your device on the item shop page, pressing the purchase button on the same item on both tabs would break the bit-wise value functions and actually allow you to purchase it in that instant. However this just breaks every other item for a user, requiring a manual reset or roll-back to fix their database document. Touch-ups: Video mode layout: After receiving some feedback from friends, I identified pretty quickly that the layout of the video mode after you finish a video is not very intuitive for users to figure out how to go back and rewatch the video, so instead of replacing the video embed with a still picture, I merely resized the YouTube embed to a % of the screen width to allow for active resizing depending on device sizes/orientation. If anyone finds any other bugs, or has any feedback, feel free to leave a comment, and I will definitely look into it! Ta! (Don’t mind the BongoCat in the corner! ) Play at: https://better-bibleguesser.web.app !"}, {"post_id": 27031, "ts": "2026-07-12T06:04:00Z", "hours": 10.1144, "text": "What has been done! A.. Lot! Pretty much these few things: Marketplace/Shop page has been fixed, with the rotating shop items now being unique for each user and rotating each day at 12am (AEST). Items already owned by users will never appear in their shop again. Academy Mode works now! I got the menu page for it to look the way I want it to, as well as the actual video needing to be played before completing the questions (or you could click the skip button if you want ig :) ). (The videos are from the BibleProject YouTube channel, who allow use of their video and content for non-commercial uses and do not require payment to access, adequate acknowledgement has been provided inline with their Term’s of Use). Scrolls are now actually gained from completing game modes inside Quest Mode, added to user’s database document (even guest users!). For Racetrack Mode 🚗, users can only gain their Scroll reward from each different race once per day , any more than that, and no scroll reward is given. Settings options actually work now, especially the toggle contrast and the font size slider! Verse Board now features a TTL function, which will clear old verse sets that have not had any plays within the last 30 days. And thats all so far! 🔥 What’s Next? I want to actually add some graphics (probably SVG’s) for Marketplace items rather than just the generic blue card background. I want to add a tutorial overlay that is displayed for users who have just clicked the Quest Mode button from the home page, to highlight each of the different actions they can take on the page, and to explain the general purpose of the mode! So, that is what has been done, along with what is to come! Keep an eye out! ❤️🔥"}, {"post_id": 23908, "ts": "2026-07-07T03:34:27Z", "hours": 28.3731, "text": "Wow, a lot of work done! I have completed so many features! From a new game mode, to a marketplace to a verse board where users can submit their own games for others to play! I have uploaded the website to: better-bibleguesser.web.app for anyone who would wish to play it, or to just see what it is all about! What Was Done: New “Quest Mode” game mode completed with a Marketplace, Academy, and Racetrack mini-modes to play and interact with! Completing certain game modes within the Quest Mode will reward signed-in users with a new currency: Scrolls. Scrolls can be used to purchase account decoration options in profile settings! The Marketplace rotates items through every 24 hours, and you will never be shown items that you have already purchased. Profile customisation options set by users before this update will remain active unless changed. Support for low-vision or impaired vision users with contrast, font size and other accessibility options and settings available. New Verse Board modal for users to upload their “Create Game” verse for others to view and play. Total plays are tracked and displayed on the sets’ modal card. Leaderboards and Statistic tracking and display have been fixed: Profile customisation options will now show. Better account handling and security through Firebase Auth and Google Sign-in’s. Well, some more work still to come! So if you are following this (which literally no one is!), keep an eye out! Ta!"}]...
|
Title: Better Bible Guesser by @Synxed | Stardance Title: Better Bible Guesser by @Synxed | Stardance
Devlogs:
Wow, a lot of work done! I have completed so many features! From a new game mode, to a marketplace to a verse board where users can submit their own games for others to play! I have uploaded the website to: better-bibleguesser.web.app for anyone who would wish to play it, or to just see what it is all about! What Was Done: New “Quest Mode” game mode completed with a Marketplace, Academy, and Racetrack mini-modes to play and interact with! Completing certain game modes within the Quest Mode will reward signed-in users with a new currency: Scrolls. Scrolls can be used to purchase account decoration options in profile settings! The Marketplace rotates items through every 24 hours, and you will never be shown items that you have already purchased. Profile customisation options set by users before this update will remain active unless changed. Support for low-vision or impaired vision users with contrast, font size and other accessibility options and settings available. New Verse Board modal for users to upload their “Create Game” verse for others to view and play. Total plays are tracked and displayed on the sets’ modal card. Leaderboards and Statistic tracking and display have been fixed: Profile customisation options will now show. Better account handling and security through Firebase Auth and Google Sign-in’s. Well, some more work still to come! So if you are following this (which literally no one is!), keep an eye out! Ta!
What has been done! A.. Lot! Pretty much these few things: Marketplace/Shop page has been fixed, with the rotating shop items now being unique for each user and rotating each day at 12am (AEST). Items already owned by users will never appear in their shop again. Academy Mode works now! I got the menu page for it to look the way I want it to, as well as the actual video needing to be played before completing the questions (or you could click the skip button if you want ig :) ). (The videos are from the BibleProject YouTube channel, who allow use of their video and content for non-commercial uses and do not require payment to access, adequate acknowledgement has been provided inline with their Term’s of Use). Scrolls are now actually gained from completing game modes inside Quest Mode, added to user’s database document (even guest users!). For Racetrack Mode 🚗, users can only gain their Scroll reward from each different race once per day , any more than that, and no scroll reward is given. Settings options actually work now, especially the toggle contrast and the font size slider! Verse Board now features a TTL function, which will clear old verse sets that have not had any plays within the last 30 days. And thats all so far! 🔥 What’s Next? I want to actually add some graphics (probably SVG’s) for Marketplace items rather than just the generic blue card background. I want to add a tutorial overlay that is displayed for users who have just clicked the Quest Mode button from the home page, to highlight each of the different actions they can take on the page, and to explain the general purpose of the mode! So, that is what has been done, along with what is to come! Keep an eye out! ❤️🔥
Been a while since I last worked on this project, but I came back just to do a few touch-ups and bug fixes. What was fixed: Item shop allowing duplicate purchases with two open tabs: A friend actually found this for me, where if you had two browser tabs open on your device on the item shop page, pressing the purchase button on the same item on both tabs would break the bit-wise value functions and actually allow you to purchase it in that instant. However this just breaks every other item for a user, requiring a manual reset or roll-back to fix their database document. Touch-ups: Video mode layout: After receiving some feedback from friends, I identified pretty quickly that the layout of the video mode after you finish a video is not very intuitive for users to figure out how to go back and rewatch the video, so instead of replacing the video embed with a still picture, I merely resized the YouTube embed to a % of the screen width to allow for active resizing depending on device sizes/orientation. If anyone finds any other bugs, or has any feedback, feel free to leave a comment, and I will definitely look into it! Ta! (Don’t mind the BongoCat in the corner! ) Play at: https://better-bibleguesser.web.app !
Ships:
Better Bible Guesser has had all its maintenance and new features added and fixed, and I think it is ready to be shipped now! Whilst I know that I haven’t done many dev-logs, this is majorly due to myself forgetting to complete incremental logs, and ending up doing one log every 20-or-so hours of work, so please forgive me. It can be a bit confusing how to play my game, so here is a little breakdown of the different features you can use! Sign-In/Register an account: This is handled by Firestore Authentication securely, so I am not even able to actually view passwords as well. Play the game-modes: There are a few game-modes including: Normal, 5 rounds of playing. Multiplayer lobbies. Custom singleplayer mode. Create mode to create a specific custom game for others to play. Quest Mode! This is new game mode, where you can interact with 4 different places on the town map: the Marketplace, Academy, Racecourse and the Castle (not released yet). Most of these will reward you with “scrolls” which can be spent in the Marketplace to obtain unique and rare profile customisation options such as username colour effects and logos. It has been an interesting project, having to work on expanding a previous existing project rather than creating a new one. So please don’t beat me up when you read my code… I ran into MANY issues, and have suffered through the infamous vsCode crash “You must free up system storage” because I had too many Chrome tabs open! If you have any questions about how to actually play, or what some of the features do, I actually have a GitHub Wiki page (generated by an AI agent for me), so you can check that out too here: https://github.com/toosynxed/angularbibleguesser/wiki Along with the live version of the game at: https://better-bibleguesser.web.app Thanks for taking the time to read this! -Ta!...
|
1793220553.2126837
|
1793306953.2126837
|
|
28132
|
LED Matrix by @skyFonix | Stardance
|
skyFonix
|
1
|
41.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-01T18:18:28Z", "hours": 41.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My led matrix project is finally fully functional and working!", "repo": "https://github.com/FonixPython/LEDMatrix", "demo": "https://youtu.be/nKzDiW8ssP0"}]...
|
[{"post_id": 39029, "ts": "202 [{"post_id": 39029, "ts": "2026-08-01T18:13:12Z", "hours": 5.8297, "text": "I made a demo video for my first ship! YouTube video I also compiled the controller software into both windows and linux executables."}, {"post_id": 37885, "ts": "2026-07-30T21:31:43Z", "hours": 3.9994, "text": "Finished with the basic functionality of the animation panel! It’s been a while since I posted a log video so here it is!: Log #2 Things left to do: Implement single frame loading from a json file Implement animation loading from a json file Implement some sort of error handling in case something goes wrong (currently it just crashes lol) Polish up the source code and remove imports that are never used"}, {"post_id": 37616, "ts": "2026-07-30T14:06:30Z", "hours": 13.5847, "text": "Currently working on the animation tab, Single frame, Pattern settings and Text tab is already finished, and working!"}, {"post_id": 20680, "ts": "2026-07-02T10:31:07Z", "hours": 12.2431, "text": "Arduino side of things done! I finished all the work connected to animations, patterns, and communication. Feature list: Single-frame mode: Full depth color fill, and ability to modify individual pixels in the matrix with full 8 bit/channel color Effect/Pattern mode: Multiple customizable patterns with onboard rendering Rainbow: Obviously a rainbow with and adjustable speed Checker: A rainbow pattern that is covered by a solid color on every other pixel, the color is a full depth color determined by the effectColor variable color that can be adjusted using Serial communication Scanner: It scans the pixel array row by row with the color of the effectColor variable, speed is also adjustable Pulse: A pulsing effect using the effectColor, adjustable speed Snake: A snake with a fading tail, adjustable speed. It’s main color is the effectColor Rainbow fill: Rainbow, but with the entire screen being the same color, affected by the global speed as all the others Animation mode: This mode took probably the most, time. The last like 4 hours of development was basically focused on optimizing and debugging of this feature. It stores and internal buffer of 20 maximum frames, every pixel of every frame stores an index that gets it’s color from a color palette that is user adjustable and stored in full depth color. The full depth color information is rendered to the matrix, during runtime. It’s speed is the same as the effect/pattern speed. Text rendering: Seemed complex at first, but after thinking about it a bit more it got done in a reasonable time. This section holds the only AI generated information from the entire file in the form of the font bitmap, since I didn’t want to spend a bunch of time drawing them myself. The character buffer itself can store 64 characters, but since there is a limitation to my model of arduino to a 64 byte serial buffer it can only display 62 characters. It also has two color modes one of which uses the effectColor, and the other one uses a similar way to the rainbow effect to render rainbow colored text. Hardware side of things: The project uses an arduino nano as the micro controller, and an addressable led strip containing WS2812 leds. I cut a long one of these led strips into 12, 7 led long ones and them inside of a CD case, which I sanded down for light diffusion(doesn’t do the best job tho). An important thing about the wiring is that the data pins are connected in a zig-zag pattern so if anyone maybe wants to use my code, they need to build the matrix the same way. The dimensions of the matrix can be changed, a small change in the code is all that is needed. Thoughts on my efficiency I know that this project must have been done like a million + 1 times already and it shouldn’t have taken this much time, but as it was the first time I touched an arduino or any kind of low level programming project really, it took a longer time than it should have. Next goal for this project My next goal is to write some kind of usable software to control the matrix from a computer. Probably going to use Python with PyQt6 as the UI framework for that. I expect it to take much less time, since I’ve worked with them before."}, {"post_id": 18746, "ts": "2026-06-29T22:45:29Z", "hours": 5.5147, "text": "LED Matrix project devlog #1: This is the first time I worked with an arduino and addressable LEDs so it took a lot of time just to get to this point, about 5 hours wasted lol. I also made a little video demoing it’s current functionality. I’ll work on built-in effects, error handling, better communication and an actual control software for it tomorrow! https://youtu.be/KfH43WNfC98"}]...
|
Title: LED Matrix by @skyFonix | Stardance
Devlog Title: LED Matrix by @skyFonix | Stardance
Devlogs:
LED Matrix project devlog #1: This is the first time I worked with an arduino and addressable LEDs so it took a lot of time just to get to this point, about 5 hours wasted lol. I also made a little video demoing it’s current functionality. I’ll work on built-in effects, error handling, better communication and an actual control software for it tomorrow! https://youtu.be/KfH43WNfC98
Arduino side of things done! I finished all the work connected to animations, patterns, and communication. Feature list: Single-frame mode: Full depth color fill, and ability to modify individual pixels in the matrix with full 8 bit/channel color Effect/Pattern mode: Multiple customizable patterns with onboard rendering Rainbow: Obviously a rainbow with and adjustable speed Checker: A rainbow pattern that is covered by a solid color on every other pixel, the color is a full depth color determined by the effectColor variable color that can be adjusted using Serial communication Scanner: It scans the pixel array row by row with the color of the effectColor variable, speed is also adjustable Pulse: A pulsing effect using the effectColor, adjustable speed Snake: A snake with a fading tail, adjustable speed. It’s main color is the effectColor Rainbow fill: Rainbow, but with the entire screen being the same color, affected by the global speed as all the others Animation mode: This mode took probably the most, time. The last like 4 hours of development was basically focused on optimizing and debugging of this feature. It stores and internal buffer of 20 maximum frames, every pixel of every frame stores an index that gets it’s color from a color palette that is user adjustable and stored in full depth color. The full depth color information is rendered to the matrix, during runtime. It’s speed is the same as the effect/pattern speed. Text rendering: Seemed complex at first, but after thinking about it a bit more it got done in a reasonable time. This section holds the only AI generated information from the entire file in the form of the font bitmap, since I didn’t want to spend a bunch of time drawing them myself. The character buffer itself can store 64 characters, but since there is a limitation to my model of arduino to a 64 byte serial buffer it can only display 62 characters. It also has two color modes one of which uses the effectColor, and the other one uses a similar way to the rainbow effect to render rainbow colored text. Hardware side of things: The project uses an arduino nano as the micro controller, and an addressable led strip containing WS2812 leds. I cut a long one of these led strips into 12, 7 led long ones and them inside of a CD case, which I sanded down for light diffusion(doesn’t do the best job tho). An important thing about the wiring is that the data pins are connected in a zig-zag pattern so if anyone maybe wants to use my code, they need to build the matrix the same way. The dimensions of the matrix can be changed, a small change in the code is all that is needed. Thoughts on my efficiency I know that this project must have been done like a million + 1 times already and it shouldn’t have taken this much time, but as it was the first time I touched an arduino or any kind of low level programming project really, it took a longer time than it should have. Next goal for this project My next goal is to write some kind of usable software to control the matrix from a computer. Probably going to use Python with PyQt6 as the UI framework for that. I expect it to take much less time, since I’ve worked with them before.
Currently working on the animation tab, Single frame, Pattern settings and Text tab is already finished, and working!
Finished with the basic functionality of the animation panel! It’s been a while since I posted a log video so here it is!: Log #2 Things left to do: Implement single frame loading from a json file Implement animation loading from a json file Implement some sort of error handling in case something goes wrong (currently it just crashes lol) Polish up the source code and remove imports that are never used
I made a demo video for my first ship! YouTube video I also compiled the controller software into both windows and linux executables.
Ships:
My led matrix project is finally fully functional and working!...
|
1793094838.9700246
|
1793181238.9700246
|
|
30352
|
Dungen Escape 2D by @Ahmed_Gayipov | Stardance
|
Ahmed_Gayipov
|
2
|
41.0
|
77
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T17:50:42Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made the game dungun escape 2d it is a maze game were you try to find keys and escape guards And whill escaping there are coins which you can collect to go to the Black Market Were you buy new colors and shapes to costomize your charecter", "repo": "https://github.com/Cr7-is-the-best/Dungeon-Escape2D", "demo": "https://effortless-cobbler-a1d824.netlify.app/"}, {"ship_num": 2, "ts": "2026-07-19T15:16:44Z", "hours": 36.0, "multiplier": 3.33, "payout": 77, "blessing": "neutral", "text": "I made the game dungun escape 2d it is a maze game were you try to find keys and escape guards And whill escaping there are coins which you can collect to go to the Black Market Were you buy new colors and shapes to costomize your charecter", "repo": "https://github.com/Cr7-is-the-best/Dungeon-Escape2D", "demo": "https://effortless-cobbler-a1d824.netlify.app/"}]...
|
[{"post_id": 48359, "ts": "202 [{"post_id": 48359, "ts": "2026-08-16T17:50:01Z", "hours": 0.5675, "text": "Add A few more stuff that should make the game a little harder"}, {"post_id": 32022, "ts": "2026-07-20T21:51:02Z", "hours": 4.3436, "text": "I add better lighting to my game"}, {"post_id": 31254, "ts": "2026-07-19T14:50:20Z", "hours": 0.3278, "text": "I added a save progress button to my game, which saves your character color and shape."}, {"post_id": 30800, "ts": "2026-07-18T18:09:35Z", "hours": 4.0128, "text": "I added diffrent shapes and colors that you can buy to make your charecter look better"}, {"post_id": 30232, "ts": "2026-07-17T17:24:35Z", "hours": 5.2639, "text": "i made it so that now you have to escape a maze"}, {"post_id": 28553, "ts": "2026-07-14T21:33:30Z", "hours": 3.3769, "text": "Made it so that the loot crats give you better loot depending on the wave you are on"}, {"post_id": 24975, "ts": "2026-07-08T21:18:55Z", "hours": 23.475, "text": "I am working on an open-world zombie survival game"}]...
|
Title: Dungen Escape 2D by @Ahmed_Gayipov | Starda Title: Dungen Escape 2D by @Ahmed_Gayipov | Stardance
Devlogs:
I am working on an open-world zombie survival game
Made it so that the loot crats give you better loot depending on the wave you are on
i made it so that now you have to escape a maze
I added diffrent shapes and colors that you can buy to make your charecter look better
I added a save progress button to my game, which saves your character color and shape.
I add better lighting to my game
Add A few more stuff that should make the game a little harder
Ships:
I made the game dungun escape 2d it is a maze game were you try to find keys and escape guards And whill escaping there are coins which you can collect to go to the Black Market Were you buy new colors and shapes to costomize your charecter
I made the game dungun escape 2d it is a maze game were you try to find keys and escape guards And whill escaping there are coins which you can collect to go to the Black Market Were you buy new colors and shapes to costomize your charecter...
|
1792878858.5052361
|
1793742858.5052361
|
|
31684
|
Neptune by @DrewRat | Stardance
|
DrewRat
|
1
|
41.0
|
441
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T23:52:04Z", "hours": 41.0, "multiplier": 10.71, "payout": 441, "blessing": "neutral", "text": "Neptune is a self-hosted college life management tool. This ship includes a demo page to try it out before self-hosting. Some features may not be available. I hope you like it!", "repo": "https://github.com/MrDiamondDog/neptune", "demo": "https://neptune-demo.drewrat.dev"}]...
|
[{"post_id": 46040, "ts": "202 [{"post_id": 46040, "ts": "2026-08-12T23:29:03Z", "hours": 4.4156, "text": "SHIPPING TIME!!! This is a little earlier than I expected to ship, but I think it’s about ready! (and I want to start working on other things) Flashcard Importing and Reordering You can now import flashcards! One flashcard per line, with each line having two sides separated by a delimiter of your choice. I suppose I should also add exporting, but I can always do that later. (I don’t think many other people will actually use this app) I skipped drag and drop for reordering as Tungsten showed me how much of a pain in the a– that can be. You get an up arrow and down arrow, that’s it. Settings Redesign Only slightly. I went for a look that matches the dashboard a little better and makes the UI easier to read. The save button was tricky to place; as putting it near the settings it actually works for made it blend in too much. Term editing doesn’t require saving, but this is the best place to put the button. I also added the log out button right under this! Demo The app now has a proper demo mode. I think I implemented this one a little cleaner than Tungsten, not requiring a user with ID 0 and a specific password to be in the DB. It just fakes you having a session/user and works off of that. Bugs, bugs galore! Oh man I fixed so many. I’ve been putting off a lot of these and some I just discovered as well. The big one was that meeting exclusions just weren’t working. It ended up being an issue with code I changed weeks ago, that I thought wouldn’t affect very much. Another bug was task due dates were just incorrect. You type “tomorrow” and it is due 2 days in advance. You wouldn’t believe what caused this one, and say it with me: timezones!!!!! And that’s all! This has been one of the most fun apps to develop imo (minus all the timezone issues, those were the worst thing I have ever done), and I hope you find some use of this project!"}, {"post_id": 44830, "ts": "2026-08-10T21:06:10Z", "hours": 5.5306, "text": "PWA support, study tools, and many small fixes! Once again I have procrastinated devlogging. I have to start working a little harder though as my deadline for this project is in 9 days! (I’m moving out and won’t have time to work on this anymore so I want to get it done before then) PWA support This was super simple. I basically just stole the config from Filatrack, and it worked great. The hardest part was actually making the UI mobile-friendly (I hate mobile-first development) Tailwind does device-based styles really weird and lowkey a little stupid, forcing you into mobile-first development, even though that’s dumb for what this project is. Study Tools!! This is the last major feature I’ll be adding before shipping. The tools include a pomodoro timer, flashcards, and quizzes. These all will be part of the database as well. So far, I’ve completed the pomodoro timer! It ended up really simple but really effective. You get to choose how long each work/break is, tasks to focus on, etc. You can pause the timer, hide it, and skip ahead to the next break if you wish. (I’ll be sure to add some confirmation to this so you don’t just skip work time!) The app also requests notification permission so it can send you notifications when it’s time for a break or time to get back to work. I’d also like to add a couple misc. QoL things like optional water/posture reminders and distraction prevention (telling you to get back to work if you get on a distracting website). When you finish, it gives you a quick overview of what you got done and then logs a study session to the database. Not entirely sure what I’ll use them for other than statistics for yourself, but thought I’d add it! SUPRISE: Timezone bugs! OK, I swear, this time is the last time I’ll have to fix timezone bugs. It was daylight savings again. I did some stupid stuff and FINALLY got it working again. This time I did some jank involving a function that checks if a day is in daylight savings and then just adjusting the hour so it’s correct. I know, it’s really dumb, but it works, so is it really? Small things Multiple bug fixes here and there that make it easier to use. The time and date are also shown on the home page now! Next up… …flashcards! This one I’m pretty excited about and shouldn’t be too hard!"}, {"post_id": 38024, "ts": "2026-07-31T05:20:31Z", "hours": 5.8447, "text": "New schedule look, smart greeting, tasks in the calendar, and more timezone fun!!! I spent a bunch more time procrastinating devlogging… so here’s a really long one! New schedule look It only changed a little, but it’s a lot easier to read and accommodates smaller event text a lot better. For events shorter than 30m, it leaves out the end time, and the title simply clips off if there isn’t space. Smart Greeting + new header! The header has a new look! The main feature here is the smart greeting, which shows you your upcoming classes/tasks (TODO) at a glance. It wasn’t crazy hard to implement this, just a bunch of conditions. It shows you only the upcoming classes on days you have classes, and the classes you have tomorrow if you’re done with classes for the day or have none. Past that, it doesn’t say anything. Tasks in the calendar This was a fun, quick adventure. I wanted to make sure tasks that were due at 11:59pm (the default) show up without having to scroll, so I stuck those ones in the all day section, to indicate you should get it done by the end of the day. Additionally, I added the tasks to iCal syncing via the VTODO spec. I implemented it in a hacky way since the library I was using didn’t support it, but it worked. Unfortunately, that’s when I learned that almost no calendar app actually looks at them. Yep. Google calendar, Apple calendar, none of them care about it. I’m going to implement them as normal events and call it a day. Timezone fun! Here we go again and for hopefully the last time. I was scrolling through the calendar, as ya do, and noticed a sudden shift around November, where all the classes would shift backward an hour. This could only mean one thing: daylight savings. I don’t even know how I fixed this one. I hacked around with it for a couple hours, and it started working again. This caused the iCal syncing to do the same thing, which took longer to fix. I am so tired. Javascript dates might actually be the worst thing I have ever worked with"}, {"post_id": 33880, "ts": "2026-07-24T04:50:20Z", "hours": 2.3253, "text": "IM BACK!!! SUPER exciting updates today!!! I just got back from vacation and I have motivation!! LOGO!!!! Neptune has a logo!!! I think it looks really good, I whipped it up in Inkscape in like 20 minutes. You wouldn’t believe what it’s supposed to be! Self hosting!!! This was supoer easy. Since this uses the same stack as Tungsten (which you should totally go check out also), I was able to copy over the dockerfile and docker-compose with minimal changes. However…. Timezone issues!!! Wait…. Yep. There are a lot of edge cases I didn’t think of. As soon as the server and client’s timezones are different, things get stupid. Javascript dates are genuinely one of the worst things I have ever used, I’d even go as far as to say it’s worse than java as a language. Both the ICS calendar import and export, as well as the course times were incorrect by +/- 6 hours (I am in UTC-6, so that explains it) I spent way, WAY longer than I should’ve trying to fix this. It ended up taking like 2 different changes that affected the database as well. Usually I try to make my git commits clean and well-described, but that didn’t last very long here… The best part: it still doesn’t work properly! I don’t know why, but the ICS viewer I’ve been using to test reads the file differently than Google Calendar, which thinks my 10am class is at 4am. Not to mention, Google Calendar only updates your subscribed calendars once every like 6 hours!! So every time I make a change to (hopefully) fix it, I have to wait. Devlog Meta Section Unfortunately I don’t have much else to show for this update… that was all I worked on for 2 hours. I know. Anyway, I hope to add some more real features very soon!"}, {"post_id": 28043, "ts": "2026-07-14T02:01:36Z", "hours": 1.63, "text": "Course colors, Course/meeting editing, and more timezone bugs!! Wow! A devlog of reasonable length! Surely that means it will be shorter right? Kinda, I added a lot of things but it was pretty easy! Calendar colors 🎨 This one was really easy to implement, as the calendar component allows you to specify a border/background color. All I needed to do was add it to the creation modal and boom! I stole the color picker from Filatrack as it’s a good component and I don’t see a reason to make a new one Unfortunately, these colors will not show up in the iCal subscription as iCal doesn’t support colors. Course card view modes The “Today” card at the top can now show you tomorrow and all courses! Once again, super easy to implement, literally just another state and changing what courses are grabbed based on that state. I also fixed a glaring bug where you’d see courses from every term. I’m not sure how I didn’t consider this, but now you’ll only see courses for the current term! Editing courses/meetings This one got a little tricky. The modal is already designed to be used for creation and editing, I just had to implement the latter. Editing courses is no big deal, however; it just changes what function it uses. Its editing meetings that’s a little tricky. You have to make a separate request to edit the meetings that are in the db, create ones that you’ve added, and delete ones you’ve removed. It ended up being relatively simple, but there’s a couple edge cases that could snag ya. Timezone bugs I don’t even know how this one happened. I looked at the calendar when I was working on other things and suddenly realized all my courses were 6 hours ahead of where they should be. iCal events worked fine. I didn’t even change anything in this area so I just subtracted the timezone offset when getting the events for the calendar and called it a day. What’s Next? I totally lied last time, so this time I’ll be honest: whatever I feel like doing. See ya next time!"}, {"post_id": 27341, "ts": "2026-07-12T20:38:11Z", "hours": 5.2464, "text": "Tasks! Confetti! Colors!! Terms CRUD!!!! I’ve added all sorts of things since last update. Colors for courses, task CRUD, basic CRUD for terms, confetti, and so many bug fixes!! Tasks ✅ CRUD is never that hard to implement with this stack, but with tasks, the UI is more of a beast to handle. I wanted it to be more inline then creating courses, for example. We’ve already seen the C in CRUD from last devlog, so here’s the RUD! Everything is handled in a popover rather than a dialog, as it’s a lot cleaner, and for quickly clicking through tasks, a lot easier. Unfortunately, the code is a little messy here as I copied basically the same thing like 3 times. I will probably fix this later? Anyway, pressing “edit” in the popover allows you to edit the title (and thus the due date, priority, URL, and course), as well as the URL in a separate input and a note for the task, which couldn’t be auto-filled from the title bar. How I’ve made it, these two inputs are handled separately from the rest of the task editing, and when you finish editing it, it sends two requests to edit the task: one for the URL and note, and one for everything else. This led to a race condition, only on the client side, that would cause the URL and note request to override the other one, reverting to the previous state. This was an easy fix however, just allowing the dispatch function to edit things with a partial object instead of requiring the full one. Confetti Completing tasks rewards you with confetti! Super simple to implement with the react-confetti library, but it ended up being a little stupid to manage the state properly so it only went off when you clicked. Terms Terms CRUD was simple, however. Since there’s so little to them already, it was simple to make a spot to edit and delete them. I decided to put it in the settings page as that’s the most convenient spot. Bug fixes Other than the ones mentioned above, here are some more bugs I fixed: Terms not starting/ending at 12:00am in _ (time unit) matcher used current time instead of 11:59pm Task sorting was wrong Term popover could clip out of the screen on smaller devices Term timezone issues Next I’ve got a huge list still. Here’s a non-exhaustive one: More due date matchers (day-of-week, month names) Study tools, such as a pomodoro timer and flashcards Making the whole website a PWA, including notifications I’m not excited about the latter or the former, but the 2nd one I think I’ll do next, just because it sounds fun to make."}, {"post_id": 25695, "ts": "2026-07-10T03:43:38Z", "hours": 5.5222, "text": "I spent way too long implementing these features I couldn’t tell you what’s taking so much longer compared to Tungsten, but things are getting done! To-do creation I made a basic flow for creating to-do items (it doesn’t create them yet, I got an optical migraine and had to take a nap), but it has some really cool features! When you create one, all you get is one input as to not clutter things up. What’s cool is you can input a bunch of different things to auto-set some values! There’s 4 different matchers for due dates, that match the following (parenthesis are optional fields): “Tomorrow ((at) time)” “(in) [time] [units] (ago)” “MM/DD(/YYYY) (time)” “HH(:MM)(am/pm)” For the ones where time is optional, it defaults to 11:59pm. This is a heavy oversimplification as the regex selectors are super long and complicated. Weirdly enough, I kind of enjoy writing regex? It’s a fun problem solving problem. You can also auto-fill associated course, priority, and a URL! To associate a course, you simply type “SUB123”, with your courses subject and number, and it will find it for you. Priority is simply “!X”, where X is the priority of this task. It goes all the way to 99 if it’s that important! Meeting Exclusions Buzzword buzzword. You can now remove specific events from the calendar, like if there isn’t class that day. This took way longer than it should’ve to implement, as FullCalendar is stupid and doesn’t implement exclusion dates in their recurrence implementation, only through RRule. That took some wrangling cause the docs on it are a little stupid, and the library threw some stupid errors but it works now. There’s a new column in the database to store these as well. Timezone Issues I hate javascript dates. I hate javascript dates. I hate javascript dates. I hate javascript dates. I hate javascript dates. I hate javascript dates. I hate javascript dates. I hate javascript dates. Somehow, it is simultaneously the most overengineered piece of garbage ever and the least developed part of the language. Many basic features are a complete afterthought, and most of the time, you’re having to some stupid crap just to add time onto a date. Anyway, after I implemented meeting exclusions, I suddenly noticed the one 10am class I had in the calendar was now at 4am… yeah. You wouldn’t believe what my timezone offset is. -6. Sooo I fought that for a while, and as it turns out, FullCalendar tries to help, but really fails miraculously and makes things worse. For example, it “accounted for daylight savings” by moving events back an hour after it ended. That made me very glad that’s not actually how the world works, but it had me questioning it for a second. What’s next??? I’m tired. I don’t know, whatever I get around to implementing tomorrow. Good night!"}, {"post_id": 24990, "ts": "2026-07-08T21:42:12Z", "hours": 5.9419, "text": "I FORGOT TO DEVLOG I added like 10 million things, I went on tangents that took forever, I forgot to make git commits, I forgot to devlog Calendar Syncing I’ve really wanted to experiment with this for a while. The in-app calendar can now fetch events from any ICS URL!! It simply fetches the URL you give it, and displays those events alongside your courses. I made them green for now, but they’ll be configurable later! Additionally, the app exposes an API route that generates an ICS file for all your courses! This way you can easily export your course calendar to other sources like Google Calendar, so you don’t have to input them manually! This took WAY longer than it should’ve, as I was using a website to view the result of the ICS file, and I couldn’t get recurring events to, y’know, recur. I then realized that this was a problem with the viewer I was using, and not my code. I plugged in the URL to the calendar component I’m using and it worked just fine. To-do list I did some work on the to-do lists. Primarily, just displaying them and showing relative due dates. They can each have priority, an attached course, an extra description, etc. I’ll be creating the creation flow for them soon as well. Course Creation Flow Speaking of creation flows… the one for courses is mostly done! I just have to make it so you can add and select terms. I spent a lot of time getting this one right, as I wanted it to be a smooth, easy experience. I think I nailed it, but let me know how I did! Next That’s about all I did this devlog, alongside a million tiny bug fixes. Up next will be finishing the to-do list, that is, if I don’t get distracted."}, {"post_id": 24330, "ts": "2026-07-07T20:49:04Z", "hours": 4.6908, "text": "New Project!! I’ve wanted to build something like this for quite a while, but just didn’t know where to really start. But here we are! I wanted to build a web app that helps with school- tracking classes, assignments, etc. This has shifted into being an app for college students, as, well, I graduated. How to Begin Beginning this project was a struggle. There’s so many features I want to add so I didn’t even know where to start. I decided to make a quick to-do list to lay everything I wanted out. Then, I went for the database schema. This is already 10x more complex than my last project, Tungsten, but I decided upon the same stack for this project, as it’s self-hosted, just like Tungsten. A philosophy I’ve been building with a lot recently is UI first, functionality later , which helped immensely with getting started. However, I need some data! Well that’s easy. I can just use my college class roster! I already have my classes scheduled and can input them temporaily through another typescript file. (The image you see is NOT the same data. The example data file is gitignored.) The UI There’s a couple pieces right now. The “Your Day” section shows all your classes that day and (soon) to-do items. The calendar shows all your classes for the week, as well as tasks and other events from Google Calendar (soon). This also syncs your classes and tasks back to Google Calendar as well. The calendar component took a while to find. Originally, I was going to make my own, but as it turns out, that is really hard. Calendars are just really complex to build. Luckily, I found a library called Full Calendar that does all the hard work. I styled it and made a function to convert my database schema to events, and voila! The database Speaking of database schemas… let’s talk about it! Each user has “Terms”, which is how most colleges split up years. A term (or semester) is typically just one season with a start and end date. That’s how the databse does it too! Each term has all the courses you’re taking in it. Each course has a name, number, and subject. Here’s the tricky part: many courses in most colleges have different days and times they meet, sometimes with different professors or different locations. The database tracks this too! There’s a table called meeting , which describes all the days for a specific meeting time, location, or professor. For example: Class A meets on Tuesdays and Thursdays at 9:00am. This class has one meeting in the db. Class B meets on Mondays and Wednesdays at 1:00pm, but meets at 12:00pm on Fridays. This class has two meetings: MW @ 1, F @ 12. This works really well and translates to calendar events very nicely as well. Up Next The to-do list is next on the list! After that, I’ll work on the google calendar integration as well."}]...
|
Title: Neptune by @DrewRat | Stardance
Devlogs:
N Title: Neptune by @DrewRat | Stardance
Devlogs:
New Project!! I’ve wanted to build something like this for quite a while, but just didn’t know where to really start. But here we are! I wanted to build a web app that helps with school- tracking classes, assignments, etc. This has shifted into being an app for college students, as, well, I graduated. How to Begin Beginning this project was a struggle. There’s so many features I want to add so I didn’t even know where to start. I decided to make a quick to-do list to lay everything I wanted out. Then, I went for the database schema. This is already 10x more complex than my last project, Tungsten, but I decided upon the same stack for this project, as it’s self-hosted, just like Tungsten. A philosophy I’ve been building with a lot recently is UI first, functionality later , which helped immensely with getting started. However, I need some data! Well that’s easy. I can just use my college class roster! I already have my classes scheduled and can input them temporaily through another typescript file. (The image you see is NOT the same data. The example data file is gitignored.) The UI There’s a couple pieces right now. The “Your Day” section shows all your classes that day and (soon) to-do items. The calendar shows all your classes for the week, as well as tasks and other events from Google Calendar (soon). This also syncs your classes and tasks back to Google Calendar as well. The calendar component took a while to find. Originally, I was going to make my own, but as it turns out, that is really hard. Calendars are just really complex to build. Luckily, I found a library called Full Calendar that does all the hard work. I styled it and made a function to convert my database schema to events, and voila! The database Speaking of database schemas… let’s talk about it! Each user has “Terms”, which is how most colleges split up years. A term (or semester) is typically just one season with a start and end date. That’s how the databse does it too! Each term has all the courses you’re taking in it. Each course has a name, number, and subject. Here’s the tricky part: many courses in most colleges have different days and times they meet, sometimes with different professors or different locations. The database tracks this too! There’s a table called meeting , which describes all the days for a specific meeting time, location, or professor. For example: Class A meets on Tuesdays and Thursdays at 9:00am. This class has one meeting in the db. Class B meets on Mondays and Wednesdays at 1:00pm, but meets at 12:00pm on Fridays. This class has two meetings: MW @ 1, F @ 12. This works really well and translates to calendar events very nicely as well. Up Next The to-do list is next on the list! After that, I’ll work on the google calendar integration as well.
I FORGOT TO DEVLOG I added like 10 million things, I went on tangents that took forever, I forgot to make git commits, I forgot to devlog Calendar Syncing I’ve really wanted to experiment with this for a while. The in-app calendar can now fetch events from any ICS URL!! It simply fetches the URL you give it, and displays those events alongside your courses. I made them green for now, but they’ll be configurable later! Additionally, the app exposes an API route that generates an ICS file for all your courses! This way you can easily export your course calendar to other sources like Google Calendar, so you don’t have to input them manually! This took WAY longer than it should’ve, as I was using a website to view the result of the ICS file, and I couldn’t get recurring events to, y’know, recur. I then realized that this was a problem with the viewer I was using, and not my code. I plugged in the URL to the calendar component I’m using and it worked just fine. To-do list I did some work on the to-do lists. Primarily, just displaying them and showing relative due dates. They can each have priority, an attached course, an extra description, etc. I’ll be creating the creation flow for them soon as well. Course Creation Flow Speaking of creation flows… the one for courses is mostly done! I just have to make it so you can add and select terms. I spent a lot of time getting this one right, as I wanted it to be a smooth, easy experience. I think I nailed it, but let me know how I did! Next That’s about all I did this devlog, alongside a million tiny bug fixes. Up next will be finishing the to-do list, that is, if I don’t get distracted.
I spent way too long implementing these features I couldn’t tell you what’s taking so much longer compared to Tungsten, but things are getting done! To-do creation I made a basic flow for creating to-do items (it doesn’t create them yet, I got an optical migraine and had to take a nap), but it has some really cool features! When you create one, all you get is one input as to not clutter things up. What’s cool is you can input a bunch of different things to auto-set some values! There’s 4 different matchers for due dates, that match the following (parenthesis are optional fields): “Tomorrow ((at) time)” “(in) [time] [units] (ago)” “MM/DD(/YYYY) (time)” “HH(:MM)(am/pm)” For the ones where time is optional, it defaults to 11:59pm. This is a heavy oversimplification as the regex selectors are super long and complicated. Weirdly enough, I kind of enjoy writing regex? It’s a fun problem solving problem. You can also auto-fill associated course, priority, and a URL! To associate a course, you simply type “SUB123”, with your courses subject and number, and it will find it for you. Priority is simply “!X”, where X is the priority of this task. It goes all the way to 99 if it’s that important! Meeting Exclusions Buzzword buzzword. You can now remove specific events from the calendar, like if there isn’t class that day. This took way longer than it should’ve to implement, as FullCalendar is stupid and doesn’t implement exclusion dates in their recurrence implementation, only through RRule. That took some wrangling cause the docs on it are a little stupid, and the library threw some stupid errors but it works now. There’s a new column in the database to store these as well. Timezone Issues I hate javascript dates. I hate javascript dates. I hate javascript dates. I hate javascript dates. I hate javascript dates. I hate javascript dates. I hate javascript dates. I hate javascript dates. Somehow, it is simultaneously the most overengineered piece of garbage ever and the least developed part of the language. Many basic features are a complete afterthought, and most of the time, you’re having to some stupid crap just to add time onto a date. Anyway, after I implemented meeting exclusions, I suddenly noticed the one 10am class I had in the calendar was now at 4am… yeah. You wouldn’t believe what my timezone offset is. -6. Sooo I fought that for a while, and as it turns out, FullCalendar tries to help, but really fails miraculously and makes things worse. For example, it “accounted for daylight savings” by moving events back an hour after it ended. That made me very glad that’s not actually how the world works, but it had me questioning it for a second. What’s next??? I’m tired. I don’t know, whatever I get around to implementing tomorrow. Good night!
Tasks! Confetti! Colors!! Terms CRUD!!!! I’ve added all sorts of things since last update. Colors for courses, task CRUD, basic CRUD for terms, confetti, and so many bug fixes!! Tasks ✅ CRUD is never that hard to implement with this stack, but with tasks, the UI is more of a beast to handle. I wanted it to be more inline then creating courses, for example. We’ve already seen the C in CRUD from last devlog, so here’s the RUD! Everything is handled in a popover rather than a dialog, as it’s a lot cleaner, and for quickly clicking through tasks, a lot easier. Unfortunately, the code is a little messy here as I copied basically the same thing like 3 times. I will probably fix this later? Anyway, pressing “edit” in the popover allows you to edit the title (and thus the due date, priority, URL, and course), as well as the URL in a separate input and a note for the task, which couldn’t be auto-filled from the title bar. How I’ve made it, these two inputs are handled separately from the rest of the task editing, and when you finish editing it, it sends two requests to edit the task: one for the URL and note, and one for everything else. This led to a race condition, only on the client side, that would cause the URL and note request to override the other one, reverting to the previous state. This was an easy fix however, just allowing the dispatch function to edit things with a partial object instead of requiring the full one. Confetti Completing tasks rewards you with confetti! Super simple to implement with the react-confetti library, but it ended up being a little stupid to manage the state properly so it only went off when you clicked. Terms Terms CRUD was simple, however. Since there’s so little to them already, it was simple to make a spot to edit and delete them. I decided to put it in the settings page as that’s the most convenient spot. Bug fixes Other than the ones mentioned above, here are some more bugs I fixed: Terms not starting/ending at 12:00am in _ (time unit) matcher used current time instead of 11:59pm Task sorting was wrong Term popover could clip out of the screen on smaller devices Term timezone issues Next I’ve got a huge list still. Here’s a non-exhaustive one: More due date matchers (day-of-week, month names) Study tools, such as a pomodoro timer and flashcards Making the whole website a PWA, including notifications I’m not excited about the latter or the former, but the 2nd one I think I’ll do next, just because it sounds fun to make.
Course colors, Course/meeting editing, and more timezone bugs!! Wow! A devlog of reasonable length! Surely that means it will be shorter right? Kinda, I added a lot of things but it was pretty easy! Calendar colors 🎨 This one was really easy to implement, as the calendar component allows you to specify a border/background color. All I needed to do was add it to the creation modal and boom! I stole the color picker from Filatrack as it’s a good component and I don’t see a reason to make a new one Unfortunately, these colors will not show up in the iCal subscription as iCal doesn’t support colors. Course card view modes The “Today” card at the top can now show you tomorrow and all courses! Once again, super easy to implement, literally just another state and changing what courses are grabbed based on that state. I also fixed a glaring bug where you’d see courses from every term. I’m not sure how I didn’t consider this, but now you’ll only see courses for the current term! Editing courses/meetings This one got a little tricky. The modal is already designed to be used for creation and editing, I just had to implement the latter. Editing courses is no big deal, however; it just changes what function it uses. Its editing meetings that’s a little tricky. You have to make a separate request to edit the meetings that are in the db, create ones that you’ve added, and delete ones you’ve removed. It ended up being relatively simple, but there’s a couple edge cases that could snag ya. Timezone bugs I don’t even know how this one happened. I looked at the calendar when I was working on other things and suddenly realized all my courses were 6 hours ahead of where they should be. iCal events worked fine. I didn’t even change anything in this area so I just subtracted the timezone offset when getting the events for the calendar and called it a day. What’s Next? I totally lied last time, so this time I’ll be honest: whatever I feel like doing. See ya next time!
IM BACK!!! SUPER exciting updates today!!! I just got back from vacation and I have motivation!! LOGO!!!! Neptune has a logo!!! I think it looks really good, I whipped it up in Inkscape in like 20 minutes. You wouldn’t believe what it’s supposed to be! Self hosting!!! This was supoer easy. Since this uses the same stack as Tungsten (which you should totally go check out also), I was able to copy over the dockerfile and docker-compose with minimal changes. However…. Timezone issues!!! Wait…. Yep. There are a lot of edge cases I didn’t think of. As soon as the server and client’s timezones are different, things get stupid. Javascript dates are genuinely one of the worst things I have ever used, I’d even go as far as to say it’s worse than java as a language. Both the ICS calendar import and export, as well as the course times were incorrect by +/- 6 hours (I am in UTC-6, so that explains it) I spent way, WAY longer than I should’ve trying to fix this. It ended up taking like 2 different changes that affected the database as well. Usually I try to make my git commits clean and well-described, but that didn’t last very long here… The best part: it still doesn’t work properly! I don’t know why, but the ICS viewer I’ve been using to test reads the file differently than Google Calendar, which thinks my 10am class is at 4am. Not to mention, Google Calendar only updates your subscribed calendars once every like 6 hours!! So every time I make a change to (hopefully) fix it, I have to wait. Devlog Meta Section Unfortunately I don’t have much else to show for this update… that was all I worked on for 2 hours. I know. Anyway, I hope to add some more real features very soon!
New schedule look, smart greeting, tasks in the calendar, and more timezone fun!!! I spent a bunch more time procrastinating devlogging… so here’s a really long one! New schedule look It only changed a little, but it’s a lot easier to read and accommodates smaller event text a lot better. For events shorter than 30m, it leaves out the end time, and the title simply clips off if there isn’t space. Smart Greeting + new header! The header has a new look! The main feature here is the smart greeting, which shows you your upcoming classes/tasks (TODO) at a glance. It wasn’t crazy hard to implement this, just a bunch of conditions. It shows you only the upcoming classes on days you have classes, and the classes you have tomorrow if you’re done with classes for the day or have none. Past that, it doesn’t say anything. Tasks in the calendar This was a fun, quick adventure. I wanted to make sure tasks that were due at 11:59pm (the default) show up without having to scroll, so I stuck those ones in the all day section, to indicate you should get it done by the end of the day. Additionally, I added the tasks to iCal syncing via the VTODO spec. I implemented it in a hacky way since the library I was using didn’t support it, but it worked. Unfortunately, that’s when I learned that almost no calendar app actually looks at them. Yep. Google calendar, Apple calendar, none of them care about it. I’m going to implement them as normal events and call it a day. Timezone fun! Here we go again and for hopefully the last time. I was scrolling through the calendar, as ya do, and noticed a sudden shift around November, where all the classes would shift backward an hour. This could only mean one thing: daylight savings. I don’t even know how I fixed this one. I hacked around with it for a couple hours, and it started working again. This caused the iCal syncing to do the same thing, which took longer to fix. I am so tired. Javascript dates might actually be the worst thing I have ever worked with
PWA support, study tools, and many small fixes! Once again I have procrastinated devlogging. I have to start working a little harder though as my deadline for this project is in 9 days! (I’m moving out and won’t have time to work on this anymore so I want to get it done before then) PWA support This was super simple. I basically just stole the config from Filatrack, and it worked great. The hardest part was actually making the UI mobile-friendly (I hate mobile-first development) Tailwind does device-based styles really weird and lowkey a little stupid, forcing you into mobile-first development, even though that’s dumb for what this project is. Study Tools!! This is the last major feature I’ll be adding before shipping. The tools include a pomodoro timer, flashcards, and quizzes. These all will be part of the database as well. So far, I’ve completed the pomodoro timer! It ended up really simple but really effective. You get to choose how long each work/break is, tasks to focus on, etc. You can pause the timer, hide it, and skip ahead to the next break if you wish. (I’ll be sure to add some confirmation to this so you don’t just skip work time!) The app also requests notification permission so it can send you notifications when it’s time for a break or time to get back to work. I’d also like to add a couple misc. QoL things like optional water/posture reminders and distraction prevention (telling you to get back to work if you get on a distracting website). When you finish, it gives you a quick overview of what you got done and then logs a study session to the database. Not entirely sure what I’ll use them for other than statistics for yourself, but thought I’d add it! SUPRISE: Timezone bugs! OK, I swear, this time is the last time I’ll have to fix timezone bugs. It was daylight savings again. I did some stupid stuff and FINALLY got it working again. This time I did some jank involving a function that checks if a day is in daylight savings and then just adjusting the hour so it’s correct. I know, it’s really dumb, but it works, so is it really? Small things Multiple bug fixes here and there that make it easier to use. The time and date are also shown on the home page now! Next up… …flashcards! This one I’m pretty excited about and shouldn’t be too hard!
SHIPPING TIME!!! This is a little earlier than I expected to ship, but I think it’s about ready! (and I want to start working on other things) Flashcard Importing and Reordering You can now import flashcards! One flashcard per line, with each line having two sides separated by a delimiter of your choice. I suppose I should also add exporting, but I can always do that later. (I don’t think many other people will actually use this app) I skipped drag and drop for reordering as Tungsten showed me how much of a pain in the a– that can be. You get an up arrow and down arrow, that’s it. Settings Redesign Only slightly. I went for a look that matches the dashboard a little better and makes the UI easier to read. The save button was tricky to place; as putting it near the settings it actually works for made it blend in too much. Term editing doesn’t require saving, but this is the best place to put the button. I also added the log out button right under this! Demo The app now has a proper demo mode. I think I implemented this one a little cleaner than Tungsten, not requiring a user with ID 0 and a specific password to be in the DB. It just fakes you having a session/user and works off of that. Bugs, bugs galore! Oh man I fixed so many. I’ve been putting off a lot of these and some I just discovered as well. The big one was that meeting exclusions just weren’t working. It ended up being an issue with code I changed weeks ago, that I thought wouldn’t affect very much. Another bug was task due dates were just incorrect. You type “tomorrow” and it is due 2 days in advance. You wouldn’t believe what caused this one, and say it with me: timezones!!!!! And that’s all! This has been one of the most fun apps to develop imo (minus all the timezone issues, those were the worst thing I have ever done), and I hope you find some use of this project!
Ships:
Neptune is a self-hosted college life management tool. This ship includes a demo page to try it out before self-hosting. Some features may not be available. I hope you like it!...
|
1793098315.0217292
|
1793184715.0217292
|
|
66265
|
Manhunt Mod by @aayushbashyal92 | Stardance
|
aayushbashyal92
|
1
|
41.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T15:48:41Z", "hours": 41.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Manhunt — A Minecraft Fabric Mod Manhunt is a Minecraft mod I made to bring the classic Runner vs. Hunters game mode into Minecraft with my own features and systems. The idea is simple: one player becomes the Runner and tries to defeat the Ender Dragon, while the Hunters try to find and stop them before they succeed. I wanted to make it easier to play Manhunt with friends without having to manage everything manually. I built features like a player selection screen, different player roles, a tracking compass for Hunters, a match timer HUD, and spectator controls. The mod also handles match rules, including when the chase begins and how the game ends. Spectators can switch between players to follow the action, while the Runner and Hunters focus on their own objectives. I built this project using Java and the Fabric modding API. While working on it, I learned more about Minecraft’s systems, user interfaces, networking, game logic, and how different parts of a mod work together. Debugging errors and testing features in-game were also important parts of the process. This project started as a way for me to learn Minecraft modding by making something I would actually enjoy playing. I’m still learning and improving my skills, and this mod is a step forward in understanding how to turn an idea into a working game experience.", "repo": "https://github.com/Aayush-Bashyal/Manhunt", "demo": "https://www.curseforge.com/minecraft/mc-mods/manhunt-finalchase"}]...
|
[{"post_id": 80060, "ts": "202 [{"post_id": 80060, "ts": "2026-10-16T03:36:50Z", "hours": 3.455, "text": "the manhunt mod is being polished and is now ready to publish after a final test"}, {"post_id": 79550, "ts": "2026-10-14T15:51:11Z", "hours": 6.2919, "text": "Today, I continued working on my Minecraft Manhunt mod. I reviewed the main game code, tracker, and commands to check the existing features and find possible bugs. I confirmed that the automatic start system already checks the 15-block distance between the runner and hunters. I also worked on improving the manual start command so the game cannot start without a selected runner and at least one hunter. I’m reviewing the code file by file to make the mod more stable and fix any remaining issues."}, {"post_id": 79260, "ts": "2026-10-13T07:31:08Z", "hours": 1.9378, "text": "Today, I worked on saving the selected roles in the Manhunt mod. I created payloads to request and send the saved runner, hunters, and spectators between the server and client. I also added the networking code so that when the admin reopens the Player Selection screen, the previously assigned roles can be loaded again."}, {"post_id": 78384, "ts": "2026-10-10T16:42:29Z", "hours": 5.2286, "text": "Today, I continued working on my Minecraft Manhunt mod, focusing on the player selection UI and spectator system! Player Selection UI Improved the customized player selection screen.Organized the Runner, Hunter, and Spectator roles into separate sections.Worked on making the role selection interface cleaner and easier to use.Added support for selecting spectators alongside Runners and Hunters. Spectator SystemCreated a spectator target manager to track the Runner and Hunters.Added [ and ] keybindings to switch between players’ POVs.Updated the networking system to send player targets to spectators. Current ProgressI’m fixing a duplicate packet registration issue before testing the spectator system in-game.One step closer to making the Manhunt experience more polished and enjoyable! #Minecraft #FabricMC #Java #MinecraftModding #HackClub #GameDev"}, {"post_id": 77842, "ts": "2026-10-08T14:25:14Z", "hours": 0.5203, "text": "Today I continued improving the Manhunt admin system and GUI. I added an admin-only Player Selection button to the pause menu and connected it to the player selection screen. I also worked on matching the button’s size and position with the vanilla Minecraft pause-menu buttons. I spent some time working with Mixins and Minecraft 26.1’s GUI methods to get everything working correctly."}, {"post_id": 77616, "ts": "2026-10-07T17:22:02Z", "hours": 2.5767, "text": "Today I worked on improving the Manhunt mod’s admin system and GUI. I added admin status networking so the client knows whether the current player is an admin. I also made the Player Selection button appear only for admins on the Manhunt start screen. I started working on adding a Player Selection button to the Minecraft pause menu, but I still need to finish the mixin part. and i have a lot more to do"}, {"post_id": 77323, "ts": "2026-10-06T15:21:24Z", "hours": 1.5125, "text": "Solving all the problems and errors and making the mod fully functional."}, {"post_id": 76654, "ts": "2026-10-04T08:36:34Z", "hours": 2.8006, "text": "Today I worked on improving my Minecraft Manhunt mod.I fixed the compass tracking when the runner changes dimensions and made it track the portal properly. I also fixed the compass after hunter respawns and made it disappear when the game ends.I improved the HUD to make it smaller and cleaner, showing only the Manhunt title and timer.Also improved /manhunt status to show the runner, hunters, time, winner, and final time with better formatting.Slowly getting the mod closer to being fully playable! 🚀"}, {"post_id": 76296, "ts": "2026-10-03T03:23:46Z", "hours": 1.5119, "text": "I worked mainly on the player selection system for my Manhunt mod.I improved the starting GUI and made the flow more organized:Added the “LET’S PLAY MANHUNT” starting screen.Added Open LAN World and Start Manhunt buttons.Made the LAN screen return to the player selection screen after opening the world.Created a new Select Players screen.Added separate RUNNER and HUNTERS sections.Players can now be selected using checkbox-style buttons like [ ] and [✓].Only one player can be selected as the Runner.Multiple players can be selected as Hunters.A selected Runner cannot also be selected as a Hunter.Added the ability to unselect the Runner or Hunters.Made the player list update when players join or leave.Started converting the selected player names into their UUIDs.Created the ManhuntRoleSelectionPayload to prepare for sending the selected roles from the client to the server.The next step is connecting this selection system to the server so the selected Runner and Hunters actually become the roles used by the Manhunt game.Slowly getting the full Manhunt system together! 🚀"}, {"post_id": 75923, "ts": "2026-10-01T16:48:53Z", "hours": 1.5508, "text": "Today I worked mainly on the GUI system for my Minecraft Manhunt mod.What I worked onAdded the “LET’S PLAY MANHUNT” starting screen.Added an OPEN LAN WORLD button so the host can open the world to other players.Added a START MANHUNT button that opens the player selection screen.Created a new SELECT PLAYERS GUI.Designed the player selection screen with a centered panel and separate RUNNER and HUNTERS sections.Improved the GUI layout and changed the player buttons to a smaller size so they don’t take up too much space.Added detection of players currently connected to the world using the client connection.Started implementing runner selection by turning connected player names into clickable buttons.Added a selectedRunner variable to keep track of the selected runner.Tested the GUI and confirmed that clicking a player can register them as the selected runner.Cleaned up some of the selection code and layout.Current GUI flowMinecraft World ↓ LET’S PLAY MANHUNT ↓ [ OPEN LAN WORLD ] [ START MANHUNT ] ↓ SELECT PLAYERS ↓ RUNNER [ Player ] HUNTERS [ Player ] [ Player ] [ DONE ]The GUI is still being developed. The next step is to properly separate Runner selection from Hunter selection, allow multiple hunters, and then send the selected roles to the server to actually start the Manhunt.Overall, today was mostly about building the foundation of the custom Manhunt GUI and getting player selection started."}, {"post_id": 75775, "ts": "2026-10-01T02:09:42Z", "hours": 1.5614, "text": "i did all the fixing work that my mod was missing . i figured out the problems and sloved them"}, {"post_id": 75076, "ts": "2026-09-29T02:28:59Z", "hours": 12.2078, "text": "Manhunt Mod where i have made Manhunt simpler and more interesting"}]...
|
Title: Manhunt Mod by @aayushbashyal92 | Stardance Title: Manhunt Mod by @aayushbashyal92 | Stardance
Devlogs:
Manhunt Mod where i have made Manhunt simpler and more interesting
i did all the fixing work that my mod was missing . i figured out the problems and sloved them
Today I worked mainly on the GUI system for my Minecraft Manhunt mod.What I worked onAdded the “LET’S PLAY MANHUNT” starting screen.Added an OPEN LAN WORLD button so the host can open the world to other players.Added a START MANHUNT button that opens the player selection screen.Created a new SELECT PLAYERS GUI.Designed the player selection screen with a centered panel and separate RUNNER and HUNTERS sections.Improved the GUI layout and changed the player buttons to a smaller size so they don’t take up too much space.Added detection of players currently connected to the world using the client connection.Started implementing runner selection by turning connected player names into clickable buttons.Added a selectedRunner variable to keep track of the selected runner.Tested the GUI and confirmed that clicking a player can register them as the selected runner.Cleaned up some of the selection code and layout.Current GUI flowMinecraft World ↓ LET’S PLAY MANHUNT ↓ [ OPEN LAN WORLD ] [ START MANHUNT ] ↓ SELECT PLAYERS ↓ RUNNER [ Player ] HUNTERS [ Player ] [ Player ] [ DONE ]The GUI is still being developed. The next step is to properly separate Runner selection from Hunter selection, allow multiple hunters, and then send the selected roles to the server to actually start the Manhunt.Overall, today was mostly about building the foundation of the custom Manhunt GUI and getting player selection started.
I worked mainly on the player selection system for my Manhunt mod.I improved the starting GUI and made the flow more organized:Added the “LET’S PLAY MANHUNT” starting screen.Added Open LAN World and Start Manhunt buttons.Made the LAN screen return to the player selection screen after opening the world.Created a new Select Players screen.Added separate RUNNER and HUNTERS sections.Players can now be selected using checkbox-style buttons like [ ] and [✓].Only one player can be selected as the Runner.Multiple players can be selected as Hunters.A selected Runner cannot also be selected as a Hunter.Added the ability to unselect the Runner or Hunters.Made the player list update when players join or leave.Started converting the selected player names into their UUIDs.Created the ManhuntRoleSelectionPayload to prepare for sending the selected roles from the client to the server.The next step is connecting this selection system to the server so the selected Runner and Hunters actually become the roles used by the Manhunt game.Slowly getting the full Manhunt system together! 🚀
Today I worked on improving my Minecraft Manhunt mod.I fixed the compass tracking when the runner changes dimensions and made it track the portal properly. I also fixed the compass after hunter respawns and made it disappear when the game ends.I improved the HUD to make it smaller and cleaner, showing only the Manhunt title and timer.Also improved /manhunt status to show the runner, hunters, time, winner, and final time with better formatting.Slowly getting the mod closer to being fully playable! 🚀
Solving all the problems and errors and making the mod fully functional.
Today I worked on improving the Manhunt mod’s admin system and GUI. I added admin status networking so the client knows whether the current player is an admin. I also made the Player Selection button appear only for admins on the Manhunt start screen. I started working on adding a Player Selection button to the Minecraft pause menu, but I still need to finish the mixin part. and i have a lot more to do
Today I continued improving the Manhunt admin system and GUI. I added an admin-only Player Selection button to the pause menu and connected it to the player selection screen. I also worked on matching the button’s size and position with the vanilla Minecraft pause-menu buttons. I spent some time working with Mixins and Minecraft 26.1’s GUI methods to get everything working correctly.
Today, I continued working on my Minecraft Manhunt mod, focusing on the player selection UI and spectator system! Player Selection UI Improved the customized player selection screen.Organized the Runner, Hunter, and Spectator roles into separate sections.Worked on making the role selection interface cleaner and easier to use.Added support for selecting spectators alongside Runners and Hunters. Spectator SystemCreated a spectator target manager to track the Runner and Hunters.Added [ and ] keybindings to switch between players’ POVs.Updated the networking system to send player targets to spectators. Current ProgressI’m fixing a duplicate packet registration issue before testing the spectator system in-game.One step closer to making the Manhunt experience more polished and enjoyable! #Minecraft #FabricMC #Java #MinecraftModding #HackClub #GameDev
Today, I worked on saving the selected roles in the Manhunt mod. I created payloads to request and send the saved runner, hunters, and spectators between the server and client. I also added the networking code so that when the admin reopens the Player Selection screen, the previously assigned roles can be loaded again.
Today, I continued working on my Minecraft Manhunt mod. I reviewed the main game code, tracker, and commands to check the existing features and find possible bugs. I confirmed that the automatic start system already checks the 15-block distance between the runner and hunters. I also worked on improving the manual start command so the game cannot start without a selected runner and at least one hunter. I’m reviewing the code file by file to make the mod more stable and fix any remaining issues.
the manhunt mod is being polished and is now ready to publish after a final test
Ships:
Manhunt — A Minecraft Fabric Mod Manhunt is a Minecraft mod I made to bring the classic Runner vs. Hunters game mode into Minecraft with my own features and systems. The idea is simple: one player becomes the Runner and tries to defeat the Ender Dragon, while the Hunters try to find and stop them before they succeed. I wanted to make it easier to play Manhunt with friends without having to manage everything manually. I built features like a player selection screen, different player roles, a tracking compass for Hunters, a match timer HUD, and spectator controls. The mod also handles match rules, including when the chase begins and how the game ends. Spectators can switch between players to follow the action, while the Runner and Hunters focus on their own objectives. I built this project using Java and the Fabric modding API. While working on it, I learned more about Minecraft’s systems, user interfaces, networking, game logic, and how different parts of a mod work together. Debugging errors and testing features in-game were also important parts of the process. This project started as a way for me to learn Minecraft modding by making something I would actually enjoy playing. I’m still learning and improving my skills, and this mod is a step forward in understanding how to turn an idea into a working game experience....
|
1793098120.8393428
|
1793184520.8393428
|
|
18084
|
Powerblock Games by @Powerblock | Stardance
|
Powerblock
|
1
|
40.95
|
580
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-15T21:37:29Z", "hours": 40.0, "multiplier": 17.07, "payout": 580, "blessing": "neutral", "text": "I FINALLY finished my Game Distribution and loading platform: Powerblock Games Here’s what it is: You can play other users games easily, just search and click Approved devs can publish their own games using our own tools Works in the Web If you know Godot, I encourage you to make a game!", "repo": "https://github.com/Powerblock2000/PowerblockGames", "demo": "https://games.powerblock2000.com/"}]...
|
[{"post_id": 31366, "ts": "202 [{"post_id": 31366, "ts": "2026-07-19T18:08:02Z", "hours": 0.9514, "text": "EDIT: The server was down for the last day or 2 but should be up now EDIT: The game should be working now Game is currently not working because nest is down or at least not working for me. Once this is fixed I should have it back up and running within a few hours!"}, {"post_id": 29060, "ts": "2026-07-15T18:28:38Z", "hours": 1.4111, "text": "Working on migrating all server code to nest. SO CLOSE! Ugly but I dont really care ¯ ( ツ)/¯"}, {"post_id": 28614, "ts": "2026-07-14T23:35:58Z", "hours": 1.4769, "text": "SOOO CLOSE TO BEING FINISHED JUST POLISH LEFT not much else 🤷♂️"}, {"post_id": 28459, "ts": "2026-07-14T18:27:22Z", "hours": 1.1892, "text": "FINALLY added being able to open games ALMOST DONE with this"}, {"post_id": 28386, "ts": "2026-07-14T16:44:47Z", "hours": 5.2564, "text": "Added a search feature and you can now request developer access!!!!"}, {"post_id": 21841, "ts": "2026-07-03T23:44:19Z", "hours": 3.1942, "text": "Finished Hackclub auth, also finished universal games list so people can search for games."}, {"post_id": 21119, "ts": "2026-07-02T22:22:49Z", "hours": 7.4269, "text": "Still trying to figure out nakama custom auth… I HATE THIS"}, {"post_id": 17793, "ts": "2026-06-28T18:39:16Z", "hours": 4.1983, "text": "Finally finished Dev panel. Almost done with UX. Working on the developer Godot plugin so they can make games and access Nakama features. Then I just have to work on downloading and loading games on the client!"}, {"post_id": 15188, "ts": "2026-06-24T18:06:10Z", "hours": 5.1853, "text": "Created a dev panel This will allow verified devs to publish their games to the whole platform You will be able to: Select your .pck (or .zip) file to upload and put onto the platform, check analytics, update your game, and more."}, {"post_id": 13254, "ts": "2026-06-21T18:20:49Z", "hours": 2.12, "text": "Finished friends tab FINALLY! Features: Add friends Accept requests Remove friends Cancel requests Everything you’d expect! This took SOO LONG!!!! I hope you like it :)"}, {"post_id": 10988, "ts": "2026-06-18T00:34:05Z", "hours": 1.0689, "text": "Working on settings rn, starting w/ frontend Current page ideas: Admin panel (me only) Privacy settings Video settings audio settings account settings so its looking kinda empty :( Also got a small menu working with different username sizes👍"}, {"post_id": 10765, "ts": "2026-06-17T17:48:18Z", "hours": 1.6572, "text": "Working on main menu, just got reviving an image from a Nakama storage object working (don’t worry these are just test images)"}, {"post_id": 10132, "ts": "2026-06-16T18:54:42Z", "hours": 1.3383, "text": "Finished onboarding, pretty simple, just updating some variables but it looks cool :)"}, {"post_id": 10059, "ts": "2026-06-16T17:10:51Z", "hours": 2.3383, "text": "Finally got authentication with Nakama working, at first, I have just had to fix SOOO many bugs where it would try to use an invalid session ID. Error handling is also a NIGHTMARE. But I think I got it working. (video shows auth via session tokens)"}, {"post_id": 8368, "ts": "2026-06-13T22:16:33Z", "hours": 2.0797, "text": "Working on authentication (it sucks)"}]...
|
Title: Powerblock Games by @Powerblock | Stardance Title: Powerblock Games by @Powerblock | Stardance
Devlogs:
Working on authentication (it sucks)
Finally got authentication with Nakama working, at first, I have just had to fix SOOO many bugs where it would try to use an invalid session ID. Error handling is also a NIGHTMARE. But I think I got it working. (video shows auth via session tokens)
Finished onboarding, pretty simple, just updating some variables but it looks cool :)
Working on main menu, just got reviving an image from a Nakama storage object working (don’t worry these are just test images)
Working on settings rn, starting w/ frontend Current page ideas: Admin panel (me only) Privacy settings Video settings audio settings account settings so its looking kinda empty :( Also got a small menu working with different username sizes👍
Finished friends tab FINALLY! Features: Add friends Accept requests Remove friends Cancel requests Everything you’d expect! This took SOO LONG!!!! I hope you like it :)
Created a dev panel This will allow verified devs to publish their games to the whole platform You will be able to: Select your .pck (or .zip) file to upload and put onto the platform, check analytics, update your game, and more.
Finally finished Dev panel. Almost done with UX. Working on the developer Godot plugin so they can make games and access Nakama features. Then I just have to work on downloading and loading games on the client!
Still trying to figure out nakama custom auth… I HATE THIS
Finished Hackclub auth, also finished universal games list so people can search for games.
Added a search feature and you can now request developer access!!!!
FINALLY added being able to open games ALMOST DONE with this
SOOO CLOSE TO BEING FINISHED JUST POLISH LEFT not much else 🤷♂️
Working on migrating all server code to nest. SO CLOSE! Ugly but I dont really care ¯ ( ツ)/¯
EDIT: The server was down for the last day or 2 but should be up now EDIT: The game should be working now Game is currently not working because nest is down or at least not working for me. Once this is fixed I should have it back up and running within a few hours!
Ships:
I FINALLY finished my Game Distribution and loading platform: Powerblock Games Here’s what it is: You can play other users games easily, just search and click Approved devs can publish their own games using our own tools Works in the Web If you know Godot, I encourage you to make a game!...
|
1793120102.5902307
|
1793206502.5902307
|
|
38690
|
Pipasso | An Auto Drawing Bot by @Dragon | Stardan Pipasso | An Auto Drawing Bot by @Dragon | Stardance...
|
Dragon
|
0
|
40.9
|
0
|
[]
|
[{"post_id": 48266, "ts": "202 [{"post_id": 48266, "ts": "2026-08-16T15:55:07Z", "hours": 1.8519, "text": "Devlog 23 The new paths looked good in code, but moving a real mouse along pixel steps can still look rough. I spent time checking that the automation engine could follow those close-together points safely. What I did Updated the mouse engine to expand longer point-to-point moves into safe drag steps. Checked pause, stop, and mouse-button release behaviour with continuous paths. Updated the draw-style controls and help text so Continuous is clearly the normal choice. Kept the live preview and placement ghost matched to the same processed mask. Current result Continuous paths are ready for real cursor automation. The output stays faithful to the source mask instead of drawing through empty areas."}, {"post_id": 48178, "ts": "2026-08-16T13:59:46Z", "hours": 2.0469, "text": "Devlog 22 So I was thinking: if every dark pixel is part of a little map, the cursor should be able to walk through that map without taking shortcuts through the white background. That became the new continuous drawing style. What I did Added a Continuous draw pattern and made it the default. Grouped ink pixels into connected regions. Used a depth-first walk to make long, pixel-adjacent pen paths. Let paths backtrack over already-drawn pixels instead of lifting the pen or crossing blank space. Kept larger connected shapes first so the drawing starts with the main details. Current result The bot can draw connected regions as unbroken, human-like strokes. There are no skipped scan lines in Continuous mode. The original fill patterns are still available for shading-style drawings."}, {"post_id": 46942, "ts": "2026-08-14T14:43:47Z", "hours": 1.6844, "text": "Devlog 21 I watched the bot draw and finally noticed why it looked a bit like a printer instead of a person: it was doing separate scan lines with spaces between them. It was technically drawing the right shapes, but the movement did not feel right. What I did Looked at how the fill paths were being created. Kept the older horizontal, vertical, and random scanline styles as optional faster modes. Planned a new default that would stay on real image pixels instead of jumping between rows. Current result I understood that the problem was the path algorithm, not the mouse speed. The next task was to make a proper continuous tracer."}, {"post_id": 46421, "ts": "2026-08-13T16:45:27Z", "hours": 1.9192, "text": "Devlog 20 The final part was testing with different pictures and fixing the little problems that only show up when you actually use the program. Then I wrote the README so future-me knows what all of this does. What I did Tested line-art, threshold, and colour-group paths with sample images. Checked placement, cancellation, stop behaviour, and cursor release. Added installation, usage, safety, and limitation notes to the README. Listed dependencies in requirements.txt . Current result A working AutoDraw desktop project with documented setup and safety guidance. Plenty of future ideas, but a complete usable version now."}, {"post_id": 45167, "ts": "2026-08-11T14:14:03Z", "hours": 1.5628, "text": "Devlog 19 I realised most people would double-click the app, not run commands. A console window popping up behind it made it feel unfinished. What I did Added main.pyw for no-console Windows launching. Guarded console output for environments without stdout/stderr. Checked the project can also be packaged with PyInstaller. Current result The project is closer to something a normal user can open directly."}, {"post_id": 44683, "ts": "2026-08-10T16:40:31Z", "hours": 1.7878, "text": "Devlog 18 By now it worked, but the controls felt scattered. I spent this session making it feel more like a small Windows utility than a school experiment. What I did Organised controls into Settings, Thresholding, and Action sections. Added labels for interval, click delay, luminance, and draw pattern. Improved the image and threshold previews. Current result The main workflow is easier to understand at a glance."}, {"post_id": 42588, "ts": "2026-08-07T12:32:51Z", "hours": 2.4092, "text": "Devlog 17 The bot can’t magically swap the pen colour in every app, so I made the program honest about that limitation instead of pretending it was solved. What I did Added automatic pauses between colour groups. Made an always-on-top colour notice with an RGB swatch. Added continue and stop controls for each layer. Current result Multi-colour mode guides the user through manual pen changes."}, {"post_id": 41977, "ts": "2026-08-06T14:48:48Z", "hours": 1.7783, "text": "Devlog 16 Then I wondered if it could do more than black lines. I experimented with grouping similar colours, even though it makes the workflow more complicated. What I did Added k-means colour clustering. Ordered groups from dark to light. Generated fill paths for each colour group. Current result The processing engine can split an image into separate colour layers."}, {"post_id": 41194, "ts": "2026-08-05T08:08:30Z", "hours": 1.5864, "text": "Devlog 15 I noticed some images looked better depending on how they were filled. That became a good excuse to add different drawing patterns. What I did Added horizontal scanline filling. Reused the same logic for vertical strokes. Added a random mode that shuffles and sometimes reverses strokes. Current result The user can choose how the drawing progresses without changing the final ink mask."}, {"post_id": 41172, "ts": "2026-08-05T06:32:42Z", "hours": 1.8778, "text": "Devlog 14 Drawing individual pixels was obviously not going to be practical. I changed the mask into longer strokes, one run of pixels at a time. What I did Found continuous runs of ink pixels in each scanline. Converted each run into one two-point stroke. Used zig-zag ordering on alternate rows to reduce travel. Added a fill-spacing setting. Current result Threshold drawings are much faster and smoother than pixel-by-pixel drawing. [!NOTE] The image shows how it used to draw and now how it draws, the drawing is still kind of wobbly, will keep adjusting till its flawless"}, {"post_id": 40841, "ts": "2026-08-04T16:59:46Z", "hours": 2.3481, "text": "Devlog 13 Edge detection looked cool, but it sometimes missed things or made weird extra details. I tried a simpler idea: draw only pixels within a brightness range. What I did Added min/max luminance settings. Created a black-and-white ink mask from the selected range. Made a live threshold preview in the GUI. Current result Users can choose which brightness levels become ink. The result is easier to tune for simple images."}, {"post_id": 39993, "ts": "2026-08-03T10:48:42Z", "hours": 1.81, "text": "Devlog 12 I wanted a way to know whether the drawing would land in the right place before the mouse started moving. So I made a little ghost version follow the cursor. What I did Captured a screenshot behind the placement overlay. Displayed a transparent processed-image preview under the cursor. Added an outlined bounding box to make the size easier to notice. Current result Placement is visual instead of a blind click."}, {"post_id": 38252, "ts": "2026-07-31T15:34:48Z", "hours": 1.7439, "text": "Devlog 11 At first I was typing coordinates, which was annoying and easy to get wrong. A click-to-place workflow felt much more natural. What I did Added a full-screen crosshair positioning window. Captured the next left-click as the drawing’s top-left origin. Added Escape cancellation before drawing begins. Current result The user can point at a canvas and place the drawing directly."}, {"post_id": 37767, "ts": "2026-07-30T18:01:59Z", "hours": 1.6058, "text": "Devlog 10 I really did not want a bug to leave the mouse holding down forever. This session was mostly about making failure less stressful. What I did Added stop, pause, and resume state handling. Ensured the mouse button is released on completion, stop, or error. Enabled PyAutoGUI’s corner fail-safe. Started wiring an Esc-key emergency stop. Current result The bot has multiple ways to stop safely. Pausing mid-stroke no longer risks a stuck drag."}, {"post_id": 37157, "ts": "2026-07-29T17:33:23Z", "hours": 3.7783, "text": "Devlog 08 and 09 Devlog 08 This was the slightly scary part: allowing the project to control the real cursor. I tested on a safe blank drawing area, with my hand ready to stop it. What I did Added PyAutoGUI mouse movement and mouse-down/mouse-up actions. Translated local canvas points into screen coordinates. Added adjustable movement, click, and gap delays. Current result A simple path can be drawn using real mouse input. Timing is configurable instead of hard-coded. Devlog 09 I clicked draw and the whole window froze while the mouse worked. It wasn’t technically broken, but it felt broken. That sent me down the threading rabbit hole. What I did Moved drawing work to a background thread. Added start, progress, and finished callbacks. Kept GUI actions on the interface side of the program. Current result The interface stays responsive while automation is running."}, {"post_id": 36845, "ts": "2026-07-29T05:06:14Z", "hours": 1.7694, "text": "Devlog 07 My first path order was basically random, and the cursor would bounce around like it had too much coffee. I made a simple nearest-neighbour ordering system to calm it down. What I did Measured distance between path ends. Ordered contours by the closest next path. Reversed paths when approaching their end was shorter. Current result The cursor should spend less time travelling between separate strokes. Line drawings feel more intentional."}, {"post_id": 35858, "ts": "2026-07-27T15:50:26Z", "hours": 1.9178, "text": "Devlog 06 Edges are still just pixels, though. I had to figure out how to make them into actual strokes that a mouse could follow without constantly clicking every single point. What I did Found contours from the edge image. Converted contours into lists of (x, y) points. Simplified overly detailed paths and ignored tiny unusable contours. Added PathGroup so related strokes can travel together. Patched some parts of image rendering issue mentioned in the 5th devlog , so it at least works. Current result The processor now produces drawable paths, not only a black-and-white image."}, {"post_id": 35536, "ts": "2026-07-27T01:16:32Z", "hours": 2.2169, "text": "Devlog 04 and 05 Devlog 04 I added an image preview, then noticed a problem: the original picture and the drawing area could have different shapes. A wide image was getting squished, which looked terrible. What I did Added a preview area to the interface. Resized images while keeping their aspect ratio. Letterboxed them on a white canvas so the processing area stays consistent. Current result Images fit the drawing canvas without stretching. The preview is much closer to what the bot will use. Devlog 05 So I was thinking that drawing every pixel would take forever. I tried edge detection instead, because an outline is often enough to recognise a picture. What I did Added OpenCV and converted images to grayscale. Used blur plus Canny edge detection to find visible outlines. Saved the generated edge image for previewing and debugging. Had a lot of problems with the back end when converting PNG / SVG Current result The app can turn an image into line-art data. Some rendering issues when using a PNG or a SVG I can see why some pictures work better than others. (1st Image is the gray scale version of , the 2nd image)"}, {"post_id": 34685, "ts": "2026-07-25T16:29:03Z", "hours": 1.9825, "text": "Devlog 03 The next question was, “Can it even open the kind of images I use?” I used Pillow because it made loading and converting images much less scary. What I did Added a file picker for image files. Loaded images with Pillow and converted them to RGB. Put the image-loading work into image_processor.py instead of mixing it into the GUI. Current result Users can choose an image from their computer. The program has a separate place for image-related code."}, {"post_id": 34055, "ts": "2026-07-24T14:45:34Z", "hours": 1.7711, "text": "Devlog 02 I started with the least exciting but most reassuring thing: making an actual window appear. Seeing a blank app on screen made the project feel real. What I did Set up main.py to start the program. Created a basic Tkinter app shell. Added a title, a simple layout, and a place for image controls. Current result The app launches without needing a terminal-focused workflow. There is a foundation to build the interface onto."}, {"post_id": 33523, "ts": "2026-07-23T15:29:11Z", "hours": 1.4511, "text": "Devlog 01 — The idea So I was thinking: what if I could give a program a picture and have it draw it with my mouse? It sounded simple at first, but then I realised the computer needs a list of tiny movements, not just an image. What I did Defined the goal: load an image, turn it into strokes, and reproduce them on screen. Chose Python because I already knew enough to experiment quickly. Picked Tkinter for the desktop window and wrote down the main parts the project would need. Current result A clear plan instead of just “make a drawing bot.” The first rough project folder and entry-point idea."}]...
|
Title: Pipasso | An Auto Drawing Bot by @Dragon | Title: Pipasso | An Auto Drawing Bot by @Dragon | Stardance
Devlogs:
Devlog 01 — The idea So I was thinking: what if I could give a program a picture and have it draw it with my mouse? It sounded simple at first, but then I realised the computer needs a list of tiny movements, not just an image. What I did Defined the goal: load an image, turn it into strokes, and reproduce them on screen. Chose Python because I already knew enough to experiment quickly. Picked Tkinter for the desktop window and wrote down the main parts the project would need. Current result A clear plan instead of just “make a drawing bot.” The first rough project folder and entry-point idea.
Devlog 02 I started with the least exciting but most reassuring thing: making an actual window appear. Seeing a blank app on screen made the project feel real. What I did Set up main.py to start the program. Created a basic Tkinter app shell. Added a title, a simple layout, and a place for image controls. Current result The app launches without needing a terminal-focused workflow. There is a foundation to build the interface onto.
Devlog 03 The next question was, “Can it even open the kind of images I use?” I used Pillow because it made loading and converting images much less scary. What I did Added a file picker for image files. Loaded images with Pillow and converted them to RGB. Put the image-loading work into image_processor.py instead of mixing it into the GUI. Current result Users can choose an image from their computer. The program has a separate place for image-related code.
Devlog 04 and 05 Devlog 04 I added an image preview, then noticed a problem: the original picture and the drawing area could have different shapes. A wide image was getting squished, which looked terrible. What I did Added a preview area to the interface. Resized images while keeping their aspect ratio. Letterboxed them on a white canvas so the processing area stays consistent. Current result Images fit the drawing canvas without stretching. The preview is much closer to what the bot will use. Devlog 05 So I was thinking that drawing every pixel would take forever. I tried edge detection instead, because an outline is often enough to recognise a picture. What I did Added OpenCV and converted images to grayscale. Used blur plus Canny edge detection to find visible outlines. Saved the generated edge image for previewing and debugging. Had a lot of problems with the back end when converting PNG / SVG Current result The app can turn an image into line-art data. Some rendering issues when using a PNG or a SVG I can see why some pictures work better than others. (1st Image is the gray scale version of , the 2nd image)
Devlog 06 Edges are still just pixels, though. I had to figure out how to make them into actual strokes that a mouse could follow without constantly clicking every single point. What I did Found contours from the edge image. Converted contours into lists of (x, y) points. Simplified overly detailed paths and ignored tiny unusable contours. Added PathGroup so related strokes can travel together. Patched some parts of image rendering issue mentioned in the 5th devlog , so it at least works. Current result The processor now produces drawable paths, not only a black-and-white image.
Devlog 07 My first path order was basically random, and the cursor would bounce around like it had too much coffee. I made a simple nearest-neighbour ordering system to calm it down. What I did Measured distance between path ends. Ordered contours by the closest next path. Reversed paths when approaching their end was shorter. Current result The cursor should spend less time travelling between separate strokes. Line drawings feel more intentional.
Devlog 08 and 09 Devlog 08 This was the slightly scary part: allowing the project to control the real cursor. I tested on a safe blank drawing area, with my hand ready to stop it. What I did Added PyAutoGUI mouse movement and mouse-down/mouse-up actions. Translated local canvas points into screen coordinates. Added adjustable movement, click, and gap delays. Current result A simple path can be drawn using real mouse input. Timing is configurable instead of hard-coded. Devlog 09 I clicked draw and the whole window froze while the mouse worked. It wasn’t technically broken, but it felt broken. That sent me down the threading rabbit hole. What I did Moved drawing work to a background thread. Added start, progress, and finished callbacks. Kept GUI actions on the interface side of the program. Current result The interface stays responsive while automation is running.
Devlog 10 I really did not want a bug to leave the mouse holding down forever. This session was mostly about making failure less stressful. What I did Added stop, pause, and resume state handling. Ensured the mouse button is released on completion, stop, or error. Enabled PyAutoGUI’s corner fail-safe. Started wiring an Esc-key emergency stop. Current result The bot has multiple ways to stop safely. Pausing mid-stroke no longer risks a stuck drag.
Devlog 11 At first I was typing coordinates, which was annoying and easy to get wrong. A click-to-place workflow felt much more natural. What I did Added a full-screen crosshair positioning window. Captured the next left-click as the drawing’s top-left origin. Added Escape cancellation before drawing begins. Current result The user can point at a canvas and place the drawing directly.
Devlog 12 I wanted a way to know whether the drawing would land in the right place before the mouse started moving. So I made a little ghost version follow the cursor. What I did Captured a screenshot behind the placement overlay. Displayed a transparent processed-image preview under the cursor. Added an outlined bounding box to make the size easier to notice. Current result Placement is visual instead of a blind click.
Devlog 13 Edge detection looked cool, but it sometimes missed things or made weird extra details. I tried a simpler idea: draw only pixels within a brightness range. What I did Added min/max luminance settings. Created a black-and-white ink mask from the selected range. Made a live threshold preview in the GUI. Current result Users can choose which brightness levels become ink. The result is easier to tune for simple images.
Devlog 14 Drawing individual pixels was obviously not going to be practical. I changed the mask into longer strokes, one run of pixels at a time. What I did Found continuous runs of ink pixels in each scanline. Converted each run into one two-point stroke. Used zig-zag ordering on alternate rows to reduce travel. Added a fill-spacing setting. Current result Threshold drawings are much faster and smoother than pixel-by-pixel drawing. [!NOTE] The image shows how it used to draw and now how it draws, the drawing is still kind of wobbly, will keep adjusting till its flawless
Devlog 15 I noticed some images looked better depending on how they were filled. That became a good excuse to add different drawing patterns. What I did Added horizontal scanline filling. Reused the same logic for vertical strokes. Added a random mode that shuffles and sometimes reverses strokes. Current result The user can choose how the drawing progresses without changing the final ink mask.
Devlog 16 Then I wondered if it could do more than black lines. I experimented with grouping similar colours, even though it makes the workflow more complicated. What I did Added k-means colour clustering. Ordered groups from dark to light. Generated fill paths for each colour group. Current result The processing engine can split an image into separate colour layers.
Devlog 17 The bot can’t magically swap the pen colour in every app, so I made the program honest about that limitation instead of pretending it was solved. What I did Added automatic pauses between colour groups. Made an always-on-top colour notice with an RGB swatch. Added continue and stop controls for each layer. Current result Multi-colour mode guides the user through manual pen changes.
Devlog 18 By now it worked, but the controls felt scattered. I spent this session making it feel more like a small Windows utility than a school experiment. What I did Organised controls into Settings, Thresholding, and Action sections. Added labels for interval, click delay, luminance, and draw pattern. Improved the image and threshold previews. Current result The main workflow is easier to understand at a glance.
Devlog 19 I realised most people would double-click the app, not run commands. A console window popping up behind it made it feel unfinished. What I did Added main.pyw for no-console Windows launching. Guarded console output for environments without stdout/stderr. Checked the project can also be packaged with PyInstaller. Current result The project is closer to something a normal user can open directly.
Devlog 20 The final part was testing with different pictures and fixing the little problems that only show up when you actually use the program. Then I wrote the README so future-me knows what all of this does. What I did Tested line-art, threshold, and colour-group paths with sample images. Checked placement, cancellation, stop behaviour, and cursor release. Added installation, usage, safety, and limitation notes to the README. Listed dependencies in requirements.txt . Current result A working AutoDraw desktop project with documented setup and safety guidance. Plenty of future ideas, but a complete usable version now.
Devlog 21 I watched the bot draw and finally noticed why it looked a bit like a printer instead of a person: it was doing separate scan lines with spaces between them. It was technically drawing the right shapes, but the movement did not feel right. What I did Looked at how the fill paths were being created. Kept the older horizontal, vertical, and random scanline styles as optional faster modes. Planned a new default that would stay on real image pixels instead of jumping between rows. Current result I understood that the problem was the path algorithm, not the mouse speed. The next task was to make a proper continuous tracer.
Devlog 22 So I was thinking: if every dark pixel is part of a little map, the cursor should be able to walk through that map without taking shortcuts through the white background. That became the new continuous drawing style. What I did Added a Continuous draw pattern and made it the default. Grouped ink pixels into connected regions. Used a depth-first walk to make long, pixel-adjacent pen paths. Let paths backtrack over already-drawn pixels instead of lifting the pen or crossing blank space. Kept larger connected shapes first so the drawing starts with the main details. Current result The bot can draw connected regions as unbroken, human-like strokes. There are no skipped scan lines in Continuous mode. The original fill patterns are still available for shading-style drawings.
Devlog 23 The new paths looked good in code, but moving a real mouse along pixel steps can still look rough. I spent time checking that the automation engine could follow those close-together points safely. What I did Updated the mouse engine to expand longer point-to-point moves into safe drag steps. Checked pause, stop, and mouse-button release behaviour with continuous paths. Updated the draw-style controls and help text so Continuous is clearly the normal choice. Kept the live preview and placement ghost matched to the same processed mask. Current result Continuous paths are ready for real cursor automation. The output stays faithful to the source mask instead of drawing through empty areas....
|
1792918368.5885332
|
1793782368.5885332
|
|
22678
|
Cosmic habitable planet classifier by @Rikimii | S Cosmic habitable planet classifier by @Rikimii | Stardance...
|
Rikimii
|
2
|
40.87
|
231
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T04:33:53Z", "hours": 31.0, "multiplier": 11.03, "payout": 169, "blessing": "neutral", "text": "The Cosmic habitable planet classifier V1.1 is an interactive simulation designed to analyze planetary habitability using real-time astrophysical calculations and machine learning predictions. Used Three.js for the 3D visual elements. Basically, this can be used by teachers, students and researchers who want to test their theories by making their your custom planet and see their research hypothesis was true or not.", "repo": "https://github.com/shipdrop/Cosmic-habitable-planet-classifier", "demo": "https://shipdrop.github.io/Cosmic-habitable-planet-classifier/"}, {"ship_num": 2, "ts": "2026-08-16T01:01:43Z", "hours": 5.0, "multiplier": 12.31, "payout": 62, "blessing": "neutral", "text": "A basically made a website where you can make your own planet and compare it to our earth to see if your planet is a bum where no creature can survive or we can go to it to inhabit it one day.", "repo": "https://github.com/shipdrop/Cosmic-habitable-planet-classifier", "demo": "https://shipdrop.github.io/Cosmic-habitable-planet-classifier/"}]...
|
[{"post_id": 82857, "ts": "202 [{"post_id": 82857, "ts": "2026-10-26T01:40:07Z", "hours": 1.7125, "text": "Update v1.2 Added Core and Atmospheric composition. Added Liquid Methane Zone. Countered Bugs in the ML calculations and in both Gravity / Atmosphere and habitability score. still haven’t solved them / was not able to. will solve them trmw."}, {"post_id": 80844, "ts": "2026-10-19T00:15:36Z", "hours": 0.935, "text": "Update (v1.2) added ASCII scrambling to make the info block not look bland. planned to add a option to change host star type as a suggestion from reviews. more coming this week!"}, {"post_id": 76029, "ts": "2026-10-02T03:35:05Z", "hours": 2.2269, "text": "Update: working on v1.2 changed the info section to a little more sci-fi to match the theme. more features coming up (hint: ASCII scrambling)."}, {"post_id": 75453, "ts": "2026-09-30T04:29:17Z", "hours": 3.5103, "text": "UPDATE (v1.1) I read the review and here is what I have referenced from those reviews from the ship: Habitability UI breakdown UI. 3d Goldilocks overlay that automatically resizes based on stellar temp. added astrophysical ML safety guardrails to not miscalculate result. Real-time Physics & updateSimulation pipline. Fixed Planet profile matching."}, {"post_id": 75072, "ts": "2026-09-29T02:08:23Z", "hours": 1.7892, "text": "Last Update for V1.0: Implemented Mobile Touch Controls Optimized Rendering Performance -Configured Open-Source Repository if you guys want to add more features and shii. PLS check out my github Repo."}, {"post_id": 74767, "ts": "2026-09-28T06:17:41Z", "hours": 5.5292, "text": "HUGE UPDATE: Try it out now (probly my second-last devolog) Finally added the refined the whole graph. added a summary box (not complete yet). Fixed all the bugs with controls."}, {"post_id": 74246, "ts": "2026-09-27T01:49:06Z", "hours": 2.4108, "text": "Update: go test it right now! Finally solved the graph overlapping with the simulation. the simulation starfield contines as the the background for graph and analytics section ( which will be added trmw!)."}, {"post_id": 73438, "ts": "2026-09-25T02:53:49Z", "hours": 2.2033, "text": "Huge Update: added scatter plot to show where your customized sits besides other exoplanets using NASA’s exoplanet archive data. it is a little buggy right now, I will fix it trmw (since I have to sleep now)."}, {"post_id": 72945, "ts": "2026-09-24T02:53:24Z", "hours": 1.5056, "text": "Update: removed Changing Planet Texture because its not right to theorize of how it would like. added camera movement when computing model data."}, {"post_id": 72025, "ts": "2026-09-22T00:53:19Z", "hours": 1.0839, "text": "Update: added different planet texture depending on the result (theory on what would it look like) try it out now!."}, {"post_id": 71516, "ts": "2026-09-20T23:48:06Z", "hours": 1.2964, "text": "Update: added SFX to results and buttons on the site."}, {"post_id": 70913, "ts": "2026-09-20T00:57:19Z", "hours": 2.9081, "text": "Hello yall, today are some bug fixes and updates: Fixed Javascript Reference & Scope errors. Fixed Focus Planet camera preset (you can try it out now!). Fixed starfield rotation and alignment. Upgraded Stars Graphics and Shape. More features coming soon!"}, {"post_id": 69473, "ts": "2026-09-17T04:02:57Z", "hours": 2.1344, "text": "GOT A LOT DONE TODAY but… A bug came on the focus camera preset (which i will fix trmw) Changed the default positioning and added cool animations before showing the result in bottom left. P.S- if you are trying out, PLEASE do not click on the focus planet camera preset."}, {"post_id": 67789, "ts": "2026-09-14T01:14:56Z", "hours": 1.9178, "text": "I finally fixed the UI crash error (it was a api error) and refined it later on, You guys can try it right now!! here is the before and after refinements and more coming throughout this week!!."}, {"post_id": 66982, "ts": "2026-09-12T23:57:56Z", "hours": 0.6708, "text": "Done with setting up the models and Drag controls next devlog will be posted when i fix the UI CDN crash :) see yall soon!"}, {"post_id": 62574, "ts": "2026-09-06T01:04:30Z", "hours": 0.7236, "text": "doing the interface again so I can remove the error and fix the 3D UI crashing :) (planning to add to it more)"}, {"post_id": 61271, "ts": "2026-09-04T03:50:13Z", "hours": 0.8394, "text": "so i started the website, but the 3D models due to Three.js errors through CDN. I will fix it this weekend because of multiple tests lined up in school, wish me luck."}, {"post_id": 53470, "ts": "2026-08-24T01:15:18Z", "hours": 2.0592, "text": "I decided to Redo the UI and here is the list of what I will add: (not done yet) 3d Planets and lighting Real-time Orbit animation Interactive camera controls Orbital Path Ring will complete all this points by trmw and Update here!"}, {"post_id": 29230, "ts": "2026-07-16T00:34:07Z", "hours": 0.5619, "text": "Added comparison to earth subtle background changes if you can see them (its halftones)."}, {"post_id": 29185, "ts": "2026-07-15T22:23:34Z", "hours": 4.4792, "text": "tryna fix this page error right for the past 10 mins. I found the problem right now and fix it. btw how does the UI look? Iam going to add more things like comparing it to the real planets in its category. This is it for the first devlog for the spider-man coded planet classifier!"}]...
|
Title: Cosmic habitable planet classifier by @Riki Title: Cosmic habitable planet classifier by @Rikimii | Stardance
Devlogs:
tryna fix this page error right for the past 10 mins. I found the problem right now and fix it. btw how does the UI look? Iam going to add more things like comparing it to the real planets in its category. This is it for the first devlog for the spider-man coded planet classifier!
Added comparison to earth subtle background changes if you can see them (its halftones).
I decided to Redo the UI and here is the list of what I will add: (not done yet) 3d Planets and lighting Real-time Orbit animation Interactive camera controls Orbital Path Ring will complete all this points by trmw and Update here!
so i started the website, but the 3D models due to Three.js errors through CDN. I will fix it this weekend because of multiple tests lined up in school, wish me luck.
doing the interface again so I can remove the error and fix the 3D UI crashing :) (planning to add to it more)
Done with setting up the models and Drag controls next devlog will be posted when i fix the UI CDN crash :) see yall soon!
I finally fixed the UI crash error (it was a api error) and refined it later on, You guys can try it right now!! here is the before and after refinements and more coming throughout this week!!.
GOT A LOT DONE TODAY but… A bug came on the focus camera preset (which i will fix trmw) Changed the default positioning and added cool animations before showing the result in bottom left. P.S- if you are trying out, PLEASE do not click on the focus planet camera preset.
Hello yall, today are some bug fixes and updates: Fixed Javascript Reference & Scope errors. Fixed Focus Planet camera preset (you can try it out now!). Fixed starfield rotation and alignment. Upgraded Stars Graphics and Shape. More features coming soon!
Update: added SFX to results and buttons on the site.
Update: added different planet texture depending on the result (theory on what would it look like) try it out now!.
Update: removed Changing Planet Texture because its not right to theorize of how it would like. added camera movement when computing model data.
Huge Update: added scatter plot to show where your customized sits besides other exoplanets using NASA’s exoplanet archive data. it is a little buggy right now, I will fix it trmw (since I have to sleep now).
Update: go test it right now! Finally solved the graph overlapping with the simulation. the simulation starfield contines as the the background for graph and analytics section ( which will be added trmw!).
HUGE UPDATE: Try it out now (probly my second-last devolog) Finally added the refined the whole graph. added a summary box (not complete yet). Fixed all the bugs with controls.
Last Update for V1.0: Implemented Mobile Touch Controls Optimized Rendering Performance -Configured Open-Source Repository if you guys want to add more features and shii. PLS check out my github Repo.
UPDATE (v1.1) I read the review and here is what I have referenced from those reviews from the ship: Habitability UI breakdown UI. 3d Goldilocks overlay that automatically resizes based on stellar temp. added astrophysical ML safety guardrails to not miscalculate result. Real-time Physics & updateSimulation pipline. Fixed Planet profile matching.
Update: working on v1.2 changed the info section to a little more sci-fi to match the theme. more features coming up (hint: ASCII scrambling).
Update (v1.2) added ASCII scrambling to make the info block not look bland. planned to add a option to change host star type as a suggestion from reviews. more coming this week!
Update v1.2 Added Core and Atmospheric composition. Added Liquid Methane Zone. Countered Bugs in the ML calculations and in both Gravity / Atmosphere and habitability score. still haven’t solved them / was not able to. will solve them trmw.
Ships:
A basically made a website where you can make your own planet and compare it to our earth to see if your planet is a bum where no creature can survive or we can go to it to inhabit it one day.
The Cosmic habitable planet classifier V1.1 is an interactive simulation designed to analyze planetary habitability using real-time astrophysical calculations and machine learning predictions. Used Three.js for the 3D visual elements. Basically, this can be used by teachers, students and researchers who want to test their theories by making their your custom planet and see their research hypothesis was true or not....
|
1793119897.2129836
|
1793206297.2129836
|
|
17124
|
DUCK FIREFIGHTING GAME by @harveersmotoe | Stardan DUCK FIREFIGHTING GAME by @harveersmotoe | Stardance...
|
harveersmotoe
|
0
|
40.85
|
0
|
[]
|
[{"post_id": 22924, "ts": "202 [{"post_id": 22924, "ts": "2026-07-05T15:50:42Z", "hours": 7.9178, "text": "So, to start off I brainstormed more character ideas and I probably do want to add a inventory slots to the game, right now I was working on an NPC that works as a sign, when the player goes up to them they are able to interact with the NPC, but this issue is that the NPC just isnt moving, it was working the first time I wrote the code but then i broke it."}, {"post_id": 17957, "ts": "2026-06-28T22:22:48Z", "hours": 3.1303, "text": "Working on shop items and drew the hearts that I want to implement in the game. Also tried to figure out how to get a … animation playing when a person approaches the sign but thats not working very well."}, {"post_id": 16995, "ts": "2026-06-27T16:03:44Z", "hours": 19.3942, "text": "Found Most of the sprite that we will need but also tried to revamp the tree that I had added. Also something else that is new is the addition of breakable sprites and a animated river/water source for refilling. Also tried to make a HUD for all the meters and numbers so player could see their stats more easily"}, {"post_id": 12790, "ts": "2026-06-20T22:21:11Z", "hours": 3.1842, "text": "ADDED WATER METER, BURNING TREES, AND WAY MORE ANIMATIONS TO THE MAIN CHARCTER"}, {"post_id": 10972, "ts": "2026-06-18T00:04:43Z", "hours": 7.2214, "text": "MAIN CHARACTER/COLLISION EFFECTS/ ANIMATIONS"}]...
|
Title: DUCK FIREFIGHTING GAME by @harveersmotoe | Title: DUCK FIREFIGHTING GAME by @harveersmotoe | Stardance
Devlogs:
MAIN CHARACTER/COLLISION EFFECTS/ ANIMATIONS
ADDED WATER METER, BURNING TREES, AND WAY MORE ANIMATIONS TO THE MAIN CHARCTER
Found Most of the sprite that we will need but also tried to revamp the tree that I had added. Also something else that is new is the addition of breakable sprites and a animated river/water source for refilling. Also tried to make a HUD for all the meters and numbers so player could see their stats more easily
Working on shop items and drew the hearts that I want to implement in the game. Also tried to figure out how to get a … animation playing when a person approaches the sign but thats not working very well.
So, to start off I brainstormed more character ideas and I probably do want to add a inventory slots to the game, right now I was working on an NPC that works as a sign, when the player goes up to them they are able to interact with the NPC, but this issue is that the NPC just isnt moving, it was working the first time I wrote the code but then i broke it....
|
1793141652.2232254
|
1793746452.2232254
|
|
8802
|
LoPose Cell Mapping by @yep | Stardance
|
yep
|
1
|
40.72
|
588
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T17:15:42Z", "hours": 37.0, "multiplier": 15.78, "payout": 588, "blessing": "neutral", "text": "Project Overview LoPose Tower Mapping is a project focused on mapping cellular tower data collected from phones to real-world tower locations. The goal is to collect cellular observations from Android devices, upload them to a database, and process those observations to estimate and match real tower positions. The project is currently experimental and mainly intended for private use. Project Structure The project is split into two main parts: Android app Go triangulation and tower-fitting tools Android App The Android app is the core data collector. It runs on a phone and gathers data about the currently connected cellular tower. This data is uploaded to a Supabase database and stored as observations. The app records data such as: connected cell ID network / area information GPS location GPS accuracy altitude vertical accuracy timing advance EARFCN PCI recorder time Currently, it collects and uploads data approximately every 5 seconds. Because of this, it can consume a significant amount of battery due to frequent GPS usage, cellular observation checks, background processing, and network uploads. APK Status The APK is not published. This is because the project is mainly for private use, and publishing it could introduce privacy risks due to the sensitive location and cellular data involved. For now, both the app and the database must be built and configured from the source code. Go Processing Tools The second part of the project is written in Go. These tools process the observations collected by the Android app and attempt to estimate real tower locations. The main approach uses 2D trilateration to approximate tower positions based on collected observations. There is also experimental 3D plane-intersection code for detecting towers in 3D space. However, it is not part of the main workflow because it generally performs worse than the 2D approach. Tower Matching After estimating tower locations, the Go tools attempt to match the calculated positions against a known tower-location database. This step connects collected observation data to real-world tower locations and computes more complete tower data, including estimated altitude, which is stored in a separate database. Current Limitations The project is still experimental and has several limitations: the APK is not publicly distributed the app can consume a high amount of battery the database must be configured manually tower matching is not always accurate the 3D approach exists but is not used in the main workflow the project handles sensitive location and cellular data altitude estimation is not always reliable and can sometimes be significantly inaccurate Things that were hard Things that I had hard were first setting up all the database exporting and transferring data, thinking and making all the ideas for how to use the 2D trilateration and 3D plane collision in the Go code. Adding the foreground service process in the Android app and making sure the TA updates on read also took some time, as well as creating the HTML converter for the point map in Go and all the steps to set up for the shipping of the project that require a very strict level of security and can leak personal data if I’m not careful in every move. Current Goal The current goal of LoPose mapping is to create a working private pipeline: phone observations → Supabase database → tower estimation → tower matching → complete tower location data The project is not intended to be a polished production application yet. It is an experimental system for tower mapping and location processing. This is also the first step in a two-part project aimed at developing location-finding methods for Android that do not rely on GPS, which is planned for future development.", "repo": "https://gitlab.com/yakla/LoPose", "demo": "https://yakla.gitlab.io/LoPose/"}]...
|
[{"post_id": 20251, "ts": "202 [{"post_id": 20251, "ts": "2026-07-01T19:55:07Z", "hours": 3.7203, "text": "Update on current status. firstly the project now will start slowly shifting to the second part of the location finding based on the towers found. this will be found in a different project in the name of lopose location estimation secondly updated the readme and some of my older devlogs for better looks and for improving in writing things in the readme format. i’m not very good at it so i hope to improve by doing it and make it looks better. lastly cleaned some of the code and improved other parts for shipment."}, {"post_id": 19111, "ts": "2026-06-30T10:57:34Z", "hours": 3.6836, "text": "Devlog — Preparing Stardance for Shipping Before shipping Stardance firstly I spent some time cleaning up the project and making it easier to understand . it include a readme and a git repo. before publishing this i needed to check nothing private is commited. with that i also added a README to the project so it will be easier how to set up things yourself. all and all i’m pretty proud of what i made. still i do have planes for more which i didn’t had time for. New features adding the 3d estimations in the future. currently most of them are wrong but some times they can actually work better then 2d. i did see in my debugger around 10 or more of the 146 which actually worked better then the 2d once and could be logged in the final estimation. for better scalability i want to add observation auto removal if around 7 observation of the same cell can’t find a real tower. this will just mean that if few observations were off you can try again until all of them will fit one."}, {"post_id": 18290, "ts": "2026-06-29T12:03:21Z", "hours": 4.4636, "text": "Demo website its not done but here i got a demo website to watch all the observations until now and the estimation. do note some of them are wrong because of the challenging conditions so i will use a verification method later for the perfect real tower location and data. https://yakla.gitlab.io/LoPose/"}, {"post_id": 16530, "ts": "2026-06-26T21:51:52Z", "hours": 1.9075, "text": "Solution was found!!! its a good day today . aperently ta can also be 150m sometimes :) it work the detection works almost perfectly in 2d. yay ! i found out there was a bug in android that i thought have been fixed but aperently not. so now it works wonderfly. well we got it : if you ask its around 30m from the target. and this is while tracking in a moving car. also sometime the 3d estimation works better but thats in rare cases. most of the time its not the most accurate."}, {"post_id": 15837, "ts": "2026-06-25T19:08:05Z", "hours": 6.6844, "text": "update on current Go code tower estimation been a while and a lot got done got some news good news and bad news the good news is that i finished with the 3d caculation and improve observation accaurcy. the bad news is that there is still something lacking making the location positioning almost the same and still not giving the right. at least not based on my knowlage but its has gotten better in some siturations. i still have hard time figuring things out but combining the 2d and 3d based on the terain does give a pretty good estimated location. i realy like the 3d aproach i went with. suprisingly its easier to understand how its works then the 2d one and didn’t add much compute (at least not if there are to much points found from plain colition which grows expenetialy seriously some got in the order of bilions. realy creazy stuff) anyway from now on ill try focusing more on the position estimation rather then the tower estimation, this will be more interesting for me after all the work on one thing and use some of the knowledge i got from estimating the towers. anyway having hard time finding a good picture for the progress so random go 3d positioning code down below :"}, {"post_id": 12733, "ts": "2026-06-20T20:22:39Z", "hours": 3.3836, "text": "Small update add height to observaions. well been a while since the last devlog. i needed a lot of thinking and planning for the 3d estimations so took me long enough. still didn’t get all the answers but i do got some updates. first i got few ideas i want to share. for the height there are few approaches but what i want to use will be based on my already existing 2d system. secondly i might try to find the height approximations of the tower based on flat 2d location estimation and using a location to height api and distance height correction its possible to find it with high accuracy using gradient descent . and thirdly i dont have any pictures to share so ill put a picture of a dog 🐶"}, {"post_id": 6316, "ts": "2026-06-10T17:06:08Z", "hours": 1.2122, "text": "Suspected issues after lots of observations got to 3 different issues with the current system first i need to account for ta deadzone which is surprisingly one of the most uncommon things which are near me. i need to account for the third dimension in the calculation i need to check for faulty observations of ta jumps it will take work but its feasible. looks like i have a very bumpy road ahead wish me luck😵💫. took me too much time to figure the first one out"}, {"post_id": 5770, "ts": "2026-06-09T17:53:40Z", "hours": 7.1014, "text": "improved database sync code and changed ui"}, {"post_id": 4781, "ts": "2026-06-08T08:33:54Z", "hours": 5.2897, "text": "organize app code and improved architecture"}, {"post_id": 3754, "ts": "2026-06-06T20:05:04Z", "hours": 3.0111, "text": "started using observations for the caculation. seems real world had more error then expected so change observation code to recored more and reduce the distance between each one"}, {"post_id": 2949, "ts": "2026-06-05T21:08:06Z", "hours": 0.6258, "text": "improving cell tower location finding algorithm"}]...
|
Title: LoPose Cell Mapping by @yep | Stardance
De Title: LoPose Cell Mapping by @yep | Stardance
Devlogs:
improving cell tower location finding algorithm
started using observations for the caculation. seems real world had more error then expected so change observation code to recored more and reduce the distance between each one
organize app code and improved architecture
improved database sync code and changed ui
Suspected issues after lots of observations got to 3 different issues with the current system first i need to account for ta deadzone which is surprisingly one of the most uncommon things which are near me. i need to account for the third dimension in the calculation i need to check for faulty observations of ta jumps it will take work but its feasible. looks like i have a very bumpy road ahead wish me luck😵💫. took me too much time to figure the first one out
Small update add height to observaions. well been a while since the last devlog. i needed a lot of thinking and planning for the 3d estimations so took me long enough. still didn’t get all the answers but i do got some updates. first i got few ideas i want to share. for the height there are few approaches but what i want to use will be based on my already existing 2d system. secondly i might try to find the height approximations of the tower based on flat 2d location estimation and using a location to height api and distance height correction its possible to find it with high accuracy using gradient descent . and thirdly i dont have any pictures to share so ill put a picture of a dog 🐶
update on current Go code tower estimation been a while and a lot got done got some news good news and bad news the good news is that i finished with the 3d caculation and improve observation accaurcy. the bad news is that there is still something lacking making the location positioning almost the same and still not giving the right. at least not based on my knowlage but its has gotten better in some siturations. i still have hard time figuring things out but combining the 2d and 3d based on the terain does give a pretty good estimated location. i realy like the 3d aproach i went with. suprisingly its easier to understand how its works then the 2d one and didn’t add much compute (at least not if there are to much points found from plain colition which grows expenetialy seriously some got in the order of bilions. realy creazy stuff) anyway from now on ill try focusing more on the position estimation rather then the tower estimation, this will be more interesting for me after all the work on one thing and use some of the knowledge i got from estimating the towers. anyway having hard time finding a good picture for the progress so random go 3d positioning code down below :
Solution was found!!! its a good day today . aperently ta can also be 150m sometimes :) it work the detection works almost perfectly in 2d. yay ! i found out there was a bug in android that i thought have been fixed but aperently not. so now it works wonderfly. well we got it : if you ask its around 30m from the target. and this is while tracking in a moving car. also sometime the 3d estimation works better but thats in rare cases. most of the time its not the most accurate.
Demo website its not done but here i got a demo website to watch all the observations until now and the estimation. do note some of them are wrong because of the challenging conditions so i will use a verification method later for the perfect real tower location and data. https://yakla.gitlab.io/LoPose/
Devlog — Preparing Stardance for Shipping Before shipping Stardance firstly I spent some time cleaning up the project and making it easier to understand . it include a readme and a git repo. before publishing this i needed to check nothing private is commited. with that i also added a README to the project so it will be easier how to set up things yourself. all and all i’m pretty proud of what i made. still i do have planes for more which i didn’t had time for. New features adding the 3d estimations in the future. currently most of them are wrong but some times they can actually work better then 2d. i did see in my debugger around 10 or more of the 146 which actually worked better then the 2d once and could be logged in the final estimation. for better scalability i want to add observation auto removal if around 7 observation of the same cell can’t find a real tower. this will just mean that if few observations were off you can try again until all of them will fit one.
Update on current status. firstly the project now will start slowly shifting to the second part of the location finding based on the towers found. this will be found in a different project in the name of lopose location estimation secondly updated the readme and some of my older devlogs for better looks and for improving in writing things in the readme format. i’m not very good at it so i hope to improve by doing it and make it looks better. lastly cleaned some of the code and improved other parts for shipment.
Ships:
Project Overview LoPose Tower Mapping is a project focused on mapping cellular tower data collected from phones to real-world tower locations. The goal is to collect cellular observations from Android devices, upload them to a database, and process those observations to estimate and match real tower positions. The project is currently experimental and mainly intended for private use. Project Structure The project is split into two main parts: Android app Go triangulation and tower-fitting tools Android App The Android app is the core data collector. It runs on a phone and gathers data about the currently connected cellular tower. This data is uploaded to a Supabase database and stored as observations. The app records data such as: connected cell ID network / area information GPS location GPS accuracy altitude vertical accuracy timing advance EARFCN PCI recorder time Currently, it collects and uploads data approximately every 5 seconds. Because of this, it can consume a significant amount of battery due to frequent GPS usage, cellular observation checks, background processing, and network uploads. APK Status The APK is not published. This is because the project is mainly for private use, and publishing it could introduce privacy risks due to the sensitive location and cellular data involved. For now, both the app and the database must be built and configured from the source code. Go Processing Tools The second part of the project is written in Go. These tools process the observations collected by the Android app and attempt to estimate real tower locations. The main approach uses 2D trilateration to approximate tower positions based on collected observations. There is also experimental 3D plane-intersection code for detecting towers in 3D space. However, it is not part of the main workflow because it generally performs worse than the 2D approach. Tower Matching After estimating tower locations, the Go tools attempt to match the calculated positions against a known tower-location database. This step connects collected observation data to real-world tower locations and computes more complete tower data, including estimated altitude, which is stored in a separate database. Current Limitations The project is still experimental and has several limitations: the APK is not publicly distributed the app can consume a high amount of battery the database must be configured manually tower matching is not always accurate the 3D approach exists but is not used in the main workflow the project handles sensitive location and cellular data altitude estimation is not always reliable and can sometimes be significantly inaccurate Things that were hard Things that I had hard were first setting up all the database exporting and transferring data, thinking and making all the ideas for how to use the 2D trilateration and 3D plane collision in the Go code. Adding the foreground service process in the Android app and making sure the TA updates on read also took some time, as well as creating the HTML converter for the point map in Go and all the steps to set up for the shipping of the project that require a very strict level of security and can leak personal data if I’m not careful in every move. Current Goal The current goal of LoPose mapping is to create a working private pipeline: phone observations → Supabase database → tower estimation → tower matching → complete tower location data The project is not intended to be a polished production application yet. It is an experimental system for tower mapping and location processing. This is also the first step in a two-part project aimed at developing location-finding methods for Android that do not rely on GPS, which is planned for future development....
|
1793112632.5437558
|
1793199032.5437558
|
|
19667
|
Strea(w)m by @lachlang38 | Stardance
|
lachlang38
|
0
|
40.44
|
0
|
[]
|
[{"post_id": 25154, "ts": "202 [{"post_id": 25154, "ts": "2026-07-09T05:52:03Z", "hours": 12.8908, "text": "So a big milestone has been reached, I’m actually using it as my window manager. It definitely useable(though not without bugs), which is really cool. Things like focus switching are really janky and inconsistent though, so I definitely need to fix that. Workspaces also technically exist, but in their current state they’re a bit useless, I’ll work on that soon though (might have to build in a taskbar/dock to fit with the current workspace implentation, haven’t done any research on that yet), once the focus logic is locked down. Also on a slightly related note, why is the 10 hour dev log limit being applied to old dev logs? Was it always a rule?"}, {"post_id": 15550, "ts": "2026-06-25T08:49:42Z", "hours": 18.3906, "text": "I spent waaaay too long getting nice looking features using Scenefx, but I got it working (eventually). For some reason it worked for my terminal immediately, then nothing else, Kitty is just better I guess. The majority of my time was spent trying to fix apps losing rounded corners when they got refocused, apparently the patch I was basing my version off was using an older version of Scenefx that used clipping regions instead of inbuilt corner rounding, so it was throwing it off when a window was refocused. Made it through to the other side though, now I’ve just got workspaces, some small tweaks, and a bar to go."}, {"post_id": 11142, "ts": "2026-06-18T07:08:21Z", "hours": 7.7142, "text": "So small changes were made… I switched to dwl as the base of my wm. I ended up finding River harder to use when trying to interface with things like Waybar and Rofi. So far there have been some small hiccups with other peoples’ patches causing small errors, but they weren’t too hard to fix. Got minimise and maximise working, but currently alt tab doesn’t unhide the minimised window, so that’s next. Doesn’t actually look that good right now, but that’ll come after the wrinkles are ironed out."}, {"post_id": 9815, "ts": "2026-06-16T08:04:44Z", "hours": 1.4411, "text": "Recently I’ve been wanting a nice minimal stacking/floating window manager for Wayland, but there aren’t actually very many that keep it super minimal while also looking decent, so I decided to try my hand at making my own. I looked around a bit and came to the conclusion that my option were either do it using dwl or a tinywl fork, or use River, which handles the compositing part for me. I think it’ll be the best option because it abstracts a lot away and implements the stuff that I either couldn’t or wouldn’t want to do myself. This takes a slight hit to system resources (~70Mb bigger than unchanged dwl and ~100Mb bigger than quackwm (a premade fork of tinywl). Maybe I’ll make a super lightweight one in the future), but it’s still light and minimal. I’ll be starting from the tinyrwm example on the River codeberg page, which will give me a proper base to start from. The screenshot is just black because it just starts and not much else."}]...
|
Title: Strea(w)m by @lachlang38 | Stardance
Devlo Title: Strea(w)m by @lachlang38 | Stardance
Devlogs:
Recently I’ve been wanting a nice minimal stacking/floating window manager for Wayland, but there aren’t actually very many that keep it super minimal while also looking decent, so I decided to try my hand at making my own. I looked around a bit and came to the conclusion that my option were either do it using dwl or a tinywl fork, or use River, which handles the compositing part for me. I think it’ll be the best option because it abstracts a lot away and implements the stuff that I either couldn’t or wouldn’t want to do myself. This takes a slight hit to system resources (~70Mb bigger than unchanged dwl and ~100Mb bigger than quackwm (a premade fork of tinywl). Maybe I’ll make a super lightweight one in the future), but it’s still light and minimal. I’ll be starting from the tinyrwm example on the River codeberg page, which will give me a proper base to start from. The screenshot is just black because it just starts and not much else.
So small changes were made… I switched to dwl as the base of my wm. I ended up finding River harder to use when trying to interface with things like Waybar and Rofi. So far there have been some small hiccups with other peoples’ patches causing small errors, but they weren’t too hard to fix. Got minimise and maximise working, but currently alt tab doesn’t unhide the minimised window, so that’s next. Doesn’t actually look that good right now, but that’ll come after the wrinkles are ironed out.
I spent waaaay too long getting nice looking features using Scenefx, but I got it working (eventually). For some reason it worked for my terminal immediately, then nothing else, Kitty is just better I guess. The majority of my time was spent trying to fix apps losing rounded corners when they got refocused, apparently the patch I was basing my version off was using an older version of Scenefx that used clipping regions instead of inbuilt corner rounding, so it was throwing it off when a window was refocused. Made it through to the other side though, now I’ve just got workspaces, some small tweaks, and a bar to go.
So a big milestone has been reached, I’m actually using it as my window manager. It definitely useable(though not without bugs), which is really cool. Things like focus switching are really janky and inconsistent though, so I definitely need to fix that. Workspaces also technically exist, but in their current state they’re a bit useless, I’ll work on that soon though (might have to build in a taskbar/dock to fit with the current workspace implentation, haven’t done any research on that yet), once the focus logic is locked down. Also on a slightly related note, why is the 10 hour dev log limit being applied to old dev logs? Was it always a rule?...
|
1792745338.585464
|
1793350138.585464
|
|
51587
|
Vendora by @0xvince | Stardance
|
0xvince
|
0
|
40.42
|
0
|
[]
|
[{"post_id": 53718, "ts": "202 [{"post_id": 53718, "ts": "2026-08-24T11:59:43Z", "hours": 14.9508, "text": "#UPDATED and finally added clerk so my logins and signup for either company or sales person under a company works used clerk snippets and clerk cli to fast foward the development landed many bugs on the way mostly eith redirection and navigation been hell tryna fix them"}, {"post_id": 51343, "ts": "2026-08-20T23:15:28Z", "hours": 10.2103, "text": "#CHANGED UI TO LOOK SOMETHING BETTER Mehn it’s been crazy tyna change the ui designs had to work on my ‘global.css’ and any inline styling just happy i got good results . Day 5 of working without any figma design"}, {"post_id": 50529, "ts": "2026-08-19T18:31:33Z", "hours": 15.2619, "text": "Vendora — Formerly Zillion Enterprise Vendora started as a product I built for a client. I couldn’t pitch the idea well enough to get the project off the ground, but building it made me realize that the problem wasn’t specific to one client. So instead of letting the work go to waste, I’m turning Vendora into a SaaS product. The goal is to take what was originally a custom solution and turn it into something that other businesses can sign up for, use, and get value from without needing a custom implementation. From a failed client pitch to a SaaS product. That’s what Vendora is becoming."}]...
|
Title: Vendora by @0xvince | Stardance
Devlogs:
V Title: Vendora by @0xvince | Stardance
Devlogs:
Vendora — Formerly Zillion Enterprise Vendora started as a product I built for a client. I couldn’t pitch the idea well enough to get the project off the ground, but building it made me realize that the problem wasn’t specific to one client. So instead of letting the work go to waste, I’m turning Vendora into a SaaS product. The goal is to take what was originally a custom solution and turn it into something that other businesses can sign up for, use, and get value from without needing a custom implementation. From a failed client pitch to a SaaS product. That’s what Vendora is becoming.
#CHANGED UI TO LOOK SOMETHING BETTER Mehn it’s been crazy tyna change the ui designs had to work on my ‘global.css’ and any inline styling just happy i got good results . Day 5 of working without any figma design
#UPDATED and finally added clerk so my logins and signup for either company or sales person under a company works used clerk snippets and clerk cli to fast foward the development landed many bugs on the way mostly eith redirection and navigation been hell tryna fix them...
|
1792677039.8875134
|
1793281839.8875134
|
|
36388
|
E-ink display by @Gabriel | Stardance
|
Gabriel
|
0
|
40.36
|
0
|
[]
|
[{"post_id": 66487, "ts": "202 [{"post_id": 66487, "ts": "2026-09-12T10:16:48Z", "hours": 8.2886, "text": "I designed the case for the display. It was really hard since the exact dimensions of the display are not clear. What I did was download an existing case and modify it so it fits the buttons. I also wrote the ESP32 code."}, {"post_id": 51569, "ts": "2026-08-21T10:42:31Z", "hours": 0.855, "text": "I submitted my project for review and I thought I would get a way to explain how it works, so since I didn’t, I’ll explain it here.Once you are in the web you’ll probably wonder how I send it to the esp32.A GitHub Action runs every 20 minutes. It opens chromium, logs into the web and takes a screenshot of each the screens. Then a python script rotates each one 90 degrees (the web is vertical, the panel is horizontal) and converts it into 4 levels of gray, 2 bits per pixel. That raw file is what gets uploaded to supabase, not the screenshot: the panel has no image decoder, it only takes a stream of bytes that maps directly to pixels. It downloads all the screens, so pressing a button doesn’t need any network at all: it just picks which file to push to the panel. That’s instant.The bucket is private, so the esp32 doesn’t have any supabase credentials. It sends its own API key, and that function is the one that reads the file."}, {"post_id": 51102, "ts": "2026-08-20T16:25:06Z", "hours": 10.3425, "text": "10 hours of work since the last devblog. I’ve done a lot. I think I’m finished. I fisnish de login as you can see in the first screenshot. This way no one can acces my info. I finished the esp32 API wich will make it able access to the screenshots for the display without having to directly login. I used netfly for the host so now I can acces from every device and everything will be sync in, ass you can see in the second picture."}, {"post_id": 37622, "ts": "2026-07-30T14:17:48Z", "hours": 6.3686, "text": "It’s been a while since the last dev blog, although I feel like I didn’t make much progress. I “wasted” a lot of time programming things that in the end I had to redo. The thing is, I had to choose how I wanted to handle the communication between the web app, the phone, the ESP32, and everything else, and there are lots of ways to do it. In the end, I decided to build my own web app that only I can access, because it stores my information. Then I generate an API so the ESP32 can download the picture to display on the e-ink screen. I worked on the logic for that. Basically, I made a script that takes a screenshot of every item and sends one depending on the input. The ESP32 sends the input and the server returns the correct screenshot. The code also automatically generates a C array of the photo for the ESP32. Lastly, I organized the project, because it was getting messy."}, {"post_id": 35206, "ts": "2026-07-26T14:09:19Z", "hours": 2.1956, "text": "As you can see in the first picture, the habit tracker has a frame. It can seem like just an innocent design decision, spoiler: it wasn’t. What I was going to do was simply embed the habit tracker page into the main one with an iframe, but this is how it looked (second image). It’s weird, but I just had to increase the height and that should have been it. I don’t have a screenshot, but after that it still looked bad for three reasons: the frame, the buttons and I don’t know what caused but everything was just glichy. And with an iframe I can’t fix that, because it brings the page exactly as it is and I can’t touch anything from the outside. So I did some research about how I could import a page into my project, but only the part I wanted (in this case I didn’t want the frame or the buttons). I found fetch(). It downloads the HTML of the other page as plain text, and then DOMParser turns that text into a DOM I can modify before putting it on my page. So I keep only the .frame block, which already leaves the two nav buttons out because they live outside of it, and I switch the default view to the stats one instead of the daily checklist. After that it didn’t look exactly as I expected, but it was a quick fix. The CSS of the habit tracker and the CSS of the copy are not the same file, so if I modify one the other doesn’t change. I just changed some font sizes and that was it. Now the only thing I think is left (about the web part) is linking the buttons of the display with the functions I want them to do. I did this with the calendar, so it should be easy. Oh I almost forgot, the e-ink display don’t have grays so I will have to change the heatmap. PS: next screenshot for the final result."}, {"post_id": 34512, "ts": "2026-07-25T09:25:53Z", "hours": 1.4592, "text": "After lots and lots of mistakes and errors and trying to find the best way to do it, I figured it out. Basically, I fused the two projects into the same folder so that the server can access all the local info (as you can see in the URL of the first two screenshots). I think this is the easiest way to do it and the one that works best for me. I know there’s only 1h 27m left, but I spent like 3 hours thinking about how to implement everything together. There are still some problems I have to solve. First of all, the /habit-tracker/ page was programmed using my phone’s resolution (as you can see in the last devblog). This may be a problem because now I basically have to copy and paste the habit tracker into the fourth menu (by “fourth menu” I mean the fourth button, the one with the fire emoji, that’s where the habit tracker goes). Since the habit tracker was programmed using my phone’s resolution, I don’t know how it’ll fit, and I don’t know how to “copy and paste” it either. The second problem… actually, I think that’s all. It was just one big problem after all XD"}, {"post_id": 33593, "ts": "2026-07-23T17:16:27Z", "hours": 1.6661, "text": "I made the dashboard. To increase the streak, you have to complete all the habits. The GitHub-like grid gets darker depending on how many habits you’ve done, and below that you can see this week’s habits. It’s designed to fit my phone’s resolution, so I’m not sure how it’ll look on other screen sizes. It’s in Spanish because the display will be in Spanish (since I’m Spanish XD)"}, {"post_id": 33394, "ts": "2026-07-23T09:37:37Z", "hours": 1.23, "text": "I’ve made a web app that works as a habit tracker. I was going to make a native app, but then I thought: I’m not going to make this harder than it needs to be, I’ll just build a web app and then add a shortcut to the home screen so it feels like an app. It may be slower and you can’t store things on the phone, but it’s easier. From this web app I’ll send the data to the display. Now I’ll make the github-like grid."}, {"post_id": 33012, "ts": "2026-07-22T15:42:44Z", "hours": 1.4936, "text": "I built the to-do list, though I ran into a few problems along the way. The documentation wasn’t very clear, which slowed me down. I added a function to select a task and mark it as done or undone. The selection part works, but I can’t actually mark a task as done. This is because the page is static HTML: it can only read tasks.json, a file the Python script wrote earlier. Writing back to Google Tasks needs OAuth authentication, which lives in the Python script, and that doesn’t run in the browser. I’d also like to show the time a task is due, but the Google API doesn’t expose that information."}, {"post_id": 32913, "ts": "2026-07-22T11:46:11Z", "hours": 1.045, "text": "I made this simple bottom bar so I could tell what each button does, since in the final product I’ll be using TTP223 modules, so there won’t be any emojis. What wasn’t so simple was linking the buttons to the calendar functions. I had to read through the whole docs to figure out how to do it."}, {"post_id": 32574, "ts": "2026-07-21T20:49:57Z", "hours": 2.1253, "text": "I added a calendar. At first I was going to use the Google API but it was so difficult. I searched for alternatives on GitHub and found a website that lets you personalize your calendar, and then you just have to paste the code it gives you into the HTML file."}, {"post_id": 32276, "ts": "2026-07-21T10:42:50Z", "hours": 1.5828, "text": "I’ve created the first screen of the project, it just shows the time and weather for now. I’m using emojis at the moment but I’ll look for black and white icons later. I wasted like 30 minutes trying to figure out what was wrong, and it turned out I just hadn’t closed a block properly lol"}, {"post_id": 32230, "ts": "2026-07-21T08:25:37Z", "hours": 0.5836, "text": "I sketched out the design for the app. Now that I know exactly what to do, I’ll finish it a lot faster."}, {"post_id": 31310, "ts": "2026-07-19T16:37:30Z", "hours": 1.1275, "text": "I started by sketching a quick diagram of how the whole device should work. Then I built a web page with an 800×480px canvas , the exact resolution of the display. Every hour, a server renders this page, captures it as a 1-bit bitmap, and publishes it at a fixed URL. The ESP32 simply wakes up, downloads the bitmap, paints it on the e-ink panel, and goes back to deep sleep. It never runs any of the app logic itself, that’s what makes the battery last for months."}]...
|
Title: E-ink display by @Gabriel | Stardance
Devl Title: E-ink display by @Gabriel | Stardance
Devlogs:
I started by sketching a quick diagram of how the whole device should work. Then I built a web page with an 800×480px canvas , the exact resolution of the display. Every hour, a server renders this page, captures it as a 1-bit bitmap, and publishes it at a fixed URL. The ESP32 simply wakes up, downloads the bitmap, paints it on the e-ink panel, and goes back to deep sleep. It never runs any of the app logic itself, that’s what makes the battery last for months.
I sketched out the design for the app. Now that I know exactly what to do, I’ll finish it a lot faster.
I’ve created the first screen of the project, it just shows the time and weather for now. I’m using emojis at the moment but I’ll look for black and white icons later. I wasted like 30 minutes trying to figure out what was wrong, and it turned out I just hadn’t closed a block properly lol
I added a calendar. At first I was going to use the Google API but it was so difficult. I searched for alternatives on GitHub and found a website that lets you personalize your calendar, and then you just have to paste the code it gives you into the HTML file.
I made this simple bottom bar so I could tell what each button does, since in the final product I’ll be using TTP223 modules, so there won’t be any emojis. What wasn’t so simple was linking the buttons to the calendar functions. I had to read through the whole docs to figure out how to do it.
I built the to-do list, though I ran into a few problems along the way. The documentation wasn’t very clear, which slowed me down. I added a function to select a task and mark it as done or undone. The selection part works, but I can’t actually mark a task as done. This is because the page is static HTML: it can only read tasks.json, a file the Python script wrote earlier. Writing back to Google Tasks needs OAuth authentication, which lives in the Python script, and that doesn’t run in the browser. I’d also like to show the time a task is due, but the Google API doesn’t expose that information.
I’ve made a web app that works as a habit tracker. I was going to make a native app, but then I thought: I’m not going to make this harder than it needs to be, I’ll just build a web app and then add a shortcut to the home screen so it feels like an app. It may be slower and you can’t store things on the phone, but it’s easier. From this web app I’ll send the data to the display. Now I’ll make the github-like grid.
I made the dashboard. To increase the streak, you have to complete all the habits. The GitHub-like grid gets darker depending on how many habits you’ve done, and below that you can see this week’s habits. It’s designed to fit my phone’s resolution, so I’m not sure how it’ll look on other screen sizes. It’s in Spanish because the display will be in Spanish (since I’m Spanish XD)
After lots and lots of mistakes and errors and trying to find the best way to do it, I figured it out. Basically, I fused the two projects into the same folder so that the server can access all the local info (as you can see in the URL of the first two screenshots). I think this is the easiest way to do it and the one that works best for me. I know there’s only 1h 27m left, but I spent like 3 hours thinking about how to implement everything together. There are still some problems I have to solve. First of all, the /habit-tracker/ page was programmed using my phone’s resolution (as you can see in the last devblog). This may be a problem because now I basically have to copy and paste the habit tracker into the fourth menu (by “fourth menu” I mean the fourth button, the one with the fire emoji, that’s where the habit tracker goes). Since the habit tracker was programmed using my phone’s resolution, I don’t know how it’ll fit, and I don’t know how to “copy and paste” it either. The second problem… actually, I think that’s all. It was just one big problem after all XD
As you can see in the first picture, the habit tracker has a frame. It can seem like just an innocent design decision, spoiler: it wasn’t. What I was going to do was simply embed the habit tracker page into the main one with an iframe, but this is how it looked (second image). It’s weird, but I just had to increase the height and that should have been it. I don’t have a screenshot, but after that it still looked bad for three reasons: the frame, the buttons and I don’t know what caused but everything was just glichy. And with an iframe I can’t fix that, because it brings the page exactly as it is and I can’t touch anything from the outside. So I did some research about how I could import a page into my project, but only the part I wanted (in this case I didn’t want the frame or the buttons). I found fetch(). It downloads the HTML of the other page as plain text, and then DOMParser turns that text into a DOM I can modify before putting it on my page. So I keep only the .frame block, which already leaves the two nav buttons out because they live outside of it, and I switch the default view to the stats one instead of the daily checklist. After that it didn’t look exactly as I expected, but it was a quick fix. The CSS of the habit tracker and the CSS of the copy are not the same file, so if I modify one the other doesn’t change. I just changed some font sizes and that was it. Now the only thing I think is left (about the web part) is linking the buttons of the display with the functions I want them to do. I did this with the calendar, so it should be easy. Oh I almost forgot, the e-ink display don’t have grays so I will have to change the heatmap. PS: next screenshot for the final result.
It’s been a while since the last dev blog, although I feel like I didn’t make much progress. I “wasted” a lot of time programming things that in the end I had to redo. The thing is, I had to choose how I wanted to handle the communication between the web app, the phone, the ESP32, and everything else, and there are lots of ways to do it. In the end, I decided to build my own web app that only I can access, because it stores my information. Then I generate an API so the ESP32 can download the picture to display on the e-ink screen. I worked on the logic for that. Basically, I made a script that takes a screenshot of every item and sends one depending on the input. The ESP32 sends the input and the server returns the correct screenshot. The code also automatically generates a C array of the photo for the ESP32. Lastly, I organized the project, because it was getting messy.
10 hours of work since the last devblog. I’ve done a lot. I think I’m finished. I fisnish de login as you can see in the first screenshot. This way no one can acces my info. I finished the esp32 API wich will make it able access to the screenshots for the display without having to directly login. I used netfly for the host so now I can acces from every device and everything will be sync in, ass you can see in the second picture.
I submitted my project for review and I thought I would get a way to explain how it works, so since I didn’t, I’ll explain it here.Once you are in the web you’ll probably wonder how I send it to the esp32.A GitHub Action runs every 20 minutes. It opens chromium, logs into the web and takes a screenshot of each the screens. Then a python script rotates each one 90 degrees (the web is vertical, the panel is horizontal) and converts it into 4 levels of gray, 2 bits per pixel. That raw file is what gets uploaded to supabase, not the screenshot: the panel has no image decoder, it only takes a stream of bytes that maps directly to pixels. It downloads all the screens, so pressing a button doesn’t need any network at all: it just picks which file to push to the panel. That’s instant.The bucket is private, so the esp32 doesn’t have any supabase credentials. It sends its own API key, and that function is the one that reads the file.
I designed the case for the display. It was really hard since the exact dimensions of the display are not clear. What I did was download an existing case and modify it so it fits the buttons. I also wrote the ESP32 code....
|
1792749279.516753
|
1793354079.516753
|
|
54188
|
Tressette by @ilproscemo | Stardance
|
ilproscemo
|
1
|
40.34
|
55
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-25T15:59:47Z", "hours": 37.0, "multiplier": 5.51, "payout": 55, "blessing": "neutral", "text": "This is a card game that gets played in Italy. It uses Neapolitan cards and is very strategic", "repo": "https://github.com/lavitadei79-blip/tre-sette_by_ilproscemo", "demo": "https://ilproscemo.itch.io/tressettebyilproscemo"}]...
|
[{"post_id": 56579, "ts": "202 [{"post_id": 56579, "ts": "2026-08-28T12:04:30Z", "hours": 3.3406, "text": "Added better gameplay to the game by showing what card the player and opponent play, by placing big card images on the sides of the screen. Also added sound effects to the cards when they get place or picked up"}, {"post_id": 54408, "ts": "2026-08-25T12:35:32Z", "hours": 36.6294, "text": "I’ve built my favorite card game that I play here in Italy. I’m new to coding and a bit shy when I found out about Hackclub, so I didn’t understand that I had to log myself whilst coding and went straight to the chase and completed my game. It’s an awesome game I love playing it with my friends, and I hope you are going to love it too"}]...
|
Title: Tressette by @ilproscemo | Stardance
Devlo Title: Tressette by @ilproscemo | Stardance
Devlogs:
I’ve built my favorite card game that I play here in Italy. I’m new to coding and a bit shy when I found out about Hackclub, so I didn’t understand that I had to log myself whilst coding and went straight to the chase and completed my game. It’s an awesome game I love playing it with my friends, and I hope you are going to love it too
Added better gameplay to the game by showing what card the player and opponent play, by placing big card images on the sides of the screen. Also added sound effects to the cards when they get place or picked up
Ships:
This is a card game that gets played in Italy. It uses Neapolitan cards and is very strategic...
|
1793116223.4277406
|
1793202623.4277406
|
|
4665
|
ML-FacialTracking by @Vash | Stardance
|
Vash
|
1
|
40.22
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T13:36:37Z", "hours": 29.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A custom face tracker which only points towards the trained face with a clean dashboard. It uses : cv2 os time numpy logging pathlib from collections import deque from dataclasses import dataclass from typing import Optional, Tuple", "repo": "https://github.com/Vash-Codex/Servo-Facial-Tracking", "demo": "https://github.com/Vash-Codex/Servo-Facial-Tracking/releases"}]...
|
[{"post_id": 71703, "ts": "202 [{"post_id": 71703, "ts": "2026-09-21T10:49:17Z", "hours": 0.5583, "text": "Fixed bugs and worked on the things requested for the shipment of the project"}, {"post_id": 55527, "ts": "2026-08-27T13:08:31Z", "hours": 1.2414, "text": "Now I’ll be working on the github repo and will probably rewrite my github"}, {"post_id": 50882, "ts": "2026-08-20T10:42:05Z", "hours": 7.7594, "text": "Made an Eye like UI, actually 4 eye like UI for the Basic Face detection"}, {"post_id": 49493, "ts": "2026-08-18T11:08:57Z", "hours": 1.6597, "text": "Made a change in the ui… learnt how to create a toggle as well :)"}, {"post_id": 13659, "ts": "2026-06-22T12:39:21Z", "hours": 0.7844, "text": "found a major bug in face_tracker_lbph and arduino file, fixed it but had to use codex for it 😭😭"}, {"post_id": 11266, "ts": "2026-06-18T12:57:09Z", "hours": 0.59, "text": "Updated GitHub Readme and a bit of website to fix alignment issues, Now only going to work Representation mainly"}, {"post_id": 8082, "ts": "2026-06-13T14:28:59Z", "hours": 3.8544, "text": "Did a major improvement in the LBPH file to mainly improve performance, also made lapse of wiring arduino with the servo and a really bad cover out of waste cardboard because i don’t have a 3d printer😅😅"}, {"post_id": 6800, "ts": "2026-06-11T12:23:36Z", "hours": 1.9111, "text": "Worked on Arduino File"}, {"post_id": 6685, "ts": "2026-06-11T06:15:19Z", "hours": 4.6867, "text": "Designing a case for hardware, also improved a bit of code all thanks to stackoverflow"}, {"post_id": 6084, "ts": "2026-06-10T07:17:47Z", "hours": 12.1625, "text": "improved github, did some file management and improved/fixed train lbph- training for custom facial tracking"}, {"post_id": 4706, "ts": "2026-06-08T04:02:18Z", "hours": 2.3933, "text": "Worked on the Webpage and Facial Tracking"}, {"post_id": 2595, "ts": "2026-06-05T06:26:53Z", "hours": 1.5739, "text": "Working on a webpage to represent the whole project"}, {"post_id": 2167, "ts": "2026-06-04T14:46:55Z", "hours": 0.9728, "text": "Adding a Graphical User Interface"}]...
|
Title: ML-FacialTracking by @Vash | Stardance
Dev Title: ML-FacialTracking by @Vash | Stardance
Devlogs:
Adding a Graphical User Interface
Working on a webpage to represent the whole project
Worked on the Webpage and Facial Tracking
improved github, did some file management and improved/fixed train lbph- training for custom facial tracking
Designing a case for hardware, also improved a bit of code all thanks to stackoverflow
Worked on Arduino File
Did a major improvement in the LBPH file to mainly improve performance, also made lapse of wiring arduino with the servo and a really bad cover out of waste cardboard because i don’t have a 3d printer😅😅
Updated GitHub Readme and a bit of website to fix alignment issues, Now only going to work Representation mainly
found a major bug in face_tracker_lbph and arduino file, fixed it but had to use codex for it 😭😭
Made a change in the ui… learnt how to create a toggle as well :)
Made an Eye like UI, actually 4 eye like UI for the Basic Face detection
Now I’ll be working on the github repo and will probably rewrite my github
Fixed bugs and worked on the things requested for the shipment of the project
Ships:
A custom face tracker which only points towards the trained face with a clean dashboard. It uses : cv2 os time numpy logging pathlib from collections import deque from dataclasses import dataclass from typing import Optional, Tuple...
|
1793116349.2506514
|
1793202749.2506514
|
|
49489
|
ALL F1 Fans New Tab Page by @hackyc | Stardance
|
hackyc
|
0
|
40.2
|
0
|
[]
|
[{"post_id": 54207, "ts": "202 [{"post_id": 54207, "ts": "2026-08-25T02:58:45Z", "hours": 8.0733, "text": "Written test docs and sample tests for basic rendering man-testing."}, {"post_id": 53422, "ts": "2026-08-23T23:25:31Z", "hours": 10.0619, "text": "A lot of code formatting work and debugging of the widgets as they are moving around on the screen with different screen aspect ratios."}, {"post_id": 50193, "ts": "2026-08-19T10:13:04Z", "hours": 2.7822, "text": "Somewhat finished backend just need to plug in API keys now or find a way to use client side bypass (disclaimer: this is just sending normal request from clients, completely legal). Thank god live standing works!"}, {"post_id": 49891, "ts": "2026-08-18T21:08:55Z", "hours": 10.7092, "text": "HTML and JS backend mostly, only light front end work.Backend theme settings 80% done! Need to add actual images in."}, {"post_id": 49162, "ts": "2026-08-17T19:58:11Z", "hours": 7.2819, "text": "Finished project plan!"}, {"post_id": 48701, "ts": "2026-08-17T06:38:55Z", "hours": 1.0275, "text": "Written some starter docs. Will go into more detailed project planning tonight."}, {"post_id": 48077, "ts": "2026-08-16T11:18:34Z", "hours": 0.2625, "text": "Initialisation and research dump"}]...
|
Title: ALL F1 Fans New Tab Page by @hackyc | Stard Title: ALL F1 Fans New Tab Page by @hackyc | Stardance
Devlogs:
Initialisation and research dump
Written some starter docs. Will go into more detailed project planning tonight.
Finished project plan!
HTML and JS backend mostly, only light front end work.Backend theme settings 80% done! Need to add actual images in.
Somewhat finished backend just need to plug in API keys now or find a way to use client side bypass (disclaimer: this is just sending normal request from clients, completely legal). Thank god live standing works!
A lot of code formatting work and debugging of the widgets as they are moving around on the screen with different screen aspect ratios.
Written test docs and sample tests for basic rendering man-testing....
|
1792914625.0557652
|
1793778625.0557652
|
|
38011
|
Zinn by @robkoo | Stardance
|
robkoo
|
0
|
40.15
|
0
|
[]
|
[{"post_id": 39505, "ts": "202 [{"post_id": 39505, "ts": "2026-08-02T14:38:52Z", "hours": 2.9822, "text": "Devlog #11: Switching to Meson ( Commits: c65e483c45 , c1bdb7eb50 ) 4 changed files with 305 additions and 233 deletions Switching to Meson from a Makefile was quite an easy decision. Considering I want a cross-platform build system that is fast , Meson+Ninja stood out as the best possible candidate. On top of that, Meson easily supports cross-compilation, which fits my use case even more! Switch to Meson (Commit c65e483c45 ) The first commit that this devlog details contains the initial implementation of meson.build , and of a Makefile shim . meson.build I decided to write meson.build as idiomatically as possible. I followed the mesonbuild.com documentation for this purpose. Because of my project’s reliance on ISO C23, I had to make sure that Meson supports setting c23 as an option. That means ensuring Meson is above or equal to v1.4.0. The compilation flags and linking flags stay the exact same as in my previous Makefile, and on top of that, Meson checks whether a flag is supported and prints it right out while compiling! Makefile shim The only drawback I encountered while toying with Meson is that the commands can get quite lengthy. For example, to compile and run my project from nothing via meson looks something like this: meson setup build-debug --buildtype=debug -Db_ndebug=if-release && meson compile -C build-debug && ./build-debug/zinn While via my previous Makefile it looked like this: make debug && make run Of course, this has a lot to do with the fact that Meson saves a bunch of metadata, but nevertheless the flow is slower when trying to remember all the meson options. That’s why I created a Makefile shim. The term comes from Embedded Artistry , and it refers to a Makefile that acts as a front-end for Meson (in this case). I wrapped all the meson commands in neat Makefile targets, so I can just run make debug && make run all the same while still getting the valuable Meson features. Windows & cross-compilation support (Commit c1bdb7eb50 ) With Meson now working in my codebase, it was time for cross-platform support. Adding it was really easy. meson.build changes The only change in meson.build besides the Windows linker-flag section is that is_windows and is_mingw detection. cross folder & .ini file Cross-compilation is simply compiling code for a different computer on your own computer. In my case, I wanted to compile for Windows while staying on Linux. In my old Makefile this would be a huge hassle, but Meson only needs this little file to know the target and which cross-compiler binaries to use: [binaries] c = 'x86_64-w64-mingw32-gcc' ar = 'x86_64-w64-mingw32-ar' strip = 'x86_64-w64-mingw32-strip' windres = 'x86_64-w64-mingw32-windres' exe_wrapper = ['wine'] ... The last row is where the magic happens: exe_wrapper tells Meson to run any produced Windows binary through Wine, so I can test the cross-compiled output directly from Linux. What’s next? If you checked the attachment out, you can see a bunch of compilation errors; those are there on purpose. I have yet to update my actual code to support Windows."}, {"post_id": 39380, "ts": "2026-08-02T10:11:46Z", "hours": 3.4561, "text": "Devlog #10: Unit tests for CLI argument parser ( Commit: 90120d4b79 ) 5 changed files with 1448 additions and 11 deletions The last core module got its tests. 73 new tests for the CLI argument parser, which makes 341 tests across 7 suites. The parser has more unit tests than any other function in any suite. Schema(s) for the tests To test the parser you need something to parse, so I built a test schema that covers every option type. The main test schema has four options, each of a different type. Additionally, I made a few deliberately broken schemas for the failure paths: duplicate long names, duplicate short names, an empty schema, one with 33 options (one over the max), and one whose offset_in_config points straight out of the struct. Small fixes uncovered along the way Writing the tests exposed two issues worth mentioning. ZINN_EXPECT_DOUBLE_EQ dumped its constexpr double EPSILON into the surrounding scope. As soon as you’d use it twice in one scope, you’d run into redefinition errors. I simply wrapped the macro’s contents in a do {} while(0) loop to prevent this from happening. The default config values were magic numbers. Now they’re named constants ( ZINN_CLI_DEFAULT_WIDTH , …) living in the header, and the tests assert against those instead of hardcoded values. What the tests cover The zinn_cli_parse tests take up most at 65. The remaining 8 are split between 4 other functions, each with one nullptr path and happy-path. Schema validation and null checks (8 tests) Every error path of zinn_cli_parse : null schema, null argv, null config, plus each of the broken schemas from the harness, all bail with the correct error code. The help and version prescan (10 tests) This section is the interesting one, because the pre-scan for --help / --version is intentionally naive: it scans for the flag before any real parsing. So zinn --str --help returns OK with help set, even though --str is missing its required value. The tests pin down ordering: --version --help gives version, --help --version gives help, since the loop exits on the first hit. zinn -- --help will toggle the help boolean and skip the rest of the parse. The last case is a bug. In “./prog – –help” the pre-scan should identify the -- delimiter and exit the pre-scan loop without toggling the help boolean, thus letting it be parsed as a positional argument. Option forms (6 tests) Everything the parser accepts: --width 80 , --width=80 , -w 80 , -w80 , and mixed forms in a single invocation. Bundled values handle signs too, so -n-42 parses to -42. -shello (short for –str hello) also works correctly:) Positional arguments (10 tests) Positionals fill input_path then output_path ; a third one errors out. After -- the parser treats everything as a positional argument. Fun fact, if you pass -- twice, both get consumed as the “positional mode switcher”. Value and error handling (16 tests) An int option given abc , overflow past INT64_MAX, 1e309 against a double, values that themselves look like flags ( --num --flg ), empty values ( --str= , --num= ), and --str=a=b , where everything after the first equals sign becomes the value. Unknown options (3 tests) Both flag variants are asserted to reject unknown identifiers. Repeats and required options (12 tests) Last occurrence wins. Required option checking happens after the full parse. What’s next? With the final core module’s unit tests now done, I plan to switch build systems so the engine can work on both Linux and Windows flawlessly, which is a prerequisite for the beautiful media-to-ASCII pipeline."}, {"post_id": 37845, "ts": "2026-07-30T20:15:12Z", "hours": 4.7794, "text": "Devlog #9: CLI Argument Parser ( Commit: 870e5f9279 ) 7 changed files with 782 additions and 32 deletions The CLI argument parser is Zinn’s final core module. It’s built entirely from scratch, without any external dependencies. Other modules (string views, error handling, logger) were designed to be used seamlessly, and this is the first proof. The architecture The parser is built around declarative option schemas: const ZinnCliOption ZINN_CLI_OPTIONS [] = { {. long_name = ZINN_STRING_VIEW_INIT ( \"width\" ), . short_name = 'w' , . type = ZINN_CLI_TYPE_INT64 , . offset_in_config = offsetof ( ZinnConfig , width ), ...}, }; Each option knows its type, whether it’s required, and exactly which byte offset inside ZinnConfig to write to. The parser walks argv, matches tokens against schema entries, and writes parsed values directly into the config struct via offsetof + pointer arithmetic. This prevents huge bug-prone switch statements you’d have to write (or copy-paste) if using getopt , for example. The schema validates itself at parse time: duplicate short/long names, offsets exceeding the config struct, zero options, and too many options all get caught before any argv is touched. For the caller, using this module is rather simple. Declare the schema, call zinn_cli_parse( /*...*/ ) , handle failure, and the config is provided nicely in a structure. Following the code style The original parsing function I wrote was a huge, monolithic function with over 200 lines. I extracted what I could: _zinn_validate_schema : validates the schema itself _zinn_pre_scan_help_version : early return for --help / --version before parsing errors can block them _zinn_write_option_value : type-dispatching write via offsetof /switch The main loop is still ~150 lines. The long-option and short-option matching share too many moving parts: the argv index i (which gets bumped for next-arg values), matched_index (required-flag tracking), the positional_only flag, and the token itself. Extracting them would mean threading half a dozen mutable out-parameters through a helper that’s only called once. Technically , the parsing function breaks the code style, but it would’ve been too much trouble than its worth to try and extract anything more. (Also, I wrote the rules, so I can do whatever I want) Safety I own the entire error path. Every parse failure captures file, function, line, and a description in the diagnostic stack. Run --width=abc and you get a trace pointing to the exact switch case that failed, plus a Use ‘–help’ hint (see 2nd attachment) . You don’t get that from getopt returning '?' . What’s next? After adding a new module, unit tests follow, as usual."}, {"post_id": 37119, "ts": "2026-07-29T16:34:17Z", "hours": 2.9103, "text": "Devlog #8: Unit tests for String View ( Commit: 63f7ec3f88 ) 5 changed files with 1402 additions and 2 deletions After building the string view module, I did what any sane person would do: wrote 110 tests for it. The new “String View” suite brings the total test count to 260 across 6 suites, and the assertion count to over 1000!!! How the heck did you write 1402 new lines of “code” in 140 minutes? If we exclude comments and blank lines, that’s still a lot of lines. The answer is simple: the editor I use is Neovim, which allows me to use find & replace (see first attachment), quickly copy, delete, manoeuvre lines with simple keybinds, and much more! In the attachment you can see me writing the general structure of roughly 20 tests in one single command, thus saving me 10s of minutes. I simply then replace the test-specific data and assertions and I’m all set! New test macro: ZINN_EXPECT_DOUBLE_EQ Floating point equality is a lie. ZINN_EXPECT_EQ converts to uintptr_t under the hood. It being an integer type, any floating point number you convert to uintptr_t gets its floating part cut off. So I added ZINN_EXPECT_DOUBLE_EQ for checking equality of floating point numbers. Test helpers Two local macros keep the test file from being even longer than it already is: EXPECT_ZINN_STRING_VIEW_NULLPTR(sv) EXPECT_ZINN_STRING_VIEW_VALID(sv, e_data, e_len) Each macro expands to a few lines of code, which might seem pointless at first, but for 110 tests that use the macro, it adds up. What got tested Every public function in the string view module was tested thoroughly: null pointers, empty inputs, boundary values, and at least one “happy” path. Constructors and macros (8 tests) Both constructor macros are verified. from_parts rejects null data and zero length. from_cstring rejects null and empty C strings. Slicing and trimming (23 tests) subview is tested with the offset past the end, offset equal to length, zero count, clamping when count overshoots, exact fits, and partial slices. Each trim variant has tests for null input, no whitespace, some whitespace, all whitespace, and mixed content with whitespace only on one side. Comparison and matching (45 tests) equals checks length mismatch, null data on either side, the same-pointer fast path, exact match, and content mismatch. equals_case_insensitive goes further: same categories plus non-ASCII bytes (the lookup table should pass them through unchanged) and a mismatch on the last character to make sure the loop doesn’t stop early. starts_with and ends_with both test null data, null prefix/suffix, empty prefix/suffix (should return true), empty source (should return false), prefix/suffix longer than the source, match, and no match. find_char tests null data, null out pointer, empty view, char not found, and found at positions first, middle, and last. split_first has the most edge cases: null output pointers independently, null string view, empty string view, delimiter not found, delimiter at start, middle, end, and a single character that is the delimiter. Number parsing (35 tests) to_int64 and to_double are the heaviest. Both test null out, null data, whitespace only, trimming working, buffer overflow, overflow/underflow via ERANGE, no digits, and partial parses like \"123abc\" . to_int64 additionally tests positive, negative, zero, INT64_MIN, INT64_MAX, plus sign prefix, and a lone hyphen. to_double additionally tests basic, scientific notation, negative, plus prefix, integer-only input, nan, inf, -inf, decimal-only like \".5\" , and a bare dot. What’s next? Yet another core module. Regardless of what it is, I’m still hours away from coding some fun ASCII conversions.."}, {"post_id": 36972, "ts": "2026-07-29T12:24:07Z", "hours": 3.0908, "text": "Devlog #7: String View ( Commit: 656a879786 ) 3 changed files with 624 additions and 4 deletions The next core module I built was the string view. The primary goal of this module was to build it fast, avoid heap allocation, ambiguity, and make it “bulletproof”. My reasoning behind making this module is simple: it will be heavily used in the upcoming CLI argument parser and the media-to-ascii engine. The struct and constructors ZinnStringView is dead simple, just a const char* data and a size_t length . Two constructors build views from either explicit parts or null-terminated C strings. Both return ZINN_STRING_VIEW_NULLPTR if you pass them null or empty data. The literal macro The coolest part of this module is ZINN_STRING_VIEW_LITERAL() . It wraps a string literal at compile time using _Generic to detect whether you passed an actual literal or a pointer variable. ZinnStringView sv1 = ZINN_STRING_VIEW_LITERAL ( \"hello\" ); // works ZinnStringView sv2 = ZINN_STRING_VIEW_LITERAL ( pointer ); // compile error (see attachment) If you pass a variable, _Generic sees char* or const char* and the static_assert fires with a message telling you to use zinn_string_view_from_cstring() instead. Also, while making the attachment I realized what I wrote is actually not correct for C23, as you cannot have static assertions in expressions. This is only a feature in the upcoming C2Y (C29) standard. Implemented functions Generally, I preferred using standard library functions as they are battle-tested, and more often than not use SIMD instructions for much faster execution than whatever I could come up with. Slicing and trimming zinn_string_view_subview gives you a sub-slice with bounds clamping. If offset is past the end you get ZINN_STRING_VIEW_NULLPTR . If offset + count overshoots, it clamps down. The three trim functions share one implementation behind an enum that controls whether to trim left, right, or both. Comparison and matching I built a 256-byte lookup table that maps A-Z to a-z for case-insensitive comparison. It’s locale-independent, so no tolower() surprises on Turkish systems. find_char delegates to memchr , which your libc likely implements with SIMD (16-32 bytes per cycle). starts_with and ends_with are just memcmp with an offset. split_first finds the delimiter via memchr and chops the view in two. Number parsing Parsing from a string view is tedious because standard library functions expect null-terminated strings. The solution is to copy into a small stack buffer, null-terminate it, and call the respective function. The double variant uses strtod_l with a POSIX “C” locale so \"3.14\" is parsed correctly even if the user’s system uses commas as decimal separators. Both trim whitespace first, check for overflow via errno, and reject partial parses like \"123abc\" . What’s next? My favorite activity, unit tests!"}, {"post_id": 36059, "ts": "2026-07-27T22:07:03Z", "hours": 1.8728, "text": "Devlog #6: Unit tests for Error Handling ( Commit: 252eb6d937 ) 5 changed files with 1312 additions and 0 deletions After implementing the error code system, diagnostic stack, and scope guard, I needed to make sure they actually work before I start building on top of them. So, my favorite activity, writing unit tests, was awaiting me with 64 more tests across 3 new suites. New test macro: ZINN_EXPECT_EQ_STR The diagnostic stack tests compare message strings. ZINN_EXPECT_EQ would compare pointer addresses if you passed strings, not contents, so I added a strcmp based variant: ZINN_EXPECT_EQ_STR ( frame -> message , \"42 hi\" ); On failure it prints actual vs expected strings, which makes debugging test failures a lot easier. Error Code (16 tests) The tests verify that each field lands in the correct position and that overflows are safely masked out: “Round-trip” : pack ZINN_DOMAIN_LOGGER | ZINN_SEVERITY_INFO | 0x42 , then extract each field and verify Overflow tests : the masks ( 0xFFFFF , 0xFF , 0xF ) clip overflowed fields back to zero, tested with values one past each bit boundary Max values : 0xFF domain, 0xF severity, 0xFFFFF code all survive the round trip All 6 predefined codes : decoded and checked against expected domain/severity/code down to the exact values Diagnostic Stack (36 tests) Raw push/pop/peek/clear Push : basic field assignment, null file maps to \"unknown\" , null function maps to \"unknown\" , null format maps to \"(none)\" , empty format produces empty string, printf args ( \"%d %s\" , 42 , \"hi\" ) produce \"42 hi\" , truncation at exactly 127 bytes + null terminator at 128 Push overflow : fill all 16 slots, the 17th push returns false , depth stays pinned at 16, the last valid frame is untouched Pop : once from a non-empty stack decrements depth, pop on an empty stack is a no-op, pop 3 of 5 leaves depth at 2, pop all 16 resets to 0 Peek : empty stack returns nullptr , non-empty returns the top frame (LIFO: second push overwrites the peek target), after clear returns nullptr Clear : empty stack stays at 0, stack with 5 frames resets to 0 Convenience macros Each macro has its own test helper and multiple assertions: ZINN_DIAGNOSTICS_PUSH : verifies __FILE__ , __func__ , __LINE__ are injected, with and without format args ZINN_RETURN_IF_ERR : passing ZINN_OK skips the frame and returns OK; passing an error pushes a frame containing \"Propagated error\" and returns the error ZINN_RETURN_IF : condition true: pushes \"Condition failed (true)\" and returns the error; false: no frame, returns OK. ZINN_TRY : wraps a successful call (forwards the value), wraps a failing call (pushes \"TRY macro captured failure\" , returns the error) ZINN_CHECK_ERROR : the only macro that doesn’t return. After pushing a frame, execution continues. Verified with a continued flag, format args, and a static message Integration Two isolation tests: one interleaves push/pop/push and verifies frame independence (frame 0 still holds \"0\" after pops, frame 1 holds \"new\" ). The other pushes two frames with different error codes and verifies LIFO ordering and the peek return value at each step. Scope Guard (12 tests) Scope guards fire implicitly when a scope exits. Tested with global counters for basic fire, multiple guards, early return, null-safety, nested scopes, named guards, disarm, double-disarm, and direct execute() calls with null/disarmed/null-cleanup guards. What’s next? With 160 tests across 5 suites, I can take a short break from writing unit tests. Next up is the CLI argument parser (probably) the final core module before I can get to the fun ASCII stuff."}, {"post_id": 35347, "ts": "2026-07-26T17:53:08Z", "hours": 3.8894, "text": "Devlog #5: Error Handling Overhaul ( Commits: 52515268fe - 91402e3215 ) 18 changed files with 1153 additions and 547 deletions I wasn’t happy with the old error handling. A flat enum doesn’t tell you what went wrong or how bad it is. So I tore it out and replaced it. I’m proud of this module because it uses modern C23 features everywhere you look, is fast, secure, and gives me the important debugging info in case something goes wrong. Thread-safe error and diagnostic module ( 52515268fe ) This commit contains the initial implementation of the module, although with a few bugs I addressed in one of the two later commits. Warning! This commit DOES NOT compile. I haven’t refactored the codebase to use the new error handling implemented in this commit. Bit-packed error codes The new zinn_err_t is a uint32_t with three fields packed into it: [8 bits domain | 4 bits severity | 20 bits code] Domain identifies the module. Severity says how bad it is. Code is the specific error number. Diagnostic stack A thread_local fixed-depth LIFO stack (max 16 frames, 128 message chars each). Every frame records file, function, line, the packed error code, a human-readable message, and a unix timestamp. Pushing a frame manually is tedious, so I wrote macros that inject them for you. Higher-level macros build on this: ZINN_RETURN_IF(condition, error) : if true, push a frame and return the error ZINN_RETURN_IF_ERR(expression) : if the expression fails, push and return ZINN_TRY(expression) : same, but evaluates to the expression’s value on success ZINN_CHECK_ERROR(call, message, ...) : push a frame if error, but keep going zinn_diagnostics_dump_frames() dumps the whole stack to stderr with colored formatting, newest first. Check the attachment to see the stack dump in a terminal. Contains all the info you’d ever need. Scope guard C doesn’t have RAII. But GCC has __attribute__((cleanup)) . The scope guard module wraps it: ZINN_DEFER_CLEANUP ( function , pointer ) This declares a local guard that calls function(pointer) when the scope exits, whether by normal return or early return. You can disarm it with ZINN_SCOPE_GUARD_DISARM(name) if you transfer ownership. The logger now uses this for mutex cleanup. The old code scattered manual pthread_mutex_unlock() calls across every return path. One missed unlock would deadlock the whole process. Refactoring the codebase ( de25c634a0 , 91402e3215 ) The codebase was refactored to use the new error handling and diagnostic functions, macros and types. A few examples: Logger : returns zinn_err_t everywhere; precondition checks use ZINN_RETURN_IF ; mutex handling uses scope guards Arena : zinn_arena_create changed from returning a pointer to returning an error code with an output parameter. Every error site now pushes a diagnostic frame with details Tests : adapted to the new API. Fixed several real bugs along the way: missing fclose() calls that leaked file descriptors and a renamed internal function amongst a few others The test count also dropped from 50 to 49 Logger tests because I removed a redundant test. What’s next? With the error handler now functional, it will be finally time for the (probably) final core mod-… oh wait. Nevermind that. Next I have to write a ton of unit tests for this new module. Lucky me!"}, {"post_id": 34700, "ts": "2026-07-25T16:58:02Z", "hours": 7.1439, "text": "Devlog #4: Arena Allocator & Test Framework improvements ( Commits: bd81ab254f - ba67b8cade ) 8 changed files with 1638 additions and 44 deletions This devlog covers another core module, the Arena Allocator , as well as improvements to the test framework. Implementing this took quite some time, due to the fact that I want to make sure the codebase stays secure and fast. Arena Allocator ( bd81ab254f ) The next core module I implemented is a linear arena allocator , the polar opposite of a general-purpose malloc. The whole purpose is simple: no free individual allocations. Just bump a pointer and reset the whole thing when you’re done. It’s also quite fast. Alignment without compromise Every pointer returned by the arena is aligned to max_align_t (typically 16 bytes on x86-64). When the CPU loads an 8-byte value from an aligned address, the memory controller fetches a single 64-byte cache line in one transaction. The bytes land in the CPU’s load buffer in order, and execution continues the next cycle. When the same load is unaligned (say, address 0x1003 instead of 0x1000 ), the 8 bytes straddle two cache lines: 0x1000 and 0x1040 . The memory controller now issues two separate cache line fills , the load buffer stitches the result together from the two halves, and the pipeline stalls waiting for the second request to arrive. On modern x86-64 this penalty is roughly 2-3x the latency of an aligned load. For an allocator focused on speed, every allocation must be aligned. The arena guarantees this in two branchless instructions: uintptr_t raw = ( uintptr_t ) arena -> memory + arena -> offset ; uintptr_t aligned = ( raw + 15 ) & ~ 15 ; Snapshots The snapshot API ( zinn_arena_snapshot_begin / zinn_arena_snapshot_end ) lets you checkpoint the arena offset and roll back to it later. In debug builds the rolled-back region is poisoned with 0xAA so dangling reads are immediately obvious. Unit tests for the Arena ( 966c4c289e ) 47 thorough tests covering just about everything about the arena. Test Framework improvements High-precision execution timing ( efd7239d47 ) Every test function’s runtime is now measured. The runtime is printed next to the PASS/FAIL label with microsecond precision. Check out the second attachment. This commit also fixes a subtle C23 compatibility issue: nullptr has type nullptr_t under C23, which can’t be directly cast to uintptr_t . I added a _Generic dispatching macro ( ZINN_TO_PTR ) that maps nullptr_t to (void*)0 while leaving everything else untouched. The failure messages also got an upgrade: actual and expected values are now printed numerically instead of a bare expression string. Test run summary ( ba67b8cade ) The original test runner supported one suite at a time. You’d call zinn_test_summary() and get a single block. Now the architecture is multi-suite. The final output is a detailed breakdown: Per-suite: runtime, tests run/passed/failed, assertions made Global: success rate percentage, throughput (tests/second), average latency per test, slowest suite with its share of total time Check out the first attachment if you are curious how it looks. What’s next? With memory management settled and testing infrastructure solid, the next milestone is an error handler ."}, {"post_id": 33203, "ts": "2026-07-22T22:06:46Z", "hours": 4.5669, "text": "Devlog #3: Test Suite ( Commit: d1e7b17ad9 ) 8 changed files with 1264 additions and 30 deletions The next priority wasn’t to build more features, but to ensure that the ones I have are unbreakable. Thus, I’ve implemented a custom, zero-dependency Unit Testing Framework and a comprehensive suite of 50 tests for the Logger module. Why Build a Custom Test Suite? Because of my ego in the way, I didn’t want to rely on heavy external libraries like GoogleTest or Check (or any external library, for that matter). The result? Isolated Singleton Management : I added a “Backdoor” ( _zinn_log_reset_internal ) to Logger that allows the test suite to scrub the global state of the Logger between runs. This ensures that every test starts with a clean state, which prevents state-leakage bugs. Assertion Precision : Using C23 macros, I built EXPECT and ASSERT checks that capture the exact file and line number of any failure. Clean Output : The test runner provides colored feedback and a final summary. I also updated the Makefile to add a test target, which compiles all source files EXCLUDING main.c (as I have a custom test_main.c ), test files, and runs the tests. The Logger Unit Tests (50 tests) Instead of being lazy, I decided to write a test for everything imaginable for the Logger. This may seem pointless, even redundant at times, but as I say, better be safe than sorry. 1. Lifecycle Verification Proving that Init/Shutdown/Reset cycles don’t leak memory or leave the mutex in a deadlocked state. I verified that the Logger returns to a “Zero State” after shutdown, allowing it to be safely re-initialized later. 2. Boundary Protection & Buffer Safety This was the most critical part. I wrote a “ruler” test to verify exactly what happens when the 1024-character message buffer is exceeded. By analyzing the memory buffer line-by-line, I proved that the logic correctly truncates and appends ... at the exact 1023rd byte without overflowing the stack. 3. Null-Pointer Safety Every public function was tested with nullptr arguments. Where applicable, of course. 4. Logic & Metadata Verification Using fmemopen() to capture the logger’s output in memory, I verified the exact formatting of timestamps, ANSI colors, and source-location metadata. Ajajaj, yet another POSIX-only function. Surely this won’t backfire… What’s Next? Now that the Test Suite is done, and Logger unit tests are written, it’s finally time to tackle yet another core component, this time it being a custom (minimalist) memory allocator ."}, {"post_id": 33003, "ts": "2026-07-22T15:19:45Z", "hours": 0.4203, "text": "Devlog #2: Doxygen integration ( Commit: 94277b5487 ) 7 changed files with 89 additions and 16 deletions Doxyfile This is a very short devlog, as it was a very short integration. I simply added a Doxyfile , which controls how the documentation will be generated. I set it according to my project, e.g. a C project, the project name, what directories it should traverse etc. Makefile update To make the documentation generation and opening as seamless as possible, I added a docs target to the Makefile , which checks if you have doxygen installed. If not, it throws a simple error message and doesn’t proceed. Once it’s verified that doxygen is available, it generates the documentation and opens it in your default browser via xdg-open . Comments While I was going through the codebase for a final check of the comments, I noticed a few functions didn’t have any Doxygen comments whatsoever (especially the static ones) and a few things were incorrectly documented. I added and fixed comments for clean doxygen documentation. Attachment In the attachment you can see the generated HTML documentation for a few functions located in logger.c . Notice the @note being displayed neatly with a yellow background on the website."}, {"post_id": 32987, "ts": "2026-07-22T14:43:03Z", "hours": 3.4797, "text": "Devlog #1: Logger implementation ( Commit b565bfd1f7 ) 6 changed files with 594 additions and 9 deletions The first core module I implemented is the Logger . I feel like I spent a huge amount of time on this, but it was well worth it, as it’s a marvel. Below you can read about the engineering of the logger. The engineering of the Logger This is a quick overview, for the full context you can check out the source code. Multi-Stage Gating (Compile-Time + Runtime) The logger uses a two-tier filtering system. Compile-Time: Using C23 variadic macros and __VA_OPT__ , the logger identifies the build type. In a release build, TRACE and DEBUG calls are completely stripped from the binary. They don’t just “not print”; they don’t exist in the final machine code. Runtime: Even for levels that survive the preprocessor, the logger checks the internal state before doing any work. This ensures that there is no wasted time on string formatting or timestamping. Thread-Safe Singleton Architecture While zinn doesn’t use multithreading yet, I felt like it’s best to “future-proof” the Logger by guarding everything with pthread . This ensures, that whenever (or if at all) I add multithreading, the stream output will be clean and not a garbled mess of characters. Runtime stream redirection Again, this isn’t used currently, so this is another “future-proofing” measure. The logger can seamlessly start writing into any stream desired, as long as it exists. This will be used in the future, but no spoilers as to what will use it ;) Modern C23 & POSIX Integration Precision Timing: Using C23 timespec_get and localtime_r for nanosecond-precision timestamps with thread-safe formatting. Compiler Safety: The logging function is marked with [[gnu::format(printf, x, y)]] , allowing the compiler to catch type-mismatches in log messages at build-time. Deterministic Memory: Zero malloc . All formatting happens in a fixed 1024-byte stack buffer. This also prevents nasty, difficult-to-catch memory bugs, which could be fatal in a core module such as the logger. Screenshots explanation 1st screenshot This screenshot perfectly demonstrates the preprocessor filtering. Notice the difference between the release and debug runs. In release , the TRACE log is vanished. In debug , the logger is fully verbose. This confirms that the compile-time filtering is working. 2nd screenshot Showcase of multiple severities, as well as the FATAL one. Notice the Return code: 2 at the bottom. This proves that the logger successfully captured the error, flushed the stream, and triggered a clean abort() to prevent further corruption. Ignore the makefile error, I suspect it occurs when I run make run , and the binary exits abnormally (e.g. return code != 0), it thinks it’s an error. 3rd screenshot Compared the the previous screenshot (right above), you can see the TRACE log level appears. This didn’t show in the previous screenshot as the minimum log level was higher than TRACE , thus showing the minimum log level works. 4th screenshot Here you can see how the code looked for the previous two screenshots. In the init function ( zinn_log_init ), you pass the minimum log level as the parameter, so when it was ZINN_LOG_TRACE , it logged all the severities. When it was something higher, it didn’t log TRACE , for example. If you were to take a look at the code on the repository, you might notice that it is a bit different. That is due to this screenshot being a bit old, and I’ve went through like 2 hours of improving the Logger:) Future plans With the first core module done, the only correct next step is to implement another core feature."}, {"post_id": 32395, "ts": "2026-07-21T15:30:56Z", "hours": 1.5544, "text": "Devlog #0: Project setup ( Commits: d377087563 - 7874ad3cc6 ) 10 changed files with 1056 additions and 0 deletions For zinn , I decided that the foundation had to be as robust as the final output. Before writing a single line of code, I spent the first hour or so building a thorough foundation from scratch. C Standard For this project I have decided to use the latest C23 standard. Why? The answer is simple: modern features. nullptr : Replaces the macro NULL . It’s a real type, which prevents type-confusion bugs and makes the code’s intent explicit. constexpr : This allows us to define constants with full type safety. More importantly, its value is known at compile-time , thus the compiler can catch math errors or type mismatches before the code even runs. And many others… Code Style I have outlined the code style that will be followed in this codebase. The whole file can be found here . Directory Structure The directory structure is simple: . ├── bin <-- contains executable binaries ├── build <-- contains intermediate files ├── include <-- contains header files, allows sub-dirs └── src <-- contains source files, allows sub-dirs Makefile I have developed a recursive Makefile that supports multiple build confiruations (Debug, Release, Sanitize, Coverage). It features: Zero-Collision Objects: Isolated build directories prevent flag contamination between build configurations. Static Analysis: The Makefile has targets for clang-tidy , cppcheck and GCC’s -fanalyzer . Dependency Tracking: Using -MMD -MP flags to automatically generate header dependencies. This means the build system is “smart”; it only recompiles what is absolutely necessary. Order-Only Directories: Using advanced Makefile logic (the pipe | ) to handle folder creation. This prevents “ghost recompilation” where the binary is rebuilt just because a folder’s timestamp changed. License The project is licensed under GPLv3, which ensures it stays as FOSS (Free and Open Source Software) forever. Future plans Next, I plan to implement bulletproof core components, such as a logger and CLI argument parser ."}]...
|
Title: Zinn by @robkoo | Stardance
Devlogs:
Devlo Title: Zinn by @robkoo | Stardance
Devlogs:
Devlog #0: Project setup ( Commits: d377087563 - 7874ad3cc6 ) 10 changed files with 1056 additions and 0 deletions For zinn , I decided that the foundation had to be as robust as the final output. Before writing a single line of code, I spent the first hour or so building a thorough foundation from scratch. C Standard For this project I have decided to use the latest C23 standard. Why? The answer is simple: modern features. nullptr : Replaces the macro NULL . It’s a real type, which prevents type-confusion bugs and makes the code’s intent explicit. constexpr : This allows us to define constants with full type safety. More importantly, its value is known at compile-time , thus the compiler can catch math errors or type mismatches before the code even runs. And many others… Code Style I have outlined the code style that will be followed in this codebase. The whole file can be found here . Directory Structure The directory structure is simple: . ├── bin <-- contains executable binaries ├── build <-- contains intermediate files ├── include <-- contains header files, allows sub-dirs └── src <-- contains source files, allows sub-dirs Makefile I have developed a recursive Makefile that supports multiple build confiruations (Debug, Release, Sanitize, Coverage). It features: Zero-Collision Objects: Isolated build directories prevent flag contamination between build configurations. Static Analysis: The Makefile has targets for clang-tidy , cppcheck and GCC’s -fanalyzer . Dependency Tracking: Using -MMD -MP flags to automatically generate header dependencies. This means the build system is “smart”; it only recompiles what is absolutely necessary. Order-Only Directories: Using advanced Makefile logic (the pipe | ) to handle folder creation. This prevents “ghost recompilation” where the binary is rebuilt just because a folder’s timestamp changed. License The project is licensed under GPLv3, which ensures it stays as FOSS (Free and Open Source Software) forever. Future plans Next, I plan to implement bulletproof core components, such as a logger and CLI argument parser .
Devlog #1: Logger implementation ( Commit b565bfd1f7 ) 6 changed files with 594 additions and 9 deletions The first core module I implemented is the Logger . I feel like I spent a huge amount of time on this, but it was well worth it, as it’s a marvel. Below you can read about the engineering of the logger. The engineering of the Logger This is a quick overview, for the full context you can check out the source code. Multi-Stage Gating (Compile-Time + Runtime) The logger uses a two-tier filtering system. Compile-Time: Using C23 variadic macros and __VA_OPT__ , the logger identifies the build type. In a release build, TRACE and DEBUG calls are completely stripped from the binary. They don’t just “not print”; they don’t exist in the final machine code. Runtime: Even for levels that survive the preprocessor, the logger checks the internal state before doing any work. This ensures that there is no wasted time on string formatting or timestamping. Thread-Safe Singleton Architecture While zinn doesn’t use multithreading yet, I felt like it’s best to “future-proof” the Logger by guarding everything with pthread . This ensures, that whenever (or if at all) I add multithreading, the stream output will be clean and not a garbled mess of characters. Runtime stream redirection Again, this isn’t used currently, so this is another “future-proofing” measure. The logger can seamlessly start writing into any stream desired, as long as it exists. This will be used in the future, but no spoilers as to what will use it ;) Modern C23 & POSIX Integration Precision Timing: Using C23 timespec_get and localtime_r for nanosecond-precision timestamps with thread-safe formatting. Compiler Safety: The logging function is marked with [[gnu::format(printf, x, y)]] , allowing the compiler to catch type-mismatches in log messages at build-time. Deterministic Memory: Zero malloc . All formatting happens in a fixed 1024-byte stack buffer. This also prevents nasty, difficult-to-catch memory bugs, which could be fatal in a core module such as the logger. Screenshots explanation 1st screenshot This screenshot perfectly demonstrates the preprocessor filtering. Notice the difference between the release and debug runs. In release , the TRACE log is vanished. In debug , the logger is fully verbose. This confirms that the compile-time filtering is working. 2nd screenshot Showcase of multiple severities, as well as the FATAL one. Notice the Return code: 2 at the bottom. This proves that the logger successfully captured the error, flushed the stream, and triggered a clean abort() to prevent further corruption. Ignore the makefile error, I suspect it occurs when I run make run , and the binary exits abnormally (e.g. return code != 0), it thinks it’s an error. 3rd screenshot Compared the the previous screenshot (right above), you can see the TRACE log level appears. This didn’t show in the previous screenshot as the minimum log level was higher than TRACE , thus showing the minimum log level works. 4th screenshot Here you can see how the code looked for the previous two screenshots. In the init function ( zinn_log_init ), you pass the minimum log level as the parameter, so when it was ZINN_LOG_TRACE , it logged all the severities. When it was something higher, it didn’t log TRACE , for example. If you were to take a look at the code on the repository, you might notice that it is a bit different. That is due to this screenshot being a bit old, and I’ve went through like 2 hours of improving the Logger:) Future plans With the first core module done, the only correct next step is to implement another core feature.
Devlog #2: Doxygen integration ( Commit: 94277b5487 ) 7 changed files with 89 additions and 16 deletions Doxyfile This is a very short devlog, as it was a very short integration. I simply added a Doxyfile , which controls how the documentation will be generated. I set it according to my project, e.g. a C project, the project name, what directories it should traverse etc. Makefile update To make the documentation generation and opening as seamless as possible, I added a docs target to the Makefile , which checks if you have doxygen installed. If not, it throws a simple error message and doesn’t proceed. Once it’s verified that doxygen is available, it generates the documentation and opens it in your default browser via xdg-open . Comments While I was going through the codebase for a final check of the comments, I noticed a few functions didn’t have any Doxygen comments whatsoever (especially the static ones) and a few things were incorrectly documented. I added and fixed comments for clean doxygen documentation. Attachment In the attachment you can see the generated HTML documentation for a few functions located in logger.c . Notice the @note being displayed neatly with a yellow background on the website.
Devlog #3: Test Suite ( Commit: d1e7b17ad9 ) 8 changed files with 1264 additions and 30 deletions The next priority wasn’t to build more features, but to ensure that the ones I have are unbreakable. Thus, I’ve implemented a custom, zero-dependency Unit Testing Framework and a comprehensive suite of 50 tests for the Logger module. Why Build a Custom Test Suite? Because of my ego in the way, I didn’t want to rely on heavy external libraries like GoogleTest or Check (or any external library, for that matter). The result? Isolated Singleton Management : I added a “Backdoor” ( _zinn_log_reset_internal ) to Logger that allows the test suite to scrub the global state of the Logger between runs. This ensures that every test starts with a clean state, which prevents state-leakage bugs. Assertion Precision : Using C23 macros, I built EXPECT and ASSERT checks that capture the exact file and line number of any failure. Clean Output : The test runner provides colored feedback and a final summary. I also updated the Makefile to add a test target, which compiles all source files EXCLUDING main.c (as I have a custom test_main.c ), test files, and runs the tests. The Logger Unit Tests (50 tests) Instead of being lazy, I decided to write a test for everything imaginable for the Logger. This may seem pointless, even redundant at times, but as I say, better be safe than sorry. 1. Lifecycle Verification Proving that Init/Shutdown/Reset cycles don’t leak memory or leave the mutex in a deadlocked state. I verified that the Logger returns to a “Zero State” after shutdown, allowing it to be safely re-initialized later. 2. Boundary Protection & Buffer Safety This was the most critical part. I wrote a “ruler” test to verify exactly what happens when the 1024-character message buffer is exceeded. By analyzing the memory buffer line-by-line, I proved that the logic correctly truncates and appends ... at the exact 1023rd byte without overflowing the stack. 3. Null-Pointer Safety Every public function was tested with nullptr arguments. Where applicable, of course. 4. Logic & Metadata Verification Using fmemopen() to capture the logger’s output in memory, I verified the exact formatting of timestamps, ANSI colors, and source-location metadata. Ajajaj, yet another POSIX-only function. Surely this won’t backfire… What’s Next? Now that the Test Suite is done, and Logger unit tests are written, it’s finally time to tackle yet another core component, this time it being a custom (minimalist) memory allocator .
Devlog #4: Arena Allocator & Test Framework improvements ( Commits: bd81ab254f - ba67b8cade ) 8 changed files with 1638 additions and 44 deletions This devlog covers another core module, the Arena Allocator , as well as improvements to the test framework. Implementing this took quite some time, due to the fact that I want to make sure the codebase stays secure and fast. Arena Allocator ( bd81ab254f ) The next core module I implemented is a linear arena allocator , the polar opposite of a general-purpose malloc. The whole purpose is simple: no free individual allocations. Just bump a pointer and reset the whole thing when you’re done. It’s also quite fast. Alignment without compromise Every pointer returned by the arena is aligned to max_align_t (typically 16 bytes on x86-64). When the CPU loads an 8-byte value from an aligned address, the memory controller fetches a single 64-byte cache line in one transaction. The bytes land in the CPU’s load buffer in order, and execution continues the next cycle. When the same load is unaligned (say, address 0x1003 instead of 0x1000 ), the 8 bytes straddle two cache lines: 0x1000 and 0x1040 . The memory controller now issues two separate cache line fills , the load buffer stitches the result together from the two halves, and the pipeline stalls waiting for the second request to arrive. On modern x86-64 this penalty is roughly 2-3x the latency of an aligned load. For an allocator focused on speed, every allocation must be aligned. The arena guarantees this in two branchless instructions: uintptr_t raw = ( uintptr_t ) arena -> memory + arena -> offset ; uintptr_t aligned = ( raw + 15 ) & ~ 15 ; Snapshots The snapshot API ( zinn_arena_snapshot_begin / zinn_arena_snapshot_end ) lets you checkpoint the arena offset and roll back to it later. In debug builds the rolled-back region is poisoned with 0xAA so dangling reads are immediately obvious. Unit tests for the Arena ( 966c4c289e ) 47 thorough tests covering just about everything about the arena. Test Framework improvements High-precision execution timing ( efd7239d47 ) Every test function’s runtime is now measured. The runtime is printed next to the PASS/FAIL label with microsecond precision. Check out the second attachment. This commit also fixes a subtle C23 compatibility issue: nullptr has type nullptr_t under C23, which can’t be directly cast to uintptr_t . I added a _Generic dispatching macro ( ZINN_TO_PTR ) that maps nullptr_t to (void*)0 while leaving everything else untouched. The failure messages also got an upgrade: actual and expected values are now printed numerically instead of a bare expression string. Test run summary ( ba67b8cade ) The original test runner supported one suite at a time. You’d call zinn_test_summary() and get a single block. Now the architecture is multi-suite. The final output is a detailed breakdown: Per-suite: runtime, tests run/passed/failed, assertions made Global: success rate percentage, throughput (tests/second), average latency per test, slowest suite with its share of total time Check out the first attachment if you are curious how it looks. What’s next? With memory management settled and testing infrastructure solid, the next milestone is an error handler .
Devlog #5: Error Handling Overhaul ( Commits: 52515268fe - 91402e3215 ) 18 changed files with 1153 additions and 547 deletions I wasn’t happy with the old error handling. A flat enum doesn’t tell you what went wrong or how bad it is. So I tore it out and replaced it. I’m proud of this module because it uses modern C23 features everywhere you look, is fast, secure, and gives me the important debugging info in case something goes wrong. Thread-safe error and diagnostic module ( 52515268fe ) This commit contains the initial implementation of the module, although with a few bugs I addressed in one of the two later commits. Warning! This commit DOES NOT compile. I haven’t refactored the codebase to use the new error handling implemented in this commit. Bit-packed error codes The new zinn_err_t is a uint32_t with three fields packed into it: [8 bits domain | 4 bits severity | 20 bits code] Domain identifies the module. Severity says how bad it is. Code is the specific error number. Diagnostic stack A thread_local fixed-depth LIFO stack (max 16 frames, 128 message chars each). Every frame records file, function, line, the packed error code, a human-readable message, and a unix timestamp. Pushing a frame manually is tedious, so I wrote macros that inject them for you. Higher-level macros build on this: ZINN_RETURN_IF(condition, error) : if true, push a frame and return the error ZINN_RETURN_IF_ERR(expression) : if the expression fails, push and return ZINN_TRY(expression) : same, but evaluates to the expression’s value on success ZINN_CHECK_ERROR(call, message, ...) : push a frame if error, but keep going zinn_diagnostics_dump_frames() dumps the whole stack to stderr with colored formatting, newest first. Check the attachment to see the stack dump in a terminal. Contains all the info you’d ever need. Scope guard C doesn’t have RAII. But GCC has __attribute__((cleanup)) . The scope guard module wraps it: ZINN_DEFER_CLEANUP ( function , pointer ) This declares a local guard that calls function(pointer) when the scope exits, whether by normal return or early return. You can disarm it with ZINN_SCOPE_GUARD_DISARM(name) if you transfer ownership. The logger now uses this for mutex cleanup. The old code scattered manual pthread_mutex_unlock() calls across every return path. One missed unlock would deadlock the whole process. Refactoring the codebase ( de25c634a0 , 91402e3215 ) The codebase was refactored to use the new error handling and diagnostic functions, macros and types. A few examples: Logger : returns zinn_err_t everywhere; precondition checks use ZINN_RETURN_IF ; mutex handling uses scope guards Arena : zinn_arena_create changed from returning a pointer to returning an error code with an output parameter. Every error site now pushes a diagnostic frame with details Tests : adapted to the new API. Fixed several real bugs along the way: missing fclose() calls that leaked file descriptors and a renamed internal function amongst a few others The test count also dropped from 50 to 49 Logger tests because I removed a redundant test. What’s next? With the error handler now functional, it will be finally time for the (probably) final core mod-… oh wait. Nevermind that. Next I have to write a ton of unit tests for this new module. Lucky me!
Devlog #6: Unit tests for Error Handling ( Commit: 252eb6d937 ) 5 changed files with 1312 additions and 0 deletions After implementing the error code system, diagnostic stack, and scope guard, I needed to make sure they actually work before I start building on top of them. So, my favorite activity, writing unit tests, was awaiting me with 64 more tests across 3 new suites. New test macro: ZINN_EXPECT_EQ_STR The diagnostic stack tests compare message strings. ZINN_EXPECT_EQ would compare pointer addresses if you passed strings, not contents, so I added a strcmp based variant: ZINN_EXPECT_EQ_STR ( frame -> message , "42 hi" ); On failure it prints actual vs expected strings, which makes debugging test failures a lot easier. Error Code (16 tests) The tests verify that each field lands in the correct position and that overflows are safely masked out: “Round-trip” : pack ZINN_DOMAIN_LOGGER | ZINN_SEVERITY_INFO | 0x42 , then extract each field and verify Overflow tests : the masks ( 0xFFFFF , 0xFF , 0xF ) clip overflowed fields back to zero, tested with values one past each bit boundary Max values : 0xFF domain, 0xF severity, 0xFFFFF code all survive the round trip All 6 predefined codes : decoded and checked against expected domain/severity/code down to the exact values Diagnostic Stack (36 tests) Raw push/pop/peek/clear Push : basic field assignment, null file maps to "unknown" , null function maps to "unknown" , null format maps to "(none)" , empty format produces empty string, printf args ( "%d %s" , 42 , "hi" ) produce "42 hi" , truncation at exactly 127 bytes + null terminator at 128 Push overflow : fill all 16 slots, the 17th push returns false , depth stays pinned at 16, the last valid frame is untouched Pop : once from a non-empty stack decrements depth, pop on an empty stack is a no-op, pop 3 of 5 leaves depth at 2, pop all 16 resets to 0 Peek : empty stack returns nullptr , non-empty returns the top frame (LIFO: second push overwrites the peek target), after clear returns nullptr Clear : empty stack stays at 0, stack with 5 frames resets to 0 Convenience macros Each macro has its own test helper and multiple assertions: ZINN_DIAGNOSTICS_PUSH : verifies __FILE__ , __func__ , __LINE__ are injected, with and without format args ZINN_RETURN_IF_ERR : passing ZINN_OK skips the frame and returns OK; passing an error pushes a frame containing "Propagated error" and returns the error ZINN_RETURN_IF : condition true: pushes "Condition failed (true)" and returns the error; false: no frame, returns OK. ZINN_TRY : wraps a successful call (forwards the value), wraps a failing call (pushes "TRY macro captured failure" , returns the error) ZINN_CHECK_ERROR : the only macro that doesn’t return. After pushing a frame, execution continues. Verified with a continued flag, format args, and a static message Integration Two isolation tests: one interleaves push/pop/push and verifies frame independence (frame 0 still holds "0" after pops, frame 1 holds "new" ). The other pushes two frames with different error codes and verifies LIFO ordering and the peek return value at each step. Scope Guard (12 tests) Scope guards fire implicitly when a scope exits. Tested with global counters for basic fire, multiple guards, early return, null-safety, nested scopes, named guards, disarm, double-disarm, and direct execute() calls with null/disarmed/null-cleanup guards. What’s next? With 160 tests across 5 suites, I can take a short break from writing unit tests. Next up is the CLI argument parser (probably) the final core module before I can get to the fun ASCII stuff.
Devlog #7: String View ( Commit: 656a879786 ) 3 changed files with 624 additions and 4 deletions The next core module I built was the string view. The primary goal of this module was to build it fast, avoid heap allocation, ambiguity, and make it “bulletproof”. My reasoning behind making this module is simple: it will be heavily used in the upcoming CLI argument parser and the media-to-ascii engine. The struct and constructors ZinnStringView is dead simple, just a const char* data and a size_t length . Two constructors build views from either explicit parts or null-terminated C strings. Both return ZINN_STRING_VIEW_NULLPTR if you pass them null or empty data. The literal macro The coolest part of this module is ZINN_STRING_VIEW_LITERAL() . It wraps a string literal at compile time using _Generic to detect whether you passed an actual literal or a pointer variable. ZinnStringView sv1 = ZINN_STRING_VIEW_LITERAL ( "hello" ); // works ZinnStringView sv2 = ZINN_STRING_VIEW_LITERAL ( pointer ); // compile error (see attachment) If you pass a variable, _Generic sees char* or const char* and the static_assert fires with a message telling you to use zinn_string_view_from_cstring() instead. Also, while making the attachment I realized what I wrote is actually not correct for C23, as you cannot have static assertions in expressions. This is only a feature in the upcoming C2Y (C29) standard. Implemented functions Generally, I preferred using standard library functions as they are battle-tested, and more often than not use SIMD instructions for much faster execution than whatever I could come up with. Slicing and trimming zinn_string_view_subview gives you a sub-slice with bounds clamping. If offset is past the end you get ZINN_STRING_VIEW_NULLPTR . If offset + count overshoots, it clamps down. The three trim functions share one implementation behind an enum that controls whether to trim left, right, or both. Comparison and matching I built a 256-byte lookup table that maps A-Z to a-z for case-insensitive comparison. It’s locale-independent, so no tolower() surprises on Turkish systems. find_char delegates to memchr , which your libc likely implements with SIMD (16-32 bytes per cycle). starts_with and ends_with are just memcmp with an offset. split_first finds the delimiter via memchr and chops the view in two. Number parsing Parsing from a string view is tedious because standard library functions expect null-terminated strings. The solution is to copy into a small stack buffer, null-terminate it, and call the respective function. The double variant uses strtod_l with a POSIX “C” locale so "3.14" is parsed correctly even if the user’s system uses commas as decimal separators. Both trim whitespace first, check for overflow via errno, and reject partial parses like "123abc" . What’s next? My favorite activity, unit tests!
Devlog #8: Unit tests for String View ( Commit: 63f7ec3f88 ) 5 changed files with 1402 additions and 2 deletions After building the string view module, I did what any sane person would do: wrote 110 tests for it. The new “String View” suite brings the total test count to 260 across 6 suites, and the assertion count to over 1000!!! How the heck did you write 1402 new lines of “code” in 140 minutes? If we exclude comments and blank lines, that’s still a lot of lines. The answer is simple: the editor I use is Neovim, which allows me to use find & replace (see first attachment), quickly copy, delete, manoeuvre lines with simple keybinds, and much more! In the attachment you can see me writing the general structure of roughly 20 tests in one single command, thus saving me 10s of minutes. I simply then replace the test-specific data and assertions and I’m all set! New test macro: ZINN_EXPECT_DOUBLE_EQ Floating point equality is a lie. ZINN_EXPECT_EQ converts to uintptr_t under the hood. It being an integer type, any floating point number you convert to uintptr_t gets its floating part cut off. So I added ZINN_EXPECT_DOUBLE_EQ for checking equality of floating point numbers. Test helpers Two local macros keep the test file from being even longer than it already is: EXPECT_ZINN_STRING_VIEW_NULLPTR(sv) EXPECT_ZINN_STRING_VIEW_VALID(sv, e_data, e_len) Each macro expands to a few lines of code, which might seem pointless at first, but for 110 tests that use the macro, it adds up. What got tested Every public function in the string view module was tested thoroughly: null pointers, empty inputs, boundary values, and at least one “happy” path. Constructors and macros (8 tests) Both constructor macros are verified. from_parts rejects null data and zero length. from_cstring rejects null and empty C strings. Slicing and trimming (23 tests) subview is tested with the offset past the end, offset equal to length, zero count, clamping when count overshoots, exact fits, and partial slices. Each trim variant has tests for null input, no whitespace, some whitespace, all whitespace, and mixed content with whitespace only on one side. Comparison and matching (45 tests) equals checks length mismatch, null data on either side, the same-pointer fast path, exact match, and content mismatch. equals_case_insensitive goes further: same categories plus non-ASCII bytes (the lookup table should pass them through unchanged) and a mismatch on the last character to make sure the loop doesn’t stop early. starts_with and ends_with both test null data, null prefix/suffix, empty prefix/suffix (should return true), empty source (should return false), prefix/suffix longer than the source, match, and no match. find_char tests null data, null out pointer, empty view, char not found, and found at positions first, middle, and last. split_first has the most edge cases: null output pointers independently, null string view, empty string view, delimiter not found, delimiter at start, middle, end, and a single character that is the delimiter. Number parsing (35 tests) to_int64 and to_double are the heaviest. Both test null out, null data, whitespace only, trimming working, buffer overflow, overflow/underflow via ERANGE, no digits, and partial parses like "123abc" . to_int64 additionally tests positive, negative, zero, INT64_MIN, INT64_MAX, plus sign prefix, and a lone hyphen. to_double additionally tests basic, scientific notation, negative, plus prefix, integer-only input, nan, inf, -inf, decimal-only like ".5" , and a bare dot. What’s next? Yet another core module. Regardless of what it is, I’m still hours away from coding some fun ASCII conversions..
Devlog #9: CLI Argument Parser ( Commit: 870e5f9279 ) 7 changed files with 782 additions and 32 deletions The CLI argument parser is Zinn’s final core module. It’s built entirely from scratch, without any external dependencies. Other modules (string views, error handling, logger) were designed to be used seamlessly, and this is the first proof. The architecture The parser is built around declarative option schemas: const ZinnCliOption ZINN_CLI_OPTIONS [] = { {. long_name = ZINN_STRING_VIEW_INIT ( "width" ), . short_name = 'w' , . type = ZINN_CLI_TYPE_INT64 , . offset_in_config = offsetof ( ZinnConfig , width ), ...}, }; Each option knows its type, whether it’s required, and exactly which byte offset inside ZinnConfig to write to. The parser walks argv, matches tokens against schema entries, and writes parsed values directly into the config struct via offsetof + pointer arithmetic. This prevents huge bug-prone switch statements you’d have to write (or copy-paste) if using getopt , for example. The schema validates itself at parse time: duplicate short/long names, offsets exceeding the config struct, zero options, and too many options all get caught before any argv is touched. For the caller, using this module is rather simple. Declare the schema, call zinn_cli_parse( /*...*/ ) , handle failure, and the config is provided nicely in a structure. Following the code style The original parsing function I wrote was a huge, monolithic function with over 200 lines. I extracted what I could: _zinn_validate_schema : validates the schema itself _zinn_pre_scan_help_version : early return for --help / --version before parsing errors can block them _zinn_write_option_value : type-dispatching write via offsetof /switch The main loop is still ~150 lines. The long-option and short-option matching share too many moving parts: the argv index i (which gets bumped for next-arg values), matched_index (required-flag tracking), the positional_only flag, and the token itself. Extracting them would mean threading half a dozen mutable out-parameters through a helper that’s only called once. Technically , the parsing function breaks the code style, but it would’ve been too much trouble than its worth to try and extract anything more. (Also, I wrote the rules, so I can do whatever I want) Safety I own the entire error path. Every parse failure captures file, function, line, and a description in the diagnostic stack. Run --width=abc and you get a trace pointing to the exact switch case that failed, plus a Use ‘–help’ hint (see 2nd attachment) . You don’t get that from getopt returning '?' . What’s next? After adding a new module, unit tests follow, as usual.
Devlog #10: Unit tests for CLI argument parser ( Commit: 90120d4b79 ) 5 changed files with 1448 additions and 11 deletions The last core module got its tests. 73 new tests for the CLI argument parser, which makes 341 tests across 7 suites. The parser has more unit tests than any other function in any suite. Schema(s) for the tests To test the parser you need something to parse, so I built a test schema that covers every option type. The main test schema has four options, each of a different type. Additionally, I made a few deliberately broken schemas for the failure paths: duplicate long names, duplicate short names, an empty schema, one with 33 options (one over the max), and one whose offset_in_config points straight out of the struct. Small fixes uncovered along the way Writing the tests exposed two issues worth mentioning. ZINN_EXPECT_DOUBLE_EQ dumped its constexpr double EPSILON into the surrounding scope. As soon as you’d use it twice in one scope, you’d run into redefinition errors. I simply wrapped the macro’s contents in a do {} while(0) loop to prevent this from happening. The default config values were magic numbers. Now they’re named constants ( ZINN_CLI_DEFAULT_WIDTH , …) living in the header, and the tests assert against those instead of hardcoded values. What the tests cover The zinn_cli_parse tests take up most at 65. The remaining 8 are split between 4 other functions, each with one nullptr path and happy-path. Schema validation and null checks (8 tests) Every error path of zinn_cli_parse : null schema, null argv, null config, plus each of the broken schemas from the harness, all bail with the correct error code. The help and version prescan (10 tests) This section is the interesting one, because the pre-scan for --help / --version is intentionally naive: it scans for the flag before any real parsing. So zinn --str --help returns OK with help set, even though --str is missing its required value. The tests pin down ordering: --version --help gives version, --help --version gives help, since the loop exits on the first hit. zinn -- --help will toggle the help boolean and skip the rest of the parse. The last case is a bug. In “./prog – –help” the pre-scan should identify the -- delimiter and exit the pre-scan loop without toggling the help boolean, thus letting it be parsed as a positional argument. Option forms (6 tests) Everything the parser accepts: --width 80 , --width=80 , -w 80 , -w80 , and mixed forms in a single invocation. Bundled values handle signs too, so -n-42 parses to -42. -shello (short for –str hello) also works correctly:) Positional arguments (10 tests) Positionals fill input_path then output_path ; a third one errors out. After -- the parser treats everything as a positional argument. Fun fact, if you pass -- twice, both get consumed as the “positional mode switcher”. Value and error handling (16 tests) An int option given abc , overflow past INT64_MAX, 1e309 against a double, values that themselves look like flags ( --num --flg ), empty values ( --str= , --num= ), and --str=a=b , where everything after the first equals sign becomes the value. Unknown options (3 tests) Both flag variants are asserted to reject unknown identifiers. Repeats and required options (12 tests) Last occurrence wins. Required option checking happens after the full parse. What’s next? With the final core module’s unit tests now done, I plan to switch build systems so the engine can work on both Linux and Windows flawlessly, which is a prerequisite for the beautiful media-to-ASCII pipeline.
Devlog #11: Switching to Meson ( Commits: c65e483c45 , c1bdb7eb50 ) 4 changed files with 305 additions and 233 deletions Switching to Meson from a Makefile was quite an easy decision. Considering I want a cross-platform build system that is fast , Meson+Ninja stood out as the best possible candidate. On top of that, Meson easily supports cross-compilation, which fits my use case even more! Switch to Meson (Commit c65e483c45 ) The first commit that this devlog details contains the initial implementation of meson.build , and of a Makefile shim . meson.build I decided to write meson.build as idiomatically as possible. I followed the mesonbuild.com documentation for this purpose. Because of my project’s reliance on ISO C23, I had to make sure that Meson supports setting c23 as an option. That means ensuring Meson is above or equal to v1.4.0. The compilation flags and linking flags stay the exact same as in my previous Makefile, and on top of that, Meson checks whether a flag is supported and prints it right out while compiling! Makefile shim The only drawback I encountered while toying with Meson is that the commands can get quite lengthy. For example, to compile and run my project from nothing via meson looks something like this: meson setup build-debug --buildtype=debug -Db_ndebug=if-release && meson compile -C build-debug && ./build-debug/zinn While via my previous Makefile it looked like this: make debug && make run Of course, this has a lot to do with the fact that Meson saves a bunch of metadata, but nevertheless the flow is slower when trying to remember all the meson options. That’s why I created a Makefile shim. The term comes from Embedded Artistry , and it refers to a Makefile that acts as a front-end for Meson (in this case). I wrapped all the meson commands in neat Makefile targets, so I can just run make debug && make run all the same while still getting the valuable Meson features. Windows & cross-compilation support (Commit c1bdb7eb50 ) With Meson now working in my codebase, it was time for cross-platform support. Adding it was really easy. meson.build changes The only change in meson.build besides the Windows linker-flag section is that is_windows and is_mingw detection. cross folder & .ini file Cross-compilation is simply compiling code for a different computer on your own computer. In my case, I wanted to compile for Windows while staying on Linux. In my old Makefile this would be a huge hassle, but Meson only needs this little file to know the target and which cross-compiler binaries to use: [binaries] c = 'x86_64-w64-mingw32-gcc' ar = 'x86_64-w64-mingw32-ar' strip = 'x86_64-w64-mingw32-strip' windres = 'x86_64-w64-mingw32-windres' exe_wrapper = ['wine'] ... The last row is where the magic happens: exe_wrapper tells Meson to run any produced Windows binary through Wine, so I can test the cross-compiled output directly from Linux. What’s next? If you checked the attachment out, you can see a bunch of compilation errors; those are there on purpose. I have yet to update my actual code to support Windows....
|
1792615886.998276
|
1793220686.998276
|
|
54441
|
Ukii by @TomNook | Stardance
|
TomNook
|
0
|
40.09
|
0
|
[]
|
[{"post_id": 75421, "ts": "202 [{"post_id": 75421, "ts": "2026-09-30T01:40:30Z", "hours": 1.2461, "text": "Made it overall look more like my concepts and added hero/background support with a supa rad fade in/out animation!"}, {"post_id": 75354, "ts": "2026-09-29T20:31:01Z", "hours": 2.5089, "text": "GREATLY improved scraping! (instead of freezing every time you scrape something i use multiple cpu threads to scrape something which prevents it from freezing) also moved to love 12 and fixed some bugs with the keyboard"}, {"post_id": 72405, "ts": "2026-09-22T21:02:19Z", "hours": 7.6775, "text": "TRYING to implement an on-screen keyboard (already have hardware keyboard input working and yes i know it looks horrible atm), fixed some ui bugs, added a dynamic battery icon, added game renaming support, and overall made things look smoother!"}, {"post_id": 69467, "ts": "2026-09-17T03:53:37Z", "hours": 1.8244, "text": "Add toggle switch with JUICYYYYY ANIMATIONS and fix background scaling bugs when resizing the window!"}, {"post_id": 66975, "ts": "2026-09-12T23:36:19Z", "hours": 3.505, "text": "Added scraping via steamgriddb! the image results arent the best and the code is an absolute mess but it WORKS AHAHAHAHAHAHA"}, {"post_id": 66226, "ts": "2026-09-11T22:29:51Z", "hours": 4.93, "text": "OH MY GOSH I GOT GAME LAUNCHING WORKING!!!! also have game icon loading and stuff BUT THATS NOT IMPORTANT OHMYGOSH I GOT IT TO WORK AJHSDFUYHFAGYUEYGHUYGDERYGHYGEDRGYEDRGFYUUYHGETFRDGT"}, {"post_id": 59910, "ts": "2026-09-01T22:52:20Z", "hours": 0.6608, "text": "Added a custom animation to the game selection menu and fixed a ui bug concerning hitting the end of elements"}, {"post_id": 59369, "ts": "2026-09-01T04:05:34Z", "hours": 1.6142, "text": "Made it so focusable ui elements do something when you hover them (instead of just drawing a rectangle) and added some juiciness to elements! (will probably get rid of some of the rotation effects tho)"}, {"post_id": 59156, "ts": "2026-08-31T19:45:44Z", "hours": 3.8633, "text": "I GOT INPUT WORKING YESSSSSSSSS idk if the video works or not but i cant believe input is workinggggg, i just made a table/array where you put each item in and then you navigate/index the table with the arrow keys (theres probably a much better way to handle navigation but like its the only way i could figure out bc i have smooth brain). also, ive been working more on window scaling so i can just make the ui elements however i want in pixel scaling and it automatically scales everything to the right size without me having to worry about making panels resizable or wtvr ALSO i figured out a name for it! (no it wasnt piku) i shall now call my baby CHISAI (which means tiny in japanese) because this frontend is supposed to be a mini version of another launcher i want to make! (think of it like the dsi and wii) TLDR: input, sizing, and new name"}, {"post_id": 56310, "ts": "2026-08-28T01:26:02Z", "hours": 2.9864, "text": "Mostly been refining the ui system more, cleaning up my code (it was rly messy lol), and stuff like that (sorry this devlog isnt as detailed im a bit drained)"}, {"post_id": 55184, "ts": "2026-08-26T18:07:11Z", "hours": 1.4758, "text": "Been mostly refining the ui MORE (agh help me aghhhhh ouuuuu) and added a highlight flag for panels/text (need to add more options for custom cases and stuff tho) you can see it on the pokemon emerald version thing"}, {"post_id": 54918, "ts": "2026-08-26T04:28:12Z", "hours": 2.3719, "text": "Mostly been improving my ui system, TRYING to make a decent shadow effect for the ui (decided to settle for just a non-blur version for performance reasons) and now im just trying to clean up my code (impossible ofc) and make it look a bit more like my mockups!"}, {"post_id": 54845, "ts": "2026-08-26T00:49:22Z", "hours": 5.4256, "text": "Been working on ui hell TwT, man making a ui system from scratch is a PAIN!!! well i added simple layout features and its a parent/child based ui system which is pretty nice! also theming works nice which is nice ik the ui looks pretty meh rn but ITLL LOOK MUCH BETTER LATER I SWEAR AGH"}]...
|
Title: Ukii by @TomNook | Stardance
Devlogs:
Been Title: Ukii by @TomNook | Stardance
Devlogs:
Been working on ui hell TwT, man making a ui system from scratch is a PAIN!!! well i added simple layout features and its a parent/child based ui system which is pretty nice! also theming works nice which is nice ik the ui looks pretty meh rn but ITLL LOOK MUCH BETTER LATER I SWEAR AGH
Mostly been improving my ui system, TRYING to make a decent shadow effect for the ui (decided to settle for just a non-blur version for performance reasons) and now im just trying to clean up my code (impossible ofc) and make it look a bit more like my mockups!
Been mostly refining the ui MORE (agh help me aghhhhh ouuuuu) and added a highlight flag for panels/text (need to add more options for custom cases and stuff tho) you can see it on the pokemon emerald version thing
Mostly been refining the ui system more, cleaning up my code (it was rly messy lol), and stuff like that (sorry this devlog isnt as detailed im a bit drained)
I GOT INPUT WORKING YESSSSSSSSS idk if the video works or not but i cant believe input is workinggggg, i just made a table/array where you put each item in and then you navigate/index the table with the arrow keys (theres probably a much better way to handle navigation but like its the only way i could figure out bc i have smooth brain). also, ive been working more on window scaling so i can just make the ui elements however i want in pixel scaling and it automatically scales everything to the right size without me having to worry about making panels resizable or wtvr ALSO i figured out a name for it! (no it wasnt piku) i shall now call my baby CHISAI (which means tiny in japanese) because this frontend is supposed to be a mini version of another launcher i want to make! (think of it like the dsi and wii) TLDR: input, sizing, and new name
Made it so focusable ui elements do something when you hover them (instead of just drawing a rectangle) and added some juiciness to elements! (will probably get rid of some of the rotation effects tho)
Added a custom animation to the game selection menu and fixed a ui bug concerning hitting the end of elements
OH MY GOSH I GOT GAME LAUNCHING WORKING!!!! also have game icon loading and stuff BUT THATS NOT IMPORTANT OHMYGOSH I GOT IT TO WORK AJHSDFUYHFAGYUEYGHUYGDERYGHYGEDRGYEDRGFYUUYHGETFRDGT
Added scraping via steamgriddb! the image results arent the best and the code is an absolute mess but it WORKS AHAHAHAHAHAHA
Add toggle switch with JUICYYYYY ANIMATIONS and fix background scaling bugs when resizing the window!
TRYING to implement an on-screen keyboard (already have hardware keyboard input working and yes i know it looks horrible atm), fixed some ui bugs, added a dynamic battery icon, added game renaming support, and overall made things look smoother!
GREATLY improved scraping! (instead of freezing every time you scrape something i use multiple cpu threads to scrape something which prevents it from freezing) also moved to love 12 and fixed some bugs with the keyboard
Made it overall look more like my concepts and added hero/background support with a supa rad fade in/out animation!...
|
1792792047.6379056
|
1793396847.6379056
|
|
9581
|
Volumetric clouds by @Thino | Stardance
|
Thino
|
0
|
40.03
|
0
|
[]
|
[{"post_id": 23142, "ts": "202 [{"post_id": 23142, "ts": "2026-07-05T22:20:39Z", "hours": 6.3236, "text": "Devlog 9 - Super duper optimization So I was watching some shader-related video on yt where they explained that the heavy hitter on performance is sampling and not calculations. So I decided to redo some stuff and holy shit I can render at full res with almost 200 fps with MORE detail. So yeah what I did was basically rework how I generate and sample my noise which made it run so much better (Also still a WIP the repetition will be dealt with and the values will be tuned for better details)"}, {"post_id": 21856, "ts": "2026-07-04T00:23:47Z", "hours": 2.515, "text": "Devlog 8 - Added a new option for steps and experimented I added a setting so that instead of each step being the same distance you can chose how many steps it’s going to take and then it bases it on the distance betweeen the entrance and the exit to of the bounding box. I also experimented with settings trying to make it look good as clouds and yeah its starting to look really good. And lastly I added blur since the samples are kinda noisy"}, {"post_id": 21658, "ts": "2026-07-03T18:42:55Z", "hours": 3.9739, "text": "Devlog 7 - I Added bounding boxes and shadows So I added bounding boxes like I have been wanting to and it was suprisingly easy using the slab method, I also added shadows which gives the coulds so much more depth So for the bounding boxes I use the slab method which return the entry and exit position of a ray for a grid aligned bounding box for very cheap. It is also easy to see if it doesn’t intersect because the exit position is closer than the entrance position so you can return early. For the shadows I do another lower quality raymarch for each step in the main raymarch towards the sun to see how much cloud is in the way. I am also having some problems with the Henyey Greenstein function returning abnormally huge numbers so that is turned off rn while I investigate further."}, {"post_id": 20367, "ts": "2026-07-01T23:08:08Z", "hours": 4.0533, "text": "Devlog 6 - Finally completing the port to the compute shader I was finally able to port the volumetrics to the compute shader which allows it to run at 1/2 or 1/4 res improving the performance greatly. I also tried making a cloud layer which is what you can see in the image. It still look kinda bad but trust it will become better with time. It’s also running at a stable 200 fps with 1000 max distance which is great! Next I want to add proper bounding Boxes since this is just skipping the step if its outside the y range of 60 - 70 which isn’t very efficient. I also want to add internal shadows so for each step in the raycast it will send out another raycast to see how much light it gets, hopefully that can make it less flat."}, {"post_id": 20073, "ts": "2026-07-01T16:15:42Z", "hours": 3.2406, "text": "#Devlog 5.5 - I hate unity I just wanted to post a devlog since I haven’t done so in a long time but also I haven’t added a complete feature so that’s why I did 5.5 instead of 6. Basically I have spent a couple of hours trying to get the worldpos in a compute shader since it’s a whole different process compared to the normal shaders. It’s honestly insane that something that takes like 3 lines of code in one shader takes like hundreds distributed through multiple scripts in another. Anyways now that I have the worldpos in the compute shader the rest should be a breeze! (Image showing the texture generated by the compute shader in which red is the decimal part of x, green is the same but for y, and green for z)"}, {"post_id": 17126, "ts": "2026-06-27T20:09:34Z", "hours": 3.56, "text": "#Devlog 5 - Major fog improvements Added: Lights and shadow Perlin noise smaller fixes / optimizations What I have done So since last devlog I have made the fog pickup lights and shadows from the main light, it’s very easy to do since unity provides the values for me. I also added perlin noise to the noise generator along with the worley, I use the perlin as the base for the fog and the worley to make the edges more detailed with remapping. I have also made some smaller optimizations like the raymarching stopping if the transmittance (the value which decided how much fog there is) gets so high that any additional fog wouldn’t make a noticeable difference. What next? Make the clouds render at half / quarter res and blur to increase performance Add bounding boxes for more control over where the fog goes Add textures and tress and grass and stuff Side note: My friend @Lazyllama is going to join me and he will be making more of the game mechanics so that I can focus on this."}, {"post_id": 15983, "ts": "2026-06-25T23:11:17Z", "hours": 8.4239, "text": "Devlog 4 - Some major changes to the project So basically during some time I had no motivation at all to work on the game, I think it’s mostly because I spent this whole spring making a game whh I wasn’t really happy with. Anyways I decided to force myself into making it and while adding some simple fog based on distance I decided that it didn’t look right and went down a rabbit hole of volumetric fog (procrastination). Anyways I realized that while I was procrastinating I was genuinely interested in this and other things that I guess would fall into the category “Graphics programming”. Anyways what I wanted to say was that the game will most likely not be a fishing game, maybe there will be some kind of game mechanics added but I’m going to focus on learning more of what I find interesting. Also During the time between this and last devlog I have been working on volumetric fog and generating noise through fullscreen shaders and compute shaders. Right now I use worley noise for the fog although it still look very bad since it is IN DEVELOPMENT. Anyways thanks for reading and I hope the next devlog isn’t for 8h and also has some better images! (Yes this is volumetric I know it doesn’t look like what you would associate with volumetric rendering since it isn’t affected by lighting and stuff and also looks kinda 3d I don’t know what’s going on with that)"}, {"post_id": 11295, "ts": "2026-06-18T14:08:37Z", "hours": 3.4128, "text": "Devlog 3 - Movement I finally added some movement as I felt it was important to see how the ocean looks from the players perspective. I had, and still have, some issues with it which will be fixed when I figure out what is causing them. I will try to implement a LOD system for the ocean because I think the huge ocean is what is making the game stutter. Also I’m not sure if you can upload videos so this will be a test for that."}, {"post_id": 4595, "ts": "2026-06-07T23:10:58Z", "hours": 2.0025, "text": "Devlog 2 - Refining the water I did some major changes to how the water looks, first of all I increased the amount of waves to make it less repetitive. I now have 40 waves with random direction and magnitude. I also changed the water to have a more low polygon look using per face normals. I made this change because I am going to make all the assets myself and as a beginner in 3d modelling I should stick to simple models, and my game should follow that theme. Whats next? I want to add a system that allows me to make waves randomly as I do have to make like 4 numbers for each wave that all work together. Also adding some actual gameplay would be nice."}, {"post_id": 3824, "ts": "2026-06-06T21:40:30Z", "hours": 2.5211, "text": "Devlog 1 - Getting wet with unity’s shadergraphs I decided to start working on my project today since I had literally nothing else to do. So i booted up unity and got started with making some terrain which turned out to be not terrible. After that it was time for water, since my game is a fishing game I decided that water would be pretty important, and so I would spend a lot of time making sure it looks good. Research I did some research on how other games handle water, and after deciding I in fact did not want to struggle with FFTs i decided to use the sum of some Gerstner waves (a.k.a trochoidal waves). I booted up desmos since it’s great for solving the math part before moving on to the coding part, and after getting something that worked I started working on making it to a shader. ( Image 1: desmos waves ) Making the shader After playing around with the shadergraph to make sure I understood how it works I got started making the actual waves. I had to make a custom function in HLSL both for vertex displacement and for getting the normal values. After hooking it all up I had some actual waves. Now of course this didn’t go as smoothly as described, as most of my time went into debugging and trying to understand how shadergraphs work. ( Image 2: waves in unity!!! 🥹🥹🥹) What comes next? So after this I want to make the water look like actual water and maybe take a look at making the waves less repetitive, although it is pretty hard to see from the players perspective. I will make sure to come back to this when I have a better idea of what it will all look like. Anyways I’ll see you later and I hope you have as much fun making stuff as I do! ✨"}]...
|
Title: Volumetric clouds by @Thino | Stardance
De Title: Volumetric clouds by @Thino | Stardance
Devlogs:
Devlog 1 - Getting wet with unity’s shadergraphs I decided to start working on my project today since I had literally nothing else to do. So i booted up unity and got started with making some terrain which turned out to be not terrible. After that it was time for water, since my game is a fishing game I decided that water would be pretty important, and so I would spend a lot of time making sure it looks good. Research I did some research on how other games handle water, and after deciding I in fact did not want to struggle with FFTs i decided to use the sum of some Gerstner waves (a.k.a trochoidal waves). I booted up desmos since it’s great for solving the math part before moving on to the coding part, and after getting something that worked I started working on making it to a shader. ( Image 1: desmos waves ) Making the shader After playing around with the shadergraph to make sure I understood how it works I got started making the actual waves. I had to make a custom function in HLSL both for vertex displacement and for getting the normal values. After hooking it all up I had some actual waves. Now of course this didn’t go as smoothly as described, as most of my time went into debugging and trying to understand how shadergraphs work. ( Image 2: waves in unity!!! 🥹🥹🥹) What comes next? So after this I want to make the water look like actual water and maybe take a look at making the waves less repetitive, although it is pretty hard to see from the players perspective. I will make sure to come back to this when I have a better idea of what it will all look like. Anyways I’ll see you later and I hope you have as much fun making stuff as I do! ✨
Devlog 2 - Refining the water I did some major changes to how the water looks, first of all I increased the amount of waves to make it less repetitive. I now have 40 waves with random direction and magnitude. I also changed the water to have a more low polygon look using per face normals. I made this change because I am going to make all the assets myself and as a beginner in 3d modelling I should stick to simple models, and my game should follow that theme. Whats next? I want to add a system that allows me to make waves randomly as I do have to make like 4 numbers for each wave that all work together. Also adding some actual gameplay would be nice.
Devlog 3 - Movement I finally added some movement as I felt it was important to see how the ocean looks from the players perspective. I had, and still have, some issues with it which will be fixed when I figure out what is causing them. I will try to implement a LOD system for the ocean because I think the huge ocean is what is making the game stutter. Also I’m not sure if you can upload videos so this will be a test for that.
Devlog 4 - Some major changes to the project So basically during some time I had no motivation at all to work on the game, I think it’s mostly because I spent this whole spring making a game whh I wasn’t really happy with. Anyways I decided to force myself into making it and while adding some simple fog based on distance I decided that it didn’t look right and went down a rabbit hole of volumetric fog (procrastination). Anyways I realized that while I was procrastinating I was genuinely interested in this and other things that I guess would fall into the category “Graphics programming”. Anyways what I wanted to say was that the game will most likely not be a fishing game, maybe there will be some kind of game mechanics added but I’m going to focus on learning more of what I find interesting. Also During the time between this and last devlog I have been working on volumetric fog and generating noise through fullscreen shaders and compute shaders. Right now I use worley noise for the fog although it still look very bad since it is IN DEVELOPMENT. Anyways thanks for reading and I hope the next devlog isn’t for 8h and also has some better images! (Yes this is volumetric I know it doesn’t look like what you would associate with volumetric rendering since it isn’t affected by lighting and stuff and also looks kinda 3d I don’t know what’s going on with that)
#Devlog 5 - Major fog improvements Added: Lights and shadow Perlin noise smaller fixes / optimizations What I have done So since last devlog I have made the fog pickup lights and shadows from the main light, it’s very easy to do since unity provides the values for me. I also added perlin noise to the noise generator along with the worley, I use the perlin as the base for the fog and the worley to make the edges more detailed with remapping. I have also made some smaller optimizations like the raymarching stopping if the transmittance (the value which decided how much fog there is) gets so high that any additional fog wouldn’t make a noticeable difference. What next? Make the clouds render at half / quarter res and blur to increase performance Add bounding boxes for more control over where the fog goes Add textures and tress and grass and stuff Side note: My friend @Lazyllama is going to join me and he will be making more of the game mechanics so that I can focus on this.
#Devlog 5.5 - I hate unity I just wanted to post a devlog since I haven’t done so in a long time but also I haven’t added a complete feature so that’s why I did 5.5 instead of 6. Basically I have spent a couple of hours trying to get the worldpos in a compute shader since it’s a whole different process compared to the normal shaders. It’s honestly insane that something that takes like 3 lines of code in one shader takes like hundreds distributed through multiple scripts in another. Anyways now that I have the worldpos in the compute shader the rest should be a breeze! (Image showing the texture generated by the compute shader in which red is the decimal part of x, green is the same but for y, and green for z)
Devlog 6 - Finally completing the port to the compute shader I was finally able to port the volumetrics to the compute shader which allows it to run at 1/2 or 1/4 res improving the performance greatly. I also tried making a cloud layer which is what you can see in the image. It still look kinda bad but trust it will become better with time. It’s also running at a stable 200 fps with 1000 max distance which is great! Next I want to add proper bounding Boxes since this is just skipping the step if its outside the y range of 60 - 70 which isn’t very efficient. I also want to add internal shadows so for each step in the raycast it will send out another raycast to see how much light it gets, hopefully that can make it less flat.
Devlog 7 - I Added bounding boxes and shadows So I added bounding boxes like I have been wanting to and it was suprisingly easy using the slab method, I also added shadows which gives the coulds so much more depth So for the bounding boxes I use the slab method which return the entry and exit position of a ray for a grid aligned bounding box for very cheap. It is also easy to see if it doesn’t intersect because the exit position is closer than the entrance position so you can return early. For the shadows I do another lower quality raymarch for each step in the main raymarch towards the sun to see how much cloud is in the way. I am also having some problems with the Henyey Greenstein function returning abnormally huge numbers so that is turned off rn while I investigate further.
Devlog 8 - Added a new option for steps and experimented I added a setting so that instead of each step being the same distance you can chose how many steps it’s going to take and then it bases it on the distance betweeen the entrance and the exit to of the bounding box. I also experimented with settings trying to make it look good as clouds and yeah its starting to look really good. And lastly I added blur since the samples are kinda noisy
Devlog 9 - Super duper optimization So I was watching some shader-related video on yt where they explained that the heavy hitter on performance is sampling and not calculations. So I decided to redo some stuff and holy shit I can render at full res with almost 200 fps with MORE detail. So yeah what I did was basically rework how I generate and sample my noise which made it run so much better (Also still a WIP the repetition will be dealt with and the values will be tuned for better details)...
|
1792587290.5177531
|
1793192090.5177531
|
|
54176
|
Study OS by @rayyans4890 | Stardance
|
rayyans4890
|
1
|
40.02
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-05T08:06:54Z", "hours": 35.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a website that i have personally made for students it includes alot of features such as Planner,Assignments,Focus Time,Study Statistics,etc. This website was built in vscode using html and it was built for a stardance project. This project was made so that students can track their studys and also improve over time with their stats.", "repo": "https://github.com/rayyans4890-png/Study-OS-", "demo": "https://rayyans4890-png.github.io/Study-OS-/#subjects"}]...
|
[{"post_id": 63509, "ts": "202 [{"post_id": 63509, "ts": "2026-09-07T12:33:45Z", "hours": 5.0156, "text": "I basically redid the whole thing to make it feel way more like my own project and less like one of those super polished AI-generated websites. I changed the design completely and went for more of simple yet clean green and white aesthetic. Even though i had not used ai that much in the code while building the site in the end the website still came out too vibecoded so i had to like basically remove the WAYYY TO AI features to make it look more as if it was manually coded. It kept getting flagged for ai by the stardance reviewer so i jst decided to remove the ai features completely and work on my other features."}, {"post_id": 61643, "ts": "2026-09-04T17:11:44Z", "hours": 7.8667, "text": "Study OS — Devlog 6 (FINAL) FINALLY completed the project. 7h 52m logged today and this was the last real push to get everything across the finish line. What got done Went through and tested every single feature one by one to make sure nothing was broken Added the last remaining features I mentioned in the previous devlog Troubleshot everything until I was confident there were no mistakes left in the code Made sure every feature is actually working correctly, not just “looks fine but silently breaks” working Reflecting on it Not gonna lie, this project took way longer than I expected going in. There were multiple points where I had to stop, troubleshoot for hours, and basically rebuild parts of it (looking at you, Dashboard). But I’m genuinely glad I stuck with it, and honestly happy I finished it earlier than I thought I would after all those setbacks. Final state Study OS now has a working Dashboard, Focus sessions, Planner, Assignments, Exams, Notes, Flashcards, Quizzes, Grades, Subjects, and Study Insights — all built out and functioning together instead of as separate disconnected pieces. That’s a wrap on Study OS. Thanks for following along through all the bugs and rewrites 🙏"}, {"post_id": 60756, "ts": "2026-09-03T10:16:28Z", "hours": 7.6333, "text": "Study OS — Devlog 5 I finally got every feature I planned actually built out. Full sidebar’s complete — Assignments, Exams, Notes, Flashcards, Quizzes, Grades, Subjects, Study Insights, all of it exists now. The catch Only problem is the Dashboard isn’t picking up the input from any of these features. Like everything works fine on its own page, but none of it is actually showing up back on the Dashboard where it’s supposed to summarize. Why this is happening (probably) I think this is because I built each feature kinda separately instead of hooking them into the Dashboard from the start, so now they’re just not talking to each other properly. The plan Gonna end up rewriting the Dashboard basically from scratch so instead of being its own isolated thing, it actually pulls from all the features and displays their output cleanly in one place. Kind of annoying to redo but it’s the right move long term instead of patching it feature by feature. What’s next Rewrite Dashboard logic so it collectively reads from every feature Test that inputs from Planner/Quizzes/Grades/etc actually reflect properly once that’s"}, {"post_id": 60149, "ts": "2026-09-02T10:23:05Z", "hours": 7.7169, "text": "Study OS — Devlog 4 Put in another 7h 43m today and this one was mostly about rounding things out. Feels like the finish line is actually in sight now. What got done Added most of the final features I had planned — Quizzes, Grades, Subjects, and a new Study Insights section Went through and troubleshot the site for errors again, way less painful than last time Sidebar is basically complete now, everything’s got its place Where things stand Honestly feeling pretty good about where this is at. Most of the core structure is in place, just need to: Finish wiring up the last few features Make sure everything actually talks to each other — like tasks/quizzes/grades all updating the Dashboard properly instead of existing in their own little bubble What’s next Thinking this’ll take another 1-2 sessions to fully wrap up. Main focus now is connecting everything together so the Dashboard actually reflects real data instead of just sitting there with 0s everywhere."}, {"post_id": 58776, "ts": "2026-08-31T10:54:12Z", "hours": 7.4072, "text": "Study OS — Devlog 3 Big one today, put in 7h 24m and got a lot done, mostly with some help from YouTube tutorials to figure out stuff I was stuck on. New stuff added Added a search bar up top for quick navigation Split the sidebar into proper sections — Study OS (Dashboard, Focus, Planner) and School (Assignments, Exams, Notes, Flashcards) Sidebar’s looking way more organized now compared to before The bug that almost killed me Spent a good chunk of today troubleshooting the older features (Dashboard/Planner) because they kept taking input but just… not showing it anywhere. No errors, nothing, just silently not working which was honestly more annoying than an actual crash. Can’t fully explain what fixed it but after digging around for a while I finally got rid of it. Sometimes you just gotta stare at the code long enough until it gives up. What’s next Planning on adding a lot of new features tomorrow Still got Assignments, Exams, Notes, and Flashcards to actually build out (rn they’re just sitting in the sidebar looking pretty)"}, {"post_id": 56509, "ts": "2026-08-28T09:39:14Z", "hours": 2.8833, "text": "Study OS — Devlog 2 Made some solid progress this time, got the Dashboard actually working instead of just sitting there looking pretty. What I got done Made tasks actually functional — can now input tasks into the planner instead of it just being static Added 3 new tasks to the system (planning on adding around 7 more) Dashboard now tracks stuff like tasks completed, study time, streaks, and upcoming deadlines Started testing out the current UI to see if it’s actually good or if I’m just used to it lol Thoughts on the UI Ngl I’m pretty happy with how minimalistic it looks right now, it’s clean and doesn’t feel cluttered. But since this is a studying site I don’t wanna just assume it’s good — genuinely curious what people think. Should I: Keep it minimal like it is Or try to vibe code the UI a bit more and add some more personality to it What’s next Add the remaining ~7 tasks Keep building out Focus, Planner, and Subjects sections Maybe tweak the UI depending on feedback Lmk what yall think about the UI, genuinely open to changing it up."}, {"post_id": 55186, "ts": "2026-08-26T18:09:02Z", "hours": 1.0319, "text": "Study OS — Devlog 1 Alright so I finally started actually building Study OS , a website made for students to help them stay on top of their work without needing like 5 different apps open at once. What is this thing The idea is to have one place where students can handle basically everything school-related — quizzes, lectures, courses, weekly stats, all that. Still early days but the core idea is there. What I got done Set up the base structure for the site (html/css foundation, fonts, layout basics) Added a Dashboard so users have a home base to see everything at a glance Built a Focus Session feature (basically a way to lock in and study without distractions) Added a Planner so people can actually organize their week instead of forgetting everything exists What’s still cooking UI is very barebones rn, not gonna lie Quizzes, lectures, courses, and week stats are all planned but not built yet Planning on giving the whole thing a green and white theme once the layout is more locked in That’s it for now, more progress soon 🫡"}]...
|
Title: Study OS by @rayyans4890 | Stardance
Devlo Title: Study OS by @rayyans4890 | Stardance
Devlogs:
Study OS — Devlog 1 Alright so I finally started actually building Study OS , a website made for students to help them stay on top of their work without needing like 5 different apps open at once. What is this thing The idea is to have one place where students can handle basically everything school-related — quizzes, lectures, courses, weekly stats, all that. Still early days but the core idea is there. What I got done Set up the base structure for the site (html/css foundation, fonts, layout basics) Added a Dashboard so users have a home base to see everything at a glance Built a Focus Session feature (basically a way to lock in and study without distractions) Added a Planner so people can actually organize their week instead of forgetting everything exists What’s still cooking UI is very barebones rn, not gonna lie Quizzes, lectures, courses, and week stats are all planned but not built yet Planning on giving the whole thing a green and white theme once the layout is more locked in That’s it for now, more progress soon 🫡
Study OS — Devlog 2 Made some solid progress this time, got the Dashboard actually working instead of just sitting there looking pretty. What I got done Made tasks actually functional — can now input tasks into the planner instead of it just being static Added 3 new tasks to the system (planning on adding around 7 more) Dashboard now tracks stuff like tasks completed, study time, streaks, and upcoming deadlines Started testing out the current UI to see if it’s actually good or if I’m just used to it lol Thoughts on the UI Ngl I’m pretty happy with how minimalistic it looks right now, it’s clean and doesn’t feel cluttered. But since this is a studying site I don’t wanna just assume it’s good — genuinely curious what people think. Should I: Keep it minimal like it is Or try to vibe code the UI a bit more and add some more personality to it What’s next Add the remaining ~7 tasks Keep building out Focus, Planner, and Subjects sections Maybe tweak the UI depending on feedback Lmk what yall think about the UI, genuinely open to changing it up.
Study OS — Devlog 3 Big one today, put in 7h 24m and got a lot done, mostly with some help from YouTube tutorials to figure out stuff I was stuck on. New stuff added Added a search bar up top for quick navigation Split the sidebar into proper sections — Study OS (Dashboard, Focus, Planner) and School (Assignments, Exams, Notes, Flashcards) Sidebar’s looking way more organized now compared to before The bug that almost killed me Spent a good chunk of today troubleshooting the older features (Dashboard/Planner) because they kept taking input but just… not showing it anywhere. No errors, nothing, just silently not working which was honestly more annoying than an actual crash. Can’t fully explain what fixed it but after digging around for a while I finally got rid of it. Sometimes you just gotta stare at the code long enough until it gives up. What’s next Planning on adding a lot of new features tomorrow Still got Assignments, Exams, Notes, and Flashcards to actually build out (rn they’re just sitting in the sidebar looking pretty)
Study OS — Devlog 4 Put in another 7h 43m today and this one was mostly about rounding things out. Feels like the finish line is actually in sight now. What got done Added most of the final features I had planned — Quizzes, Grades, Subjects, and a new Study Insights section Went through and troubleshot the site for errors again, way less painful than last time Sidebar is basically complete now, everything’s got its place Where things stand Honestly feeling pretty good about where this is at. Most of the core structure is in place, just need to: Finish wiring up the last few features Make sure everything actually talks to each other — like tasks/quizzes/grades all updating the Dashboard properly instead of existing in their own little bubble What’s next Thinking this’ll take another 1-2 sessions to fully wrap up. Main focus now is connecting everything together so the Dashboard actually reflects real data instead of just sitting there with 0s everywhere.
Study OS — Devlog 5 I finally got every feature I planned actually built out. Full sidebar’s complete — Assignments, Exams, Notes, Flashcards, Quizzes, Grades, Subjects, Study Insights, all of it exists now. The catch Only problem is the Dashboard isn’t picking up the input from any of these features. Like everything works fine on its own page, but none of it is actually showing up back on the Dashboard where it’s supposed to summarize. Why this is happening (probably) I think this is because I built each feature kinda separately instead of hooking them into the Dashboard from the start, so now they’re just not talking to each other properly. The plan Gonna end up rewriting the Dashboard basically from scratch so instead of being its own isolated thing, it actually pulls from all the features and displays their output cleanly in one place. Kind of annoying to redo but it’s the right move long term instead of patching it feature by feature. What’s next Rewrite Dashboard logic so it collectively reads from every feature Test that inputs from Planner/Quizzes/Grades/etc actually reflect properly once that’s
Study OS — Devlog 6 (FINAL) FINALLY completed the project. 7h 52m logged today and this was the last real push to get everything across the finish line. What got done Went through and tested every single feature one by one to make sure nothing was broken Added the last remaining features I mentioned in the previous devlog Troubleshot everything until I was confident there were no mistakes left in the code Made sure every feature is actually working correctly, not just “looks fine but silently breaks” working Reflecting on it Not gonna lie, this project took way longer than I expected going in. There were multiple points where I had to stop, troubleshoot for hours, and basically rebuild parts of it (looking at you, Dashboard). But I’m genuinely glad I stuck with it, and honestly happy I finished it earlier than I thought I would after all those setbacks. Final state Study OS now has a working Dashboard, Focus sessions, Planner, Assignments, Exams, Notes, Flashcards, Quizzes, Grades, Subjects, and Study Insights — all built out and functioning together instead of as separate disconnected pieces. That’s a wrap on Study OS. Thanks for following along through all the bugs and rewrites 🙏
I basically redid the whole thing to make it feel way more like my own project and less like one of those super polished AI-generated websites. I changed the design completely and went for more of simple yet clean green and white aesthetic. Even though i had not used ai that much in the code while building the site in the end the website still came out too vibecoded so i had to like basically remove the WAYYY TO AI features to make it look more as if it was manually coded. It kept getting flagged for ai by the stardance reviewer so i jst decided to remove the ai features completely and work on my other features.
Ships:
This is a website that i have personally made for students it includes alot of features such as Planner,Assignments,Focus Time,Study Statistics,etc. This website was built in vscode using html and it was built for a stardance project. This project was made so that students can track their studys and also improve over time with their stats....
|
1792878544.199214
|
1793742544.199214
|
|
2014
|
Superorbital by @orivio | Stardance
|
orivio
|
1
|
40.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T00:50:07Z", "hours": 40.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "SUPERORBITAL: The Quest of the Anomaly After months of hard work, Obe Dot and I finally present to you SUPERORBITAL. What on earth is a SUPERORBITAL? SUPERORBITAL is a 2D platformer where you play as Vitri, the only human born without gravity. After years of being ostracized by society, Vitri sets out on a mission to change things for the better. He decides to take a gamble on a popular story that’s been spreading about all planets having tangible gravity cores at their centers, and decides to find one for himself. Accompanied only by his robot assistant, G.R.A.V. (Great Robot Assistant of Vitri), Vitri flies out into deep space and lands on a planet named Zeta-C5, where he uses special abilities, such as turning gravity on and off, to explore and make his way towards the planet’s core. Difficult obstacles and even unexpected foes block his way, but he’s got to get through no matter what. Dev Messages: orivio: SUPERORBITAL has been a really fun introduction to Godot! Though challenging at times, designing the levels around our unique mechanics was pretty fun, and I think overall the game turned out pretty great! Obviously it is only an alpha release, so I plan on working together with Obe Dot to polish it a ton, in terms of artwork, music, story, etc. Expect lots more content to come! Obe Dot: Developing this game has been an amazing experience. This is my first big gamedev project, and I’ve learned so much. I really hope to work more on this project in the future, while also improving my art and programming skills. Much appreciation to Hack Club for creating this event! Try out the game on our itch, or watch the provided gameplay footage and/or trailer! Trailer: https://www.youtube.com/watch?v=5WPKXYqy1FI Gameplay: https://youtu.be/-zq8ps87daI?si=sUK4_9BedT1OdXU8", "repo": "https://github.com/orivio/super_orbital", "demo": "https://obedh.itch.io/superorbital"}]...
|
[{"post_id": 72445, "ts": "202 [{"post_id": 72445, "ts": "2026-09-22T23:55:43Z", "hours": 1.5869, "text": "SUPERORBITAL Mini Devlog # 10.5: Just clearing out the last hour and a half I got from working on the trailer. We’re gonna be shipping in just a few minutes! Here are a few clips used in the trailer:"}, {"post_id": 71480, "ts": "2026-09-20T22:02:36Z", "hours": 5.2728, "text": "SUPERORBITAL DEVLOG #10: The End? You can watch a full playthrough of the intro segment here: https://youtu.be/-zq8ps87daI After a plethora of bugfixing (see attached for a few examples lol), we did it! The Alpha, as far as we can tell, is done! Gameplay/Story: Intro and outro cutscene have been implemented, though not polished fully yet. Lots of level redesign. Levels have been shifted to reduce the difficulty curve and also introduce dash/antigrav earlier. Sad Guy and Assistant now have actual names: Vitri and G.R.A.V. Music/Art: Old intro song, which ended up scrapped, is now in the credits Buzzsaw texture Dev Note: This was such an exciting intro to full game development! The game is really fun to play in my opinion. Even though it’s buggy and unpolished in some aspects, we’ve got a ton of time to work on that in the future. Enjoy it once it’s shipped!!"}, {"post_id": 66822, "ts": "2026-09-12T18:39:15Z", "hours": 1.5464, "text": "SUPERORBITAL DEVLOG #9: Bugs bugs bugs!!!! Gameplay/Story: We’ve been working on a lot of bug fixing, ranging from removing tiny skips/deaths to entire game-crashing bugs Music/Art: We added sound effects for collisions, wrench throwing, etc Music has a new system in the level directory and has been readded Todo/Dev Notes: We’re getting ready to ship soon! The plan is to finish up with bugfixing, playtest a bit, and then ship before the 20th! We have to figure out how to fix a bug where you get wiped out of existence when in antigrav and colliding We have to implement the cutscenes UI fixes/polishing coming soon!"}, {"post_id": 64464, "ts": "2026-09-08T21:28:54Z", "hours": 3.2047, "text": "SUPERORBITAL DEVLOG #8 Gameplay/Story: Lots of level polishing has been added New obstacles Started work on intro/final cutscene Music/Art: New black hole shader!!! It looks so cool Some new sprites in the tileset to make it look nicer Overall more decoration Things to do: Level polishing, tileset shading Add intro/final cutscene (full implementation) File organization Bugfixing for black holes Developer Note: You might notice that some bits of the attached recording are really weird/buggy looking. Part of that is cuz I accidentally did some work in the wrong branch that was meant to fix some things (like the music and some other issues), and this is on another branch. Hopefully we can resolve any conflicts and fix things up soon!"}, {"post_id": 51919, "ts": "2026-08-21T20:43:29Z", "hours": 8.8186, "text": "SUPERORBITAL Devlog # 7 Gameplay/Story: There are dialogues for every section that we’ve made so far. Almost every section of the Alpha is finished so far! New black hole implementation Overall polishing for many bugs Music and Art: New spritework for the Assistant Polished state-based animation bugs Things to do: Implement intro cutscene Implement final cutscene Dialogue polishing Tileset partial redesign"}, {"post_id": 33703, "ts": "2026-07-23T20:35:26Z", "hours": 6.6292, "text": "SUPERORBITAL Devlog #6 Gameplay/Story: Initial dialogue has been finished. Robo-Guy appears to give tutorial dialogue throughout the game. There is full dialogue for every section that we have made so far. Wrench has been re-implemented for the learn_wrench section of the game WIP black hole redesign Music and Art: I made a new, fairly crappy black hole for the game icon. Hoping to redo it with a drawing tablet once this project gets shipped (so exciting!!!) OST tracks 2 (Lone Traveler) and 3 (Martian Overture) have been finished AND implemented into the game! That’s right, we have a working (though messy) system to implement music! Things to do: Polish icon and banner Hopefully polish and re-organize code (It’s really messy right now, and very clearly the product of summertime boredom, lol) Sad Guy sprites Redesign of other sprites (new tiles, some proportional fixing for Robo-Guy and Sad Guy) Cutscene system and intro implementation"}, {"post_id": 32076, "ts": "2026-07-20T23:55:33Z", "hours": 2.4614, "text": "Superorbital Devlog #5 Progress: first OST has been made! it was originally called Space Parade, but we immediately renamed it to Quest of the Anomaly. it’ll be used for the intro cutscene some progress with gravity and timescale implementation with black holes work done on options menu and keybind settings. all inputs are bindable, and there are also presets based on the controls of Celeste and Hollow Knight (more to be added, maybe) Things we’re trying to do soon: there’s this annoying bug where sometimes you randomly dash without ANY input at all. after bugtesting, Obed found that godot genuinely thinks someone is inputting the dash keybind… for some reason. Obed’s been trying really hard to fix it new sprites for Sad Guy. instead of a colored stickman, we’re going to add a cool astronaut robot thing Robot Assistant to help with tutorial, instead of text just appearing on screen. it’ll follow you around and help. it’ll also give you the ability to move the camera to look ahead in the level, similar to Terraria’s binoculars intro cutscene. this’ll give more details about the story game icon and stardance banner"}, {"post_id": 31059, "ts": "2026-07-19T04:47:58Z", "hours": 2.6797, "text": "LET’S GOOO! Obed has successfully started to implement black holes, and we’re starting on the level set for them! I also finished up the final level restructures, they’re looking amazing now. Also here’s Obed’s rework of the title screen I forgot to post before."}, {"post_id": 29713, "ts": "2026-07-16T20:06:01Z", "hours": 3.8092, "text": "Wow, it’s been FOREVER since I’ve gotten to update this. Summer’s been busy, and Obed’s put a lot of work into Superorbital. He re-did the tileset, animated a new character, and polished a lot of the levels. I’ve been bugtesting and I also started on a full cosmetic restructure of every level to make it look less geometric and more natural. After we polish what we have so far, I hope to add the black holes and finish the game up! The Halfway Mark Has Been Attained (kind of)"}, {"post_id": 7572, "ts": "2026-06-12T17:38:40Z", "hours": 2.0533, "text": "Lots of progress has been made! Wrench throwing has been fixed and is now omnidirectional. Another tutorial level has been added to introduce gravity switching. The main menu was reworked to look cooler too! New black hole sprite. Bugs with going between rooms have been fixed too, and you can no longer spam antigrav to skip rooms (now antigrav gets turned off when you enter a new room). Things are going swimmingly, dearest friends!"}, {"post_id": 5180, "ts": "2026-06-08T21:29:27Z", "hours": 2.1033, "text": "First functions are going well so far! Gravity switching and wrench throwing work (mostly), and the black hole is coded in but not implemented yet. Don’t mind Obed’s goated placeholder"}]...
|
Title: Superorbital by @orivio | Stardance
Devlog Title: Superorbital by @orivio | Stardance
Devlogs:
First functions are going well so far! Gravity switching and wrench throwing work (mostly), and the black hole is coded in but not implemented yet. Don’t mind Obed’s goated placeholder
Lots of progress has been made! Wrench throwing has been fixed and is now omnidirectional. Another tutorial level has been added to introduce gravity switching. The main menu was reworked to look cooler too! New black hole sprite. Bugs with going between rooms have been fixed too, and you can no longer spam antigrav to skip rooms (now antigrav gets turned off when you enter a new room). Things are going swimmingly, dearest friends!
Wow, it’s been FOREVER since I’ve gotten to update this. Summer’s been busy, and Obed’s put a lot of work into Superorbital. He re-did the tileset, animated a new character, and polished a lot of the levels. I’ve been bugtesting and I also started on a full cosmetic restructure of every level to make it look less geometric and more natural. After we polish what we have so far, I hope to add the black holes and finish the game up! The Halfway Mark Has Been Attained (kind of)
LET’S GOOO! Obed has successfully started to implement black holes, and we’re starting on the level set for them! I also finished up the final level restructures, they’re looking amazing now. Also here’s Obed’s rework of the title screen I forgot to post before.
Superorbital Devlog #5 Progress: first OST has been made! it was originally called Space Parade, but we immediately renamed it to Quest of the Anomaly. it’ll be used for the intro cutscene some progress with gravity and timescale implementation with black holes work done on options menu and keybind settings. all inputs are bindable, and there are also presets based on the controls of Celeste and Hollow Knight (more to be added, maybe) Things we’re trying to do soon: there’s this annoying bug where sometimes you randomly dash without ANY input at all. after bugtesting, Obed found that godot genuinely thinks someone is inputting the dash keybind… for some reason. Obed’s been trying really hard to fix it new sprites for Sad Guy. instead of a colored stickman, we’re going to add a cool astronaut robot thing Robot Assistant to help with tutorial, instead of text just appearing on screen. it’ll follow you around and help. it’ll also give you the ability to move the camera to look ahead in the level, similar to Terraria’s binoculars intro cutscene. this’ll give more details about the story game icon and stardance banner
SUPERORBITAL Devlog #6 Gameplay/Story: Initial dialogue has been finished. Robo-Guy appears to give tutorial dialogue throughout the game. There is full dialogue for every section that we have made so far. Wrench has been re-implemented for the learn_wrench section of the game WIP black hole redesign Music and Art: I made a new, fairly crappy black hole for the game icon. Hoping to redo it with a drawing tablet once this project gets shipped (so exciting!!!) OST tracks 2 (Lone Traveler) and 3 (Martian Overture) have been finished AND implemented into the game! That’s right, we have a working (though messy) system to implement music! Things to do: Polish icon and banner Hopefully polish and re-organize code (It’s really messy right now, and very clearly the product of summertime boredom, lol) Sad Guy sprites Redesign of other sprites (new tiles, some proportional fixing for Robo-Guy and Sad Guy) Cutscene system and intro implementation
SUPERORBITAL Devlog # 7 Gameplay/Story: There are dialogues for every section that we’ve made so far. Almost every section of the Alpha is finished so far! New black hole implementation Overall polishing for many bugs Music and Art: New spritework for the Assistant Polished state-based animation bugs Things to do: Implement intro cutscene Implement final cutscene Dialogue polishing Tileset partial redesign
SUPERORBITAL DEVLOG #8 Gameplay/Story: Lots of level polishing has been added New obstacles Started work on intro/final cutscene Music/Art: New black hole shader!!! It looks so cool Some new sprites in the tileset to make it look nicer Overall more decoration Things to do: Level polishing, tileset shading Add intro/final cutscene (full implementation) File organization Bugfixing for black holes Developer Note: You might notice that some bits of the attached recording are really weird/buggy looking. Part of that is cuz I accidentally did some work in the wrong branch that was meant to fix some things (like the music and some other issues), and this is on another branch. Hopefully we can resolve any conflicts and fix things up soon!
SUPERORBITAL DEVLOG #9: Bugs bugs bugs!!!! Gameplay/Story: We’ve been working on a lot of bug fixing, ranging from removing tiny skips/deaths to entire game-crashing bugs Music/Art: We added sound effects for collisions, wrench throwing, etc Music has a new system in the level directory and has been readded Todo/Dev Notes: We’re getting ready to ship soon! The plan is to finish up with bugfixing, playtest a bit, and then ship before the 20th! We have to figure out how to fix a bug where you get wiped out of existence when in antigrav and colliding We have to implement the cutscenes UI fixes/polishing coming soon!
SUPERORBITAL DEVLOG #10: The End? You can watch a full playthrough of the intro segment here: https://youtu.be/-zq8ps87daI After a plethora of bugfixing (see attached for a few examples lol), we did it! The Alpha, as far as we can tell, is done! Gameplay/Story: Intro and outro cutscene have been implemented, though not polished fully yet. Lots of level redesign. Levels have been shifted to reduce the difficulty curve and also introduce dash/antigrav earlier. Sad Guy and Assistant now have actual names: Vitri and G.R.A.V. Music/Art: Old intro song, which ended up scrapped, is now in the credits Buzzsaw texture Dev Note: This was such an exciting intro to full game development! The game is really fun to play in my opinion. Even though it’s buggy and unpolished in some aspects, we’ve got a ton of time to work on that in the future. Enjoy it once it’s shipped!!
SUPERORBITAL Mini Devlog # 10.5: Just clearing out the last hour and a half I got from working on the trailer. We’re gonna be shipping in just a few minutes! Here are a few clips used in the trailer:
Ships:
SUPERORBITAL: The Quest of the Anomaly After months of hard work, Obe Dot and I finally present to you SUPERORBITAL. What on earth is a SUPERORBITAL? SUPERORBITAL is a 2D platformer where you play as Vitri, the only human born without gravity. After years of being ostracized by society, Vitri sets out on a mission to change things for the better. He decides to take a gamble on a popular story that’s been spreading about all planets having tangible gravity cores at their centers, and decides to find one for himself. Accompanied only by his robot assistant, G.R.A.V. (Great Robot Assistant of Vitri), Vitri flies out into deep space and lands on a planet named Zeta-C5, where he uses special abilities, such as turning gravity on and off, to explore and make his way towards the planet’s core. Difficult obstacles and even unexpected foes block his way, but he’s got to get through no matter what. Dev Messages: orivio: SUPERORBITAL has been a really fun introduction to Godot! Though challenging at times, designing the levels around our unique mechanics was pretty fun, and I think overall the game turned out pretty great! Obviously it is only an alpha release, so I plan on working together with Obe Dot to polish it a ton, in terms of artwork, music, story, etc. Expect lots more content to come! Obe Dot: Developing this game has been an amazing experience. This is my first big gamedev project, and I’ve learned so much. I really hope to work more on this project in the future, while also improving my art and programming skills. Much appreciation to Hack Club for creating this event! Try out the game on our itch, or watch the provided gameplay footage and/or trailer! Trailer: https://www.youtube.com/watch?v=5WPKXYqy1FI Gameplay: https://youtu.be/-zq8ps87daI?si=sUK4_9BedT1OdXU8...
|
1793145216.4844806
|
1793231616.4844806
|
|
3052
|
Witchsky by @xan | Stardance
|
xan
|
1
|
40.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T00:46:48Z", "hours": 40.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Witchsky is a fork of Bluesky’s social app, made for power users or anyone who wants a slightly more enjoyable microblogging experience. With custom themes, markdown link support, options to hide distracting elements, the ability to use different servers, a pho-edit functionality, the ability to download images and videos (the latter in any format you want!), view people’s pronouns & websites, and maybe a dozen or 2 other features…", "repo": "https://tangled.org/jollywhoppers.com/witchsky.app/", "demo": "https://witchsky.app"}]...
|
[{"post_id": 42992, "ts": "202 [{"post_id": 42992, "ts": "2026-08-08T00:39:55Z", "hours": 5.1703, "text": "updated the web app to include a few new things from bluesky’s app upstream! also moved around a few settings to make them easier to find, added a toggle to only show people’s handles in place of display names, and made changing app server & other infrastructure settings easier (with dropdowns and speedier access). I have more plans (like mobile apps) but i think this is shippable now!"}, {"post_id": 29310, "ts": "2026-07-16T04:45:26Z", "hours": 10.9917, "text": "I added a toggle to only show handles, a thread reader mode from another bsky fork, a new sign-up/better login flow, vastly improved the repost carousels, fixed numerous bugs, and added a secret 67-related feature! 👀"}, {"post_id": 22083, "ts": "2026-07-04T10:35:34Z", "hours": 23.6497, "text": "I’m working on a fork of Bluesky’s open source microblogging client called Witchsky, available at https://witchsky.app . I’ve been working on this for a bit but forgot to ship 💀 so don’t mind the total time logged; oops… I’ve done a TON (ong I don’t think I’ll be able to remember it all; it’s been a while)! I fixed a huge number of small things and kept it up-to-date (working through merge conflicts might be a majority of the time spent working on all this… I need to find out how to be more efficient). Also made some strides in updating all the settings and making chat access more powerful here than upstream (you can access chats with deactivated accounts! but still need to make it clear that they cannot be messaged). Also made the long-press/right-click on post interaction buttons respect reply-gates (so if your reply wouldn’t show up, it won’t let you make a post replying)."}]...
|
Title: Witchsky by @xan | Stardance
Devlogs:
I’m Title: Witchsky by @xan | Stardance
Devlogs:
I’m working on a fork of Bluesky’s open source microblogging client called Witchsky, available at https://witchsky.app . I’ve been working on this for a bit but forgot to ship 💀 so don’t mind the total time logged; oops… I’ve done a TON (ong I don’t think I’ll be able to remember it all; it’s been a while)! I fixed a huge number of small things and kept it up-to-date (working through merge conflicts might be a majority of the time spent working on all this… I need to find out how to be more efficient). Also made some strides in updating all the settings and making chat access more powerful here than upstream (you can access chats with deactivated accounts! but still need to make it clear that they cannot be messaged). Also made the long-press/right-click on post interaction buttons respect reply-gates (so if your reply wouldn’t show up, it won’t let you make a post replying).
I added a toggle to only show handles, a thread reader mode from another bsky fork, a new sign-up/better login flow, vastly improved the repost carousels, fixed numerous bugs, and added a secret 67-related feature! 👀
updated the web app to include a few new things from bluesky’s app upstream! also moved around a few settings to make them easier to find, added a toggle to only show people’s handles in place of display names, and made changing app server & other infrastructure settings easier (with dropdowns and speedier access). I have more plans (like mobile apps) but i think this is shippable now!
Ships:
Witchsky is a fork of Bluesky’s social app, made for power users or anyone who wants a slightly more enjoyable microblogging experience. With custom themes, markdown link support, options to hide distracting elements, the ability to use different servers, a pho-edit functionality, the ability to download images and videos (the latter in any format you want!), view people’s pronouns & websites, and maybe a dozen or 2 other features…...
|
1793091005.417404
|
1793177405.417404
|
|
6658
|
Slack-ASM by @SeradedStripes | Stardance
|
SeradedStripes
|
1
|
40.0
|
562
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T18:50:51Z", "hours": 40.0, "multiplier": 13.9, "payout": 562, "blessing": "neutral", "text": "I made slack-asm! A slack bot written fully in x86_64 Assembly only. ARM support coming in the next ship. With 0.35MB ram usage and a peak of 0.52 CPU %, its a really really lightweight and fast slackbot. (The image below of ram and cpu usage may be slightly off from what I said here) Though it only has a small list of commands, it is very easy to add more to it!", "repo": "https://github.com/SeradedStripes/slack-asm", "demo": "https://hackclub.enterprise.slack.com/archives/C0B8BL6P3T3"}]...
|
[{"post_id": 61692, "ts": "202 [{"post_id": 61692, "ts": "2026-09-04T18:45:55Z", "hours": 0.7156, "text": "Finishing Touches So time to ship Basically finished up by: Doing example env Using a proper deploy workflow Add env reading support via CLI args Nuked docker compose And ofc, a bunch of readme updates"}, {"post_id": 28314, "ts": "2026-07-14T14:21:34Z", "hours": 1.7544, "text": "Updates Did a banner & Logo Add a pung command, it pings a certain user when you use it Added slash commands where the slash cmd msg is deleted instead of kept Fixed help cmd deleting slash cmd msg when it should not be"}, {"post_id": 27913, "ts": "2026-07-13T20:46:30Z", "hours": 1.2239, "text": "Updates Updated docker-compose Added pinging bot as a way to use its commands Auto reconnect ws after slack api decides to end it help cmd responds without threading due to slack api limitations Commands when pinging bot always responds in thread, even help cmd Added a meow cmd"}, {"post_id": 27407, "ts": "2026-07-12T23:16:02Z", "hours": 8.8964, "text": "Updates This Devlog took a while 😭 Anyway on to the changes.. Slack-asm help command Ability to respond in threads Roadmap updates Docker updates Minor help message updates Just check the commit messages 😭 Added Slack bot token handling and HTTP POST functionality Introduced load_bot_token function to extract the bot token from the environment buffer. Implemented slack_send_http_post function for making HTTP POST requests to Slack API with optional authorization. Updated slack_fetch_channel_ts to utilize the new bot token for API calls. Enhanced slash command handlers to send responses using slack_send_http_post . Added support for response URLs in slash command responses. Introduced memmem function for searching byte sequences in memory. Added debug logging for TLS operations to aid in troubleshooting. /slack-asm help now replies in a thread, though its not the correct thread The screeny below is from after i ram /slack-asm help What happened is it deleted the /slack-asm help msg and instead replied in my most recent other message"}, {"post_id": 22123, "ts": "2026-07-04T12:41:43Z", "hours": 2.9303, "text": "Updates We implemented a frick ton of tests sha256 hmac tests prf kdf tests tls record tests tls handshake tests tls connect tests aes cbc tests encrypted record tests x509 tests http tests rsa tests gcm tests"}, {"post_id": 21631, "ts": "2026-07-03T17:50:21Z", "hours": 1.6853, "text": "updates WE GOT WORKING SLASH COMMANDS (See screenshot below) Also fixed an indirect address displacement warning Fixed us not replying to the slack api with proper json Still not deployed Next up Messages that are visible to everyone It replying to certain phrases (maybe)"}, {"post_id": 21458, "ts": "2026-07-03T12:43:00Z", "hours": 5.3064, "text": "Updates FD might kill me We spent 2hrs fixing the first 3 bytes of keystream being wrong for the last block when we were calling the slack api. Implemented a ENV parser Yet another gitignore update Fixed parsing extensions wrong Reached 8.2K LOC"}, {"post_id": 20735, "ts": "2026-07-02T12:52:23Z", "hours": 1.1747, "text": "Updates/Status Report Changes for this devlog TLS alert Handling Updated content length from 32 to 64 bit for >4GB response bodies Status Report We have Full HTTPS working end-to-end This includes but not limited to: Full TLS 1.2 incl handshakes Full HTTP support TLS libraries: SHA-256 HMAC-SHA256 AES-128- CBC & GCM RSA support ECDHE key exchange They are implemented enough for TLS We have Linux syscalls We at 10161 lines of asm, 7.6k LOC, 1.2k Comments & 1.3K blanks What Next? We integrating this bad boy with slack api PS: ignore the bad request part in the image below"}, {"post_id": 19240, "ts": "2026-06-30T14:34:43Z", "hours": 3.335, "text": "Updates Padding fix HTTP versioning parsing implementation Chunked transfer encoding as https is horrible 2 commits i did were just random gitignore updates in between a massive 2k line addition commit Made an abbreviation YAGU or Yet another gitignore update Implemented P-256 elliptic curve primitives for ECDHE Key Exchange AES-128-GCM for TLS1.2 Tests for AES-128-GCM (they were horrible to do, purely because my GCM code was not working TLS code updates for aes128 & ecc Yes i am aware my gcm_tests below give horrible information to help lmao"}, {"post_id": 17549, "ts": "2026-06-28T11:40:19Z", "hours": 1.2286, "text": "Updates TLS Handshake fixes: Added server_ccs field to the tls_ctx struct Initialized server_ccs in tls_init Fixed PKCS#7 padding byte value in tls_send fixed big endian length field encoding in CCS header Removed CCS Peak Probably something I missed RSA Big integer rewrite Added STDERR & increased tls_ctx_buf Commented out test_harness call and added dump_keys stub Updated the Makefile Discovered i messed something up in compiled binary"}, {"post_id": 17004, "ts": "2026-06-27T16:17:17Z", "hours": 0.6667, "text": "Updates DNS resolution in pure assembly Fixed a bug where exit 255 was not in the RSA big_mod code, it was instead in the tls code for whatever reason We at like 5.4K LOC in Assembly now Thats it"}, {"post_id": 15053, "ts": "2026-06-24T13:29:51Z", "hours": 0.7378, "text": "Updates Removed the need of der file in the repo by hardcoding the value of the RSA-2048 test key Implemented Basic HTTP response parsing Began work on a very very basic dns resoultion system"}, {"post_id": 10506, "ts": "2026-06-17T08:05:55Z", "hours": 4.5422, "text": "Updates f952ca5 Added push rdp/ pop rbp to preserve rdp across sha256_transform updates rsa.asm RSA PKCS#1 RSA OAEP encoding Montgomery ladder modular exponentiation Big number helpers tls.asm New exports New externs More constants A bunch of file changes, see the actual commit for all of it test.asm Extend test_harness SHA256, HMAC-SHA256 test vectors KDF intermediate HMAC computation test PRF output comparison against known vector Key derivation: client/server write MAC keys, write keys, IVs Full TLS 1.2 handshake Some more i dont remember about Slack.asm Updated banner, added externs for new functions Cleaned up _start to call main then exit 2 Random commits just updating gitignore imbetween 38dad3c tls.asm Register clobber fix CCS read_seq MAC double-count fix Verify_data mismatch Removed debug writes Disconnect Comment test.asm ServerHello hash offset update PRF target address update Fix MAC length byte-order Seq number update Child ClientHello receive update socket.asm sys_send update Summary Frick me, most of this devlog what trying to fix one single bug. The hardest part of this devlog was fixing the stupid bugs i had."}, {"post_id": 6824, "ts": "2026-06-11T13:29:56Z", "hours": 1.0872, "text": "Updates Agents file and Contributing file X.509 certificate parsing & basic validity checking No longer include .der files (gitignore change) Updated Commenting, ie. made it more clearer and standardized it a bit. Updated Readme & Roadmap Code Now at 4.5k lines of assembly, 3.3k lines are actual code, 701 commenting lines. By the way its 3,300 lines exactly for the asm code lines"}, {"post_id": 5485, "ts": "2026-06-09T09:09:47Z", "hours": 1.6078, "text": "Updates Added AES-128-CBC encryption & decryption Implement pre_master_secret generation The line counts have increased Currently 3.7k lines of asm, (2.8k LOC) AES-128-CBC Notes: Most of my time was spent debugging it Thats it I think Oh Yeah and somehow all tests pass!"}, {"post_id": 3486, "ts": "2026-06-06T13:22:49Z", "hours": 0.8539, "text": "Updates Added Key derivation functions & its tests Added TLS 1.2 PRF implemnentation & its tests Sitting at 1759 lines of asm code now Still a bunch to go"}, {"post_id": 2722, "ts": "2026-06-05T13:40:16Z", "hours": 0.8997, "text": "Updates Stardance went off as I tried to post a devlog (this is redoing it) Added TLS 1.2 handshake & TLS record layer Finished RFC 4231 test cases"}, {"post_id": 2671, "ts": "2026-06-05T10:48:41Z", "hours": 0.85, "text": "Updates My wakatime broke Added SHA256 in pure asm Added hmac_sha256 in pure asm Fixed the sha256 error Comment out object files Readme & Roadmap polishing Update repo structure to now have code in src/"}, {"post_id": 2115, "ts": "2026-06-04T13:20:16Z", "hours": 0.6239, "text": "Updates Im sad from no md support in sd Added a makefile Thin TLS wrapper TLS stubs Test harness Dependabot for gh actions"}, {"post_id": 2081, "ts": "2026-06-04T12:26:21Z", "hours": 0.2942, "text": "Basic project repo setup & Skeleton of the app"}]...
|
Title: Slack-ASM by @SeradedStripes | Stardance
D Title: Slack-ASM by @SeradedStripes | Stardance
Devlogs:
Basic project repo setup & Skeleton of the app
Updates Im sad from no md support in sd Added a makefile Thin TLS wrapper TLS stubs Test harness Dependabot for gh actions
Updates My wakatime broke Added SHA256 in pure asm Added hmac_sha256 in pure asm Fixed the sha256 error Comment out object files Readme & Roadmap polishing Update repo structure to now have code in src/
Updates Stardance went off as I tried to post a devlog (this is redoing it) Added TLS 1.2 handshake & TLS record layer Finished RFC 4231 test cases
Updates Added Key derivation functions & its tests Added TLS 1.2 PRF implemnentation & its tests Sitting at 1759 lines of asm code now Still a bunch to go
Updates Added AES-128-CBC encryption & decryption Implement pre_master_secret generation The line counts have increased Currently 3.7k lines of asm, (2.8k LOC) AES-128-CBC Notes: Most of my time was spent debugging it Thats it I think Oh Yeah and somehow all tests pass!
Updates Agents file and Contributing file X.509 certificate parsing & basic validity checking No longer include .der files (gitignore change) Updated Commenting, ie. made it more clearer and standardized it a bit. Updated Readme & Roadmap Code Now at 4.5k lines of assembly, 3.3k lines are actual code, 701 commenting lines. By the way its 3,300 lines exactly for the asm code lines
Updates f952ca5 Added push rdp/ pop rbp to preserve rdp across sha256_transform updates rsa.asm RSA PKCS#1 RSA OAEP encoding Montgomery ladder modular exponentiation Big number helpers tls.asm New exports New externs More constants A bunch of file changes, see the actual commit for all of it test.asm Extend test_harness SHA256, HMAC-SHA256 test vectors KDF intermediate HMAC computation test PRF output comparison against known vector Key derivation: client/server write MAC keys, write keys, IVs Full TLS 1.2 handshake Some more i dont remember about Slack.asm Updated banner, added externs for new functions Cleaned up _start to call main then exit 2 Random commits just updating gitignore imbetween 38dad3c tls.asm Register clobber fix CCS read_seq MAC double-count fix Verify_data mismatch Removed debug writes Disconnect Comment test.asm ServerHello hash offset update PRF target address update Fix MAC length byte-order Seq number update Child ClientHello receive update socket.asm sys_send update Summary Frick me, most of this devlog what trying to fix one single bug. The hardest part of this devlog was fixing the stupid bugs i had.
Updates Removed the need of der file in the repo by hardcoding the value of the RSA-2048 test key Implemented Basic HTTP response parsing Began work on a very very basic dns resoultion system
Updates DNS resolution in pure assembly Fixed a bug where exit 255 was not in the RSA big_mod code, it was instead in the tls code for whatever reason We at like 5.4K LOC in Assembly now Thats it
Updates TLS Handshake fixes: Added server_ccs field to the tls_ctx struct Initialized server_ccs in tls_init Fixed PKCS#7 padding byte value in tls_send fixed big endian length field encoding in CCS header Removed CCS Peak Probably something I missed RSA Big integer rewrite Added STDERR & increased tls_ctx_buf Commented out test_harness call and added dump_keys stub Updated the Makefile Discovered i messed something up in compiled binary
Updates Padding fix HTTP versioning parsing implementation Chunked transfer encoding as https is horrible 2 commits i did were just random gitignore updates in between a massive 2k line addition commit Made an abbreviation YAGU or Yet another gitignore update Implemented P-256 elliptic curve primitives for ECDHE Key Exchange AES-128-GCM for TLS1.2 Tests for AES-128-GCM (they were horrible to do, purely because my GCM code was not working TLS code updates for aes128 & ecc Yes i am aware my gcm_tests below give horrible information to help lmao
Updates/Status Report Changes for this devlog TLS alert Handling Updated content length from 32 to 64 bit for >4GB response bodies Status Report We have Full HTTPS working end-to-end This includes but not limited to: Full TLS 1.2 incl handshakes Full HTTP support TLS libraries: SHA-256 HMAC-SHA256 AES-128- CBC & GCM RSA support ECDHE key exchange They are implemented enough for TLS We have Linux syscalls We at 10161 lines of asm, 7.6k LOC, 1.2k Comments & 1.3K blanks What Next? We integrating this bad boy with slack api PS: ignore the bad request part in the image below
Updates FD might kill me We spent 2hrs fixing the first 3 bytes of keystream being wrong for the last block when we were calling the slack api. Implemented a ENV parser Yet another gitignore update Fixed parsing extensions wrong Reached 8.2K LOC
updates WE GOT WORKING SLASH COMMANDS (See screenshot below) Also fixed an indirect address displacement warning Fixed us not replying to the slack api with proper json Still not deployed Next up Messages that are visible to everyone It replying to certain phrases (maybe)
Updates We implemented a frick ton of tests sha256 hmac tests prf kdf tests tls record tests tls handshake tests tls connect tests aes cbc tests encrypted record tests x509 tests http tests rsa tests gcm tests
Updates This Devlog took a while 😭 Anyway on to the changes.. Slack-asm help command Ability to respond in threads Roadmap updates Docker updates Minor help message updates Just check the commit messages 😭 Added Slack bot token handling and HTTP POST functionality Introduced load_bot_token function to extract the bot token from the environment buffer. Implemented slack_send_http_post function for making HTTP POST requests to Slack API with optional authorization. Updated slack_fetch_channel_ts to utilize the new bot token for API calls. Enhanced slash command handlers to send responses using slack_send_http_post . Added support for response URLs in slash command responses. Introduced memmem function for searching byte sequences in memory. Added debug logging for TLS operations to aid in troubleshooting. /slack-asm help now replies in a thread, though its not the correct thread The screeny below is from after i ram /slack-asm help What happened is it deleted the /slack-asm help msg and instead replied in my most recent other message
Updates Updated docker-compose Added pinging bot as a way to use its commands Auto reconnect ws after slack api decides to end it help cmd responds without threading due to slack api limitations Commands when pinging bot always responds in thread, even help cmd Added a meow cmd
Updates Did a banner & Logo Add a pung command, it pings a certain user when you use it Added slash commands where the slash cmd msg is deleted instead of kept Fixed help cmd deleting slash cmd msg when it should not be
Finishing Touches So time to ship Basically finished up by: Doing example env Using a proper deploy workflow Add env reading support via CLI args Nuked docker compose And ofc, a bunch of readme updates
Ships:
I made slack-asm! A slack bot written fully in x86_64 Assembly only. ARM support coming in the next ship. With 0.35MB ram usage and a peak of 0.52 CPU %, its a really really lightweight and fast slackbot. (The image below of ram and cpu usage may be slightly off from what I said here) Though it only has a small list of commands, it is very easy to add more to it!...
|
1793134057.9431798
|
1793220457.9431798
|
|
17248
|
Wanderpin by @darshjain | Stardance
|
darshjain
|
1
|
40.0
|
735
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T08:35:27Z", "hours": 40.0, "multiplier": 18.23, "payout": 735, "blessing": "neutral", "text": "Wanderpin is a 3D-globe trip planner where the journey is the product, not the spreadsheet. Drop pins on a spinning night-earth, watch your route stitch together, then hit Play and fly the whole trip as a cinematic reel - gliding across the globe for long hops and dropping into real 3D terrain when two stops are close. The hardest part was making the globe-to-3D handoff feel continuous. Two heavy engines (three.js for the globe, MapLibre for terrain) had to crossfade without a tile-load flash, so I warm the 3D view in the background and only commit once it’s actually ready. I also caught the play-through reel re-rendering the entire app - globe included - on every caption tick; moving the caption into its own useSyncExternalStore so only it updates made the fly-through visibly smoother. I’m proud that it feels like a journey instead of a form: the cinematic reel, ~40k curated places that each carry a vibe and a fun fact, and one-tap sharing as a postcard, a public link, or an embeddable live globe. To try it: open the live link, search a city or just click the globe to drop pins (or start from a template like India’s Golden Triangle), then hit Play. Zoom all the way into a pin to watch it cross into street-level 3D. Built with React 19 + TypeScript, three.js, MapLibre GL, and Vercel serverless.", "repo": "https://github.com/darshnerd/wanderpin", "demo": "https://wanderpin-ecru.vercel.app/"}]...
|
[{"post_id": 9766, "ts": "2026 [{"post_id": 9766, "ts": "2026-06-16T06:22:00Z", "hours": 3.9347, "text": "Wanderpin - the first five seconds, final touchups Everything in this batch is about the moment someone lands : a blank globe is intimidating, so I built a real first-run, made it personal, and fixed a jank I’d been ignoring. A front door instead of an empty globe New visitors get a welcome dialog: Plan a trip, or Remember one you took. Either way there are starter templates (a week in Italy, around the world, a California road trip) you can drop in with one tap and start dragging stops around. Coachmarks that follow the actual UI A short guided tour spotlights real elements: search, the view toggle, Play. It measures each target’s live bounding rect, re-measures on resize and focus, flips above/below by screen half, and hides itself the moment you focus the search box so it never fights you while typing. Dismissals persist so it doesn’t nag on return visits. Where it stands Build’s green, all staged, not yet committed. Next: watch real first sessions, do people tap through a template or skip straight to search?"}, {"post_id": 9295, "ts": "2026-06-15T16:44:56Z", "hours": 4.0172, "text": "Wanderpin - getting routes to leave the ground Live: https://wanderpin-ecru.vercel.app/ One update, mostly one stubborn visual I’d twice given up on: real lifted route arcs on the 3D map. Arcs that finally hug the globe deck.gl’s ArcLayer drifts on a MapLibre globe (it only knows Web Mercator), and my earlier hand-rolled layer compiled, ran, threw zero errors, and painted nothing. The fix came from reading MapLibre’s own shaders: inject its projection prelude and call projectTileFor3D(pos, elevation) . The thing I’d missed every time - elevation is in meters above the sphere , fed through five per-frame uniforms, not a raw matrix. Then the polish fights: a z-fight speckle (fixed by not writing depth), a 50 km minimum lift that made short hops launch like fireworks, and a fat vertical wall at city zoom (now fades out past ~zoom 10). An optional day timeline New “Days” view in the trip panel. Weekend trip? You’ll never see it. Month-long? Hit “Organize into days” and stops group into collapsible days you can split, reorder, fit the globe to, or play one at a time. A day is a contiguous slice of the route, so “move to Day 3” repositions the stop and re-normalizes - the route and itinerary stay honest. Days travel on share links too. Where it stands Live at site, (Also squashed a deploy bug: one .tsx API route made Vercel type-check the whole api/ folder with no tsconfig - a tiny api/tsconfig.json fixed it.)"}, {"post_id": 9121, "ts": "2026-06-15T08:21:12Z", "hours": 5.0136, "text": "Wanderpin - the globe looked dumb on a 20 km hop, so I taught it to zoom This batch turns a Wanderpin trip from a thing on your screen into a thing you can send to a friend - with a real link preview, an embeddable globe, and a reel that finally looks good on short hops. Share a journey, for real Hit Share and you get a public link ( /t/slug ) in a box, plus Copy, the native share sheet, and WhatsApp / Instagram / X buttons. The interesting part is what happens when someone opens that link: /t/:slug is server-rendered ( api/share.ts ) and serves a dynamically generated Open Graph image ( api/og.tsx via @vercel/og ) - so pasting a Wanderpin link into a chat unfurls into a proper preview card instead of a blank rectangle. There’s an embeddable globe too: /embed/:slug renders just the spinning globe (a tiny route check in main.tsx swaps the whole app for EmbedView ), and the share dialog hands you the <iframe> snippet. Shared trips auto-expire after 7 days via a pg_cron job, so the table stays small and old links quietly die. The reel got smarter - 3D for the short hops The globe fly-through looks flat when two stops are 20 km apart - the arc is a stub and the camera barely moves. So now the Play reel checks each leg: anything under 200 km crosses into the 3D map (terrain + buildings) with a zoom picked from the distance, longer legs stay as globe arcs. It asks once before playing, and video recording stays globe-only so captures never go blank. What bit me Instagram has no web “share a link” intent (unlike WhatsApp/X). So the IG button copies the link and opens Instagram - the native share sheet handles it properly on phones. The slug kept vanishing from the URL. A shared trip was calling replaceState(\"/\") the instant it loaded, so /t/slug disappeared mid-playback and you couldn’t re-share what you were watching. Moved that reset onto the “Create yourslongs. The reel switch reused the globe↔3D handoff plumbing, and the type-checker caught a flyTo signature mismatch before it shipped - the map handle wants { zoom } , not a bare number. Where it stands It all builds clean, Try it: https://wanderpin-ecru.vercel.app/"}, {"post_id": 8858, "ts": "2026-06-14T19:05:10Z", "hours": 6.1658, "text": "Wanderpin - zoom into the world Two big things landed this week: the map went from 26 hand-picked places to ~40,000, and zooming into the globe now drops you into a real 3D city. From 26 places to 40,000 - and they all have a vibe Wanderpin used to know about 26 famous spots. Now it knows ~40k: cities, towns, UNESCO sites, landmarks, and the world’s most-visited attractions - each tagged with a one-word vibe (Coastal, Alpine, Arid, Heritage, Sacred, Volcanic…). The fun part is the vibes aren’t hand-typed. They’re derived at build time from real data: a Köppen climate raster (so Cairo reads “Arid” and Athens “Mediterranean”), distance to an actual coastline for “Coastal”, GeoNames elevation/feature codes for peaks and castles, and Wikidata’s annual-visitor numbers to rank “most visited”. Facts come from Wikipedia and UNESCO descriptions. Search is now instant and offline - type “Firenze” and Florence shows up. The fun part: zoom in and the globe becomes a city The home view is a space globe (three.js). The close-up is a different engine entirely - maplibre with 3D terrain and buildings. I wired up a level-of-detail handoff between them: zoom into a pin and it crosses from globe to 3D automatically, and zoom back out and it returns to the globe. The trick to making it not feel janky: when you start zooming in, it quietly mounts the 3D map hidden and lets it pull tiles in the background. Only once the tiles are warm does it crossfade. No blank loading flash. What broke (twice) It hung forever in preload. The crossfade waited on maplibre’s idle event to know tiles were ready - but that event sometimes never fires. The globe just kept zooming into black. Fix: commit after a 2.2s fallback even if idle is silent. The way back never worked. Zooming out in 3D wouldn’t return to the globe. Turned out map.on(\"zoom\") captured the callback once at mount - back when the view was still “globe” - so its if (view !== \"3d\") return guard killed every event forever. Fix: call the latest callback through a ref. Both are real bugs that would’ve bitten actual users on slow connections, not just test artifacts. Where it stands Globe -> 3D -> globe round-trips cleanly on both laptop and mobile, with zero console errors. Try it: https://wanderpin-ecru.vercel.app/"}, {"post_id": 8556, "ts": "2026-06-14T06:57:59Z", "hours": 3.3139, "text": "Wanderpin - Blog 5 - Update press play, watch your trip turn into a movie Live: https://wanderpin-ecru.vercel.app/ You drop a few pins on a globe and hit Play - and instead of a checklist, you get a cinematic fly-through you can actually share. This update was about chasing one idea until the app felt alive : the journey is the hero, the logistics hide in a drawer. The payoff Play used to just stop. Now it lands: the camera pulls back to frame the route, the arcs light up, and a date-stamped card counts up your distance, stops, countries and time. A little classifier scores the trip and picks the camera - a city hop zooms in, a round-the-world trip shows the marble. You also pick how you travel each leg (walk/train/flight…), which bends both the arc shape and the trip’s duration. Then three swings: export the fly-through as a video (recorded straight off the globe canvas, no server), “been there” pins that glow gold once visited, and a living globe - a warm daylight terminator plus each stop’s local time and current weather. What broke Geocode 500’d in prod, every call. Not a geocoding bug at all: type: \"module\" means Vercel runs the API as native ESM, and Node demands file extensions on imports. from \"./_nominatim\" crashed at load. One .js fixed it. The terminator looked gloomy. Darkening the night side just made an already-night map muddy. I flipped it - glow the sunlit side instead - and it finally read as “half the globe is lit.” Two suns. Every clear-sky stop showed ☀️ 06:28 · ☀️ 15° - my day marker next to the weather glyph. ngl used AI to build this image 😛"}, {"post_id": 8281, "ts": "2026-06-13T19:28:41Z", "hours": 4.5656, "text": "Wanderpin - I deleted the spreadsheet You open the app or you can :) (check it out - https://wanderpin-ecru.vercel.app/ ). A night-side Earth, city lights glowing, a slow spin. You drop a pin in Paris. Another in Tokyo. The arc draws across the globe, and right next to all of that, a panel quietly tells you your dream weighs 2.2 tonnes of CO₂ . That panel was killing the magic. This phase was about fixing it. The shift I stopped showing the numbers on the dream surface. Same numbers, just hidden one click deep behind a “Trip details” disclosure. In their place: one warm line that grows with the trip - “4 stops · 4 countries · An adventure taking shape.” You build a journey. The app reacts like it’s excited about it. Surprise me, the most fun thing the app could do, was buried under a dice icon. It’s the front door now: Take me somewhere. The empty state stopped being homework - “Your map’s a blank canvas, click to start” - and became an invitation: “Where are you dreaming of?” Drop your very first pin and the app whispers back: “Your journey begins in Santorini ✨” . Hover over a stop and a small card appears: “Why go - its iconic caldera is the rim of a colossal volcanic eruption.” Hit Play and the screen goes cinematic. Full-screen overlay, place name, vibe, progress dots, the route lighting up beneath. The trip used to be a spreadsheet. Now it’s a memory you haven’t made yet. The mobile catch Almost shipped a bug that would’ve made this look broken. On a phone, the empty-state “Take me somewhere” lives inside a bottom sheet. Tap it, and the surprise card was rendering behind the still-open sheet. To the user, nothing happened. To me, a testing pass on an iPhone-shaped viewport caught it the morning of. One-line fix. The kind that disappears in the diff but would have left every mobile user thinking the button was broken. Where it stands Empty state, surprise card, first pin, the reel - all warm now. The numbers are still there for the planners, behind one small toggle. The dreamers don’t see them at all. When Play ends, the camera pulls back, the whole route lights up, and the same numbers I just buried come surging back as a celebration - “You crossed 4 countries. Today, that’s a journey.” Same data, different feeling. The closing frame becomes a postcard you can share. The whole phase is one belief: people don’t open a travel app because they want to know how many kilometres a trip is. They open it because they want, for a minute, to imagine going somewhere. So show them the somewhere."}, {"post_id": 8043, "ts": "2026-06-13T12:44:32Z", "hours": 5.3458, "text": "Wanderpin - phase 3: real sharing, and the bug that ate an afternoon This update gave Wanderpin proper short links, a saved-trips library, and a route optimizer. But the part I’ll remember is a 100 KB mystery. Short links + a trip library Sharing used to cram the whole trip into a giant #... URL. Now there’s a tiny Supabase backend: hit Share and you get a clean …/t/aB3xY9 link that anyone can open, no login. Reads come straight from the browser (a public read policy), and writes go through a serverless function with the secret key, so nobody can scribble on the database from the client. When someone opens a shared link, the route flies stop to stop and a little “Make your own” card invites them to start their own. Click polish Spinning the globe was dropping stray pins, because react-globe.gl fires a click even at the end of a drag. Added a pointer-distance guard (under ~5px = a real click). Clicking open ocean now offers an “Add anyway” instead of a useless pin, and there’s an “Optimize route” button that reorders stops with nearest-neighbour + 2-opt to cut total distance. The bug: a 5-stop trip that was 400 KB Share kept failing in the browser with a 413 (payload too large). But the function worked fine when I hit it with curl. Same 5-stop trip, totally different size. I had the user dump their saved trip in the console. Five stops. 403,682 characters. Each stop had two mystery keys: __threeObjPoint and __threeObjLabel , ~100 KB each. Turns out react-globe.gl mutates the data objects you hand it - it bolts the entire Three.js render object (meshes, geometry, materials) straight onto your data. I was passing my live trip array to the globe, so it was quietly fattening every stop by 100 KB, which then got saved to localStorage and sent on publish. The hash link looked fine only because it re-packs specific fields, so it never saw the junk. Fix was two-fold: hand the globe throwaway copies so it scribbles on those instead of my real data, and sanitize trips to known fields on save/load (which also cleans up the bloated localStorage on next visit). Back to ~1 KB per trip. Where it stands Live at https://wanderpin-ecru.vercel.app/ - build a trip, optimize it, save it, share a short link, watch it fly. Honest caveats: shared trips are snapshots (open a link, get a copy - not live collaboration), and the globe’s three.js bundle is still the heavy chunk (lazy-loaded, so it only hits the 3D view). Lesson logged: never trust a viz library not to mutate your state."}, {"post_id": 7632, "ts": "2026-06-12T19:09:46Z", "hours": 3.2525, "text": "Wanderpin - phase 2: trips you can shape, share, and watch fly Phase 1 let you drop pins on a globe. Phase 2 turns that into an actual trip planner: reorder stops, edit them, share a link, and hit Play to watch the camera fly your whole route. Play: the globe earns its keep The feature I’m happiest with. There’s now a Play button that flies the camera stop to stop along your route, advancing the highlighted pin as it goes. On the 3D globe it looks the way I wanted the whole app to feel. The nice surprise: it was almost free. Back in phase 1 both the globe and the flat map exposed the same tiny flyTo handle. So the tour loop doesn’t know or care which view you’re on Editing, sharing, exporting Reorder by dragging (dnd-kit), with the route redrawing live. The drag handle is the only draggable bit, so dragging never fights tapping a stop to edit it. Edit a stop inline — rename, swap the emoji, add a note. Undo on remove and “clear all” via the toast, because I deleted my own trip twice testing it. Share builds a link with the whole trip compressed into the URL (lz-string), no backend. Open it anywhere and the trip loads. IDs are regenerated on import so a shared trip never collides with one you already have. Export to JSON or GPX, so a route can open in Google Earth. Where it stands Live at https://wanderpin-ecru.vercel.app/ . Every phase builds clean ( tsc + Vite) and deploys to Vercel on push. The loop now: build a trip, reorder and annotate it, watch it fly, share the link."}, {"post_id": 7419, "ts": "2026-06-12T11:12:40Z", "hours": 4.6761, "text": "Wanderpin - first build Check it out yourself -> https://wanderpin-ecru.vercel.app/ A little travel app where you drop pins on a spinning 3D globe (or a flat map if you prefer), and it stitches them into a trip with distances and country counts. Here’s where it’s at after the first couple of sessions. What it does so far Globe + map, same data. A 3D night-earth globe (three.js via react-globe.gl) with glowing pins and animated arcs between stops, and a 2D Leaflet map with a dashed route line. One toggle swaps between them - they render off the same trip array. Search and click to add. Type a city and it geocodes through OpenStreetMap’s Nominatim; or just click anywhere on the map and it reverse-geocodes the spot into a named pin. Surprise me. A pile of hand-picked destinations, each with a fun fact and a vibe, for when you don’t know where you want to go. It remembers. Trip, view, and “is this still the sample” all persist to localStorage. First-time visitors get a seeded Paris -> Rome -> Cairo route so the app isn’t empty on load. Spent a bit making the Nominatim calls polite: searches are debounced so a fast typer doesn’t fire a request per keystroke. Where it stands The core loop works end to end: search or click -> pin lands on globe and map -> trip panel updates distance (haversine) and country count -> reload and it’s all still there. Next up is editing/reordering stops and tidying the mobile layout"}]...
|
Title: Wanderpin by @darshjain | Stardance
Devlog Title: Wanderpin by @darshjain | Stardance
Devlogs:
Wanderpin - first build Check it out yourself -> https://wanderpin-ecru.vercel.app/ A little travel app where you drop pins on a spinning 3D globe (or a flat map if you prefer), and it stitches them into a trip with distances and country counts. Here’s where it’s at after the first couple of sessions. What it does so far Globe + map, same data. A 3D night-earth globe (three.js via react-globe.gl) with glowing pins and animated arcs between stops, and a 2D Leaflet map with a dashed route line. One toggle swaps between them - they render off the same trip array. Search and click to add. Type a city and it geocodes through OpenStreetMap’s Nominatim; or just click anywhere on the map and it reverse-geocodes the spot into a named pin. Surprise me. A pile of hand-picked destinations, each with a fun fact and a vibe, for when you don’t know where you want to go. It remembers. Trip, view, and “is this still the sample” all persist to localStorage. First-time visitors get a seeded Paris -> Rome -> Cairo route so the app isn’t empty on load. Spent a bit making the Nominatim calls polite: searches are debounced so a fast typer doesn’t fire a request per keystroke. Where it stands The core loop works end to end: search or click -> pin lands on globe and map -> trip panel updates distance (haversine) and country count -> reload and it’s all still there. Next up is editing/reordering stops and tidying the mobile layout
Wanderpin - phase 2: trips you can shape, share, and watch fly Phase 1 let you drop pins on a globe. Phase 2 turns that into an actual trip planner: reorder stops, edit them, share a link, and hit Play to watch the camera fly your whole route. Play: the globe earns its keep The feature I’m happiest with. There’s now a Play button that flies the camera stop to stop along your route, advancing the highlighted pin as it goes. On the 3D globe it looks the way I wanted the whole app to feel. The nice surprise: it was almost free. Back in phase 1 both the globe and the flat map exposed the same tiny flyTo handle. So the tour loop doesn’t know or care which view you’re on Editing, sharing, exporting Reorder by dragging (dnd-kit), with the route redrawing live. The drag handle is the only draggable bit, so dragging never fights tapping a stop to edit it. Edit a stop inline — rename, swap the emoji, add a note. Undo on remove and “clear all” via the toast, because I deleted my own trip twice testing it. Share builds a link with the whole trip compressed into the URL (lz-string), no backend. Open it anywhere and the trip loads. IDs are regenerated on import so a shared trip never collides with one you already have. Export to JSON or GPX, so a route can open in Google Earth. Where it stands Live at https://wanderpin-ecru.vercel.app/ . Every phase builds clean ( tsc + Vite) and deploys to Vercel on push. The loop now: build a trip, reorder and annotate it, watch it fly, share the link.
Wanderpin - phase 3: real sharing, and the bug that ate an afternoon This update gave Wanderpin proper short links, a saved-trips library, and a route optimizer. But the part I’ll remember is a 100 KB mystery. Short links + a trip library Sharing used to cram the whole trip into a giant #... URL. Now there’s a tiny Supabase backend: hit Share and you get a clean …/t/aB3xY9 link that anyone can open, no login. Reads come straight from the browser (a public read policy), and writes go through a serverless function with the secret key, so nobody can scribble on the database from the client. When someone opens a shared link, the route flies stop to stop and a little “Make your own” card invites them to start their own. Click polish Spinning the globe was dropping stray pins, because react-globe.gl fires a click even at the end of a drag. Added a pointer-distance guard (under ~5px = a real click). Clicking open ocean now offers an “Add anyway” instead of a useless pin, and there’s an “Optimize route” button that reorders stops with nearest-neighbour + 2-opt to cut total distance. The bug: a 5-stop trip that was 400 KB Share kept failing in the browser with a 413 (payload too large). But the function worked fine when I hit it with curl. Same 5-stop trip, totally different size. I had the user dump their saved trip in the console. Five stops. 403,682 characters. Each stop had two mystery keys: __threeObjPoint and __threeObjLabel , ~100 KB each. Turns out react-globe.gl mutates the data objects you hand it - it bolts the entire Three.js render object (meshes, geometry, materials) straight onto your data. I was passing my live trip array to the globe, so it was quietly fattening every stop by 100 KB, which then got saved to localStorage and sent on publish. The hash link looked fine only because it re-packs specific fields, so it never saw the junk. Fix was two-fold: hand the globe throwaway copies so it scribbles on those instead of my real data, and sanitize trips to known fields on save/load (which also cleans up the bloated localStorage on next visit). Back to ~1 KB per trip. Where it stands Live at https://wanderpin-ecru.vercel.app/ - build a trip, optimize it, save it, share a short link, watch it fly. Honest caveats: shared trips are snapshots (open a link, get a copy - not live collaboration), and the globe’s three.js bundle is still the heavy chunk (lazy-loaded, so it only hits the 3D view). Lesson logged: never trust a viz library not to mutate your state.
Wanderpin - I deleted the spreadsheet You open the app or you can :) (check it out - https://wanderpin-ecru.vercel.app/ ). A night-side Earth, city lights glowing, a slow spin. You drop a pin in Paris. Another in Tokyo. The arc draws across the globe, and right next to all of that, a panel quietly tells you your dream weighs 2.2 tonnes of CO₂ . That panel was killing the magic. This phase was about fixing it. The shift I stopped showing the numbers on the dream surface. Same numbers, just hidden one click deep behind a “Trip details” disclosure. In their place: one warm line that grows with the trip - “4 stops · 4 countries · An adventure taking shape.” You build a journey. The app reacts like it’s excited about it. Surprise me, the most fun thing the app could do, was buried under a dice icon. It’s the front door now: Take me somewhere. The empty state stopped being homework - “Your map’s a blank canvas, click to start” - and became an invitation: “Where are you dreaming of?” Drop your very first pin and the app whispers back: “Your journey begins in Santorini ✨” . Hover over a stop and a small card appears: “Why go - its iconic caldera is the rim of a colossal volcanic eruption.” Hit Play and the screen goes cinematic. Full-screen overlay, place name, vibe, progress dots, the route lighting up beneath. The trip used to be a spreadsheet. Now it’s a memory you haven’t made yet. The mobile catch Almost shipped a bug that would’ve made this look broken. On a phone, the empty-state “Take me somewhere” lives inside a bottom sheet. Tap it, and the surprise card was rendering behind the still-open sheet. To the user, nothing happened. To me, a testing pass on an iPhone-shaped viewport caught it the morning of. One-line fix. The kind that disappears in the diff but would have left every mobile user thinking the button was broken. Where it stands Empty state, surprise card, first pin, the reel - all warm now. The numbers are still there for the planners, behind one small toggle. The dreamers don’t see them at all. When Play ends, the camera pulls back, the whole route lights up, and the same numbers I just buried come surging back as a celebration - “You crossed 4 countries. Today, that’s a journey.” Same data, different feeling. The closing frame becomes a postcard you can share. The whole phase is one belief: people don’t open a travel app because they want to know how many kilometres a trip is. They open it because they want, for a minute, to imagine going somewhere. So show them the somewhere.
Wanderpin - Blog 5 - Update press play, watch your trip turn into a movie Live: https://wanderpin-ecru.vercel.app/ You drop a few pins on a globe and hit Play - and instead of a checklist, you get a cinematic fly-through you can actually share. This update was about chasing one idea until the app felt alive : the journey is the hero, the logistics hide in a drawer. The payoff Play used to just stop. Now it lands: the camera pulls back to frame the route, the arcs light up, and a date-stamped card counts up your distance, stops, countries and time. A little classifier scores the trip and picks the camera - a city hop zooms in, a round-the-world trip shows the marble. You also pick how you travel each leg (walk/train/flight…), which bends both the arc shape and the trip’s duration. Then three swings: export the fly-through as a video (recorded straight off the globe canvas, no server), “been there” pins that glow gold once visited, and a living globe - a warm daylight terminator plus each stop’s local time and current weather. What broke Geocode 500’d in prod, every call. Not a geocoding bug at all: type: "module" means Vercel runs the API as native ESM, and Node demands file extensions on imports. from "./_nominatim" crashed at load. One .js fixed it. The terminator looked gloomy. Darkening the night side just made an already-night map muddy. I flipped it - glow the sunlit side instead - and it finally read as “half the globe is lit.” Two suns. Every clear-sky stop showed ☀️ 06:28 · ☀️ 15° - my day marker next to the weather glyph. ngl used AI to build this image 😛
Wanderpin - zoom into the world Two big things landed this week: the map went from 26 hand-picked places to ~40,000, and zooming into the globe now drops you into a real 3D city. From 26 places to 40,000 - and they all have a vibe Wanderpin used to know about 26 famous spots. Now it knows ~40k: cities, towns, UNESCO sites, landmarks, and the world’s most-visited attractions - each tagged with a one-word vibe (Coastal, Alpine, Arid, Heritage, Sacred, Volcanic…). The fun part is the vibes aren’t hand-typed. They’re derived at build time from real data: a Köppen climate raster (so Cairo reads “Arid” and Athens “Mediterranean”), distance to an actual coastline for “Coastal”, GeoNames elevation/feature codes for peaks and castles, and Wikidata’s annual-visitor numbers to rank “most visited”. Facts come from Wikipedia and UNESCO descriptions. Search is now instant and offline - type “Firenze” and Florence shows up. The fun part: zoom in and the globe becomes a city The home view is a space globe (three.js). The close-up is a different engine entirely - maplibre with 3D terrain and buildings. I wired up a level-of-detail handoff between them: zoom into a pin and it crosses from globe to 3D automatically, and zoom back out and it returns to the globe. The trick to making it not feel janky: when you start zooming in, it quietly mounts the 3D map hidden and lets it pull tiles in the background. Only once the tiles are warm does it crossfade. No blank loading flash. What broke (twice) It hung forever in preload. The crossfade waited on maplibre’s idle event to know tiles were ready - but that event sometimes never fires. The globe just kept zooming into black. Fix: commit after a 2.2s fallback even if idle is silent. The way back never worked. Zooming out in 3D wouldn’t return to the globe. Turned out map.on("zoom") captured the callback once at mount - back when the view was still “globe” - so its if (view !== "3d") return guard killed every event forever. Fix: call the latest callback through a ref. Both are real bugs that would’ve bitten actual users on slow connections, not just test artifacts. Where it stands Globe -> 3D -> globe round-trips cleanly on both laptop and mobile, with zero console errors. Try it: https://wanderpin-ecru.vercel.app/
Wanderpin - the globe looked dumb on a 20 km hop, so I taught it to zoom This batch turns a Wanderpin trip from a thing on your screen into a thing you can send to a friend - with a real link preview, an embeddable globe, and a reel that finally looks good on short hops. Share a journey, for real Hit Share and you get a public link ( /t/slug ) in a box, plus Copy, the native share sheet, and WhatsApp / Instagram / X buttons. The interesting part is what happens when someone opens that link: /t/:slug is server-rendered ( api/share.ts ) and serves a dynamically generated Open Graph image ( api/og.tsx via @vercel/og ) - so pasting a Wanderpin link into a chat unfurls into a proper preview card instead of a blank rectangle. There’s an embeddable globe too: /embed/:slug renders just the spinning globe (a tiny route check in main.tsx swaps the whole app for EmbedView ), and the share dialog hands you the <iframe> snippet. Shared trips auto-expire after 7 days via a pg_cron job, so the table stays small and old links quietly die. The reel got smarter - 3D for the short hops The globe fly-through looks flat when two stops are 20 km apart - the arc is a stub and the camera barely moves. So now the Play reel checks each leg: anything under 200 km crosses into the 3D map (terrain + buildings) with a zoom picked from the distance, longer legs stay as globe arcs. It asks once before playing, and video recording stays globe-only so captures never go blank. What bit me Instagram has no web “share a link” intent (unlike WhatsApp/X). So the IG button copies the link and opens Instagram - the native share sheet handles it properly on phones. The slug kept vanishing from the URL. A shared trip was calling replaceState("/") the instant it loaded, so /t/slug disappeared mid-playback and you couldn’t re-share what you were watching. Moved that reset onto the “Create yourslongs. The reel switch reused the globe↔3D handoff plumbing, and the type-checker caught a flyTo signature mismatch before it shipped - the map handle wants { zoom } , not a bare number. Where it stands It all builds clean, Try it: https://wanderpin-ecru.vercel.app/
Wanderpin - getting routes to leave the ground Live: https://wanderpin-ecru.vercel.app/ One update, mostly one stubborn visual I’d twice given up on: real lifted route arcs on the 3D map. Arcs that finally hug the globe deck.gl’s ArcLayer drifts on a MapLibre globe (it only knows Web Mercator), and my earlier hand-rolled layer compiled, ran, threw zero errors, and painted nothing. The fix came from reading MapLibre’s own shaders: inject its projection prelude and call projectTileFor3D(pos, elevation) . The thing I’d missed every time - elevation is in meters above the sphere , fed through five per-frame uniforms, not a raw matrix. Then the polish fights: a z-fight speckle (fixed by not writing depth), a 50 km minimum lift that made short hops launch like fireworks, and a fat vertical wall at city zoom (now fades out past ~zoom 10). An optional day timeline New “Days” view in the trip panel. Weekend trip? You’ll never see it. Month-long? Hit “Organize into days” and stops group into collapsible days you can split, reorder, fit the globe to, or play one at a time. A day is a contiguous slice of the route, so “move to Day 3” repositions the stop and re-normalizes - the route and itinerary stay honest. Days travel on share links too. Where it stands Live at site, (Also squashed a deploy bug: one .tsx API route made Vercel type-check the whole api/ folder with no tsconfig - a tiny api/tsconfig.json fixed it.)
Wanderpin - the first five seconds, final touchups Everything in this batch is about the moment someone lands : a blank globe is intimidating, so I built a real first-run, made it personal, and fixed a jank I’d been ignoring. A front door instead of an empty globe New visitors get a welcome dialog: Plan a trip, or Remember one you took. Either way there are starter templates (a week in Italy, around the world, a California road trip) you can drop in with one tap and start dragging stops around. Coachmarks that follow the actual UI A short guided tour spotlights real elements: search, the view toggle, Play. It measures each target’s live bounding rect, re-measures on resize and focus, flips above/below by screen half, and hides itself the moment you focus the search box so it never fights you while typing. Dismissals persist so it doesn’t nag on return visits. Where it stands Build’s green, all staged, not yet committed. Next: watch real first sessions, do people tap through a template or skip straight to search?
Ships:
Wanderpin is a 3D-globe trip planner where the journey is the product, not the spreadsheet. Drop pins on a spinning night-earth, watch your route stitch together, then hit Play and fly the whole trip as a cinematic reel - gliding across the globe for long hops and dropping into real 3D terrain when two stops are close. The hardest part was making the globe-to-3D handoff feel continuous. Two heavy engines (three.js for the globe, MapLibre for terrain) had to crossfade without a tile-load flash, so I warm the 3D view in the background and only commit once it’s actually ready. I also caught the play-through reel re-rendering the entire app - globe included - on every caption tick; moving the caption into its own useSyncExternalStore so only it updates made the fly-through visibly smoother. I’m proud that it feels like a journey instead of a form: the cinematic reel, ~40k curated places that each carry a vibe and a fun fact, and one-tap sharing as a postcard, a public link, or an embeddable live globe. To try it: open the live link, search a city or just click the globe to drop pins (or start from a template like India’s Golden Triangle), then hit Play. Zoom all the way into a pin to watch it cross into street-level 3D. Built with React 19 + TypeScript, three.js, MapLibre GL, and Vercel serverless....
|
1792878485.7195795
|
1793742485.7195795
|
|
19155
|
DungeonStacks by @ASOM | Stardance
|
ASOM
|
2
|
40.0
|
567
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-01T06:05:07Z", "hours": 15.0, "multiplier": 19.44, "payout": 298, "blessing": "neutral", "text": "In this ship, I have addressed commonly reported game issues and bugs. Additionally, I refactored the messiest parts of the codebase to improve to improve maintainability and introduced several UX enhancements. Resolved common community-reported issues and glitches Refactored core legacy sections for cleaner and more robust code Added dynamic screenshake effects Implemented popup numbers (combat/damage indicators) Added an in-game tutorial system More detailed info can be found in git log history", "repo": "https://github.com/ASOM846/DungeonStacks", "demo": "https://asom846.itch.io/dungeoncards"}, {"ship_num": 2, "ts": "2026-06-19T15:08:45Z", "hours": 25.0, "multiplier": 10.72, "payout": 269, "blessing": "neutral", "text": "I have created a card game inspired by Scoundrel. The most challenging part was managing a large amount of interactions between cards and making the game visually appealing.", "repo": "https://github.com/ASOM846/DungeonStacks", "demo": "https://asom846.itch.io/dungeoncards"}]...
|
[{"post_id": 19797, "ts": "202 [{"post_id": 19797, "ts": "2026-07-01T05:47:13Z", "hours": 0.6911, "text": "DungeonCards V0.1.10 Finishing touches before shipping Key features implemented in this version: Updated game version on itch.io Updated readme file Checkout Git log for additional info Cheers"}, {"post_id": 16946, "ts": "2026-06-27T14:50:33Z", "hours": 4.77, "text": "DungeonCards V0.1.9 UX update Key features implemented in this version: Architecture and game-play changes Implemented new TutorialState class and entry from main menu. Updated FloatingText now it’s starting size depends on the amount of damage dealt / hp healed Added ANVIL card, allowing player to repair weapon Added textures for new items Deleted unused includes Window is now resizable Added missing descriptions for items Changed buttons size in main menu Acknowledged and fixed bugs Wrong cards defeated counting in InteractionManager EnemyVsShield using wrong value when triggering FloatingText Blocked player from using items located in backpack, now player has to swap them with one item in hand Checkout Git log for additional info Cheers"}, {"post_id": 15711, "ts": "2026-06-25T15:45:38Z", "hours": 4.2694, "text": "DungeonCards V0.1.8 Key features implemented in this version: Architecture changes Simplified InteractionManager now instead of passing lots of arguments it passes new InteractionContext struct witch contains necessary variables. Game-play and graphic changes Key card can be used to open the chest Chest card can be open using Key contains huge amount of coins score Durability indicator for SPELL e.g. LIVESTEAL Added floating text it is used for displaying damage, healing etc. -Added swapping items between hands and backpack,. Be aware that when you want to for instance swap WEAPON_UPGRADE with WEAPON you need to select weapon first, other ways the weapon upgrade effect will apply itself to weapon. It is build like this to maintain simple compatibility with android build, that hopefully, will be out soon:D Checkout Git log for additional info Cheers"}, {"post_id": 14971, "ts": "2026-06-24T09:51:18Z", "hours": 5.5831, "text": "DungeonCards V0.1.7 Implemented features: Architecture changes: Cleaned card generation logic Implemented new CardGenerator class Added extra weapon textures Switched from random weapon generating to preset weapon configs Added weapon durability and durability indicator Added weapon max/min damage to make the game more random"}, {"post_id": 11958, "ts": "2026-06-19T14:49:54Z", "hours": 3.2069, "text": "DungeonCards V0.1.6 Finishing touches Implemented features: Implemented auto window resizing and auto item positioning Extracted piles aligning logic to new function Implemented current run progress bar Fully implemented Score and card description window in bottom left Implemented more weapon graphics and names Fixed ice wand graphic Implemented new Game Over / Game Won screen with return to menu button Implemented Flee button And much more e.g. bug fixes and little touches"}, {"post_id": 11873, "ts": "2026-06-19T10:40:48Z", "hours": 2.6083, "text": "DungeonCards V0.1.5 (old DungeonStacks) Menu and WindowManager Implemented features: Architecture changes: Extracted window initialization and handling to new WindowManager class New Menu class handled form WindowManager Graphics changes Custom font in menu (no plans on implementing in anywhere else) Game title drawing with shadow"}, {"post_id": 11393, "ts": "2026-06-18T17:29:36Z", "hours": 2.7969, "text": "DungeonCards V0.1.4 Graphics update Implemented features: Graphics changes: Background texture (thanks to NanoBanana) Vignette drawing Better card description rendering When card is hovered it pops up a bit making game more interactive and immersive Hands drawing itch.io Architecture changes: Better card interactions e.g. now attacking with weapon from backpack is impossible Empty piles e.g. left hand is now lighted up if selected item can be moved to it"}, {"post_id": 11223, "ts": "2026-06-18T11:27:00Z", "hours": 2.4167, "text": "DungeonCards 0.1.3 Implemented features: Graphics :D thanks to 0x72 assets from itch.io More spells Added missing resolving interactions TO-DO Implement remaining graphics Better UI Start menu High-score Checkout previous TO-DO"}, {"post_id": 11121, "ts": "2026-06-18T05:56:57Z", "hours": 4.3942, "text": "DungeonCardsV0.1.2 Implemented features: Added new item type SPELL Added new spells and graphics Added interactions for spells Added context aware highlighting Added hover card description drawing TO-DO Better graphics and UI Start Menu High-score"}, {"post_id": 10524, "ts": "2026-06-17T08:44:35Z", "hours": 2.7008, "text": "DungeonStack V0.1.1 Architecture changes: Shaped and improved core mechanic. Better randomness, now using weighted pool Implemented features: Added damage absorption item (shield)"}, {"post_id": 9919, "ts": "2026-06-16T13:02:25Z", "hours": 2.4494, "text": "DungeonStacks V0.1.0 First build to be called something playable. Working on improving core logic. Architecture changes: Extracted interactions to InteractionManager (split monolith logic into smaller methods) Added Element enum to Card struct to prevent “if-else” explosion Implemented features: Temporary drawings using Raylib shapes Added fire and ice wands Added fire and ice enemies Added cards counter under piles Fixed a bug where card elements were inherited by subsequent random spawns TO-DO / Next Steps: Handle victory/defeat conditions (Player HP <= 0) Resolve text clipping issues using text wrapping Replace temporary shapes with custom graphics"}, {"post_id": 9850, "ts": "2026-06-16T09:38:11Z", "hours": 3.4497, "text": "DungeonStacks working on core mechanics and essentials Implemented features: Text centering on cards Lose condition Architecture changes: Extracted game logic to separate classes e.g. Game class PileManager class Pile class Ui class Removed GameState class Need to be implemented: Better visuals start menu more types of items"}, {"post_id": 9263, "ts": "2026-06-15T15:35:52Z", "hours": 1.1214, "text": "DungeonStacks Core mechanics and essentials Currently features: Stack-Based Architecture Tactical combat system Dynamic UI and Centering Card eneration Interaction logic Upcoming features: Win/lose condition Visual feedback More interactions More card types"}]...
|
Title: DungeonStacks by @ASOM | Stardance
Devlogs Title: DungeonStacks by @ASOM | Stardance
Devlogs:
DungeonStacks Core mechanics and essentials Currently features: Stack-Based Architecture Tactical combat system Dynamic UI and Centering Card eneration Interaction logic Upcoming features: Win/lose condition Visual feedback More interactions More card types
DungeonStacks working on core mechanics and essentials Implemented features: Text centering on cards Lose condition Architecture changes: Extracted game logic to separate classes e.g. Game class PileManager class Pile class Ui class Removed GameState class Need to be implemented: Better visuals start menu more types of items
DungeonStacks V0.1.0 First build to be called something playable. Working on improving core logic. Architecture changes: Extracted interactions to InteractionManager (split monolith logic into smaller methods) Added Element enum to Card struct to prevent “if-else” explosion Implemented features: Temporary drawings using Raylib shapes Added fire and ice wands Added fire and ice enemies Added cards counter under piles Fixed a bug where card elements were inherited by subsequent random spawns TO-DO / Next Steps: Handle victory/defeat conditions (Player HP <= 0) Resolve text clipping issues using text wrapping Replace temporary shapes with custom graphics
DungeonStack V0.1.1 Architecture changes: Shaped and improved core mechanic. Better randomness, now using weighted pool Implemented features: Added damage absorption item (shield)
DungeonCardsV0.1.2 Implemented features: Added new item type SPELL Added new spells and graphics Added interactions for spells Added context aware highlighting Added hover card description drawing TO-DO Better graphics and UI Start Menu High-score
DungeonCards 0.1.3 Implemented features: Graphics :D thanks to 0x72 assets from itch.io More spells Added missing resolving interactions TO-DO Implement remaining graphics Better UI Start menu High-score Checkout previous TO-DO
DungeonCards V0.1.4 Graphics update Implemented features: Graphics changes: Background texture (thanks to NanoBanana) Vignette drawing Better card description rendering When card is hovered it pops up a bit making game more interactive and immersive Hands drawing itch.io Architecture changes: Better card interactions e.g. now attacking with weapon from backpack is impossible Empty piles e.g. left hand is now lighted up if selected item can be moved to it
DungeonCards V0.1.5 (old DungeonStacks) Menu and WindowManager Implemented features: Architecture changes: Extracted window initialization and handling to new WindowManager class New Menu class handled form WindowManager Graphics changes Custom font in menu (no plans on implementing in anywhere else) Game title drawing with shadow
DungeonCards V0.1.6 Finishing touches Implemented features: Implemented auto window resizing and auto item positioning Extracted piles aligning logic to new function Implemented current run progress bar Fully implemented Score and card description window in bottom left Implemented more weapon graphics and names Fixed ice wand graphic Implemented new Game Over / Game Won screen with return to menu button Implemented Flee button And much more e.g. bug fixes and little touches
DungeonCards V0.1.7 Implemented features: Architecture changes: Cleaned card generation logic Implemented new CardGenerator class Added extra weapon textures Switched from random weapon generating to preset weapon configs Added weapon durability and durability indicator Added weapon max/min damage to make the game more random
DungeonCards V0.1.8 Key features implemented in this version: Architecture changes Simplified InteractionManager now instead of passing lots of arguments it passes new InteractionContext struct witch contains necessary variables. Game-play and graphic changes Key card can be used to open the chest Chest card can be open using Key contains huge amount of coins score Durability indicator for SPELL e.g. LIVESTEAL Added floating text it is used for displaying damage, healing etc. -Added swapping items between hands and backpack,. Be aware that when you want to for instance swap WEAPON_UPGRADE with WEAPON you need to select weapon first, other ways the weapon upgrade effect will apply itself to weapon. It is build like this to maintain simple compatibility with android build, that hopefully, will be out soon:D Checkout Git log for additional info Cheers
DungeonCards V0.1.9 UX update Key features implemented in this version: Architecture and game-play changes Implemented new TutorialState class and entry from main menu. Updated FloatingText now it’s starting size depends on the amount of damage dealt / hp healed Added ANVIL card, allowing player to repair weapon Added textures for new items Deleted unused includes Window is now resizable Added missing descriptions for items Changed buttons size in main menu Acknowledged and fixed bugs Wrong cards defeated counting in InteractionManager EnemyVsShield using wrong value when triggering FloatingText Blocked player from using items located in backpack, now player has to swap them with one item in hand Checkout Git log for additional info Cheers
DungeonCards V0.1.10 Finishing touches before shipping Key features implemented in this version: Updated game version on itch.io Updated readme file Checkout Git log for additional info Cheers
Ships:
I have created a card game inspired by Scoundrel. The most challenging part was managing a large amount of interactions between cards and making the game visually appealing.
In this ship, I have addressed commonly reported game issues and bugs. Additionally, I refactored the messiest parts of the codebase to improve to improve maintainability and introduced several UX enhancements. Resolved common community-reported issues and glitches Refactored core legacy sections for cleaner and more robust code Added dynamic screenshake effects Implemented popup numbers (combat/damage indicators) Added an in-game tutorial system More detailed info can be found in git log history...
|
1793127101.9093864
|
1793213501.9093864
|
|
25750
|
WinBind by @Advay-CMD | Stardance
|
Advay-CMD
|
1
|
40.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-31T18:47:40Z", "hours": 40.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Binds your personalisation to windows for you to bind to windows! Lets you customize windows, make it more candyeye’d and productive. No barriers, exactly how you want windows to be. It uses ONLY Win32 API’s in high performance low-level-coding. It lets you do various functions with Windows, in one simple .conf . It lets you add shortcuts, virtual desktop management, window managment, change various windows 11 settings that are not possible with the Settings or Control Panel.", "repo": "https://github.com/Advay-CMD/WinBind/", "demo": "https://github.com/Advay-CMD/WinBind/releases/tag/v1.0.0"}]...
|
[{"post_id": 38350, "ts": "202 [{"post_id": 38350, "ts": "2026-07-31T18:09:15Z", "hours": 2.1461, "text": "Devlog #7 -> WinBind Final touches are done. Final video clip is done. Final files for release is done. Everything is done and dusted until sparkly clean. It took me time, but here we are. The project is finally ready for production. It already has been useful to me, I use it everyday, and I would like you to do so! WinBind now can be called - The Ultimate Productivity and Customizablity for Win11. I am verry excited, honest. It is my first project, ever on this hackclub! I would love to see people rate it like ~x20 multiplier… or so… Thanks, and try the project out at: https://github.com/Advay-CMD/WinBind/"}, {"post_id": 34165, "ts": "2026-07-24T17:58:06Z", "hours": 4.3417, "text": "Devlog #6 -> WinBind Honestly nothing has happened. Except few polishing, and making the base program called common features Common features can do a looot of things, including enabling animations and also changing the wallpaper and cursor. Fine, not for normal use honest. Only if you are doing LoadConf[]. And yes, background music! How can i forget it? The whole project currently only needs linking and polishing. Thats it. I think 40h, and i am done with this project.(more gif and img)"}, {"post_id": 30558, "ts": "2026-07-18T07:17:11Z", "hours": 8.7881, "text": "Devlog #5 - WinBind I am VERY dilapidated and crumbesome. I hate WINDOWS!! Why does it NOT provide mere basic API’s!! Oh, change global accent? Go to stack overflow, keep viewing for hours not counted as stardust and find NOTHING . Anyway, I have introduced MANY features, mostly rectified the once that where NOT working Now I can also do Startup = [ \"app.exe\" ] Basically add apps like this… and run them when app starts. That’s it. But parsing the thing with a parser(I had to make it) took me time 😭 . It took me more time when I was making keybinds, but Okay. But I had a lot of trouble with this: LoadConf[] Took all my hardcoding to NULL, I had to rewrite a LOT of elements, create some kind of centralisation. OK. Anyway, It WASN’T easy, as you can see I got a Warning to Devlog NOW. Fine, you can see my time ~8h. MAX is 10h. Whatevers. Site is updated. Please check if you want to :) https://advay-cmd.github.io/WinBind [Still in construction, documentation.html is made.] Bi! Meet you soon with a working project(which will take ~thriple of the time done… lets see.)!, DON’T forget to follow me."}, {"post_id": 26772, "ts": "2026-07-11T19:21:03Z", "hours": 4.3978, "text": "Devlog 4 - WinBind Oh my god. I am actually getting bewildered by windows. What a weird OS. Windows is SO bad, it doesn’t expose half the things I need, and very soon I am going to be needing injection pocking up on apps(YES, the same one malwares use! But I am helpless) I am also going to use ‘’‘uxtheme.dll’’’ and others, going to hook, inject custom alg. Might work. Or I might not do at all. Cause Windows is getting on my nerves. The lowlevel coding burns you! Honestly But right now I feel like 😭 Windows!!!!! WHY CAN’T YOU EXPOSE EVERYTHING? Anyway, if I have to draw custom borders, I have 2 plans: Use LayeredWindows(Which CAN’T be used if transparency is on) Inject(Don’t scream Malware at me) Its been a tough time, I really do hope to get x24 multiplier, honestly. Sometimes people should take in account of PAIN and time lost in reading millions of microsoft documentation which is not counted the the time logged 😭 . I just want to know: Am I cooking 🧑🍳 or I am cooked (Also fellas, YES, GITHUB CODE IS NOW UPDATED! GO CHECK, AND COMPILE!) Site is Published, YET not complete: https://advay-cmd.github.io/WinBind/ You can tell me improvements for the website too. For DOCS, go to github, go to WinBind/Docs/md, not all of the md’s are there so you gotta wait. Anyway that’s it. I am really tired so i might not be able to write it like you want me to. (Ninja special: StealFocus is AVAILIBLE! Watch video to see) Anyway, thanks for reviewing. I would like to know yet, am I cooking or getting cooked ."}, {"post_id": 24806, "ts": "2026-07-08T16:39:41Z", "hours": 5.2583, "text": "Devlog #3 -> WinBind HONESTLY At this point, my BRAIN is FRIED! IT IS BOILING! MAN! HOW HARD IT IS TO MAKE A PROJECT? IT IS TOUGH! DOESN’T ANYONE HAVE EXAMS? Honestly, I JUST WANT TO QUIT MY LIFE 😭 Ok, you are not here for my emotional scene. Your here for my devlog. Honestly, I have forgot my name, how much I am working on the computer, probably forgot life; this work is exausting and tiering… I thought I loved coding. Slowly the PAIN is catching up, with me realising WHY adults hate coding. Ok, enough of my distribution on PAIN, lets go to WHAT I DID. I achived to colour(color) to blue, that can be customized. The mod is yet not merged to the official one. This won’t work for Win10, as I use official DwmSetWindowAttribute() function that works ONLY AND ONLY on Windows 11. I HAVE AT LEAST 10 PAGES OF WIN32 DOC OPEN IN MY BROWSER!! 😭 The documentation says it simply: HRESULT DwmSetWindowAttribute( [in] HWND hwnd, [in] DWORD dwAttribute, [in] LPCVOID pvAttribute, [in] DWORD cbAttribute ); Simple enough right? Guess what? WRONG! Error Handling Memory management Conf reader Documentation Faliure Breakpoints and so on. It is still kindda unstable - it crashes when a privlaged window is open, also, it DOESN’T loop, till now. Follow pls, enjoy the beauty(or whatever you want to call. You can say unstable) of my app, till ALL of it’s source code is RELEASED at ONCE. (Meaning, its still not updated. 😕 )(Someone should give stardust for mental un-sanity)"}, {"post_id": 22310, "ts": "2026-07-04T18:24:15Z", "hours": 7.1344, "text": "Devlog #2 -> WinBind I had been focusing too much on c++… I needed rest and I had to remind myself, no software was complete without Documentation. I started creating the website. Though I have created the site on my own(a little elements copied from previous website), it is still in development. Translucentcy has now been divided into .h and .cpp(YET to merge), but good news is that MANY found bugs( ahem , they crashed my PC with BSOD) are ELIMINATED. It works like a charm now. Honestly, for me these two are very important. I work with WinBind everyday, and now I have too becomed customed to it. It is really good application, seriously helpful for me to. Git code has NOT been updated. Don’t bother checking the old code and compling. I will post the newest one sometime else…. This has been the MOST draining week ever. My dream is to get 1,688-1,815 stardust… and so far, this is soo hard a target! Anyway… I will try my best. Follow for making my torture worth it(I am working at midnight and then sleeping because of this!)."}, {"post_id": 19243, "ts": "2026-06-30T14:38:15Z", "hours": 8.175, "text": "Hello there! Welcome to the world of WinBind I have created an app called WinBind . WinBind: Windows binds to your Personalisation Right now I have made the KeyBinder: KeyBinder allows you almost ULTIMATE customizability over what shortcut does, how does it behave and everything else. Right now only 2 features - Move_Switch and Move are implemented. More features will bring - Other shortcuts to do same task (CTRL+ SHIFT + V doing CTRL + V), and execute various commands and apps, by just a shortcut. Also I may add the keyboard remapping function, but its a doubt, windows already has in settings. Anyway, with time, I would implement, window decorations, custom animations and more! I coded this in C++, as I wanted the app to be extremely responsive, and do a delay time for processing to 0.04ms(untested, just an estimate). I also thought, low-level language will be the best at doing this delecate things… and a UI at this early stage is not required. It is really optimized and uses only a whopping MAX of 1.8MB of the memory(RAM)(tested)(Lowest: 0.2MB), running silently while you do your work effortlessly (I spent a LOT of time fixing my little[huge] mistake of overoptimizing). It is hard for me to make overall this project, like the bolders I have faced and got angry at… It took me time to first design the struct of conf, inspired by Hyprland and .lua scripts… It took me a lot of time on pen and paper, before I present this .conf to you. It might look simple, but as things add, if not carefully planned, things will fall from a slide dangerously steep. My second headache was coding the whole thing. I was getting so hallucinated by pointer and win32 api’s, I had no choice but to give this task to AI(though I HAD TO DO AFTER IT GENERATED BOILERPLATE). It was scary to imagine if i would make a mistake and then my computer will crash, probably blaring SegFault. My third headache was the .exe. It was getting blocked by defender, ‘cause it thought my code is a trojan horse malware. After hurdling that, I got WDAC blocking my app. The only workaround was to change filenames,,, Later, I will see signing the .exe. These three were nightmares, and belive me, 3h were easily spent on this with the additional 3h to make the program. Pheww… But I fear that there is harder things to come in my way. I would be very happy if I achieve window decorations/skins. (Stardock, OpenSource WinBind is gonna compete with you, and if I succeed, you WILL lose. OpenSource > Paid Products that StarDock makes). 2: I have also coded the translucentcy function, but that is still in progress to merge with the actual project. Stay Tuned! [Uses 0.1-NIL memory] Technical Stack: CPP code(obviously) Batch Files Till now, I am trying to make this app with no admin privlages required, and will try to keep up(Its not a pleasant sight to the developer when creating a app that doesn’t have admin permissions. I had to write ALL undocumented GUIDS and try them one by one on each computer… Maybe sooner or later I would need admin privlages). Thank you for giving your time to this app, and will see you soon again(Also, watch the video 😊)!"}]...
|
Title: WinBind by @Advay-CMD | Stardance
Devlogs: Title: WinBind by @Advay-CMD | Stardance
Devlogs:
Hello there! Welcome to the world of WinBind I have created an app called WinBind . WinBind: Windows binds to your Personalisation Right now I have made the KeyBinder: KeyBinder allows you almost ULTIMATE customizability over what shortcut does, how does it behave and everything else. Right now only 2 features - Move_Switch and Move are implemented. More features will bring - Other shortcuts to do same task (CTRL+ SHIFT + V doing CTRL + V), and execute various commands and apps, by just a shortcut. Also I may add the keyboard remapping function, but its a doubt, windows already has in settings. Anyway, with time, I would implement, window decorations, custom animations and more! I coded this in C++, as I wanted the app to be extremely responsive, and do a delay time for processing to 0.04ms(untested, just an estimate). I also thought, low-level language will be the best at doing this delecate things… and a UI at this early stage is not required. It is really optimized and uses only a whopping MAX of 1.8MB of the memory(RAM)(tested)(Lowest: 0.2MB), running silently while you do your work effortlessly (I spent a LOT of time fixing my little[huge] mistake of overoptimizing). It is hard for me to make overall this project, like the bolders I have faced and got angry at… It took me time to first design the struct of conf, inspired by Hyprland and .lua scripts… It took me a lot of time on pen and paper, before I present this .conf to you. It might look simple, but as things add, if not carefully planned, things will fall from a slide dangerously steep. My second headache was coding the whole thing. I was getting so hallucinated by pointer and win32 api’s, I had no choice but to give this task to AI(though I HAD TO DO AFTER IT GENERATED BOILERPLATE). It was scary to imagine if i would make a mistake and then my computer will crash, probably blaring SegFault. My third headache was the .exe. It was getting blocked by defender, ‘cause it thought my code is a trojan horse malware. After hurdling that, I got WDAC blocking my app. The only workaround was to change filenames,,, Later, I will see signing the .exe. These three were nightmares, and belive me, 3h were easily spent on this with the additional 3h to make the program. Pheww… But I fear that there is harder things to come in my way. I would be very happy if I achieve window decorations/skins. (Stardock, OpenSource WinBind is gonna compete with you, and if I succeed, you WILL lose. OpenSource > Paid Products that StarDock makes). 2: I have also coded the translucentcy function, but that is still in progress to merge with the actual project. Stay Tuned! [Uses 0.1-NIL memory] Technical Stack: CPP code(obviously) Batch Files Till now, I am trying to make this app with no admin privlages required, and will try to keep up(Its not a pleasant sight to the developer when creating a app that doesn’t have admin permissions. I had to write ALL undocumented GUIDS and try them one by one on each computer… Maybe sooner or later I would need admin privlages). Thank you for giving your time to this app, and will see you soon again(Also, watch the video 😊)!
Devlog #2 -> WinBind I had been focusing too much on c++… I needed rest and I had to remind myself, no software was complete without Documentation. I started creating the website. Though I have created the site on my own(a little elements copied from previous website), it is still in development. Translucentcy has now been divided into .h and .cpp(YET to merge), but good news is that MANY found bugs( ahem , they crashed my PC with BSOD) are ELIMINATED. It works like a charm now. Honestly, for me these two are very important. I work with WinBind everyday, and now I have too becomed customed to it. It is really good application, seriously helpful for me to. Git code has NOT been updated. Don’t bother checking the old code and compling. I will post the newest one sometime else…. This has been the MOST draining week ever. My dream is to get 1,688-1,815 stardust… and so far, this is soo hard a target! Anyway… I will try my best. Follow for making my torture worth it(I am working at midnight and then sleeping because of this!).
Devlog #3 -> WinBind HONESTLY At this point, my BRAIN is FRIED! IT IS BOILING! MAN! HOW HARD IT IS TO MAKE A PROJECT? IT IS TOUGH! DOESN’T ANYONE HAVE EXAMS? Honestly, I JUST WANT TO QUIT MY LIFE 😭 Ok, you are not here for my emotional scene. Your here for my devlog. Honestly, I have forgot my name, how much I am working on the computer, probably forgot life; this work is exausting and tiering… I thought I loved coding. Slowly the PAIN is catching up, with me realising WHY adults hate coding. Ok, enough of my distribution on PAIN, lets go to WHAT I DID. I achived to colour(color) to blue, that can be customized. The mod is yet not merged to the official one. This won’t work for Win10, as I use official DwmSetWindowAttribute() function that works ONLY AND ONLY on Windows 11. I HAVE AT LEAST 10 PAGES OF WIN32 DOC OPEN IN MY BROWSER!! 😭 The documentation says it simply: HRESULT DwmSetWindowAttribute( [in] HWND hwnd, [in] DWORD dwAttribute, [in] LPCVOID pvAttribute, [in] DWORD cbAttribute ); Simple enough right? Guess what? WRONG! Error Handling Memory management Conf reader Documentation Faliure Breakpoints and so on. It is still kindda unstable - it crashes when a privlaged window is open, also, it DOESN’T loop, till now. Follow pls, enjoy the beauty(or whatever you want to call. You can say unstable) of my app, till ALL of it’s source code is RELEASED at ONCE. (Meaning, its still not updated. 😕 )(Someone should give stardust for mental un-sanity)
Devlog 4 - WinBind Oh my god. I am actually getting bewildered by windows. What a weird OS. Windows is SO bad, it doesn’t expose half the things I need, and very soon I am going to be needing injection pocking up on apps(YES, the same one malwares use! But I am helpless) I am also going to use ‘’‘uxtheme.dll’’’ and others, going to hook, inject custom alg. Might work. Or I might not do at all. Cause Windows is getting on my nerves. The lowlevel coding burns you! Honestly But right now I feel like 😭 Windows!!!!! WHY CAN’T YOU EXPOSE EVERYTHING? Anyway, if I have to draw custom borders, I have 2 plans: Use LayeredWindows(Which CAN’T be used if transparency is on) Inject(Don’t scream Malware at me) Its been a tough time, I really do hope to get x24 multiplier, honestly. Sometimes people should take in account of PAIN and time lost in reading millions of microsoft documentation which is not counted the the time logged 😭 . I just want to know: Am I cooking 🧑🍳 or I am cooked (Also fellas, YES, GITHUB CODE IS NOW UPDATED! GO CHECK, AND COMPILE!) Site is Published, YET not complete: https://advay-cmd.github.io/WinBind/ You can tell me improvements for the website too. For DOCS, go to github, go to WinBind/Docs/md, not all of the md’s are there so you gotta wait. Anyway that’s it. I am really tired so i might not be able to write it like you want me to. (Ninja special: StealFocus is AVAILIBLE! Watch video to see) Anyway, thanks for reviewing. I would like to know yet, am I cooking or getting cooked .
Devlog #5 - WinBind I am VERY dilapidated and crumbesome. I hate WINDOWS!! Why does it NOT provide mere basic API’s!! Oh, change global accent? Go to stack overflow, keep viewing for hours not counted as stardust and find NOTHING . Anyway, I have introduced MANY features, mostly rectified the once that where NOT working Now I can also do Startup = [ "app.exe" ] Basically add apps like this… and run them when app starts. That’s it. But parsing the thing with a parser(I had to make it) took me time 😭 . It took me more time when I was making keybinds, but Okay. But I had a lot of trouble with this: LoadConf[] Took all my hardcoding to NULL, I had to rewrite a LOT of elements, create some kind of centralisation. OK. Anyway, It WASN’T easy, as you can see I got a Warning to Devlog NOW. Fine, you can see my time ~8h. MAX is 10h. Whatevers. Site is updated. Please check if you want to :) https://advay-cmd.github.io/WinBind [Still in construction, documentation.html is made.] Bi! Meet you soon with a working project(which will take ~thriple of the time done… lets see.)!, DON’T forget to follow me.
Devlog #6 -> WinBind Honestly nothing has happened. Except few polishing, and making the base program called common features Common features can do a looot of things, including enabling animations and also changing the wallpaper and cursor. Fine, not for normal use honest. Only if you are doing LoadConf[]. And yes, background music! How can i forget it? The whole project currently only needs linking and polishing. Thats it. I think 40h, and i am done with this project.(more gif and img)
Devlog #7 -> WinBind Final touches are done. Final video clip is done. Final files for release is done. Everything is done and dusted until sparkly clean. It took me time, but here we are. The project is finally ready for production. It already has been useful to me, I use it everyday, and I would like you to do so! WinBind now can be called - The Ultimate Productivity and Customizablity for Win11. I am verry excited, honest. It is my first project, ever on this hackclub! I would love to see people rate it like ~x20 multiplier… or so… Thanks, and try the project out at: https://github.com/Advay-CMD/WinBind/
Ships:
Binds your personalisation to windows for you to bind to windows! Lets you customize windows, make it more candyeye’d and productive. No barriers, exactly how you want windows to be. It uses ONLY Win32 API’s in high performance low-level-coding. It lets you do various functions with Windows, in one simple .conf . It lets you add shortcuts, virtual desktop management, window managment, change various windows 11 settings that are not possible with the Settings or Control Panel....
|
1793087853.3836074
|
1793174253.3836074
|
|
26857
|
pefiaOS , a bare-metal x86 operating system with a pefiaOS , a bare-metal x86 operating system with a graphical shell by @f | Stardance...
|
f
|
1
|
40.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T19:38:25Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Overview pefiaOS is a bare metal 32-bit x86 operating system written entirely from scratch in C and NASM. It contains around 9,000 lines of kernel code with no libc or third party kernel code. Features Graphical desktop with overlapping windows, taskbar, Start menu, and window manager Complete networking stack (Ethernet, ARP, IPv4, ICMP, UDP, DHCP, DNS, TCP) TLS 1.3 implementation from scratch for real HTTPS support Web browser with HTML rendering and inline image support Five built in games including Flappy Bird, Pong, Tetris, a Mario style platformer, and a Wolfenstein style raycaster Runs the original 1993 DOOM through PureDOOM inside a desktop window Challenges Some of the more difficult parts of the project included: Writing TLS 1.3 and its cryptographic primitives entirely from scratch Building a complete TCP/IP networking stack without timer interrupts Implementing DEFLATE, JPEG, and BMP decoders by hand Running everything in a cooperative single threaded kernel Integrating the real DOOM engine into a freestanding bare metal environment Highlights I’m especially proud that pefiaOS isn’t just a toy kernel. It can browse the real web over HTTPS, run a full graphical desktop, play games, and even run the original DOOM, all on hardware with no host operating system, no libc, and no runtime underneath. Running pefiaOS After building the cross compiler, simply run: make make run Or boot pefiaOS.iso in VirtualBox using an Intel PRO/1000 network adapter. Things to try Browse a real HTTPS website Play one of the built in games Launch DOOM from the Start menu Open the terminal and run about Capture network traffic with make run-net Current limitations No audio support yet TLS does not verify server certificates No preemptive multitasking No JavaScript engine The part that still feels surreal is watching the OS boot, opening the browser, and loading real HTTPS websites from the internet on an operating system I built entirely from scratch.", "repo": "https://github.com/pefia/pefiaos", "demo": "https://github.com/pefia/pefiaOS/releases/tag/v1.3"}]...
|
[{"post_id": 35746, "ts": "202 [{"post_id": 35746, "ts": "2026-07-27T11:53:45Z", "hours": 6.0, "text": "67 hours !!!!!!!! This update was mainly about improving the web browser and fixing bugs I found across the OS. The browser is now much more capable than before. I added a much better CSS engine, a lot more JavaScript features, proper form support with POST requests, cookies, animated GIFs, media placeholders, and lots of networking improvements. I also changed the homepage to DuckDuckGo Lite, so you can actually search the web from inside pefiaOS. I also fixed several kernel bugs, including memory corruption issues, framebuffer bugs, safer memory management, more reliable timing, and network driver improvements. Building the OS is easier now too. If you don’t have the cross compiler installed, it can now use your system GCC instead. I also improved VM compatibility by adding better diagnostics when booting with the wrong firmware. There is still a lot I want to add, like UTF-8 support, certificate verification, paging, and user mode, but this is the biggest browser update pefiaOS has had so far."}, {"post_id": 31701, "ts": "2026-07-20T09:56:29Z", "hours": 15.0, "text": "Devlog 05 - The Return: Giving pefiaOS a real kernel This update was mostly focused on replacing a lot of the “fake OS” parts with real operating system infrastructure. The biggest milestone was getting interrupts working. I added my own GDT, built an IDT with exception and IRQ handlers, remapped the PIC, programmed the PIT to 100 Hz, and implemented kernel threads with a handwritten x86 context switch. The scheduler is still cooperative because the heap and window manager aren’t thread safe enough for preemption yet, but background threads can finally run independently. I also wrote an ATA PIO driver capable of reading and writing real IDE disks using LBA28 addressing. On top of that I rewrote the VFS into a writable, heap-backed filesystem, so applications can now create, modify and delete files instead of relying on a compile-time file table. Persistence is still missing, but FAT32 can now be built on top of the driver. The desktop gained a lot of new functionality too. The code editor now supports syntax highlighting and line numbers, the terminal gained proper filesystem commands like mkdir , touch , rm , cat , echo > file , and ps , and I added both C and Python-style interpreters using the same recursive descent expression engine. Graphics also received a major upgrade. The desktop now runs at 1920x1080 and I replaced the old 1-bit bitmap font with grayscale anti-aliased glyphs generated from Consolas. The renderer blends glyph coverage into the framebuffer, making text much easier to read without changing any existing layouts. I also improved the desktop itself with window snapping, a scrollable Start menu, a live Settings app for themes and system settings, interactive browser text inputs, and a number of browser rendering improvements including larger page support and faster text drawing. The hardest part was getting all these systems working together. Interrupts initially caused repeated triple faults because my descriptor tables were wrong, the scheduler had to coexist with the existing window manager, and changing the VFS meant updating almost every built-in application. To make sure nothing regressed, I added a boot self-test that verifies the interpreter, writable VFS, scheduler, timer interrupts and ATA disk driver every time the OS starts. Things I’d love people to test: Open multiple windows and try snapping them around the desktop. Use the terminal to create, edit and delete files. Open the code editor and test syntax highlighting. Try typing into browser text inputs. Change the desktop theme and accent colour in Settings. This update doesn’t add one huge feature, but it lays the groundwork for the next major milestones: paging, user-mode processes, ELF loading, and a persistent filesystem."}, {"post_id": 21661, "ts": "2026-07-03T18:50:12Z", "hours": 12.0, "text": "Devlog — Snake, Breakout, a Smarter Shell, and Build Hygiene This week I added two new games (Snake and Breakout, bringing the total to seven), expanded the shell with new built-ins and command history, and cleaned up the build system. Everything boots and runs in QEMU. Snake The ring buffer approach makes movement O(1) instead of O(n): uint16_t s_body [ SN_CAP ]; /* ring buffer of cell indices */ int s_head , s_len ; Input and movement run on separate clocks. Input latches every 33 ms, movement every 130 - 4×score ms (minimum 60 ms). This way no keypresses drop and difficulty scales naturally. The grid is 16 pixel cells, clamped to window size. Apples spawn via rejection sampling. Filling the entire board wins the round. Breakout 26.6 fixed point physics handles shallow angles that integer pixels would quantise to zero. Paddle english depends on where you hit it: int off = bx - g -> k_px ; g -> k_bvy = - g -> k_bvy ; g -> k_bvx = ( off << 6 ) / ( pw / 6 ); Ball starts stuck to the paddle, launches with Space. Three lives, then game over. Integration Adding two games touched almost no window-manager code. Two enum entries in games.h , two lines per dispatch switch in games.c , and the Start menu entry in taskbar.c . The WM handles everything else automatically. Shell Improvements Added five new built-ins: free , uptime , history , ver , and fixed echo to print blank lines. Terminal got uptime too. One Version String #define PEFIA_VERSION \"pefiaOS 0.3 (Stardance)\" All three places that display version now build from this single define. Build Fixes Fixed header dependency tracking: CFLAGS += -MMD -MP -include $(OBJS:.o=.d) Editing a header now correctly rebuilds only the objects that include it. Cleaned up boot.asm trailing whitespace too. Testing Verified in my virtual machine: both games launch and play correctly, Terminal shows the new version string, all shell commands work. Seven games on a kernel I wrote from scratch!! :D"}, {"post_id": 18560, "ts": "2026-06-29T19:08:55Z", "hours": 1.0, "text": "Bringing Games (and DOOM) to pefiaOS This update was all about making pefiaOS capable of running real time applications. The desktop was originally designed around event driven apps, so games needed quite a bit of work before they were even possible. What’s new? Off screen rendering to eliminate flickering Proper held key input for responsive controls Fixed timestep game loop Resizable game windows Flappy Bird Pong Tetris Mario style platformer Wolfenstein style 3D raycaster Once those were working, I had to answer the obvious question: can it run DOOM? It turns out it can. I integrated PureDOOM by writing a platform layer that hooks the engine into my own memory allocator, timer, input system, framebuffer, and virtual filesystem. Since there’s no disk driver yet, the shareware WAD is embedded directly into the kernel, meaning DOOM now runs inside a normal desktop window on pefiaOS itself. Seeing the real 1993 DOOM running on an operating system I built from scratch has easily been one of the most rewarding moments of the project so far, and it also kinda shows that it can do something cool too, not just boring kernels and such."}, {"post_id": 18008, "ts": "2026-06-28T23:43:33Z", "hours": 1.0, "text": "PefiaOS Browser Engine Update - 12:35AM Replaced old HTML renderer with a proper DOM tree system Added CSS engine basic cascade box model layout Implemented lightweight JavaScript interpreter variables loops getElementById() innerHTML ⸻ Bug Fix Fixed image caching bug caused by reading bitmap dimensions after freeing memory Issue resulted in images being stored as 0×0 and rendering as blank white boxes PNG rendering now works correctly again (including Google logo) ⸻ Result Pages now render using DOM structure CSS styling is partially functional JavaScript enables basic interactivity Image rendering is stable again Google homepage renders significantly more correctly"}, {"post_id": 17727, "ts": "2026-06-28T17:16:30Z", "hours": 3.0, "text": "I have currently written the operating system from scratch, created a GUI (Graphical User Interface) and a window manager. I have apps such as a terminal with Linux-inspired commands and a working Browser written from scratch! Google doesn’t serve plain HTTP anymore, so getting to google.com meant implementing modern cryptography inside my own kernel. I ended up writing SHA-256, HMAC/HKDF, AES-128-GCM and X25519 myself before finally getting the handshake to complete. Most of the debugging came down to tiny mistakes—one incorrect byte somewhere could make the whole connection fail. Once that finally worked, I could build the browser on top of it. Right now it has a basic HTTP client and a renderer that supports enough HTML and CSS to display text with word wrapping, links and scrolling."}]...
|
Title: pefiaOS , a bare-metal x86 operating system Title: pefiaOS , a bare-metal x86 operating system with a graphical shell by @f | Stardance
Devlogs:
I have currently written the operating system from scratch, created a GUI (Graphical User Interface) and a window manager. I have apps such as a terminal with Linux-inspired commands and a working Browser written from scratch! Google doesn’t serve plain HTTP anymore, so getting to google.com meant implementing modern cryptography inside my own kernel. I ended up writing SHA-256, HMAC/HKDF, AES-128-GCM and X25519 myself before finally getting the handshake to complete. Most of the debugging came down to tiny mistakes—one incorrect byte somewhere could make the whole connection fail. Once that finally worked, I could build the browser on top of it. Right now it has a basic HTTP client and a renderer that supports enough HTML and CSS to display text with word wrapping, links and scrolling.
PefiaOS Browser Engine Update - 12:35AM Replaced old HTML renderer with a proper DOM tree system Added CSS engine basic cascade box model layout Implemented lightweight JavaScript interpreter variables loops getElementById() innerHTML ⸻ Bug Fix Fixed image caching bug caused by reading bitmap dimensions after freeing memory Issue resulted in images being stored as 0×0 and rendering as blank white boxes PNG rendering now works correctly again (including Google logo) ⸻ Result Pages now render using DOM structure CSS styling is partially functional JavaScript enables basic interactivity Image rendering is stable again Google homepage renders significantly more correctly
Bringing Games (and DOOM) to pefiaOS This update was all about making pefiaOS capable of running real time applications. The desktop was originally designed around event driven apps, so games needed quite a bit of work before they were even possible. What’s new? Off screen rendering to eliminate flickering Proper held key input for responsive controls Fixed timestep game loop Resizable game windows Flappy Bird Pong Tetris Mario style platformer Wolfenstein style 3D raycaster Once those were working, I had to answer the obvious question: can it run DOOM? It turns out it can. I integrated PureDOOM by writing a platform layer that hooks the engine into my own memory allocator, timer, input system, framebuffer, and virtual filesystem. Since there’s no disk driver yet, the shareware WAD is embedded directly into the kernel, meaning DOOM now runs inside a normal desktop window on pefiaOS itself. Seeing the real 1993 DOOM running on an operating system I built from scratch has easily been one of the most rewarding moments of the project so far, and it also kinda shows that it can do something cool too, not just boring kernels and such.
Devlog — Snake, Breakout, a Smarter Shell, and Build Hygiene This week I added two new games (Snake and Breakout, bringing the total to seven), expanded the shell with new built-ins and command history, and cleaned up the build system. Everything boots and runs in QEMU. Snake The ring buffer approach makes movement O(1) instead of O(n): uint16_t s_body [ SN_CAP ]; /* ring buffer of cell indices */ int s_head , s_len ; Input and movement run on separate clocks. Input latches every 33 ms, movement every 130 - 4×score ms (minimum 60 ms). This way no keypresses drop and difficulty scales naturally. The grid is 16 pixel cells, clamped to window size. Apples spawn via rejection sampling. Filling the entire board wins the round. Breakout 26.6 fixed point physics handles shallow angles that integer pixels would quantise to zero. Paddle english depends on where you hit it: int off = bx - g -> k_px ; g -> k_bvy = - g -> k_bvy ; g -> k_bvx = ( off << 6 ) / ( pw / 6 ); Ball starts stuck to the paddle, launches with Space. Three lives, then game over. Integration Adding two games touched almost no window-manager code. Two enum entries in games.h , two lines per dispatch switch in games.c , and the Start menu entry in taskbar.c . The WM handles everything else automatically. Shell Improvements Added five new built-ins: free , uptime , history , ver , and fixed echo to print blank lines. Terminal got uptime too. One Version String #define PEFIA_VERSION "pefiaOS 0.3 (Stardance)" All three places that display version now build from this single define. Build Fixes Fixed header dependency tracking: CFLAGS += -MMD -MP -include $(OBJS:.o=.d) Editing a header now correctly rebuilds only the objects that include it. Cleaned up boot.asm trailing whitespace too. Testing Verified in my virtual machine: both games launch and play correctly, Terminal shows the new version string, all shell commands work. Seven games on a kernel I wrote from scratch!! :D
Devlog 05 - The Return: Giving pefiaOS a real kernel This update was mostly focused on replacing a lot of the “fake OS” parts with real operating system infrastructure. The biggest milestone was getting interrupts working. I added my own GDT, built an IDT with exception and IRQ handlers, remapped the PIC, programmed the PIT to 100 Hz, and implemented kernel threads with a handwritten x86 context switch. The scheduler is still cooperative because the heap and window manager aren’t thread safe enough for preemption yet, but background threads can finally run independently. I also wrote an ATA PIO driver capable of reading and writing real IDE disks using LBA28 addressing. On top of that I rewrote the VFS into a writable, heap-backed filesystem, so applications can now create, modify and delete files instead of relying on a compile-time file table. Persistence is still missing, but FAT32 can now be built on top of the driver. The desktop gained a lot of new functionality too. The code editor now supports syntax highlighting and line numbers, the terminal gained proper filesystem commands like mkdir , touch , rm , cat , echo > file , and ps , and I added both C and Python-style interpreters using the same recursive descent expression engine. Graphics also received a major upgrade. The desktop now runs at 1920x1080 and I replaced the old 1-bit bitmap font with grayscale anti-aliased glyphs generated from Consolas. The renderer blends glyph coverage into the framebuffer, making text much easier to read without changing any existing layouts. I also improved the desktop itself with window snapping, a scrollable Start menu, a live Settings app for themes and system settings, interactive browser text inputs, and a number of browser rendering improvements including larger page support and faster text drawing. The hardest part was getting all these systems working together. Interrupts initially caused repeated triple faults because my descriptor tables were wrong, the scheduler had to coexist with the existing window manager, and changing the VFS meant updating almost every built-in application. To make sure nothing regressed, I added a boot self-test that verifies the interpreter, writable VFS, scheduler, timer interrupts and ATA disk driver every time the OS starts. Things I’d love people to test: Open multiple windows and try snapping them around the desktop. Use the terminal to create, edit and delete files. Open the code editor and test syntax highlighting. Try typing into browser text inputs. Change the desktop theme and accent colour in Settings. This update doesn’t add one huge feature, but it lays the groundwork for the next major milestones: paging, user-mode processes, ELF loading, and a persistent filesystem.
67 hours !!!!!!!! This update was mainly about improving the web browser and fixing bugs I found across the OS. The browser is now much more capable than before. I added a much better CSS engine, a lot more JavaScript features, proper form support with POST requests, cookies, animated GIFs, media placeholders, and lots of networking improvements. I also changed the homepage to DuckDuckGo Lite, so you can actually search the web from inside pefiaOS. I also fixed several kernel bugs, including memory corruption issues, framebuffer bugs, safer memory management, more reliable timing, and network driver improvements. Building the OS is easier now too. If you don’t have the cross compiler installed, it can now use your system GCC instead. I also improved VM compatibility by adding better diagnostics when booting with the wrong firmware. There is still a lot I want to add, like UTF-8 support, certificate verification, paging, and user mode, but this is the biggest browser update pefiaOS has had so far.
Ships:
Overview pefiaOS is a bare metal 32-bit x86 operating system written entirely from scratch in C and NASM. It contains around 9,000 lines of kernel code with no libc or third party kernel code. Features Graphical desktop with overlapping windows, taskbar, Start menu, and window manager Complete networking stack (Ethernet, ARP, IPv4, ICMP, UDP, DHCP, DNS, TCP) TLS 1.3 implementation from scratch for real HTTPS support Web browser with HTML rendering and inline image support Five built in games including Flappy Bird, Pong, Tetris, a Mario style platformer, and a Wolfenstein style raycaster Runs the original 1993 DOOM through PureDOOM inside a desktop window Challenges Some of the more difficult parts of the project included: Writing TLS 1.3 and its cryptographic primitives entirely from scratch Building a complete TCP/IP networking stack without timer interrupts Implementing DEFLATE, JPEG, and BMP decoders by hand Running everything in a cooperative single threaded kernel Integrating the real DOOM engine into a freestanding bare metal environment Highlights I’m especially proud that pefiaOS isn’t just a toy kernel. It can browse the real web over HTTPS, run a full graphical desktop, play games, and even run the original DOOM, all on hardware with no host operating system, no libc, and no runtime underneath. Running pefiaOS After building the cross compiler, simply run: make make run Or boot pefiaOS.iso in VirtualBox using an Intel PRO/1000 network adapter. Things to try Browse a real HTTPS website Play one of the built in games Launch DOOM from the Start menu Open the terminal and run about Capture network traffic with make run-net Current limitations No audio support yet TLS does not verify server certificates No preemptive multitasking No JavaScript engine The part that still feels surreal is watching the OS boot, opening the browser, and loading real HTTPS websites from the internet on an operating system I built entirely from scratch....
|
1792878805.2685664
|
1793742805.2685664
|
|
38466
|
TICSTEP 3D by @pixi | Stardance
|
pixi
|
1
|
40.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T23:47:28Z", "hours": 40.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "TICSTEP 3D IS OUT NOWW!!! 💖💖❤️🔥❤️🔥✨🪐🪐 39 hours logged over 4 days is certainly not a sign of good health, but now the GMTK Game Jam is over and I am free at last. TICSTEP 3D is a fast paced puzzle game where you complete levels full of tiles that disappear by a countdown. We put a lot of work into planning this game’s mechanics, designing the levels, and polishing the visuals, so it’d mean a lot if you could play and leave a rating and a comment! :>", "repo": "https://github.com/pxlinspace/gmtk-2026", "demo": "https://pxlinspace.itch.io/ticstep-3d"}]...
|
[{"post_id": 35477, "ts": "202 [{"post_id": 35477, "ts": "2026-07-26T22:51:34Z", "hours": 2.8925, "text": "The jam is done, now I can devlog in peace 😌 Added sprites, sounds, and a particle effect for the spring in world 3 Changed the color of world 3’s planet Finished all levels for world 2 Not that many bullet points this time, but level design is a lot of work!"}, {"post_id": 35204, "ts": "2026-07-26T14:04:05Z", "hours": 8.5278, "text": "LITERALLY 3 HRS BEFORE THE GMTK GAME JAM DEADLINE BUT I HAVE 8 HRS LOGGED SO I GOTTA SPEEDRUN THIS DEVLOG Features added: title screen is new and flashy now! It has a starting animation too. new UFO, which is also in title screen. bunny has sprite too, just for title screen. cool arrow that points towards spaceship when ur done new treasure sprite new bomb sprites and a lotta work on level design! Specifically world 2 and the bombs OK I GOTTA GRIND BYEEEE"}, {"post_id": 34878, "ts": "2026-07-25T23:01:06Z", "hours": 7.1319, "text": "Day 4 of the GMTK Game Jam! OH MY GOODNESS THE DEADLINE IS RAPIDLY APPROACHING. Features I added: New background visuals! Omg so pretty. Figuring out how to make the planet not bad actually took a ridiculous amount of time. tiles now shrink when dropped instead of just mysteriously disappearing instantly into the planet Bunny’s dialog now has a cool crackling text bubble Decorated the entire main menu! SOUND EFFECTS AND MUSIC. I did my best to make the game sound as alive as possible! Most of the sfx were made in ChipTone, though some where recorded by my voice lol (the clock tick and the fade in/out transition) levels now actually restart when you die lol Next steps are FINISHING EVERYTHING OMG. Also making the itch.io page lol."}, {"post_id": 34577, "ts": "2026-07-25T12:58:35Z", "hours": 7.5119, "text": "Day 3 (and a bit of 4) of the GMTK Game Jam! This day I focused on level design, ui, and fixing a few bugs. Wish I got more done but I had a nap and woke up at 1am 💀 Features I added: Finished first 4 levels! Here u can only see level 4 though. Making levels with this system is a lot harder than I thought. Added the cool hud on the left w instructions and objectives Made a portrait for our epic scientist buddy The player now gets a little impact animation whenever they get hit timer now only starts once the player hits the ground from the UFO. small tweaks to the UFO animation! Next steps are FINISHING THE GAME CUZ ITS THE LAST DAY!!!! This means: Finishing the main menu connecting the levels together finishing all the levels playtesting adding music & sfx if we have time, maybe even a final boss!"}, {"post_id": 33925, "ts": "2026-07-24T07:19:29Z", "hours": 6.0669, "text": "Day 2 of the GMTK Game Jam! This day I primarily focused on the visuals of the game. I wasn’t able to get too much done because the fatigue from last all nighter was bumping in, but you can definitely see the improvement! Features I added: new player sprites implemented, specifically the “item obtained!” sprite and the “oh crap I’m about to fall” sprite EVERYTHING (almost) has been recolored to be more pleasant on the eyes! The player sprites, the tiles, the background, etc The tiles also have a fancy new font! They also now end at 0 instead of staying at 1 Made the enemies’ next position indicator better. Now it highlights the next tile with a red square New enemy sprite! It’s supposed to be an alien slug ghost thing Now the player explodes whenever they hit an enemy added animations to the UFO and its light! For day 3, I’ll be working on level design, and sfx too if I have the time!"}, {"post_id": 33578, "ts": "2026-07-23T16:54:20Z", "hours": 4.2897, "text": "Day 1 of the GMTK Game Jam! (continued) might’ve had an accidental all nighter :/ but quite a lot has changed! More of the core gameplay is implemented, and a lot of the visuals are being fleshed out too Features I added: new player sprite! His name is Roko Added a bouncy stopwatch sprite in the top right that indicates when the next timestep will come. Timesteps are at the core of the game, so they’re important for the player to take track of yea just those two things lol. Everything else that was added was all my friend Next steps for me are working on more player animations, making the colors for the tiles better, and just improving all the visuals as a whole!"}, {"post_id": 33365, "ts": "2026-07-23T07:06:58Z", "hours": 3.2097, "text": "Day 1 of the GMTK Game Jam! This year’s theme is “countdown,” so we’re making a game where every tile you step on will count down by 1 after you step on it, and will disappear once it reaches zero! The end goal of the game is to capture the flag at the end of the level and bring it back to the beginning, so be careful where you step. The entire game is made in Godot Features I added: The tiles you see here were spawned from a gridmap node, is basically a 3d tilemap added player, who is able to move 1 tile at a time added flag, which the player can pick up and move around added little bounce animations whenever players or enemy move Everything else (enemies, tiles counting down, tile shaders, etc.) were all added by my friend."}]...
|
Title: TICSTEP 3D by @pixi | Stardance
Devlogs:
D Title: TICSTEP 3D by @pixi | Stardance
Devlogs:
Day 1 of the GMTK Game Jam! This year’s theme is “countdown,” so we’re making a game where every tile you step on will count down by 1 after you step on it, and will disappear once it reaches zero! The end goal of the game is to capture the flag at the end of the level and bring it back to the beginning, so be careful where you step. The entire game is made in Godot Features I added: The tiles you see here were spawned from a gridmap node, is basically a 3d tilemap added player, who is able to move 1 tile at a time added flag, which the player can pick up and move around added little bounce animations whenever players or enemy move Everything else (enemies, tiles counting down, tile shaders, etc.) were all added by my friend.
Day 1 of the GMTK Game Jam! (continued) might’ve had an accidental all nighter :/ but quite a lot has changed! More of the core gameplay is implemented, and a lot of the visuals are being fleshed out too Features I added: new player sprite! His name is Roko Added a bouncy stopwatch sprite in the top right that indicates when the next timestep will come. Timesteps are at the core of the game, so they’re important for the player to take track of yea just those two things lol. Everything else that was added was all my friend Next steps for me are working on more player animations, making the colors for the tiles better, and just improving all the visuals as a whole!
Day 2 of the GMTK Game Jam! This day I primarily focused on the visuals of the game. I wasn’t able to get too much done because the fatigue from last all nighter was bumping in, but you can definitely see the improvement! Features I added: new player sprites implemented, specifically the “item obtained!” sprite and the “oh crap I’m about to fall” sprite EVERYTHING (almost) has been recolored to be more pleasant on the eyes! The player sprites, the tiles, the background, etc The tiles also have a fancy new font! They also now end at 0 instead of staying at 1 Made the enemies’ next position indicator better. Now it highlights the next tile with a red square New enemy sprite! It’s supposed to be an alien slug ghost thing Now the player explodes whenever they hit an enemy added animations to the UFO and its light! For day 3, I’ll be working on level design, and sfx too if I have the time!
Day 3 (and a bit of 4) of the GMTK Game Jam! This day I focused on level design, ui, and fixing a few bugs. Wish I got more done but I had a nap and woke up at 1am 💀 Features I added: Finished first 4 levels! Here u can only see level 4 though. Making levels with this system is a lot harder than I thought. Added the cool hud on the left w instructions and objectives Made a portrait for our epic scientist buddy The player now gets a little impact animation whenever they get hit timer now only starts once the player hits the ground from the UFO. small tweaks to the UFO animation! Next steps are FINISHING THE GAME CUZ ITS THE LAST DAY!!!! This means: Finishing the main menu connecting the levels together finishing all the levels playtesting adding music & sfx if we have time, maybe even a final boss!
Day 4 of the GMTK Game Jam! OH MY GOODNESS THE DEADLINE IS RAPIDLY APPROACHING. Features I added: New background visuals! Omg so pretty. Figuring out how to make the planet not bad actually took a ridiculous amount of time. tiles now shrink when dropped instead of just mysteriously disappearing instantly into the planet Bunny’s dialog now has a cool crackling text bubble Decorated the entire main menu! SOUND EFFECTS AND MUSIC. I did my best to make the game sound as alive as possible! Most of the sfx were made in ChipTone, though some where recorded by my voice lol (the clock tick and the fade in/out transition) levels now actually restart when you die lol Next steps are FINISHING EVERYTHING OMG. Also making the itch.io page lol.
LITERALLY 3 HRS BEFORE THE GMTK GAME JAM DEADLINE BUT I HAVE 8 HRS LOGGED SO I GOTTA SPEEDRUN THIS DEVLOG Features added: title screen is new and flashy now! It has a starting animation too. new UFO, which is also in title screen. bunny has sprite too, just for title screen. cool arrow that points towards spaceship when ur done new treasure sprite new bomb sprites and a lotta work on level design! Specifically world 2 and the bombs OK I GOTTA GRIND BYEEEE
The jam is done, now I can devlog in peace 😌 Added sprites, sounds, and a particle effect for the spring in world 3 Changed the color of world 3’s planet Finished all levels for world 2 Not that many bullet points this time, but level design is a lot of work!
Ships:
TICSTEP 3D IS OUT NOWW!!! 💖💖❤️🔥❤️🔥✨🪐🪐 39 hours logged over 4 days is certainly not a sign of good health, but now the GMTK Game Jam is over and I am free at last. TICSTEP 3D is a fast paced puzzle game where you complete levels full of tiles that disappear by a countdown. We put a lot of work into planning this game’s mechanics, designing the levels, and polishing the visuals, so it’d mean a lot if you could play and leave a rating and a comment! :>...
|
1793087411.129792
|
1793173811.129792
|
|
40216
|
Piko OS by @Element | Stardance
|
Element
|
2
|
40.0
|
436
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T15:52:47Z", "hours": 30.0, "multiplier": 14.71, "payout": 436, "blessing": "neutral", "text": "WHAT DID YOU MAKE? Piko OS is a web based browser This was the biggest project I’ve made till now, this helped me to learn the fundamentals and pushed me out of my comfort zone. I really love that i made this really personalized, My first ship was rejected because it looked generic and lacked features so i was determined to make it look unique. WHAT WAS CHALLENGING? getting the browser to work was such a hassle making the weather widget work (Still easier than the browser) and omg bruh there was this problem when i split the files, name missmatch of files was driving me crazy I often struggled with JS because I basically started from 0 knowledge. Features A notes app A calculater A Gallery app Two games Music player (ik i have peak music taste) Doomscroll app (even tho there isnt much to doomscroll) A functioning brwoser Todo App its connected to the Todo widget so the first three tasking you add in app will show in the widget Settings where you can change wallpaper and theme that matches to the wallpapers Terminal, Type help to see commands the weather widget shows the weather in New York A calendar widget Local storage A boot screen I actually spent much more time on this project than you see here, learning things, breaking stuffs, hours spent looking on how to fix stuffs, and much much more. Now that i look at other webOs projects while comparing to them i have way less commits this mostly because i only commit once i fixed all the bugs and make sure that the added feature is working correctly. I hope you like this project and give a good rating, and please leave a thoughtfull review.", "repo": "https://github.com/CreateVision96/Web-os", "demo": "https://createvision96.github.io/Web-os/"}, {"ship_num": 2, "ts": "2026-07-28T15:05:49Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built MentOS, a minimal, web-based operating system designed for learning and lightweight desktop productivity. Inspired by macOS aesthetics, it features a clean glassmorphic desktop interface, dynamic side widgets (a live Calendar and a Weather widget), and floating draggable windows for built-in apps like Notes and Calculator. I had challenges setting it up because i had alot of typos, Im proud of actually sitting here and commiting to the development process of it instead giving up halfway, Most of the code was written by me, after writing the core codes i had Ai to put comments and make sections so adding new things would be easier, but the codes for the weather widget was written by Ai still the design choices where mine, Again im very happy that i got to this point. There might be future updates on this project but i cant confirmt that", "repo": "https://github.com/CreateVision96/Web-os", "demo": "https://createvision96.github.io/Web-os/"}]...
|
[{"post_id": 68988, "ts": "202 [{"post_id": 68988, "ts": "2026-09-16T05:07:01Z", "hours": 3.5581, "text": "DevLog#9 Last devlog before shipping Added a doomscroll app Added terminal, type help to see all commands Added a Boot screen Made it more polished so i can ship it"}, {"post_id": 68291, "ts": "2026-09-14T21:17:55Z", "hours": 3.8861, "text": "DevLog#8 Added an app to doomscrool Added two simple games Splited the css files so i can work easly Fixed bugs, some bugs where already there but i was like ill fix it laterr… only has four videos for now but ill add more, i feel like its ready to ship unless i find something to add"}, {"post_id": 64947, "ts": "2026-09-09T17:59:02Z", "hours": 4.4775, "text": "#DEVLOG7 Okay so i fixed bugs, seperated the js into multiple files so its easier for me to work, New app : Music player I have added 20 songs to it"}, {"post_id": 44652, "ts": "2026-08-10T15:44:51Z", "hours": 3.4189, "text": "DEVLOG6 added animations for window maximizing added a transition when changing wallpapers added notificatios for Notes being created All notes getting deleted Todo new task Todo task deleted Todo task completed Todo task marked incomplete Also tweaked the colors Made it so the task and notes that you add stays even after you refresh the site next ill try to add a music app"}, {"post_id": 44305, "ts": "2026-08-09T23:35:12Z", "hours": 4.3011, "text": "Devlog5 Added new wallpapers Added a browser Fixed some issues Made some smoll adjustments Improved UI"}, {"post_id": 43451, "ts": "2026-08-08T18:23:17Z", "hours": 10.1969, "text": "DEVLOG#4 Big changes changed the whole vibe from last time. added new themes, gallery, settings, a todo app and a widget, right click menu now the weather widget will show weather in new york instead of askng for your location to show local weather. next ill try to add a browser"}, {"post_id": 36398, "ts": "2026-07-28T14:07:25Z", "hours": 2.7003, "text": "#Devlog3 added calendar widget and a weather widget, i temporarly removed some of the codes of the weather widget so it wont show my location, but it does work fine. Also removed the apps from desktop to only on dock, improved the glass effect, added some very simple animations"}, {"post_id": 36007, "ts": "2026-07-27T20:28:35Z", "hours": 3.5347, "text": "Devlog#2 Here is a more improved version, i tried to keep it minimal and its inspired by mac os, now in next update ill try to make it more unique"}, {"post_id": 35714, "ts": "2026-07-27T09:56:42Z", "hours": 3.6931, "text": "Dev Log #1 Started building a Web OS by following the Hack Club Stardust guide. It was a fun way to learn how everything works, and I fixed a few bugs along the way. Next, I’m planning to add a working Notes app with saved notes, followed by a Calculator app. Looking forward to adding more features!"}]...
|
Title: Piko OS by @Element | Stardance
Devlogs:
D Title: Piko OS by @Element | Stardance
Devlogs:
Dev Log #1 Started building a Web OS by following the Hack Club Stardust guide. It was a fun way to learn how everything works, and I fixed a few bugs along the way. Next, I’m planning to add a working Notes app with saved notes, followed by a Calculator app. Looking forward to adding more features!
Devlog#2 Here is a more improved version, i tried to keep it minimal and its inspired by mac os, now in next update ill try to make it more unique
#Devlog3 added calendar widget and a weather widget, i temporarly removed some of the codes of the weather widget so it wont show my location, but it does work fine. Also removed the apps from desktop to only on dock, improved the glass effect, added some very simple animations
DEVLOG#4 Big changes changed the whole vibe from last time. added new themes, gallery, settings, a todo app and a widget, right click menu now the weather widget will show weather in new york instead of askng for your location to show local weather. next ill try to add a browser
Devlog5 Added new wallpapers Added a browser Fixed some issues Made some smoll adjustments Improved UI
DEVLOG6 added animations for window maximizing added a transition when changing wallpapers added notificatios for Notes being created All notes getting deleted Todo new task Todo task deleted Todo task completed Todo task marked incomplete Also tweaked the colors Made it so the task and notes that you add stays even after you refresh the site next ill try to add a music app
#DEVLOG7 Okay so i fixed bugs, seperated the js into multiple files so its easier for me to work, New app : Music player I have added 20 songs to it
DevLog#8 Added an app to doomscrool Added two simple games Splited the css files so i can work easly Fixed bugs, some bugs where already there but i was like ill fix it laterr… only has four videos for now but ill add more, i feel like its ready to ship unless i find something to add
DevLog#9 Last devlog before shipping Added a doomscroll app Added terminal, type help to see all commands Added a Boot screen Made it more polished so i can ship it
Ships:
I built MentOS, a minimal, web-based operating system designed for learning and lightweight desktop productivity. Inspired by macOS aesthetics, it features a clean glassmorphic desktop interface, dynamic side widgets (a live Calendar and a Weather widget), and floating draggable windows for built-in apps like Notes and Calculator. I had challenges setting it up because i had alot of typos, Im proud of actually sitting here and commiting to the development process of it instead giving up halfway, Most of the code was written by me, after writing the core codes i had Ai to put comments and make sections so adding new things would be easier, but the codes for the weather widget was written by Ai still the design choices where mine, Again im very happy that i got to this point. There might be future updates on this project but i cant confirmt that
WHAT DID YOU MAKE? Piko OS is a web based browser This was the biggest project I’ve made till now, this helped me to learn the fundamentals and pushed me out of my comfort zone. I really love that i made this really personalized, My first ship was rejected because it looked generic and lacked features so i was determined to make it look unique. WHAT WAS CHALLENGING? getting the browser to work was such a hassle making the weather widget work (Still easier than the browser) and omg bruh there was this problem when i split the files, name missmatch of files was driving me crazy I often struggled with JS because I basically started from 0 knowledge. Features A notes app A calculater A Gallery app Two games Music player (ik i have peak music taste) Doomscroll app (even tho there isnt much to doomscroll) A functioning brwoser Todo App its connected to the Todo widget so the first three tasking you add in app will show in the widget Settings where you can change wallpaper and theme that matches to the wallpapers Terminal, Type help to see commands the weather widget shows the weather in New York A calendar widget Local storage A boot screen I actually spent much more time on this project than you see here, learning things, breaking stuffs, hours spent looking on how to fix stuffs, and much much more. Now that i look at other webOs projects while comparing to them i have way less commits this mostly because i only commit once i fixed all the bugs and make sure that the added feature is working correctly. I hope you like this project and give a good rating, and please leave a thoughtfull review....
|
1793102087.7015407
|
1793188487.7015407
|
|
43907
|
Flappy Bird Console by @artitule | Stardance
|
artitule
|
1
|
40.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T19:05:53Z", "hours": 40.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built FlappyINO a small form factor portable Flappy Bird Console. It is easy to take with you and enjoy on the go. It is based around the ATmega328P IC (the same IC that is used in the Arduino UNO and NANO) so the project is very easy to build from readily available parts. Also since the same IC is used in popular Arduino boards the project can be built on a breadboard and tested beforehand with ease. This project was started before Stardance but before only the game part was there. Since Stardance the project became a lot more polished and i was able to add a lot of the features that were missing before. I rewrote the code to use the more user friendly VSCode + PlatformIO combo instead of the ArduinoIDE, before the code was organized in what ArduinoIDE calls “Tabs”. Now the code is organized in actual files and this is an actual software project. Apart from that in the v2 release i added: A game progression system with difficulty unlocks and more game modes, a Settings menu for graphical features, landing and takeoff animations, better UI and so much more. Please see the README to see the full list of changes and see the demo video for the gameplay. As this is a hardware project and you can’t run something like Unity on a IC that has 2Kb of SRAM and 32Kb of flash you need to implement all of the “basic” things that you can do with a couple lines of code in game engine like collision detection, game loop, player inputs, accurate timings and stable FPS needs implementation by hand. This was by far the hardest part (together with game optimization and asset storage) that i had to overcome to finish this project. I’m most proud of being able to combine all of these aspects into one and get something that is stable/reliable and responsive but also compact so that you can carry the whole console on your keychain. Don’t even get me started on the responsive part. Since the game needs to get faster and faster (otherwise it would get really boring) you will be quickly met with restrictions to how much data you can process and send to the display while keeping the game responsive and not slowing it down. Here even at 30 FPS you need to basically redraw 128x64=8.192 pixels every 33 ish milliseconds. On a modern computer that is not that hard but on a 8MHz microcontroller that is no easy feat. In the end i had to cut down and optimize almost all of the “redraws” to minimize the amount that needs to be actually “redrawn”. To test the project select the hardware you want to run the project on (the PCB or an Arduino Board) go to the GitHub repository and follow the steps for the connections and code uploading. You can also watch the demo video beforehand to get more information about the project. I really enjoyed being a part of the Stardance community and improving my project. I hope in the future i will be able to to more really interesting hardware and software projects. If you want to see this and my future projects grow please consider leaving feedback. I am designing these projects on my own so other peoples feedback is really important to me! Thank You! :)", "repo": "https://github.com/ARTITULE/FlappyINO", "demo": ""}]...
|
[{"post_id": 71874, "ts": "202 [{"post_id": 71874, "ts": "2026-09-21T18:01:22Z", "hours": 7.5458, "text": "Devlog Time!! Hopefully this is going to be my final devlog for this project. I finished the demo video and the thumbnail updated the README and did much more. You can watch the demo video from the link in my project or the link below. https://www.youtube.com/watch?v=2ZuoSsNO6Mo See you in the next devlog"}, {"post_id": 64322, "ts": "2026-09-08T16:43:15Z", "hours": 6.4667, "text": "Devlog Time!! After a lot of soldering i finished the assembly of the v2 FlappyINO console. You can see the v1(on the left) vs the v2(on the right) comparison in the picture. Now the only thing that’s left is to update the README and to film the video! See you then"}, {"post_id": 62394, "ts": "2026-09-05T18:47:28Z", "hours": 2.8417, "text": "Devlog Time!! Finally got the Pcb’s and redesigned the case. The only real thing that is left is to assemble the console and SHIP! I also added the production files to github and modified the README. Now i am going to, keep soldering!"}, {"post_id": 59637, "ts": "2026-09-01T15:38:43Z", "hours": 7.6844, "text": "Devlog Time!! Finally added the animations for landing and taking off . You can see them attached. Among minor bug fixes i implemented: Landing and Takeoff animation. Setting in settings menu to enable and disable the animations(in case they get boring) Added a way to see if the level is locked, unlocked or cleared(completed) Since there is no game engines written for AVR microcontrollers the animation took a long time to implement because i need to draw each frame of it by hand to the buffer and then to the screen. But i definitely learned a lot about how to interact with each element on its own. Now i am slowly preparing to ship the project but until then i will keep coding!"}, {"post_id": 48390, "ts": "2026-08-16T18:29:51Z", "hours": 3.5811, "text": "Devlog Time!! Finally worked on the level ending.(before the game had no ending and no way to complete the levels ) Now the levels have a cool ending screen and an option to play the ENDLESS MODE . Also a new feature is that you now need to beat previous levels before advancing to the next. I think this way an endless game has more “story” i guess. The next thing i will be working on is a cool landing animation. In the meantime Keep Coding!"}, {"post_id": 44709, "ts": "2026-08-10T17:26:21Z", "hours": 2.8642, "text": "Devlog Time!! After adding more graphics to the game i saw some frame drops so i added the ability to toggle some of the more performance heavy ones. That is how the Settings menu was born. Not a lot of changes for this devlog but in the meantime, Keep coding"}, {"post_id": 44011, "ts": "2026-08-09T14:38:52Z", "hours": 5.8189, "text": "Devlog Time!! Mainly worked on the GUI this time now the level select screen has a cute planet picture :3. Also added a moon surface looking background to the level. Spent like 30 minutes trying to align everything but now i am really good at math(specifically dividing by 2). Keep coding 🙃"}, {"post_id": 42492, "ts": "2026-08-07T08:12:39Z", "hours": 3.3422, "text": "Finally rewrote the code to work with PlatformIO . Code compilation is a lot faster now. Struggled on splitting the ArduinoIDE “Tabs” into actual files but this is a lot better than the old mess."}]...
|
Title: Flappy Bird Console by @artitule | Stardanc Title: Flappy Bird Console by @artitule | Stardance
Devlogs:
Finally rewrote the code to work with PlatformIO . Code compilation is a lot faster now. Struggled on splitting the ArduinoIDE “Tabs” into actual files but this is a lot better than the old mess.
Devlog Time!! Mainly worked on the GUI this time now the level select screen has a cute planet picture :3. Also added a moon surface looking background to the level. Spent like 30 minutes trying to align everything but now i am really good at math(specifically dividing by 2). Keep coding 🙃
Devlog Time!! After adding more graphics to the game i saw some frame drops so i added the ability to toggle some of the more performance heavy ones. That is how the Settings menu was born. Not a lot of changes for this devlog but in the meantime, Keep coding
Devlog Time!! Finally worked on the level ending.(before the game had no ending and no way to complete the levels ) Now the levels have a cool ending screen and an option to play the ENDLESS MODE . Also a new feature is that you now need to beat previous levels before advancing to the next. I think this way an endless game has more “story” i guess. The next thing i will be working on is a cool landing animation. In the meantime Keep Coding!
Devlog Time!! Finally added the animations for landing and taking off . You can see them attached. Among minor bug fixes i implemented: Landing and Takeoff animation. Setting in settings menu to enable and disable the animations(in case they get boring) Added a way to see if the level is locked, unlocked or cleared(completed) Since there is no game engines written for AVR microcontrollers the animation took a long time to implement because i need to draw each frame of it by hand to the buffer and then to the screen. But i definitely learned a lot about how to interact with each element on its own. Now i am slowly preparing to ship the project but until then i will keep coding!
Devlog Time!! Finally got the Pcb’s and redesigned the case. The only real thing that is left is to assemble the console and SHIP! I also added the production files to github and modified the README. Now i am going to, keep soldering!
Devlog Time!! After a lot of soldering i finished the assembly of the v2 FlappyINO console. You can see the v1(on the left) vs the v2(on the right) comparison in the picture. Now the only thing that’s left is to update the README and to film the video! See you then
Devlog Time!! Hopefully this is going to be my final devlog for this project. I finished the demo video and the thumbnail updated the README and did much more. You can watch the demo video from the link in my project or the link below. https://www.youtube.com/watch?v=2ZuoSsNO6Mo See you in the next devlog
Ships:
I built FlappyINO a small form factor portable Flappy Bird Console. It is easy to take with you and enjoy on the go. It is based around the ATmega328P IC (the same IC that is used in the Arduino UNO and NANO) so the project is very easy to build from readily available parts. Also since the same IC is used in popular Arduino boards the project can be built on a breadboard and tested beforehand with ease. This project was started before Stardance but before only the game part was there. Since Stardance the project became a lot more polished and i was able to add a lot of the features that were missing before. I rewrote the code to use the more user friendly VSCode + PlatformIO combo instead of the ArduinoIDE, before the code was organized in what ArduinoIDE calls “Tabs”. Now the code is organized in actual files and this is an actual software project. Apart from that in the v2 release i added: A game progression system with difficulty unlocks and more game modes, a Settings menu for graphical features, landing and takeoff animations, better UI and so much more. Please see the README to see the full list of changes and see the demo video for the gameplay. As this is a hardware project and you can’t run something like Unity on a IC that has 2Kb of SRAM and 32Kb of flash you need to implement all of the “basic” things that you can do with a couple lines of code in game engine like collision detection, game loop, player inputs, accurate timings and stable FPS needs implementation by hand. This was by far the hardest part (together with game optimization and asset storage) that i had to overcome to finish this project. I’m most proud of being able to combine all of these aspects into one and get something that is stable/reliable and responsive but also compact so that you can carry the whole console on your keychain. Don’t even get me started on the responsive part. Since the game needs to get faster and faster (otherwise it would get really boring) you will be quickly met with restrictions to how much data you can process and send to the display while keeping the game responsive and not slowing it down. Here even at 30 FPS you need to basically redraw 128x64=8.192 pixels every 33 ish milliseconds. On a modern computer that is not that hard but on a 8MHz microcontroller that is no easy feat. In the end i had to cut down and optimize almost all of the “redraws” to minimize the amount that needs to be actually “redrawn”. To test the project select the hardware you want to run the project on (the PCB or an Arduino Board) go to the GitHub repository and follow the steps for the connections and code uploading. You can also watch the demo video beforehand to get more information about the project. I really enjoyed being a part of the Stardance community and improving my project. I hope in the future i will be able to to more really interesting hardware and software projects. If you want to see this and my future projects grow please consider leaving feedback. I am designing these projects on my own so other peoples feedback is really important to me! Thank You! :)...
|
1793148581.650691
|
1793234981.650691
|
|
46541
|
The most epic minigame game ever made by @Tyo | St The most epic minigame game ever made by @Tyo | Stardance...
|
Tyo
|
4
|
40.0
|
440
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-23T10:58:37Z", "hours": 3.0, "multiplier": 13.36, "payout": 34, "blessing": "neutral", "text": "WOAH, I’M BACK HERE ALREADY??!? Honestly, the feedback this time around was insane and gave me some great pointers so I just had to add it in for that satisfaction (also 40 hours looks beautiful!~ Hehe~) So here are the changes!!: FONTSS: Added a brand new custom font to match the artstyle SFX: MORE SOUND EFFECTS for all the minigames OPTIMIZE: Added more optimizations so that there would be no random lag spikes from some of the games TIMER ANIMATIONS: The timer now also has sound effects and animations that becomes faster and faster when time is about to finish so that the player have a visual and sound cue of their time running out. I think…. that’s all…..? (genuinely IDK cuz sometimes the feedback is just too good to not do it :p)", "repo": "https://github.com/SteelyxEpic/the-most-epic-minigame-game-ever", "demo": "https://tyoepic.itch.io/the-best-minigame-game-ever"}, {"ship_num": 2, "ts": "2026-10-20T03:19:05Z", "hours": 14.0, "multiplier": 12.17, "payout": 175, "blessing": "neutral", "text": "The Most Epic Minigame Game Ever! Version 3 is out!~ The reason I came back to this is cuz I wanted to fix the stuff from the feedback and also add something I wanted to add for a while~. So here are all the changes!~: Reworks!: -The first minigame I made has been reworked to be collecting planets with your airship instead of walking and jumping around! -The button minigame has the artwork changed to match the other minigames more! -The timer is now more visual instead of a number! Additions! <3: New minigames, gamemode and difficulties!; Added 3 new minigames and along with it their gamemode, hide out! Also beating a gamemode now unlocks a harder difficulty for that gamemode and beating that introduces the HARDEST gamemode!~~ SHOPPPPP: now every minigame played will award you with a coin that you can spend in the shop~ to make your life easier~ Welp, I think that’s all. See you guys!~ (Will I update this game more? Maybe, maybe not~ Hehe~)", "repo": "https://github.com/SteelyxEpic/the-most-epic-minigame-game-ever", "demo": "https://tyoepic.itch.io/the-best-minigame-game-ever"}, {"ship_num": 3, "ts": "2026-08-20T14:18:55Z", "hours": 16.0, "multiplier": 14.05, "payout": 231, "blessing": "neutral", "text": "The Most Epic Minigame Game Ever!!! Is a project I been wanting to make for ages, a frenzy minigame where time and control is against you and the only person you can blame is truly yourself. I want this game to not just be a really good game to play and beat your own high score but to also incorporate a story that can be understood even with the almost to none language said. Overall, I really enjoyed making this game! And I can now finally said I use BOTH Unity and Godot game engine!~", "repo": "https://github.com/SteelyxEpic/the-most-epic-minigame-game-ever", "demo": "https://tyoepic.itch.io/the-best-minigame-game-ever"}, {"ship_num": 4, "ts": "2026-08-12T09:19:48Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "WarioWare! is one of those games that you definitely have seen before or a parody of it. It’s a series of minigames that a person has to do in quick succession, every success increases the hype and decreases the time on the clock My version is thanks to the stardance warioware challenge and it’s entirely based on a random story I got in my sleep so far there’s only 2 minigames, catch the planets and find the aliens(very good names I know </3) This was the first time I’ve ever tried using Godot (previously I used unity) but other than the tricky animation handling (actually took me hours to figure it out), it was all smooth sailing and I’m happy to say I have a new game engine under my belt!", "repo": "https://github.com/SteelyxEpic/the-most-epic-minigame-game-ever", "demo": "https://tyoepic.itch.io/the-best-minigame-game-ever"}]...
|
[{"post_id": 81988, "ts": "202 [{"post_id": 81988, "ts": "2026-10-23T10:58:15Z", "hours": 0.2833, "text": "Made the poster for my game!! And I think that’s it! SOOOOO see you guys in my ship 4~"}, {"post_id": 81984, "ts": "2026-10-23T10:21:13Z", "hours": 1.0364, "text": "Sound effects!!!! I COMPLETELY forgot I wanted to add this so thanks to the feedback I got, it’s been added! Also the timer is more dynamic now (got a lil bit more charm >_<) I think I’ll have a think a thonk about adding stuff I want before I full send it and ship it again (I only worked on it for 2 hours so I’m not sure If i want to but I also don’t have alot of stuff to do :-;)"}, {"post_id": 81795, "ts": "2026-10-22T15:31:39Z", "hours": 1.2072, "text": "Woah! I’m back quicker than expected! And I’m here for new fonts! The feedback was honestly great! So I guess I’m back to working on this!~ (I mean might as well, stardance is ending soon gotta end with a bang!) So… see you soon!~"}, {"post_id": 81123, "ts": "2026-10-19T23:47:54Z", "hours": 4.8461, "text": "The final update before ship #3! The main reason I came back to update this game has finally been added!~ Powerups!!!! Three right now~ A skip, a time freeze and a heart return! This turned out looking better than I thought it would so I’m satisfied!~ >_<. Anyways, for me, I don’t think there’s anymore additions I would add for this game~ but there might be after the ship, hehe~ (oh and all other minigames got a difficulty adjustor now so have fun!~)"}, {"post_id": 79830, "ts": "2026-10-15T15:47:09Z", "hours": 3.2686, "text": "Another new gamemode!!! So this probably is gonna be the last gamemode for now cuz I wanna get into the other stuff like add difficulty!!~~ Only the prologue has the difficulty added but I’ll prepare the rest soon!~ Til then bai bai"}, {"post_id": 79294, "ts": "2026-10-13T11:14:51Z", "hours": 2.3611, "text": "2 new minigame! ANDDD a hugeee UI update for the playtesting area!~ Man I should have playtesting long ago cuz I can playtest my minigames so much easier now, so I gotta thank whoever rated my project to give me that idea!~ (I will never know who you are ;-;) Anyways, back to working~"}, {"post_id": 78680, "ts": "2026-10-11T09:00:13Z", "hours": 1.2086, "text": "Playtesting!!! From the feedback I got from my ship, I added a lil playtest area where you can train and figure out how to play each minigame!!!! Hehe~"}, {"post_id": 78641, "ts": "2026-10-11T04:56:17Z", "hours": 1.9064, "text": "Overhaul! Three things got changed this update~ The first is the traveler’s walking animation, the button minigame and the collecting planets minigame! Also added more ways to move around other than arrow keys! Now you can use WASD arrow keys ctrl and space bar for up and down also up arrow keys and W key allows you to jump now!~ Okieee that’s all~ PS there’s still errors in that overhaul of the first minigame I ever made, I’ll fix it uhhhh soon >:3"}, {"post_id": 60038, "ts": "2026-09-02T04:36:58Z", "hours": 0.7608, "text": "Woah! I’m back! It’s been a while!~ I had so many new ideas for this game but I think the first think I wanna change is the timer, it’s weird that it’s a text instead of a visual cue so I changed it! I probably have to change it again someday but for now, it’s looking pretty cool!~"}, {"post_id": 50984, "ts": "2026-08-20T13:57:32Z", "hours": 1.3917, "text": "Refined mode getting the love! Two minigames added just for refined mode! And this will be the last devlog I’ll be doing in a while since I’ll be going out and therefore I think It’s finally time for ship #2!!!! Refined mode has 3 minigames, 2 brand new ones and 1 returning~. I’ll keep this short, I’ll continue to update the game for as long as I have the ideas and as long as I wish to continue, the minigames will not stop flowing!~~"}, {"post_id": 50343, "ts": "2026-08-19T14:53:15Z", "hours": 3.3358, "text": "Hello! More, MORE, MORE!!!! Another minigame has been added!~ and not just that, infinity gamemode has been made as well!!! It’s unlocked by having more than 25 minigames played (which can be checked in the achievements tab, told you I was gonna use it :3) with a resounding total of 10 minigames currently, infinity mode is actually pretty fun!~ Now onto the next step on polishing this game!!(or adding more minigames, depending on which one sounds more fun at that time >:3) (oh and I added sounds and music to it too cuz it started to be a bit weird with none, credits all in the readme :p) (another note~ Infinity does go on infinitely, I just wanted it to stop at 10 instead of slowly waiting for all 5 lives to be lost, sowwyyy)"}, {"post_id": 49270, "ts": "2026-08-17T23:43:00Z", "hours": 4.0203, "text": "Minigame! Minigame! Minigame! 3 (YES THREE) new minigames have been added to the stranded gamemode and!! The win and lose screen for stranded has been implemented as well!~ I’m starting to get the hang of how godot is handled and honestly, It’s doing pretty good~ what else am I missing….. OH YEAH! Achievements! A save system was added so that I can record your progress in terms of minigames played!! I wanted to do this so there’s an easier way for me to implement special gamemodes in the future!~~"}, {"post_id": 47888, "ts": "2026-08-16T04:44:16Z", "hours": 2.145, "text": "Another devlog, another minigame! Today is a little bit special because I have added gamemodes!!!! (wooo <3). My plan is that when you achieved something special, a new gamemode will appear and you can play more minigames and have that feeling of adrenaline when you go finding secrets. There isn’t a lot planned yet but hopefully I’ll make at least 4 gamemodes, currently only 2 are available, prologue and stranded! Prologue is the gamemode everyone starts with and stranded is obtained by losing the game for the first time but for now it’s unlocked for everybody!! <3 be warned tho, there’s only one minigame there, levers! (Scaryyyy~) ps. the ending is supposed to be different by I haven’t thought of anything yet so it’s a WIP :p"}, {"post_id": 47347, "ts": "2026-08-15T07:14:06Z", "hours": 3.9703, "text": "Another minigame appears! With some cool transitions with it! The infamous memory game has now been added into the game! Now bringing the total to 4 minigames, I had to redesign almost every single minigame to make the transitions work but man, I think it was worth it! I’m slowing getting the hang of Godot (especially Tweening, man I want that in Unity ;-;)"}, {"post_id": 46659, "ts": "2026-08-14T02:44:35Z", "hours": 1.5992, "text": "New title! New minigame! New fixes! With my knowledge of unity, I wanted to see how far I can go without any tutorials whatsoever (I did read the documentations provided tho) and man a lot of my ability was able to be transferred to Godot too, the biggest impact was definitely instantiate which I already used on the second minigame but it’s used even more in minigame 3, dodging meteors!"}, {"post_id": 45662, "ts": "2026-08-12T09:18:14Z", "hours": 6.8956, "text": "A new chapter begins! I’ve been using unity all my life and I now, I’ll conquer a new sea; Godot!~ Time to rally myself and set sail on making the best minigame game ever!!!!!! (Yea I have no idea what I’m doing but hey here’s the main character. Their name is Kount)"}]...
|
Title: The most epic minigame game ever made by @T Title: The most epic minigame game ever made by @Tyo | Stardance
Devlogs:
A new chapter begins! I’ve been using unity all my life and I now, I’ll conquer a new sea; Godot!~ Time to rally myself and set sail on making the best minigame game ever!!!!!! (Yea I have no idea what I’m doing but hey here’s the main character. Their name is Kount)
New title! New minigame! New fixes! With my knowledge of unity, I wanted to see how far I can go without any tutorials whatsoever (I did read the documentations provided tho) and man a lot of my ability was able to be transferred to Godot too, the biggest impact was definitely instantiate which I already used on the second minigame but it’s used even more in minigame 3, dodging meteors!
Another minigame appears! With some cool transitions with it! The infamous memory game has now been added into the game! Now bringing the total to 4 minigames, I had to redesign almost every single minigame to make the transitions work but man, I think it was worth it! I’m slowing getting the hang of Godot (especially Tweening, man I want that in Unity ;-;)
Another devlog, another minigame! Today is a little bit special because I have added gamemodes!!!! (wooo <3). My plan is that when you achieved something special, a new gamemode will appear and you can play more minigames and have that feeling of adrenaline when you go finding secrets. There isn’t a lot planned yet but hopefully I’ll make at least 4 gamemodes, currently only 2 are available, prologue and stranded! Prologue is the gamemode everyone starts with and stranded is obtained by losing the game for the first time but for now it’s unlocked for everybody!! <3 be warned tho, there’s only one minigame there, levers! (Scaryyyy~) ps. the ending is supposed to be different by I haven’t thought of anything yet so it’s a WIP :p
Minigame! Minigame! Minigame! 3 (YES THREE) new minigames have been added to the stranded gamemode and!! The win and lose screen for stranded has been implemented as well!~ I’m starting to get the hang of how godot is handled and honestly, It’s doing pretty good~ what else am I missing….. OH YEAH! Achievements! A save system was added so that I can record your progress in terms of minigames played!! I wanted to do this so there’s an easier way for me to implement special gamemodes in the future!~~
Hello! More, MORE, MORE!!!! Another minigame has been added!~ and not just that, infinity gamemode has been made as well!!! It’s unlocked by having more than 25 minigames played (which can be checked in the achievements tab, told you I was gonna use it :3) with a resounding total of 10 minigames currently, infinity mode is actually pretty fun!~ Now onto the next step on polishing this game!!(or adding more minigames, depending on which one sounds more fun at that time >:3) (oh and I added sounds and music to it too cuz it started to be a bit weird with none, credits all in the readme :p) (another note~ Infinity does go on infinitely, I just wanted it to stop at 10 instead of slowly waiting for all 5 lives to be lost, sowwyyy)
Refined mode getting the love! Two minigames added just for refined mode! And this will be the last devlog I’ll be doing in a while since I’ll be going out and therefore I think It’s finally time for ship #2!!!! Refined mode has 3 minigames, 2 brand new ones and 1 returning~. I’ll keep this short, I’ll continue to update the game for as long as I have the ideas and as long as I wish to continue, the minigames will not stop flowing!~~
Woah! I’m back! It’s been a while!~ I had so many new ideas for this game but I think the first think I wanna change is the timer, it’s weird that it’s a text instead of a visual cue so I changed it! I probably have to change it again someday but for now, it’s looking pretty cool!~
Overhaul! Three things got changed this update~ The first is the traveler’s walking animation, the button minigame and the collecting planets minigame! Also added more ways to move around other than arrow keys! Now you can use WASD arrow keys ctrl and space bar for up and down also up arrow keys and W key allows you to jump now!~ Okieee that’s all~ PS there’s still errors in that overhaul of the first minigame I ever made, I’ll fix it uhhhh soon >:3
Playtesting!!! From the feedback I got from my ship, I added a lil playtest area where you can train and figure out how to play each minigame!!!! Hehe~
2 new minigame! ANDDD a hugeee UI update for the playtesting area!~ Man I should have playtesting long ago cuz I can playtest my minigames so much easier now, so I gotta thank whoever rated my project to give me that idea!~ (I will never know who you are ;-;) Anyways, back to working~
Another new gamemode!!! So this probably is gonna be the last gamemode for now cuz I wanna get into the other stuff like add difficulty!!~~ Only the prologue has the difficulty added but I’ll prepare the rest soon!~ Til then bai bai
The final update before ship #3! The main reason I came back to update this game has finally been added!~ Powerups!!!! Three right now~ A skip, a time freeze and a heart return! This turned out looking better than I thought it would so I’m satisfied!~ >_<. Anyways, for me, I don’t think there’s anymore additions I would add for this game~ but there might be after the ship, hehe~ (oh and all other minigames got a difficulty adjustor now so have fun!~)
Woah! I’m back quicker than expected! And I’m here for new fonts! The feedback was honestly great! So I guess I’m back to working on this!~ (I mean might as well, stardance is ending soon gotta end with a bang!) So… see you soon!~
Sound effects!!!! I COMPLETELY forgot I wanted to add this so thanks to the feedback I got, it’s been added! Also the timer is more dynamic now (got a lil bit more charm >_<) I think I’ll have a think a thonk about adding stuff I want before I full send it and ship it again (I only worked on it for 2 hours so I’m not sure If i want to but I also don’t have alot of stuff to do :-;)
Made the poster for my game!! And I think that’s it! SOOOOO see you guys in my ship 4~
Ships:
WarioWare! is one of those games that you definitely have seen before or a parody of it. It’s a series of minigames that a person has to do in quick succession, every success increases the hype and decreases the time on the clock My version is thanks to the stardance warioware challenge and it’s entirely based on a random story I got in my sleep so far there’s only 2 minigames, catch the planets and find the aliens(very good names I know </3) This was the first time I’ve ever tried using Godot (previously I used unity) but other than the tricky animation handling (actually took me hours to figure it out), it was all smooth sailing and I’m happy to say I have a new game engine under my belt!
The Most Epic Minigame Game Ever!!! Is a project I been wanting to make for ages, a frenzy minigame where time and control is against you and the only person you can blame is truly yourself. I want this game to not just be a really good game to play and beat your own high score but to also incorporate a story that can be understood even with the almost to none language said. Overall, I really enjoyed making this game! And I can now finally said I use BOTH Unity and Godot game engine!~
The Most Epic Minigame Game Ever! Version 3 is out!~ The reason I came back to this is cuz I wanted to fix the stuff from the feedback and also add something I wanted to add for a while~. So here are all the changes!~: Reworks!: -The first minigame I made has been reworked to be collecting planets with your airship instead of walking and jumping around! -The button minigame has the artwork changed to match the other minigames more! -The timer is now more visual instead of a number! Additions! <3: New minigames, gamemode and difficulties!; Added 3 new minigames and along with it their gamemode, hide out! Also beating a gamemode now unlocks a harder difficulty for that gamemode and beating that introduces the HARDEST gamemode!~~ SHOPPPPP: now every minigame played will award you with a coin that you can spend in the shop~ to make your life easier~ Welp, I think that’s all. See you guys!~ (Will I update this game more? Maybe, maybe not~ Hehe~)
WOAH, I’M BACK HERE ALREADY??!? Honestly, the feedback this time around was insane and gave me some great pointers so I just had to add it in for that satisfaction (also 40 hours looks beautiful!~ Hehe~) So here are the changes!!: FONTSS: Added a brand new custom font to match the artstyle SFX: MORE SOUND EFFECTS for all the minigames OPTIMIZE: Added more optimizations so that there would be no random lag spikes from some of the games TIMER ANIMATIONS: The timer now also has sound effects and animations that becomes faster and faster when time is about to finish so that the player have a visual and sound cue of their time running out. I think…. that’s all…..? (genuinely IDK cuz sometimes the feedback is just too good to not do it :p)...
|
1793123430.8658633
|
1793209830.8658633
|
|
47199
|
ScholarPath by @ArnavKumar | Stardance
|
ArnavKumar
|
1
|
40.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T20:31:09Z", "hours": 40.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built ScholarPath, an app that helps international students find scholarships/colleges and gives them an AI counselor (Nova) to help with essays and deadlines. Hardest part was actually a bug hunt: some users weren’t getting their verification email, and it turned out my site’s login setup was accidentally sending people to localhost instead of the real site lol. Took a while to track down but felt really good once I found it and confirmed a real signup actually worked end to end. Proud I didn’t just patch it and hope, I checked the logs and proved it. Try it at scholarpaths.org, both email and Google sign-in work now!", "repo": "https://github.com/thedude1215/Student_Counselor", "demo": "https://scholarpaths.org/"}]...
|
[{"post_id": 45983, "ts": "202 [{"post_id": 45983, "ts": "2026-08-12T20:25:31Z", "hours": 39.5292, "text": "I am working on a AI admissions counseling"}]...
|
Title: ScholarPath by @ArnavKumar | Stardance
Dev Title: ScholarPath by @ArnavKumar | Stardance
Devlogs:
I am working on a AI admissions counseling
Ships:
Built ScholarPath, an app that helps international students find scholarships/colleges and gives them an AI counselor (Nova) to help with essays and deadlines. Hardest part was actually a bug hunt: some users weren’t getting their verification email, and it turned out my site’s login setup was accidentally sending people to localhost instead of the real site lol. Took a while to track down but felt really good once I found it and confirmed a real signup actually worked end to end. Proud I didn’t just patch it and hope, I checked the logs and proved it. Try it at scholarpaths.org, both email and Google sign-in work now!...
|
1793072954.7728164
|
1793159354.7728164
|
|
55918
|
gameswar by @Mariyalayathinsrikrishna | Stardance
|
Mariyalayathinsrikrishna
|
1
|
40.0
|
411
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T11:02:47Z", "hours": 40.0, "multiplier": 10.18, "payout": 411, "blessing": "neutral", "text": "I learned how to design a futuristic space game interface. I learned how to display important information like score, health, level, coins, and experience. I understood how buttons such as Menu, Pause, and Sound can improve game control. I also learned how visual effects, spaceships, enemies, and animations create an attractive game environment. Overall, this project helped me improve my skills in game UI design and web development.", "repo": "https://github.com/yathin-srikrishna/gamewar", "demo": "https://gamewar-seven.vercel.app/"}]...
|
[{"post_id": 63470, "ts": "202 [{"post_id": 63470, "ts": "2026-09-07T10:47:23Z", "hours": 7.3222, "text": "finally my golden space war game is ready to launch make a try and cross my highest record all suggestions and improvements are accepted"}, {"post_id": 62330, "ts": "2026-09-05T17:10:52Z", "hours": 7.2111, "text": "Implemented alerts system that warns when health is less than 40% and fixed first option in rewards for more gameplay"}, {"post_id": 60978, "ts": "2026-09-03T17:39:09Z", "hours": 5.4506, "text": "Implemented mobile responsive joystick that responds with touch the layout is flexible with screen size and grid system for smooth and interactive experience"}, {"post_id": 60446, "ts": "2026-09-02T19:39:16Z", "hours": 6.0614, "text": "This project is a space shooting game where the player controls a spaceship and shoots incoming enemy objects. The game includes enemy targets, bullets, stars, and player movement, creating an interactive arcade-style gaming experience."}, {"post_id": 59622, "ts": "2026-09-01T15:19:30Z", "hours": 6.5306, "text": "a Space War 180° arcade-style game where the player controls a spaceship using WASD/arrow interface of the game"}, {"post_id": 58662, "ts": "2026-08-31T04:49:16Z", "hours": 7.8072, "text": "start my game project it as taking a shape step by step excited to complete as soon as possible"}]...
|
Title: gameswar by @Mariyalayathinsrikrishna | Sta Title: gameswar by @Mariyalayathinsrikrishna | Stardance
Devlogs:
start my game project it as taking a shape step by step excited to complete as soon as possible
a Space War 180° arcade-style game where the player controls a spaceship using WASD/arrow interface of the game
This project is a space shooting game where the player controls a spaceship and shoots incoming enemy objects. The game includes enemy targets, bullets, stars, and player movement, creating an interactive arcade-style gaming experience.
Implemented mobile responsive joystick that responds with touch the layout is flexible with screen size and grid system for smooth and interactive experience
Implemented alerts system that warns when health is less than 40% and fixed first option in rewards for more gameplay
finally my golden space war game is ready to launch make a try and cross my highest record all suggestions and improvements are accepted
Ships:
I learned how to design a futuristic space game interface. I learned how to display important information like score, health, level, coins, and experience. I understood how buttons such as Menu, Pause, and Sound can improve game control. I also learned how visual effects, spaceships, enemies, and animations create an attractive game environment. Overall, this project helped me improve my skills in game UI design and web development....
|
1792878466.0110948
|
1793742466.0110948
|
|
39298
|
Homemade Rubik's Cube Timer by @Nasko | Starda Homemade Rubik's Cube Timer by @Nasko | Stardance...
|
Nasko
|
0
|
39.97
|
0
|
[]
|
[{"post_id": 71831, "ts": "202 [{"post_id": 71831, "ts": "2026-09-21T16:52:08Z", "hours": 4.945, "text": "Voltage Error I crunched another ~5 Hours trying to fix the original system and set up the new top system. I was searching for the source of the error that had dropped the voltage on the breadboard rails, and after inspecting every cable and rail, I found out that the problem was caused by the ESP32 sending packets too frequently, thus creating a disturbance in the voltage. I got around that problem by increasing the voltage until the system turned on, which, in my case, meant that because I increased the contrast a lot, the event was turning a row of empty squares into two rows. This was different from the fast flashing problem, and it was really hard to detect. Top Circuit I also assembled the other circuit after I fixed the first one, and I had some troubleshooting with the ESP-NOW connection and the screen receiving the low voltage. I broke a few solder joints along the way, and I had to combine the male-to-male and female-to-female cables to get the necessary male-to-female cable, which helped me identify some of the faulty cables that had been hiding."}, {"post_id": 71107, "ts": "2026-09-20T09:39:45Z", "hours": 5.7058, "text": "For the past ~5.45 hours, I tried assembling parts once again, but I failed multiple times due to either one of my solders being broken, or ESP32 having power issues. After a long time of fixing, I gave up on using the power source while debugging, and I got the circuit to work on direct USB connection, so I narrowed it down to a problem caused by the battery, and my measurements with the multimeter confirmed that some of the voltage I gave was missing, thus causing ESP32 to rapidly open and close, and for blank white slots to appear on the LCD. I also wrote the code for the top part, and I got the MAC addresses of the ESP32s, so they can communicate now. Another thing to mention is that even in the slots of the power rail of the breadboard, the missing voltage is seen, so I am going to take another approach, and test elements one after another, but not individually since they all work individually."}, {"post_id": 35117, "ts": "2026-07-26T10:51:34Z", "hours": 0.6231, "text": "I made some more progress on writing the code for the top ESP32. I mentioned in the Stasis that I will be using the ESP-NOW communication system to display the time as the main case calculates it. I now made a dummy MAC address and changed the message structure to send the data via direct text rather than unorganised bytes and an on/off signal."}, {"post_id": 34202, "ts": "2026-07-24T18:36:08Z", "hours": 28.6933, "text": "I came here after Stasis closed while doing my project, so feel free to look at my project details and devlogs there."}]...
|
Title: Homemade Rubik's Cube Timer by @Nasko | Title: Homemade Rubik's Cube Timer by @Nasko | Stardance
Devlogs:
I came here after Stasis closed while doing my project, so feel free to look at my project details and devlogs there.
I made some more progress on writing the code for the top ESP32. I mentioned in the Stasis that I will be using the ESP-NOW communication system to display the time as the main case calculates it. I now made a dummy MAC address and changed the message structure to send the data via direct text rather than unorganised bytes and an on/off signal.
For the past ~5.45 hours, I tried assembling parts once again, but I failed multiple times due to either one of my solders being broken, or ESP32 having power issues. After a long time of fixing, I gave up on using the power source while debugging, and I got the circuit to work on direct USB connection, so I narrowed it down to a problem caused by the battery, and my measurements with the multimeter confirmed that some of the voltage I gave was missing, thus causing ESP32 to rapidly open and close, and for blank white slots to appear on the LCD. I also wrote the code for the top part, and I got the MAC addresses of the ESP32s, so they can communicate now. Another thing to mention is that even in the slots of the power rail of the breadboard, the missing voltage is seen, so I am going to take another approach, and test elements one after another, but not individually since they all work individually.
Voltage Error I crunched another ~5 Hours trying to fix the original system and set up the new top system. I was searching for the source of the error that had dropped the voltage on the breadboard rails, and after inspecting every cable and rail, I found out that the problem was caused by the ESP32 sending packets too frequently, thus creating a disturbance in the voltage. I got around that problem by increasing the voltage until the system turned on, which, in my case, meant that because I increased the contrast a lot, the event was turning a row of empty squares into two rows. This was different from the fast flashing problem, and it was really hard to detect. Top Circuit I also assembled the other circuit after I fixed the first one, and I had some troubleshooting with the ESP-NOW connection and the screen receiving the low voltage. I broke a few solder joints along the way, and I had to combine the male-to-male and female-to-female cables to get the necessary male-to-female cable, which helped me identify some of the faulty cables that had been hiding....
|
1792767287.1278126
|
1793372087.1278126
|
|
4859
|
Nook by @Eleco | Stardance
|
Eleco
|
1
|
39.85
|
57
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T00:24:19Z", "hours": 5.0, "multiplier": 10.72, "payout": 57, "blessing": "neutral", "text": "I have made the MVP (Just the skeleton) of a Focus/Study app Called Nook! I really hope this will get further more developed, and aiming to work on it alongside YC, and here in StarDance, I will activelly share and blog about my progress over the app, and when i’ll finalize the design and the underlying engineering of the way I’ll treat the problem of distraction and also “Working with understimulation” unlike Duolingo or other study apps that rewards you with small dopamine bursts, this app will focus solelly on self fulfilment, deep focus and also a niche community where students and builders could get to connect and work together too!", "repo": "https://github.com/adamsaou/Nook", "demo": "https://nook-study.vercel.app"}]...
|
[{"post_id": 28847, "ts": "202 [{"post_id": 28847, "ts": "2026-07-15T12:04:56Z", "hours": 22.7239, "text": "So Hello stardance! These days have been GRUELLING, and honestly I post right now because for the past month, i was not only working on Nook, but carefully using every single feedback from the rating as seriously as possible :D Updates: -Was accepted as the only teenager in Morocco onto the biggest AI hackathon in the COUNTRY called “RallyAI” -I got myself a Co-founder on this project, since after careful consideration, I realised very few people actually TRY to tackle the problem of ‘Focus’ in a wholistic point of view, and I am here for it! -Also (sadly) I started Using AI more for developpement, since the project will be a BIG monorepo project, and also to accelerate the rate of not only deliverring features, but also trying to make this and official solution to focus in our world. This might seem very “delusional” and “unrealistic” But I really DO believe on it working, not for me as a project or a potential start-up, but as a solution in our real world :D Also, yes VOICE ROOMS ARE HOSTED VIA MY OWN TURN SERVERS :D (totally didn’t spend days fixing my laptops, and also learning about WebRTC, and also configuring both laptops to ACTUALLY stay alive lol) Also, again, Thanks you Stardance for letting me have a chance to build something that MATTERS <3 (Cool funny pic where i was being interviewed :p )"}, {"post_id": 9844, "ts": "2026-06-16T09:32:58Z", "hours": 3.8489, "text": "After a LOT of hustle and bustle, I present to you: Nook’s (current) TURN servers! Also while researching about WebRTC and Peer-to-Peer connections, I found out i can just host my own TURN servers locally, and honestly, they are doing their job well! I tested with a lot of friends and realised these bad boys can support approximately more than 1000-2000 people in different voice rooms :O Crazy for real, now onto working to finish off the MVP and also making new changes, also refining the source code’s licence, then after the MVP is made, I will work on cross-platform support!"}, {"post_id": 6214, "ts": "2026-06-10T13:15:01Z", "hours": 5.8294, "text": "YES, TOOK ME 5 HOURS FOR MY 1ST LAPTOP TO WORK AND FINALLY BOOTED Xubuntu ON IT Also for info, I am currently configuring 2 of my old Laptops to be the server for my Website, and in the future an entire software Ecosystem for my project called “Nook”! The specs of the Laptops of my “Pheonix Server”: HP ProBook 640 G1: CPU: i5-4300M 2.60Ghz RAM: 8gb GPU: Integrated Intel HD graphics 4600 Storage: 250gb -LG A530: CPU: i7-2630QM 2.0Ghz RAM: 6gb GPU: NVIDIA GeForce dedicated AND a GT 555M Also I will name the “Pheonix x” of each ‘new’ additions to my (future) servers will be called in order of which on was setten up :D"}, {"post_id": 4405, "ts": "2026-06-07T18:41:39Z", "hours": 2.4506, "text": "Finally made the voice rooms feature on Nook 😍 Now I will keep on testing locally, to keep fishing for potential bugs, and also try to tackle optimization and also stress test that feature 👍"}, {"post_id": 3099, "ts": "2026-06-06T00:20:34Z", "hours": 2.7864, "text": "Nook is FINALLY and offcially alive. Spent this last session locking down the core framework because I’m tired of productivity apps that treat your brain like a slot machine with streaks and badges. Built this for pure understimulation and fast starts. Next.js + Supabase stack is running smoothly. Check the live demo link! https://nook-study.vercel.app"}, {"post_id": 2244, "ts": "2026-06-04T17:03:09Z", "hours": 2.5883, "text": "Hello StarDance! I am currently working on a simple student app, generic right? Well, Nook is different, why you may ask? Because I am actively designing it in such way that it will make the essence of studying and working on “something” more productive and LESS stimulating; unlike for example DuoLingo, where small dopamine bursts and streaks, and an “addictive” based design to keep you engaged and dependent on their app, my website (even app in the future) is going to focus on accountability, responsibility, calm and the social essence! So far, I am still developing the MVP and actively working on developing a core theme of the website! Later, I would love to get feedback on usage and also how can I improve it Also thank you StarDance for this wonderful opportunity to get creative, and create"}]...
|
Title: Nook by @Eleco | Stardance
Devlogs:
Hello Title: Nook by @Eleco | Stardance
Devlogs:
Hello StarDance! I am currently working on a simple student app, generic right? Well, Nook is different, why you may ask? Because I am actively designing it in such way that it will make the essence of studying and working on “something” more productive and LESS stimulating; unlike for example DuoLingo, where small dopamine bursts and streaks, and an “addictive” based design to keep you engaged and dependent on their app, my website (even app in the future) is going to focus on accountability, responsibility, calm and the social essence! So far, I am still developing the MVP and actively working on developing a core theme of the website! Later, I would love to get feedback on usage and also how can I improve it Also thank you StarDance for this wonderful opportunity to get creative, and create
Nook is FINALLY and offcially alive. Spent this last session locking down the core framework because I’m tired of productivity apps that treat your brain like a slot machine with streaks and badges. Built this for pure understimulation and fast starts. Next.js + Supabase stack is running smoothly. Check the live demo link! https://nook-study.vercel.app
Finally made the voice rooms feature on Nook 😍 Now I will keep on testing locally, to keep fishing for potential bugs, and also try to tackle optimization and also stress test that feature 👍
YES, TOOK ME 5 HOURS FOR MY 1ST LAPTOP TO WORK AND FINALLY BOOTED Xubuntu ON IT Also for info, I am currently configuring 2 of my old Laptops to be the server for my Website, and in the future an entire software Ecosystem for my project called “Nook”! The specs of the Laptops of my “Pheonix Server”: HP ProBook 640 G1: CPU: i5-4300M 2.60Ghz RAM: 8gb GPU: Integrated Intel HD graphics 4600 Storage: 250gb -LG A530: CPU: i7-2630QM 2.0Ghz RAM: 6gb GPU: NVIDIA GeForce dedicated AND a GT 555M Also I will name the “Pheonix x” of each ‘new’ additions to my (future) servers will be called in order of which on was setten up :D
After a LOT of hustle and bustle, I present to you: Nook’s (current) TURN servers! Also while researching about WebRTC and Peer-to-Peer connections, I found out i can just host my own TURN servers locally, and honestly, they are doing their job well! I tested with a lot of friends and realised these bad boys can support approximately more than 1000-2000 people in different voice rooms :O Crazy for real, now onto working to finish off the MVP and also making new changes, also refining the source code’s licence, then after the MVP is made, I will work on cross-platform support!
So Hello stardance! These days have been GRUELLING, and honestly I post right now because for the past month, i was not only working on Nook, but carefully using every single feedback from the rating as seriously as possible :D Updates: -Was accepted as the only teenager in Morocco onto the biggest AI hackathon in the COUNTRY called “RallyAI” -I got myself a Co-founder on this project, since after careful consideration, I realised very few people actually TRY to tackle the problem of ‘Focus’ in a wholistic point of view, and I am here for it! -Also (sadly) I started Using AI more for developpement, since the project will be a BIG monorepo project, and also to accelerate the rate of not only deliverring features, but also trying to make this and official solution to focus in our world. This might seem very “delusional” and “unrealistic” But I really DO believe on it working, not for me as a project or a potential start-up, but as a solution in our real world :D Also, yes VOICE ROOMS ARE HOSTED VIA MY OWN TURN SERVERS :D (totally didn’t spend days fixing my laptops, and also learning about WebRTC, and also configuring both laptops to ACTUALLY stay alive lol) Also, again, Thanks you Stardance for letting me have a chance to build something that MATTERS <3 (Cool funny pic where i was being interviewed :p )
Ships:
I have made the MVP (Just the skeleton) of a Focus/Study app Called Nook! I really hope this will get further more developed, and aiming to work on it alongside YC, and here in StarDance, I will activelly share and blog about my progress over the app, and when i’ll finalize the design and the underlying engineering of the way I’ll treat the problem of distraction and also “Working with understimulation” unlike Duolingo or other study apps that rewards you with small dopamine bursts, this app will focus solelly on self fulfilment, deep focus and also a niche community where students and builders could get to connect and work together too!...
|
1793087600.2877192
|
1793174000.2877192
|
|
67480
|
Swordigo_Mario (BETA) by @IsoVoir | Stardance
|
IsoVoir
|
1
|
39.85
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-16T12:54:28Z", "hours": 37.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I made a beta version of my own 2D fantasy adventure game. I worked on the environments, different pathways, backgrounds, level design, characters and other parts of the game. I tried to make it feel like a real adventure game, where the player can explore different places and face enemies. It is not perfect right now, but I made it with a lot of effort and time. What was challenging? The most challenging part for me was making the pathways and designing the levels. I struggled a lot to get the terrain and backgrounds looking the way I wanted. Sometimes things didn’t work as I expected, and I had to try again and again. Connecting the different parts of the game and fixing enemy attack and behaviour errors was also difficult for me. What are you proud of? I am proud that I didn’t give up even when things were not working properly. I spent a lot of time preparing the different parts of the game and trying to make everything work together. I used AI only for help with fixing some hostile mob behaviour and attack errors, and for converting some images to match the game’s art theme. I wanted to do the main work and understand what I was making instead of just getting the whole game generated. What should people know before trying my project? This is only the beta version, so there are still some flaws and things that need more work. I already know about many of them, and I have plans to improve them in the next updates. For now, I wanted to finish a playable version and share what I have made instead of waiting forever for everything to become perfect. I am going to work on better level design, more improvements and fixing the remaining issues in future updates. Please try my project and share your feedback. And keep an eye on my profile, because I will be working on improving the game in the next updates!", "repo": "https://github.com/kumarishan0825/SwordigoMario", "demo": "https://ishan0825.itch.io/swordigo-mario-beta-version"}]...
|
[{"post_id": 80611, "ts": "202 [{"post_id": 80611, "ts": "2026-10-18T09:30:19Z", "hours": 2.8489, "text": "All the AI art/asset I used in my game has been removed, and my code is now clean totally and the obstacles and character designing i done by my friend so that is why characters and obstacles were nothing used via seeking help with AI and the CODE of this game is really messing part where I dont took help of any kind of AI prompting, I learned and implement every single thing and this took me that much time but yeah without asset prompting and by my own efforts this game is literally took me 28 hours and For asset generation time extends 11 hours more, I honestly confirms my all the working"}, {"post_id": 80127, "ts": "2026-10-16T09:37:30Z", "hours": 6.7131, "text": "Final Devlog: I am so glad that my game is now playable and yeah it have some issues with animations of mobs but it is beta version next time i update it soon…. (1) Adding few Hostile mobs and bosses (2) Adding Winning and Death Scene (3) Fixing 239 errors while coding the nature of mobs but i got too many errors so I used claude AI to examine code that my code were faulty at which point (4)It have few issues like some bugs and some animation problem but i am unable to fix it so I am done here but overall I made it atleast good enough to explore and due to limiting resources and assets I am unable to do the music and sfx works but yeah it looks damn good"}, {"post_id": 79749, "ts": "2026-10-15T08:40:10Z", "hours": 6.2847, "text": "Devlog 10: An amazing timespent on the completion of my level “Castle wars” with its total stages development furnishment completed and only the area node to connect with player and it is finally become playable . , Only things left:- add mobs and bosses, some bizarre obstacles to interact, some beautiful animations, winning and losing scene, settings layout and also…. “volcanic end” development primarily under development and after a update i would publish"}, {"post_id": 79267, "ts": "2026-10-13T08:28:16Z", "hours": 3.2197, "text": "Devlog 9:- Plane Biome- all the stages of this level finally completed…"}, {"post_id": 79126, "ts": "2026-10-12T19:17:44Z", "hours": 2.3897, "text": "Devlog 8: “Level: Plane Biome” all 3 stages’ Background and obstacles work has done…"}, {"post_id": 78642, "ts": "2026-10-11T04:57:54Z", "hours": 4.1283, "text": "Devlog 7: I do massive changes : (i) Added a spell casting animation, (ii) Adding Master and the interaction with my player through Area 2D node and collisionshape2d (iii) Adding damage dealt by playerwhen entity came in his collision shape and connecting it with my left mouse button (iv) Resolving 29 errors and 8 warnings…. Now my code looks very healthy and easy to approachable but from next time and there is no ai usage in code, only pathway obstacle conversion into pixelated form was done by AI, I clearly admited it , I am not going to do things at same time, first i create back ground first in all then later i do some changes according to environment"}, {"post_id": 78138, "ts": "2026-10-09T18:31:53Z", "hours": 2.4664, "text": "Devlog 6: Adding Fighting animation and fixes the debug of jumping animation"}, {"post_id": 77871, "ts": "2026-10-08T16:44:25Z", "hours": 1.8572, "text": "Devlog 5; Working on Heart Dynamics after damage"}, {"post_id": 77579, "ts": "2026-10-07T15:03:52Z", "hours": 2.8178, "text": "Devlog 4: I added the parallax effect and solved some bugs of character falling and few flaws still there but resolves soon and changes some scripts to playable format."}, {"post_id": 77394, "ts": "2026-10-06T19:46:31Z", "hours": 4.3981, "text": "Devlog 3 : I add the protagonist and animate his movement and also work on background theme parallax effect but it failed badly.. Any suggestion to place the character on the static body because mine always falls even i try to resolve but here i get tired"}, {"post_id": 77013, "ts": "2026-10-05T11:20:40Z", "hours": 2.6014, "text": "Devlog 2 : I created a Menu Screen of my game and level scene Screen . Also I implemented the Global script for automated tabs and GdScript for the Menu buttons such as start etc."}, {"post_id": 76418, "ts": "2026-10-03T14:07:09Z", "hours": 0.3294, "text": "Devlog 1 : First time I am getting introduced by Godot engine. I am so excited with this project"}]...
|
Title: Swordigo_Mario (BETA) by @IsoVoir | Stardan Title: Swordigo_Mario (BETA) by @IsoVoir | Stardance
Devlogs:
Devlog 1 : First time I am getting introduced by Godot engine. I am so excited with this project
Devlog 2 : I created a Menu Screen of my game and level scene Screen . Also I implemented the Global script for automated tabs and GdScript for the Menu buttons such as start etc.
Devlog 3 : I add the protagonist and animate his movement and also work on background theme parallax effect but it failed badly.. Any suggestion to place the character on the static body because mine always falls even i try to resolve but here i get tired
Devlog 4: I added the parallax effect and solved some bugs of character falling and few flaws still there but resolves soon and changes some scripts to playable format.
Devlog 5; Working on Heart Dynamics after damage
Devlog 6: Adding Fighting animation and fixes the debug of jumping animation
Devlog 7: I do massive changes : (i) Added a spell casting animation, (ii) Adding Master and the interaction with my player through Area 2D node and collisionshape2d (iii) Adding damage dealt by playerwhen entity came in his collision shape and connecting it with my left mouse button (iv) Resolving 29 errors and 8 warnings…. Now my code looks very healthy and easy to approachable but from next time and there is no ai usage in code, only pathway obstacle conversion into pixelated form was done by AI, I clearly admited it , I am not going to do things at same time, first i create back ground first in all then later i do some changes according to environment
Devlog 8: “Level: Plane Biome” all 3 stages’ Background and obstacles work has done…
Devlog 9:- Plane Biome- all the stages of this level finally completed…
Devlog 10: An amazing timespent on the completion of my level “Castle wars” with its total stages development furnishment completed and only the area node to connect with player and it is finally become playable . , Only things left:- add mobs and bosses, some bizarre obstacles to interact, some beautiful animations, winning and losing scene, settings layout and also…. “volcanic end” development primarily under development and after a update i would publish
Final Devlog: I am so glad that my game is now playable and yeah it have some issues with animations of mobs but it is beta version next time i update it soon…. (1) Adding few Hostile mobs and bosses (2) Adding Winning and Death Scene (3) Fixing 239 errors while coding the nature of mobs but i got too many errors so I used claude AI to examine code that my code were faulty at which point (4)It have few issues like some bugs and some animation problem but i am unable to fix it so I am done here but overall I made it atleast good enough to explore and due to limiting resources and assets I am unable to do the music and sfx works but yeah it looks damn good
All the AI art/asset I used in my game has been removed, and my code is now clean totally and the obstacles and character designing i done by my friend so that is why characters and obstacles were nothing used via seeking help with AI and the CODE of this game is really messing part where I dont took help of any kind of AI prompting, I learned and implement every single thing and this took me that much time but yeah without asset prompting and by my own efforts this game is literally took me 28 hours and For asset generation time extends 11 hours more, I honestly confirms my all the working
Ships:
What did you make? I made a beta version of my own 2D fantasy adventure game. I worked on the environments, different pathways, backgrounds, level design, characters and other parts of the game. I tried to make it feel like a real adventure game, where the player can explore different places and face enemies. It is not perfect right now, but I made it with a lot of effort and time. What was challenging? The most challenging part for me was making the pathways and designing the levels. I struggled a lot to get the terrain and backgrounds looking the way I wanted. Sometimes things didn’t work as I expected, and I had to try again and again. Connecting the different parts of the game and fixing enemy attack and behaviour errors was also difficult for me. What are you proud of? I am proud that I didn’t give up even when things were not working properly. I spent a lot of time preparing the different parts of the game and trying to make everything work together. I used AI only for help with fixing some hostile mob behaviour and attack errors, and for converting some images to match the game’s art theme. I wanted to do the main work and understand what I was making instead of just getting the whole game generated. What should people know before trying my project? This is only the beta version, so there are still some flaws and things that need more work. I already know about many of them, and I have plans to improve them in the next updates. For now, I wanted to finish a playable version and share what I have made instead of waiting forever for everything to become perfect. I am going to work on better level design, more improvements and fixing the remaining issues in future updates. Please try my project and share your feedback. And keep an eye on my profile, because I will be working on improving the game in the next updates!...
|
1793008273.8492937
|
1793872273.8492937
|
|
14074
|
A better hongChiao school management UI by @howard A better hongChiao school management UI by @howard | Stardance...
|
howard
|
0
|
39.84
|
0
|
[]
|
[{"post_id": 44111, "ts": "202 [{"post_id": 44111, "ts": "2026-08-09T17:38:34Z", "hours": 4.6897, "text": "Time for a overdue update! I have removed a few things off the app (not entirely but just no nav buttons) since the school nuked them off the server. I’m working on getting the bill from the school, with auto fetching and PDF rendering within the app. Also on this update is the new and improved (org is just broken) the credit application form :)"}, {"post_id": 31202, "ts": "2026-07-19T12:32:18Z", "hours": 2.8586, "text": "I have been hinting on the new AI chat bot features, with including the new tRPC migrations with batch APIs, and with a new fancy graph (hint hint, its included). And bringing more and new interfaces to this unpleasant system."}, {"post_id": 27069, "ts": "2026-07-12T09:12:13Z", "hours": 3.8156, "text": "The main thing here is of course the fancy new AI chat features, in this time, I built a basic AI chat setting, a basic popover chat app thingy, and adding a new random graph lib I found on Twitter."}, {"post_id": 26439, "ts": "2026-07-11T07:34:48Z", "hours": 11.2514, "text": "This change included a new change into the core backend API system, instead of using the Next.js App routing, I moved to tRPC for better and faster development, this changes are partly done by Codex. This change also brought more UX changes, including prefill usernames (on login with param ?prefill=true), better password changing, tuition fetching, and tuition discount forums. All of this without using a server side db. Later, some stuff will have error handling, currently, there is none. Like the tuition discount forums."}, {"post_id": 13799, "ts": "2026-06-22T16:54:31Z", "hours": 4.8603, "text": "Worked on the main leave component, with a kinda broken displaying history system, but the main creation system works properly with faster and much more easier to interact web UI and API. With a new dashboard, and a empty info page. With a new account password reset flow at the account page, which I got an account from a friend and tested the account changing “requirement”, which is just a popup, and its not required to use the platform, so a new toast that just tells the user to change the password."}, {"post_id": 9764, "ts": "2026-06-16T06:12:29Z", "hours": 4.3467, "text": "Add new password expiry notice. This change also includes quick access better summaries. And a few TBD features for the leave section of the app, including uploading & downloading files. with actual name fetching instead of just getting the thing from your user id."}, {"post_id": 6300, "ts": "2026-06-10T16:29:08Z", "hours": 8.0136, "text": "Worked on some API endpoints and the login/dashboard page. Before recording this devlog, the captcha error got patched and the server admins added ASP.NET request verification, which is patched quickly with a quick input component."}]...
|
Title: A better hongChiao school management UI by Title: A better hongChiao school management UI by @howard | Stardance
Devlogs:
Worked on some API endpoints and the login/dashboard page. Before recording this devlog, the captcha error got patched and the server admins added ASP.NET request verification, which is patched quickly with a quick input component.
Add new password expiry notice. This change also includes quick access better summaries. And a few TBD features for the leave section of the app, including uploading & downloading files. with actual name fetching instead of just getting the thing from your user id.
Worked on the main leave component, with a kinda broken displaying history system, but the main creation system works properly with faster and much more easier to interact web UI and API. With a new dashboard, and a empty info page. With a new account password reset flow at the account page, which I got an account from a friend and tested the account changing “requirement”, which is just a popup, and its not required to use the platform, so a new toast that just tells the user to change the password.
This change included a new change into the core backend API system, instead of using the Next.js App routing, I moved to tRPC for better and faster development, this changes are partly done by Codex. This change also brought more UX changes, including prefill usernames (on login with param ?prefill=true), better password changing, tuition fetching, and tuition discount forums. All of this without using a server side db. Later, some stuff will have error handling, currently, there is none. Like the tuition discount forums.
The main thing here is of course the fancy new AI chat features, in this time, I built a basic AI chat setting, a basic popover chat app thingy, and adding a new random graph lib I found on Twitter.
I have been hinting on the new AI chat bot features, with including the new tRPC migrations with batch APIs, and with a new fancy graph (hint hint, its included). And bringing more and new interfaces to this unpleasant system.
Time for a overdue update! I have removed a few things off the app (not entirely but just no nav buttons) since the school nuked them off the server. I’m working on getting the bill from the school, with auto fetching and PDF rendering within the app. Also on this update is the new and improved (org is just broken) the credit application form :)...
|
1792774412.160448
|
1793379212.160448
|
|
56875
|
Miku-OS by @Freaked | Stardance
|
Freaked
|
0
|
39.82
|
0
|
[]
|
[{"post_id": 64698, "ts": "202 [{"post_id": 64698, "ts": "2026-09-09T09:50:34Z", "hours": 8.8217, "text": "Devlog 14 : i have added a working terminal and also a working MIKU-FOLDERRR i mean it did take my 8hr and it need more time because its not yet completed i need to fix some bugs and i am using localstorage for folder so it will store all your files in it and even if you remove the tab your added file wont go anywhere and i used pre defined text for help and all in terminal but its connected with javascript file also so it can access localstorage so its pretty awesome but also super hard i am already tired to doing it but all over its almost completed 🔥🔥"}, {"post_id": 64092, "ts": "2026-09-08T08:30:50Z", "hours": 5.6561, "text": "Devlog 13 : i have added floating feature and and added custom icons with features and also i am thinking of adding fuctionality in my cute miku-folder where we can keep files and all its just a icon and empty window havent added fuctionality because in the process of adding coustom icons and the bar many thing broke and fixing them was so time consuming"}, {"post_id": 63718, "ts": "2026-09-07T17:33:10Z", "hours": 5.3942, "text": "Devlog 12 : i have added weather and calender and i thought of putting them side but that would be totally bad desicion because it will cover up the desktop and i really dont want miku to get hidden inside them so i made hover one so when we hover on weather or in calender it pops up calender or weather and that how it looks so awesome ✨✨"}, {"post_id": 63244, "ts": "2026-09-06T23:17:57Z", "hours": 4.9464, "text": "Devlog 11 : i have finally added search engines and OS without them will be incomplete so i thought why not add them now it was mess tbh i thought lets make a simple js script to redirect user to their browser search bar but it wont be a good experience then thats why i made a dedicated window where people can search inside of os ✨✨"}, {"post_id": 62159, "ts": "2026-09-05T12:42:18Z", "hours": 4.9128, "text": "Devlog 10 : i have added 2 apps rn one is calculator and one is notes app i am going to add more apps but its really hard when you have deal with bugs and all and also it was really hard to make this simple notes app because it structure were going out of the box and wasnt staying at one place and also this taked me 5 HOURS !! i mean seriously 5 hr but at last i have to add more apps only 2 apps are rn added so lets add more 🔥🔥"}, {"post_id": 61326, "ts": "2026-09-04T05:41:20Z", "hours": 2.1269, "text": "Devlog 9 : i have fixed all the bugs it was really tough fr but at last i have fixed it and i havent seen any new bugs or any new problem so i think its fine now it was really tiring but tbh experience was awesome and i am thinking of adding apps and features to it and will make it more good and i a thinking of adding better UX because i think it need more improvement in that and all over i need to work more 🔥🔥"}, {"post_id": 60949, "ts": "2026-09-03T17:08:48Z", "hours": 0.8392, "text": "Devlog 8: i have added terminal have to work more on it i havent added commands and all so still working on it but still for now everything is working no bug showed up till yet lets see this project is going to be awesome i want to add many more features these are just starting i will add more in it"}, {"post_id": 60901, "ts": "2026-09-03T15:32:43Z", "hours": 0.8675, "text": "Devlog 7 : i have fixed most of its bug and finally its working really good even i am amazed how well it is working and always remember “if your code works let it work because even if you touch it then it wont work” but i am glad its working lets add more features to it"}, {"post_id": 60824, "ts": "2026-09-03T13:32:14Z", "hours": 2.0494, "text": "Devlog 6 : i have added this booting screen it took me 2 hr to do it pretty tiring i made it real so that it will first load every assets before opening the OS for better UX and i will slowly add many things more to this so everything first load up before opening i am happy its working (●’◡’●)✨✨"}, {"post_id": 60724, "ts": "2026-09-03T09:02:46Z", "hours": 0.7792, "text": "Devlog 5 : finally added miku themes walpaper and also we can change it i used pinterest to get images of wallpaper and it was really tough because it need to be aligned with the screen so it wont overflow or break in smaller devices and have to do many more thing at last finally its now looking like an OS so now i am thinking of fixing the bug and make it load faster"}, {"post_id": 60560, "ts": "2026-09-02T23:49:23Z", "hours": 1.0561, "text": "Devlog 4 : i thought of having a mac book like animation but its less of a macbook more of buggy book i am tired of fixing it 😒😒"}, {"post_id": 60518, "ts": "2026-09-02T22:12:10Z", "hours": 1.1683, "text": "Devlog 2 :Upgraded my OS with wallpapers now we can change the wallpaper and i gave it a sleek and awesome look by adding little bit of some good fonts now its looking ✨✨"}, {"post_id": 60163, "ts": "2026-09-02T11:12:45Z", "hours": 1.1994, "text": "Devlog 1 : lets make a COOL OS NAMED “Miku-OS” as the name tells this os is going to be totally dedicated to “Hatsune Miku” just have created its starting going to add more things i need it to look like real OS and totally working have a lot of work lets do it !!!!🔥🔥"}]...
|
Title: Miku-OS by @Freaked | Stardance
Devlogs:
D Title: Miku-OS by @Freaked | Stardance
Devlogs:
Devlog 1 : lets make a COOL OS NAMED “Miku-OS” as the name tells this os is going to be totally dedicated to “Hatsune Miku” just have created its starting going to add more things i need it to look like real OS and totally working have a lot of work lets do it !!!!🔥🔥
Devlog 2 :Upgraded my OS with wallpapers now we can change the wallpaper and i gave it a sleek and awesome look by adding little bit of some good fonts now its looking ✨✨
Devlog 4 : i thought of having a mac book like animation but its less of a macbook more of buggy book i am tired of fixing it 😒😒
Devlog 5 : finally added miku themes walpaper and also we can change it i used pinterest to get images of wallpaper and it was really tough because it need to be aligned with the screen so it wont overflow or break in smaller devices and have to do many more thing at last finally its now looking like an OS so now i am thinking of fixing the bug and make it load faster
Devlog 6 : i have added this booting screen it took me 2 hr to do it pretty tiring i made it real so that it will first load every assets before opening the OS for better UX and i will slowly add many things more to this so everything first load up before opening i am happy its working (●’◡’●)✨✨
Devlog 7 : i have fixed most of its bug and finally its working really good even i am amazed how well it is working and always remember “if your code works let it work because even if you touch it then it wont work” but i am glad its working lets add more features to it
Devlog 8: i have added terminal have to work more on it i havent added commands and all so still working on it but still for now everything is working no bug showed up till yet lets see this project is going to be awesome i want to add many more features these are just starting i will add more in it
Devlog 9 : i have fixed all the bugs it was really tough fr but at last i have fixed it and i havent seen any new bugs or any new problem so i think its fine now it was really tiring but tbh experience was awesome and i am thinking of adding apps and features to it and will make it more good and i a thinking of adding better UX because i think it need more improvement in that and all over i need to work more 🔥🔥
Devlog 10 : i have added 2 apps rn one is calculator and one is notes app i am going to add more apps but its really hard when you have deal with bugs and all and also it was really hard to make this simple notes app because it structure were going out of the box and wasnt staying at one place and also this taked me 5 HOURS !! i mean seriously 5 hr but at last i have to add more apps only 2 apps are rn added so lets add more 🔥🔥
Devlog 11 : i have finally added search engines and OS without them will be incomplete so i thought why not add them now it was mess tbh i thought lets make a simple js script to redirect user to their browser search bar but it wont be a good experience then thats why i made a dedicated window where people can search inside of os ✨✨
Devlog 12 : i have added weather and calender and i thought of putting them side but that would be totally bad desicion because it will cover up the desktop and i really dont want miku to get hidden inside them so i made hover one so when we hover on weather or in calender it pops up calender or weather and that how it looks so awesome ✨✨
Devlog 13 : i have added floating feature and and added custom icons with features and also i am thinking of adding fuctionality in my cute miku-folder where we can keep files and all its just a icon and empty window havent added fuctionality because in the process of adding coustom icons and the bar many thing broke and fixing them was so time consuming
Devlog 14 : i have added a working terminal and also a working MIKU-FOLDERRR i mean it did take my 8hr and it need more time because its not yet completed i need to fix some bugs and i am using localstorage for folder so it will store all your files in it and even if you remove the tab your added file wont go anywhere and i used pre defined text for help and all in terminal but its connected with javascript file also so it can access localstorage so its pretty awesome but also super hard i am already tired to doing it but all over its almost completed 🔥🔥...
|
1792925406.2064188
|
1793789406.2064188
|
|
56024
|
Project Mote by @ARYABHARTA | Stardance
|
ARYABHARTA
|
0
|
39.8
|
0
|
[]
|
[{"post_id": 70446, "ts": "202 [{"post_id": 70446, "ts": "2026-09-19T06:32:58Z", "hours": 2.0519, "text": "YUP"}, {"post_id": 70399, "ts": "2026-09-19T03:17:34Z", "hours": 3.5169, "text": "Sunset looks beautiful"}, {"post_id": 67879, "ts": "2026-09-14T05:27:18Z", "hours": 2.7675, "text": "More"}, {"post_id": 65555, "ts": "2026-09-10T19:27:35Z", "hours": 0.8, "text": "More tinkring"}, {"post_id": 65515, "ts": "2026-09-10T18:25:22Z", "hours": 1.2833, "text": "More tinkring"}, {"post_id": 64211, "ts": "2026-09-08T13:25:30Z", "hours": 1.8, "text": "More Tinkring"}, {"post_id": 63866, "ts": "2026-09-07T21:08:21Z", "hours": 6.95, "text": "Extra more tinkring"}, {"post_id": 63416, "ts": "2026-09-07T07:42:05Z", "hours": 2.6519, "text": "More Tinkring and fixing"}, {"post_id": 62083, "ts": "2026-09-05T10:18:37Z", "hours": 10.2422, "text": "more tinkring and made pod designs and airflow cavity and improved the design"}, {"post_id": 59409, "ts": "2026-09-01T07:03:07Z", "hours": 3.2489, "text": "More progress made about the pod design and sensor housing"}, {"post_id": 59076, "ts": "2026-08-31T18:03:03Z", "hours": 4.4836, "text": "The initial tapered pod design risked blocking the sensor and made landings unstable. We solved this by switching to a wider-base sled design that snaps onto the frame, keeping the sensor’s field of view clear while providing a flat, stable landing surface."}]...
|
Title: Project Mote by @ARYABHARTA | Stardance
De Title: Project Mote by @ARYABHARTA | Stardance
Devlogs:
The initial tapered pod design risked blocking the sensor and made landings unstable. We solved this by switching to a wider-base sled design that snaps onto the frame, keeping the sensor’s field of view clear while providing a flat, stable landing surface.
More progress made about the pod design and sensor housing
more tinkring and made pod designs and airflow cavity and improved the design
More Tinkring and fixing
Extra more tinkring
More Tinkring
More tinkring
More tinkring
More
Sunset looks beautiful
YUP...
|
1792644585.1057873
|
1793249385.1057873
|