|
700
|
Void Strike by @JudeW | Stardance
|
JudeW
|
1
|
103.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-26T15:27:38Z", "hours": 103.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hi! The project I’ve been working on is called Void Strike. It’s a space shooter game in which the player controls a spaceship and must survive hordes of enemy waves. The reason why I chose to create this game is that I thought it would be easy. Since I’ve never really used Godot, I thought I should start simple. By the end of working on it, I can confidently say that I’ve learned at least the basics of the engine. That’s all anyway. Have Fun! Also, last night when I was trying to add it to Itch.io, I accidentally overwrote LITERALLY ALL of my files and everything, so the only thing I have left is the HTML export, and the entire project on my Godot account is just gone, and I can’t recover it, so if there is anything a little buggy, that’s probably why. And I can’t do anything about it, sorry. I just decided to ship it as it currently is instead of not shipping it at all, since I’ve already spent too much of my time on this. Once more, I’m sorry.", "repo": "https://github.com/judeweibley-cell/Void-Strike", "demo": "https://ludew.itch.io/void-strike"}]...
|
[{"post_id": 73757, "ts": "202 [{"post_id": 73757, "ts": "2026-09-25T21:24:54Z", "hours": 2.5992, "text": "Finally finished the game!!! Just posting a quick devlog before shipping. I added satellites and space junk that can fly in from the right side of your screen, which adds an extra obstacle. The only hard part about it was figuring out some physics equations with Newton’s Law of Universal Gravitation. After that, it was finished. Here’s my code if you want to look at it(GDScript): extends Node2D var item = 0 var active_node: Node2D = null var velocity := Vector2.ZERO var rotation_speed := 0.0 var spawning_enabled := true const MIN_SPAWN_TIME = 10.0 const MAX_SPAWN_TIME = 15.0 const PLANET_POSITION = Vector2(300, 1500) const GRAVITY_STRENGTH = 450000.0 @onready var timer = $Timer @onready var small_satellite = $“Small satelltite” @onready var large_satellite = $“Large satellite” @onready var scrap = $Scrap func _ready() -> void: randomize_next_spawn_time() func _process(delta: float) -> void: if active_node and active_node.visible: var vector_to_planet = PLANET_POSITION - active_node.global_position var distance = vector_to_planet.length() var direction = vector_to_planet.normalized() var gravity_force = direction * (GRAVITY_STRENGTH / (distance * distance)) velocity += gravity_force * delta active_node.global_position += velocity * delta active_node.rotation += rotation_speed * delta if active_node.global_position.x < -150: disable_active_node() func _on_timer_timeout() -> void: randomize_next_spawn_time() if not spawning_enabled: return item = randi_range(1, 3) if item == 1: pick_small() elif item == 2: pick_large() else: pick_scrap() func randomize_next_spawn_time() -> void: if timer: timer.wait_time = randf_range(MIN_SPAWN_TIME, MAX_SPAWN_TIME) timer.start() func reset_and_launch(node: Node2D): disable_active_node() small_satellite.hide() large_satellite.hide() scrap.hide() node.show() node.global_position = Vector2(600, randi_range(0, 960)) velocity = Vector2(-150, -45) rotation_speed = randf_range(-1.5, 1.5) if node.has_method(\"set_deferred\"): node.set_deferred(\"monitoring\", true) node.set_deferred(\"monitorable\", true) active_node = node func disable_active_node(): if active_node: active_node.hide() if active_node.has_method(“set_deferred”): active_node.set_deferred(“monitoring”, false) active_node.set_deferred(“monitorable”, false) func stop_spawning() -> void: spawning_enabled = false timer.stop() func start_spawning() -> void: spawning_enabled = true randomize_next_spawn_time() func pick_small(): reset_and_launch(small_satellite) func pick_large(): reset_and_launch(large_satellite) func pick_scrap(): reset_and_launch(scrap) func _on_scrap_body_entered(body: Node2D) -> void: if body.has_method(“take_damage”): body.take_damage() disable_active_node() func _on_large_satellite_body_entered(body: Node2D) -> void: if body.has_method(“take_damage”): body.take_damage() disable_active_node() func _on_small_satelltite_body_entered(body: Node2D) -> void: if body.has_method(“take_damage”): body.take_damage() disable_active_node()"}, {"post_id": 73337, "ts": "2026-09-24T22:14:34Z", "hours": 10.0881, "text": "Lately I’ve just been polishing the game. Nothing super interesting. I fixed the keybindings because when you selected a key with a long name like RightBracket, the label would expand into the button and overlap. I just made a better layout for it and made it so the text would be aligned on the right side, making it expand to the left instead. Then I worked on cleaning up some of my code since I’m planning on shipping tomorrow. Then I added a TON of polish to the main menu. I added a little rotating tip at the bottom and displayed your high score and highest wave at the top of the menu, which was easy enough. I still want to log at least two more hours, so if anyone has ideas, please let me know, because I’m out of ideas. Also, in the pictures, if the text looks sideways, it’s because I rotated it as a little animation. I think the current total for lines of code is 3005, if you’re interested, btw."}, {"post_id": 67665, "ts": "2026-09-13T20:25:53Z", "hours": 5.2769, "text": "I’ve just been working on adding some finishing touches lately, most of which include working with the new log feature. Inside of it I have three different tabs Enemies which is just a list of all of the different enemies and their stats like hp and speed. The second one is for achievements. I have ten so far, which include: First Orbit, earned by playing for 15 mins. Deep Space Transit for 30 minutes, and Time Flies for an hour. Atmosphere Cleared for getting to wave 5. Flight Lieutenant for wave 15. Squadron Leader for wave 30, and Cosmic Anomaly for 50. Just Getting Warm for killing a thousand enemies. Determined I for dying 50 times and Determined II for dying 100 times. I also added some progress bars to visually show your progress towards the achievements. For the stats menu, all I changed was adding a darker panel behind all the stats to add some detail; other than that, that’s all I did. Also, the scrolling menus were almost my downfall."}, {"post_id": 66787, "ts": "2026-09-12T17:48:29Z", "hours": 3.1139, "text": "This morning, I’ve been working on adding a statistics menu to the menu, which keeps track of stuff like your highest wave or how many power-ups you’ve bought. All of the things are saved after closing the window, so not much has been added, but it’s something."}, {"post_id": 66317, "ts": "2026-09-12T02:32:23Z", "hours": 6.9156, "text": "Fairly large update!!! Over the past few days, I’ve been working and have gotten quite a lot done. Recent changes include A new bomber enemy who appears on wave 15, dropping bombs as it passes through. Bombs have 3 seconds before exploding and deal the standard 1 HP. Then I polished the menu so that instead of having ugly buttons down at the bottom of the screen, I now have large transparent buttons right in the middle of the screen. I also made the buttons feel really juicy, changing color and playing a short clicking sound when hovered over with the mouse. I changed up the settings panel by adding some darker panels for detail and organization. Instead of the set WASD and arrow keys, I now have key binding as an option. I don’t know what other controls players would use, but just in case, and it also makes the game feel more polished. I think right now I plan on adding a stats page in the menu next that can showcase stuff like your highest wave, how many attempts, and enemies killed. But I think I’m going to save that for tomorrow. So for now, I’ll see you in the next devlog. :)"}, {"post_id": 62492, "ts": "2026-09-05T21:34:48Z", "hours": 9.9294, "text": "🎉🎉Major Update🎉🎉 After a little bit of playtesting, I came to the conclusion that the game needed to be much harder because it came up as a problem more often than not. I was already planning to add a few more enemy types, so it didn’t really matter. New Enemy Types 1) A horde of diver enemies 2) A large tank enemy that has double shots 3) A Suicider enemy which pathfinds to the player 4) An asteroid field that can spawn I also plan on adding a bomber enemy with explosions, and a flame thrower enemy which will deal more damage the longer you are in the flames and will burn your fuel. But because I was so close to the 10-hour limit, I have to make a devlog before continuing on it. I also decreased the wavelength from 30 seconds to just 20 because it made for a much faster-paced game and was easier on the player. In the future, I plan on adding a keybind option to the settings, which might take a while to figure out, bosses, which probably won’t happen, and a ton more polish to the menu because it looks terrible."}, {"post_id": 57756, "ts": "2026-08-30T01:10:30Z", "hours": 0.6822, "text": "Small Update: I just added a notes and acknowledgements page to replace the old broken leaderboard page. It just includes some writing and a link to my new Discord Page. If you want to join early to the launch, here’s the link: https://discord.gg/ccgyRZArYm"}, {"post_id": 57724, "ts": "2026-08-29T23:55:41Z", "hours": 8.8753, "text": "🎉🎉MAJOR UPDATE🎉🎉: For the past few days I’ve been working on a few updates, which include finishing and balancing the new Super Nova feature. When you max out all 3 power-up upgrades, it allows you to super charge. One of them includes Double Shot, 2x score on top of 2x score, and buffs for a short amount of time after your shield breaks. I made waves infinitely and made them progressively harder with each passing wave. I added a slight amount of polish to the menu where a little click sound plays when you toggle settings or press a button. I realized that when the player got hit it wasn’t very noticeable since it played the same sound as when an enemy got hit, so I added screen shake which was something I wanted to add for a while but procrastinated it because the way I made my scrolling background with a Parallax background that had a Parallax layer and sprite 2D as a child so when I added the camera 2D node it stopped the background from scrolling so I had to delete all of that and update it with the newer method. But after an hour or so, I got it looking clean and was happy with it, so now when the player takes damage, there is a very noticeable shake to the screen, which helps indicate that you got hit. I also added this to the enemy, but you have to build up a fairly large consecutive hit counter to really notice it. I did start to work on a new tank enemy since all of the existing ones are relatively weak, so this one will have 5 HP, which is half of an asteroid, and will shoot double-shot bullets, which will be punishing if the player gets hit by it. Speaking of HP, instead of healing the player’s hearts back to their maximum amount despite the current amount, it now only heals you by one heart. Now normally, I would have a video to showcase all of these new features, but my thing is weird and will only take images, not videos, so sorry if it’s missing, like all of the updates."}, {"post_id": 48557, "ts": "2026-08-17T00:20:01Z", "hours": 10.9817, "text": "Major Update: Over the past few days, I’ve added a lot of features that will have a significant impact on the game. The first of which is a new shop where the player can purchase upgrades, including a +5% speed increase (limit of 25%), a +5% fire rate upgrade (limit of 25%), and, lastly, a refuel upgrade, which will refill 5% for the cost of 1 coin. The player now has 3 lives instead of just 1, which will allow the player to progress through the game more. In the shop the player can upgrade the amount of lives they have(max of 5). After each wave their health returns to it’s maximum, but fuel will remain the same. In the power-ups tab, the player can increase the duration of each power-up by a maximum of 5 seconds. Once the player maxes out all 3 power-ups, they will unlock a feature called Super Nova were they can select one of the three power-ups to gain a new feature that will help the player survive new waves. Speaking of waves, the next change includes breaking up the game into multiple waves. This change allows the player to get a break between waves to upgrade their ship in the shop. This also makes the player feel like they are progressing through the game more."}, {"post_id": 45996, "ts": "2026-08-12T20:45:30Z", "hours": 5.9294, "text": "Large Update: Last night and this morning, I’ve been working on some new features, including a new fuel tank that slowly depletes, and the only way to refill it is by collecting fuel canisters. This change also allows the player to hold down Shift to get a 50% speed increase, but the fuel tank goes down twice as fast. I also added a new fire particle effect that follows the player, making the game feel much livelier. Coins are also a new feature that have a 10% drop rate on the death of an enemy. Right now, coins do nothing, but in the future I have plans to add a shop/upgrade feature. The player now has three lives instead of one; this makes the game feel more forgiving, but when you lose a heart, your fuel tank decreases by 20%, making fuel a much bigger problem than before. When your fuel tank hits 0, the game is over regardless of how many hearts the player has."}, {"post_id": 45420, "ts": "2026-08-11T21:06:05Z", "hours": 2.1111, "text": "Today’s changes include adding a new power-up, which is a shield that protects the player from one hit for 10 seconds. There is a shield Icon which follows the player around, acting as a visual indicator for the power-up. I also made the player movement much smoother by making the player accelerate in a direction instead of moving at a flat rate, which makes the game overall feel much more “alive”."}, {"post_id": 44986, "ts": "2026-08-11T03:37:37Z", "hours": 9.8844, "text": "Major update: as you can tell from me logging in more than 9 hours, I made a lot of changes, which include two new enemies because I realized as long as you don’t actively try to die, you can live forever, so we have two new enemies, both of which fire bullets at the player, so you have something that poses a threat unlike the old enemies. One is quick, has a fast firing speed, and is small, but only has 1 hp. It also provides more points than its much slower partner, who has 2 hp, a slower firing rate, and a bigger hitbox. I also added two power-ups, randomly selected from the two as collectable items: the first doubles your shoot cooldown for 5 seconds, and the second doubles your score income for 15 seconds. When you collect a power-up, a bar appears at the bottom of your screen, showing how much time remains on your power-up. That’s all that I did for this week, and more features are on their way. Thanks! p.s. I can’t add a video containing the update because my thing is weird and only lets me upload images to Stardance. Sorry about the inconvenience😭"}, {"post_id": 41458, "ts": "2026-08-05T17:55:55Z", "hours": 3.8344, "text": "These past few days, I worked on adding polish, bug fixes, and a new load screen. The load screen GUI is just a placeholder until I can polish it off. I might have to scrap an online leaderboard because I’m new to Godot and know very little GD script, so I can’t use SilentWolf. I’ve been working on implementing Talo, but I can’t find any tutorials, and Google can’t help me with it. Unless I can get it working I don’t think I can add an online leader board."}, {"post_id": 38325, "ts": "2026-07-31T17:27:19Z", "hours": 1.1819, "text": "I need help. I did finally fix the one bug that stopped enemies from spawning, but my next goal was to make a leaderboard, so I set up all of the UI for it, and when I realized I had no idea what I was doing, I ultimately looked up a YouTube tutorial. I didn’t realize that I needed to use a plugin to create an online server for my game. And when I tried to download Silent Wolf, it wouldn’t let me because I was still using version 4.4, and I didn’t want to update it in case it broke my game. So do I scrap leaderboards, or is there some other way?"}, {"post_id": 38211, "ts": "2026-07-31T14:41:42Z", "hours": 5.3556, "text": "Lately I’ve been working on adding a settings feature that includes options for music, sound effects, and a reset data button. While working on this feature, I managed to break my entire game, so fingers crossed I can fix it. I plan on adding an online leaderboard (If I can fix the game)."}, {"post_id": 35191, "ts": "2026-07-26T13:44:00Z", "hours": 4.8325, "text": "Void Strike is a space shooter-type game in which the player must test their skills by trying to survive for as long as possible while gaining points by killing enemies. Changelog: Added an asteroid, which is a new obstacle that has a lot of HP and permits the enemies to advance closer to the player. Bug fixes I haven’t posted a devlog because I’ve been on vacation so I’m very behind on my project."}, {"post_id": 3278, "ts": "2026-06-06T04:13:02Z", "hours": 6.4203, "text": "Void Strike is a space shooter-type game in which the player must test their skills by trying to survive for as long as possible while gaining points by killing enemies. I haven’t posted a Dev-log for a while, but I’ve added a lot of features in that time. Changelog Scrolling background and particle effects Sound effects On-screen score counter High-score Game over screen Player Balancing Difficulty increases over time My next steps will be to add a main menu, possibly a shop and a currency to buy player upgrades, and a competitive global scoreboard. P.S. I would take a video, but my internet keeps showing an error, so I’ve taken a photo instead. Believe me, I added what I said I did."}, {"post_id": 1829, "ts": "2026-06-04T01:27:56Z", "hours": 1.7686, "text": "Void Strike is a simple space shooter type game that I’m working on. I know it’s a little simple, but I’m inexperienced with Godot. Changelog You can hold down space to shoot 2 new enemies (1 fast, and 1 slow) Randomized enemy spawning"}, {"post_id": 1748, "ts": "2026-06-03T22:43:16Z", "hours": 2.7453, "text": "Void Strike, which is a space shooter I just started working on. It will be on the simpler side, because I’m new to using Godot. So far I have the player movement, and shooting working. I plan to add a lot more in the future."}]...
|
Title: Void Strike by @JudeW | Stardance
Devlogs: Title: Void Strike by @JudeW | Stardance
Devlogs:
Void Strike, which is a space shooter I just started working on. It will be on the simpler side, because I’m new to using Godot. So far I have the player movement, and shooting working. I plan to add a lot more in the future.
Void Strike is a simple space shooter type game that I’m working on. I know it’s a little simple, but I’m inexperienced with Godot. Changelog You can hold down space to shoot 2 new enemies (1 fast, and 1 slow) Randomized enemy spawning
Void Strike is a space shooter-type game in which the player must test their skills by trying to survive for as long as possible while gaining points by killing enemies. I haven’t posted a Dev-log for a while, but I’ve added a lot of features in that time. Changelog Scrolling background and particle effects Sound effects On-screen score counter High-score Game over screen Player Balancing Difficulty increases over time My next steps will be to add a main menu, possibly a shop and a currency to buy player upgrades, and a competitive global scoreboard. P.S. I would take a video, but my internet keeps showing an error, so I’ve taken a photo instead. Believe me, I added what I said I did.
Void Strike is a space shooter-type game in which the player must test their skills by trying to survive for as long as possible while gaining points by killing enemies. Changelog: Added an asteroid, which is a new obstacle that has a lot of HP and permits the enemies to advance closer to the player. Bug fixes I haven’t posted a devlog because I’ve been on vacation so I’m very behind on my project.
Lately I’ve been working on adding a settings feature that includes options for music, sound effects, and a reset data button. While working on this feature, I managed to break my entire game, so fingers crossed I can fix it. I plan on adding an online leaderboard (If I can fix the game).
I need help. I did finally fix the one bug that stopped enemies from spawning, but my next goal was to make a leaderboard, so I set up all of the UI for it, and when I realized I had no idea what I was doing, I ultimately looked up a YouTube tutorial. I didn’t realize that I needed to use a plugin to create an online server for my game. And when I tried to download Silent Wolf, it wouldn’t let me because I was still using version 4.4, and I didn’t want to update it in case it broke my game. So do I scrap leaderboards, or is there some other way?
These past few days, I worked on adding polish, bug fixes, and a new load screen. The load screen GUI is just a placeholder until I can polish it off. I might have to scrap an online leaderboard because I’m new to Godot and know very little GD script, so I can’t use SilentWolf. I’ve been working on implementing Talo, but I can’t find any tutorials, and Google can’t help me with it. Unless I can get it working I don’t think I can add an online leader board.
Major update: as you can tell from me logging in more than 9 hours, I made a lot of changes, which include two new enemies because I realized as long as you don’t actively try to die, you can live forever, so we have two new enemies, both of which fire bullets at the player, so you have something that poses a threat unlike the old enemies. One is quick, has a fast firing speed, and is small, but only has 1 hp. It also provides more points than its much slower partner, who has 2 hp, a slower firing rate, and a bigger hitbox. I also added two power-ups, randomly selected from the two as collectable items: the first doubles your shoot cooldown for 5 seconds, and the second doubles your score income for 15 seconds. When you collect a power-up, a bar appears at the bottom of your screen, showing how much time remains on your power-up. That’s all that I did for this week, and more features are on their way. Thanks! p.s. I can’t add a video containing the update because my thing is weird and only lets me upload images to Stardance. Sorry about the inconvenience😭
Today’s changes include adding a new power-up, which is a shield that protects the player from one hit for 10 seconds. There is a shield Icon which follows the player around, acting as a visual indicator for the power-up. I also made the player movement much smoother by making the player accelerate in a direction instead of moving at a flat rate, which makes the game overall feel much more “alive”.
Large Update: Last night and this morning, I’ve been working on some new features, including a new fuel tank that slowly depletes, and the only way to refill it is by collecting fuel canisters. This change also allows the player to hold down Shift to get a 50% speed increase, but the fuel tank goes down twice as fast. I also added a new fire particle effect that follows the player, making the game feel much livelier. Coins are also a new feature that have a 10% drop rate on the death of an enemy. Right now, coins do nothing, but in the future I have plans to add a shop/upgrade feature. The player now has three lives instead of one; this makes the game feel more forgiving, but when you lose a heart, your fuel tank decreases by 20%, making fuel a much bigger problem than before. When your fuel tank hits 0, the game is over regardless of how many hearts the player has.
Major Update: Over the past few days, I’ve added a lot of features that will have a significant impact on the game. The first of which is a new shop where the player can purchase upgrades, including a +5% speed increase (limit of 25%), a +5% fire rate upgrade (limit of 25%), and, lastly, a refuel upgrade, which will refill 5% for the cost of 1 coin. The player now has 3 lives instead of just 1, which will allow the player to progress through the game more. In the shop the player can upgrade the amount of lives they have(max of 5). After each wave their health returns to it’s maximum, but fuel will remain the same. In the power-ups tab, the player can increase the duration of each power-up by a maximum of 5 seconds. Once the player maxes out all 3 power-ups, they will unlock a feature called Super Nova were they can select one of the three power-ups to gain a new feature that will help the player survive new waves. Speaking of waves, the next change includes breaking up the game into multiple waves. This change allows the player to get a break between waves to upgrade their ship in the shop. This also makes the player feel like they are progressing through the game more.
🎉🎉MAJOR UPDATE🎉🎉: For the past few days I’ve been working on a few updates, which include finishing and balancing the new Super Nova feature. When you max out all 3 power-up upgrades, it allows you to super charge. One of them includes Double Shot, 2x score on top of 2x score, and buffs for a short amount of time after your shield breaks. I made waves infinitely and made them progressively harder with each passing wave. I added a slight amount of polish to the menu where a little click sound plays when you toggle settings or press a button. I realized that when the player got hit it wasn’t very noticeable since it played the same sound as when an enemy got hit, so I added screen shake which was something I wanted to add for a while but procrastinated it because the way I made my scrolling background with a Parallax background that had a Parallax layer and sprite 2D as a child so when I added the camera 2D node it stopped the background from scrolling so I had to delete all of that and update it with the newer method. But after an hour or so, I got it looking clean and was happy with it, so now when the player takes damage, there is a very noticeable shake to the screen, which helps indicate that you got hit. I also added this to the enemy, but you have to build up a fairly large consecutive hit counter to really notice it. I did start to work on a new tank enemy since all of the existing ones are relatively weak, so this one will have 5 HP, which is half of an asteroid, and will shoot double-shot bullets, which will be punishing if the player gets hit by it. Speaking of HP, instead of healing the player’s hearts back to their maximum amount despite the current amount, it now only heals you by one heart. Now normally, I would have a video to showcase all of these new features, but my thing is weird and will only take images, not videos, so sorry if it’s missing, like all of the updates.
Small Update: I just added a notes and acknowledgements page to replace the old broken leaderboard page. It just includes some writing and a link to my new Discord Page. If you want to join early to the launch, here’s the link: https://discord.gg/ccgyRZArYm
🎉🎉Major Update🎉🎉 After a little bit of playtesting, I came to the conclusion that the game needed to be much harder because it came up as a problem more often than not. I was already planning to add a few more enemy types, so it didn’t really matter. New Enemy Types 1) A horde of diver enemies 2) A large tank enemy that has double shots 3) A Suicider enemy which pathfinds to the player 4) An asteroid field that can spawn I also plan on adding a bomber enemy with explosions, and a flame thrower enemy which will deal more damage the longer you are in the flames and will burn your fuel. But because I was so close to the 10-hour limit, I have to make a devlog before continuing on it. I also decreased the wavelength from 30 seconds to just 20 because it made for a much faster-paced game and was easier on the player. In the future, I plan on adding a keybind option to the settings, which might take a while to figure out, bosses, which probably won’t happen, and a ton more polish to the menu because it looks terrible.
Fairly large update!!! Over the past few days, I’ve been working and have gotten quite a lot done. Recent changes include A new bomber enemy who appears on wave 15, dropping bombs as it passes through. Bombs have 3 seconds before exploding and deal the standard 1 HP. Then I polished the menu so that instead of having ugly buttons down at the bottom of the screen, I now have large transparent buttons right in the middle of the screen. I also made the buttons feel really juicy, changing color and playing a short clicking sound when hovered over with the mouse. I changed up the settings panel by adding some darker panels for detail and organization. Instead of the set WASD and arrow keys, I now have key binding as an option. I don’t know what other controls players would use, but just in case, and it also makes the game feel more polished. I think right now I plan on adding a stats page in the menu next that can showcase stuff like your highest wave, how many attempts, and enemies killed. But I think I’m going to save that for tomorrow. So for now, I’ll see you in the next devlog. :)
This morning, I’ve been working on adding a statistics menu to the menu, which keeps track of stuff like your highest wave or how many power-ups you’ve bought. All of the things are saved after closing the window, so not much has been added, but it’s something.
I’ve just been working on adding some finishing touches lately, most of which include working with the new log feature. Inside of it I have three different tabs Enemies which is just a list of all of the different enemies and their stats like hp and speed. The second one is for achievements. I have ten so far, which include: First Orbit, earned by playing for 15 mins. Deep Space Transit for 30 minutes, and Time Flies for an hour. Atmosphere Cleared for getting to wave 5. Flight Lieutenant for wave 15. Squadron Leader for wave 30, and Cosmic Anomaly for 50. Just Getting Warm for killing a thousand enemies. Determined I for dying 50 times and Determined II for dying 100 times. I also added some progress bars to visually show your progress towards the achievements. For the stats menu, all I changed was adding a darker panel behind all the stats to add some detail; other than that, that’s all I did. Also, the scrolling menus were almost my downfall.
Lately I’ve just been polishing the game. Nothing super interesting. I fixed the keybindings because when you selected a key with a long name like RightBracket, the label would expand into the button and overlap. I just made a better layout for it and made it so the text would be aligned on the right side, making it expand to the left instead. Then I worked on cleaning up some of my code since I’m planning on shipping tomorrow. Then I added a TON of polish to the main menu. I added a little rotating tip at the bottom and displayed your high score and highest wave at the top of the menu, which was easy enough. I still want to log at least two more hours, so if anyone has ideas, please let me know, because I’m out of ideas. Also, in the pictures, if the text looks sideways, it’s because I rotated it as a little animation. I think the current total for lines of code is 3005, if you’re interested, btw.
Finally finished the game!!! Just posting a quick devlog before shipping. I added satellites and space junk that can fly in from the right side of your screen, which adds an extra obstacle. The only hard part about it was figuring out some physics equations with Newton’s Law of Universal Gravitation. After that, it was finished. Here’s my code if you want to look at it(GDScript): extends Node2D var item = 0 var active_node: Node2D = null var velocity := Vector2.ZERO var rotation_speed := 0.0 var spawning_enabled := true const MIN_SPAWN_TIME = 10.0 const MAX_SPAWN_TIME = 15.0 const PLANET_POSITION = Vector2(300, 1500) const GRAVITY_STRENGTH = 450000.0 @onready var timer = $Timer @onready var small_satellite = $“Small satelltite” @onready var large_satellite = $“Large satellite” @onready var scrap = $Scrap func _ready() -> void: randomize_next_spawn_time() func _process(delta: float) -> void: if active_node and active_node.visible: var vector_to_planet = PLANET_POSITION - active_node.global_position var distance = vector_to_planet.length() var direction = vector_to_planet.normalized() var gravity_force = direction * (GRAVITY_STRENGTH / (distance * distance)) velocity += gravity_force * delta active_node.global_position += velocity * delta active_node.rotation += rotation_speed * delta if active_node.global_position.x < -150: disable_active_node() func _on_timer_timeout() -> void: randomize_next_spawn_time() if not spawning_enabled: return item = randi_range(1, 3) if item == 1: pick_small() elif item == 2: pick_large() else: pick_scrap() func randomize_next_spawn_time() -> void: if timer: timer.wait_time = randf_range(MIN_SPAWN_TIME, MAX_SPAWN_TIME) timer.start() func reset_and_launch(node: Node2D): disable_active_node() small_satellite.hide() large_satellite.hide() scrap.hide() node.show() node.global_position = Vector2(600, randi_range(0, 960)) velocity = Vector2(-150, -45) rotation_speed = randf_range(-1.5, 1.5) if node.has_method("set_deferred"): node.set_deferred("monitoring", true) node.set_deferred("monitorable", true) active_node = node func disable_active_node(): if active_node: active_node.hide() if active_node.has_method(“set_deferred”): active_node.set_deferred(“monitoring”, false) active_node.set_deferred(“monitorable”, false) func stop_spawning() -> void: spawning_enabled = false timer.stop() func start_spawning() -> void: spawning_enabled = true randomize_next_spawn_time() func pick_small(): reset_and_launch(small_satellite) func pick_large(): reset_and_launch(large_satellite) func pick_scrap(): reset_and_launch(scrap) func _on_scrap_body_entered(body: Node2D) -> void: if body.has_method(“take_damage”): body.take_damage() disable_active_node() func _on_large_satellite_body_entered(body: Node2D) -> void: if body.has_method(“take_damage”): body.take_damage() disable_active_node() func _on_small_satelltite_body_entered(body: Node2D) -> void: if body.has_method(“take_damage”): body.take_damage() disable_active_node()
Ships:
Hi! The project I’ve been working on is called Void Strike. It’s a space shooter game in which the player controls a spaceship and must survive hordes of enemy waves. The reason why I chose to create this game is that I thought it would be easy. Since I’ve never really used Godot, I thought I should start simple. By the end of working on it, I can confidently say that I’ve learned at least the basics of the engine. That’s all anyway. Have Fun! Also, last night when I was trying to add it to Itch.io, I accidentally overwrote LITERALLY ALL of my files and everything, so the only thing I have left is the HTML export, and the entire project on my Godot account is just gone, and I can’t recover it, so if there is anything a little buggy, that’s probably why. And I can’t do anything about it, sorry. I just decided to ship it as it currently is instead of not shipping it at all, since I’ve already spent too much of my time on this. Once more, I’m sorry....
|
1793004979.3407114
|
1793091379.3407114
|
|
23040
|
rhythm crossing by @alyah | Stardance
|
alyah
|
1
|
7.32
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T22:10:22Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Rhythm Crossing, an adaptation of the VR and XBox game Beat Sabers. It currently only runs locally, so check out the latest release at https://github.com/lyri3aly/rhythm-crossing/releases/tag/v.1 . It runs by connecting a phone (as the console) to a laptop and utilizing its IMU sensors. This was my first time working with concepts such as using the browser’s DeviceMotionEvent / DeviceOrientationEvent APIs, so everything was very new to me. After a lot trial and error and prayers, the game finally works properly without any (known) bugs and I’m very proud of how it turned out!", "repo": "https://github.com/lyri3aly/rhythm-crossing", "demo": "https://rhythm-crossing.onrender.com/"}]...
|
[{"post_id": 70932, "ts": "202 [{"post_id": 70932, "ts": "2026-09-20T02:07:33Z", "hours": 0.3236, "text": "update: SOOO STARDANCE HATES ME AND RENDER ISN’T ALLOWED EITHER. WILL BE MOVING TO HACK CLUB NEST.. apparently ships require a web-access link, so I’ve FINALLY made the game available on the web. it is deployed through render (my first time using it and it’s on a free plan so I’m not sure how well it will work). to those rating my project: please ignore the info on my ship about releases and use the following link insetad! if it doesn’t work uhh… that’s not supposed to happen… https://rhythm-crossing.onrender.com/ also ignore the laginess at the start of the gameplay in my attached video, the screen recorder was bugging it out but it returns back to the actual resolution in a few seconds!"}, {"post_id": 70865, "ts": "2026-09-19T21:50:44Z", "hours": 6.6031, "text": "for some reason, I recall devlogging things by nothing is showing? guys I might just be schizo… anyway, I made rhythm crossing! this was a project I made with my friends, personally spening 6 hours on! it’s meant to be a replication of beat saber, the vr game where you slice blocks coming towards you in time to the beat. the ui is inspired by animal crossing :)"}]...
|
Title: rhythm crossing by @alyah | Stardance
Devl Title: rhythm crossing by @alyah | Stardance
Devlogs:
for some reason, I recall devlogging things by nothing is showing? guys I might just be schizo… anyway, I made rhythm crossing! this was a project I made with my friends, personally spening 6 hours on! it’s meant to be a replication of beat saber, the vr game where you slice blocks coming towards you in time to the beat. the ui is inspired by animal crossing :)
update: SOOO STARDANCE HATES ME AND RENDER ISN’T ALLOWED EITHER. WILL BE MOVING TO HACK CLUB NEST.. apparently ships require a web-access link, so I’ve FINALLY made the game available on the web. it is deployed through render (my first time using it and it’s on a free plan so I’m not sure how well it will work). to those rating my project: please ignore the info on my ship about releases and use the following link insetad! if it doesn’t work uhh… that’s not supposed to happen… https://rhythm-crossing.onrender.com/ also ignore the laginess at the start of the gameplay in my attached video, the screen recorder was bugging it out but it returns back to the actual resolution in a few seconds!
Ships:
I made Rhythm Crossing, an adaptation of the VR and XBox game Beat Sabers. It currently only runs locally, so check out the latest release at https://github.com/lyri3aly/rhythm-crossing/releases/tag/v.1 . It runs by connecting a phone (as the console) to a laptop and utilizing its IMU sensors. This was my first time working with concepts such as using the browser’s DeviceMotionEvent / DeviceOrientationEvent APIs, so everything was very new to me. After a lot trial and error and prayers, the game finally works properly without any (known) bugs and I’m very proud of how it turned out!...
|
1793004978.463541
|
1793091378.463541
|
|
4018
|
Celestial Capitalist by @idi0cy | Stardance
|
idi0cy
|
1
|
109.0
|
2005
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T08:45:07Z", "hours": 109.0, "multiplier": 18.79, "payout": 2005, "blessing": "neutral", "text": "Celestial Capitalist is a simulation game where the player simultaneously builds and ascends the corporate ladder from the bottom of the street to the self-built throne at the top of the cosmos. Beg your way from homelessness, run a lemonade stand, scam grandmas on the internet, start a cult, play union-buster tower defence, and generally just have a grand stupid time while the world slowly bends to your will. Coding is mighty stupid, and I had a lot of trouble patching all of the many bugs. With all that out of the way, I hope you enjoy Celestial Capitalist!", "repo": "https://github.com/idi0cy/Celestial-Capitalist", "demo": "https://ratseerofrattesse.itch.io/celestial-capitalist"}]...
|
[{"post_id": 70009, "ts": "202 [{"post_id": 70009, "ts": "2026-09-18T08:29:54Z", "hours": 2.7947, "text": "Finished The first stage, and therefor the shipped version of Celestial Capitalist (all rights reserved) is completed! I just spent over four hours in a voice call with @Ratseer patching all the bugs and balancing all the minigames. Audio settings work, but only on the editor version. The only forum post we found with a possible answer just told us they fixed but don’t know how, so our questions were not answered. Minigames were balanced, the sort. Very, very stupid code was fixed (more than I remember writing). More importantly, they sell soy sauce by the buckets and they also have deluxe versions worth hundreds of dollars. This fact was found out after I realized we priced soy sauce at $45. All the items were subsequently revalued. Celestial Capitalist Finally (but not fully) developed by @Ratseer and @idi0cy . Thank you for your patience."}, {"post_id": 67502, "ts": "2026-09-13T16:58:21Z", "hours": 7.8861, "text": "Polishing and Suffering Celestial capitalist is nearing it’s completion, so over the past week or so I’ve just been polishing everything. Fixing bugs, balancing minigames, and small changes that make the game less buggy. My friend @Ratseer has been working on a couple of these mechanics, including revamping a goofy tutorial blob I wrote. Sound Effects A big change to note was the sound effects, and this is where the suffering comes in. I had to make a global script with a button signal that each button would send, which would cause a sound to play. After a big of debugging, I hooked up pressing a button to the signal, and it worked. Almost. The signal was sending, and it was telling the AudioStreamPlayer to play the sound, but for some reason it wasn’t. We testing using an input to play the sound, and that worked perfectly fine. I tried using another proxy function for no reason, and it didn’t work either. We even tried having both the input and the signal change the same variable to true, where the sound would play then it set to false again. This didn’t work. To this day, I’m not sure why nothing worked, and I’m not sure I’ll ever find out. But it was fine, since we eventually just made a new global script and for some reason everything worked totally normally after that. The image attached below depicts the setup we used for this coding conundrum. Celestial Capitalist Shrewdly developed by @Ratseer and @idi0cy ."}, {"post_id": 65218, "ts": "2026-09-10T06:08:55Z", "hours": 4.8753, "text": "Title Screen and a Heftier Quota I did a couple things, starting with an upgrade to the title screen system. Now, you can read a bit about your role in this game before you’re thrown into the deep end. I wrote up a quick explanation, but it might get changed in the future based on vibes. The other big change is that I added more quota requirements. Instead of just making 500 bucks, you gotta do some more work like sell items, or gain skill points. There are three right now, and I plan to keep it that way. Bug Fixes Since CC is about ready to ship any time now, we’re doing some final bug patches and implementations to the game. I fixed a counting error on the fake injury game mode, as well as a bad gameplay mechanic in the sell minigame that caused targets to spawn on top of each other. Celestial Capitalist Treacherously developed by @Ratseer and @idi0cy"}, {"post_id": 60923, "ts": "2026-09-03T16:11:15Z", "hours": 5.8194, "text": "Random Events It’s another day where I’ve actually done some coding work, and I completed the random events function of this game. Every 180 seconds a randomly selected random event occurs, and a popup shows up telling you what happened. Get robbed, find money on the floor, get robbed again, anything could happen. Each event has a different “weight” to it, which determines how likely it is to happen. In this recording, I changed the weight of losing an item to 2000, giving it a practically guaranteed chance of being picked. Event log will probably be removed, since it isn’t actually useful. Celestial Capitalist Legally developed by @Ratseer and @idi0cy ."}, {"post_id": 55575, "ts": "2026-08-27T14:47:16Z", "hours": 2.4314, "text": "Title Screen Functionality For the longest time, the title screen has been completely non-functional. That ends today, when I do some actually easy coding and give functionality* to all of the buttons I put onto the title screen. Start game initiates a loading popup before loading the next scene. Credits gives the same text each time, with the exception of the green highlighted text, which chooses a random adjective each time the credits button is pressed. The settings are a lie. Celestial Capitalist var wordBank = [\"debatably\", \"demonstrably\", \"woefully\"] var msg = str(wordBank[randi_range(0, len(wordBank) - 1]) + \" developed by @idi0cy and @Ratseer\" print(msg)"}, {"post_id": 44708, "ts": "2026-08-10T17:24:52Z", "hours": 3.9619, "text": "Skill Point System Completed I’m back, with more consistent developing time. The skills system has been completed, and its relatively simple which is actually a nice break. Typing minigame nearly killed me. You have certain attributes that you can divest your skill points into. A lot of these are the typical DnD stats, but some of them are different. Every three minutes you gain a skill point, which might be changed for balancing. Every time you complete a minigame from the get money section, you have the chance to get a skill point. Certain skills help with certain minigames, and the more you have the more positive modifiers you get for that minigame. This is all pretty intuitive. There are some parts not yet filled out, since I don’t know at all how the scavenge code works because my friend made that and not me. Celestial Capitalist Inconsistently developed by @idi0cy and @Ratseer ."}, {"post_id": 38635, "ts": "2026-08-01T04:08:07Z", "hours": 4.4667, "text": "Quota Function Completed I’ve been on just a bit of a hiatus. The steal function has been fully completed, with a strength minigame based off both aim training and also timing. Also, I have a functioning quota system. You have certain tasks to complete before moving on to the next “level”, which definitely won’t be programmed very soon at the exponentially decaying rate that I’m moving at. I’m going to start looking at returning to daily contribution, all for those ikea sharks. You can focus the progress bar on certain tasks to complete, such as the cash requirement which is the only one right now. It fills in automatically, and has a nice texture. See the video for how it works. Thank you for viewing celestial capitalist, its not abandoned quite yet. Debatably developed by @idi0cy and @Ratseer ."}, {"post_id": 25608, "ts": "2026-07-09T23:53:01Z", "hours": 9.0775, "text": "Steal Function In Progress Of course, there needs to be an option to rob people. Hence, stealing. I’ve programmed the stealth minigame into the stealing function of the game, and it works perfectly fine. The strength one, well not so much. Going to have to give a bit more of a wait on that one. Heavily inspired by Stardew Valley’s fishing minigame. I have to log these hours before I reach ten, because I just found out that stardance does NOT do overtime pay. Celestial Capitalist Greedily developed by @idi0cy and @Ratseer ."}, {"post_id": 18522, "ts": "2026-06-29T18:19:15Z", "hours": 12.1594, "text": "Con Minigame Completed It’s been nine days, and I’ve worked on one minigame for 12 hours. The typing based minigame for conning strangers is now complete! When you con someone, you choose how you want to con them, for example a fake business opportunity, magical exorcism, or maybe even an unwinnable game to bet money on. You then type out a randomly picked prompt that was premade, and you are scored on your speed and accuracy. This determines how likely you are to succeed. You can also decide how much stakes you want to give the con, so that’s something. When you get something wrong, it highlights what was supposed to be typed red, unless you got it wrong on a space, in which it puts in what character you typed in red highlight where you typed it.. I won’t lie, it’s a bit unpolished. There are some weird text wrapping bugs that are unpleasant to look at, but it should be fine for the most part. This kinda took way too long, but whatever. We take what we can get. Meanwhile, at the Legion of Doom… My associate who is also working on this project, @Ratseer has gotten strangers new sprites, names, and all that, along with a brand new scavenging system which I recommend you check out on all his devlogs. Formatting still sucks The preview function is great, thank you Stardance team. But still, now the ctrl Z shortcut is wonky, it’s harder to put in more line breaks when pressing the enter key, and also I tried uploading this earlier with the video and it said the video size was too large, and deleted the entire devlog, so now I’m writing this again. Features for thought. Celestial Capitalist Thank you for checking in with Celestial Capitalist, developed by @idi0cy and @Ratseer ."}, {"post_id": 12623, "ts": "2026-06-20T16:58:09Z", "hours": 7.315, "text": "I’m Bad at Coding Recently, I’ve been trying to code a typing minigame where you do a type test to increase your chances of success. This is for the con action of Celestial Capitalist, where you just scam people. A couple of revelations have been made while I’ve been working on this, the first of which is that I’m bad at coding. As you can hopefully observe in the game, it’s supposed to be structured after a typing test like monkeytype. Each time you get it right, it highlights white. When you get a word wrong, it highlights it red. When you get it wrong on a space, a new letter is appended where you got it wrong. The most basic elements of this are working, such as getting the text correct and getting the normal non-space error text working. You know what’s not working? The other parts. Each time I try to do the error after a space, it bugs out because the backspace option doesn’t go well with it. When a word only autowraps after it’s completed, such as when I type “because” in the video, it only goes to where it should be after it’s done, which looks ugly. The indexing is wrong, little things work, and you can all see it in the video. I think I’ve also made some of the most inefficient code ever designed. I’ll keep toiling away at the minigame, and then toil away some more to actually integrate it into the minigame. These bugs will drive me to insanity. Well Well Well Would you look at that? They added a preview section. Where you can preview all of your markdown formatting. Y’know when that could have been useful? I sure do wonder. Markdown formatting is now my enemy."}, {"post_id": 10459, "ts": "2026-06-17T05:58:21Z", "hours": 3.2919, "text": "Blackmail and a Broken Clavicle You can now fake an injury, and demand blackmail to keep quiet about it and not make a fuss. In the true spirit of Reigen Arataka, you can pretend your clavicle is broken too. All of you should watch mob psycho. The recording attached better be the right one. . I’m still doing the backslashes. I’ve given up. I might try new formatting another day, but I’m tired. . Alright, so the minigame for faking an injury is pretty simple, its an fnf like rhythm game that is so unbalanced it’s insane. You are deducted points for pushing any button, and are given points for if you hit a note. You will be able to tell if you hit a note because it will expand like a balloon and fade away like my employment opportunities. You are given more points if the note is closer to the filling the center cavity of the button. . The point of this is to reward actually hitting them on time, and not just spamming. Missing notes deducts points. Severity of injury being faked determines game difficulty. Minigame performance has certain weight on how successful you are in getting money. If you perform in a negative fashion, it’s over. After blackmailing a stranger (successful or not), they will never talk to you again (kinda). They are removed from your current roster of strangers, but they might come back when reroll happens since we only have so much stranger types so far. . This thing is so heinously unbalanced, it’s insane. All the values need to be tweaked, and I haven’t done enough playtesting to know if it is fair or not. I’m hoping tweaking the values will be easy, but it might be hard to polish. That’s for another day. . Update on friendship My friend is working on actually interesting randomized dialogue, so that should be something to look forward to. Check out Ratseer’s stuff."}, {"post_id": 9974, "ts": "2026-06-16T14:41:33Z", "hours": 4.9433, "text": "Nothing is working I’m trying out on making the fake injury option, and it is not working as intended. It’s supposed to have a rhythm based minigame, sort of like friday night funkin even though i’ve never played that before, but it clearly isn’t working. \\ All the icons are sideways, there are too much notes, and for the longest time none of them would scale correctly because I forgot to assign the new scale to the scale property. \\ Markdown, again Okay I think I got it this time. If I just leave the backslashes alone…"}, {"post_id": 8518, "ts": "2026-06-14T05:11:10Z", "hours": 3.1353, "text": "Beg The beg minigame has been completed, meaning you can now get on your knees and start praying for money. I also did some polishing work, but I have absolutely no recollection of that. Frontotemporal dementia is simply a wonder, isn’t it? \\ I’m also trying some new mark down. Let’s see if my paragraphs space properly. \\ When you beg to someone, you get “dialogue options”. The options are based off the three methods of persuasion, Ethos, Logos, and Pathos. Pathos is appealing to human emotions like empathy, logos is using logic, and ethos is using authority to prove an argument. Each stranger will have a different reception to the persuasion types, based off data values stored in the code. \\ You have 8 chances to beg. I think. I might have changed the value. Again, frontotemporal dementia. \\ Everything is ledger compatible. If you get less than 25 progress somehow, which I might change to make it more difficult, you are rejected and cannot approach the stranger again (until strangers refresh). The more you use one strategy of persuasion, the less effective it gets. I plan to make this effect more pronounced when balancing. \\ That’s it. Please let this markdown formatting succeed."}, {"post_id": 8155, "ts": "2026-06-13T16:27:06Z", "hours": 2.9306, "text": "Polishing 0 Couple of polishing points that I put into the game to freshen things up and solve all the bugs that haggling made. Items are removed from inventory after selling, strangers walk away after you fail a sell attempt with them, and I fixed an integer division error that led to fearmongering being physically impossible to complete when you select it as a minigame. While I was working on the sell items minigame, my friend Ratseer has been working on the ledger which tracks all the finances. I’m too lazy to link him, but you should check it out over at his profile, if he devlogged it. I’ll put a video of it working here, but that’s just because I don’t think I can post this without a media element."}, {"post_id": 7287, "ts": "2026-06-12T04:34:09Z", "hours": 8.3356, "text": "Sell me this pen I finished the minigame for selling/haggling your items away. My markdown formatting is going to downgrade because I’m honestly not that motivated this feature took way too long to program, and i’m not very energetic right now. A couple things. After you talk to the person, you select which item you want to sell, and then sell it. There are dialogue options, and the safer ones like recommend make the minigame easier but you make less progress towards convincing them each time you succeed in clicking the button, but the riskier options like fearmonger are high reward types. After that, you can give a highball or lowball offer on a scale. The game calculates your chances of succeeded by combining pure randomness, your progress towards convincing them, and how much you priced your item in comparison to it’s actual value. Ignore the system text that says “five tries remaining”, that is vestigial and I forgot to remove it after redoing the whole minigame design. I can’t believe I spent 8 hours on this, and it isn’t even polished. Cool New Art Yes, as you can see, my friend is an absolute lifesaver when it comes to me trying to not lose my soul to krita. Lots of great sprite art here that makes the game look much better. I’ll have to clarify some text elements to make them more legible but it should be fine for now. Circle of ignorance If knowledge was a circle of light in a dark 2D plane, ignorance would be the darkness. We only reveal how much of it we find ourselves in by seeing the circumference of our small circle of knowledge. The more knowledge we obtain, the more unknown we must face. I’ve become bluntly aware of my own little ignorance circle. I’ve only done one of the five actions, and it’s unpolished, and it took me 8 hours, and the money isn’t even tracked because the ledger hasn’t been programmed yet, and I can only feel the great abyss devouring my spirit slightly more by the day. Watch the attached video to see how it works. I know, it isn’t that visually appealing, and I’ll probably spam lerp functions again to make it look smoother, but IT IS WHAT IT IS."}, {"post_id": 5980, "ts": "2026-06-10T01:07:53Z", "hours": 3.3317, "text": "Action Screen and the Power of Friendship For actual game development, the main progress made was continuing to develop the action screen. After you approach a stranger, you can now see their sprite art in a zoomed in fashion, and click on some actions. As you can see in the video, after the first part where I flex my new sprite art, clicking on an action gives a description of what it will do, and clicking the take action button to confirm that has the terminal display some fun text before the mini-game starts. I don’t believe I ran into too much bugs while developing this, and I haven’t gotten to the actually much harder part, which are the actual mini-games. I solved that previously devlogged bug with like five lines of code it was so infuriatingly easy. New Sprites You may be asking, “idi0cy, I saw your water bottle sprites, and I find myself confounded as to how you have managed to improve so much in your art.” Your suspicions are correct. I’m not making that art, my friend Ratseer is, because I got them on the project. They probably won’t code a lot for now since they still need to decipher the horrendous logic I used in the making of this game. It is very strange knowing that there is likely nobody actually reading this except for said friend, and now the acknowledgement of said fact might have just made it more awkward."}, {"post_id": 5164, "ts": "2026-06-08T20:57:07Z", "hours": 0.8678, "text": "Crushed buble emoji. Knowledgeable thoughts cannot describe my disappointment."}, {"post_id": 4655, "ts": "2026-06-08T01:56:35Z", "hours": 4.9778, "text": "Social Interaction Studies show I am not fond of it, but I’m still programming all of that into my game. This is the beginning of the sell function, where you are able to sell off your goods to strangers on the street. Having it be named “Sell” is a bit misleading, since the general game mechanic is a bit more broad than that. When you approach a stranger, you will be able to initiate a sales pitch, beg, steal, fake an injury, and tons of more fun options for making money. I’m still thinking of what I want as minigames for all of those, as I’m not sure if there will be separate minigames for each one. Each action you perform will have differing chances of success depending on game performance and the person you approach. For example, shouting into a crowd that a kid just injured you and demanding payment from said kid will have a zero percent chance of success. As of now, it still needs polishing, and while I’ve gotten the big obvious bugs out of the way (nothing rendering, nothing rendering after I click another button and go back, nothing rendering once more), I’m sure more await me. Next devlog will likely be on polishing the UI for the sell window. Finally using that clock Depending on what time of day it is, you are likely to find more/less strangers. If it’s rush hour, more people will be on the street in comparison to at 1 AM. Sprite art strikes back Everything was fine when I was drawing water bottles or whatever, but people are too much. In the meantime, I’ve substituted the human appearance with a sprite that in no way alludes to my mental state at the time of drawing. As soon as my friend who can actually draw is freed from the shackles of crunching at the end of school, I am selling their soul to the sprite art directory. Don’t tell them I said that."}, {"post_id": 3826, "ts": "2026-06-06T21:42:03Z", "hours": 0.5472, "text": "Timer Created a time variable to count in game time of day, and a time button/counter for the player to tell what time it is. I plan to have different minigames operate with separate loot-tables or success chances depending on what time of day it is. Pretty short devlog, but I’ll have to integrate this time variable into a LOT of different features that I don’t completely look forward to. New and improved markdown superpowers I think I’ve figured it out. Hopefully I no longer fumble all my markdown. But then again I still have no way of telling."}, {"post_id": 3654, "ts": "2026-06-06T18:06:08Z", "hours": 4.9564, "text": "Inventory Inventory system that displays all the items you currently possess. Upon clicking on one of the items in your possession, information on the item such as quality, value, and item name will be displayed. More information is planned to be available to the player, however that has not been developed yet. Unfortunately, the item icons for the inventory do not have the same smooth lerp scaling that I was able to use for the buttons, as texture buttons do not have a proper scale function. I could theoretically group a texture button with a sprite2D node, however the gridbox I’m using to organize all the items is unlikely to cooperate. All the item’s values are spaced out automatically so they have room and aren’t too close together. Each item has different information, and it’s only bestowed to them each time the inventory opens, since that is when the icons are generated. This forced me to do some weird signal connection logic in the scripts, but it worked out. ##Sprite Art Sprite art is overrated, and I want to stop doing it. All my hours are being spent drawing water bottles and pencils in krita, just to never be logged. I offloaded one of the sprite arts to my friend because they were bored, and he produced the hamburger sprite. Note that the hamburger sprite icon does NOT have the same colour as all of the other icons, because said friend is unable to use the colour picker tool for whatever reason. ##New Markdown Superpowers I learned how you format these, and I’m hoping it ends up looking good upon posting. I don’t really have a way of telling as of writing, however. ##Way too ambitions Me and associates started actually being interested in developing the game. In the near future, I plan to involve my associates as collaborators for the project, since we have a lot more planned than I originally thought. “Union Buster Tower Defense” might be a game feature that we actually consider making."}, {"post_id": 2559, "ts": "2026-06-05T03:26:38Z", "hours": 4.4472, "text": "How in the world do people format these to look nice? Is it markdown? something . Can’t tell if that worked. Doesn’t show me in the writing box. Progress for the day includes creating the first “stage” or area of the game. It’s themed after a sidewalk, as you are currently broke and probably living on one. Central cavity will be able to display UI for certain mini-games/elements related to tasks such as buying or selling items. All the buttons have been reformatted, since they didn’t look that good the first time I made them. Clicking the buttons has more response now since it gets smaller upon button press. I wasted so much time re-doing pixel art."}, {"post_id": 1878, "ts": "2026-06-04T02:55:48Z", "hours": 2.3606, "text": "Hopefully, the video that I attached will display properly, though I have no indication of whether it will as of writing. Progress today includes finishing the title screen for the player to start the game. There are currently three buttons with un-programmed functionalities, including a “Start Game”, “Credits”, and “Settings” button. There is also a large title for the game, which took me a bit too much unlogged hours to create for what it’s worth. Each element “flies” onto the screen, title from the right, and buttons from the left. Movement is generated using lerp() for fluidity."}, {"post_id": 1630, "ts": "2026-06-03T19:18:55Z", "hours": 3.9267, "text": "Making a 2D based semi idle game. Like any generic game in the genre, it starts with a button, so I just made that so far. Each button has an icon that can display pixel art, and a textbox for text. The original plan was to have a border that could grow/shrink independently of the main body of the button, however it was hard to create a general button function I could use for various purposes, as it didn’t scale properly to ensure a constant padding throughout. Settled on this type of button, that expands slightly when hovering over it so you can more visibly see the purple background. Might have to make other types in the future, but it should be fine for now. Button uses lerp function to smoothly expand the background sprite through time. Images show the button normally, and the button when hovering over it with the cursor. Also made some title screen art that will definitely be changed."}]...
|
Title: Celestial Capitalist by @idi0cy | Stardance Title: Celestial Capitalist by @idi0cy | Stardance
Devlogs:
Making a 2D based semi idle game. Like any generic game in the genre, it starts with a button, so I just made that so far. Each button has an icon that can display pixel art, and a textbox for text. The original plan was to have a border that could grow/shrink independently of the main body of the button, however it was hard to create a general button function I could use for various purposes, as it didn’t scale properly to ensure a constant padding throughout. Settled on this type of button, that expands slightly when hovering over it so you can more visibly see the purple background. Might have to make other types in the future, but it should be fine for now. Button uses lerp function to smoothly expand the background sprite through time. Images show the button normally, and the button when hovering over it with the cursor. Also made some title screen art that will definitely be changed.
Hopefully, the video that I attached will display properly, though I have no indication of whether it will as of writing. Progress today includes finishing the title screen for the player to start the game. There are currently three buttons with un-programmed functionalities, including a “Start Game”, “Credits”, and “Settings” button. There is also a large title for the game, which took me a bit too much unlogged hours to create for what it’s worth. Each element “flies” onto the screen, title from the right, and buttons from the left. Movement is generated using lerp() for fluidity.
How in the world do people format these to look nice? Is it markdown? something . Can’t tell if that worked. Doesn’t show me in the writing box. Progress for the day includes creating the first “stage” or area of the game. It’s themed after a sidewalk, as you are currently broke and probably living on one. Central cavity will be able to display UI for certain mini-games/elements related to tasks such as buying or selling items. All the buttons have been reformatted, since they didn’t look that good the first time I made them. Clicking the buttons has more response now since it gets smaller upon button press. I wasted so much time re-doing pixel art.
Inventory Inventory system that displays all the items you currently possess. Upon clicking on one of the items in your possession, information on the item such as quality, value, and item name will be displayed. More information is planned to be available to the player, however that has not been developed yet. Unfortunately, the item icons for the inventory do not have the same smooth lerp scaling that I was able to use for the buttons, as texture buttons do not have a proper scale function. I could theoretically group a texture button with a sprite2D node, however the gridbox I’m using to organize all the items is unlikely to cooperate. All the item’s values are spaced out automatically so they have room and aren’t too close together. Each item has different information, and it’s only bestowed to them each time the inventory opens, since that is when the icons are generated. This forced me to do some weird signal connection logic in the scripts, but it worked out. ##Sprite Art Sprite art is overrated, and I want to stop doing it. All my hours are being spent drawing water bottles and pencils in krita, just to never be logged. I offloaded one of the sprite arts to my friend because they were bored, and he produced the hamburger sprite. Note that the hamburger sprite icon does NOT have the same colour as all of the other icons, because said friend is unable to use the colour picker tool for whatever reason. ##New Markdown Superpowers I learned how you format these, and I’m hoping it ends up looking good upon posting. I don’t really have a way of telling as of writing, however. ##Way too ambitions Me and associates started actually being interested in developing the game. In the near future, I plan to involve my associates as collaborators for the project, since we have a lot more planned than I originally thought. “Union Buster Tower Defense” might be a game feature that we actually consider making.
Timer Created a time variable to count in game time of day, and a time button/counter for the player to tell what time it is. I plan to have different minigames operate with separate loot-tables or success chances depending on what time of day it is. Pretty short devlog, but I’ll have to integrate this time variable into a LOT of different features that I don’t completely look forward to. New and improved markdown superpowers I think I’ve figured it out. Hopefully I no longer fumble all my markdown. But then again I still have no way of telling.
Social Interaction Studies show I am not fond of it, but I’m still programming all of that into my game. This is the beginning of the sell function, where you are able to sell off your goods to strangers on the street. Having it be named “Sell” is a bit misleading, since the general game mechanic is a bit more broad than that. When you approach a stranger, you will be able to initiate a sales pitch, beg, steal, fake an injury, and tons of more fun options for making money. I’m still thinking of what I want as minigames for all of those, as I’m not sure if there will be separate minigames for each one. Each action you perform will have differing chances of success depending on game performance and the person you approach. For example, shouting into a crowd that a kid just injured you and demanding payment from said kid will have a zero percent chance of success. As of now, it still needs polishing, and while I’ve gotten the big obvious bugs out of the way (nothing rendering, nothing rendering after I click another button and go back, nothing rendering once more), I’m sure more await me. Next devlog will likely be on polishing the UI for the sell window. Finally using that clock Depending on what time of day it is, you are likely to find more/less strangers. If it’s rush hour, more people will be on the street in comparison to at 1 AM. Sprite art strikes back Everything was fine when I was drawing water bottles or whatever, but people are too much. In the meantime, I’ve substituted the human appearance with a sprite that in no way alludes to my mental state at the time of drawing. As soon as my friend who can actually draw is freed from the shackles of crunching at the end of school, I am selling their soul to the sprite art directory. Don’t tell them I said that.
Crushed buble emoji. Knowledgeable thoughts cannot describe my disappointment.
Action Screen and the Power of Friendship For actual game development, the main progress made was continuing to develop the action screen. After you approach a stranger, you can now see their sprite art in a zoomed in fashion, and click on some actions. As you can see in the video, after the first part where I flex my new sprite art, clicking on an action gives a description of what it will do, and clicking the take action button to confirm that has the terminal display some fun text before the mini-game starts. I don’t believe I ran into too much bugs while developing this, and I haven’t gotten to the actually much harder part, which are the actual mini-games. I solved that previously devlogged bug with like five lines of code it was so infuriatingly easy. New Sprites You may be asking, “idi0cy, I saw your water bottle sprites, and I find myself confounded as to how you have managed to improve so much in your art.” Your suspicions are correct. I’m not making that art, my friend Ratseer is, because I got them on the project. They probably won’t code a lot for now since they still need to decipher the horrendous logic I used in the making of this game. It is very strange knowing that there is likely nobody actually reading this except for said friend, and now the acknowledgement of said fact might have just made it more awkward.
Sell me this pen I finished the minigame for selling/haggling your items away. My markdown formatting is going to downgrade because I’m honestly not that motivated this feature took way too long to program, and i’m not very energetic right now. A couple things. After you talk to the person, you select which item you want to sell, and then sell it. There are dialogue options, and the safer ones like recommend make the minigame easier but you make less progress towards convincing them each time you succeed in clicking the button, but the riskier options like fearmonger are high reward types. After that, you can give a highball or lowball offer on a scale. The game calculates your chances of succeeded by combining pure randomness, your progress towards convincing them, and how much you priced your item in comparison to it’s actual value. Ignore the system text that says “five tries remaining”, that is vestigial and I forgot to remove it after redoing the whole minigame design. I can’t believe I spent 8 hours on this, and it isn’t even polished. Cool New Art Yes, as you can see, my friend is an absolute lifesaver when it comes to me trying to not lose my soul to krita. Lots of great sprite art here that makes the game look much better. I’ll have to clarify some text elements to make them more legible but it should be fine for now. Circle of ignorance If knowledge was a circle of light in a dark 2D plane, ignorance would be the darkness. We only reveal how much of it we find ourselves in by seeing the circumference of our small circle of knowledge. The more knowledge we obtain, the more unknown we must face. I’ve become bluntly aware of my own little ignorance circle. I’ve only done one of the five actions, and it’s unpolished, and it took me 8 hours, and the money isn’t even tracked because the ledger hasn’t been programmed yet, and I can only feel the great abyss devouring my spirit slightly more by the day. Watch the attached video to see how it works. I know, it isn’t that visually appealing, and I’ll probably spam lerp functions again to make it look smoother, but IT IS WHAT IT IS.
Polishing 0 Couple of polishing points that I put into the game to freshen things up and solve all the bugs that haggling made. Items are removed from inventory after selling, strangers walk away after you fail a sell attempt with them, and I fixed an integer division error that led to fearmongering being physically impossible to complete when you select it as a minigame. While I was working on the sell items minigame, my friend Ratseer has been working on the ledger which tracks all the finances. I’m too lazy to link him, but you should check it out over at his profile, if he devlogged it. I’ll put a video of it working here, but that’s just because I don’t think I can post this without a media element.
Beg The beg minigame has been completed, meaning you can now get on your knees and start praying for money. I also did some polishing work, but I have absolutely no recollection of that. Frontotemporal dementia is simply a wonder, isn’t it? \ I’m also trying some new mark down. Let’s see if my paragraphs space properly. \ When you beg to someone, you get “dialogue options”. The options are based off the three methods of persuasion, Ethos, Logos, and Pathos. Pathos is appealing to human emotions like empathy, logos is using logic, and ethos is using authority to prove an argument. Each stranger will have a different reception to the persuasion types, based off data values stored in the code. \ You have 8 chances to beg. I think. I might have changed the value. Again, frontotemporal dementia. \ Everything is ledger compatible. If you get less than 25 progress somehow, which I might change to make it more difficult, you are rejected and cannot approach the stranger again (until strangers refresh). The more you use one strategy of persuasion, the less effective it gets. I plan to make this effect more pronounced when balancing. \ That’s it. Please let this markdown formatting succeed.
Nothing is working I’m trying out on making the fake injury option, and it is not working as intended. It’s supposed to have a rhythm based minigame, sort of like friday night funkin even though i’ve never played that before, but it clearly isn’t working. \ All the icons are sideways, there are too much notes, and for the longest time none of them would scale correctly because I forgot to assign the new scale to the scale property. \ Markdown, again Okay I think I got it this time. If I just leave the backslashes alone…
Blackmail and a Broken Clavicle You can now fake an injury, and demand blackmail to keep quiet about it and not make a fuss. In the true spirit of Reigen Arataka, you can pretend your clavicle is broken too. All of you should watch mob psycho. The recording attached better be the right one. . I’m still doing the backslashes. I’ve given up. I might try new formatting another day, but I’m tired. . Alright, so the minigame for faking an injury is pretty simple, its an fnf like rhythm game that is so unbalanced it’s insane. You are deducted points for pushing any button, and are given points for if you hit a note. You will be able to tell if you hit a note because it will expand like a balloon and fade away like my employment opportunities. You are given more points if the note is closer to the filling the center cavity of the button. . The point of this is to reward actually hitting them on time, and not just spamming. Missing notes deducts points. Severity of injury being faked determines game difficulty. Minigame performance has certain weight on how successful you are in getting money. If you perform in a negative fashion, it’s over. After blackmailing a stranger (successful or not), they will never talk to you again (kinda). They are removed from your current roster of strangers, but they might come back when reroll happens since we only have so much stranger types so far. . This thing is so heinously unbalanced, it’s insane. All the values need to be tweaked, and I haven’t done enough playtesting to know if it is fair or not. I’m hoping tweaking the values will be easy, but it might be hard to polish. That’s for another day. . Update on friendship My friend is working on actually interesting randomized dialogue, so that should be something to look forward to. Check out Ratseer’s stuff.
I’m Bad at Coding Recently, I’ve been trying to code a typing minigame where you do a type test to increase your chances of success. This is for the con action of Celestial Capitalist, where you just scam people. A couple of revelations have been made while I’ve been working on this, the first of which is that I’m bad at coding. As you can hopefully observe in the game, it’s supposed to be structured after a typing test like monkeytype. Each time you get it right, it highlights white. When you get a word wrong, it highlights it red. When you get it wrong on a space, a new letter is appended where you got it wrong. The most basic elements of this are working, such as getting the text correct and getting the normal non-space error text working. You know what’s not working? The other parts. Each time I try to do the error after a space, it bugs out because the backspace option doesn’t go well with it. When a word only autowraps after it’s completed, such as when I type “because” in the video, it only goes to where it should be after it’s done, which looks ugly. The indexing is wrong, little things work, and you can all see it in the video. I think I’ve also made some of the most inefficient code ever designed. I’ll keep toiling away at the minigame, and then toil away some more to actually integrate it into the minigame. These bugs will drive me to insanity. Well Well Well Would you look at that? They added a preview section. Where you can preview all of your markdown formatting. Y’know when that could have been useful? I sure do wonder. Markdown formatting is now my enemy.
Con Minigame Completed It’s been nine days, and I’ve worked on one minigame for 12 hours. The typing based minigame for conning strangers is now complete! When you con someone, you choose how you want to con them, for example a fake business opportunity, magical exorcism, or maybe even an unwinnable game to bet money on. You then type out a randomly picked prompt that was premade, and you are scored on your speed and accuracy. This determines how likely you are to succeed. You can also decide how much stakes you want to give the con, so that’s something. When you get something wrong, it highlights what was supposed to be typed red, unless you got it wrong on a space, in which it puts in what character you typed in red highlight where you typed it.. I won’t lie, it’s a bit unpolished. There are some weird text wrapping bugs that are unpleasant to look at, but it should be fine for the most part. This kinda took way too long, but whatever. We take what we can get. Meanwhile, at the Legion of Doom… My associate who is also working on this project, @Ratseer has gotten strangers new sprites, names, and all that, along with a brand new scavenging system which I recommend you check out on all his devlogs. Formatting still sucks The preview function is great, thank you Stardance team. But still, now the ctrl Z shortcut is wonky, it’s harder to put in more line breaks when pressing the enter key, and also I tried uploading this earlier with the video and it said the video size was too large, and deleted the entire devlog, so now I’m writing this again. Features for thought. Celestial Capitalist Thank you for checking in with Celestial Capitalist, developed by @idi0cy and @Ratseer .
Steal Function In Progress Of course, there needs to be an option to rob people. Hence, stealing. I’ve programmed the stealth minigame into the stealing function of the game, and it works perfectly fine. The strength one, well not so much. Going to have to give a bit more of a wait on that one. Heavily inspired by Stardew Valley’s fishing minigame. I have to log these hours before I reach ten, because I just found out that stardance does NOT do overtime pay. Celestial Capitalist Greedily developed by @idi0cy and @Ratseer .
Quota Function Completed I’ve been on just a bit of a hiatus. The steal function has been fully completed, with a strength minigame based off both aim training and also timing. Also, I have a functioning quota system. You have certain tasks to complete before moving on to the next “level”, which definitely won’t be programmed very soon at the exponentially decaying rate that I’m moving at. I’m going to start looking at returning to daily contribution, all for those ikea sharks. You can focus the progress bar on certain tasks to complete, such as the cash requirement which is the only one right now. It fills in automatically, and has a nice texture. See the video for how it works. Thank you for viewing celestial capitalist, its not abandoned quite yet. Debatably developed by @idi0cy and @Ratseer .
Skill Point System Completed I’m back, with more consistent developing time. The skills system has been completed, and its relatively simple which is actually a nice break. Typing minigame nearly killed me. You have certain attributes that you can divest your skill points into. A lot of these are the typical DnD stats, but some of them are different. Every three minutes you gain a skill point, which might be changed for balancing. Every time you complete a minigame from the get money section, you have the chance to get a skill point. Certain skills help with certain minigames, and the more you have the more positive modifiers you get for that minigame. This is all pretty intuitive. There are some parts not yet filled out, since I don’t know at all how the scavenge code works because my friend made that and not me. Celestial Capitalist Inconsistently developed by @idi0cy and @Ratseer .
Title Screen Functionality For the longest time, the title screen has been completely non-functional. That ends today, when I do some actually easy coding and give functionality* to all of the buttons I put onto the title screen. Start game initiates a loading popup before loading the next scene. Credits gives the same text each time, with the exception of the green highlighted text, which chooses a random adjective each time the credits button is pressed. The settings are a lie. Celestial Capitalist var wordBank = ["debatably", "demonstrably", "woefully"] var msg = str(wordBank[randi_range(0, len(wordBank) - 1]) + " developed by @idi0cy and @Ratseer" print(msg)
Random Events It’s another day where I’ve actually done some coding work, and I completed the random events function of this game. Every 180 seconds a randomly selected random event occurs, and a popup shows up telling you what happened. Get robbed, find money on the floor, get robbed again, anything could happen. Each event has a different “weight” to it, which determines how likely it is to happen. In this recording, I changed the weight of losing an item to 2000, giving it a practically guaranteed chance of being picked. Event log will probably be removed, since it isn’t actually useful. Celestial Capitalist Legally developed by @Ratseer and @idi0cy .
Title Screen and a Heftier Quota I did a couple things, starting with an upgrade to the title screen system. Now, you can read a bit about your role in this game before you’re thrown into the deep end. I wrote up a quick explanation, but it might get changed in the future based on vibes. The other big change is that I added more quota requirements. Instead of just making 500 bucks, you gotta do some more work like sell items, or gain skill points. There are three right now, and I plan to keep it that way. Bug Fixes Since CC is about ready to ship any time now, we’re doing some final bug patches and implementations to the game. I fixed a counting error on the fake injury game mode, as well as a bad gameplay mechanic in the sell minigame that caused targets to spawn on top of each other. Celestial Capitalist Treacherously developed by @Ratseer and @idi0cy
Polishing and Suffering Celestial capitalist is nearing it’s completion, so over the past week or so I’ve just been polishing everything. Fixing bugs, balancing minigames, and small changes that make the game less buggy. My friend @Ratseer has been working on a couple of these mechanics, including revamping a goofy tutorial blob I wrote. Sound Effects A big change to note was the sound effects, and this is where the suffering comes in. I had to make a global script with a button signal that each button would send, which would cause a sound to play. After a big of debugging, I hooked up pressing a button to the signal, and it worked. Almost. The signal was sending, and it was telling the AudioStreamPlayer to play the sound, but for some reason it wasn’t. We testing using an input to play the sound, and that worked perfectly fine. I tried using another proxy function for no reason, and it didn’t work either. We even tried having both the input and the signal change the same variable to true, where the sound would play then it set to false again. This didn’t work. To this day, I’m not sure why nothing worked, and I’m not sure I’ll ever find out. But it was fine, since we eventually just made a new global script and for some reason everything worked totally normally after that. The image attached below depicts the setup we used for this coding conundrum. Celestial Capitalist Shrewdly developed by @Ratseer and @idi0cy .
Finished The first stage, and therefor the shipped version of Celestial Capitalist (all rights reserved) is completed! I just spent over four hours in a voice call with @Ratseer patching all the bugs and balancing all the minigames. Audio settings work, but only on the editor version. The only forum post we found with a possible answer just told us they fixed but don’t know how, so our questions were not answered. Minigames were balanced, the sort. Very, very stupid code was fixed (more than I remember writing). More importantly, they sell soy sauce by the buckets and they also have deluxe versions worth hundreds of dollars. This fact was found out after I realized we priced soy sauce at $45. All the items were subsequently revalued. Celestial Capitalist Finally (but not fully) developed by @Ratseer and @idi0cy . Thank you for your patience.
Ships:
Celestial Capitalist is a simulation game where the player simultaneously builds and ascends the corporate ladder from the bottom of the street to the self-built throne at the top of the cosmos. Beg your way from homelessness, run a lemonade stand, scam grandmas on the internet, start a cult, play union-buster tower defence, and generally just have a grand stupid time while the world slowly bends to your will. Coding is mighty stupid, and I had a lot of trouble patching all of the many bugs. With all that out of the way, I hope you enjoy Celestial Capitalist!...
|
1793004977.0964324
|
1793091377.0964324
|
|
33986
|
Turtlebrowse by @leethana | Stardance
|
leethana
|
1
|
92.7
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T14:07:25Z", "hours": 57.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built Turtlebrowse, a Material 3 Expressive, Chromium (JCEF) based agentic browser that can navigate the web autonomously with you. Features Discord Rich Presence, a YouTube video downloader with yt-dlp, customizable appearence, many tools for the AI agent to navigate the wb for you, and more!", "repo": "https://github.com/ingStudiosOfficial/turtlebrowse", "demo": "https://github.com/ingStudiosOfficial/turtlebrowse/releases/latest"}]...
|
[{"post_id": 81234, "ts": "202 [{"post_id": 81234, "ts": "2026-10-20T12:09:04Z", "hours": 5.07, "text": "added userscripts scaffolding and a new easter egg :)"}, {"post_id": 79741, "ts": "2026-10-15T08:21:14Z", "hours": 0.4258, "text": "fixed windows focus bug finally. after 9 months. youre telling me the answer is a simple clear global focus owner. really man?"}, {"post_id": 79022, "ts": "2026-10-12T12:03:43Z", "hours": 5.045, "text": "added auto updating for linux appimages. i also improved the adblocker and ported a cube minigame into the browser."}, {"post_id": 78054, "ts": "2026-10-09T12:08:14Z", "hours": 12.2119, "text": "Added adblocking, zooming, new improved UI, and favicon support!"}, {"post_id": 72634, "ts": "2026-09-23T12:15:24Z", "hours": 1.9778, "text": "Added an integrated terminal using JediTerm and pty4j to the browser sidebar. Silly feature but cool and useful. First browser to do so."}, {"post_id": 72176, "ts": "2026-09-22T11:45:30Z", "hours": 1.3872, "text": "Added fullscreen mode support and fixed toolbar bad contrast when dark mode bug."}, {"post_id": 71083, "ts": "2026-09-20T08:49:42Z", "hours": 2.7953, "text": "Added OS theme detection for light/dark mode. Modified the buttons and text to follow the theme as well."}, {"post_id": 70650, "ts": "2026-09-19T14:54:50Z", "hours": 2.745, "text": "Added an update microservice using Go and migrated the update UI to the settings page."}, {"post_id": 70467, "ts": "2026-09-19T07:56:12Z", "hours": 4.0381, "text": "Added find and replace to Turtlebrowse and a new tool panel that can be swapper for AI, find and replace, and yt-dlp"}, {"post_id": 70101, "ts": "2026-09-18T13:43:43Z", "hours": 5.9531, "text": "Added browsing history, made tab switching more efficient. I struggled with fixing the grey paint on tab switch bcuz it looks like its unfixable and an issue with JCEF on Linux."}, {"post_id": 69527, "ts": "2026-09-17T07:20:24Z", "hours": 13.5119, "text": "Added Linux AppImage, YouTube video downloader, and more! Features and bugs fixed: YouTube video downloader via yt-dlp Better menu buttons Web browser registration and xdg-open handlers on Linux Frontend search suggestor AppImage build"}, {"post_id": 47273, "ts": "2026-08-15T03:00:13Z", "hours": 8.1233, "text": "Multiple new changes in Turtlebrowse v1.4.5, including: Setting to enable AI integration and model selection New Tab settings New Tab wallpaper uploading Migrated from Vue to Nuxt for turtlebrowse.ingstudios.dev for better SEO Improved performance for wallpapers (serving images directly from backend rather than creating an ObjectURL based on the returned Blob)"}, {"post_id": 43807, "ts": "2026-08-09T07:27:24Z", "hours": 2.9322, "text": "I used the DuckDuckGo autocompleter API to add autocompletions to Turtlebrowse. It uses a JavaFX Popup component with an embedded ListView. I also changed the jpackage to use a custom jlink."}, {"post_id": 41298, "ts": "2026-08-05T13:16:17Z", "hours": 3.7625, "text": "Completed the settings page! User can now choose between many different search engines including Brave Search, DuckDuckGo, Google, Startpage, Vyntr, Bing and Yahoo. Users can also choose to enable or disable the Discord Rich Presence IPC connection."}, {"post_id": 39991, "ts": "2026-08-03T10:42:48Z", "hours": 2.4553, "text": "we (finally) managed to fix macos build on turtlebrowse! turns out the issue was single process flag that had to be added because of linux and focus issues that caused a StackOverflowError on mac! try v1.2.9 now at https://turtlebrowse.ingstudios.dev !"}, {"post_id": 36840, "ts": "2026-07-29T04:55:36Z", "hours": 3.2208, "text": "Fixed some critical bugs, including: AI chat agent freezing main thread due to joining virtual thread Fixed AI chat not running because did not start the thread Fixed the search tool returning 429 due to the lack of headers"}, {"post_id": 32267, "ts": "2026-07-21T10:25:02Z", "hours": 5.6911, "text": "Fixed some bugs and added new features in the new update such as: Discord Rich Presence Profile editing Stability fixes"}, {"post_id": 27063, "ts": "2026-07-12T08:46:45Z", "hours": 11.7428, "text": "Added new features and bug fixes such as: Multi process architecture Multiple isolated user profiles Fixed the profile switcher Fixed the Ctrl + L shortcut to focus the URL bar Added the Ctrl + W shortcut to close the current tab"}]...
|
Title: Turtlebrowse by @leethana | Stardance
Devl Title: Turtlebrowse by @leethana | Stardance
Devlogs:
Added new features and bug fixes such as: Multi process architecture Multiple isolated user profiles Fixed the profile switcher Fixed the Ctrl + L shortcut to focus the URL bar Added the Ctrl + W shortcut to close the current tab
Fixed some bugs and added new features in the new update such as: Discord Rich Presence Profile editing Stability fixes
Fixed some critical bugs, including: AI chat agent freezing main thread due to joining virtual thread Fixed AI chat not running because did not start the thread Fixed the search tool returning 429 due to the lack of headers
we (finally) managed to fix macos build on turtlebrowse! turns out the issue was single process flag that had to be added because of linux and focus issues that caused a StackOverflowError on mac! try v1.2.9 now at https://turtlebrowse.ingstudios.dev !
Completed the settings page! User can now choose between many different search engines including Brave Search, DuckDuckGo, Google, Startpage, Vyntr, Bing and Yahoo. Users can also choose to enable or disable the Discord Rich Presence IPC connection.
I used the DuckDuckGo autocompleter API to add autocompletions to Turtlebrowse. It uses a JavaFX Popup component with an embedded ListView. I also changed the jpackage to use a custom jlink.
Multiple new changes in Turtlebrowse v1.4.5, including: Setting to enable AI integration and model selection New Tab settings New Tab wallpaper uploading Migrated from Vue to Nuxt for turtlebrowse.ingstudios.dev for better SEO Improved performance for wallpapers (serving images directly from backend rather than creating an ObjectURL based on the returned Blob)
Added Linux AppImage, YouTube video downloader, and more! Features and bugs fixed: YouTube video downloader via yt-dlp Better menu buttons Web browser registration and xdg-open handlers on Linux Frontend search suggestor AppImage build
Added browsing history, made tab switching more efficient. I struggled with fixing the grey paint on tab switch bcuz it looks like its unfixable and an issue with JCEF on Linux.
Added find and replace to Turtlebrowse and a new tool panel that can be swapper for AI, find and replace, and yt-dlp
Added an update microservice using Go and migrated the update UI to the settings page.
Added OS theme detection for light/dark mode. Modified the buttons and text to follow the theme as well.
Added fullscreen mode support and fixed toolbar bad contrast when dark mode bug.
Added an integrated terminal using JediTerm and pty4j to the browser sidebar. Silly feature but cool and useful. First browser to do so.
Added adblocking, zooming, new improved UI, and favicon support!
added auto updating for linux appimages. i also improved the adblocker and ported a cube minigame into the browser.
fixed windows focus bug finally. after 9 months. youre telling me the answer is a simple clear global focus owner. really man?
added userscripts scaffolding and a new easter egg :)
Ships:
I built Turtlebrowse, a Material 3 Expressive, Chromium (JCEF) based agentic browser that can navigate the web autonomously with you. Features Discord Rich Presence, a YouTube video downloader with yt-dlp, customizable appearence, many tools for the AI agent to navigate the wb for you, and more!...
|
1793004975.844571
|
1793091375.844571
|
|
35799
|
TurboNinja by @TheGeekachu | Stardance
|
TheGeekachu
|
1
|
15.0
|
161
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:34:28Z", "hours": 15.0, "multiplier": 10.89, "payout": 161, "blessing": "neutral", "text": "I made this. TurboNinja. Yes, I suck at naming stuff. But this game taught me more about gamedev than any game I’ve made, mostly because I didn’t use an engine. Nope. This is all pure code, written by yours truly. Thanks for being here! BTW, arrow keys to move and X to dash attack.", "repo": "https://github.com/vijayakasee-debug/TurboNinja", "demo": "https://thegeekachu.itch.io/turboninja-preview"}]...
|
[{"post_id": 73383, "ts": "202 [{"post_id": 73383, "ts": "2026-09-25T01:30:42Z", "hours": 0.6725, "text": "I’m done. I’m finally done. The game is now on Itch.io and available to play! THE GAME DOES NOT WORK ON SAFARI BECAUSE APPLE IS STUPID. I just discovered this after the ship, so I came back to edit. Please play on Chrome or Firefox."}, {"post_id": 72905, "ts": "2026-09-24T00:16:24Z", "hours": 0.6064, "text": "IM DONE!!!! All that’s left is making an exec and putting it on Itch.io!!!! THE GRAPHICS ARE AMAZING!!!"}, {"post_id": 72893, "ts": "2026-09-23T23:40:35Z", "hours": 0.3989, "text": "I’m currently working on silhouettes for the game and all characters, but I’m having just a teensy bit of layering issues… Only the silhouettes are visible and literally nothing else…"}, {"post_id": 72377, "ts": "2026-09-22T19:48:13Z", "hours": 0.7825, "text": "SO, I added level transitions. You can now beat a level and go to the next one. I also just realised that the levels I’ve been designing are insanely hard, so good luck playing them all the way through!"}, {"post_id": 71984, "ts": "2026-09-21T22:13:01Z", "hours": 2.9931, "text": "AAaaaaahhhh!!! I finally implemented a particle system for sparks that uses advanced trigonometry, and I added enemy and player death, the animations for which are completely written without any assets using only trigonometry, pygame.polygon() and the math module. PAINNN!!!"}, {"post_id": 70824, "ts": "2026-09-19T20:39:05Z", "hours": 0.6794, "text": "I added a Dash mechanic. After much pain in the arse, I realised that the reason he was shooting leaves when dashing was I forgot to import the Ninja dash effect, so VS Code for some reason decided to import leaves instead. He no longer spews leaves when dashing, which I consider a win!"}, {"post_id": 70408, "ts": "2026-09-19T04:04:20Z", "hours": 0.4569, "text": "He no longer can jump to the high heavens to meet Jesus. He gets one jump, and I’ve added some really nice walljumps, yippee!"}, {"post_id": 70402, "ts": "2026-09-19T03:29:51Z", "hours": 1.0106, "text": "So, I really didn’t need to do this, but the tutorial I’m following for the base functionality because it comes with the assets I’m using said I can add a particle system for leaves, so I thought, why not? The results look beautiful and I’m glad I did it. Also, check out the new levels, made by yours truly with the new level editor!"}, {"post_id": 66847, "ts": "2026-09-12T19:25:12Z", "hours": 0.5358, "text": "After much pain and annoyance, I got fed up with coding my own level editor, and got a pre-made Python file for one, then modified it to the controls I like, which took longer than I appreciate. Unfortunately, some editing work was done on a different computer, so Hackatime didn’t track it. Not much though, so no biggie."}, {"post_id": 40830, "ts": "2026-08-04T16:27:24Z", "hours": 1.3808, "text": "I added animations. I realised that you wouldn’t be able to tell there were animations if I just took a photo of the idle one, so I locked in and took a screenshot while he was in midair, in the jumping animation. Next step is gonna be cooked. I have to write a level editor from scratch!"}, {"post_id": 37756, "ts": "2026-07-30T17:47:05Z", "hours": 0.8744, "text": "I added clouds. Exciting, I know. But this took a lot more work than I care to admit. At first the clouds were going diagonal. I spent half an hour fixing it, and succeeded in making them go the other way, still diagonal. Then I realised that in my endless wisdom, I’d updated the y-axis with the values meant for the x-axis. Now it’s fixed."}, {"post_id": 31022, "ts": "2026-07-19T02:35:16Z", "hours": 0.5706, "text": "I added a camera that follows the player, so you can watch him infinitely jump across the heavens. Bro’s on his god tier loadout."}, {"post_id": 29739, "ts": "2026-07-16T20:40:52Z", "hours": 1.5772, "text": "Added collisions and jumping so he doesn’t fall endlessly. I have the opposite problem now. He isn’t restricted to double jumps. Either my ninja knows how to fly or air is solid. Pick one, beats me!"}, {"post_id": 29196, "ts": "2026-07-15T22:41:02Z", "hours": 2.2247, "text": "Added gravity, tilemaps, and a ninja. You can’t see him in the photo because I’v added gravity, but, er, not collisions as of yet, so he’s infinitely falling through space, poor guy."}]...
|
Title: TurboNinja by @TheGeekachu | Stardance
Dev Title: TurboNinja by @TheGeekachu | Stardance
Devlogs:
Added gravity, tilemaps, and a ninja. You can’t see him in the photo because I’v added gravity, but, er, not collisions as of yet, so he’s infinitely falling through space, poor guy.
Added collisions and jumping so he doesn’t fall endlessly. I have the opposite problem now. He isn’t restricted to double jumps. Either my ninja knows how to fly or air is solid. Pick one, beats me!
I added a camera that follows the player, so you can watch him infinitely jump across the heavens. Bro’s on his god tier loadout.
I added clouds. Exciting, I know. But this took a lot more work than I care to admit. At first the clouds were going diagonal. I spent half an hour fixing it, and succeeded in making them go the other way, still diagonal. Then I realised that in my endless wisdom, I’d updated the y-axis with the values meant for the x-axis. Now it’s fixed.
I added animations. I realised that you wouldn’t be able to tell there were animations if I just took a photo of the idle one, so I locked in and took a screenshot while he was in midair, in the jumping animation. Next step is gonna be cooked. I have to write a level editor from scratch!
After much pain and annoyance, I got fed up with coding my own level editor, and got a pre-made Python file for one, then modified it to the controls I like, which took longer than I appreciate. Unfortunately, some editing work was done on a different computer, so Hackatime didn’t track it. Not much though, so no biggie.
So, I really didn’t need to do this, but the tutorial I’m following for the base functionality because it comes with the assets I’m using said I can add a particle system for leaves, so I thought, why not? The results look beautiful and I’m glad I did it. Also, check out the new levels, made by yours truly with the new level editor!
He no longer can jump to the high heavens to meet Jesus. He gets one jump, and I’ve added some really nice walljumps, yippee!
I added a Dash mechanic. After much pain in the arse, I realised that the reason he was shooting leaves when dashing was I forgot to import the Ninja dash effect, so VS Code for some reason decided to import leaves instead. He no longer spews leaves when dashing, which I consider a win!
AAaaaaahhhh!!! I finally implemented a particle system for sparks that uses advanced trigonometry, and I added enemy and player death, the animations for which are completely written without any assets using only trigonometry, pygame.polygon() and the math module. PAINNN!!!
SO, I added level transitions. You can now beat a level and go to the next one. I also just realised that the levels I’ve been designing are insanely hard, so good luck playing them all the way through!
I’m currently working on silhouettes for the game and all characters, but I’m having just a teensy bit of layering issues… Only the silhouettes are visible and literally nothing else…
IM DONE!!!! All that’s left is making an exec and putting it on Itch.io!!!! THE GRAPHICS ARE AMAZING!!!
I’m done. I’m finally done. The game is now on Itch.io and available to play! THE GAME DOES NOT WORK ON SAFARI BECAUSE APPLE IS STUPID. I just discovered this after the ship, so I came back to edit. Please play on Chrome or Firefox.
Ships:
I made this. TurboNinja. Yes, I suck at naming stuff. But this game taught me more about gamedev than any game I’ve made, mostly because I didn’t use an engine. Nope. This is all pure code, written by yours truly. Thanks for being here! BTW, arrow keys to move and X to dash attack....
|
1793004974.6227162
|
1793091374.6227162
|
|
34034
|
EarthX by @alidoruk | Stardance
|
alidoruk
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T18:58:18Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "EarthX is a 3D Earth visualization web app powered by CesiumJS and integrated with Gemini AI. It allows users to explore satellite imagery and interact with AI-driven geographic insights. The main challenge was integrating Cesium with AI APIs securely and handling spatial data rendering efficiently. I’m proud of creating a seamless 3D globe experience with real-time AI context", "repo": "https://github.com/alidoruk320-coder/EarthX", "demo": "https://transcendent-truffle-a83c47.netlify.app"}]...
|
[{"post_id": 60103, "ts": "202 [{"post_id": 60103, "ts": "2026-09-02T08:06:04Z", "hours": 1.0986, "text": "Smart Earth"}, {"post_id": 28808, "ts": "2026-07-15T09:40:30Z", "hours": 0.6208, "text": "I’m working on a global warming Earth app"}]...
|
Title: EarthX by @alidoruk | Stardance
Devlogs:
I Title: EarthX by @alidoruk | Stardance
Devlogs:
I’m working on a global warming Earth app
Smart Earth
Ships:
EarthX is a 3D Earth visualization web app powered by CesiumJS and integrated with Gemini AI. It allows users to explore satellite imagery and interact with AI-driven geographic insights. The main challenge was integrating Cesium with AI APIs securely and handling spatial data rendering efficiently. I’m proud of creating a seamless 3D globe experience with real-time AI context...
|
1793004973.737422
|
1793091373.737422
|
|
57394
|
BUMBELBEE by @asamarth875 | Stardance
|
asamarth875
|
1
|
2.76
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-15T11:46:36Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I MADE A CUSTOM TAB PAGE THAT IS BASED ON BUMBELBEE AND SPACE WHILE KEEPING THE USERPAGE LOOK LIKE MAC OS BUT COULD’NT I MAKE THE TIME LOOK THE MAC OS BUT WHATEVER THE UI LOOKS GOOD. WHEN YOU VISIT THE WEBPAGE, PLEASE OPEN THE VIDEO STICKER AND WATCH THE FULL VIDEO WITH SOUND TO ENJOY THE VIBES", "repo": "https://github.com/samarth875-netizen/BUMBELBEE", "demo": "https://bumbelbee.vercel.app/"}]...
|
[{"post_id": 69101, "ts": "202 [{"post_id": 69101, "ts": "2026-09-16T11:31:19Z", "hours": 0.7606, "text": "I CHANGED SOME CODE FROM THE STYLE.CSS AND README"}, {"post_id": 68596, "ts": "2026-09-15T11:43:12Z", "hours": 0.7881, "text": "JUST ADD THE PICTURE FOR NEW VIA APIKEYs AND LIVE LOCATION TRACKING FOR WEATHER AND SOME MORE REFINED CODE"}, {"post_id": 66888, "ts": "2026-09-12T20:45:37Z", "hours": 0.7142, "text": "added this news section so that we all shall know goverment’ (great and holy) decisions"}, {"post_id": 66850, "ts": "2026-09-12T19:34:19Z", "hours": 0.5164, "text": "i am just messing with my design and my sleep schedule(I HAVE AN EXAM TOMMROW!!!). LOVE MEEEEEEEE. I DON’T WANNA FIT THE VIDEO IN THE FRAME(CRYING EMOJI)"}]...
|
Title: BUMBELBEE by @asamarth875 | Stardance
Devl Title: BUMBELBEE by @asamarth875 | Stardance
Devlogs:
i am just messing with my design and my sleep schedule(I HAVE AN EXAM TOMMROW!!!). LOVE MEEEEEEEE. I DON’T WANNA FIT THE VIDEO IN THE FRAME(CRYING EMOJI)
added this news section so that we all shall know goverment’ (great and holy) decisions
JUST ADD THE PICTURE FOR NEW VIA APIKEYs AND LIVE LOCATION TRACKING FOR WEATHER AND SOME MORE REFINED CODE
I CHANGED SOME CODE FROM THE STYLE.CSS AND README
Ships:
I MADE A CUSTOM TAB PAGE THAT IS BASED ON BUMBELBEE AND SPACE WHILE KEEPING THE USERPAGE LOOK LIKE MAC OS BUT COULD’NT I MAKE THE TIME LOOK THE MAC OS BUT WHATEVER THE UI LOOKS GOOD. WHEN YOU VISIT THE WEBPAGE, PLEASE OPEN THE VIDEO STICKER AND WATCH THE FULL VIDEO WITH SOUND TO ENJOY THE VIBES...
|
1793004972.5795693
|
1793091372.5795693
|
|
57363
|
First Website Attempt! by @Zoezzz | Stardance
|
Zoezzz
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T02:35:37Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello there! This is my first attempt at making a website :D It was rather stressful, but I was able to gain a general understanding of HTML and CSS’s components. The challenges consisted mostly in designing the page and getting to know all the elements that could help me to create this site. :D", "repo": "https://github.com/Ziroislazy/myzirosite", "demo": "https://ziroislazy.github.io/myzirosite/"}]...
|
[{"post_id": 69906, "ts": "202 [{"post_id": 69906, "ts": "2026-09-18T01:27:24Z", "hours": 3.6042, "text": "Largest update!! Hello! It’s been some hours since the last update but I guess this is the final one! The page still uses basic HTML and CSS elements but I tried to use other things to make it a little bit more lively. Changed background: I’ve spent some time searching for a new quality background. The hardest part was adjusting it. Added “Back to the Top” bottom: Here I tried to make something different and dynamic for the page. Added more images for every section -Fixed issues about the keyframes: I’ve discovered some transitions for the page so I put one simple fade in and tried to put it in every section."}, {"post_id": 68950, "ts": "2026-09-16T03:09:01Z", "hours": 0.7094, "text": "Some thing I don’t know how to describe this, but I just wanted to draw something fast and simple so I can put it on my page El bepi quedo medio raro w"}, {"post_id": 68451, "ts": "2026-09-15T04:27:35Z", "hours": 1.2078, "text": "Nothing new, just using a lot of red variations and trying some tools. (The background is from binding of isaac and is not mine ) Me esta quedando medio raro pero bueno :v"}, {"post_id": 68355, "ts": "2026-09-15T00:29:09Z", "hours": 0.845, "text": "Just starting! I’ve recently discovered Hack Club! It’s pretty hard when you learn new concepts while reading everything in another language that is not your native one (Spanish). :,D"}]...
|
Title: First Website Attempt! by @Zoezzz | Stardan Title: First Website Attempt! by @Zoezzz | Stardance
Devlogs:
Just starting! I’ve recently discovered Hack Club! It’s pretty hard when you learn new concepts while reading everything in another language that is not your native one (Spanish). :,D
Nothing new, just using a lot of red variations and trying some tools. (The background is from binding of isaac and is not mine ) Me esta quedando medio raro pero bueno :v
Some thing I don’t know how to describe this, but I just wanted to draw something fast and simple so I can put it on my page El bepi quedo medio raro w
Largest update!! Hello! It’s been some hours since the last update but I guess this is the final one! The page still uses basic HTML and CSS elements but I tried to use other things to make it a little bit more lively. Changed background: I’ve spent some time searching for a new quality background. The hardest part was adjusting it. Added “Back to the Top” bottom: Here I tried to make something different and dynamic for the page. Added more images for every section -Fixed issues about the keyframes: I’ve discovered some transitions for the page so I put one simple fade in and tried to put it in every section.
Ships:
Hello there! This is my first attempt at making a website :D It was rather stressful, but I was able to gain a general understanding of HTML and CSS’s components. The challenges consisted mostly in designing the page and getting to know all the elements that could help me to create this site. :D...
|
1793004969.9313772
|
1793091369.9313772
|
|
57357
|
Halt! Input by @BoltyPlays | Stardance
|
BoltyPlays
|
1
|
5.0
|
40
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T05:17:26Z", "hours": 5.0, "multiplier": 7.4, "payout": 40, "blessing": "neutral", "text": "Halt! Input is a toolbox containing many features that help accomplish a certain task, or do something silly. The features so far: Keyboard blocking Mouse lock The above two is the main reason this project exists. Imagine trying to clean your keyboard/mouse and then random things happen in your computer because your keyboard is submitting random strings and your mouse is just registering random clicks (imagine this on Hyprland… yikes) Updating winget packages Flush DNS Clear clipboard Battery Report These four features are here; many people probably don’t even know these features existed. The app helps make them accessible and convenient to execute. chkdsk dism sfc Empty recycle bin These last four are for storage-related issues. Too much storage? Empty recycle bin in one click. SSD/HDD being funky? Run chkdsk, dism to fix them. Windows being stupider than usual? sfc can fix that.", "repo": "https://github.com/BoltyPlays/halt_input", "demo": "https://github.com/BoltyPlays/halt_input/releases/tag/v1.0.0"}]...
|
[{"post_id": 70423, "ts": "202 [{"post_id": 70423, "ts": "2026-09-19T05:00:01Z", "hours": 0.6978, "text": "Polished the code, and had to remove “Restart Windows Explorer” due to privilege conflicts. Updated the README.md. Time to ship! enjoy this parrot"}, {"post_id": 69501, "ts": "2026-09-17T06:01:55Z", "hours": 0.8792, "text": "YIPPIE it’s all done! now just a bit of code clean-up before ship"}, {"post_id": 67134, "ts": "2026-09-13T06:12:59Z", "hours": 0.2861, "text": "One new feature, two new fun buttons Battery Report you generate a battery report if you have one Parrot spawns a terminal with a dancing parrot Mystery spooky…"}, {"post_id": 66363, "ts": "2026-09-12T04:56:30Z", "hours": 0.64, "text": "Three new features: Update Winget packages: no more typing “winget update –all” Flush DNS: sometimes fixes website errors if the cache is outdated Clear clipboard: wipe your clipboard history of screenshots containing deleted Discord messages"}, {"post_id": 65202, "ts": "2026-09-10T05:17:19Z", "hours": 0.4144, "text": "New feature: Restarting Windows Explorer, using subprocess module"}, {"post_id": 64031, "ts": "2026-09-08T04:43:15Z", "hours": 1.3253, "text": "Made a recycling bin feature, to clear out some clutter using winshell. Wanted to add a afk feature, but couldn’t wrap my head around threading. Also managed to fix the mouse locker, and switched from tkinter to CTkinter."}, {"post_id": 61294, "ts": "2026-09-04T04:20:49Z", "hours": 0.6342, "text": "New feature: mouse no longer moves. You can still unlock it with click, going to try to remove that (pls help"}, {"post_id": 60649, "ts": "2026-09-03T04:36:34Z", "hours": 0.5239, "text": "Beginning what I think will become a toolbox of maintenance tools. First one: keyboard blocking. Did some research on it, relearnt functions and modules, and discovered tkinter. Yay!"}]...
|
Title: Halt! Input by @BoltyPlays | Stardance
Dev Title: Halt! Input by @BoltyPlays | Stardance
Devlogs:
Beginning what I think will become a toolbox of maintenance tools. First one: keyboard blocking. Did some research on it, relearnt functions and modules, and discovered tkinter. Yay!
New feature: mouse no longer moves. You can still unlock it with click, going to try to remove that (pls help
Made a recycling bin feature, to clear out some clutter using winshell. Wanted to add a afk feature, but couldn’t wrap my head around threading. Also managed to fix the mouse locker, and switched from tkinter to CTkinter.
New feature: Restarting Windows Explorer, using subprocess module
Three new features: Update Winget packages: no more typing “winget update –all” Flush DNS: sometimes fixes website errors if the cache is outdated Clear clipboard: wipe your clipboard history of screenshots containing deleted Discord messages
One new feature, two new fun buttons Battery Report you generate a battery report if you have one Parrot spawns a terminal with a dancing parrot Mystery spooky…
YIPPIE it’s all done! now just a bit of code clean-up before ship
Polished the code, and had to remove “Restart Windows Explorer” due to privilege conflicts. Updated the README.md. Time to ship! enjoy this parrot
Ships:
Halt! Input is a toolbox containing many features that help accomplish a certain task, or do something silly. The features so far: Keyboard blocking Mouse lock The above two is the main reason this project exists. Imagine trying to clean your keyboard/mouse and then random things happen in your computer because your keyboard is submitting random strings and your mouse is just registering random clicks (imagine this on Hyprland… yikes) Updating winget packages Flush DNS Clear clipboard Battery Report These four features are here; many people probably don’t even know these features existed. The app helps make them accessible and convenient to execute. chkdsk dism sfc Empty recycle bin These last four are for storage-related issues. Too much storage? Empty recycle bin in one click. SSD/HDD being funky? Run chkdsk, dism to fix them. Windows being stupider than usual? sfc can fix that....
|
1793004968.753679
|
1793091368.753679
|
|
939
|
LUNAR-HAL by @INiNiDS | Stardance
|
INiNiDS
|
1
|
78.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T18:18:07Z", "hours": 78.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finally shipping this! It honestly took forever and I burned out twice along the way, but I pushed through to get it over the finish line. Try out the live demo or grab the local build. Heads up: the web demo might feel super sluggish since the models are running on Heroku, so expect some delay. Also, all demo sessions share the same persistent worlds! Have Fun!", "repo": "https://github.com/ininids/lunar-hal", "demo": "https://lnhal.ininids.in.rs"}]...
|
[{"post_id": 75310, "ts": "202 [{"post_id": 75310, "ts": "2026-09-29T18:16:50Z", "hours": 5.1756, "text": "Alright, final devlog! Went all-in on bug squashing for this one—crushed a ton of issues, finally got CI completely green and stable, cleared out all the CodeQL alerts, and pushed the demo build. So yeah… I’m officially shipping now!"}, {"post_id": 68044, "ts": "2026-09-14T12:49:45Z", "hours": 12.1378, "text": "DevLog #9: Checkpoint Hardening & Stage 5 GNN Kinematics Convergence * This session was focused on a deep technical milestone: diagnosing a critical engine staging bug in LUNAR-HAL and driving the Stellar GNN-kinematics pipeline through the completion of Stage 5. 1. 🛠️ Staging Architecture & Atomic Checkpoint RCA (Rust) Diagnosed and resolved a critical issue in the --resume workflow where staging logic triggered a self-copy ( src == dst ), truncating output checkpoint weights upon restart. Implemented robust canonical path checking ( std::fs: :canonicalize ) to ensure fully atomic weight persistence across interruption signals ( SIGINT / SIGTERM ). Hardened checkpoint state serialization, eliminating filesystem race conditions during runtime hot-reloads. 2. Stage 5: GNN-Kinematics Training Executed the 200-epoch training run for the galactic velocity prediction model ($v_x, v_y, v_z$ derived from positions + photometry). Validated host telemetry: stable VRAM footprint on local NVIDIA GeForce RTX 5070 (~3.1 GB / 12 GB allocated) with optimal throughput (~30s / epoch). 3. Loss & Convergence Verification Train Loss: Decreased to ~0.7660 . Validation Loss: Reached a clean, stable quasi-stationary plateau at ~0.7694 . Physics Constraint: Invariant equilibrium maintained throughout ( phys_loss ≈ 0.7700 ), demonstrating high generalization without overfitting."}, {"post_id": 45625, "ts": "2026-08-12T07:29:27Z", "hours": 3.5756, "text": "* 🚀 DevLog #8: The Great Pivot — From Game to Technical Stellar Platform * The mission has changed. Following the deployment of the WebOS in DevLog #7, we realized that the “game” mechanics were holding back the true potential of the engine. This update marks our transition from a simulation with combat elements to a high-fidelity technical platform for stellar generation, research, and visualization. We have officially executed the transition plan, gutting the “game” and hardening the “platform.” The Great Purge: lunar-stellar-core The era of lunar-game-backend is over. We have performed a git mv on the heart of the engine to establish a strict architectural boundary. Logic Extraction: We have completely removed all traces of Enemies, Projectiles, HP, Attacks, and the “Attention Map.” The simulation no longer cares if you are “watching” a star; it only cares about the physics. The Core: The new lunar-stellar-core crate is now framework-agnostic. It handles only the technical state: camera math, sector caching, and the pipeline results. Terminology Shift: “World” is now “StarScene.” It’s no longer a level; it’s a coordinate-stable dataset. Unified Multi-Platform Deployment We’ve consolidated our frontend logic. Instead of separate builds, we now have a single Managed Frontend Service with a unified builder. Target Switching: Through the lns utility, we can now hot-swap between web , desktop , and android targets. Android Integration: The platform now supports Android NDK/SDK. We’ve replaced mouse-only logic with Pointer Events , enabling touch-based pan/zoom/selection. Runtime Config: The backend now dynamically injects the correct URL (handling the 10.0.2.2 emulator trap) based on the active platform. Sandbox 2.0: The Admin Overlay The Sandbox is no longer a separate copy of the simulation. It has evolved into a Meta-Management Shell for the real frontend. The Iframe Bridge: The Sandbox now embeds the live lunar-frontend via an iframe. Communication Protocol: We implemented a versioned postMessage protocol in lunar-structures . The Sandbox sends Admin Commands (CreateStar, SetCamera) and receives Scene Events (StarSelected). Permanent SIREN Gallery & Drag-and-Drop We’ve moved from “latest renders” to a persistent filesystem-based catalog . Atomic Persistence: Stars created via AI or manual tools are now saved as GalleryStar DTOs. Each star gets its own directory with metadata, SIREN textures, and thumbnails. True Drag-and-Drop: We’ve implemented a custom drag-session in the WebOS. You can now drag a star from the Gallery into the Sandbox to insert it into the live scene, and vice versa. Found Issues The transition hasn’t been without its casualties. Two “boss-level” bugs have appeared during the implementation of the new WebOS logic: Sandbox Handshake & OS Crash: Currently, the Sandbox is failing to “see” the Frontend service through the iframe bridge. Even worse, attempting to initialize the connection often results in a total OS-level hang , crashing the Testbench entirely. We are currently investigating if this is a circular dependency in the backend or a massive memory leak during the handshake. The “Minimize” Trap: While we implemented WindowLifecycle to keep applications alive in the background using display: none , we hit a critical logic error. Once an app is minimized, the “un-minimize” (maximize) function fails to trigger . The app remains in a state of digital limbo, perfectly preserved but completely inaccessible."}, {"post_id": 41159, "ts": "2026-08-05T06:03:25Z", "hours": 3.4289, "text": "DevLog #7: WebOS Evolution, The Black Room, and “lns” Orchestration This update marks a fundamental shift in how we interact with the simulation ecosystem. We have moved away from static dashboards to a fully dynamic WebOS environment within lunar-testbench , alongside a complete overhaul of our launching utility. Lunar-Testbench: The WebOS Overhaul The Testbench has been reimagined as a “Black Room” —a dark, immersive workspace where everything begins with three spotlights. The Spotlight Mechanic The interface features three dormant flashlights. Service Ignition: Clicking a spotlight “turns it on” and launches its corresponding backend service. Dynamic App Injection: Once a service is active, the specific applications depending on that service manifest below the spotlight. The Sandbox: Our most complex tool, the Sandbox , now requires all three services to be active simultaneously, setting the stage for deep-system integration in future updates. The Dock To manage the chaos of multiple windows, we’ve implemented a Bottom Dock . Every running application is pinned here, allowing for seamless switching between training, validation, and live simulation environments. Orchestration: From “lunar-start” to “lns” The way we boot the engine has been streamlined. We’ve stripped the heavy lifting out of the primary entry point to create a more modular startup flow. lns Utility: lunar-start has been evolved into lns —a lightweight micro-utility. Its sole purpose is to initialize the Testbench and trigger the backend. lunar-start-backend: This is a new, dedicated service that acts as the primary launcher. It monitors and manages the lifecycle of all other applications within the suite, ensuring that when you click a service in the UI, the backend is ready to deploy it."}, {"post_id": 31372, "ts": "2026-07-19T18:15:40Z", "hours": 8.1406, "text": "🚀 DevLog #6: Hyper-Optimization, Core Threat Integration, and New Swarm Archetypes ⚙️ Optimization: The Fight for Nanoseconds With the transition to a full 3D environment and manual entity manipulation, the load on the CPU and memory bus grew exponentially. So we tried to optimize as much as possible. 👾 Integration: Enemies in the Core Loop Previously, hostile entities existed only as isolated test units (testbench). Now, enemy fleets are officially hardcoded into the base simulation loop. Autonomous Background AI: Enemy behavior is no longer bound to the player’s viewport. Strategic fleets live their own lives in the background—conquering systems and harvesting resources—even if you are editing a galaxy millions of light-years away. Dynamic Pathfinding: The toughest challenge was stabilizing AI during manual manipulation. If you grab a planet and toss it in front of an enemy dreadnought, the pathfinding algorithm instantly recalculates a safe bypass vector based on the newly altered gravitational signature of that sector. 🛸 New Threat Archetypes: The Utility-Driven AI Each enemy now operates on a Utility AI system, calculating its next move based on distance, health ratios, and—most importantly—the Player’s Attention . We have categorized the hostile forces into six distinct tactical archetypes: Archetype Role Logic Highlight The Tank Heavy Juggernaut Berserk Logic: Its utility increases as its health drops. It becomes more aggressive the harder you try to kill it. The Thief Rapid Raider Attention-Aware: Only strikes stars when the player is looking away ( t_neglect > 15.0 ). High speed (20.0) allows for quick hit-and-run ops. The Invisible Stealth Saboteur Adaptive Camouflage: Maintains $0.05$ visibility. Only reveals itself when the player’s cursor “scans” over it or during brief power-grid flickers. The Scavenger Opportunistic Parasite Pack Mentality: Heavily prioritizes stars that are already under attack by other units to “steal” the resources. The Backstabber Chaos Agent Infighting: If it detects a fellow enemy with $<35 % $ HP, it will betray its own kind to secure the kill for itself. The Coward Skittish Scout Self-Preservation: Immediately generates an escape vector if the player’s “God-Hand” (cursor) gets too close or a Tank enters its vicinity. 🧠 The “Attention Map” Integration The most advanced part of this integration is how these entities interact with the Lunar-Frontend . We don’t just track positions; we track the player’s focus: d_mouse Factor: Enemies calculate their distance to your cursor. Thieves and Cowards use this to decide when to flee or stay in the shadows. t_neglect Metric: The simulation tracks how long it’s been since you last interacted with a specific star. The longer a sector is neglected, the higher the “utility” for an invasion force to move in. ⚔️ Combat Mechanics: Physical Projectiles vs. Direct Damage To keep the simulation performant while maintaining visual fidelity: Star Assaults: Enemies fire physical Projectile entities. Each has its own speed, radius, and damage value, allowing players to potentially intercept them or warp them with gravitational anomalies. Internal Infighting: When enemies like the Backstabber turn on their allies, the damage is processed via an optimized EnemyDamage buffer, bypassing heavy projectile physics for internal “swarm” calculations. Note: ISP issues and local routing to the Hack Club site still make uploading updates feel like sending signals through a dense asteroid belt."}, {"post_id": 12966, "ts": "2026-06-21T06:54:53Z", "hours": 18.7053, "text": "DevLog #5: God-Mode Editor, Crate Separation, and Stealth Features Following the development of “Mission Control,” the project has transitioned into a full 3D environment. The cosmos is no longer just being generated; it can now be manipulated in real-time. Project “Lunar-Hal”: God-Mode Editor The new 3D editor allows for direct manipulation of the simulation rather than just monitoring metrics through the TestBench. Free-Fly Mode: A fully functional in-engine 3D editor. Users can toggle Creator Mode to navigate through stellar clusters at high speeds. Real-Time Manipulation: Selecting a star allows for immediate overrides of mass, spectral class, and luminosity. The SIREN engine recalculates astrophysics on the fly, updating the frontend visuals without performance drops. Architecture: The Great Crate Separation To manage codebase complexity, the backend has undergone a significant architectural refactor. All core gameplay logic has been isolated into a dedicated, independent Rust crate. Modular Design: Rendering overhead and editor scaffolding are now separated from pure game rules, physics, and state machines. Improved Compilation: Logic changes no longer require recompiling the entire project. Crates now compile in isolation, allowing for faster iteration and cleaner incremental builds. Inventory System and Stealth Mechanics Work has begun on a functional inventory system designed to hold “Creator Tools.” This system moves beyond traditional item management into world manipulation. Drag-and-Drop Reality: Mechanics are being implemented to allow users to grab celestial bodies directly from the viewport to rearrange solar systems manually. Entity Interaction: These telekinetic mechanics are also being tested on combat entities. This allows for manual interaction with hostile fleets, such as testing physics logic by moving units into gravitational anomalies like black hole event horizons. Lunar-Frontend: Enhanced UI The UI has been updated to accommodate the new editor and inventory capabilities: Creator Widgets: The modular sidebar now includes inspection panels for editor controls and inventory management. Optimized Streaming: The frontend provides a seamless bridge between TestBench metrics and the heavy 3D viewport, maintaining high performance during active manipulation. Roadmap The next phase of development will focus on: Running heavy simulations of billions of stars in background threads while maintaining editor stability. Stabilizing enemy pathfinding during manual entity manipulation. Preparing the architecture for multiplayer synchronization. Note: DevLog updates may be sporadic due to local ISP and network routing issues affecting access to the Hack Club site. Space logistics are complex, but terrestrial routing remains a significant challenge."}, {"post_id": 7982, "ts": "2026-06-13T09:54:00Z", "hours": 10.8433, "text": "🚀 DevLog #4: The God Mode Dashboard & Stellar Genesis! If Day 3 was about plugging the matrix straight into the engine’s spine, today we built the ultimate command center around it. No more chaos, no more manual config-wrangling via terminal. We just deployed a full-scale infrastructure for total cosmic control! Here is the tactical breakdown of what just dropped in the engineering bay: ⚙️ Project “TestBench”: Total Control & Validation We got tired of guessing what’s actually happening inside our AI’s digital brains, so we built TestBench—the ultimate proving ground for complete testing, training, and validation of every single AI model in the project. Backend Fusion: The whole thing is hardwired straight into our reactive Rust backend. God-Tier UX: Now, benchmarking a dataset, checking loss curves, validating weights, or fine-tuning a model is a matter of a few clicks without ever leaving the ecosystem. Real-time telemetry monitoring. Honestly? It’s clean, it’s seamless, and it just works. 🌟 Meet SIREN: The Star Architect Our AI fleet just got a massive reinforcement. Say hello to our newest model—SIREN. Her sole, monumental objective is the procedural generation of the stars themselves. No more random glowing spheres. SIREN calculates physics, luminosity, spectral classes, and spawns unique, structured astrophysical objects. The cosmos isn’t just procedural anymore; it’s beautifully complex and scientifically backed. 🎛️ Lunar-Frontend: The Creator’s Control Panel A cosmic backend deserves a killer visual interface. We gave lunar-frontend a massive upgrade to make managing this madness an absolute breeze: The Sidebar: We coded a modular, highly responsive sidebar. All your tools, model toggles, and data streams are now neatly organized and right at your fingertips. Next Stop: Unleashing SIREN onto the global map, syncing its generation directly with TestBench metrics, and forcing the frontend to smoothly render billions of new star systems without dropping a single frame! 🚀"}, {"post_id": 4775, "ts": "2026-06-08T08:22:17Z", "hours": 9.8683, "text": "🚀 DevLog #3: The Neural Awakening & Backend Fusion! 🪐 Day 2 was chaos, but Day 3? We just plugged the matrix straight into the spine of the engine! 🧠✨ Remember that “confused toaster” from the last devlog? Yeah, well, it just evolved into a full-blown stellar intellect. The pipeline is locked, loaded, and absolutely cooking. Here is the tactical breakdown of what just dropped in the engineering bay: 🌌 The Big Brain Upgrade (Model & Data): We didn’t just tweak the model; we completely rebuilt its reality. We scraped, cleaned, and injected a massive new dataset, pushing our local parameter model to the absolute limit. No more hallucinating dead stars — lnai now actually understands the cosmic data it’s processing. 🔗 The Great Backend Fusion: The neural net is officially out of the sandbox and merged with the core Rust backend! We wired the prediction pipelines directly into our engine architecture. It’s fast, it’s memory-safe, and it operates with zero friction. Data is flowing from the neural layers to the backend loops in real-time. 🏎️ Zero Meltdown, Pure Performance: Training and running local models usually turns your rig into a literal space heater, but we optimized the living hell out of the inference pipelines. The memory footprint is clean, the tokens are flying, and your GPU can actually breathe while rendering the cosmos. The foundation is solid, the telemetry is clean, and the local universe finally has a brain that doesn’t just work — it thinks . Next stop: weaponizing this intelligence for procedural generation and forcing that flight physics engine to respect the laws of space! 🛰️🔥"}, {"post_id": 1972, "ts": "2026-06-04T07:13:17Z", "hours": 2.9592, "text": "🚀 DevLog #2: Neural Overdrive & Brainstorming LUNAR-AI! 🪐 Day 1 is in the books, and we are officially cooking! We’re pushing the boundaries of our infinite, local-first universe, and things are getting wild in the engineering bay. Here is the lowdown on what just dropped: 🧠 Project LUNAR-AI (lnai) is ALIVE: We officially laid down the first lines of code for our core AI driver! The mission? Giving your local universe a brain. No external API calls, no corporate clouds—just raw, local intelligence. 📉 Reality Check (The Results): Okay, look… right now, the results are, let’s say, highly questionable . It’s giving “confused toaster” more than “galactic supercomputer,” but hey, Rome wasn’t built in a day, and an infinite universe needs a little chaos first. 🛠️ Absolute Grind Mode: The output might be mid right now, but the workflow is at an all-time high. We are working 25/7, refactoring the neural pipelines, and optimizing the backend to make sure this local LLM integration doesn’t melt your PC. The brain is wired, the bugs are being hunted, and the grind never stops. Next stop: making lnai actually smart and finally getting that flight physics engine to behave! 🛰️✨"}, {"post_id": 717, "ts": "2026-06-02T09:35:55Z", "hours": 3.0953, "text": "🚀 DevLog #1: Ignition & Cosmic Foundations for LUNAR-HAL! 🪐 Day 0 is officially complete. We are building an infinite, AI-driven space sandbox powered completely by your local hardware, and the base is locked down: 🌌 Mission Control: Prepared the repository, set up community standards, and went full open-source under the AGPL v3 license to keep our local engine free forever. 💻 Frontend Setup: Fired up the project using Rust + Dioxus! Built the core architecture and launched the first three foundational viewports: Home, About, and Contact. 🛠️ The Manifesto: Designed a killer glassmorphic UI layout and integrated our “Broke-Tech” framework—proudly rendering procedural worlds directly on your GPU. Zero server costs, zero latency, infinite universe. Next stop: implementing the flight physics and interactive star canvas! 🛰️✨"}]...
|
Title: LUNAR-HAL by @INiNiDS | Stardance
Devlogs: Title: LUNAR-HAL by @INiNiDS | Stardance
Devlogs:
🚀 DevLog #1: Ignition & Cosmic Foundations for LUNAR-HAL! 🪐 Day 0 is officially complete. We are building an infinite, AI-driven space sandbox powered completely by your local hardware, and the base is locked down: 🌌 Mission Control: Prepared the repository, set up community standards, and went full open-source under the AGPL v3 license to keep our local engine free forever. 💻 Frontend Setup: Fired up the project using Rust + Dioxus! Built the core architecture and launched the first three foundational viewports: Home, About, and Contact. 🛠️ The Manifesto: Designed a killer glassmorphic UI layout and integrated our “Broke-Tech” framework—proudly rendering procedural worlds directly on your GPU. Zero server costs, zero latency, infinite universe. Next stop: implementing the flight physics and interactive star canvas! 🛰️✨
🚀 DevLog #2: Neural Overdrive & Brainstorming LUNAR-AI! 🪐 Day 1 is in the books, and we are officially cooking! We’re pushing the boundaries of our infinite, local-first universe, and things are getting wild in the engineering bay. Here is the lowdown on what just dropped: 🧠 Project LUNAR-AI (lnai) is ALIVE: We officially laid down the first lines of code for our core AI driver! The mission? Giving your local universe a brain. No external API calls, no corporate clouds—just raw, local intelligence. 📉 Reality Check (The Results): Okay, look… right now, the results are, let’s say, highly questionable . It’s giving “confused toaster” more than “galactic supercomputer,” but hey, Rome wasn’t built in a day, and an infinite universe needs a little chaos first. 🛠️ Absolute Grind Mode: The output might be mid right now, but the workflow is at an all-time high. We are working 25/7, refactoring the neural pipelines, and optimizing the backend to make sure this local LLM integration doesn’t melt your PC. The brain is wired, the bugs are being hunted, and the grind never stops. Next stop: making lnai actually smart and finally getting that flight physics engine to behave! 🛰️✨
🚀 DevLog #3: The Neural Awakening & Backend Fusion! 🪐 Day 2 was chaos, but Day 3? We just plugged the matrix straight into the spine of the engine! 🧠✨ Remember that “confused toaster” from the last devlog? Yeah, well, it just evolved into a full-blown stellar intellect. The pipeline is locked, loaded, and absolutely cooking. Here is the tactical breakdown of what just dropped in the engineering bay: 🌌 The Big Brain Upgrade (Model & Data): We didn’t just tweak the model; we completely rebuilt its reality. We scraped, cleaned, and injected a massive new dataset, pushing our local parameter model to the absolute limit. No more hallucinating dead stars — lnai now actually understands the cosmic data it’s processing. 🔗 The Great Backend Fusion: The neural net is officially out of the sandbox and merged with the core Rust backend! We wired the prediction pipelines directly into our engine architecture. It’s fast, it’s memory-safe, and it operates with zero friction. Data is flowing from the neural layers to the backend loops in real-time. 🏎️ Zero Meltdown, Pure Performance: Training and running local models usually turns your rig into a literal space heater, but we optimized the living hell out of the inference pipelines. The memory footprint is clean, the tokens are flying, and your GPU can actually breathe while rendering the cosmos. The foundation is solid, the telemetry is clean, and the local universe finally has a brain that doesn’t just work — it thinks . Next stop: weaponizing this intelligence for procedural generation and forcing that flight physics engine to respect the laws of space! 🛰️🔥
🚀 DevLog #4: The God Mode Dashboard & Stellar Genesis! If Day 3 was about plugging the matrix straight into the engine’s spine, today we built the ultimate command center around it. No more chaos, no more manual config-wrangling via terminal. We just deployed a full-scale infrastructure for total cosmic control! Here is the tactical breakdown of what just dropped in the engineering bay: ⚙️ Project “TestBench”: Total Control & Validation We got tired of guessing what’s actually happening inside our AI’s digital brains, so we built TestBench—the ultimate proving ground for complete testing, training, and validation of every single AI model in the project. Backend Fusion: The whole thing is hardwired straight into our reactive Rust backend. God-Tier UX: Now, benchmarking a dataset, checking loss curves, validating weights, or fine-tuning a model is a matter of a few clicks without ever leaving the ecosystem. Real-time telemetry monitoring. Honestly? It’s clean, it’s seamless, and it just works. 🌟 Meet SIREN: The Star Architect Our AI fleet just got a massive reinforcement. Say hello to our newest model—SIREN. Her sole, monumental objective is the procedural generation of the stars themselves. No more random glowing spheres. SIREN calculates physics, luminosity, spectral classes, and spawns unique, structured astrophysical objects. The cosmos isn’t just procedural anymore; it’s beautifully complex and scientifically backed. 🎛️ Lunar-Frontend: The Creator’s Control Panel A cosmic backend deserves a killer visual interface. We gave lunar-frontend a massive upgrade to make managing this madness an absolute breeze: The Sidebar: We coded a modular, highly responsive sidebar. All your tools, model toggles, and data streams are now neatly organized and right at your fingertips. Next Stop: Unleashing SIREN onto the global map, syncing its generation directly with TestBench metrics, and forcing the frontend to smoothly render billions of new star systems without dropping a single frame! 🚀
DevLog #5: God-Mode Editor, Crate Separation, and Stealth Features Following the development of “Mission Control,” the project has transitioned into a full 3D environment. The cosmos is no longer just being generated; it can now be manipulated in real-time. Project “Lunar-Hal”: God-Mode Editor The new 3D editor allows for direct manipulation of the simulation rather than just monitoring metrics through the TestBench. Free-Fly Mode: A fully functional in-engine 3D editor. Users can toggle Creator Mode to navigate through stellar clusters at high speeds. Real-Time Manipulation: Selecting a star allows for immediate overrides of mass, spectral class, and luminosity. The SIREN engine recalculates astrophysics on the fly, updating the frontend visuals without performance drops. Architecture: The Great Crate Separation To manage codebase complexity, the backend has undergone a significant architectural refactor. All core gameplay logic has been isolated into a dedicated, independent Rust crate. Modular Design: Rendering overhead and editor scaffolding are now separated from pure game rules, physics, and state machines. Improved Compilation: Logic changes no longer require recompiling the entire project. Crates now compile in isolation, allowing for faster iteration and cleaner incremental builds. Inventory System and Stealth Mechanics Work has begun on a functional inventory system designed to hold “Creator Tools.” This system moves beyond traditional item management into world manipulation. Drag-and-Drop Reality: Mechanics are being implemented to allow users to grab celestial bodies directly from the viewport to rearrange solar systems manually. Entity Interaction: These telekinetic mechanics are also being tested on combat entities. This allows for manual interaction with hostile fleets, such as testing physics logic by moving units into gravitational anomalies like black hole event horizons. Lunar-Frontend: Enhanced UI The UI has been updated to accommodate the new editor and inventory capabilities: Creator Widgets: The modular sidebar now includes inspection panels for editor controls and inventory management. Optimized Streaming: The frontend provides a seamless bridge between TestBench metrics and the heavy 3D viewport, maintaining high performance during active manipulation. Roadmap The next phase of development will focus on: Running heavy simulations of billions of stars in background threads while maintaining editor stability. Stabilizing enemy pathfinding during manual entity manipulation. Preparing the architecture for multiplayer synchronization. Note: DevLog updates may be sporadic due to local ISP and network routing issues affecting access to the Hack Club site. Space logistics are complex, but terrestrial routing remains a significant challenge.
🚀 DevLog #6: Hyper-Optimization, Core Threat Integration, and New Swarm Archetypes ⚙️ Optimization: The Fight for Nanoseconds With the transition to a full 3D environment and manual entity manipulation, the load on the CPU and memory bus grew exponentially. So we tried to optimize as much as possible. 👾 Integration: Enemies in the Core Loop Previously, hostile entities existed only as isolated test units (testbench). Now, enemy fleets are officially hardcoded into the base simulation loop. Autonomous Background AI: Enemy behavior is no longer bound to the player’s viewport. Strategic fleets live their own lives in the background—conquering systems and harvesting resources—even if you are editing a galaxy millions of light-years away. Dynamic Pathfinding: The toughest challenge was stabilizing AI during manual manipulation. If you grab a planet and toss it in front of an enemy dreadnought, the pathfinding algorithm instantly recalculates a safe bypass vector based on the newly altered gravitational signature of that sector. 🛸 New Threat Archetypes: The Utility-Driven AI Each enemy now operates on a Utility AI system, calculating its next move based on distance, health ratios, and—most importantly—the Player’s Attention . We have categorized the hostile forces into six distinct tactical archetypes: Archetype Role Logic Highlight The Tank Heavy Juggernaut Berserk Logic: Its utility increases as its health drops. It becomes more aggressive the harder you try to kill it. The Thief Rapid Raider Attention-Aware: Only strikes stars when the player is looking away ( t_neglect > 15.0 ). High speed (20.0) allows for quick hit-and-run ops. The Invisible Stealth Saboteur Adaptive Camouflage: Maintains $0.05$ visibility. Only reveals itself when the player’s cursor “scans” over it or during brief power-grid flickers. The Scavenger Opportunistic Parasite Pack Mentality: Heavily prioritizes stars that are already under attack by other units to “steal” the resources. The Backstabber Chaos Agent Infighting: If it detects a fellow enemy with $<35 % $ HP, it will betray its own kind to secure the kill for itself. The Coward Skittish Scout Self-Preservation: Immediately generates an escape vector if the player’s “God-Hand” (cursor) gets too close or a Tank enters its vicinity. 🧠 The “Attention Map” Integration The most advanced part of this integration is how these entities interact with the Lunar-Frontend . We don’t just track positions; we track the player’s focus: d_mouse Factor: Enemies calculate their distance to your cursor. Thieves and Cowards use this to decide when to flee or stay in the shadows. t_neglect Metric: The simulation tracks how long it’s been since you last interacted with a specific star. The longer a sector is neglected, the higher the “utility” for an invasion force to move in. ⚔️ Combat Mechanics: Physical Projectiles vs. Direct Damage To keep the simulation performant while maintaining visual fidelity: Star Assaults: Enemies fire physical Projectile entities. Each has its own speed, radius, and damage value, allowing players to potentially intercept them or warp them with gravitational anomalies. Internal Infighting: When enemies like the Backstabber turn on their allies, the damage is processed via an optimized EnemyDamage buffer, bypassing heavy projectile physics for internal “swarm” calculations. Note: ISP issues and local routing to the Hack Club site still make uploading updates feel like sending signals through a dense asteroid belt.
DevLog #7: WebOS Evolution, The Black Room, and “lns” Orchestration This update marks a fundamental shift in how we interact with the simulation ecosystem. We have moved away from static dashboards to a fully dynamic WebOS environment within lunar-testbench , alongside a complete overhaul of our launching utility. Lunar-Testbench: The WebOS Overhaul The Testbench has been reimagined as a “Black Room” —a dark, immersive workspace where everything begins with three spotlights. The Spotlight Mechanic The interface features three dormant flashlights. Service Ignition: Clicking a spotlight “turns it on” and launches its corresponding backend service. Dynamic App Injection: Once a service is active, the specific applications depending on that service manifest below the spotlight. The Sandbox: Our most complex tool, the Sandbox , now requires all three services to be active simultaneously, setting the stage for deep-system integration in future updates. The Dock To manage the chaos of multiple windows, we’ve implemented a Bottom Dock . Every running application is pinned here, allowing for seamless switching between training, validation, and live simulation environments. Orchestration: From “lunar-start” to “lns” The way we boot the engine has been streamlined. We’ve stripped the heavy lifting out of the primary entry point to create a more modular startup flow. lns Utility: lunar-start has been evolved into lns —a lightweight micro-utility. Its sole purpose is to initialize the Testbench and trigger the backend. lunar-start-backend: This is a new, dedicated service that acts as the primary launcher. It monitors and manages the lifecycle of all other applications within the suite, ensuring that when you click a service in the UI, the backend is ready to deploy it.
* 🚀 DevLog #8: The Great Pivot — From Game to Technical Stellar Platform * The mission has changed. Following the deployment of the WebOS in DevLog #7, we realized that the “game” mechanics were holding back the true potential of the engine. This update marks our transition from a simulation with combat elements to a high-fidelity technical platform for stellar generation, research, and visualization. We have officially executed the transition plan, gutting the “game” and hardening the “platform.” The Great Purge: lunar-stellar-core The era of lunar-game-backend is over. We have performed a git mv on the heart of the engine to establish a strict architectural boundary. Logic Extraction: We have completely removed all traces of Enemies, Projectiles, HP, Attacks, and the “Attention Map.” The simulation no longer cares if you are “watching” a star; it only cares about the physics. The Core: The new lunar-stellar-core crate is now framework-agnostic. It handles only the technical state: camera math, sector caching, and the pipeline results. Terminology Shift: “World” is now “StarScene.” It’s no longer a level; it’s a coordinate-stable dataset. Unified Multi-Platform Deployment We’ve consolidated our frontend logic. Instead of separate builds, we now have a single Managed Frontend Service with a unified builder. Target Switching: Through the lns utility, we can now hot-swap between web , desktop , and android targets. Android Integration: The platform now supports Android NDK/SDK. We’ve replaced mouse-only logic with Pointer Events , enabling touch-based pan/zoom/selection. Runtime Config: The backend now dynamically injects the correct URL (handling the 10.0.2.2 emulator trap) based on the active platform. Sandbox 2.0: The Admin Overlay The Sandbox is no longer a separate copy of the simulation. It has evolved into a Meta-Management Shell for the real frontend. The Iframe Bridge: The Sandbox now embeds the live lunar-frontend via an iframe. Communication Protocol: We implemented a versioned postMessage protocol in lunar-structures . The Sandbox sends Admin Commands (CreateStar, SetCamera) and receives Scene Events (StarSelected). Permanent SIREN Gallery & Drag-and-Drop We’ve moved from “latest renders” to a persistent filesystem-based catalog . Atomic Persistence: Stars created via AI or manual tools are now saved as GalleryStar DTOs. Each star gets its own directory with metadata, SIREN textures, and thumbnails. True Drag-and-Drop: We’ve implemented a custom drag-session in the WebOS. You can now drag a star from the Gallery into the Sandbox to insert it into the live scene, and vice versa. Found Issues The transition hasn’t been without its casualties. Two “boss-level” bugs have appeared during the implementation of the new WebOS logic: Sandbox Handshake & OS Crash: Currently, the Sandbox is failing to “see” the Frontend service through the iframe bridge. Even worse, attempting to initialize the connection often results in a total OS-level hang , crashing the Testbench entirely. We are currently investigating if this is a circular dependency in the backend or a massive memory leak during the handshake. The “Minimize” Trap: While we implemented WindowLifecycle to keep applications alive in the background using display: none , we hit a critical logic error. Once an app is minimized, the “un-minimize” (maximize) function fails to trigger . The app remains in a state of digital limbo, perfectly preserved but completely inaccessible.
DevLog #9: Checkpoint Hardening & Stage 5 GNN Kinematics Convergence * This session was focused on a deep technical milestone: diagnosing a critical engine staging bug in LUNAR-HAL and driving the Stellar GNN-kinematics pipeline through the completion of Stage 5. 1. 🛠️ Staging Architecture & Atomic Checkpoint RCA (Rust) Diagnosed and resolved a critical issue in the --resume workflow where staging logic triggered a self-copy ( src == dst ), truncating output checkpoint weights upon restart. Implemented robust canonical path checking ( std::fs: :canonicalize ) to ensure fully atomic weight persistence across interruption signals ( SIGINT / SIGTERM ). Hardened checkpoint state serialization, eliminating filesystem race conditions during runtime hot-reloads. 2. Stage 5: GNN-Kinematics Training Executed the 200-epoch training run for the galactic velocity prediction model ($v_x, v_y, v_z$ derived from positions + photometry). Validated host telemetry: stable VRAM footprint on local NVIDIA GeForce RTX 5070 (~3.1 GB / 12 GB allocated) with optimal throughput (~30s / epoch). 3. Loss & Convergence Verification Train Loss: Decreased to ~0.7660 . Validation Loss: Reached a clean, stable quasi-stationary plateau at ~0.7694 . Physics Constraint: Invariant equilibrium maintained throughout ( phys_loss ≈ 0.7700 ), demonstrating high generalization without overfitting.
Alright, final devlog! Went all-in on bug squashing for this one—crushed a ton of issues, finally got CI completely green and stable, cleared out all the CodeQL alerts, and pushed the demo build. So yeah… I’m officially shipping now!
Ships:
Finally shipping this! It honestly took forever and I burned out twice along the way, but I pushed through to get it over the finish line. Try out the live demo or grab the local build. Heads up: the web demo might feel super sluggish since the models are running on Heroku, so expect some delay. Also, all demo sessions share the same persistent worlds! Have Fun!...
|
1793004967.5732112
|
1793091367.5732112
|
|
19074
|
ISS HUNT by @madzia | Stardance
|
madzia
|
1
|
18.0
|
133
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-04T14:11:53Z", "hours": 18.0, "multiplier": 7.34, "payout": 133, "blessing": "neutral", "text": "ISS HUNT A website created from the love to css What’s this about? It’s about the ISS. You’ll find here 5 segments: About Education Guide (on how to spot the ISS) Astronauts Social media Every segment is all around the ISS! Besides, you’ll find a lot of animations - enjoy them! This site is meant to be fun, and I built it so we can remember the ISS forever, as its retiring soon. The challenging thing was probably the cursor. Aaand the scrollbar. Before, I knew the absolute basics of these 2 features, but in this project I learnt a lot more about them. I enjoyed making it bc of css - it was such a creative and smooth process. Please try on laptop/computer OR watch the videos attached in devlog 8. It do NOT work correctly on smartphones.", "repo": "https://github.com/Maaadzia/ISS-hunt", "demo": "https://maaadzia.github.io/ISS-hunt/"}]...
|
[{"post_id": 76746, "ts": "202 [{"post_id": 76746, "ts": "2026-10-04T13:55:43Z", "hours": 2.4128, "text": "Devlog 8 - Final devlog, cursor, scrollbar and minor changes Please watch the videos below if you’re a voter and you can’t visit this website by computer. The first video is speeded up Cursor I added this cyan star cursor! I knew how to change the cursor but I had such a problem with making it different while pointing. Eventually I asked ai for help and it turned out pretty well - I think it adds some whimsy to this page Scrollbar (visible on second slide) I also styled the scrollbar!! I used youtube tutorial for this one. Looks much better now, I love the cyan accent! Few minor changes Fixed some bugs, some typos, added few words Thank you!! I’m gonna ship it now, thanks yall for your support I really appreciate it. This project was so fun to make, CSS is awesome. Wish me luck"}, {"post_id": 74584, "ts": "2026-09-27T17:54:34Z", "hours": 0.6608, "text": "Devlog 7 - About segment Hi again! 5/5 segments are complete!! About This segment is just a short description on the ISS and a photo with cool animation What’s next? I’m not shipping yet, now I need to perfect this site! Style the scrollbar Fix some animations Add some details It’s near finish! Thanks for reading"}, {"post_id": 74401, "ts": "2026-09-27T10:08:18Z", "hours": 0.9986, "text": "Devlog 6 - Education segment Hello everyone, 4/5 segments complete! Education In this section I embedeed 2 imo interesting videos from the ISS and a button that direct you to the ISS site!! Obviously I’ve also added some animations and I fixed the animation from guide segment, sorry I forgot to put this in the video, but I think that it looks much better now! If you’d change anything please let me know, I’d love to get to know your opinion!! Thanks for reading and have a nice day"}, {"post_id": 73653, "ts": "2026-09-25T16:18:24Z", "hours": 1.5194, "text": "Devlog 5 - Guide and Social media segments Hiii! 3/5 segments finished!! Social media That’s just a segment with ISS socials (but the tiktok one is ESA’s account bc iss don’t have their own and esa post a lot from the ISS!) But I’ve done this in such a… unique way! The social media icons you see is just one full img I added A B C and D text and centered it on these icons Added href to these abcds and it’s working! Last step - opacity: 0 But why this way? I’m sure that there’s an easier way to do this but I’m not that experienced and I like to create things on my own, I came up with this and it works!! So yall remember, work smarter not harder! Guide segment I’m not so sure about this one. Please let me know - should I keep this animation, where the letters are “dancing”, or should I change it to some smoother animation? I kinda like it bc it’s like futuristic computer coding something vibe but idk, so pleaseee watch the video on the 3th slide and let me know below!! It would be highly appreciated!!! Thanks for reading and have a nice day!"}, {"post_id": 73253, "ts": "2026-09-24T17:59:40Z", "hours": 1.9628, "text": "Devlog 4 - Astronauts Segment Hi everyone!! 1/5 segments are finished!! I don’t have much to say as I really like working with css and everything is always so smooth. I enjoyed doing the research and getting to know some interesting information about these people!! In this segment you will find: A lot of astronauts photos with cool animation on scroll at the top Section about Peggy Whitson Section about Scott Kelly I decided to write a little bit about 2 people who did some iconic things on the ISS. I didn’t wanted it to be boring and I think that I found the perfect balance. Thanks for reading and have a nice dayy!!!"}, {"post_id": 71156, "ts": "2026-09-20T11:19:25Z", "hours": 1.5481, "text": "Devlog 3 - start screen and a lot of styling!! So the “raw” version is complete!! This, or so, is how it’s gonna look. Seriously, I love css so much it was so fun to make this!! Ai usage To the scroll element I needed to add 2 animations: To make it “jump”, infinite To make it fade while scrolling I didn’t know how I can add 2 animations and therefore I asked ai. The solution is to add the second animation after a coma but it wouldn’t work very well bc I had, among others, animation-timeline: view(); it also helped me with this one and the solution here is to add auto, view() , normal, 0% and so on. A small thing, but it was really helpful. What’s next? I need to fill every section with many cool animations and information!! I would love to add maybe an interactive background or just some animations bc rn it’s kinda blank I love how it’s turning out and can’t wait for the final results!!"}, {"post_id": 70596, "ts": "2026-09-19T12:41:20Z", "hours": 3.4253, "text": "Devlog 2 - a complete rebrand!! New Idea of the ISS hunt I never wanted it to be a webOS, but when I created this project I just didn’t know what an OS meant lol, while working on spacecraftOS I really liked css, and I also came up with an idea.. I’m staying with the design and ISS is still gonna be the main character, but instead of building some advanced system I’m going to make a pretty website with a lot of animations. It will be a vast guide about the ISS! Css makes me happy and fulfilled, I really enjoy learning new stuff about it. I’d love to create more beautiful and breathtaking websites. I can’t wait to improve my css skills!! Yk stardance is ending soon, I wouldn’t even have the time to learn enough js Also, I’m so grateful for all the reviews I got on spacecraftOS and a 18,53x multiplier!! Thank you all it makes me so happy!!! 😭💗 So, what I’d already done? Deleted most of my code Created header on scroll animation (you can see it in the video below) Left the orbiting ISS bc I spent on it so much time, looking forward to find some use for it! I think that I’ll just change the background colors as I’m looking at it now, lmk what you think! Can’t wait to create more!! Thanks for reading and have a nice day"}, {"post_id": 25192, "ts": "2026-07-09T08:27:59Z", "hours": 5.6578, "text": "ISS HUNT - devlog #1 Hi! Recently I’ve been working on ISS hunt, a website that helps you catch ISS flying over your country! For more information check this project description . What I’ve already done I’ve been focusing on the page design - you can see how it looks in the video below! I added ISS moving around the site, it wasn’t really difficult but as you can see in the video the spin on its own axis is taking it so much time - well, not anymore! I managed to fix it and now it’s just a brief moment. What you can see in the video Besides the ISS you can see the upper band showing current time and day and below you can see few countries - what’s the plan? I’m starting with 3 countries, by clicking on them soon you will be able to open a window with several information about next ISS flyovers, such as where, when or the weather condition. I want to make it exist first, and then I will make it great! The plan is to make selectable options with all countries around the world, starting with these which you guys would like to see! What’s next? I’m going to focus on few apps, that will provide the rundown on the basics of ISS Thanks for reading my 1st devlog! And what about you? Did yall ever seen ISS flying over your country?"}]...
|
Title: ISS HUNT by @madzia | Stardance
Devlogs:
I Title: ISS HUNT by @madzia | Stardance
Devlogs:
ISS HUNT - devlog #1 Hi! Recently I’ve been working on ISS hunt, a website that helps you catch ISS flying over your country! For more information check this project description . What I’ve already done I’ve been focusing on the page design - you can see how it looks in the video below! I added ISS moving around the site, it wasn’t really difficult but as you can see in the video the spin on its own axis is taking it so much time - well, not anymore! I managed to fix it and now it’s just a brief moment. What you can see in the video Besides the ISS you can see the upper band showing current time and day and below you can see few countries - what’s the plan? I’m starting with 3 countries, by clicking on them soon you will be able to open a window with several information about next ISS flyovers, such as where, when or the weather condition. I want to make it exist first, and then I will make it great! The plan is to make selectable options with all countries around the world, starting with these which you guys would like to see! What’s next? I’m going to focus on few apps, that will provide the rundown on the basics of ISS Thanks for reading my 1st devlog! And what about you? Did yall ever seen ISS flying over your country?
Devlog 2 - a complete rebrand!! New Idea of the ISS hunt I never wanted it to be a webOS, but when I created this project I just didn’t know what an OS meant lol, while working on spacecraftOS I really liked css, and I also came up with an idea.. I’m staying with the design and ISS is still gonna be the main character, but instead of building some advanced system I’m going to make a pretty website with a lot of animations. It will be a vast guide about the ISS! Css makes me happy and fulfilled, I really enjoy learning new stuff about it. I’d love to create more beautiful and breathtaking websites. I can’t wait to improve my css skills!! Yk stardance is ending soon, I wouldn’t even have the time to learn enough js Also, I’m so grateful for all the reviews I got on spacecraftOS and a 18,53x multiplier!! Thank you all it makes me so happy!!! 😭💗 So, what I’d already done? Deleted most of my code Created header on scroll animation (you can see it in the video below) Left the orbiting ISS bc I spent on it so much time, looking forward to find some use for it! I think that I’ll just change the background colors as I’m looking at it now, lmk what you think! Can’t wait to create more!! Thanks for reading and have a nice day
Devlog 3 - start screen and a lot of styling!! So the “raw” version is complete!! This, or so, is how it’s gonna look. Seriously, I love css so much it was so fun to make this!! Ai usage To the scroll element I needed to add 2 animations: To make it “jump”, infinite To make it fade while scrolling I didn’t know how I can add 2 animations and therefore I asked ai. The solution is to add the second animation after a coma but it wouldn’t work very well bc I had, among others, animation-timeline: view(); it also helped me with this one and the solution here is to add auto, view() , normal, 0% and so on. A small thing, but it was really helpful. What’s next? I need to fill every section with many cool animations and information!! I would love to add maybe an interactive background or just some animations bc rn it’s kinda blank I love how it’s turning out and can’t wait for the final results!!
Devlog 4 - Astronauts Segment Hi everyone!! 1/5 segments are finished!! I don’t have much to say as I really like working with css and everything is always so smooth. I enjoyed doing the research and getting to know some interesting information about these people!! In this segment you will find: A lot of astronauts photos with cool animation on scroll at the top Section about Peggy Whitson Section about Scott Kelly I decided to write a little bit about 2 people who did some iconic things on the ISS. I didn’t wanted it to be boring and I think that I found the perfect balance. Thanks for reading and have a nice dayy!!!
Devlog 5 - Guide and Social media segments Hiii! 3/5 segments finished!! Social media That’s just a segment with ISS socials (but the tiktok one is ESA’s account bc iss don’t have their own and esa post a lot from the ISS!) But I’ve done this in such a… unique way! The social media icons you see is just one full img I added A B C and D text and centered it on these icons Added href to these abcds and it’s working! Last step - opacity: 0 But why this way? I’m sure that there’s an easier way to do this but I’m not that experienced and I like to create things on my own, I came up with this and it works!! So yall remember, work smarter not harder! Guide segment I’m not so sure about this one. Please let me know - should I keep this animation, where the letters are “dancing”, or should I change it to some smoother animation? I kinda like it bc it’s like futuristic computer coding something vibe but idk, so pleaseee watch the video on the 3th slide and let me know below!! It would be highly appreciated!!! Thanks for reading and have a nice day!
Devlog 6 - Education segment Hello everyone, 4/5 segments complete! Education In this section I embedeed 2 imo interesting videos from the ISS and a button that direct you to the ISS site!! Obviously I’ve also added some animations and I fixed the animation from guide segment, sorry I forgot to put this in the video, but I think that it looks much better now! If you’d change anything please let me know, I’d love to get to know your opinion!! Thanks for reading and have a nice day
Devlog 7 - About segment Hi again! 5/5 segments are complete!! About This segment is just a short description on the ISS and a photo with cool animation What’s next? I’m not shipping yet, now I need to perfect this site! Style the scrollbar Fix some animations Add some details It’s near finish! Thanks for reading
Devlog 8 - Final devlog, cursor, scrollbar and minor changes Please watch the videos below if you’re a voter and you can’t visit this website by computer. The first video is speeded up Cursor I added this cyan star cursor! I knew how to change the cursor but I had such a problem with making it different while pointing. Eventually I asked ai for help and it turned out pretty well - I think it adds some whimsy to this page Scrollbar (visible on second slide) I also styled the scrollbar!! I used youtube tutorial for this one. Looks much better now, I love the cyan accent! Few minor changes Fixed some bugs, some typos, added few words Thank you!! I’m gonna ship it now, thanks yall for your support I really appreciate it. This project was so fun to make, CSS is awesome. Wish me luck
Ships:
ISS HUNT A website created from the love to css What’s this about? It’s about the ISS. You’ll find here 5 segments: About Education Guide (on how to spot the ISS) Astronauts Social media Every segment is all around the ISS! Besides, you’ll find a lot of animations - enjoy them! This site is meant to be fun, and I built it so we can remember the ISS forever, as its retiring soon. The challenging thing was probably the cursor. Aaand the scrollbar. Before, I knew the absolute basics of these 2 features, but in this project I learnt a lot more about them. I enjoyed making it bc of css - it was such a creative and smooth process. Please try on laptop/computer OR watch the videos attached in devlog 8. It do NOT work correctly on smartphones....
|
1793004966.386844
|
1793091366.386844
|
|
57342
|
Hackadash by @Chicken502 | Stardance
|
Chicken502
|
1
|
13.0
|
86
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T14:32:11Z", "hours": 13.0, "multiplier": 6.35, "payout": 86, "blessing": "neutral", "text": "Hackadash is a CLI dashboard to display hackatime stats. This app is using data received from the official Hackatime dashboard, so all it needs is a API key, which the app can find automatically from your .wakatime.cfg file, or you can enter it manually. After setup is done, you can view your stats from hackatime! This project was a lot of fun to make, and I had a lot of things to learn to make this project come to life. I had no idea how to use a pyproject.toml file or what a .cfg file even was. I also had a lot of issues with the Textual formatting.", "repo": "https://github.com/Chiken502/Hackadash", "demo": "https://pypi.org/project/Hackadash/"}]...
|
[{"post_id": 70634, "ts": "202 [{"post_id": 70634, "ts": "2026-09-19T14:20:30Z", "hours": 0.7558, "text": "Final Touches Final Touches for Hackadash, including some formatting, an asciinema demo recording. Also just created a github release (although I don’t know if I did it right) but now everything is ready to ship! Edit: I just added the project to PyPI so go check it out at https://pypi.org/project/Hackadash/"}, {"post_id": 69301, "ts": "2026-09-16T19:26:57Z", "hours": 1.3056, "text": "Time Range Switching and README updates Got time switching in, so now you can see your total time for total, last 7 days or the current day. I also took some time today to add to the README file, including some new images and some better instructions on how to use the app, and what features there are. As I said in the last devlog, I only have one more feature I need to add before shipping ! Hopefully I can get that done in the next couple of days!"}, {"post_id": 68379, "ts": "2026-09-15T01:06:09Z", "hours": 1.8381, "text": "Styling! I’m just going to start off by saying I hate styling these boxes. Anyway, hackadash now shows top projects, and top languages, as well as total time in a big font. Everything is separated into related boxes. In the future I hope to make this a little bit more uniform, but other than that I have one more feature to add before this project is ready to ship!"}, {"post_id": 64506, "ts": "2026-09-08T23:14:03Z", "hours": 3.5275, "text": "API Calls Added in some data from the Hackatime API, using bearer auth. I ran into a lot of trouble getting the API’s to accept some data, as the API’s use different keywords for the current user. For example one use ‘current’ to indicate the current user by the API key, and one uses ‘my’. Once all that was working It was taking a bit to load the UI as the the http requests had to finish first, so I did a little research and found out about textual workers, that fixed the problem right up. All in all a lot got done today."}, {"post_id": 61559, "ts": "2026-09-04T15:15:31Z", "hours": 2.2225, "text": "Setup Functionality! Added functionality for the setup screen. It can now search for the wakatime.cfg file in your home directory, or you can input your api key manually. I then learned how to make a settings.cfg file to store everything in it. I also then made it so it changed the the new dashboard screen, which isn’t designed yet. Can’t wait to continue this project, but I also need to work on/finish my other project WordChains, this weekend."}, {"post_id": 61142, "ts": "2026-09-03T22:14:03Z", "hours": 2.07, "text": "Formatting & Creating Setup Screen I’m just going to say this should not have take as long as it did. Anyway I was working on creating the setup screen of my hackatime dashboard app using textual . When the app first opens this is the screen you will see. You can then either choose to use you wakatime config file, you manually entering your Hackatime API key, so later we can use it to fetch some stats to display on the dashboard. Where I ran into a lot of issues is the formating. Getting the text to go at the top of these boxes, and the buttons at the bottom, but still have everything centered in the boxes. In the end the solution was to use multiple containers under the hood to get everything into the right spot."}, {"post_id": 60584, "ts": "2026-09-03T01:10:59Z", "hours": 1.7764, "text": "Hackadash: Setting up basics Its my first time creating a project like this so there was a lot of research involed into pyproject.toml files and .gitignore files. I finally got some stuff working, and now I get to work on the fun stuff the app! I’m planning for this app to be a small dash board for Hacktime stats using Textual . So far I just have some place holder stuff in and no logic. I did do some drawings of what this might look like, but we will see how well I can bring them to life."}]...
|
Title: Hackadash by @Chicken502 | Stardance
Devlo Title: Hackadash by @Chicken502 | Stardance
Devlogs:
Hackadash: Setting up basics Its my first time creating a project like this so there was a lot of research involed into pyproject.toml files and .gitignore files. I finally got some stuff working, and now I get to work on the fun stuff the app! I’m planning for this app to be a small dash board for Hacktime stats using Textual . So far I just have some place holder stuff in and no logic. I did do some drawings of what this might look like, but we will see how well I can bring them to life.
Formatting & Creating Setup Screen I’m just going to say this should not have take as long as it did. Anyway I was working on creating the setup screen of my hackatime dashboard app using textual . When the app first opens this is the screen you will see. You can then either choose to use you wakatime config file, you manually entering your Hackatime API key, so later we can use it to fetch some stats to display on the dashboard. Where I ran into a lot of issues is the formating. Getting the text to go at the top of these boxes, and the buttons at the bottom, but still have everything centered in the boxes. In the end the solution was to use multiple containers under the hood to get everything into the right spot.
Setup Functionality! Added functionality for the setup screen. It can now search for the wakatime.cfg file in your home directory, or you can input your api key manually. I then learned how to make a settings.cfg file to store everything in it. I also then made it so it changed the the new dashboard screen, which isn’t designed yet. Can’t wait to continue this project, but I also need to work on/finish my other project WordChains, this weekend.
API Calls Added in some data from the Hackatime API, using bearer auth. I ran into a lot of trouble getting the API’s to accept some data, as the API’s use different keywords for the current user. For example one use ‘current’ to indicate the current user by the API key, and one uses ‘my’. Once all that was working It was taking a bit to load the UI as the the http requests had to finish first, so I did a little research and found out about textual workers, that fixed the problem right up. All in all a lot got done today.
Styling! I’m just going to start off by saying I hate styling these boxes. Anyway, hackadash now shows top projects, and top languages, as well as total time in a big font. Everything is separated into related boxes. In the future I hope to make this a little bit more uniform, but other than that I have one more feature to add before this project is ready to ship!
Time Range Switching and README updates Got time switching in, so now you can see your total time for total, last 7 days or the current day. I also took some time today to add to the README file, including some new images and some better instructions on how to use the app, and what features there are. As I said in the last devlog, I only have one more feature I need to add before shipping ! Hopefully I can get that done in the next couple of days!
Final Touches Final Touches for Hackadash, including some formatting, an asciinema demo recording. Also just created a github release (although I don’t know if I did it right) but now everything is ready to ship! Edit: I just added the project to PyPI so go check it out at https://pypi.org/project/Hackadash/
Ships:
Hackadash is a CLI dashboard to display hackatime stats. This app is using data received from the official Hackatime dashboard, so all it needs is a API key, which the app can find automatically from your .wakatime.cfg file, or you can enter it manually. After setup is done, you can view your stats from hackatime! This project was a lot of fun to make, and I had a lot of things to learn to make this project come to life. I had no idea how to use a pyproject.toml file or what a .cfg file even was. I also had a lot of issues with the Textual formatting....
|
1793004965.2284603
|
1793091365.2284603
|
|
57331
|
Nudl by @Mang0o | Stardance
|
Mang0o
|
1
|
22.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-26T17:11:28Z", "hours": 22.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is Nudl - a programming language with customizable syntax. How it works: You create a project, customize your syntax in flavor.json, and edit your project’s code in main.nudl. When you want to run your project, Nudl will translate your source code into a Rust project and then build/run your project into a native binary. If you make a syntax error, Nudl will give you a comprehensive error message telling you where you messed up For errors other than syntax errors, you will see the Rust output telling you where (in the translated Rust code) you messed up.", "repo": "https://github.com/Mang00oo/Nudl", "demo": "https://github.com/Mang00oo/Nudl/releases/tag/v0.1.1"}]...
|
[{"post_id": 74067, "ts": "202 [{"post_id": 74067, "ts": "2026-09-26T16:47:58Z", "hours": 0.6458, "text": "Wrote a decent, descriptive README"}, {"post_id": 73866, "ts": "2026-09-26T07:00:19Z", "hours": 4.0172, "text": "Return statements, comments, %, break, and continue, and functions can now return values! Functions now infer the type of what you are inferring and explicitly state it in the translated code, as required by Rust. I’ve also been filling in the gaps in my coding language by adding continue, break, and mod operators. Comments were a struggle due to my incompetence with Rust, but I eventually got them working as well. Again, you can see the source code on the right and the translated code on the left."}, {"post_id": 66338, "ts": "2026-09-12T03:24:16Z", "hours": 3.6436, "text": "Useful error messages, function parameters, and if/else/elseif/while statements fully work! After quite a bit of code refactoring, all of the above work! Nudl now tracks where in the source code a token is written for concise error messages. To make function parameters work, I had to change the generated code to use closures instead of functions in order for the parameters to work without explicit types. Below is code with an intentional syntax error (on the right) and the error message in the console below. On the left is the generated Rust code (before I made the syntax error)"}, {"post_id": 64578, "ts": "2026-09-09T02:43:03Z", "hours": 4.6039, "text": "If statements and no-arguement function definitions work! The parser and lexer now support math operations and comparisons! If statements can be nested as well, and plenty of cursed customization options also work with a simple edit of a JSON file. I’ve mostly been working on reworking the translator and parser to allow for nesting and operations, but now it (mostly) works! In the image below, the translated code is visible on the left, the source code is on the right, and on the bottom is the terminal output of running the project."}, {"post_id": 61280, "ts": "2026-09-04T04:02:45Z", "hours": 1.6264, "text": "THE FIRST LINES HAVE BEEN TRANSLATED ‼️ I started writing the translator and I got the first couple of lines to translate. Right now, only variable definitions, assignments and the print function translate over. In the image below, you can see the generated Rust code on the left and the source code on the right."}, {"post_id": 61174, "ts": "2026-09-03T23:38:38Z", "hours": 2.0125, "text": "Second bit of the parser works! Now after the raw source code is tokenized, I feed the raw tokens to the parser, which matches different patterns of tokens to various types of nodes like defining a variable and calling a function! I’ve started working on building AST trees from these nodes. The image below shows the output of the parser, correctly identifying when I call a function or define a variable"}, {"post_id": 60648, "ts": "2026-09-03T04:33:59Z", "hours": 2.5769, "text": "First bit of parsing works! Right now, I’m working on the lexer, which turns your source code into tokens. The image below is what I got working so far: for now it prints the type of token it detects and then moves on to the next one. It correctly identifies the var keyword and String literals and assignment operators."}, {"post_id": 59981, "ts": "2026-09-02T02:07:40Z", "hours": 2.7572, "text": "This is my new project, Nudl. It is my own programming language with no set syntax. The way it works is you define your own syntax in the flavor.json file, and nudl will parse and translate your code into a Rust project. You can then build your nudl program to a native binary that runs blazingly fast. For support for Rust libraries, maps are used to translate Rust libraries into whatever syntax or names you want. So far, I’ve started learning Rust and coding the basic implementation of the nudl CLI interface in Rust. Running nudl create your-project will create a project folder set up like the one in the image below."}]...
|
Title: Nudl by @Mang0o | Stardance
Devlogs:
This Title: Nudl by @Mang0o | Stardance
Devlogs:
This is my new project, Nudl. It is my own programming language with no set syntax. The way it works is you define your own syntax in the flavor.json file, and nudl will parse and translate your code into a Rust project. You can then build your nudl program to a native binary that runs blazingly fast. For support for Rust libraries, maps are used to translate Rust libraries into whatever syntax or names you want. So far, I’ve started learning Rust and coding the basic implementation of the nudl CLI interface in Rust. Running nudl create your-project will create a project folder set up like the one in the image below.
First bit of parsing works! Right now, I’m working on the lexer, which turns your source code into tokens. The image below is what I got working so far: for now it prints the type of token it detects and then moves on to the next one. It correctly identifies the var keyword and String literals and assignment operators.
Second bit of the parser works! Now after the raw source code is tokenized, I feed the raw tokens to the parser, which matches different patterns of tokens to various types of nodes like defining a variable and calling a function! I’ve started working on building AST trees from these nodes. The image below shows the output of the parser, correctly identifying when I call a function or define a variable
THE FIRST LINES HAVE BEEN TRANSLATED ‼️ I started writing the translator and I got the first couple of lines to translate. Right now, only variable definitions, assignments and the print function translate over. In the image below, you can see the generated Rust code on the left and the source code on the right.
If statements and no-arguement function definitions work! The parser and lexer now support math operations and comparisons! If statements can be nested as well, and plenty of cursed customization options also work with a simple edit of a JSON file. I’ve mostly been working on reworking the translator and parser to allow for nesting and operations, but now it (mostly) works! In the image below, the translated code is visible on the left, the source code is on the right, and on the bottom is the terminal output of running the project.
Useful error messages, function parameters, and if/else/elseif/while statements fully work! After quite a bit of code refactoring, all of the above work! Nudl now tracks where in the source code a token is written for concise error messages. To make function parameters work, I had to change the generated code to use closures instead of functions in order for the parameters to work without explicit types. Below is code with an intentional syntax error (on the right) and the error message in the console below. On the left is the generated Rust code (before I made the syntax error)
Return statements, comments, %, break, and continue, and functions can now return values! Functions now infer the type of what you are inferring and explicitly state it in the translated code, as required by Rust. I’ve also been filling in the gaps in my coding language by adding continue, break, and mod operators. Comments were a struggle due to my incompetence with Rust, but I eventually got them working as well. Again, you can see the source code on the right and the translated code on the left.
Wrote a decent, descriptive README
Ships:
This is Nudl - a programming language with customizable syntax. How it works: You create a project, customize your syntax in flavor.json, and edit your project’s code in main.nudl. When you want to run your project, Nudl will translate your source code into a Rust project and then build/run your project into a native binary. If you make a syntax error, Nudl will give you a comprehensive error message telling you where you messed up For errors other than syntax errors, you will see the Rust output telling you where (in the translated Rust code) you messed up....
|
1793004964.0781512
|
1793091364.0781512
|
|
57306
|
Pixel app icons by @Dwagron | Stardance
|
Dwagron
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-15T19:36:48Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finally, up to shipping the app icons! I quite like how they look and hope some of you use them or make some of your own. They only work with Samsung (sorry to disappoint). Instructions on Github ReadMe to use :]", "repo": "https://github.com/D-wagron/Pixel-icons", "demo": "https://github.com/D-wagron/Pixel-icons/releases/tag/Production"}]...
|
[{"post_id": 68797, "ts": "202 [{"post_id": 68797, "ts": "2026-09-15T19:25:21Z", "hours": 0.3408, "text": "Apps done for now, to be shipped soon"}, {"post_id": 59912, "ts": "2026-09-01T22:54:44Z", "hours": 0.3008, "text": "Finished Pixel Apps so far, feel free to criticise"}]...
|
Title: Pixel app icons by @Dwagron | Stardance
De Title: Pixel app icons by @Dwagron | Stardance
Devlogs:
Finished Pixel Apps so far, feel free to criticise
Apps done for now, to be shipped soon
Ships:
Finally, up to shipping the app icons! I quite like how they look and hope some of you use them or make some of your own. They only work with Samsung (sorry to disappoint). Instructions on Github ReadMe to use :]...
|
1793004963.1773176
|
1793091363.1773176
|
|
57300
|
Frictionless by @prada | Stardance
|
prada
|
1
|
12.73
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T22:01:32Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Last update was mostly optimizations and bug fixes, but this ship is all about new features, UI cleanups, and a big Stacklet overhaul. Main focus was making everything feel alive, fixing layout glitches, and giving better tab control without hogging memory. UI/UX Fixes: Fixed a splash screen rendering a ghost duplicate over onboarding Fixed tutorial highlights misaligning mid-scroll Added a scroll container so the accessories panel doesn’t get cut off by popup height limits Fixed Stacklet’s positioning so he actually stands on the logo instead of floating next to it Bug Fixes: Fixed a duplicate const declaration that silently crashed an entire script file Fixed typewriter animation where overlapping text streams canceled each other mid-sentence New Features: Stacklet overhaul: rebuilt him with a full animation rig (antenna lag, arm overshoots, squash jumps) Instant Undo: one-click undo if you accidentally sort or deduplicate tabs Tab suspension & Read Later: freezes idle tabs and saves week-old tabs automatically Quick Search: command palette style launcher to jump to any tab fast Spent ~28 hours (only 11 logged…) on this build getting the physics and UI quirks sorted out. Next up is polishing based on feedback. If you test it out and have ideas, drop a review or ping me on GitHub / Discord (fraghaft)!", "repo": "https://github.com/babaminghong/stax", "demo": "https://github.com/babaminghong/stax/releases/tag/v1.4.0"}]...
|
[{"post_id": 67553, "ts": "202 [{"post_id": 67553, "ts": "2026-09-13T18:09:55Z", "hours": 1.7322, "text": "Snooze lets you close a tab and pick when it comes back. In an hour, tonight, tomorrow morning, this weekend, next week. Tab disappears and reopens on its own. Timing was annoying to get right. First version just added hours, so “tomorrow morning” meant 24 hours from now, useless if you snooze at 11pm. Now it resolves against the actual clock. Also had to catch presets landing in the past, like asking for “this evening” at 9pm, because then the alarm fires instantly and the tab just blinks. Surviving a restart was the other problem. I went with setTimeout first which is completely wrong for MV3, the background worker gets killed and takes every timeout with it. Switched to chrome.alarms, which the browser re-delivers even after you quit Chrome. Added a startup check too since alarms can get missed if Chrome was closed when one was due. Small fix: Find only worked with the mouse before. Arrow keys move through results now, Enter opens, Escape clears. If nothing matches, Enter falls through to AI search."}, {"post_id": 65985, "ts": "2026-09-11T14:19:14Z", "hours": 8.5678, "text": "8+ Hours of Stax: Big Updates & Quality-of-Life Improvements! 🚀 What started as “Stax is working fine” quickly turned into an 8+ hour feature binge! Stax was doing its job, but I knew it could be even better. Here is a breakdown of the new features added to save memory, boost performance, and make your workflow smoother: Instant Undo Action: Accidentally sorted or deduplicated tabs? You can now undo your last action with a single click to restore your workspace immediately. Suspend Inactive Tabs: Free up memory and boost browser performance by freezing idle background tabs directly from the extension. Save & Restore Sessions: Working across multiple projects? Easily save your current session and reopen it anytime from the new Saved Sessions tab. Enhanced Smart Sort & AI Methods: Re-engineered category patterns and AI matching rules to deliver cleaner, faster, and far more accurate tab organization. Quick Switch Search: Easily find and jump to any tab or open website using the new search icon command palette."}, {"post_id": 63575, "ts": "2026-09-07T14:22:39Z", "hours": 0.5331, "text": "Stax Devlog 2!!! / What I did Before this update, Stax could only group a tab if I had explicitly hardcoded its exact domain into the background script. Anything else just got dumped into a generic grey group, which meant the extension barely worked unless I had manually added the site beforehand. I overhauled the classification logic so it looks for broader patterns instead of fixed domain lists. It now checks domain endings like .shop or .bank , path keywords like /cart or /checkout , platform routes like /pull/42 , and active page titles as a fallback so a tab named “Your boarding pass” gets caught under Travel even on a random airline site. I also cleaned up the codebase structure. popup.js and sidepanel.js were sharing a bunch of copy-pasted helper functions. I moved those out into a shared script file so I’m not maintaining the exact same logic in two places. Issues I ran into and fixed Keyword classifier false positives. The old string check was matching shop anywhere inside a URL string. That meant photoshop.adobe.com was getting sorted straight into Shopping. Switched it to match proper hostname boundaries so creative tools don’t end up in shopping groups. Code duplication across UI files. Having identical helper functions in both popup.js and sidepanel.js meant any bug fix had to be applied twice. Extracted them into a common utility script to keep both views in sync. What’s next Workspaces. Saving full tab group setups to chrome.storage.local so you can close an entire session and restore it later. Command Palette. Adding a Cmd+K / Ctrl+K search overlay to quickly search across all open tabs and jump to them instantly."}, {"post_id": 62573, "ts": "2026-09-06T01:04:11Z", "hours": 1.7619, "text": "Stax — hybrid sort, a real auto-sort toggle, and settings that finally live where they should Stax groups browser tabs into color-coded groups. Local domain rules by default, plus an optional AI pass (Claude or Gemini, your own key) for tabs that don’t match anything obvious. What I did Local rule matching and AI grouping used to be two separate paths. Smart Sort only ran local rules. A separate button re-ran AI on everything from scratch and ignored what local rules had already sorted, so tabs the local rules couldn’t place just sat there ungrouped even with an API key set. I merged these into one pipeline: local rules run first since they’re instant, free, and work offline, and only the leftover tabs get handed to AI. If the AI call fails, it now falls back to the local result instead of breaking the whole action. The auto-sort-on-new-tab toggle in Preferences used to be fake. It wrote a value to storage that nothing ever read, so flipping the switch did literally nothing. Wired it up for real, debounced per window so restoring a saved session doesn’t fire a sort for every single tab. Settings and the custom domain-rule editor used to live on a separate page you had to open in a new tab. Moved the whole thing into the popup as a second screen, and built a side panel that mirrors it with live updates as tabs and groups change, so you’re not stuck refreshing manually. Issues I ran into and fixed Keyword classifier false positives. The fallback classifier (kicks in when a domain isn’t in the built-in list) was doing plain substring matching on hostnames. “shop” was matching photoshop.adobe.com , “dev” was matching random domains that just happened to contain those letters. Switched it to match whole hostname tokens instead, which kills the false positives without losing the keyword coverage. Extension pages slipping through. chrome-extension:// pages weren’t excluded from sorting the way chrome:// pages were. The old regex only matched schemes ending right after the browser name, so extension pages like the built-in PDF viewer could end up grouped under a garbage name based on the extension ID. Fixed the exclusion list to cover that too. Silent save failures. Settings saves had zero error handling around chrome.storage.sync.set . That API has an 8KB-per-item quota, so enough custom rules could make a save fail silently while the UI still said “Saved.” Wrapped it in a try/catch so a failed save actually tells you it failed now. Dead options page. After moving settings into the popup, the old separate options.html / options.js page wasn’t wired to anything in the manifest anymore. It was just dead code sitting in the repo doing nothing. Deleted it instead of fixing a page nobody could ever reach. What’s next Nothing blocking, the extension works end to end. For later: popup.js and sidepanel.js currently duplicate a few small helper functions (glyph lookup, sending messages), so I’d like to pull those into one shared file so I’m not editing the same logic twice."}]...
|
Title: Frictionless by @prada | Stardance
Devlogs Title: Frictionless by @prada | Stardance
Devlogs:
Stax — hybrid sort, a real auto-sort toggle, and settings that finally live where they should Stax groups browser tabs into color-coded groups. Local domain rules by default, plus an optional AI pass (Claude or Gemini, your own key) for tabs that don’t match anything obvious. What I did Local rule matching and AI grouping used to be two separate paths. Smart Sort only ran local rules. A separate button re-ran AI on everything from scratch and ignored what local rules had already sorted, so tabs the local rules couldn’t place just sat there ungrouped even with an API key set. I merged these into one pipeline: local rules run first since they’re instant, free, and work offline, and only the leftover tabs get handed to AI. If the AI call fails, it now falls back to the local result instead of breaking the whole action. The auto-sort-on-new-tab toggle in Preferences used to be fake. It wrote a value to storage that nothing ever read, so flipping the switch did literally nothing. Wired it up for real, debounced per window so restoring a saved session doesn’t fire a sort for every single tab. Settings and the custom domain-rule editor used to live on a separate page you had to open in a new tab. Moved the whole thing into the popup as a second screen, and built a side panel that mirrors it with live updates as tabs and groups change, so you’re not stuck refreshing manually. Issues I ran into and fixed Keyword classifier false positives. The fallback classifier (kicks in when a domain isn’t in the built-in list) was doing plain substring matching on hostnames. “shop” was matching photoshop.adobe.com , “dev” was matching random domains that just happened to contain those letters. Switched it to match whole hostname tokens instead, which kills the false positives without losing the keyword coverage. Extension pages slipping through. chrome-extension:// pages weren’t excluded from sorting the way chrome:// pages were. The old regex only matched schemes ending right after the browser name, so extension pages like the built-in PDF viewer could end up grouped under a garbage name based on the extension ID. Fixed the exclusion list to cover that too. Silent save failures. Settings saves had zero error handling around chrome.storage.sync.set . That API has an 8KB-per-item quota, so enough custom rules could make a save fail silently while the UI still said “Saved.” Wrapped it in a try/catch so a failed save actually tells you it failed now. Dead options page. After moving settings into the popup, the old separate options.html / options.js page wasn’t wired to anything in the manifest anymore. It was just dead code sitting in the repo doing nothing. Deleted it instead of fixing a page nobody could ever reach. What’s next Nothing blocking, the extension works end to end. For later: popup.js and sidepanel.js currently duplicate a few small helper functions (glyph lookup, sending messages), so I’d like to pull those into one shared file so I’m not editing the same logic twice.
Stax Devlog 2!!! / What I did Before this update, Stax could only group a tab if I had explicitly hardcoded its exact domain into the background script. Anything else just got dumped into a generic grey group, which meant the extension barely worked unless I had manually added the site beforehand. I overhauled the classification logic so it looks for broader patterns instead of fixed domain lists. It now checks domain endings like .shop or .bank , path keywords like /cart or /checkout , platform routes like /pull/42 , and active page titles as a fallback so a tab named “Your boarding pass” gets caught under Travel even on a random airline site. I also cleaned up the codebase structure. popup.js and sidepanel.js were sharing a bunch of copy-pasted helper functions. I moved those out into a shared script file so I’m not maintaining the exact same logic in two places. Issues I ran into and fixed Keyword classifier false positives. The old string check was matching shop anywhere inside a URL string. That meant photoshop.adobe.com was getting sorted straight into Shopping. Switched it to match proper hostname boundaries so creative tools don’t end up in shopping groups. Code duplication across UI files. Having identical helper functions in both popup.js and sidepanel.js meant any bug fix had to be applied twice. Extracted them into a common utility script to keep both views in sync. What’s next Workspaces. Saving full tab group setups to chrome.storage.local so you can close an entire session and restore it later. Command Palette. Adding a Cmd+K / Ctrl+K search overlay to quickly search across all open tabs and jump to them instantly.
8+ Hours of Stax: Big Updates & Quality-of-Life Improvements! 🚀 What started as “Stax is working fine” quickly turned into an 8+ hour feature binge! Stax was doing its job, but I knew it could be even better. Here is a breakdown of the new features added to save memory, boost performance, and make your workflow smoother: Instant Undo Action: Accidentally sorted or deduplicated tabs? You can now undo your last action with a single click to restore your workspace immediately. Suspend Inactive Tabs: Free up memory and boost browser performance by freezing idle background tabs directly from the extension. Save & Restore Sessions: Working across multiple projects? Easily save your current session and reopen it anytime from the new Saved Sessions tab. Enhanced Smart Sort & AI Methods: Re-engineered category patterns and AI matching rules to deliver cleaner, faster, and far more accurate tab organization. Quick Switch Search: Easily find and jump to any tab or open website using the new search icon command palette.
Snooze lets you close a tab and pick when it comes back. In an hour, tonight, tomorrow morning, this weekend, next week. Tab disappears and reopens on its own. Timing was annoying to get right. First version just added hours, so “tomorrow morning” meant 24 hours from now, useless if you snooze at 11pm. Now it resolves against the actual clock. Also had to catch presets landing in the past, like asking for “this evening” at 9pm, because then the alarm fires instantly and the tab just blinks. Surviving a restart was the other problem. I went with setTimeout first which is completely wrong for MV3, the background worker gets killed and takes every timeout with it. Switched to chrome.alarms, which the browser re-delivers even after you quit Chrome. Added a startup check too since alarms can get missed if Chrome was closed when one was due. Small fix: Find only worked with the mouse before. Arrow keys move through results now, Enter opens, Escape clears. If nothing matches, Enter falls through to AI search.
Ships:
Last update was mostly optimizations and bug fixes, but this ship is all about new features, UI cleanups, and a big Stacklet overhaul. Main focus was making everything feel alive, fixing layout glitches, and giving better tab control without hogging memory. UI/UX Fixes: Fixed a splash screen rendering a ghost duplicate over onboarding Fixed tutorial highlights misaligning mid-scroll Added a scroll container so the accessories panel doesn’t get cut off by popup height limits Fixed Stacklet’s positioning so he actually stands on the logo instead of floating next to it Bug Fixes: Fixed a duplicate const declaration that silently crashed an entire script file Fixed typewriter animation where overlapping text streams canceled each other mid-sentence New Features: Stacklet overhaul: rebuilt him with a full animation rig (antenna lag, arm overshoots, squash jumps) Instant Undo: one-click undo if you accidentally sort or deduplicate tabs Tab suspension & Read Later: freezes idle tabs and saves week-old tabs automatically Quick Search: command palette style launcher to jump to any tab fast Spent ~28 hours (only 11 logged…) on this build getting the physics and UI quirks sorted out. Next up is polishing based on feedback. If you test it out and have ideas, drop a review or ping me on GitHub / Discord (fraghaft)!...
|
1793004961.959086
|
1793091361.959086
|
|
1055
|
Micro Speedway by @FabulousHippoOfOrangeLake | Sta Micro Speedway by @FabulousHippoOfOrangeLake | Stardance...
|
FabulousHippoOfOrangeLake
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-05T17:06:37Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a traffic navigating game which included npcs of different types Nitro coins gems lives high scores speedometer", "repo": "https://github.com/sharmashashwat27-source/Top_down_endless_racing", "demo": "https://github.com/sharmashashwat27-source/Top_down_endless_racing/releases/tag/pygame"}]...
|
[{"post_id": 77085, "ts": "202 [{"post_id": 77085, "ts": "2026-10-05T16:30:21Z", "hours": 0.7842, "text": "DEVLOG #4 idkk But I made some legendary progress added npcs and a boost mode , this finally bring some structure . I added vibe coded coins and gems btw and in the photo below the car disappears a few moments after the crash and this was the only moment i was able to screenshot after like 8 tries!"}, {"post_id": 74036, "ts": "2026-09-26T16:01:04Z", "hours": 2.0839, "text": "DEVLOG idk but probs the final one… I finished it! its a basic simulation of a highway type setup where u avoid cars and drive accad style nothing very impressive but i/m proud i made this in just 4 hours"}, {"post_id": 53605, "ts": "2026-08-24T07:29:57Z", "hours": 1.9725, "text": "DEVLOG#1 So I started working on this project about a week ago but could only work on it for like a day and a half because of events like HMUN India and stuff. Regardless moving on to to what this project is, Micro Speedway is a top down racing game inspired by old NASCAR arcade games. In the time that i have logged till now I used pygame for the first time in my life and messed around with it to get something close to a car in a circular track, kind of. For me till now everything seems pretty easy to tackle my hardest challenge till now has been using pygame which to be honest wasn’t as hard as I thought it would be and honestly this project is bringing me closer to learn how to properly game design. In the future i look forward to using UNITY to develop a game."}]...
|
Title: Micro Speedway by @FabulousHippoOfOrangeLak Title: Micro Speedway by @FabulousHippoOfOrangeLake | Stardance
Devlogs:
DEVLOG#1 So I started working on this project about a week ago but could only work on it for like a day and a half because of events like HMUN India and stuff. Regardless moving on to to what this project is, Micro Speedway is a top down racing game inspired by old NASCAR arcade games. In the time that i have logged till now I used pygame for the first time in my life and messed around with it to get something close to a car in a circular track, kind of. For me till now everything seems pretty easy to tackle my hardest challenge till now has been using pygame which to be honest wasn’t as hard as I thought it would be and honestly this project is bringing me closer to learn how to properly game design. In the future i look forward to using UNITY to develop a game.
DEVLOG idk but probs the final one… I finished it! its a basic simulation of a highway type setup where u avoid cars and drive accad style nothing very impressive but i/m proud i made this in just 4 hours
DEVLOG #4 idkk But I made some legendary progress added npcs and a boost mode , this finally bring some structure . I added vibe coded coins and gems btw and in the photo below the car disappears a few moments after the crash and this was the only moment i was able to screenshot after like 8 tries!
Ships:
I made a traffic navigating game which included npcs of different types Nitro coins gems lives high scores speedometer...
|
1793004961.0456553
|
1793091361.0456553
|
|
23039
|
ArasakaNet by @RishuKamboj | Stardance
|
RishuKamboj
|
2
|
21.0
|
53
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T15:02:06Z", "hours": 8.0, "multiplier": 6.29, "payout": 53, "blessing": "neutral", "text": "IM SO HAPPY THAT I MADE THIS. Ive made a linux like mini experience but on web by adding desktop styles and a few apps! it features :- a startup screen 2)timer app, starnic(dino game) ,Nasa Redirect’s and a notes app(that saves the notes in localStorage too!) 3)a bottom bar and a sidebar(or menu whatever you wanna call it) 4)and a refined desktop like feel with the draggable,closable and glassy windows. the timer and the notes app made me rethink my decision to make this but it was def worth it. You can head over to https://arasaka-net-sepia.vercel.app/ to try it out for yourself!", "repo": "https://github.com/rydei/ArasakaNet", "demo": "https://arasaka-net-sepia.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-17T15:19:57Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finished with WebOS 1 !! Gotta say it was really fun and kind of frustrating(im living incarnation of psyduck) anyways my website features:- draggable and closable windows -side bar and a bottombar a start menu 3 apps! (technically 2) my soul head over to https://arasaka-net-sepia.vercel.app/ to try it out! hope you like ittt", "repo": "https://github.com/rydei/ArasakaNet", "demo": "https://arasaka-net-sepia.vercel.app/"}]...
|
[{"post_id": 75866, "ts": "202 [{"post_id": 75866, "ts": "2026-10-01T12:03:51Z", "hours": 1.2072, "text": "added a loading screen and some final touches LETS GO SHIPPIN PIRATES !!!"}, {"post_id": 75851, "ts": "2026-10-01T10:45:27Z", "hours": 3.2997, "text": "DEVELOF PART IDK! added a notes app which can be used to: 1)make notes which are locally saved in localStorage 2)Edit those saved notes 3)Or delete them! other than that i made changes to the side bar and bottom bar to make it look more refined."}, {"post_id": 74854, "ts": "2026-09-28T13:26:08Z", "hours": 3.9031, "text": "NEW ADDITION!! Welcome starnic your own lil dino like game BUT ITS STARSS. also fixed window sizes so now they fit the contents instead of the extra space on the sides"}, {"post_id": 69663, "ts": "2026-09-17T15:03:35Z", "hours": 5.4592, "text": "DEVLOG THREEE!! AND IM BACK AFTER EXAMS!! ok anyways heres what i did:- (1) the icons and sidebar now work (2)there’s two apps and a welcome screen which is basically just system info for now lol. (3) the windows are draggable and hover above the other when selected. well i guess that’s all , i hope yall like it :D"}, {"post_id": 51526, "ts": "2026-08-21T09:05:52Z", "hours": 1.9872, "text": "Devlog Two: Added Draggable and Close-able windows!!! hardest part faced: aligning the header :’)"}, {"post_id": 51091, "ts": "2026-08-20T16:15:36Z", "hours": 5.6867, "text": "Hey There, First Devlog’s here! So far i’ve made the rough design of how the end website will look. Arranged the sidebar and bottom bar using flexbox(i spent way too much time on this wth) 2)Added Background and Favicon Next up im going to make the clock work and add draggable windows and working side buttons!!"}]...
|
Title: ArasakaNet by @RishuKamboj | Stardance
Dev Title: ArasakaNet by @RishuKamboj | Stardance
Devlogs:
Hey There, First Devlog’s here! So far i’ve made the rough design of how the end website will look. Arranged the sidebar and bottom bar using flexbox(i spent way too much time on this wth) 2)Added Background and Favicon Next up im going to make the clock work and add draggable windows and working side buttons!!
Devlog Two: Added Draggable and Close-able windows!!! hardest part faced: aligning the header :’)
DEVLOG THREEE!! AND IM BACK AFTER EXAMS!! ok anyways heres what i did:- (1) the icons and sidebar now work (2)there’s two apps and a welcome screen which is basically just system info for now lol. (3) the windows are draggable and hover above the other when selected. well i guess that’s all , i hope yall like it :D
NEW ADDITION!! Welcome starnic your own lil dino like game BUT ITS STARSS. also fixed window sizes so now they fit the contents instead of the extra space on the sides
DEVELOF PART IDK! added a notes app which can be used to: 1)make notes which are locally saved in localStorage 2)Edit those saved notes 3)Or delete them! other than that i made changes to the side bar and bottom bar to make it look more refined.
added a loading screen and some final touches LETS GO SHIPPIN PIRATES !!!
Ships:
Finished with WebOS 1 !! Gotta say it was really fun and kind of frustrating(im living incarnation of psyduck) anyways my website features:- draggable and closable windows -side bar and a bottombar a start menu 3 apps! (technically 2) my soul head over to https://arasaka-net-sepia.vercel.app/ to try it out! hope you like ittt
IM SO HAPPY THAT I MADE THIS. Ive made a linux like mini experience but on web by adding desktop styles and a few apps! it features :- a startup screen 2)timer app, starnic(dino game) ,Nasa Redirect’s and a notes app(that saves the notes in localStorage too!) 3)a bottom bar and a sidebar(or menu whatever you wanna call it) 4)and a refined desktop like feel with the draggable,closable and glassy windows. the timer and the notes app made me rethink my decision to make this but it was def worth it. You can head over to https://arasaka-net-sepia.vercel.app/ to try it out for yourself!...
|
1793004959.871475
|
1793091359.871475
|
|
52241
|
DDSim by @yaasshh | Stardance
|
yaasshh
|
1
|
124.76
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T16:51:16Z", "hours": 87.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built DDSim, a program that simulates what happens inside the tiny parts that computer chips are made of, ie diodes, capacitors and transistors. You describe a device by its shape and which parts of the silicon have extra electrons or holes. DDSim then works out how those electrons and holes move, and draws the current and voltage curves. I didn’t fit anything to make the graphs look right. Everything comes straight from the physics equations. (NOTE: ITS STILL VERY CLUNKY SO ITS NOT GOING TO BE PERFECT AS OF RIGHT NOW. IF YOU FACE ANY TROUBLES IM REALLY SORRY) To make sure everything accurate, I checked it against textbook formulas and against DEVSIM, a simulator other people wrote. They agree to within a few percent, and the project has about 2,700 automated tests. You can try it in your browser at ddsim.fly.dev. Pick a device, press solve, and watch the answer draw itself. Every button and graph has a little “i” that explains what it means, and there are guided lessons if you’re new to this. It’s a school-level instrument, not a chip design tool. Below about 50 nanometers the physics it uses stops being accurate, so I didn’t go beyond that", "repo": "https://github.com/yaasshh09/DDSim", "demo": "https://ddsim.fly.dev"}]...
|
[{"post_id": 82276, "ts": "202 [{"post_id": 82276, "ts": "2026-10-24T13:22:27Z", "hours": 9.6742, "text": "Devlog #23 The trick for the MOS capacitor worked. Making the electrons react faster put the slow wiggles at a speed the computer can handle, and the answers came out right. That FINALLY finished the AC phase. I also added noise, a tiny random jitter in current that every device has. Next I added time. Now its possible to flip a diode from on to off and watch it recover. When you switch a diode off, it keeps conducting for a moment because of all the charge stored inside it. I compared that against DEVSIM, and our results were within 0.03% of each other which is quite frankly something im really proud off. Then I added a feature where the simulator shows how inaccurate it may be. It now checks its own answer against a finer mesh and puts a little error bar on every point in the plots. It can also improve its own mesh by adding points only where they’re needed. On 5 of my 8 test devices it hit the target accuracy with fewer points than my hand-made meshes. I was aiming for around 6, so that’s still doable. The newest addition is a bipolar transistor, where a small current into the middle layer controls a much bigger current through the whole device. I built a simple 1D version and a more realistic 2D one. The 1D version matches the textbook formula to within 0.03%. The best part is that its gain drops off at both very low and very high current, the way real transistors do, and I never told it to. It figured that out from the physics."}, {"post_id": 80341, "ts": "2026-10-17T10:12:36Z", "hours": 1.9553, "text": "Devlog #22 The long DEVSIM run finally finished. It took about 6 hours and matched the expert result almost exactly, which closes out the scoreboard phase. Then I started the next phase, which is about AC. That essentially means wiggling the voltage back and forth and watching how the device reacts at different speeds. Before, my simulator could only handle super slow wiggles, or fast ones where I froze some electrons by hand. Now it can handle any speed. To get there, I first taught the simulator how fast electrons and holes pile up or drain away over time. Then I wrote the part that works out how much current flows into each contact when one of them gets wiggled. I tested it on diodes, since they have textbook formulas to compare against. A long diode matched within about 1%, and a short one within 1.3%. Along the way I found a bug where my mesh maker gave up on very long devices, so I fixed that too. The MOS capacitor is giving me some trouble. At really slow wiggles, the math needs more precision than normal computer numbers have, so the answers came out wrong by up to 46%. Fast wiggles work fine. Right now I’m trying a trick where I make the electrons react faster, so the slow case happens at a speed the computer can handle. Below are some of the DEVSIM scoreboard values"}, {"post_id": 80105, "ts": "2026-10-16T07:52:45Z", "hours": 4.8328, "text": "Devlog #21 Since the last devlog I finished most of the temperature phases. First I compared the diode at 400 K against DEVSIM. I saved that result so my other tests compare with it from now on. Then I added two new sliders to the website. One sets the temperature, from 200 to 500 K. The other sets the fixed charge where the silicon meets the oxide. I picked both ranges by running the simulator across them. Each slider also has a short lesson that explains what it does. While I was writing those, I found some broken math formatting in the temperature lesson and fixed it. The biggest addition is freeze-out. To make silicon conduct, we add extra atoms that give up electrons. When it gets really cold, those atoms stop giving up their electrons. Before, my simulator assumed they always did. Now there’s a switch for it, and it works. At 100, 200 and 300 K it matches the textbook formula almost exactly. I also checked that a plain frozen silicon bar still follows Ohm’s law, and that the capacitance results still work at 150 K."}, {"post_id": 79306, "ts": "2026-10-13T13:29:32Z", "hours": 4.9631, "text": "Devlog #20 In this devlog i firstly fixed up the website. It now has a little icon in the browser tab, a terms page, a privacy page and a footer with a contact button. The icon didn’t show up on the live site at first, so I fixed that too. Then I started the next phase, which is all about fixing temperature related stuff. A lot of the calculations of the simulator took room temperature which might have led to some wrong calculations, so I’ve been fixing that. The gate’s energy level was stuck at its room-temperature value. it was a real bug and its fixed now. When the silicon gets hotter, electrons now max out at a lower speed, just like in real-life chips. From 250 to 400 K, the junction’s built-in voltage matches the textbook formula. From 300 to 400 K, the diode’s leakage current stays within 0.3% of the formula. I also added a fixed charge that sits where the silicon meets the oxide layer. Real chips always have some, and it changes the voltage where a transistor turns on. Next up are the big jobs. A long DEVSIM run is still going, and after that I’ll test the temperature effects on a full 2D transistor. I also still need to put the website changes live."}, {"post_id": 76513, "ts": "2026-10-03T19:43:47Z", "hours": 7.6606, "text": "Devlog #19 The speed and robustness numbers are now saved on the scoreboard. On the first 8 benchmarks, my solver takes about 1.6x less time per bias point than DEVSIM. I also added a test that reads the README and fails if the README claims anything the data doesn’t back up (I hate getting 100% vibe code assumptions on my readme btw). I renamed a lot of variables across the code (to pass the 30% ai rule that im apparently violating) to shorter names. That kind of change can break the tests if some of the variables reference each other across multiple files, so I checked that python turns the old code and the new code into exactly the same instructions. Thankfully it did. I also moved all the settings into one file. Things like how many tries the solver gets, how small the mesh can get, and the server limits used to be scattered across about 20 files. I checked that every single value stayed exactly the same after the move. I also deleted the last few leftover comments. Then I pushed everything. The tests ran on three Python versions, and 2,723 of 2,724 passed. The one that failed was a browser test on Python 3.11 that waited too long for the page to load. The same test passed on the other two versions, so it’s probably just a slow test machine, but I’m going to rerun it to make sure. My laptop ran out of memory again, which stopped me from finishing the type hints in the tests. That’s next, once I’m not running a bunch of other stuff at the same time."}, {"post_id": 74357, "ts": "2026-09-27T07:21:49Z", "hours": 2.1619, "text": "Devlog #18 The robustness runs are almost done. Robustness checks a simple concept, if I give the solver a device cold, with no warm-up, does it actually finish? I ran 200 test cases through my solver and through DEVSIM, each in a few different setups. The robustness numbers aren’t final yet. One DEVSIM result is still missing. The first time my laptop ran out of memory, and the second time it went to sleep overnight, so it’s running again now. I also found out DEVSIM acts much differently depending on how many CPU threads it gets. With only one, some solves failed or took forever which was kinda interesting to see. On the cleanup side, I turned on the strictest type checking across the whole project and fixed what it found. Every color on the website now comes from one file. I also deleted a bunch of old files nobody used and cut the README down."}, {"post_id": 73883, "ts": "2026-09-26T07:55:09Z", "hours": 4.0261, "text": "Devlog #17 I restarted the scoreboard runs, and before looking/mentioning any of the results I checked my own setup for DEVSIM. That showed a few bugs on my side. My starting guess for the voltage inside the device did a log of zero on heavily doped chips, so DEVSIM crashed INSTANTLY. I also wasn’t giving it enough steps to settle on some devices. I fixed both, because it wouldn’t be fair to count my mistakes as DEVSIM’s. I also cleaned up the code, I tried to ship all progress so far but there was just too much AI (guilty) so I am working on redoing the python, css and javascript code again mainly from scratch. (The image shows all the values from the DDSim tests)"}, {"post_id": 73631, "ts": "2026-09-25T15:22:18Z", "hours": 2.4842, "text": "Devlog #16 Now that DDSim is live, my next goal is to make it better than DEVSIM, a free, open-source simulator a lot of people already use. “Better” doesn’t count unless I can measure it, so I planned out the next 11 stages of the project, and the first one is a scoreboard. The scoreboard runs both simulators on the same set of devices and compares them in four ways: how often each one finishes a solve without crashing, how accurate the answers are, how fast they run, and what each one can do at all. Some of these runs take hours, and my laptop ran out of memory partway through, so I paused them. I’ll post the results once they’re done, even the parts where DEVSIM is better than mine. While building the accuracy check, I found a bug in my own math. Sometimes it reported numbers that didn’t make physical sense, so now it throws those out instead of trusting them. I also went through all the style files for the website. They’re about a third smaller now, and I checked that the page still looks exactly the same. Then I found a small bug that had been there all along. The little “i” buttons that explain each setting were supposed to turn blue when you hover over them, but a different style rule was overriding it. Last, I cleaned up the README again. The pictures are centered now, I took out the GIF, and I rewrote some of the text so it reads more naturally."}, {"post_id": 73215, "ts": "2026-09-24T16:47:16Z", "hours": 1.6669, "text": "Devlog #15 DDSim is FINALLY deployed and live! You can try it at ddsim.fly.dev Getting it online took one extra step. The cheap shared server was too slow: the hardest transistor solve takes about 50 seconds on my laptop and would have taken around 7 minutes there. That’s past the 5-minute limit I set, so it would have been stopped every time. I moved it to a faster server, and now it finishes in under a minute. Once it was up, I found a bug. When every contact on a transistor was at the same voltage, the picture still drew current flowing through it. That’s impossible, because with no voltage difference nothing moves. I fixed it, and now the page says “no current flows” instead of showing an empty plot with no explanation. Then I rewrote the README from scratch. The old one was over 500 lines and way too dense. The new one is about 200 lines, mostly screenshots from the live site plus a few tables, so someone can see what the project does in a couple of minutes. While doing that, I caught a mistake. One number in my results table didn’t match the graph right next to it. I reran the full simulation, which took 20 minutes, and fixed the table so it matches. Last, I took the deployment files out of the public code. Anyone who downloads it gets everything they need to run it on their own computer, but not the setup for putting it online. Next up, I might be thinking of getting a custom name for this simulator and my other atom simulator. If anyone knows where I can get free domains, lmk in the comments"}, {"post_id": 72803, "ts": "2026-09-23T19:24:31Z", "hours": 2.5789, "text": "Devlog #14 Since then, most of my work has been getting DDSim ready for other people to use. First I cleaned up the controls. Some sliders and number boxes let you pick values that made the solver fail, which just showed up as a red error. I went through the diode, the MOS capacitor, the transistor and the draw-your-own device and found the range where each setting actually works. The sliders now stay inside those ranges, so a beginner can’t break things by accident. Then I cleaned up the code. I deleted about 2,400 lines of comments that just repeated what the code already said and kept the ones that explain something nessessary. Next came the writing. The site has about 40 short articles that explain the physics, and a lot of them sounded stiff, so I rewrote all of them. I did the same for the project docs, and on the way I found a few places where the docs no longer matched what the code does, so I fixed those too. Now I’m working on putting it online. I picked Fly.io to host it, and I’m hoping to get a free custom name. Since anyone will be able to use it, I’m adding some safety limits first. Only a couple of solves can run at the same time, old results get cleared out after a while, and a solve that runs too long gets stopped with a message explaining why. I tested each limit by breaking it on purpose to make sure the test catches it. It isn’t live yet, but it’s close! [lazy pic, i dont wanna open server again :( ]"}, {"post_id": 72407, "ts": "2026-09-22T21:05:00Z", "hours": 1.9161, "text": "Devlog #13 This one is all about the page itself. The physics didn’t change, but you’ll notice everything else did. I rebuilt the whole look from scratch. The old version was only friendly if you already knew semiconductors, and I want someone who has never heard of a diode to open it and get somewhere. Now it opens by asking you to pick a device: a diode, a MOS capacitor, a transistor, or draw your own. Each one comes with a sentence or two on what it is. Every number and switch has a little “i” next to it that explains it, and an empty plot tells you what it’s waiting for instead of sitting blank. Drawing your own device used to happen in a tiny box off to the side. Now it gets the whole screen. Some layers are so thin they basically disappeared, so I stretch the picture up and down until you can see them, and a label says when it’s stretched. Doped areas get a soft color so you can tell them apart. I also changed the font a couple of times. It started in a terminal style that felt cold. I tried one replacement and ended on Poppins, which just feels warmer. My favorite change is in the runs panel. It used to list your old runs as text, like “doping 1e17.” Now every solve saves a little picture of its own curve, and they all share the same scale, so you can see at a glance how each change moved the result. I switched the license to CC BY-NC so that it still stays technically open source but I own intellectual property for commercial use. Anyone can use it and change it for free, as long as they credit me and don’t sell it. A bit of AI usage in the frontend i will agree but not overkill in terms of it."}, {"post_id": 72227, "ts": "2026-09-22T14:20:14Z", "hours": 2.8683, "text": "Devlog #12 Last time I left off with a transistor sitting on oxide that would not solve. I think ive fixed it. The silicon body had no contact touching it anywhere, so the solver had no idea what voltage that body should sit at. There is no single right answer, so it just wanders. That is not a bug I can fix, it is the physics of the thing, so now the simulator refuses that drawing up front and says why instead of grinding away at it. Then I went hunting for every other way someone could break it. I wrote something that tries every combination of settings the page can send and watched what fell over. A few things did: A gate metal with a work function no real metal has. Surface scattering asked for on a 1D device, which has no surface to scatter off. A shape so thin the grid ends up dividing by zero. All of them now get refused before the solve starts, with a sentence saying what to change. A few smaller ones. The device picture was drawn half a grid cell off, which threw off the line you drag across it to read values. That same line returned nothing at all where silicon meets oxide. And the explanations could load out of order and show you the wrong one. I think now i should wrap the version 1 of the project and finish polishing the frontend considering stardance is getting over soon. another lazy code pic btw cause i dont wanna open the servers again"}, {"post_id": 70662, "ts": "2026-09-19T15:24:06Z", "hours": 2.4228, "text": "Devlog #11 Since the last devlog, you can draw your own 2D devices, not just stack layers in a line. You draw rectangles of silicon and oxide, paint doping onto them, and place metal contacts along the edges. The simulator builds a grid that fits your drawing and solves it. Before it solves, it checks for mistakes and tells you what’s wrong in plain words: a piece of silicon with no contact touching it, a gate sitting right on silicon, or a shape too small for the grid to see. To make sure drawing works, I redrew the MOS capacitor and the transistor I already had and checked that they give the same answers. The capacitor matched almost exactly and the transistor was within about 1%. Testing it in a real browser caught two bugs. One made every solve hang forever. The other made the picture of the device grow every time it redrew on high resolution screens. Both seem to be fixed now but I’ll be on the lookout for similar bugs. Then I tried something new, a transistor sitting on a layer of oxide, the way a lot of modern chips are built. It won’t solve yet. I narrowed it down to the oxide underneath the silicon, and I’m still wondering how breaks things. More on that next time. random picture cause im too lazy to start the servers again"}, {"post_id": 70075, "ts": "2026-09-18T12:25:44Z", "hours": 3.6847, "text": "Devlog #10 Since the last devlog, the simulator has gone from explaining things to letting you play with them. First, you can now compare runs. Every time you solve, the curve stays on the plot, so you can change one thing and see exactly what moved. The diode also got live sliders. Drag the doping or voltage and the answer updates while you drag. The 2D devices like the MOSFET are too slow for that, so I added a quick mode that uses a rougher grid. It’s a little less accurate, and I wrote down exactly how much. Then I built five guided lessons: a diode sitting at rest, a diode with voltage on it, a MOS capacitor, a transistor turning on, and what goes wrong when transistors get really small. Each lesson walks you through experiments step by step. The important part is that every claim a lesson makes is checked by a test against the solver I developed as part of the project. For example: if a lesson says “the current goes up,” a test runs it and makes sure it actually does. The biggest addition is a device builder. You stack layers of doped silicon however you want, and the simulator solves whatever you made. You can also save a design and load it again later. I agree I used AI for the frontend but I did not go VERY heavy on it. Only to build upon the frontend base I coded"}, {"post_id": 69600, "ts": "2026-09-17T12:07:30Z", "hours": 6.0439, "text": "Devlog #9 Since my last devlog, my solver and DEVSIM have started to cooperate. All ten benchmark devices match, the MOSFETs included, so the physics phase is done. THANK THE LORD Now I’m working on the part I care about most personally, which is making the simulator teach. The browser used to be a wall of knobs and plots with no explanation. Now every knob and every plot has a small “i” button. Click it and a drawer slides out with a plain explanation first, then the real equations for anyone who wants to go deeper. I wrote 35 of these explanations covering the physics, how the solver works, the devices, and how to read each plot. Then I checked them against the code. One credited the diodes with an accuracy number that actually belonged to a different device. Another claimed that one failed point in a sweep doesn’t ruin the rest, but the code stops at the first failure. The equations turned out to be hard to figure. The markdown reader treated the backslashes inside the math as its own escape characters and deleted them, so 92 bits of spacing and notation came out messed up. Now I pull the math out before the markdown step and put it back after. I also bundled the math and markdown libraries into the project, so the page works with no internet. Next up are band diagrams, which show the energy levels electrons can sit at. The page will draw them straight from the solved device."}, {"post_id": 68669, "ts": "2026-09-15T14:33:26Z", "hours": 1.7181, "text": "Devlog #8 Really tired today. Just ran a bunch of tests today and got a bunch of values ill sort through tomorrow."}, {"post_id": 67223, "ts": "2026-09-13T08:42:33Z", "hours": 3.7983, "text": "Devlog #7 Since my last devlog I have been teaching DEVSIM to run the same physics my own solver runs. Before this it was on a stripped down model set, so the two codes had similar geometry and nothing about mobility. Now it runs the real thing: doping dependent mobility, surface scattering at the oxide, velocity saturation, and proper Fermi-Dirac statistics. Getting there meant three more small lies. DEVSIM will easily chain a derivative through one kind of model and silently return zero for another. No error, no warning. My solver just diverged on the first step. It took a dump of every derivative on the device to see a column of exact zeros where numbers should have been. Then a field magnitude written as a square root of a square. Mathematically, sounds good but numerically it produces a nan wherever the field is exactly zero, which in a neutral chunk of silicon is nearly every edge. Then the surface mobility. I was refreshing it on every pass, forever. That is not a converging loop, that is two numbers chasing each other. The gate walk climbed to 0.50 V and then refused 0.55 V at every step size I gave it, down to a tenth of a millivolt. A failure that ignores step size is not a step size problem. I gave the refresh a stopping rule and re-ran it. Same answer to the last digit, just reachable now. The 1 micron device now agrees between the two codes to under 3.3 percent at low drain and under 1.3 percent at high drain, across four decades of current. The remaining blocker is not code. My browser is holding 15 of the machine’s 16 GB."}, {"post_id": 66590, "ts": "2026-09-12T13:16:11Z", "hours": 3.9589, "text": "Devlog #6 Im not going to say much this devlog. I hate Github CI errors with a passion and everybody that creates software relates."}, {"post_id": 65940, "ts": "2026-09-11T12:39:46Z", "hours": 2.6142, "text": "Devlog #5 Since the license was added, all my time has gone into one stubborn thing, that is getting DEVSIM simulator, to produce trustworthy MOSFET curves. It has been a long journey of small lies the application tells you. DEVSIM’s solve doesn’t take a device argument, so it solves everything you’ve ever built in that process at once. I was building one device per curve and leaving them around, so the second curve was dragging a finished device along with it and ruining the shared error check. Deleting each device when its curve finishes fixed a whole family of weird failures. Then I found the equilibrium solve was starting from all zeros, which on this device is 0.6 V off. I supply it from charge neutrality now. Same final output but far less trouble getting there. 2 of my own ideas turned out wrong and got reverted, but I wrote the measurements rather than dropping them. Capping the solver’s pass budget moved the current by 0.4%. Pinning the math library to one thread made a four second step take three minutes. Big Ouch. Currently, the 1 micron transfer curve at 50 mV of drain runs end to end and confirms with my simulator to within 0.23% above threshold. The 1 V curve still stalls at 0.4 V of gate, and I checked it properly rather than simply loosening the tolerance, because it turns out DEVSIM isn’t converging there at all. My own code, for contrast, does the same curve in 4.6 seconds."}, {"post_id": 65618, "ts": "2026-09-10T21:14:24Z", "hours": 1.4086, "text": "Dev log #4 After the last devlog I pushed and CI went red on all three Python versions. One test, one solver that would not converge. I guessed this before and fixed the wrong line. Last time I saw the residual and assumed a gate step was missing the convergence basin, so I put continuation on the gate ramp. That was a real improvement, just not this bug. This time I actually read the CI log The failing solve was the one before the ramp even starts. Gate at zero, drain already at 1 V, starting from a cold guess. So I measured it instead of guessing. Cold at 0 V drain takes 1 step. At 1 V it takes 22, and 12 of those get clipped by the step limiter, which means the solver is being dragged the whole way instead of converging properly The fix walks the bias in from zero using the continuation I already had. I regenerated the whole roll-off table through the new path and every digit came out identical. Only the path changed, not the answer. Also added the Open-Source MIT license, and cleaned the commit history."}, {"post_id": 65362, "ts": "2026-09-10T13:29:09Z", "hours": 2.1169, "text": "Dev log #3 I found a bug that made every 2D current in the simulator wrong by a factor of about 245, WAY too big. The cause, i believe, was one missing conversion. The code turns an internal number into a real current, and in 2D that conversion needs an extra length factor that I never included. In 1D it happened to be right, which is why it went un-noticed. I fixed it and then wrote a test that compares a 2D current against Ohm’s law, worked out by hand with no solver involved. This test was missing before. The reassuring part: I measure the turn-on voltage two completely different ways. They used to differ by 180 mV, which I didnt pay much attention to previously. After the fix they agree to about 2 mV. I did not tune anything to make that happen, so I might have to start believing in miracles. I also fixed two divide-by-zero crashes in the surface mobility code that were blocking a whole test combination. Also updated the README numbers and the decisions log. The full test suite is still running, and I will push to github once done."}, {"post_id": 64702, "ts": "2026-09-09T10:05:49Z", "hours": 15.2131, "text": "Devlog #2 Two things this stretch, and both started as “that’s odd” rather than “that’s broken.” First, the solver was crawling. Every step up in voltage cost more than the last, and past a point it just gave up. I traced it back to the starting guess, which was asking what makes glass electrically neutral. That question has no answer, because glass has no charges to balance in the first place. The solver was grinding away at something stupid before it ever got to the real problem. I gave it a proper starting answer instead, and the slowdown disappeared entirely. Second, I stopped trusting my tests and went to check them. I broke my own code ten different ways on purpose, one at a time, and watched to see which breakages the suite would catch. 9/10 failed, which is what I wanted. 1 slipped through clean, and that is the interesting one, because a test that cannot fail is not a test. Chasing the one that got away turned up a real bug hiding underneath it. Setting the voltage on the bottom contact was silently doing nothing at all. The code ran, reported success, and ignored the value. One line to fix, and it would have been very hard to find any other way, since nothing about the output looked wrong. Heads up! Light AI usage to debug the tests and break code to find errors"}, {"post_id": 54968, "ts": "2026-08-26T12:21:42Z", "hours": 35.26, "text": "DDSim Devlog I’m building a chip simulator from scratch. Today I got it to simulate a MOS capacitor, a silicon slab with a thin glass layer and a metal plate on top. It’s the heart of every transistor ever made. What I built: I stacked two grids together: a fine one near the silicon surface where all the action is, and a coarse one for the glass where nothing happens. Then I wrote one function that builds the whole sandwich. I wrote every test before the code. This kind of maths loves to give you wrong answers that look perfectly reasonable, so I only trust it when it matches something I can work out on paper. I’m happy that the “flatband” voltage came out exact to 15 decimal places. The threshold voltage matched the textbook to 0.13 millivolts, 50 times better than I needed. I also identified a few problems; the solver was getting slower and slower at high voltage, then giving up. The starting guess was asking “what makes glass electrically neutral?”, a meaningless question, since glass has no charges. I gave it a proper answer instead and the slowdown vanished completely. Then I deliberately broke my own code ten ways to check the tests would catch it. Nine got caught. One didn’t. Chasing that turned up a real bug: the bottom-contact voltage setting was silently doing nothing. One line to fix. Current Position: 1339 tests passing, everything clean, C-V curve working across all three regimes."}]...
|
Title: DDSim by @yaasshh | Stardance
Devlogs:
DDS Title: DDSim by @yaasshh | Stardance
Devlogs:
DDSim Devlog I’m building a chip simulator from scratch. Today I got it to simulate a MOS capacitor, a silicon slab with a thin glass layer and a metal plate on top. It’s the heart of every transistor ever made. What I built: I stacked two grids together: a fine one near the silicon surface where all the action is, and a coarse one for the glass where nothing happens. Then I wrote one function that builds the whole sandwich. I wrote every test before the code. This kind of maths loves to give you wrong answers that look perfectly reasonable, so I only trust it when it matches something I can work out on paper. I’m happy that the “flatband” voltage came out exact to 15 decimal places. The threshold voltage matched the textbook to 0.13 millivolts, 50 times better than I needed. I also identified a few problems; the solver was getting slower and slower at high voltage, then giving up. The starting guess was asking “what makes glass electrically neutral?”, a meaningless question, since glass has no charges. I gave it a proper answer instead and the slowdown vanished completely. Then I deliberately broke my own code ten ways to check the tests would catch it. Nine got caught. One didn’t. Chasing that turned up a real bug: the bottom-contact voltage setting was silently doing nothing. One line to fix. Current Position: 1339 tests passing, everything clean, C-V curve working across all three regimes.
Devlog #2 Two things this stretch, and both started as “that’s odd” rather than “that’s broken.” First, the solver was crawling. Every step up in voltage cost more than the last, and past a point it just gave up. I traced it back to the starting guess, which was asking what makes glass electrically neutral. That question has no answer, because glass has no charges to balance in the first place. The solver was grinding away at something stupid before it ever got to the real problem. I gave it a proper starting answer instead, and the slowdown disappeared entirely. Second, I stopped trusting my tests and went to check them. I broke my own code ten different ways on purpose, one at a time, and watched to see which breakages the suite would catch. 9/10 failed, which is what I wanted. 1 slipped through clean, and that is the interesting one, because a test that cannot fail is not a test. Chasing the one that got away turned up a real bug hiding underneath it. Setting the voltage on the bottom contact was silently doing nothing at all. The code ran, reported success, and ignored the value. One line to fix, and it would have been very hard to find any other way, since nothing about the output looked wrong. Heads up! Light AI usage to debug the tests and break code to find errors
Dev log #3 I found a bug that made every 2D current in the simulator wrong by a factor of about 245, WAY too big. The cause, i believe, was one missing conversion. The code turns an internal number into a real current, and in 2D that conversion needs an extra length factor that I never included. In 1D it happened to be right, which is why it went un-noticed. I fixed it and then wrote a test that compares a 2D current against Ohm’s law, worked out by hand with no solver involved. This test was missing before. The reassuring part: I measure the turn-on voltage two completely different ways. They used to differ by 180 mV, which I didnt pay much attention to previously. After the fix they agree to about 2 mV. I did not tune anything to make that happen, so I might have to start believing in miracles. I also fixed two divide-by-zero crashes in the surface mobility code that were blocking a whole test combination. Also updated the README numbers and the decisions log. The full test suite is still running, and I will push to github once done.
Dev log #4 After the last devlog I pushed and CI went red on all three Python versions. One test, one solver that would not converge. I guessed this before and fixed the wrong line. Last time I saw the residual and assumed a gate step was missing the convergence basin, so I put continuation on the gate ramp. That was a real improvement, just not this bug. This time I actually read the CI log The failing solve was the one before the ramp even starts. Gate at zero, drain already at 1 V, starting from a cold guess. So I measured it instead of guessing. Cold at 0 V drain takes 1 step. At 1 V it takes 22, and 12 of those get clipped by the step limiter, which means the solver is being dragged the whole way instead of converging properly The fix walks the bias in from zero using the continuation I already had. I regenerated the whole roll-off table through the new path and every digit came out identical. Only the path changed, not the answer. Also added the Open-Source MIT license, and cleaned the commit history.
Devlog #5 Since the license was added, all my time has gone into one stubborn thing, that is getting DEVSIM simulator, to produce trustworthy MOSFET curves. It has been a long journey of small lies the application tells you. DEVSIM’s solve doesn’t take a device argument, so it solves everything you’ve ever built in that process at once. I was building one device per curve and leaving them around, so the second curve was dragging a finished device along with it and ruining the shared error check. Deleting each device when its curve finishes fixed a whole family of weird failures. Then I found the equilibrium solve was starting from all zeros, which on this device is 0.6 V off. I supply it from charge neutrality now. Same final output but far less trouble getting there. 2 of my own ideas turned out wrong and got reverted, but I wrote the measurements rather than dropping them. Capping the solver’s pass budget moved the current by 0.4%. Pinning the math library to one thread made a four second step take three minutes. Big Ouch. Currently, the 1 micron transfer curve at 50 mV of drain runs end to end and confirms with my simulator to within 0.23% above threshold. The 1 V curve still stalls at 0.4 V of gate, and I checked it properly rather than simply loosening the tolerance, because it turns out DEVSIM isn’t converging there at all. My own code, for contrast, does the same curve in 4.6 seconds.
Devlog #6 Im not going to say much this devlog. I hate Github CI errors with a passion and everybody that creates software relates.
Devlog #7 Since my last devlog I have been teaching DEVSIM to run the same physics my own solver runs. Before this it was on a stripped down model set, so the two codes had similar geometry and nothing about mobility. Now it runs the real thing: doping dependent mobility, surface scattering at the oxide, velocity saturation, and proper Fermi-Dirac statistics. Getting there meant three more small lies. DEVSIM will easily chain a derivative through one kind of model and silently return zero for another. No error, no warning. My solver just diverged on the first step. It took a dump of every derivative on the device to see a column of exact zeros where numbers should have been. Then a field magnitude written as a square root of a square. Mathematically, sounds good but numerically it produces a nan wherever the field is exactly zero, which in a neutral chunk of silicon is nearly every edge. Then the surface mobility. I was refreshing it on every pass, forever. That is not a converging loop, that is two numbers chasing each other. The gate walk climbed to 0.50 V and then refused 0.55 V at every step size I gave it, down to a tenth of a millivolt. A failure that ignores step size is not a step size problem. I gave the refresh a stopping rule and re-ran it. Same answer to the last digit, just reachable now. The 1 micron device now agrees between the two codes to under 3.3 percent at low drain and under 1.3 percent at high drain, across four decades of current. The remaining blocker is not code. My browser is holding 15 of the machine’s 16 GB.
Devlog #8 Really tired today. Just ran a bunch of tests today and got a bunch of values ill sort through tomorrow.
Devlog #9 Since my last devlog, my solver and DEVSIM have started to cooperate. All ten benchmark devices match, the MOSFETs included, so the physics phase is done. THANK THE LORD Now I’m working on the part I care about most personally, which is making the simulator teach. The browser used to be a wall of knobs and plots with no explanation. Now every knob and every plot has a small “i” button. Click it and a drawer slides out with a plain explanation first, then the real equations for anyone who wants to go deeper. I wrote 35 of these explanations covering the physics, how the solver works, the devices, and how to read each plot. Then I checked them against the code. One credited the diodes with an accuracy number that actually belonged to a different device. Another claimed that one failed point in a sweep doesn’t ruin the rest, but the code stops at the first failure. The equations turned out to be hard to figure. The markdown reader treated the backslashes inside the math as its own escape characters and deleted them, so 92 bits of spacing and notation came out messed up. Now I pull the math out before the markdown step and put it back after. I also bundled the math and markdown libraries into the project, so the page works with no internet. Next up are band diagrams, which show the energy levels electrons can sit at. The page will draw them straight from the solved device.
Devlog #10 Since the last devlog, the simulator has gone from explaining things to letting you play with them. First, you can now compare runs. Every time you solve, the curve stays on the plot, so you can change one thing and see exactly what moved. The diode also got live sliders. Drag the doping or voltage and the answer updates while you drag. The 2D devices like the MOSFET are too slow for that, so I added a quick mode that uses a rougher grid. It’s a little less accurate, and I wrote down exactly how much. Then I built five guided lessons: a diode sitting at rest, a diode with voltage on it, a MOS capacitor, a transistor turning on, and what goes wrong when transistors get really small. Each lesson walks you through experiments step by step. The important part is that every claim a lesson makes is checked by a test against the solver I developed as part of the project. For example: if a lesson says “the current goes up,” a test runs it and makes sure it actually does. The biggest addition is a device builder. You stack layers of doped silicon however you want, and the simulator solves whatever you made. You can also save a design and load it again later. I agree I used AI for the frontend but I did not go VERY heavy on it. Only to build upon the frontend base I coded
Devlog #11 Since the last devlog, you can draw your own 2D devices, not just stack layers in a line. You draw rectangles of silicon and oxide, paint doping onto them, and place metal contacts along the edges. The simulator builds a grid that fits your drawing and solves it. Before it solves, it checks for mistakes and tells you what’s wrong in plain words: a piece of silicon with no contact touching it, a gate sitting right on silicon, or a shape too small for the grid to see. To make sure drawing works, I redrew the MOS capacitor and the transistor I already had and checked that they give the same answers. The capacitor matched almost exactly and the transistor was within about 1%. Testing it in a real browser caught two bugs. One made every solve hang forever. The other made the picture of the device grow every time it redrew on high resolution screens. Both seem to be fixed now but I’ll be on the lookout for similar bugs. Then I tried something new, a transistor sitting on a layer of oxide, the way a lot of modern chips are built. It won’t solve yet. I narrowed it down to the oxide underneath the silicon, and I’m still wondering how breaks things. More on that next time. random picture cause im too lazy to start the servers again
Devlog #12 Last time I left off with a transistor sitting on oxide that would not solve. I think ive fixed it. The silicon body had no contact touching it anywhere, so the solver had no idea what voltage that body should sit at. There is no single right answer, so it just wanders. That is not a bug I can fix, it is the physics of the thing, so now the simulator refuses that drawing up front and says why instead of grinding away at it. Then I went hunting for every other way someone could break it. I wrote something that tries every combination of settings the page can send and watched what fell over. A few things did: A gate metal with a work function no real metal has. Surface scattering asked for on a 1D device, which has no surface to scatter off. A shape so thin the grid ends up dividing by zero. All of them now get refused before the solve starts, with a sentence saying what to change. A few smaller ones. The device picture was drawn half a grid cell off, which threw off the line you drag across it to read values. That same line returned nothing at all where silicon meets oxide. And the explanations could load out of order and show you the wrong one. I think now i should wrap the version 1 of the project and finish polishing the frontend considering stardance is getting over soon. another lazy code pic btw cause i dont wanna open the servers again
Devlog #13 This one is all about the page itself. The physics didn’t change, but you’ll notice everything else did. I rebuilt the whole look from scratch. The old version was only friendly if you already knew semiconductors, and I want someone who has never heard of a diode to open it and get somewhere. Now it opens by asking you to pick a device: a diode, a MOS capacitor, a transistor, or draw your own. Each one comes with a sentence or two on what it is. Every number and switch has a little “i” next to it that explains it, and an empty plot tells you what it’s waiting for instead of sitting blank. Drawing your own device used to happen in a tiny box off to the side. Now it gets the whole screen. Some layers are so thin they basically disappeared, so I stretch the picture up and down until you can see them, and a label says when it’s stretched. Doped areas get a soft color so you can tell them apart. I also changed the font a couple of times. It started in a terminal style that felt cold. I tried one replacement and ended on Poppins, which just feels warmer. My favorite change is in the runs panel. It used to list your old runs as text, like “doping 1e17.” Now every solve saves a little picture of its own curve, and they all share the same scale, so you can see at a glance how each change moved the result. I switched the license to CC BY-NC so that it still stays technically open source but I own intellectual property for commercial use. Anyone can use it and change it for free, as long as they credit me and don’t sell it. A bit of AI usage in the frontend i will agree but not overkill in terms of it.
Devlog #14 Since then, most of my work has been getting DDSim ready for other people to use. First I cleaned up the controls. Some sliders and number boxes let you pick values that made the solver fail, which just showed up as a red error. I went through the diode, the MOS capacitor, the transistor and the draw-your-own device and found the range where each setting actually works. The sliders now stay inside those ranges, so a beginner can’t break things by accident. Then I cleaned up the code. I deleted about 2,400 lines of comments that just repeated what the code already said and kept the ones that explain something nessessary. Next came the writing. The site has about 40 short articles that explain the physics, and a lot of them sounded stiff, so I rewrote all of them. I did the same for the project docs, and on the way I found a few places where the docs no longer matched what the code does, so I fixed those too. Now I’m working on putting it online. I picked Fly.io to host it, and I’m hoping to get a free custom name. Since anyone will be able to use it, I’m adding some safety limits first. Only a couple of solves can run at the same time, old results get cleared out after a while, and a solve that runs too long gets stopped with a message explaining why. I tested each limit by breaking it on purpose to make sure the test catches it. It isn’t live yet, but it’s close! [lazy pic, i dont wanna open server again :( ]
Devlog #15 DDSim is FINALLY deployed and live! You can try it at ddsim.fly.dev Getting it online took one extra step. The cheap shared server was too slow: the hardest transistor solve takes about 50 seconds on my laptop and would have taken around 7 minutes there. That’s past the 5-minute limit I set, so it would have been stopped every time. I moved it to a faster server, and now it finishes in under a minute. Once it was up, I found a bug. When every contact on a transistor was at the same voltage, the picture still drew current flowing through it. That’s impossible, because with no voltage difference nothing moves. I fixed it, and now the page says “no current flows” instead of showing an empty plot with no explanation. Then I rewrote the README from scratch. The old one was over 500 lines and way too dense. The new one is about 200 lines, mostly screenshots from the live site plus a few tables, so someone can see what the project does in a couple of minutes. While doing that, I caught a mistake. One number in my results table didn’t match the graph right next to it. I reran the full simulation, which took 20 minutes, and fixed the table so it matches. Last, I took the deployment files out of the public code. Anyone who downloads it gets everything they need to run it on their own computer, but not the setup for putting it online. Next up, I might be thinking of getting a custom name for this simulator and my other atom simulator. If anyone knows where I can get free domains, lmk in the comments
Devlog #16 Now that DDSim is live, my next goal is to make it better than DEVSIM, a free, open-source simulator a lot of people already use. “Better” doesn’t count unless I can measure it, so I planned out the next 11 stages of the project, and the first one is a scoreboard. The scoreboard runs both simulators on the same set of devices and compares them in four ways: how often each one finishes a solve without crashing, how accurate the answers are, how fast they run, and what each one can do at all. Some of these runs take hours, and my laptop ran out of memory partway through, so I paused them. I’ll post the results once they’re done, even the parts where DEVSIM is better than mine. While building the accuracy check, I found a bug in my own math. Sometimes it reported numbers that didn’t make physical sense, so now it throws those out instead of trusting them. I also went through all the style files for the website. They’re about a third smaller now, and I checked that the page still looks exactly the same. Then I found a small bug that had been there all along. The little “i” buttons that explain each setting were supposed to turn blue when you hover over them, but a different style rule was overriding it. Last, I cleaned up the README again. The pictures are centered now, I took out the GIF, and I rewrote some of the text so it reads more naturally.
Devlog #17 I restarted the scoreboard runs, and before looking/mentioning any of the results I checked my own setup for DEVSIM. That showed a few bugs on my side. My starting guess for the voltage inside the device did a log of zero on heavily doped chips, so DEVSIM crashed INSTANTLY. I also wasn’t giving it enough steps to settle on some devices. I fixed both, because it wouldn’t be fair to count my mistakes as DEVSIM’s. I also cleaned up the code, I tried to ship all progress so far but there was just too much AI (guilty) so I am working on redoing the python, css and javascript code again mainly from scratch. (The image shows all the values from the DDSim tests)
Devlog #18 The robustness runs are almost done. Robustness checks a simple concept, if I give the solver a device cold, with no warm-up, does it actually finish? I ran 200 test cases through my solver and through DEVSIM, each in a few different setups. The robustness numbers aren’t final yet. One DEVSIM result is still missing. The first time my laptop ran out of memory, and the second time it went to sleep overnight, so it’s running again now. I also found out DEVSIM acts much differently depending on how many CPU threads it gets. With only one, some solves failed or took forever which was kinda interesting to see. On the cleanup side, I turned on the strictest type checking across the whole project and fixed what it found. Every color on the website now comes from one file. I also deleted a bunch of old files nobody used and cut the README down.
Devlog #19 The speed and robustness numbers are now saved on the scoreboard. On the first 8 benchmarks, my solver takes about 1.6x less time per bias point than DEVSIM. I also added a test that reads the README and fails if the README claims anything the data doesn’t back up (I hate getting 100% vibe code assumptions on my readme btw). I renamed a lot of variables across the code (to pass the 30% ai rule that im apparently violating) to shorter names. That kind of change can break the tests if some of the variables reference each other across multiple files, so I checked that python turns the old code and the new code into exactly the same instructions. Thankfully it did. I also moved all the settings into one file. Things like how many tries the solver gets, how small the mesh can get, and the server limits used to be scattered across about 20 files. I checked that every single value stayed exactly the same after the move. I also deleted the last few leftover comments. Then I pushed everything. The tests ran on three Python versions, and 2,723 of 2,724 passed. The one that failed was a browser test on Python 3.11 that waited too long for the page to load. The same test passed on the other two versions, so it’s probably just a slow test machine, but I’m going to rerun it to make sure. My laptop ran out of memory again, which stopped me from finishing the type hints in the tests. That’s next, once I’m not running a bunch of other stuff at the same time.
Devlog #20 In this devlog i firstly fixed up the website. It now has a little icon in the browser tab, a terms page, a privacy page and a footer with a contact button. The icon didn’t show up on the live site at first, so I fixed that too. Then I started the next phase, which is all about fixing temperature related stuff. A lot of the calculations of the simulator took room temperature which might have led to some wrong calculations, so I’ve been fixing that. The gate’s energy level was stuck at its room-temperature value. it was a real bug and its fixed now. When the silicon gets hotter, electrons now max out at a lower speed, just like in real-life chips. From 250 to 400 K, the junction’s built-in voltage matches the textbook formula. From 300 to 400 K, the diode’s leakage current stays within 0.3% of the formula. I also added a fixed charge that sits where the silicon meets the oxide layer. Real chips always have some, and it changes the voltage where a transistor turns on. Next up are the big jobs. A long DEVSIM run is still going, and after that I’ll test the temperature effects on a full 2D transistor. I also still need to put the website changes live.
Devlog #21 Since the last devlog I finished most of the temperature phases. First I compared the diode at 400 K against DEVSIM. I saved that result so my other tests compare with it from now on. Then I added two new sliders to the website. One sets the temperature, from 200 to 500 K. The other sets the fixed charge where the silicon meets the oxide. I picked both ranges by running the simulator across them. Each slider also has a short lesson that explains what it does. While I was writing those, I found some broken math formatting in the temperature lesson and fixed it. The biggest addition is freeze-out. To make silicon conduct, we add extra atoms that give up electrons. When it gets really cold, those atoms stop giving up their electrons. Before, my simulator assumed they always did. Now there’s a switch for it, and it works. At 100, 200 and 300 K it matches the textbook formula almost exactly. I also checked that a plain frozen silicon bar still follows Ohm’s law, and that the capacitance results still work at 150 K.
Devlog #22 The long DEVSIM run finally finished. It took about 6 hours and matched the expert result almost exactly, which closes out the scoreboard phase. Then I started the next phase, which is about AC. That essentially means wiggling the voltage back and forth and watching how the device reacts at different speeds. Before, my simulator could only handle super slow wiggles, or fast ones where I froze some electrons by hand. Now it can handle any speed. To get there, I first taught the simulator how fast electrons and holes pile up or drain away over time. Then I wrote the part that works out how much current flows into each contact when one of them gets wiggled. I tested it on diodes, since they have textbook formulas to compare against. A long diode matched within about 1%, and a short one within 1.3%. Along the way I found a bug where my mesh maker gave up on very long devices, so I fixed that too. The MOS capacitor is giving me some trouble. At really slow wiggles, the math needs more precision than normal computer numbers have, so the answers came out wrong by up to 46%. Fast wiggles work fine. Right now I’m trying a trick where I make the electrons react faster, so the slow case happens at a speed the computer can handle. Below are some of the DEVSIM scoreboard values
Devlog #23 The trick for the MOS capacitor worked. Making the electrons react faster put the slow wiggles at a speed the computer can handle, and the answers came out right. That FINALLY finished the AC phase. I also added noise, a tiny random jitter in current that every device has. Next I added time. Now its possible to flip a diode from on to off and watch it recover. When you switch a diode off, it keeps conducting for a moment because of all the charge stored inside it. I compared that against DEVSIM, and our results were within 0.03% of each other which is quite frankly something im really proud off. Then I added a feature where the simulator shows how inaccurate it may be. It now checks its own answer against a finer mesh and puts a little error bar on every point in the plots. It can also improve its own mesh by adding points only where they’re needed. On 5 of my 8 test devices it hit the target accuracy with fewer points than my hand-made meshes. I was aiming for around 6, so that’s still doable. The newest addition is a bipolar transistor, where a small current into the middle layer controls a much bigger current through the whole device. I built a simple 1D version and a more realistic 2D one. The 1D version matches the textbook formula to within 0.03%. The best part is that its gain drops off at both very low and very high current, the way real transistors do, and I never told it to. It figured that out from the physics.
Ships:
I built DDSim, a program that simulates what happens inside the tiny parts that computer chips are made of, ie diodes, capacitors and transistors. You describe a device by its shape and which parts of the silicon have extra electrons or holes. DDSim then works out how those electrons and holes move, and draws the current and voltage curves. I didn’t fit anything to make the graphs look right. Everything comes straight from the physics equations. (NOTE: ITS STILL VERY CLUNKY SO ITS NOT GOING TO BE PERFECT AS OF RIGHT NOW. IF YOU FACE ANY TROUBLES IM REALLY SORRY) To make sure everything accurate, I checked it against textbook formulas and against DEVSIM, a simulator other people wrote. They agree to within a few percent, and the project has about 2,700 automated tests. You can try it in your browser at ddsim.fly.dev. Pick a device, press solve, and watch the answer draw itself. Every button and graph has a little “i” that explains what it means, and there are guided lessons if you’re new to this. It’s a school-level instrument, not a chip design tool. Below about 50 nanometers the physics it uses stops being accurate, so I didn’t go beyond that...
|
1793004958.5938606
|
1793091358.5938606
|
|
29817
|
Gleam by @arth_mi | Stardance
|
arth_mi
|
1
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T22:29:30Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Gleam is a FastAPI backend driving RGBW strips through a generic plugin API, so effects are built on exposed primitives (color, intensity, dim) rather than hardcoded. The tricky part was getting the architecture right first: syncing modules through a shared clock and separating color/intensity/white as distinct render layers. I’m especially proud of the Ambilight module, which captures HDMI output live and mirrors it onto the strip in real time, fully on-device with no cloud dependency.", "repo": "https://github.com/arthmi/gleam", "demo": "https://gleam-virid.vercel.app/docs"}]...
|
[{"post_id": 72828, "ts": "202 [{"post_id": 72828, "ts": "2026-09-23T20:31:06Z", "hours": 10.8583, "text": "Just finished a new module! The module is called audio_reactive and, as its name suggests, it reacts to the audio input provided (system default if parameter = None). It lights up the selected target as the sound gets louder. It also features animations to make sudden transitions feel smoother.Here are the parameters for this module: device: Audio input device name, or a portion of it (empty = system default) color: Color of the light min_intensity: Intensity when the input is silent [0.0 - 1.0] max_intensity: Intensity at maximum volume [0.0 - 1.0] sensitivity: Gain applied to the normalized level [0.1 - 5.0] attack: Rise time in milliseconds (how quickly the light reacts to a louder sound) release: Fall time in milliseconds (how slowly the light fades when the sound drops)"}, {"post_id": 45228, "ts": "2026-08-11T15:51:49Z", "hours": 3.2964, "text": "Rewrite the entirety of the Ambilight module for better functionalities and performances. I wrote an advanced algorithm to get a smoother result in addition to more parameters : device_index edge reversed band_depth_percent weight_exponent sample_overlap_percent saturation_boost -temporal_smoothing_tau The main functionalities added are: Advanced Color Averaging: Improved methods to calculate smarter average colors, such as sampling larger color bands or allowing LEDs to influence adjacent colors. Temporal Smoothing: Introduction of “temporal_smoothing_tau” to ensure smoother, more natural color transitions over time. Enhanced Immersion: Addition of “saturation_boost” and “weight_exponent” parameters to deliver a more vibrant and immersive visual experience. For instance, the colors on the left terminal simulate the final result that would handle the left edge of the screen (using default parameters)."}, {"post_id": 34682, "ts": "2026-07-25T16:23:38Z", "hours": 16.5069, "text": "Just finished the main functionalities of the ambilight module of my LED controller. It takes a stream from the edge of the screen (HDMI to USB, for example), then processes each frame to get the average color of the surrounding area. I’m still working on a blur effect that would give a less detailed result for a better experience. (Sorry for the bad recording quality, this was made on an old laptop.)"}]...
|
Title: Gleam by @arth_mi | Stardance
Devlogs:
Jus Title: Gleam by @arth_mi | Stardance
Devlogs:
Just finished the main functionalities of the ambilight module of my LED controller. It takes a stream from the edge of the screen (HDMI to USB, for example), then processes each frame to get the average color of the surrounding area. I’m still working on a blur effect that would give a less detailed result for a better experience. (Sorry for the bad recording quality, this was made on an old laptop.)
Rewrite the entirety of the Ambilight module for better functionalities and performances. I wrote an advanced algorithm to get a smoother result in addition to more parameters : device_index edge reversed band_depth_percent weight_exponent sample_overlap_percent saturation_boost -temporal_smoothing_tau The main functionalities added are: Advanced Color Averaging: Improved methods to calculate smarter average colors, such as sampling larger color bands or allowing LEDs to influence adjacent colors. Temporal Smoothing: Introduction of “temporal_smoothing_tau” to ensure smoother, more natural color transitions over time. Enhanced Immersion: Addition of “saturation_boost” and “weight_exponent” parameters to deliver a more vibrant and immersive visual experience. For instance, the colors on the left terminal simulate the final result that would handle the left edge of the screen (using default parameters).
Just finished a new module! The module is called audio_reactive and, as its name suggests, it reacts to the audio input provided (system default if parameter = None). It lights up the selected target as the sound gets louder. It also features animations to make sudden transitions feel smoother.Here are the parameters for this module: device: Audio input device name, or a portion of it (empty = system default) color: Color of the light min_intensity: Intensity when the input is silent [0.0 - 1.0] max_intensity: Intensity at maximum volume [0.0 - 1.0] sensitivity: Gain applied to the normalized level [0.1 - 5.0] attack: Rise time in milliseconds (how quickly the light reacts to a louder sound) release: Fall time in milliseconds (how slowly the light fades when the sound drops)
Ships:
Gleam is a FastAPI backend driving RGBW strips through a generic plugin API, so effects are built on exposed primitives (color, intensity, dim) rather than hardcoded. The tricky part was getting the architecture right first: syncing modules through a shared clock and separating color/intensity/white as distinct render layers. I’m especially proud of the Ambilight module, which captures HDMI output live and mirrors it onto the strip in real time, fully on-device with no cloud dependency....
|
1793004957.4157271
|
1793091357.4157271
|
|
19029
|
nosrep's ender 3 printhead by @nosrep | Starda nosrep's ender 3 printhead by @nosrep | Stardance...
|
nosrep
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T06:04:06Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "this is my ender 3 printhead! the printhead is the part that heats up and extrudes the plastic with all the accessories that entails. i originally decided to make this when i randomly came into a direct drive extruder upgrade and a bltouch. i wasn’t satisfied with the existing designs to mount the two to the ender 3 (and i thought it would be fun to make my own), so i did! it’s got a biqu h2 v2s direct extruder, two gdstime 5015 blower fans for part cooling, and a bltouch for bed leveling. printing is now much faster, more precise, and leveling isn’t as much of a pain. the picture below and the video demo is the result of the pin support challenge from fullcontrol.xyz, very nice if i do say so myself (P.S. i brought this to outpost! i was the guy with the neck printer, iykyk.)", "repo": "https://github.com/Osrepnay/h2-v2s-coolhead", "demo": ""}]...
|
[{"post_id": 25998, "ts": "202 [{"post_id": 25998, "ts": "2026-07-10T15:32:06Z", "hours": 0.35, "text": "I made some duct modifications and now cooling seems to be much better. I think the new duct is choking the airflow a bit too much, but it’s more focused and can actually reach the spot right under the nozzle (which the old one seemed to struggle with?). I also did a LOT of testing, didn’t track most of it. Probably could benefit from a little more tuning, but we can do the pin support sphere on fullcontrol.xyz now! fixed some of the lingering issues, like the bltouch interfering with the duct and the bltouch interfering with the endstop (it’s always the bltouch…). we should be done now"}, {"post_id": 25354, "ts": "2026-07-09T16:20:41Z", "hours": 1.5556, "text": "it has been built! it is so loud! I finished designing the ducting and finished printing out everything, immediately a couple problems: ducts bump into bltouch (this was also in the cad but i didn’t notice) and the ducts are really flimsy. The ducts themselves are fine but the front plate is too thin to keep it in place properly. They work but it’s kinda sketchy. To fix the bltouch thing I just melted the ducts with my soldering iron, already remodeled a fixed version but have yet to print. The extruder seems to be not tuned very well. I set the manufacturer-recommended esteps, but it could be off. The cooling also seems to be sketchy? I can feel an insane amount of airflow but i don’t know if it’s going to the part yet. It aims a little low and I reprinted a bridging test I made earlier and the results seem to be worse. I also need to do some fixes later if i want to use this long-term. I couldn’t make a new extruder cable because my crimping tool couldn’t handle jst-ph, so i’m gonna have to deal with the stock extruder cable which severely limits the amount of vertical travel I can handle."}, {"post_id": 24836, "ts": "2026-07-08T17:25:42Z", "hours": 4.0925, "text": "i think i finally finished the ducts… these were nightmarish to make. onshape conveniently doesn’t have 3d sketches, so I did a horribly janky system involving planes and a routing curve. The path the duct had to take ended up being kinda strange, so the loft would constantly crash out because the profiles turned too sharply. i did eventually get the loft to cooperate, and the duct looks okay? it’s still very lumpy, but it should transition relatively smoothly, which is what’s important for airflow. i’ve also started printing the parts now. as i’m typing this, the main mount is finished and the fan mount is almost done. after that i should theoretically be good to assemble once i print the ducts (this is the video i used for duct design principles: https://www.youtube.com/watch?v=YijwkQCOBEA )"}, {"post_id": 12713, "ts": "2026-06-20T19:22:19Z", "hours": 1.2339, "text": "made ducting setup and fine tuned fan mounts actual duct geometry still gonna need a lot of work and maybe prototypes though"}, {"post_id": 12346, "ts": "2026-06-20T04:22:56Z", "hours": 2.7828, "text": "got the bltouch probing after much pain and suffering. needed to make new wires for this, duponts crimped okay but the crimper i borrowed was too wide to crimp the jst-xh properly. did it horribly and it seems sturdyish for now but it is incredibly sketchy and probably a fire hazard (i would be more worried if the bltouch drew more current). the plan was originally to remake the extruder wire, but after this i’m probably gonna have to hold off until i can get a proper crimper"}, {"post_id": 12046, "ts": "2026-06-19T17:25:26Z", "hours": 0.7667, "text": "reverted bltouch position. blower on the side looked too dumb so they’re both going on the front now. Blower mount still needs some refinement but should be basically done, then need ducts"}, {"post_id": 11778, "ts": "2026-06-19T05:09:01Z", "hours": 1.0978, "text": "switched out the bltouch mount position for the blower. struggled with making sane supports, still need to fix that"}, {"post_id": 11705, "ts": "2026-06-19T02:08:31Z", "hours": 0.7425, "text": "did some heat break testing. wanted to see if the casing of the hotend would get hot so i wired up the thermistor+heating element onto the board. waited a few minutes with a cheap fan i had pointed at the heat sink and it didn’t seem to get very hot so that’s a win for the future 3d printed mount. also i soldered the header to and wired up the accelerometer"}, {"post_id": 10347, "ts": "2026-06-17T00:59:54Z", "hours": 0.7556, "text": "mounted the bltouch. it kinda occludes the hotend fan but there shouuulllldd be enough space to not choke it up too bad, assuming it’s not total garbage (doubtful) tried to find a good part cooling fan position too and they’re all strange looking"}, {"post_id": 10232, "ts": "2026-06-16T21:15:35Z", "hours": 1.0567, "text": "got models for bltouch and 5015 fans surprisingly annoying, neither have official models and one model i found online for the bltouch was weird (holes that were supposed to be 18mm were like 17.998mm) and so i immediately gave up and made my own. it looks really bad but it should be usable dimensionally tried a bunch of alternatives for the 5015 fan. tried an alternative manufacturer but it differed too much from the other two community models (which were extremely similar to each other), so i just picked the more popular one. Couldn’t really model this one myself because I don’t have calipers to measure the dimensions and don’t have the fans yet to begin with"}, {"post_id": 9737, "ts": "2026-06-16T05:05:24Z", "hours": 1.165, "text": "did more work on the mount (accidentally forgot to start recording so there’s like an hour of work not listed here) the extruder part is done. there’s still some weirdness in the cad that I should probably clean but i’m also really lazy still need to make part for part cooling fans and bltouch timelapse: https://lapse.hackclub.com/timelapse/ZeQnBYR1oswD"}, {"post_id": 9601, "ts": "2026-06-16T00:10:25Z", "hours": 0.5639, "text": "biqu/bigtreetech does not have cad models for the extruder, but someone on printables made a very accurate one that i’m pulling for measurements. Confirmed it with the drawings that were in the “manual” for the h2 v2s"}]...
|
Title: nosrep's ender 3 printhead by @nosrep | Title: nosrep's ender 3 printhead by @nosrep | Stardance
Devlogs:
biqu/bigtreetech does not have cad models for the extruder, but someone on printables made a very accurate one that i’m pulling for measurements. Confirmed it with the drawings that were in the “manual” for the h2 v2s
did more work on the mount (accidentally forgot to start recording so there’s like an hour of work not listed here) the extruder part is done. there’s still some weirdness in the cad that I should probably clean but i’m also really lazy still need to make part for part cooling fans and bltouch timelapse: https://lapse.hackclub.com/timelapse/ZeQnBYR1oswD
got models for bltouch and 5015 fans surprisingly annoying, neither have official models and one model i found online for the bltouch was weird (holes that were supposed to be 18mm were like 17.998mm) and so i immediately gave up and made my own. it looks really bad but it should be usable dimensionally tried a bunch of alternatives for the 5015 fan. tried an alternative manufacturer but it differed too much from the other two community models (which were extremely similar to each other), so i just picked the more popular one. Couldn’t really model this one myself because I don’t have calipers to measure the dimensions and don’t have the fans yet to begin with
mounted the bltouch. it kinda occludes the hotend fan but there shouuulllldd be enough space to not choke it up too bad, assuming it’s not total garbage (doubtful) tried to find a good part cooling fan position too and they’re all strange looking
did some heat break testing. wanted to see if the casing of the hotend would get hot so i wired up the thermistor+heating element onto the board. waited a few minutes with a cheap fan i had pointed at the heat sink and it didn’t seem to get very hot so that’s a win for the future 3d printed mount. also i soldered the header to and wired up the accelerometer
switched out the bltouch mount position for the blower. struggled with making sane supports, still need to fix that
reverted bltouch position. blower on the side looked too dumb so they’re both going on the front now. Blower mount still needs some refinement but should be basically done, then need ducts
got the bltouch probing after much pain and suffering. needed to make new wires for this, duponts crimped okay but the crimper i borrowed was too wide to crimp the jst-xh properly. did it horribly and it seems sturdyish for now but it is incredibly sketchy and probably a fire hazard (i would be more worried if the bltouch drew more current). the plan was originally to remake the extruder wire, but after this i’m probably gonna have to hold off until i can get a proper crimper
made ducting setup and fine tuned fan mounts actual duct geometry still gonna need a lot of work and maybe prototypes though
i think i finally finished the ducts… these were nightmarish to make. onshape conveniently doesn’t have 3d sketches, so I did a horribly janky system involving planes and a routing curve. The path the duct had to take ended up being kinda strange, so the loft would constantly crash out because the profiles turned too sharply. i did eventually get the loft to cooperate, and the duct looks okay? it’s still very lumpy, but it should transition relatively smoothly, which is what’s important for airflow. i’ve also started printing the parts now. as i’m typing this, the main mount is finished and the fan mount is almost done. after that i should theoretically be good to assemble once i print the ducts (this is the video i used for duct design principles: https://www.youtube.com/watch?v=YijwkQCOBEA )
it has been built! it is so loud! I finished designing the ducting and finished printing out everything, immediately a couple problems: ducts bump into bltouch (this was also in the cad but i didn’t notice) and the ducts are really flimsy. The ducts themselves are fine but the front plate is too thin to keep it in place properly. They work but it’s kinda sketchy. To fix the bltouch thing I just melted the ducts with my soldering iron, already remodeled a fixed version but have yet to print. The extruder seems to be not tuned very well. I set the manufacturer-recommended esteps, but it could be off. The cooling also seems to be sketchy? I can feel an insane amount of airflow but i don’t know if it’s going to the part yet. It aims a little low and I reprinted a bridging test I made earlier and the results seem to be worse. I also need to do some fixes later if i want to use this long-term. I couldn’t make a new extruder cable because my crimping tool couldn’t handle jst-ph, so i’m gonna have to deal with the stock extruder cable which severely limits the amount of vertical travel I can handle.
I made some duct modifications and now cooling seems to be much better. I think the new duct is choking the airflow a bit too much, but it’s more focused and can actually reach the spot right under the nozzle (which the old one seemed to struggle with?). I also did a LOT of testing, didn’t track most of it. Probably could benefit from a little more tuning, but we can do the pin support sphere on fullcontrol.xyz now! fixed some of the lingering issues, like the bltouch interfering with the duct and the bltouch interfering with the endstop (it’s always the bltouch…). we should be done now
Ships:
this is my ender 3 printhead! the printhead is the part that heats up and extrudes the plastic with all the accessories that entails. i originally decided to make this when i randomly came into a direct drive extruder upgrade and a bltouch. i wasn’t satisfied with the existing designs to mount the two to the ender 3 (and i thought it would be fun to make my own), so i did! it’s got a biqu h2 v2s direct extruder, two gdstime 5015 blower fans for part cooling, and a bltouch for bed leveling. printing is now much faster, more precise, and leveling isn’t as much of a pain. the picture below and the video demo is the result of the pin support challenge from fullcontrol.xyz, very nice if i do say so myself (P.S. i brought this to outpost! i was the guy with the neck printer, iykyk.)...
|
1793004956.159373
|
1793091356.159373
|
|
9931
|
ChatPatches by @obro1984 | Stardance
|
obro1984
|
1
|
83.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-06T05:39:03Z", "hours": 83.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is Chat Patches! I’m gonna cut to the chase and explain the process of developing recently because everything about the mod is on the GitHub readme, in the changelog, and in these devlogs. Recently I’ve found time management difficult and as a result I’ve had to be more efficient and creative about how I’m spending my time developing. There’s been an influx in community contributions via PR which has been quite helpful, but most is still left up to me. However, one benefit of not having as much time to work on things is that issues I can’t seem to solve have more time for me to simmer and ponder to come up with solutions. however, this has postponed some big features i’ve already been putting off even more… hopefully i can get around to those and find some breakthrough point to pull myself through. anyways, in terms of changes, most of it has been bugfixes, but there have been a handful of additions recently, especially related to new configuration options (compact-safe messages, human-readable time format, cleaner context menu, etc.) - of course with plans to add many more. i’m proud of all these features and how far the mod has come, and frankly i’m surprised im even still developing it. i hope i can get the bigger stuff done soon so i can move on to bigger things, though. to test the mod, just set up fabricmc as explained on their website or via literally any modded minecraft tutorial - i recommend using a third-party launcher such as PrismLauncher as it keeps track of everything for you and wraps it in a nice interface. once your installation is ready simply add chat patches and its dependencies (again, using a launcher will help as it will add the deps for you!) and run the game! i hope your experience is bettered and you make the chat feel as personalized as you like :D", "repo": "https://github.com/mrbuilder1961/ChatPatches", "demo": "https://modrinth.com/mod/chatpatches/gallery"}]...
|
[{"post_id": 77225, "ts": "202 [{"post_id": 77225, "ts": "2026-10-06T05:21:48Z", "hours": 7.6692, "text": "8.0.0 released! yes, it’s been done! chat patches has been in alpha for a year and the better part of another? all because i finally impl’d the omnivers-stonecutter buildscript and additionally wanted more large-scale changes (test suite, neoforge support, DFU migration codec) ((of which are still planned… eventually!!)) … but then i just never took it off. well, you can’t wait around forever. also, this update is perfect for releasing as a whopping TEN issue reports were closed upon release, with countless others fixed soundlessly! credit where it’s due, there was a fair amount of community support via PRs for this release, but that doesn’t take away from the benefit we as a community experience from it being added! while we’re out here celebrating these crushed bugs, new features, and the return to release-channel versions, i think it’s safe to say chat patches is worthy of shipping too! i hope you’ve enjoyed using chat patches and it’s bettered your minecraft experience - and if you haven’t used it, i hope you’ll give it a try and let me know what you think. thanks again to everyone who contributed and cheers to even more fixes and features in the future! 🎉🥳💃🎈"}, {"post_id": 72734, "ts": "2026-09-23T16:44:23Z", "hours": 12.9153, "text": "i’ve been very busy with university starting, but recently there has been an influx in PRs fixing bugs, which is awesome! so i’ve been monitoring those and slowly merging them into the main branch. additionally, i’ve been chipping away at fixes and suggestion implementations here and there; specifically: excluding specific messages from being compacted updating to 26.3 actually uploading signature files (now that Modrinth officially supports them) fixing chat auto scrolling while duplicate messages are being received adding fallbacks for the chat log’s codec provider in case the current one fails/doesn’t exist ..and more!! i hope to add more stuff soon and publish a release, but i have about 4 free minutes per week and unfortunately, i end up not wanting to spend it on largely unpaid labor. nevertheless, my aspirations remain and my hopes are high!"}, {"post_id": 46725, "ts": "2026-08-14T05:34:29Z", "hours": 5.3536, "text": "i’ve been SUPER busy as of late, and will probably continue to be for at least another week or two if not longer, but i’m starting to begin to wrap up unit testing. i finally pushed the existing tests and framework to github on a separate branch, but bc i’m so bad at Git, IntelliJ is fucking up my other changes i’m currently working on (updating the main omnivers branch to 26.3-snapshot-8 )… so hopefully i can fix that soon. unfortunately i don’t know when the unit testing will be finished, as it takes a longggg time to figure out the little edge cases, and i prefer to avoid AI everywhere possible (although there’s only so much ethical struggling i can endure before i need to ask for help)."}, {"post_id": 29224, "ts": "2026-07-16T00:17:47Z", "hours": 10.7325, "text": "Unit Testing! yup, that’s what’s been taking so long. i actually got past the gradle setup part pretty quick, i just wasn’t expecting current code to be so… dysfunctional. i’ve done a lot of rewriting and test formatting and sometimes it just gets really brain numbing so i put on a youtube video in the background and then its been 45 minutes and i havent changed anything… but i just achieved my first all-passing test milestone! so i’ll be pushing it soon and then i’ll the changes that make everything pass will follow soon after. currently I’m targeting TextUtil , where the most edge-cases take place, in the form of String <-> Component transformations. ultimiately i’d like to also do E2E testing in the form of Fabric’s ClientGameTest , but those can only be done on the most recent version due to FAPI not backporting changes (it’s probably for the best anyway) - so i’ll be doing that last. that’s it for now! i can’t wait for everyone (especially me), to benefit from this when future releases are checked before releasing! yayyyy!!!"}, {"post_id": 21584, "ts": "2026-07-03T16:47:26Z", "hours": 22.8564, "text": "hey chat! i’ve finished up some of that stuff from before. most notably: publishMods now works again! turns out Modrinth just recently (i.e. this week) allowed attaching signatures to builds so it’s not currently supported with MPP also, turns out the whole checksum thing was kinda useless because Modrinth has provided file hashes via their API this whole time - so… i think i’m gonna table that idea for now and use that later i published a new version ( alpha.11 ) that fixes the teensy-eensy little problem that incomplete mixins were accidentally included in the jar uploaded to CF and MR as alpha.10 . whoops! version parsing is now much more robust and typically requires only one gradle property to be specified! for newer releases you can override the FMJ version (ex. w/ ~26.2 for the 26.2 subproject) and the rest is handled automatically. i’m also waiting on MPP#116 to see if this can be consolidated entirely, with no need for an extra override! the classtweaker is now stone-cut so it’s a bit easier to see what is applied to where cleaned up the buildscript more (it is perpetually dirty :/) fixed a handful of bugs and impl’d a couple suggestions! and now, i get to move on to one of the most daunting but hopefully most rewarding things: drumroll please…. ztzttstz.z.t..z….. unit testing!!! you’re probably thinking, chat patches hasn’t had any unit tests this WHOLE time!??! and you’d be right! idk how there aren’t more bugs. but now i’m putting everything else (chat patches wise, at least) on hold to get this done. bc if i don’t do it now, it will never get done. ik this isn’t very pretty but you gotta do what you gotta do."}, {"post_id": 15214, "ts": "2026-06-24T18:36:47Z", "hours": 23.2442, "text": "i’ve been doing what feels like a lot but isn’t overall much. i’ve been refactoring the Kotlin Gradle buildscript, which i’m notoriously bad at so it’s taking a really long time. some of my (attempted) changes include: generating signatures and checksums with published builds (2/3 done) simplified stonecutter replacements and swaps assessed what will need to change to transition to the new modstitch-toolkit minorly updated mod-publish-plugin and started planning for new version range parsing and functionality in other things, i’ve: fixed the context menu deletion option resetting the scroll pos removed the entirely unused option table in the README better utilized classtweakers in the context menu implemented annotation-based constraints for config options replaced the dual-impl option validation system with a unified one via codecs (now used in the YACL config, with one annoying side effect) future-proofed the module-based fabric api importing so that it only loads what’s necessary (and it should work with neoforge when i eventually impl that!) updated mod functionality to 26.2 (despite being unable to publish everything at once 😑)"}]...
|
Title: ChatPatches by @obro1984 | Stardance
Devlo Title: ChatPatches by @obro1984 | Stardance
Devlogs:
i’ve been doing what feels like a lot but isn’t overall much. i’ve been refactoring the Kotlin Gradle buildscript, which i’m notoriously bad at so it’s taking a really long time. some of my (attempted) changes include: generating signatures and checksums with published builds (2/3 done) simplified stonecutter replacements and swaps assessed what will need to change to transition to the new modstitch-toolkit minorly updated mod-publish-plugin and started planning for new version range parsing and functionality in other things, i’ve: fixed the context menu deletion option resetting the scroll pos removed the entirely unused option table in the README better utilized classtweakers in the context menu implemented annotation-based constraints for config options replaced the dual-impl option validation system with a unified one via codecs (now used in the YACL config, with one annoying side effect) future-proofed the module-based fabric api importing so that it only loads what’s necessary (and it should work with neoforge when i eventually impl that!) updated mod functionality to 26.2 (despite being unable to publish everything at once 😑)
hey chat! i’ve finished up some of that stuff from before. most notably: publishMods now works again! turns out Modrinth just recently (i.e. this week) allowed attaching signatures to builds so it’s not currently supported with MPP also, turns out the whole checksum thing was kinda useless because Modrinth has provided file hashes via their API this whole time - so… i think i’m gonna table that idea for now and use that later i published a new version ( alpha.11 ) that fixes the teensy-eensy little problem that incomplete mixins were accidentally included in the jar uploaded to CF and MR as alpha.10 . whoops! version parsing is now much more robust and typically requires only one gradle property to be specified! for newer releases you can override the FMJ version (ex. w/ ~26.2 for the 26.2 subproject) and the rest is handled automatically. i’m also waiting on MPP#116 to see if this can be consolidated entirely, with no need for an extra override! the classtweaker is now stone-cut so it’s a bit easier to see what is applied to where cleaned up the buildscript more (it is perpetually dirty :/) fixed a handful of bugs and impl’d a couple suggestions! and now, i get to move on to one of the most daunting but hopefully most rewarding things: drumroll please…. ztzttstz.z.t..z….. unit testing!!! you’re probably thinking, chat patches hasn’t had any unit tests this WHOLE time!??! and you’d be right! idk how there aren’t more bugs. but now i’m putting everything else (chat patches wise, at least) on hold to get this done. bc if i don’t do it now, it will never get done. ik this isn’t very pretty but you gotta do what you gotta do.
Unit Testing! yup, that’s what’s been taking so long. i actually got past the gradle setup part pretty quick, i just wasn’t expecting current code to be so… dysfunctional. i’ve done a lot of rewriting and test formatting and sometimes it just gets really brain numbing so i put on a youtube video in the background and then its been 45 minutes and i havent changed anything… but i just achieved my first all-passing test milestone! so i’ll be pushing it soon and then i’ll the changes that make everything pass will follow soon after. currently I’m targeting TextUtil , where the most edge-cases take place, in the form of String <-> Component transformations. ultimiately i’d like to also do E2E testing in the form of Fabric’s ClientGameTest , but those can only be done on the most recent version due to FAPI not backporting changes (it’s probably for the best anyway) - so i’ll be doing that last. that’s it for now! i can’t wait for everyone (especially me), to benefit from this when future releases are checked before releasing! yayyyy!!!
i’ve been SUPER busy as of late, and will probably continue to be for at least another week or two if not longer, but i’m starting to begin to wrap up unit testing. i finally pushed the existing tests and framework to github on a separate branch, but bc i’m so bad at Git, IntelliJ is fucking up my other changes i’m currently working on (updating the main omnivers branch to 26.3-snapshot-8 )… so hopefully i can fix that soon. unfortunately i don’t know when the unit testing will be finished, as it takes a longggg time to figure out the little edge cases, and i prefer to avoid AI everywhere possible (although there’s only so much ethical struggling i can endure before i need to ask for help).
i’ve been very busy with university starting, but recently there has been an influx in PRs fixing bugs, which is awesome! so i’ve been monitoring those and slowly merging them into the main branch. additionally, i’ve been chipping away at fixes and suggestion implementations here and there; specifically: excluding specific messages from being compacted updating to 26.3 actually uploading signature files (now that Modrinth officially supports them) fixing chat auto scrolling while duplicate messages are being received adding fallbacks for the chat log’s codec provider in case the current one fails/doesn’t exist ..and more!! i hope to add more stuff soon and publish a release, but i have about 4 free minutes per week and unfortunately, i end up not wanting to spend it on largely unpaid labor. nevertheless, my aspirations remain and my hopes are high!
8.0.0 released! yes, it’s been done! chat patches has been in alpha for a year and the better part of another? all because i finally impl’d the omnivers-stonecutter buildscript and additionally wanted more large-scale changes (test suite, neoforge support, DFU migration codec) ((of which are still planned… eventually!!)) … but then i just never took it off. well, you can’t wait around forever. also, this update is perfect for releasing as a whopping TEN issue reports were closed upon release, with countless others fixed soundlessly! credit where it’s due, there was a fair amount of community support via PRs for this release, but that doesn’t take away from the benefit we as a community experience from it being added! while we’re out here celebrating these crushed bugs, new features, and the return to release-channel versions, i think it’s safe to say chat patches is worthy of shipping too! i hope you’ve enjoyed using chat patches and it’s bettered your minecraft experience - and if you haven’t used it, i hope you’ll give it a try and let me know what you think. thanks again to everyone who contributed and cheers to even more fixes and features in the future! 🎉🥳💃🎈
Ships:
This is Chat Patches! I’m gonna cut to the chase and explain the process of developing recently because everything about the mod is on the GitHub readme, in the changelog, and in these devlogs. Recently I’ve found time management difficult and as a result I’ve had to be more efficient and creative about how I’m spending my time developing. There’s been an influx in community contributions via PR which has been quite helpful, but most is still left up to me. However, one benefit of not having as much time to work on things is that issues I can’t seem to solve have more time for me to simmer and ponder to come up with solutions. however, this has postponed some big features i’ve already been putting off even more… hopefully i can get around to those and find some breakthrough point to pull myself through. anyways, in terms of changes, most of it has been bugfixes, but there have been a handful of additions recently, especially related to new configuration options (compact-safe messages, human-readable time format, cleaner context menu, etc.) - of course with plans to add many more. i’m proud of all these features and how far the mod has come, and frankly i’m surprised im even still developing it. i hope i can get the bigger stuff done soon so i can move on to bigger things, though. to test the mod, just set up fabricmc as explained on their website or via literally any modded minecraft tutorial - i recommend using a third-party launcher such as PrismLauncher as it keeps track of everything for you and wraps it in a nice interface. once your installation is ready simply add chat patches and its dependencies (again, using a launcher will help as it will add the deps for you!) and run the game! i hope your experience is bettered and you make the chat feel as personalized as you like :D...
|
1793004953.9332492
|
1793091353.9332492
|
|
57231
|
My Personal Site by @Coding-AN | Stardance
|
Coding-AN
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T21:14:58Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my personal website that I made using HTML and CSS. It contains some information about me, as well as what I’m currently up to. Additionally, it contains some of my past projects, as well as a link to my GitHub. As I continue to make more things and have more to share, I will continue to update it. It’s the first time I’ve done any web development, and although it’s on the simple side, I think it turned out great!", "repo": "https://github.com/Coding-AN/Website-AN", "demo": "https://coding-an.github.io/Website-AN/"}]...
|
[{"post_id": 67670, "ts": "202 [{"post_id": 67670, "ts": "2026-09-13T20:37:50Z", "hours": 0.2675, "text": "I implemented the pseudo-classes on all the links of my website, so now the element gets bigger when you hover over it. As for the overly centered nature of the site, since I don’t want to give up my current stacked layout or mess with the scale, I’ve decided to keep everything as it is. My next step will be to ship, so look out for that."}, {"post_id": 67503, "ts": "2026-09-13T17:00:11Z", "hours": 1.8864, "text": "I fixed the scaling of the website, and centered everything. Everything might be a little too centered though, as there’s too much empty space on the sides. It looks good in a portrait orientation, but for a desktop-focused website, I think it needs a little tweaking. Although I was originally planning to stop here, I’ll be implementing pseudo-classes to add some interaction to the website, and try to see how I can fix the design of the site"}, {"post_id": 66943, "ts": "2026-09-12T22:23:09Z", "hours": 0.6019, "text": "I added a section for my projects, and added a link to my GitHub at the top. I think I’m finished with the content of the website now. However, before I ship, I still need to finish the scaling of the website, as the sizing of elements is completely out of wack."}, {"post_id": 65722, "ts": "2026-09-11T02:04:56Z", "hours": 1.6728, "text": "I added an about me section, as well as a section that details what I’m currently up to. Right now, it has my current video game, and my current project, but I may add more entries in the future."}, {"post_id": 60578, "ts": "2026-09-03T00:54:19Z", "hours": 1.7092, "text": "I started working on my site using the tutorial, and finished the header and navigation bar. I actually did this yesterday, but I forgot to post a devlog, so I’m getting this up to date now."}]...
|
Title: My Personal Site by @Coding-AN | Stardance
Title: My Personal Site by @Coding-AN | Stardance
Devlogs:
I started working on my site using the tutorial, and finished the header and navigation bar. I actually did this yesterday, but I forgot to post a devlog, so I’m getting this up to date now.
I added an about me section, as well as a section that details what I’m currently up to. Right now, it has my current video game, and my current project, but I may add more entries in the future.
I added a section for my projects, and added a link to my GitHub at the top. I think I’m finished with the content of the website now. However, before I ship, I still need to finish the scaling of the website, as the sizing of elements is completely out of wack.
I fixed the scaling of the website, and centered everything. Everything might be a little too centered though, as there’s too much empty space on the sides. It looks good in a portrait orientation, but for a desktop-focused website, I think it needs a little tweaking. Although I was originally planning to stop here, I’ll be implementing pseudo-classes to add some interaction to the website, and try to see how I can fix the design of the site
I implemented the pseudo-classes on all the links of my website, so now the element gets bigger when you hover over it. As for the overly centered nature of the site, since I don’t want to give up my current stacked layout or mess with the scale, I’ve decided to keep everything as it is. My next step will be to ship, so look out for that.
Ships:
This is my personal website that I made using HTML and CSS. It contains some information about me, as well as what I’m currently up to. Additionally, it contains some of my past projects, as well as a link to my GitHub. As I continue to make more things and have more to share, I will continue to update it. It’s the first time I’ve done any web development, and although it’s on the simple side, I think it turned out great!...
|
1793004952.737856
|
1793091352.737856
|
|
57208
|
the thing by @rizz | Stardance
|
rizz
|
1
|
11.93
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T14:05:06Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What I Made I made Toolbox , a small website where people can find useful everyday tools in one place. It includes a focus timer, task list, notes, password generator, unit converter, customs calculator, color picker, calculator, random picker, and habit tracker. I also added a hand drawn style, pastel colours, dark mode, local saving, breadcrumbs, loading animations, keyboard support, and an interactive 3D background with floating shapes and particle effects. What Was Challenging The hardest part was making the website look interesting without making it difficult to use. I tried several different styles before finding the current hand drawn and colourful look. Adding the 3D background was also challenging because it needed to feel alive while keeping the text and tools easy to see. Another difficult part was making all the tools work properly inside the same modal system. Each tool needed its own controls, buttons, results, reset behavior, and error handling. The breadcrumb navigation and deep links were also challenging. I wanted users to be able to open a specific tool directly and still use the browser back button normally. Dark mode took more work than expected too. Changing only the background colour looked bad, so I had to adjust the cards, text, borders, shadows, forms, and 3D background separately. What I Am Proud Of I am proud that Toolbox is not just a design mockup. The tools actually work. You can add tasks, write notes, generate passwords, convert values, calculate numbers, choose random options, and track habits. Notes, tasks, habits, and theme settings can also be saved in the browser. I am especially proud of the 3D background because I built it with a canvas instead of relying on a large 3D library. It reacts to the mouse, moves objects through depth, and creates particles when the page is clicked. I am also proud of the small accessibility details. The cards, icons, and arrows can be opened with the keyboard. Modals can be closed with Escape, and the site has reduced motion support. What People Should Know Before Testing The project currently works without an account or backend. Tasks, notes, habits, and theme settings are saved only in the browser being used. If browser storage is cleared, that information will disappear. The data will not automatically appear on another device. Authentication and cloud sync are planned but are not active yet. The customs calculator is only a rough estimate using simple example rates. It should not be used as official tax or customs advice. To test the project, try these things: Open a tool card. Click the icon on a card. Click the arrow on a card. Open a card with Enter or Space. Close a modal with Escape. Try the “See the tools” button. Switch between light mode and dark mode. Add and complete a task. Write a note, reload the page, and check if it stayed saved. Mark a few days in the habit tracker. Open a calculator directly with ?tool=calculator . Open a tool and use the browser back button. Move the mouse around the 3D background. Click the page and watch the particle effect. For the best test, run the project with a local server: python3 -m http.server 8000", "repo": "https://github.com/STEVEALEX-source/bleh", "demo": "https://stevealex-source.github.io/bleh/"}]...
|
[{"post_id": 80124, "ts": "202 [{"post_id": 80124, "ts": "2026-10-16T09:25:02Z", "hours": 2.6553, "text": "added new stuff and made it into a proper webos with all the features"}, {"post_id": 70060, "ts": "2026-09-18T11:25:41Z", "hours": 1.2719, "text": "changed the UI cuz it got flagged as AI even tho i didn’t use Ai"}, {"post_id": 68063, "ts": "2026-09-14T13:38:02Z", "hours": 3.0397, "text": "Devlog 08 — Current state and the next backend stepToolbox now combines a pastel hand-drawn interface, ten working browser tools, skeleton loading states, breadcrumb navigation, deep links, local persistence, and an interactive 3D canvas background.The current app works as a static frontend. Tasks, notes, habits, and theme preferences stay in browser storage. No account is required for the existing version.Supabase was selected as the planned backend for the next stage. The intended implementation is email authentication, user-owned records, row-level security, cloud sync, offline fallback, and migration from local storage after sign-in.That backend work has not been faked or partially hidden in the frontend. It still needs a Supabase project URL, public anon key, database schema, and security policies before it can be connected safely.The current deployable project contains index.html, style.css, script.js, and 404.html. The frontend can be deployed now, while authentication and synchronization remain the next planned milestone."}, {"post_id": 65759, "ts": "2026-09-11T03:25:29Z", "hours": 2.2308, "text": "so aghh i have rewrote the code and added some more options but i accidentally deleted my Os cuz i tried to play val by dual booting ahem…i lost all my files."}, {"post_id": 62934, "ts": "2026-09-06T14:09:01Z", "hours": 0.2836, "text": "Devlog 06 — Breadcrumbs, deep links, and history The site now has an actual navigation state instead of relying only on scrolling. A breadcrumb row shows the current location and a live status message. It changes between Home, Tools, and About as the user moves through the page. Hovering over a tool card reports the tool name in the status area. Opening a tool updates the URL with a query parameter such as: Plain Text /?tool=calculator This means a specific tool can be shared directly. Browser back and forward navigation also restores or closes the modal correctly. This stage made the application feel more like a small web app instead of a static collection of panels."}, {"post_id": 62216, "ts": "2026-09-05T14:04:37Z", "hours": 0.2981, "text": "Devlog 05 — Adding more tools and loading feedback I expanded Toolbox from seven tools to ten. The new tools are a basic calculator, a random picker, and a habit tracker. The calculator handles basic arithmetic, decimals, clearing, backspace, and divide-by-zero handling. The random picker accepts one option per line and chooses one result. The habit tracker stores a habit name and marks progress across the last seven days. I also added a visible skeleton loader when opening a modal. The loading state is short, but it gives the interface a clear transition instead of making the tool appear abruptly. The habit tracker still works without an account by using local browser storage."}, {"post_id": 61358, "ts": "2026-09-04T07:23:04Z", "hours": 0.3933, "text": "Devlog 04 — Improving the tools and interaction The project then moved from visual work into interaction design. Tool cards became keyboard accessible. Users can open cards with Enter or Space, and tool icons and arrows can also be focused and activated directly. The modal now manages focus more carefully. It moves focus into the dialog when opened, locks page scrolling, closes on Escape, and returns focus to the original card after closing. The password generator was also improved to use cryptographically stronger random values instead of relying only on Math.random(). The theme toggle stores its state locally and exposes its state through aria-pressed. These changes made the site feel less like a visual experiment and more like a real usable interface."}, {"post_id": 60714, "ts": "2026-09-03T08:37:07Z", "hours": 0.8158, "text": "Devlog 03 — Adding the hand-drawn style The next pass moved Toolbox toward a hand-drawn notebook style. I added handwritten display fonts, uneven rotations, sketch borders, paper textures, dashed outlines, irregular icon shapes, and offset shadows. The goal was to make the interface feel assembled by hand rather than generated from a standard component library. The cards received small imperfections instead of perfectly symmetrical decoration. Buttons, labels, notes, and headings started using a more informal visual language. I also added reduced-motion support so the hand-drawn animation would not become a problem for users who prefer less movement. This was the point where Toolbox developed a recognisable personality."}, {"post_id": 60116, "ts": "2026-09-02T08:48:56Z", "hours": 0.3106, "text": "Devlog 02 — Reworking the visual direction The first visual direction felt too much like a generic landing page, so I rebuilt the layout around a quieter utility interface. I changed the typography, spacing, card proportions, modal layout, and responsive behavior. The hero became less promotional and more like an entry point into a small collection of tools. The copy was shortened and made more direct. Instead of trying to sell the product, the page started explaining what it actually does. The card layout became easier to scan. Each card received a number, a short description, a category label, and a clear open action. This stage established the basic visual rule for the project: the interface should feel like a useful object, not a marketing page."}, {"post_id": 59686, "ts": "2026-09-01T16:39:17Z", "hours": 0.7372, "text": "Devlog 01 — Starting with a small toolbox I started building Toolbox as a simple browser page for the little tasks that usually lead to opening five more tabs. The first version focused on three files: index.html, style.css, and script.js. The page had a hero section, a tool grid, a modal system, a theme toggle, and a few local utilities. The first tools were a focus timer, task list, notes area, password generator, unit converter, customs estimate, and color picker. The goal was deliberately small: open the page, choose a tool, finish the job, and leave. The important early decision was to keep everything client-side. Tasks and notes could use browser storage, while calculators and converters could work without a server."}]...
|
Title: the thing by @rizz | Stardance
Devlogs:
De Title: the thing by @rizz | Stardance
Devlogs:
Devlog 01 — Starting with a small toolbox I started building Toolbox as a simple browser page for the little tasks that usually lead to opening five more tabs. The first version focused on three files: index.html, style.css, and script.js. The page had a hero section, a tool grid, a modal system, a theme toggle, and a few local utilities. The first tools were a focus timer, task list, notes area, password generator, unit converter, customs estimate, and color picker. The goal was deliberately small: open the page, choose a tool, finish the job, and leave. The important early decision was to keep everything client-side. Tasks and notes could use browser storage, while calculators and converters could work without a server.
Devlog 02 — Reworking the visual direction The first visual direction felt too much like a generic landing page, so I rebuilt the layout around a quieter utility interface. I changed the typography, spacing, card proportions, modal layout, and responsive behavior. The hero became less promotional and more like an entry point into a small collection of tools. The copy was shortened and made more direct. Instead of trying to sell the product, the page started explaining what it actually does. The card layout became easier to scan. Each card received a number, a short description, a category label, and a clear open action. This stage established the basic visual rule for the project: the interface should feel like a useful object, not a marketing page.
Devlog 03 — Adding the hand-drawn style The next pass moved Toolbox toward a hand-drawn notebook style. I added handwritten display fonts, uneven rotations, sketch borders, paper textures, dashed outlines, irregular icon shapes, and offset shadows. The goal was to make the interface feel assembled by hand rather than generated from a standard component library. The cards received small imperfections instead of perfectly symmetrical decoration. Buttons, labels, notes, and headings started using a more informal visual language. I also added reduced-motion support so the hand-drawn animation would not become a problem for users who prefer less movement. This was the point where Toolbox developed a recognisable personality.
Devlog 04 — Improving the tools and interaction The project then moved from visual work into interaction design. Tool cards became keyboard accessible. Users can open cards with Enter or Space, and tool icons and arrows can also be focused and activated directly. The modal now manages focus more carefully. It moves focus into the dialog when opened, locks page scrolling, closes on Escape, and returns focus to the original card after closing. The password generator was also improved to use cryptographically stronger random values instead of relying only on Math.random(). The theme toggle stores its state locally and exposes its state through aria-pressed. These changes made the site feel less like a visual experiment and more like a real usable interface.
Devlog 05 — Adding more tools and loading feedback I expanded Toolbox from seven tools to ten. The new tools are a basic calculator, a random picker, and a habit tracker. The calculator handles basic arithmetic, decimals, clearing, backspace, and divide-by-zero handling. The random picker accepts one option per line and chooses one result. The habit tracker stores a habit name and marks progress across the last seven days. I also added a visible skeleton loader when opening a modal. The loading state is short, but it gives the interface a clear transition instead of making the tool appear abruptly. The habit tracker still works without an account by using local browser storage.
Devlog 06 — Breadcrumbs, deep links, and history The site now has an actual navigation state instead of relying only on scrolling. A breadcrumb row shows the current location and a live status message. It changes between Home, Tools, and About as the user moves through the page. Hovering over a tool card reports the tool name in the status area. Opening a tool updates the URL with a query parameter such as: Plain Text /?tool=calculator This means a specific tool can be shared directly. Browser back and forward navigation also restores or closes the modal correctly. This stage made the application feel more like a small web app instead of a static collection of panels.
so aghh i have rewrote the code and added some more options but i accidentally deleted my Os cuz i tried to play val by dual booting ahem…i lost all my files.
Devlog 08 — Current state and the next backend stepToolbox now combines a pastel hand-drawn interface, ten working browser tools, skeleton loading states, breadcrumb navigation, deep links, local persistence, and an interactive 3D canvas background.The current app works as a static frontend. Tasks, notes, habits, and theme preferences stay in browser storage. No account is required for the existing version.Supabase was selected as the planned backend for the next stage. The intended implementation is email authentication, user-owned records, row-level security, cloud sync, offline fallback, and migration from local storage after sign-in.That backend work has not been faked or partially hidden in the frontend. It still needs a Supabase project URL, public anon key, database schema, and security policies before it can be connected safely.The current deployable project contains index.html, style.css, script.js, and 404.html. The frontend can be deployed now, while authentication and synchronization remain the next planned milestone.
changed the UI cuz it got flagged as AI even tho i didn’t use Ai
added new stuff and made it into a proper webos with all the features
Ships:
What I Made I made Toolbox , a small website where people can find useful everyday tools in one place. It includes a focus timer, task list, notes, password generator, unit converter, customs calculator, color picker, calculator, random picker, and habit tracker. I also added a hand drawn style, pastel colours, dark mode, local saving, breadcrumbs, loading animations, keyboard support, and an interactive 3D background with floating shapes and particle effects. What Was Challenging The hardest part was making the website look interesting without making it difficult to use. I tried several different styles before finding the current hand drawn and colourful look. Adding the 3D background was also challenging because it needed to feel alive while keeping the text and tools easy to see. Another difficult part was making all the tools work properly inside the same modal system. Each tool needed its own controls, buttons, results, reset behavior, and error handling. The breadcrumb navigation and deep links were also challenging. I wanted users to be able to open a specific tool directly and still use the browser back button normally. Dark mode took more work than expected too. Changing only the background colour looked bad, so I had to adjust the cards, text, borders, shadows, forms, and 3D background separately. What I Am Proud Of I am proud that Toolbox is not just a design mockup. The tools actually work. You can add tasks, write notes, generate passwords, convert values, calculate numbers, choose random options, and track habits. Notes, tasks, habits, and theme settings can also be saved in the browser. I am especially proud of the 3D background because I built it with a canvas instead of relying on a large 3D library. It reacts to the mouse, moves objects through depth, and creates particles when the page is clicked. I am also proud of the small accessibility details. The cards, icons, and arrows can be opened with the keyboard. Modals can be closed with Escape, and the site has reduced motion support. What People Should Know Before Testing The project currently works without an account or backend. Tasks, notes, habits, and theme settings are saved only in the browser being used. If browser storage is cleared, that information will disappear. The data will not automatically appear on another device. Authentication and cloud sync are planned but are not active yet. The customs calculator is only a rough estimate using simple example rates. It should not be used as official tax or customs advice. To test the project, try these things: Open a tool card. Click the icon on a card. Click the arrow on a card. Open a card with Enter or Space. Close a modal with Escape. Try the “See the tools” button. Switch between light mode and dark mode. Add and complete a task. Write a note, reload the page, and check if it stayed saved. Mark a few days in the habit tracker. Open a calculator directly with ?tool=calculator . Open a tool and use the browser back button. Move the mouse around the 3D background. Click the page and watch the particle effect. For the best test, run the project with a local server: python3 -m http.server 8000...
|
1793004951.5803804
|
1793091351.5803804
|
|
57204
|
PERFECT DAYY by @aliya | Stardance
|
aliya
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T21:19:19Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "ABOUT: ✨ It’s a website which is supposed to help you be more productive. You have three tasks. The more tasks you complete, the sun rises, helping the dillagers (ducks+villagers = dillagers, cuz the ducks are villagers) come out of their home and work for their families and bring them food. But if you keep stalling the tasks… they’ll go hungry.. and have nothing to feed their family… You want that? THEN QUIT WHINING AND GET TO WORK SUSAN! (Apologies to the Susans out in the world.) WHAT I LEARNT: 🤩🤩🤩 Lots of css properties and javascript (I’m a total newbie; I started in July) and to for the love of god — RECHECK YOUR CODE. PROBLEMS 😰😰 AND SOLUTIONS: 🥳🥳 I used html, a lot of css and some java. I had issues in pixelating the background and creating these shapes (still trying to get a hang of the pixelated thing.) I also kept having an error while building the notepad, it would either not show up or wouldn’t align with the animation. I realized I was using some wrong css properties and kept mixing stuff up. I also accidentally kept duplicating the amount of ducks lol but it was solved by just revisiting your code again at different times.", "repo": "https://github.com/aliya-8411/Perfect-Day-website", "demo": "https://aliya-8411.github.io/Perfect-Day-website/"}]...
|
[{"post_id": 69742, "ts": "202 [{"post_id": 69742, "ts": "2026-09-17T18:10:21Z", "hours": 1.1392, "text": "Hi, I’m alive. What a surprise, huh?” So my guess is you might be wondering where I was all these days. So lemme just tell you which hell I was damned to. So basically we went to our grandmas house for a lil while. It’s not in the city its more in the country side and there are jackals in those fields. Me and my cousin were wandering and we saw a puppy. Or what we thought was a puppy , I tried to pet it and then we hear : ” WWEEEAAAOOO WEEAAOOO” And those who don’t know jackals have this eery cry like thing its creepy as hell and then the puppy starts bakring like CRAZY , i could see the ishowspeed in him, parents need to monitor what their child is watching. AND THEN THE JACKALS STARTED COMING TOWARDS AND WE STARTED RUNNING BUT THE BACKDOOR (the one towards the fields and we came from) WAS LOCKED AND WE STARTED SCREAMING AND CRYING AND THEN MY GRANDMA CAME OUT WITH A SHOTGUN AND- nothing like that happened. I never went to my grandmas house, there aren’t even jackals there. It is in the country side tho. I was just lazy. :| uhh yeahh so umm BUT I completed the project! Woo hoo yeahhh (crickets) The secret suprise was ducks. Duck-villagers. Dillagers if I may. Or Duckagers? One tiny duck kept being a nuisance and wasn’t adjusting accordingly to the size but it eventually did. I added a “$2+” msg when u complete the second task so the ducks get an earning and when you complete all your tasks the ducks start a lil dance :) Go see it."}, {"post_id": 60355, "ts": "2026-09-02T17:21:23Z", "hours": 0.4361, "text": "DEVLOG 2: Wassup guysss I didn’t do much today. and i’m not gonna tell it yet either XD HOWEVER, keep in mind that it involves ducks. And I haven’t committed changes yet either so don’t bother :P But thats not it , I’m not sure if this is to early to say cuz I only have four followers in total but still, seeing these replies and people engaging with my devlogs really makes me happy, esp since I’m having some rough days cuz I just found out my ‘friends’ turned out to be faker than those no borax, no activator, no glue slime videos (ifykyk). But ya’ll GENUINELY making me smile. So thanks. Alot. (Me rn:)"}, {"post_id": 59718, "ts": "2026-09-01T17:21:10Z", "hours": 1.99, "text": "DEVLOG 1: Although the event is over, I still thought I’d make some cool changes. Today I adjusted the position of the sun better, to look like it’s actually rising and then I added a color transition, and I also updated the readme. PLEASE READ IT. See you tmrw, (I’ll be finishing this frst and then I’ll start on the personal site again.)"}]...
|
Title: PERFECT DAYY by @aliya | Stardance
Devlogs Title: PERFECT DAYY by @aliya | Stardance
Devlogs:
DEVLOG 1: Although the event is over, I still thought I’d make some cool changes. Today I adjusted the position of the sun better, to look like it’s actually rising and then I added a color transition, and I also updated the readme. PLEASE READ IT. See you tmrw, (I’ll be finishing this frst and then I’ll start on the personal site again.)
DEVLOG 2: Wassup guysss I didn’t do much today. and i’m not gonna tell it yet either XD HOWEVER, keep in mind that it involves ducks. And I haven’t committed changes yet either so don’t bother :P But thats not it , I’m not sure if this is to early to say cuz I only have four followers in total but still, seeing these replies and people engaging with my devlogs really makes me happy, esp since I’m having some rough days cuz I just found out my ‘friends’ turned out to be faker than those no borax, no activator, no glue slime videos (ifykyk). But ya’ll GENUINELY making me smile. So thanks. Alot. (Me rn:)
Hi, I’m alive. What a surprise, huh?” So my guess is you might be wondering where I was all these days. So lemme just tell you which hell I was damned to. So basically we went to our grandmas house for a lil while. It’s not in the city its more in the country side and there are jackals in those fields. Me and my cousin were wandering and we saw a puppy. Or what we thought was a puppy , I tried to pet it and then we hear : ” WWEEEAAAOOO WEEAAOOO” And those who don’t know jackals have this eery cry like thing its creepy as hell and then the puppy starts bakring like CRAZY , i could see the ishowspeed in him, parents need to monitor what their child is watching. AND THEN THE JACKALS STARTED COMING TOWARDS AND WE STARTED RUNNING BUT THE BACKDOOR (the one towards the fields and we came from) WAS LOCKED AND WE STARTED SCREAMING AND CRYING AND THEN MY GRANDMA CAME OUT WITH A SHOTGUN AND- nothing like that happened. I never went to my grandmas house, there aren’t even jackals there. It is in the country side tho. I was just lazy. :| uhh yeahh so umm BUT I completed the project! Woo hoo yeahhh (crickets) The secret suprise was ducks. Duck-villagers. Dillagers if I may. Or Duckagers? One tiny duck kept being a nuisance and wasn’t adjusting accordingly to the size but it eventually did. I added a “$2+” msg when u complete the second task so the ducks get an earning and when you complete all your tasks the ducks start a lil dance :) Go see it.
Ships:
ABOUT: ✨ It’s a website which is supposed to help you be more productive. You have three tasks. The more tasks you complete, the sun rises, helping the dillagers (ducks+villagers = dillagers, cuz the ducks are villagers) come out of their home and work for their families and bring them food. But if you keep stalling the tasks… they’ll go hungry.. and have nothing to feed their family… You want that? THEN QUIT WHINING AND GET TO WORK SUSAN! (Apologies to the Susans out in the world.) WHAT I LEARNT: 🤩🤩🤩 Lots of css properties and javascript (I’m a total newbie; I started in July) and to for the love of god — RECHECK YOUR CODE. PROBLEMS 😰😰 AND SOLUTIONS: 🥳🥳 I used html, a lot of css and some java. I had issues in pixelating the background and creating these shapes (still trying to get a hang of the pixelated thing.) I also kept having an error while building the notepad, it would either not show up or wouldn’t align with the animation. I realized I was using some wrong css properties and kept mixing stuff up. I also accidentally kept duplicating the amount of ducks lol but it was solved by just revisiting your code again at different times....
|
1793004950.4712622
|
1793091350.4712622
|
|
52109
|
kenpadV1 by @keni67 | Stardance
|
keni67
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T15:48:23Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I’ve made a hackpad with 6 keys and 1 rotary encoder. The hardest part was building a case but I do think there are still some mistakes. I’m very happy that I was able learn and make this hackpad though it took plenty of time", "repo": "https://github.com/keni769/kenpadV1", "demo": ""}]...
|
[{"post_id": 67023, "ts": "202 [{"post_id": 67023, "ts": "2026-09-13T02:03:46Z", "hours": 1.9961, "text": "Tried out qmk and finished firmware. Took alot of time (many warnings and errors)"}, {"post_id": 62506, "ts": "2026-09-05T22:11:54Z", "hours": 1.2669, "text": "Took me alot of time on how to make a case, I think I took an easy way out but it looks good"}, {"post_id": 56407, "ts": "2026-08-28T05:12:42Z", "hours": 0.8339, "text": "Finished Pcb"}, {"post_id": 53515, "ts": "2026-08-24T03:03:17Z", "hours": 0.3333, "text": "I’m planning to build a 2x3 macropad with a rotary encoder. Built the schematic for it"}]...
|
Title: kenpadV1 by @keni67 | Stardance
Devlogs:
I Title: kenpadV1 by @keni67 | Stardance
Devlogs:
I’m planning to build a 2x3 macropad with a rotary encoder. Built the schematic for it
Finished Pcb
Took me alot of time on how to make a case, I think I took an easy way out but it looks good
Tried out qmk and finished firmware. Took alot of time (many warnings and errors)
Ships:
I’ve made a hackpad with 6 keys and 1 rotary encoder. The hardest part was building a case but I do think there are still some mistakes. I’m very happy that I was able learn and make this hackpad though it took plenty of time...
|
1793004949.3147247
|
1793091349.3147247
|
|
7854
|
CometOS by @Aradhana | Stardance
|
Aradhana
|
1
|
39.23
|
48
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T11:27:56Z", "hours": 31.0, "multiplier": 1.71, "payout": 48, "blessing": "neutral", "text": "I built a WebOS that was designed to explore a character - the Sorceress Comet, a student at the Arx Nubium - and her fictional world of Alarica. As people use it, they find out more about Comet’s world, thoughts and family. It has a notebook app (where you can write your thoughts), a family tree app (to see a bit more of what Comet’s life is like) and comes with added functionality for the users - a date and time display, and battery meter. Now, the project is finally SHIPPED!", "repo": "https://github.com/dragonloversod051-max/CometOS", "demo": "https://dragonloversod051-max.github.io/CometOS/"}]...
|
[{"post_id": 79292, "ts": "202 [{"post_id": 79292, "ts": "2026-10-13T11:03:42Z", "hours": 8.2306, "text": "Devlog #8 Ok, so this is the FIRST devlog after the ship. Not really happy about how the ship went but oh well. Anyway, so, I added stuff: A Settings App Upgrades to the UI Worked on a sort of dictionary for all the new stuff that I’m introducing (after all, it is CometOS) The Settings App: Ok, so one of the major themes in the feedback I got was there needed to be more apps (since its an OS). So, I added a settings app, as just a basic, customization app. So, you can change the background image, and there’s a bit of design choices as well. I kept it so you need to scroll down to see all the images (some people won’t agree with this, but personally, I really like it. The scrolling feels more interactive and is required for a window size that looks really, really good). Also, the borders of the buttons turn blue when selected, and there obviously also a shadow indication that its a button when you hover over it. UI changes: So this was actually pretty small but looked really cool. I’ve seen on some sites there are just these little elements that blur the background behind them. While I was tinkering with css for the button shading I realized there was a style of filter: blur() . From there I found out about backdrop-filter: blur() and used that in the CometOS welcome window and the top and bottom bars. The dictionary app (name needs workshopping) So this is basically just because CometOS is about a fictional character in a fantasy world, so there needed to be an app that dealt with some words and terms used in other partts of the website (specifically the family tree). I felt there needed to be something to explain it, so, I added this. Its not done, so far I’m just done with one of the Relseiðr pages. Currently this is just hidden with display: none so I can work on functionality first. Challenges: There were really only a few challenges this time. The largest one was actually just getting the seperate visual cues which go ( oh, this is interactive! ) for the button and the image inside. Because I kept accidentally giving the button’s new classList to the image. And thats when I realized event.target and event.currentTarget were different and made for this….. On a side note, omg, display: inline-flex is so helpful! What I’ll work on next: I have now realized that since I’m adding so many apps, I need to add proper, adaptive view bounds. Before this I was using local pixel-specific bounds which were adapted to my viewport, and just not putting it on github, because I had already put in the work for those view bounds a few months ago, and it worked really well for me. So, anyway, I have now decided I need proper view bounds, so definitely going to work on that. Also, heres the new Settings app, and the beginning of the dictionary app."}, {"post_id": 71729, "ts": "2026-09-21T12:19:13Z", "hours": 2.21, "text": "Devlog #7 So, I thought it was ready to be shipped, but it wasn’t. In the final checks, I found out that because I had used pixel - specific drag bounds , while it worked perfectly on my laptop, it didn’t on anyone else’s (since other devices have different viewports, different areas. Some have longer lengths or widths than others, leading drag bounds to potentially be in the middle of the screen). I tinkered with it for a while (enlisting a bit of AI help) , but then realized that there was something about the new code that was messing up the notebook app (the sidebar stuck to the edge of the viewport). And, since there was about only one week left (and exams are starting soon), I decided to not accidentally mess up anything else, and so, deleted the drag bounds - I mean, better to be able to drag windows anywhere than have bounds that completely restrict it, right? - The good part is that even if the window goes out of the viewport somehow, you can just reload the screen to get it all back, which has no real downside since notes autosave. So anyway, now, we are actually , finally ready to ship ! This was what was happening to the notebook app btw"}, {"post_id": 43179, "ts": "2026-08-08T09:26:22Z", "hours": 3.4597, "text": "Devlog #6 We are FINALLY DONE and ready for the FIRST SHIP! Here’s whats new: Added information bubbles for each and every character in the family tree, which can be easily opened and closed. Fixed the selection for icons in the bottom bar: The green highlighted background would also highlight the areas where there were padding which we didn’t want because the icons would then be off center. Fixed this by adding a new transparent div in the middle, so padding is no longer required. Challenges: Fixing the icon selection bug. I played around with box-size for a bit but then chose to just add a transparent div between icons. Getting the information window to move along with the family tree window (as that is draggable). After a lot of testing, I realized I could just keep it inside the div but in positioning, its overflowing, so with an overflow: auto tag, it’s now set up and working! This is a screenshot of how the info bubble would break because it wasn’t in the same div:"}, {"post_id": 38671, "ts": "2026-08-01T05:38:48Z", "hours": 5.8169, "text": "Devlog #5 Ok, so, update: Created the family tree Improved feel of the app (through a visual sign when you hover over a character button) Fully initialized the window for the family tree app (made it closable, draggable, opens with an icon, added drag bounds). Challenges: The family tree image kept going above the icons used to drag and close the window. I put them in a different and experimented with different ways for SOOOO long - turned out I was just missing a position: absolute tag…. There was also a small bug where the buttons would go under the image instead of on it. Here are some pictures of the bugs, since it’s pretty hard to explain:"}, {"post_id": 34516, "ts": "2026-07-25T09:34:28Z", "hours": 0.6922, "text": "Devlog #4 I’ve started the next app - an interactive family tree. Since CometOS is based around Comet, I figured I should add a family tree. So this app is going to have clickable buttons for each member of the family, to give some info. Basically, its a massive lore drop. Here’s the wireframe for the app, and also an entire page I spent planning it because I ran into a few problems…"}, {"post_id": 31185, "ts": "2026-07-19T11:57:03Z", "hours": 12.5381, "text": "Devlog #3 What’s new: Added a bottom bar to store content selection options Added a notes app which is editable (and stored in javascript)-you can add your own notes. Added a save feature to the notes app-log back in anytime and the note is still there. YOU WOULD NOT BELIEVE HOW LONG THIS TOOK ( but, I learned how to save things in localStorage ). Fixed a bug where was at the bottom of the and the .js file and .css file weren’t loading in the live server. Fixed the bug where you lose the handle and the window gets stuck at the top/bottom of the page by making it so you can click through the top and bottom bar. Challenges: I spent a whole afternoon trying to come up with a clever way to avoid putting html in my .js file (because it looked messy), only to end up putting it in my .js file….. MOVING ON, There was some really weird stuff happening with saving notes. Like, I would write stuff, and it would be saved, but in different ’s? So only one was actually editable and the rest were all floating under it. Started to debug in a live server instead of as a file. The html and css files weren’t loading in. I spent so long trying to figure out why, and then realized that should be at the top of the body, not at the bottom ( You know, like an actual head. Wow, thats pretty self-explanatory ). So then, I fixed that and to check if it was working or not, made the background hot pink in css.( AND IT WORKED! And I will never be able to forget that image ). What’s next: Ok, so next, I still have to finish a few things. Make it so that you can’t drag windows past a certain limit (to prevent the background image scrolling and multiplying - learned how to clamp draggable elements to the viewport!). START STEP 5! So since this entire webOS is based around a fictional character-Comet, I think I’ll make an interactive family tree. So, each person has buttons and that leads you to a brief description about them ( and lore. LOTS of lore ). This is how the webOS looked in the test. I’m still not sure how the top bar also turned light pink, but, cool I guess"}, {"post_id": 15523, "ts": "2026-06-25T06:48:06Z", "hours": 1.6658, "text": "Devlog#2 Done with step 3. So now I can open, close and move around the welcome screen window. The cross acts as the close button, and you click and drag the hand part of the window to move it around. So I’ve updated the CometOS text in the top bar to open this window - hence it looks a lot more like a button. I think for the next windows and apps I’m going to make the open button in a side bar. And I finally figured out what classes are! So yeah, for now thats it, but I think by the end of step 4 its going to be a massive update with a lot more things."}, {"post_id": 13644, "ts": "2026-06-22T11:56:42Z", "hours": 4.2733, "text": "Devlog #1 So this is CometOS which is from the mission WebOS 1. It revolves around a fictional character - the Sorceress (in-training) Comet, set in the fictional world of Alarica. So far I’ve finished uptil step 2. So the top bar can track time, and also battery levels and gives custom messages based on the battery. Right now that’s pretty much it but I can’t wait to expand the project and develop the world and everything."}]...
|
Title: CometOS by @Aradhana | Stardance
Devlogs:
Title: CometOS by @Aradhana | Stardance
Devlogs:
Devlog #1 So this is CometOS which is from the mission WebOS 1. It revolves around a fictional character - the Sorceress (in-training) Comet, set in the fictional world of Alarica. So far I’ve finished uptil step 2. So the top bar can track time, and also battery levels and gives custom messages based on the battery. Right now that’s pretty much it but I can’t wait to expand the project and develop the world and everything.
Devlog#2 Done with step 3. So now I can open, close and move around the welcome screen window. The cross acts as the close button, and you click and drag the hand part of the window to move it around. So I’ve updated the CometOS text in the top bar to open this window - hence it looks a lot more like a button. I think for the next windows and apps I’m going to make the open button in a side bar. And I finally figured out what classes are! So yeah, for now thats it, but I think by the end of step 4 its going to be a massive update with a lot more things.
Devlog #3 What’s new: Added a bottom bar to store content selection options Added a notes app which is editable (and stored in javascript)-you can add your own notes. Added a save feature to the notes app-log back in anytime and the note is still there. YOU WOULD NOT BELIEVE HOW LONG THIS TOOK ( but, I learned how to save things in localStorage ). Fixed a bug where was at the bottom of the and the .js file and .css file weren’t loading in the live server. Fixed the bug where you lose the handle and the window gets stuck at the top/bottom of the page by making it so you can click through the top and bottom bar. Challenges: I spent a whole afternoon trying to come up with a clever way to avoid putting html in my .js file (because it looked messy), only to end up putting it in my .js file….. MOVING ON, There was some really weird stuff happening with saving notes. Like, I would write stuff, and it would be saved, but in different ’s? So only one was actually editable and the rest were all floating under it. Started to debug in a live server instead of as a file. The html and css files weren’t loading in. I spent so long trying to figure out why, and then realized that should be at the top of the body, not at the bottom ( You know, like an actual head. Wow, thats pretty self-explanatory ). So then, I fixed that and to check if it was working or not, made the background hot pink in css.( AND IT WORKED! And I will never be able to forget that image ). What’s next: Ok, so next, I still have to finish a few things. Make it so that you can’t drag windows past a certain limit (to prevent the background image scrolling and multiplying - learned how to clamp draggable elements to the viewport!). START STEP 5! So since this entire webOS is based around a fictional character-Comet, I think I’ll make an interactive family tree. So, each person has buttons and that leads you to a brief description about them ( and lore. LOTS of lore ). This is how the webOS looked in the test. I’m still not sure how the top bar also turned light pink, but, cool I guess
Devlog #4 I’ve started the next app - an interactive family tree. Since CometOS is based around Comet, I figured I should add a family tree. So this app is going to have clickable buttons for each member of the family, to give some info. Basically, its a massive lore drop. Here’s the wireframe for the app, and also an entire page I spent planning it because I ran into a few problems…
Devlog #5 Ok, so, update: Created the family tree Improved feel of the app (through a visual sign when you hover over a character button) Fully initialized the window for the family tree app (made it closable, draggable, opens with an icon, added drag bounds). Challenges: The family tree image kept going above the icons used to drag and close the window. I put them in a different and experimented with different ways for SOOOO long - turned out I was just missing a position: absolute tag…. There was also a small bug where the buttons would go under the image instead of on it. Here are some pictures of the bugs, since it’s pretty hard to explain:
Devlog #6 We are FINALLY DONE and ready for the FIRST SHIP! Here’s whats new: Added information bubbles for each and every character in the family tree, which can be easily opened and closed. Fixed the selection for icons in the bottom bar: The green highlighted background would also highlight the areas where there were padding which we didn’t want because the icons would then be off center. Fixed this by adding a new transparent div in the middle, so padding is no longer required. Challenges: Fixing the icon selection bug. I played around with box-size for a bit but then chose to just add a transparent div between icons. Getting the information window to move along with the family tree window (as that is draggable). After a lot of testing, I realized I could just keep it inside the div but in positioning, its overflowing, so with an overflow: auto tag, it’s now set up and working! This is a screenshot of how the info bubble would break because it wasn’t in the same div:
Devlog #7 So, I thought it was ready to be shipped, but it wasn’t. In the final checks, I found out that because I had used pixel - specific drag bounds , while it worked perfectly on my laptop, it didn’t on anyone else’s (since other devices have different viewports, different areas. Some have longer lengths or widths than others, leading drag bounds to potentially be in the middle of the screen). I tinkered with it for a while (enlisting a bit of AI help) , but then realized that there was something about the new code that was messing up the notebook app (the sidebar stuck to the edge of the viewport). And, since there was about only one week left (and exams are starting soon), I decided to not accidentally mess up anything else, and so, deleted the drag bounds - I mean, better to be able to drag windows anywhere than have bounds that completely restrict it, right? - The good part is that even if the window goes out of the viewport somehow, you can just reload the screen to get it all back, which has no real downside since notes autosave. So anyway, now, we are actually , finally ready to ship ! This was what was happening to the notebook app btw
Devlog #8 Ok, so this is the FIRST devlog after the ship. Not really happy about how the ship went but oh well. Anyway, so, I added stuff: A Settings App Upgrades to the UI Worked on a sort of dictionary for all the new stuff that I’m introducing (after all, it is CometOS) The Settings App: Ok, so one of the major themes in the feedback I got was there needed to be more apps (since its an OS). So, I added a settings app, as just a basic, customization app. So, you can change the background image, and there’s a bit of design choices as well. I kept it so you need to scroll down to see all the images (some people won’t agree with this, but personally, I really like it. The scrolling feels more interactive and is required for a window size that looks really, really good). Also, the borders of the buttons turn blue when selected, and there obviously also a shadow indication that its a button when you hover over it. UI changes: So this was actually pretty small but looked really cool. I’ve seen on some sites there are just these little elements that blur the background behind them. While I was tinkering with css for the button shading I realized there was a style of filter: blur() . From there I found out about backdrop-filter: blur() and used that in the CometOS welcome window and the top and bottom bars. The dictionary app (name needs workshopping) So this is basically just because CometOS is about a fictional character in a fantasy world, so there needed to be an app that dealt with some words and terms used in other partts of the website (specifically the family tree). I felt there needed to be something to explain it, so, I added this. Its not done, so far I’m just done with one of the Relseiðr pages. Currently this is just hidden with display: none so I can work on functionality first. Challenges: There were really only a few challenges this time. The largest one was actually just getting the seperate visual cues which go ( oh, this is interactive! ) for the button and the image inside. Because I kept accidentally giving the button’s new classList to the image. And thats when I realized event.target and event.currentTarget were different and made for this….. On a side note, omg, display: inline-flex is so helpful! What I’ll work on next: I have now realized that since I’m adding so many apps, I need to add proper, adaptive view bounds. Before this I was using local pixel-specific bounds which were adapted to my viewport, and just not putting it on github, because I had already put in the work for those view bounds a few months ago, and it worked really well for me. So, anyway, I have now decided I need proper view bounds, so definitely going to work on that. Also, heres the new Settings app, and the beginning of the dictionary app.
Ships:
I built a WebOS that was designed to explore a character - the Sorceress Comet, a student at the Arx Nubium - and her fictional world of Alarica. As people use it, they find out more about Comet’s world, thoughts and family. It has a notebook app (where you can write your thoughts), a family tree app (to see a bit more of what Comet’s life is like) and comes with added functionality for the users - a date and time display, and battery meter. Now, the project is finally SHIPPED!...
|
1793004948.0806434
|
1793091348.0806434
|
|
57199
|
Crowbit by @Gizzi | Stardance
|
Gizzi
|
1
|
43.19
|
81
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-03T20:33:22Z", "hours": 35.0, "multiplier": 2.31, "payout": 81, "blessing": "neutral", "text": "to whom it may CAWcern, this is my silly little social media app that is missing an entire backend. however I spent a considerable amount of hours just designing and making the UI for it and I’m still working on improving it but for now, I like what I have come up with and I’ll likely add a few more things before I start work on the backend also since there’s no backend, just go to /home because the login/signup screen doesn’t actually do anything yet. do let me know what you like and don’t like about the ui design, it’s essentially supposed to be a twitter + reddit + discord thing.", "repo": "https://github.com/Crowbit-dev/Crowbit", "demo": "https://crowbit.vercel.app/"}]...
|
[{"post_id": 77547, "ts": "202 [{"post_id": 77547, "ts": "2026-10-07T12:21:32Z", "hours": 1.0125, "text": "and on the 43rd hour, god said: “let there be profiles” and there was profiles… also some other ui fixes like centering the text inside the notification badge. what comes next is probably the backend now and maybe some other ui changes along the way. I made a todo list on the readme with everything i can remember that needs to be put on it, so i’ll probably end up adding other stuff to the readme again as i go and remember what else i wanted to make"}, {"post_id": 77332, "ts": "2026-10-06T15:46:56Z", "hours": 7.1811, "text": "I made some minor ui changes + added a help center and a wip profiles page, but most of the work went into refactoring the code, I split alot of the code into different files and changed the way url paths are handled"}, {"post_id": 76523, "ts": "2026-10-03T20:12:53Z", "hours": 6.9214, "text": "finished settings ui, this marks most of the ui design done except for a few things that aren’t added yet"}, {"post_id": 75912, "ts": "2026-10-01T16:11:05Z", "hours": 4.6442, "text": "woo new cool stuff searching ui and whatever, i’m close to my first ship which will likely just be a standalone frontend and mvp for ui. not really much backend work yet"}, {"post_id": 75281, "ts": "2026-09-29T17:05:04Z", "hours": 3.6833, "text": "made proper notifications ui + a somewhat acceptable ui for communities chat"}, {"post_id": 74578, "ts": "2026-09-27T17:37:13Z", "hours": 10.3875, "text": "changed up the way dms look + added comments to the feed… gulp…"}, {"post_id": 69818, "ts": "2026-09-17T20:48:37Z", "hours": 6.8364, "text": "changed the ui big time"}, {"post_id": 61050, "ts": "2026-09-03T19:19:50Z", "hours": 1.5347, "text": "really early design of the home page, not a super big fan of it atm so i might make more changes"}, {"post_id": 59889, "ts": "2026-09-01T21:33:53Z", "hours": 0.9419, "text": "i added some cool crow graphics to my auth pages"}, {"post_id": 59699, "ts": "2026-09-01T16:56:06Z", "hours": 0.2992, "text": "barebones signup page… good things to come mayhaps 😰😰"}]...
|
Title: Crowbit by @Gizzi | Stardance
Devlogs:
bar Title: Crowbit by @Gizzi | Stardance
Devlogs:
barebones signup page… good things to come mayhaps 😰😰
i added some cool crow graphics to my auth pages
really early design of the home page, not a super big fan of it atm so i might make more changes
changed the ui big time
changed up the way dms look + added comments to the feed… gulp…
made proper notifications ui + a somewhat acceptable ui for communities chat
woo new cool stuff searching ui and whatever, i’m close to my first ship which will likely just be a standalone frontend and mvp for ui. not really much backend work yet
finished settings ui, this marks most of the ui design done except for a few things that aren’t added yet
I made some minor ui changes + added a help center and a wip profiles page, but most of the work went into refactoring the code, I split alot of the code into different files and changed the way url paths are handled
and on the 43rd hour, god said: “let there be profiles” and there was profiles… also some other ui fixes like centering the text inside the notification badge. what comes next is probably the backend now and maybe some other ui changes along the way. I made a todo list on the readme with everything i can remember that needs to be put on it, so i’ll probably end up adding other stuff to the readme again as i go and remember what else i wanted to make
Ships:
to whom it may CAWcern, this is my silly little social media app that is missing an entire backend. however I spent a considerable amount of hours just designing and making the UI for it and I’m still working on improving it but for now, I like what I have come up with and I’ll likely add a few more things before I start work on the backend also since there’s no backend, just go to /home because the login/signup screen doesn’t actually do anything yet. do let me know what you like and don’t like about the ui design, it’s essentially supposed to be a twitter + reddit + discord thing....
|
1793004946.8613355
|
1793091346.8613355
|
|
57165
|
Mysite by @AlextheGr3at | Stardance
|
AlextheGr3at
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T15:45:39Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my first real website. It wasn’t that challenging. I have a navbar with links that don’t show underlines, an about me section, and a section with a list of my current projects. I also have a footer with social links, so you can follow me, should you want to :)", "repo": "https://github.com/Longing-Ingernot/Mysite", "demo": "https://longing-ingernot.github.io/Mysite/"}]...
|
[{"post_id": 71268, "ts": "202 [{"post_id": 71268, "ts": "2026-09-20T15:33:58Z", "hours": 0.4431, "text": "Devlog #2 Made the navbar links black with no underline, added a footer with socials so you can follow me :), added two more projects I’m actively working on."}, {"post_id": 71032, "ts": "2026-09-20T07:21:58Z", "hours": 0.8319, "text": "Made the structure and almost all content of the website. Added a navbar"}]...
|
Title: Mysite by @AlextheGr3at | Stardance
Devlog Title: Mysite by @AlextheGr3at | Stardance
Devlogs:
Made the structure and almost all content of the website. Added a navbar
Devlog #2 Made the navbar links black with no underline, added a footer with socials so you can follow me :), added two more projects I’m actively working on.
Ships:
I made my first real website. It wasn’t that challenging. I have a navbar with links that don’t show underlines, an about me section, and a section with a list of my current projects. I also have a footer with social links, so you can follow me, should you want to :)...
|
1793004945.957752
|
1793091345.957752
|
|
57162
|
Racer by @benny | Stardance
|
benny
|
1
|
7.0
|
47
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T01:28:36Z", "hours": 7.0, "multiplier": 6.37, "payout": 47, "blessing": "neutral", "text": "I made a car racing game that essentially was inspired by F1. The code based is done in python and then in order to deploy it onto the web I used something called pygbag. The entire point of the game is that you have to navigate through the course’s loops and turns in order to beat the computer car in a race. There are a variety of difficulty options for you to select, as well as a settings menu so that you can change your own speed and wall bounciness. I learned a lot about debugging during this process because as I was trying to deploy to to both local host and github pages there were many errors that prevented the game from loading in so I had to try to analyze all the console errors and correct them. I really love the game that I made and I feel like I’ve learned a lot from building this game. I hope you guys enjoy it as well!", "repo": "https://github.com/bangzishu-huang/Racer", "demo": "https://bangzishu-huang.github.io/Racer/"}]...
|
[{"post_id": 70720, "ts": "202 [{"post_id": 70720, "ts": "2026-09-19T17:29:11Z", "hours": 0.6328, "text": "The rest of the time spent on Racer was trying to get it deployed onto my localhost first through pygbag. It took a long time just trying to debug everything because pygbag deployment is harder than hosting python through python’s own application. I had to do a lot of async def through my functions in order to bypass some restrictions and have the game work. Also, I had to make the deploy.yml file in order for github to execute the workflow to deploy my page to github and the actual web."}, {"post_id": 70292, "ts": "2026-09-18T21:44:11Z", "hours": 3.2625, "text": "So throughout the 3 hours I worked on just heavily developing all aspects of the racing game. First I implemented different levels, more specifically 3 levels each with a different speed that the computer car would drive to. Then there is also a settings option where the user can adjust their own speed for their car and also the bouciness of the wall when hit. A lap counter and also a lap timer was added as a HUD at the top left of the screen when you are racing, and also I implemented basically a sort of countdown mechanism to start off each seperate game. The entire game is coming together and the next steps is trying to deploy it through the web with pygbag."}, {"post_id": 64239, "ts": "2026-09-08T14:27:33Z", "hours": 1.5697, "text": "I have been fixing the computer path tracing and adjusting it because a lot of times they go off the loop and cut corners of the race track. The red dots below (left image) show me trying to conduct coordinate testing for the path following of the computer car. Then, after the car path was working for the computer car, I went to make the end screens for when you win or lose in the game. I was also thinking of implementing varios different levels, which I might do in my next session."}, {"post_id": 62630, "ts": "2026-09-06T03:01:52Z", "hours": 1.4433, "text": "Now for the car game I started to add the opponent cars and was working on the components and trying to see how they would actually move. I was also trying to implement a click to move feature for the player car, as well as kind of reducing the bouce when hitting the side of the track."}, {"post_id": 60050, "ts": "2026-09-02T04:57:35Z", "hours": 0.4072, "text": "Today I started a new racing game and start to set up the base environment and the map for the game. This was relatively easy to set up and get started. There were just a some simple debugging in order to fix some few case sensitive errors. Tomorrow, I will probably start working on implementing the race car mechanism and the entire working game."}]...
|
Title: Racer by @benny | Stardance
Devlogs:
Today Title: Racer by @benny | Stardance
Devlogs:
Today I started a new racing game and start to set up the base environment and the map for the game. This was relatively easy to set up and get started. There were just a some simple debugging in order to fix some few case sensitive errors. Tomorrow, I will probably start working on implementing the race car mechanism and the entire working game.
Now for the car game I started to add the opponent cars and was working on the components and trying to see how they would actually move. I was also trying to implement a click to move feature for the player car, as well as kind of reducing the bouce when hitting the side of the track.
I have been fixing the computer path tracing and adjusting it because a lot of times they go off the loop and cut corners of the race track. The red dots below (left image) show me trying to conduct coordinate testing for the path following of the computer car. Then, after the car path was working for the computer car, I went to make the end screens for when you win or lose in the game. I was also thinking of implementing varios different levels, which I might do in my next session.
So throughout the 3 hours I worked on just heavily developing all aspects of the racing game. First I implemented different levels, more specifically 3 levels each with a different speed that the computer car would drive to. Then there is also a settings option where the user can adjust their own speed for their car and also the bouciness of the wall when hit. A lap counter and also a lap timer was added as a HUD at the top left of the screen when you are racing, and also I implemented basically a sort of countdown mechanism to start off each seperate game. The entire game is coming together and the next steps is trying to deploy it through the web with pygbag.
The rest of the time spent on Racer was trying to get it deployed onto my localhost first through pygbag. It took a long time just trying to debug everything because pygbag deployment is harder than hosting python through python’s own application. I had to do a lot of async def through my functions in order to bypass some restrictions and have the game work. Also, I had to make the deploy.yml file in order for github to execute the workflow to deploy my page to github and the actual web.
Ships:
I made a car racing game that essentially was inspired by F1. The code based is done in python and then in order to deploy it onto the web I used something called pygbag. The entire point of the game is that you have to navigate through the course’s loops and turns in order to beat the computer car in a race. There are a variety of difficulty options for you to select, as well as a settings menu so that you can change your own speed and wall bounciness. I learned a lot about debugging during this process because as I was trying to deploy to to both local host and github pages there were many errors that prevented the game from loading in so I had to try to analyze all the console errors and correct them. I really love the game that I made and I feel like I’ve learned a lot from building this game. I hope you guys enjoy it as well!...
|
1793004944.7771628
|
1793091344.7771628
|
|
57158
|
WarioWare Game by @Trion17fft | Stardance
|
Trion17fft
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-26T00:22:11Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made TheSpideyWare. The game has 3 differents Mini-games, with some secrets. You can play it on https://trion17fft.itch.io/thespideyware . Have fun!!", "repo": "https://github.com/Trion17fft/SpiderWareGame", "demo": "https://trion17fft.itch.io/thespideyware"}]...
|
[{"post_id": 73777, "ts": "202 [{"post_id": 73777, "ts": "2026-09-25T22:51:10Z", "hours": 1.3569, "text": "I finished my Minigames, but I want to add a shop. I add animation, zoom and some secrets"}, {"post_id": 69855, "ts": "2026-09-17T22:37:43Z", "hours": 0.5358, "text": "Death screen I finished my end screen and fixed a bunch of bugs."}, {"post_id": 69840, "ts": "2026-09-17T21:43:43Z", "hours": 13.8536, "text": "First #Devlog sorry ;) First of all, I created my start screen, then several games. The first one is about collecting all the webs, the goal of the second is to crush all the vilains, and the third is a maze that is still under construction. I have also create a win screen."}]...
|
Title: WarioWare Game by @Trion17fft | Stardance
Title: WarioWare Game by @Trion17fft | Stardance
Devlogs:
First #Devlog sorry ;) First of all, I created my start screen, then several games. The first one is about collecting all the webs, the goal of the second is to crush all the vilains, and the third is a maze that is still under construction. I have also create a win screen.
Death screen I finished my end screen and fixed a bunch of bugs.
I finished my Minigames, but I want to add a shop. I add animation, zoom and some secrets
Ships:
I made TheSpideyWare. The game has 3 differents Mini-games, with some secrets. You can play it on https://trion17fft.itch.io/thespideyware . Have fun!!...
|
1793004943.641897
|
1793091343.641897
|
|
52081
|
My own site! by @AE | Stardance
|
AE
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-26T20:09:26Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Este es mi pagina personal. Aunque tiene un diseño simple para mi no fue tan fácil hacerla porque soy muy mala diseñando, estuve cambiando , moviendo y agregando cosas constantemente. Siento que he avanzado un poco en mi habilidad de diseño y por eso quiero compartir este pequeño pero importante proyecto.", "repo": "https://github.com/MANDCHELLE/stardance", "demo": "https://mandchelle.github.io/stardance/"}]...
|
[{"post_id": 74139, "ts": "202 [{"post_id": 74139, "ts": "2026-09-26T19:03:42Z", "hours": 5.6372, "text": "El sitio web que construí es simple pero lo veo bonito. No soy buena diseñando por eso considero que esto es un gran avance ."}]...
|
Title: My own site! by @AE | Stardance
Devlogs:
E Title: My own site! by @AE | Stardance
Devlogs:
El sitio web que construí es simple pero lo veo bonito. No soy buena diseñando por eso considero que esto es un gran avance .
Ships:
Este es mi pagina personal. Aunque tiene un diseño simple para mi no fue tan fácil hacerla porque soy muy mala diseñando, estuve cambiando , moviendo y agregando cosas constantemente. Siento que he avanzado un poco en mi habilidad de diseño y por eso quiero compartir este pequeño pero importante proyecto....
|
1793004942.7467844
|
1793091342.7467844
|
|
25754
|
Creator Launchpad by @NexBlade-Studios | Stardance
|
NexBlade-Studios
|
1
|
10.0
|
126
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T22:42:25Z", "hours": 10.0, "multiplier": 10.96, "payout": 126, "blessing": "neutral", "text": "This is Creator Launchpad, the platform that streamlines content creation, from video ideas to content creation. I created this app because content creation has grown so much in the past few years, and it can sometimes feel like it is too competitive. I though it would be cool to create a way to speed up parts of the process that aren’t necessarily the most fun, for example thumbnail creation. By picking a category, either generating an idea or writing your own, Creator Launchpad utilises Gemini API to create a customized thumbnail, save it to your personal gallery and then share it. I have already found myself just using the app to see how different thumbnail prompts would turn out, and it is quite cool to see ideas being turned into usable concepts.", "repo": "https://github.com/NexBlade-Studios/Creator-Launchpad", "demo": "https://github.com/NexBlade-Studios/Creator-Launchpad/releases/tag/v1.0.0"}]...
|
[{"post_id": 70261, "ts": "202 [{"post_id": 70261, "ts": "2026-09-18T20:29:56Z", "hours": 1.305, "text": "This is now the final stretch of the project before I ship!!! I have finished the gallery section of the app, and it enables users to save their generated thumbnails, manage and delete them. This means that if there’s a thumbnail that you want to keep, you can save it to your gallery instead of needing to share or export it. Also, the prompt used to generate the thumbnail is listed at the bottom so that you could use the prompt to generate the thumbnail again."}, {"post_id": 68290, "ts": "2026-09-14T21:15:35Z", "hours": 0.7803, "text": "I wanted to put a quick number of updates before shipping the project because it isn’t in a state that I am satisfied with yet. I have added dark mode support because I know that without it the app is very bright (it is practically a flashlight). I am now working on implementing a gallery system where thumbnails you have generated can be saved to the thumbnail gallery with the prompt attached. Currently you would have to share the thumbnail and then save it to your phone, so this makes it more convenient. I also added some more categories, hopefully this covers all the key areas of content creation now."}, {"post_id": 27583, "ts": "2026-07-13T09:17:01Z", "hours": 4.2972, "text": "#TESTERS NEEDED The project is now complete! Creators can now use Creator Launchpad for their content creation, being able to generate video ideas and thumbnails, all straight from the app. I want to put the project on Google Play, so I require at least 12 game testers before publishing. If you want to help with my project, please email me at [email protected]"}, {"post_id": 15844, "ts": "2026-06-25T19:18:43Z", "hours": 1.5361, "text": "I have now implemented Gemini using Supabase to my project, enabling a user to generate video ideas. I was originally using Firebase but turns out the Spark tier didn’t let me run functions direct from the command line. Anyway, now I aim to use Stable Diffusion or some other image generator to generate the thumbnails."}, {"post_id": 15615, "ts": "2026-06-25T12:17:04Z", "hours": 1.6783, "text": "I have decided to make an app for content creators, where you can input your next video idea (or even ask AI) and then get a fully generated thumbnail ready to use. Currently I have worked on the simple UI screens, with text input and category selection. There isn’t really anything interesting to show for the app so far. The next step is to integrate the AI. This project should be fully complete by the end of the day, and I will be releasing it on Google Play."}]...
|
Title: Creator Launchpad by @NexBlade-Studios | St Title: Creator Launchpad by @NexBlade-Studios | Stardance
Devlogs:
I have decided to make an app for content creators, where you can input your next video idea (or even ask AI) and then get a fully generated thumbnail ready to use. Currently I have worked on the simple UI screens, with text input and category selection. There isn’t really anything interesting to show for the app so far. The next step is to integrate the AI. This project should be fully complete by the end of the day, and I will be releasing it on Google Play.
I have now implemented Gemini using Supabase to my project, enabling a user to generate video ideas. I was originally using Firebase but turns out the Spark tier didn’t let me run functions direct from the command line. Anyway, now I aim to use Stable Diffusion or some other image generator to generate the thumbnails.
#TESTERS NEEDED The project is now complete! Creators can now use Creator Launchpad for their content creation, being able to generate video ideas and thumbnails, all straight from the app. I want to put the project on Google Play, so I require at least 12 game testers before publishing. If you want to help with my project, please email me at [email protected]
I wanted to put a quick number of updates before shipping the project because it isn’t in a state that I am satisfied with yet. I have added dark mode support because I know that without it the app is very bright (it is practically a flashlight). I am now working on implementing a gallery system where thumbnails you have generated can be saved to the thumbnail gallery with the prompt attached. Currently you would have to share the thumbnail and then save it to your phone, so this makes it more convenient. I also added some more categories, hopefully this covers all the key areas of content creation now.
This is now the final stretch of the project before I ship!!! I have finished the gallery section of the app, and it enables users to save their generated thumbnails, manage and delete them. This means that if there’s a thumbnail that you want to keep, you can save it to your gallery instead of needing to share or export it. Also, the prompt used to generate the thumbnail is listed at the bottom so that you could use the prompt to generate the thumbnail again.
Ships:
This is Creator Launchpad, the platform that streamlines content creation, from video ideas to content creation. I created this app because content creation has grown so much in the past few years, and it can sometimes feel like it is too competitive. I though it would be cool to create a way to speed up parts of the process that aren’t necessarily the most fun, for example thumbnail creation. By picking a category, either generating an idea or writing your own, Creator Launchpad utilises Gemini API to create a customized thumbnail, save it to your personal gallery and then share it. I have already found myself just using the app to see how different thumbnail prompts would turn out, and it is quite cool to see ideas being turned into usable concepts....
|
1793004941.6199129
|
1793091341.6199129
|
|
52019
|
Pointer Fighter (C based) by @nano | Stardance
|
nano
|
1
|
58.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T20:19:08Z", "hours": 58.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A roguelike room crawler completely built in C! What is in it? Randomly generated rooms with a fog of war for you to explore Three different enemy types with scaling difficulty Boss fights with unique item drop RPG Style fighting An interactive inventory that can be used during battle A battle log that tracks everything that happens in battle Items, pickups and a persistent highscore What am I proud of? The enemy pursuit and fleeing system. It was somewhat hard to implement but I think it made the game wayyyy better than before. I’m also proud of how the state machine turned out in the end. The game has strict separations between the different game states and first handles what the player/the game did during the game loop iteration and then after that is done draws it to the screen. That state machine was very prone to bugs and I had to spend a bunch of time to fix (fallthrough bug, etc. all talked about in devlogs). But I think the result that turned out at the end was great and I am very content with it How is it built? As said its completely built in C using ncurses as its graphics library using 12 source files (currently) with each one having a specific task only it does. The build is released using GitHub workflows and the binary can easily be downloaded and used on (almost) all glibc linux distros (the project was compiled for Ubuntu and you will have to install ncurses though) What I learned The game was actually my first real coding project ever apart from a few simple websites so I learned a bunch. I learned how to separate state transitions, I learned the importance of good and bad switch statements, bounds checking (really rough path) and I think most importantly: The power of code separation and making every file do its designated task. I often caught myself picking the easy and sloppy path and then fixing it properly and in retrospect helped with preventing a bunch of bugs Known limitations / plans for the future It’s my first project, so there are likely still issues I haven’t found. Even though I tried to find everything (a.e. using Valgrind told me there are no memory blocks definitely lost) there are still potentially memory safety issues or potential segfaults. It’s possible some edge cases might have slipped through. I’ve tested the project thoroughly and haven’t found any crashes since the last few debugging sessions but I cannot safely say it’s perfect. I think if I will find the time I will maybe add some new features like new special item related enemies or player status effects though I cannot safely say if i can Closing word I think building a game for my first real project was the right decision for me because I really had a bunch of fun building this project. I currently have some ideas for unrelated new projects (one is up on my profile check it out (; ) and I think this project was a really good pathway into coding for me. Check the GitHub and the demo video out and I hope you like the project", "repo": "https://github.com/skibidi-nano/Stardance-roguelike", "demo": "https://github.com/skibidi-nano/Stardance-roguelike/releases/tag/v1.0.1"}]...
|
[{"post_id": 73295, "ts": "202 [{"post_id": 73295, "ts": "2026-09-24T19:37:40Z", "hours": 3.1092, "text": "LOG 26: FINAL DEVLOG MAINLY BUG FIXES AND SOME MINOR CHANGES CHANGES Enemies previously scaled to strongly and beat you too hard after the boss fight. Also because it was hard to scale the opponents down i decided to make the hp of everyone higher (everything got stronger in theory, player has 100 starting hp, does 20 damage etc.) LATE ADDITIONS LICENSE I licensed the project under the MIT licesne because it seemed fitting BUILD FILE I added a build file for the repo so i could upload a release binary (ncurses is required tho) BUG FIXES HIGHSCORE BUG There was a bug with the highscore not being displayed when there was no highscore.txt file. I needed to change the handling of the fact that the open function returned NULL, because NULL either meant, no file was there or no file could be found which resulted in no file being created because the function exited when the open function returned NULL, the fix was pretty simple overall tho (just adding an extra if conditional to check) FULL INVENTORY BUG Previously when having a full inventory, you couldnt pick up new items, issue was when using items that state didnt reset so one full inventory meant no items anymore :( . The fix was just to reset the state after using items BOSS ITEM INVENTORY BUG I forgot to make the boss item return the correct state which resulted in the item sometimes not being put in the inventory. The fix was just to add return ENTER_LEGAL to the boss items if statement SET ROOM ISSUE Because of random rooms sometimes boss room dimensions where bigger than current room which resulted in bugs (see previous devlogs). My previous fix worked in theory but had more affinity for potential bugs so i changed the set room function from two static values to two values that get passed into the function"}, {"post_id": 71417, "ts": "2026-09-20T19:47:13Z", "hours": 5.0142, "text": "LOG 25: FLEEING ENEMIES (CONTAINS MANY CHANGES), BOSS ITEM REFACTOR FLEEING ENEMIES Enemies (except the boss) now have the ability to run away if the enemy would get killed by the next attack. The chance for this to happen is 10% and when they run away, they gain 1 HP per step they take and return to chasing the enemy if their hp is back at half of their max HP. FLEEING REWORK Before adding this feature, fleeing was the same practically as winning (the return type of the fight was STATE_VICTORY), i changed that to the proper STATE _FLED. Also before when fleeing, if you fled and another enemy of another type collided with you, he had normal stats but the enemy before that also got his stats reset. The same went for enemies of the same type. When fleeing from enemy A from type A and then colliding with enemy B from type A, he would have the stats of enemy A. The fix for both was to make a 2D Array of all enemies and their types, so each individual enemy stores its stats, not the battle function. PLAYER POSITION STRUCT Previously the player had ~ 8 different position variables, which was pretty clunky if i wanted to transport the player position to another function. Because of that i put all player positions into a singular struct, so i could pass all the player positions at once if i needed to. ENEMY PURSUIT FUNCTION REWORK Because enemies have to run away instead of chasing i had to rework the pursuit function a bit so it could also work in a reverse way. I had to make the function branch between the two states which took a bit more work than originally anticipated because i had a bunch of wrong ideas for how the function should work. Overall the function implementation was essentially to just use the inverse vector of the normal vector for the direction function BOSS ITEM FUNCTION/ITEM FUNCTION REFACTOR Because previously the boss item detection function and the item detection were separate the code didnt feel clean at all (felt like a lazy implementation for me), so i made the item function work with the boss item which makes the item function overall more open for new item types (if i will add any more)"}, {"post_id": 69703, "ts": "2026-09-17T16:40:29Z", "hours": 4.2308, "text": "LOG 24: BOSS ITEM DROP, CONTROLS SCREEN, NEW IN-GAME BANNER, ITEM TO INVENTORY REFACTOR, BUG FIXES FEATURES BOSS ITEM DROP I added an item that only the boss drops, when killed. Its ability is to make the enemy unable to attack for one turn. You will always get it when defeating the boss and has the ‘?’ glyph compare to regular items (‘+’). Its also the only item that can always be picked up (with normal items, if your inventory is full you cannot pick them up, with the boss item your first slot gets overwritten). CONTROLS SCREEN I added a basic controls screen so people that try the game out (now or when it ships), know what to do when playing. Currently most things are really straightforward but i added it just in case. The most important aspect will probably how to end the game because thats the most unintuitive one (even though i hope anyone testing the game doesnt want to quit it) ITEM TO INVENTORY REFACTOR I thought that the previous state of my item to inventory were pretty lazy so i changed the logic up a bit. Previously when picking up items the items would go into the spot after the last item that was picked up and when the inventory ran full the first item was swappped with the newly picked up item. I didnt like that looking back and because of that the logic now scans through the inventory until it finds an empty spot and puts the item in that empty slot. If the inventory is full no item can be picked up (except the boss item) and the player gets a message on their screen. They can then leave the item screen using ESC and the item is not removed and can be picked up later if you somehow make space in your inventory NEW IN-GAME BANNER Also pretty straightforward, i added a banner so the menu looks a little bit prettier :) BUG FIXES BOSS ROOM BUG Because of map and gamestates and me forgetting to implement a feature in the door collision checks, there was a bug when defeating the boss (the map stayed as it was, but had the usual visible map ‘#’ everywhere you hadnt already explored (you cant really explore much so there where many ‘#’ ’s around the map which was really ugly. The fix was to move a mapstate change from the function that is responsible for handling victory to the function handling doors BOSS BUG There was a bug after defeating the boss which resulted from the previous bug and its fix. Because i forgot an additional check in my door function when defeating the boss the boss would spawn again and overwrite your boss item. The boss also chased you (which normally doesnt happen) and you couldnt leave the room. The fix was just to add another condition to the if statement in the door function responsible for the boss room ENEMY REMOVAL BUG For some reason (i dont know how i made the bug happen), when defeating enemies the visible map lagged behind the normal map which resulted in defeated enemies appearing to still exist on the map for one iteration of the loop (pressing any button made them vanish). The fix was to add a call to the visible_map_init function after defeating enemies"}, {"post_id": 68741, "ts": "2026-09-15T17:34:46Z", "hours": 2.2667, "text": "LOG 23: BATTLE LOG FOR ITEMS, BUG FIXES, BUG FIXES, BUG FIXES, BUG FIXES FEATURE BATTLE LOG FOR ITEMS The previous battle log only logged attacks and the damage dealt, now the log also tracks if items are used or items deal damage BUG FIXES SEGFAULT There was a segfault when trying to render the bottom of deeper rooms because the render guard had a major fault (only disjunctions no conjunctions). Because of that the game tried to reach spaces of the visible_map array out of reach of the array which resulted in a segfault when trying to go into spaces out of reach of the array. The fix was changing the guard from if ((player_y + y) < MAX_HEIGHT || (player_x + x) < MAX_WIDTH || (player_y + y ) >= 0 || (player_x + x >= 0)) to if ((player_y + y) < MAX_HEIGHT && (player_x + x) < MAX_WIDTH && (player_y + y ) >= 0 && (player_x + x >= 0)) which fixed the issue BATTLE LOG NULL TERMINATOR FIX There was a bug with the battle log, where ^ were printed (NUL ascii in ncurses) because the battle log printed out every part of the string character by character (including the \\0 terminator). The fix was to just not print out the \\0 terminator to the screen BATTLE SELECTION BUG There was a bug with conflicting selection variables (multiple variables where named selection which resulted in wrong selections being displayed). The fix was to give every function their own selection variable which fixed the issue VISIBLE MAP GLITCH Because the visible map only updated itself in the perimeter you are standing in if you moved fast enough some characters lagged behind and made it look like there were way more enemies than there actually were. The fix was to update not only the perimeter on every movement but also update everything that had already been explored"}, {"post_id": 68208, "ts": "2026-09-14T18:13:59Z", "hours": 4.045, "text": "LOG 22: POISON ITEM, BATTLE LOG, MAIN LOOP AND ITEM SELECTION REWORK POISON ITEM A new item that does 3 tick damage every enemy turn, for 2 turns. Its the rarest item in the game as of right now and was somewhat complex to add (because of the tick damage and tracking how many turns have passed) BATTLE LOG A log that tracks the last two actions that have happened in the game. It currently only tracks damage and attacks but will track item usage and more detailed information in the future. It was a real headache to implement because i had contradictory logic between the log and my main loop and i had to reimplement it multiple times. But went well overall :) REWORKS MAIN LOOP REWORK I reworked the main loop a bit because even though it worked well in theory it was not really optimized and it was prone to bugs in the future which is why i felt like redoing it a bit. Now instead of every function handling their own init, every changing gamestate instantly also inits the state it was changed to. Because of this there are less possible bugs and its overall easier to do for future gamestates ITEM PICKUP REWORK I noticed that the logic for my items wasn’t really perfect and seemed unoptimized which is why i felt like changing it a bit. Because when picking up items there are only two possible things to do (which both result in the same exit scenario) i swapped my if/else if logic for a switch statement which made the code shorter, and more optimal"}, {"post_id": 67326, "ts": "2026-09-13T12:07:21Z", "hours": 3.1628, "text": "LOG 21: FOG OF WAR, HOMING ENEMIES, BATTLE LOGIC OVERALL AND BUG FIXES FEATURES HOMING ENEMIES The enemies now home on you with every step you take, meaning you actually have to think about where you will go or the enemies will catch up to you. This was implemented by adding a sign function that decide whether the enemy should move +1 or -1 and then moving the enemy by that value. There were some bugs regarding enemies in previous rooms which got fixed by resetting the whole array during map init FOG OF WAR I added a fog of war feature that obstructs everything in the map you haven’t explored yet. This also pairs very well with the homing enemies feature. You have to go around the map to look out for items and enemies which now also walk towards you, so every step matters now BATTLE LOGIC OVERHAUL After revisiting most of my code for commenting i realized how terrible most of my battle logic was so i made it a bit more efficient and most importantly more readable. Overall i realized how great switch statements are in the last few logs BUG FIXES DOOR BUG There was a bug with the map that was somewhat useful when testing but still was a bug. The issue was that if you tried to step into the door the game let you step onto that char. The issue was that i forgot to make the game think that the door (when closed) should behave exactly like a wall. So the fix was just to add the door char to the wall collision check function"}, {"post_id": 66634, "ts": "2026-09-12T14:15:36Z", "hours": 1.4594, "text": "LOG 20: DYNAMIC STATS, BUG FIXES, SMALL UPDATE TO DEBUG MODE AND MORE COMMENTS DYNAMIC STATS The stats of all enemies are now connected to the boss counter which is the number of boss fights that have been fought during the current run so there is real progression and you dont just get stupidly overpowered DEBUG MODE I basically just added the boss to the debug mode nothing much BUG FIXES There was a glitch with the boss room being cut off because the randomly generated room was smaller than the boss room. I had to push a few things around and put every type of map generation (standard, debug, boss) into a switch statement to make it work properly COMMENTS I pretty much forgot most of the comments in the game so i started adding way more comments where they should be so the code is hopefully more intuitive to follow NOTE I think the next update will be pretty big so watch out when it finally drops!!!"}, {"post_id": 66094, "ts": "2026-09-11T17:53:56Z", "hours": 3.0956, "text": "LOG 19: NEW ENEMY TYPE: BOSS FIGHTS, BETTER DOOR LOGIC, NEW SPRITES NEW ENEMY TYPE Because i thought that the normal enemies would be too easy to beat down the run i added the main boss (the pointer which stole the star sprite from the address enemy) and he will always be fought every 5-10 rooms (im not sure on the number) . Currently his stats are static but i plan on making them dynamic based on the number of rooms you went through. BOSS ROOM/BETTER DOOR LOGIC The old door logic practically only worked with a normal room and needed the regular enemies to all be defeated. I tweaked it a little so it works with boss triggers/defeating the boss NEW SPRITE(s) As i said the boss got the star sprite because he is the true pointer so i gave the address an ampersand sprite (which is way more fitting btw). But i am not completely satisfied with the current ampersand sprite (i will maybe change it sometime) NOTE This time there werent really any bugs except during building the boss logic but they got fixed along the way. This time it actually went rather smoothly :) Also ignore the absurd stats of the player"}, {"post_id": 65457, "ts": "2026-09-10T16:29:10Z", "hours": 1.7283, "text": "LOG 18: NEW ITEM AND BUG FIXES BUG FIXES BUG FIXES NEW ITEM DAMAGE POTION I added a new item that can be used in the inventory during battle which deals (currently) 4 damage to the opponent. Its the rarest item in the game right now (i think 1 in 11). Because of the new item i had to make a bunch of code more modular in the inventory logic (a trend in my code). But overall this was the reimplementation that went the smoothest BUG FIXES BATTLE INPUT BUG There was a bug in the battle screen that made the overall input very clunky and previously was only fixed by letting another bug happen but i fixed it by changing something in the switch statements of the battle logic INVENTORY ACCESS AND SELECTION BUG A bug that mainly happened because of the previous bug: When trying to access the inventory in battle the game automatically selected the first item and returned to battle and only after the second time accessing the inventory you could really use your items as you wished INVENTORY SELECTION BUG In the inventory itself a bug was caused by a lazy implementation which caused the display (not the real logic behind the inventory actually) to become very glitched out and very confusing. I just fixed this by fixing my old and bad implementation for a better more modular one (an overall trend in my code to be not that modular lol)"}, {"post_id": 64879, "ts": "2026-09-09T16:10:45Z", "hours": 2.0467, "text": "LOG 17: DEBUG MODE FOR FASTER TESTING DEBUG MODE I added a debug mode because i found that most of my testing time was wasted finding items or players in rooms (which was very annoying most of the time), so i added a debug room so that goes way faster. Though it is very useful it was somewhat hard to implement but it made the code modular the same way the enemy logic is modular now which is an improvement in two ways"}, {"post_id": 63783, "ts": "2026-09-07T18:59:06Z", "hours": 3.6586, "text": "LOG 16: NEW NPC, BETTER CODE MODULARITY, FIXED SOME BUGS NEW FEATURES New “Modulo” / % enemy (based on the modulo operator in c)! It has weaker stats but is way stronger in terms of attack power BETTER CODE MODULARITY Because at the start of the game my main idea was to only implement one enemy type (which was pretty dumb tbh), i had to rework most of the map and battle logic so it was more generic and welcoming to multiple entities (and will help me add more enemies in the future). BUG FIXES VISUAL GLITCH There was a bug for the most of the time in the game (an issue with unititialized variables being printed, which resulted in a visual glitch), which was actually a pretty easy fix (i had to change the switch statements that handle state input and drawing output a bit so that changing the gamestate doesn’t skip to drawing instantly) MEMORY LEAK Because of a dumb implementation of a function that was supposed to carry over the value of a variable in file A to file B which used pointers allocated with malloc i had a memory issue because in a common case i forgot to implement free which resulted in lost memory (the fix was actually just switching over to passing by value because it was just a single char being transported from file A to file B and passing by reference wasn’t necessary)"}, {"post_id": 62408, "ts": "2026-09-05T19:04:09Z", "hours": 2.9256, "text": "LOG 15: MAINLY BUG FIXES AND SOME MINOR NEW FEATURES NEW FEATURES Better life/strength display A feature that was originally used for debugging has turned out as a good feature for the game overall. It always displays your and the enemies HP, and attack power (even though the attack damage is partly random which i have to note somewhere so there will be no confusion) An item descriptor that tells you what the item you are looking at currently does There is only one item to be used in the inventory right now so you can only see what the heal item does but more will be added in the future. BUG FIXES Memory unsafety fixed There was an issue with unsafe memory access if the items in the inventory where bigger than 10. My fix is that if you have more than 10 items and you pick up a new one, the new item will replace the first item, the next one the second one etc. It also resolved a smaller issue with blank inventory space that ate up inventory space even though it was empty. Items not working fixed The functions responsible for changing your hp, healing you or making you stronger hat an issue with their pointer assignment (they were pointing to the wrong variable) which i fixed for all function which work great now. Bug with doors acting the same as item pickups Because of something what seemed to be a typo (a function returned 1 instead of 0), if you tried to go through a door and you haven’t beaten every enemy, instead of nothing happening you got a free item (which turned out to be a great testing feature for items, because i can get many items fast and easily). The fix was really easy (just swap the 1 for a 0) Health bar not drawing properly Because of a badly implemented function i added in the past which turned out to be completely redundant (got cut out) the current hp weren’t imported properly to the function that handles printing out the health bar which i fixed by using another variable responsible for storing the current hp of the player Misc fixes After having to audit most of the code again i noticed that there were some issues with the code (partly because it was fine as it was when it was written, part was just sloppy implementation) which i also fixed even though most of it was minor. CURRENT PLANS FOR THE FUTURE More items that can be used in battle MORE ENEMIES!!! Im planning to add more and stronger enemies in the future even though that will probably will be one of the biggest newfeatures as it requires rewriting most of the battle and map logic Enemies getting stronger if you get farther for better progression Overall some more optimization and bug fixes (there is always something to be fixed ;) )"}, {"post_id": 61748, "ts": "2026-09-04T20:04:49Z", "hours": 4.0994, "text": "LOG 14: Made the items more interactive and functional (items can now be picked up or ignored and will vanish if either is done) and i built a somewhat functional inventory accessible only in battle as of right now. I also had to clean up a bunch of code and had to re-implement some stuff as i implemented some things rather poorly before. There are still some things to be made a bit cleaner which will come in the next few devlogs but i felt like posting one for the current state of the game."}, {"post_id": 60461, "ts": "2026-09-02T19:58:48Z", "hours": 2.5567, "text": "LOG 13: Added items that are supposed to give you power-ups in the future. currently they dont really do anything except open a screen with a sprite for the corresponding item (SPRITES ARE AI GENERATED). The plan for the future is to deicde between regular and activatable items (the first give permanent buffs, the second can be activated) and to be able to choose the items while in battle. For now they can spawn on the map (anywhere except 1|1 and spots where enemies are) and open a random sprite of the 3 that are available right now!"}, {"post_id": 59815, "ts": "2026-09-01T19:33:57Z", "hours": 0.7692, "text": "LOG 12: This came quicker than i thought it would lol. I implemented the two things i spoke about in the last log. I added a highscore system so you can always see how far you came with beating the evil pointers and i also “locked” the rooms until youve beaten every enemy in the room. I plan on adding power ups and some other features (read the README in the repo). STAY UPDATED!!!"}, {"post_id": 59787, "ts": "2026-09-01T18:38:08Z", "hours": 1.3131, "text": "LOG 11: Im Back. After a short break i started to implement that enemies really “die” if you beat them! Now there is some kind of progress added into the game as you can actually beat the enemies!!! The next features will probably be a real highscore and restricitions in leaving the room until youve beaten every enemy. Till then stay updated!!!!"}, {"post_id": 55276, "ts": "2026-08-27T00:06:09Z", "hours": 1.4606, "text": "LOG 10: Added multiple enemies (dynamic based on room size) and stats get reset after battle. Battle still issnt finished yet as i think of two more things to add for every one thing i implement. Stay updated !!!"}, {"post_id": 54777, "ts": "2026-08-25T21:47:45Z", "hours": 1.3933, "text": "LOG 9: Battle now works better and you can see enemy h now. Code is way less tangled (though some stuff still needs to be improved and the battle still isnt fully polished). There are some bugs regarding memory right now (will be fixed ASAP). But as of now you can finally really battle the evil evil evil pointer!"}, {"post_id": 54087, "ts": "2026-08-24T21:27:57Z", "hours": 2.0, "text": "added the first implementation of working battle (taking and dealing damage, working health bar)! The main issues right now are that the code is a bit tangled and that the logic isnt polished at all. But after 2 hours of work i felt like i had to post a log so this is the current state (you can attack or try to run) (winning and running have the same effect as of now)"}, {"post_id": 52721, "ts": "2026-08-23T01:22:10Z", "hours": 1.3925, "text": "Kinda added a battle screen (not reactive yet but will happen soon) and made the ASCII designs for my characters with AI (i cannot make any good ASCII art sadly :( … yet). In the top left is what is supposed to resemble a health bar which also still needs to be implemented. Also made the code a bit cleaner added a few header guards and most importantly i added structs for the entities so their stats could be recorded. Thats it :)"}, {"post_id": 52658, "ts": "2026-08-22T22:08:53Z", "hours": 1.2631, "text": "Added a (somewhat) functional menu screen to view highscore and start the game (highscore function will be implemented soon!!!!. Also built the first prototype of the battle screen though it is no where near finished. I will probably make the menu screen a bit prettier in the future but the current design has to suffice for now. :)"}, {"post_id": 51911, "ts": "2026-08-21T20:21:08Z", "hours": 0.9469, "text": "Added “Npcs” (evil pointers/ampersands). Collision yet have to do something relevant (right now they only trigger a new room). Also fixed a few memory unsafeties."}, {"post_id": 51814, "ts": "2026-08-21T17:36:52Z", "hours": 1.5833, "text": "Implemented doors (currently a minus sign probably going to change that). If you collide with said door/minus sign you will enter a new, different sized room. I did that by choosing a random wall, a random spot on that wall which is the spot where the door will be and if you make contact with the door a new room will be initialized."}, {"post_id": 51346, "ts": "2026-08-20T23:28:52Z", "hours": 0.9203, "text": "Added collision checks for walls so you cant escape the rooms"}, {"post_id": 51318, "ts": "2026-08-20T22:03:55Z", "hours": 1.0767, "text": "Implemented functional Walking (even though there is no real border yet). I also fragmented the code a bit so its more readable!"}, {"post_id": 51226, "ts": "2026-08-20T19:16:10Z", "hours": 0.4381, "text": "“Roguelike” “Game” in C (neither of them has begun to be implemented. But i guess i have set up the very basics as of now"}]...
|
Title: Pointer Fighter (C based) by @nano | Starda Title: Pointer Fighter (C based) by @nano | Stardance
Devlogs:
“Roguelike” “Game” in C (neither of them has begun to be implemented. But i guess i have set up the very basics as of now
Implemented functional Walking (even though there is no real border yet). I also fragmented the code a bit so its more readable!
Added collision checks for walls so you cant escape the rooms
Implemented doors (currently a minus sign probably going to change that). If you collide with said door/minus sign you will enter a new, different sized room. I did that by choosing a random wall, a random spot on that wall which is the spot where the door will be and if you make contact with the door a new room will be initialized.
Added “Npcs” (evil pointers/ampersands). Collision yet have to do something relevant (right now they only trigger a new room). Also fixed a few memory unsafeties.
Added a (somewhat) functional menu screen to view highscore and start the game (highscore function will be implemented soon!!!!. Also built the first prototype of the battle screen though it is no where near finished. I will probably make the menu screen a bit prettier in the future but the current design has to suffice for now. :)
Kinda added a battle screen (not reactive yet but will happen soon) and made the ASCII designs for my characters with AI (i cannot make any good ASCII art sadly :( … yet). In the top left is what is supposed to resemble a health bar which also still needs to be implemented. Also made the code a bit cleaner added a few header guards and most importantly i added structs for the entities so their stats could be recorded. Thats it :)
added the first implementation of working battle (taking and dealing damage, working health bar)! The main issues right now are that the code is a bit tangled and that the logic isnt polished at all. But after 2 hours of work i felt like i had to post a log so this is the current state (you can attack or try to run) (winning and running have the same effect as of now)
LOG 9: Battle now works better and you can see enemy h now. Code is way less tangled (though some stuff still needs to be improved and the battle still isnt fully polished). There are some bugs regarding memory right now (will be fixed ASAP). But as of now you can finally really battle the evil evil evil pointer!
LOG 10: Added multiple enemies (dynamic based on room size) and stats get reset after battle. Battle still issnt finished yet as i think of two more things to add for every one thing i implement. Stay updated !!!
LOG 11: Im Back. After a short break i started to implement that enemies really “die” if you beat them! Now there is some kind of progress added into the game as you can actually beat the enemies!!! The next features will probably be a real highscore and restricitions in leaving the room until youve beaten every enemy. Till then stay updated!!!!
LOG 12: This came quicker than i thought it would lol. I implemented the two things i spoke about in the last log. I added a highscore system so you can always see how far you came with beating the evil pointers and i also “locked” the rooms until youve beaten every enemy in the room. I plan on adding power ups and some other features (read the README in the repo). STAY UPDATED!!!
LOG 13: Added items that are supposed to give you power-ups in the future. currently they dont really do anything except open a screen with a sprite for the corresponding item (SPRITES ARE AI GENERATED). The plan for the future is to deicde between regular and activatable items (the first give permanent buffs, the second can be activated) and to be able to choose the items while in battle. For now they can spawn on the map (anywhere except 1|1 and spots where enemies are) and open a random sprite of the 3 that are available right now!
LOG 14: Made the items more interactive and functional (items can now be picked up or ignored and will vanish if either is done) and i built a somewhat functional inventory accessible only in battle as of right now. I also had to clean up a bunch of code and had to re-implement some stuff as i implemented some things rather poorly before. There are still some things to be made a bit cleaner which will come in the next few devlogs but i felt like posting one for the current state of the game.
LOG 15: MAINLY BUG FIXES AND SOME MINOR NEW FEATURES NEW FEATURES Better life/strength display A feature that was originally used for debugging has turned out as a good feature for the game overall. It always displays your and the enemies HP, and attack power (even though the attack damage is partly random which i have to note somewhere so there will be no confusion) An item descriptor that tells you what the item you are looking at currently does There is only one item to be used in the inventory right now so you can only see what the heal item does but more will be added in the future. BUG FIXES Memory unsafety fixed There was an issue with unsafe memory access if the items in the inventory where bigger than 10. My fix is that if you have more than 10 items and you pick up a new one, the new item will replace the first item, the next one the second one etc. It also resolved a smaller issue with blank inventory space that ate up inventory space even though it was empty. Items not working fixed The functions responsible for changing your hp, healing you or making you stronger hat an issue with their pointer assignment (they were pointing to the wrong variable) which i fixed for all function which work great now. Bug with doors acting the same as item pickups Because of something what seemed to be a typo (a function returned 1 instead of 0), if you tried to go through a door and you haven’t beaten every enemy, instead of nothing happening you got a free item (which turned out to be a great testing feature for items, because i can get many items fast and easily). The fix was really easy (just swap the 1 for a 0) Health bar not drawing properly Because of a badly implemented function i added in the past which turned out to be completely redundant (got cut out) the current hp weren’t imported properly to the function that handles printing out the health bar which i fixed by using another variable responsible for storing the current hp of the player Misc fixes After having to audit most of the code again i noticed that there were some issues with the code (partly because it was fine as it was when it was written, part was just sloppy implementation) which i also fixed even though most of it was minor. CURRENT PLANS FOR THE FUTURE More items that can be used in battle MORE ENEMIES!!! Im planning to add more and stronger enemies in the future even though that will probably will be one of the biggest newfeatures as it requires rewriting most of the battle and map logic Enemies getting stronger if you get farther for better progression Overall some more optimization and bug fixes (there is always something to be fixed ;) )
LOG 16: NEW NPC, BETTER CODE MODULARITY, FIXED SOME BUGS NEW FEATURES New “Modulo” / % enemy (based on the modulo operator in c)! It has weaker stats but is way stronger in terms of attack power BETTER CODE MODULARITY Because at the start of the game my main idea was to only implement one enemy type (which was pretty dumb tbh), i had to rework most of the map and battle logic so it was more generic and welcoming to multiple entities (and will help me add more enemies in the future). BUG FIXES VISUAL GLITCH There was a bug for the most of the time in the game (an issue with unititialized variables being printed, which resulted in a visual glitch), which was actually a pretty easy fix (i had to change the switch statements that handle state input and drawing output a bit so that changing the gamestate doesn’t skip to drawing instantly) MEMORY LEAK Because of a dumb implementation of a function that was supposed to carry over the value of a variable in file A to file B which used pointers allocated with malloc i had a memory issue because in a common case i forgot to implement free which resulted in lost memory (the fix was actually just switching over to passing by value because it was just a single char being transported from file A to file B and passing by reference wasn’t necessary)
LOG 17: DEBUG MODE FOR FASTER TESTING DEBUG MODE I added a debug mode because i found that most of my testing time was wasted finding items or players in rooms (which was very annoying most of the time), so i added a debug room so that goes way faster. Though it is very useful it was somewhat hard to implement but it made the code modular the same way the enemy logic is modular now which is an improvement in two ways
LOG 18: NEW ITEM AND BUG FIXES BUG FIXES BUG FIXES NEW ITEM DAMAGE POTION I added a new item that can be used in the inventory during battle which deals (currently) 4 damage to the opponent. Its the rarest item in the game right now (i think 1 in 11). Because of the new item i had to make a bunch of code more modular in the inventory logic (a trend in my code). But overall this was the reimplementation that went the smoothest BUG FIXES BATTLE INPUT BUG There was a bug in the battle screen that made the overall input very clunky and previously was only fixed by letting another bug happen but i fixed it by changing something in the switch statements of the battle logic INVENTORY ACCESS AND SELECTION BUG A bug that mainly happened because of the previous bug: When trying to access the inventory in battle the game automatically selected the first item and returned to battle and only after the second time accessing the inventory you could really use your items as you wished INVENTORY SELECTION BUG In the inventory itself a bug was caused by a lazy implementation which caused the display (not the real logic behind the inventory actually) to become very glitched out and very confusing. I just fixed this by fixing my old and bad implementation for a better more modular one (an overall trend in my code to be not that modular lol)
LOG 19: NEW ENEMY TYPE: BOSS FIGHTS, BETTER DOOR LOGIC, NEW SPRITES NEW ENEMY TYPE Because i thought that the normal enemies would be too easy to beat down the run i added the main boss (the pointer which stole the star sprite from the address enemy) and he will always be fought every 5-10 rooms (im not sure on the number) . Currently his stats are static but i plan on making them dynamic based on the number of rooms you went through. BOSS ROOM/BETTER DOOR LOGIC The old door logic practically only worked with a normal room and needed the regular enemies to all be defeated. I tweaked it a little so it works with boss triggers/defeating the boss NEW SPRITE(s) As i said the boss got the star sprite because he is the true pointer so i gave the address an ampersand sprite (which is way more fitting btw). But i am not completely satisfied with the current ampersand sprite (i will maybe change it sometime) NOTE This time there werent really any bugs except during building the boss logic but they got fixed along the way. This time it actually went rather smoothly :) Also ignore the absurd stats of the player
LOG 20: DYNAMIC STATS, BUG FIXES, SMALL UPDATE TO DEBUG MODE AND MORE COMMENTS DYNAMIC STATS The stats of all enemies are now connected to the boss counter which is the number of boss fights that have been fought during the current run so there is real progression and you dont just get stupidly overpowered DEBUG MODE I basically just added the boss to the debug mode nothing much BUG FIXES There was a glitch with the boss room being cut off because the randomly generated room was smaller than the boss room. I had to push a few things around and put every type of map generation (standard, debug, boss) into a switch statement to make it work properly COMMENTS I pretty much forgot most of the comments in the game so i started adding way more comments where they should be so the code is hopefully more intuitive to follow NOTE I think the next update will be pretty big so watch out when it finally drops!!!
LOG 21: FOG OF WAR, HOMING ENEMIES, BATTLE LOGIC OVERALL AND BUG FIXES FEATURES HOMING ENEMIES The enemies now home on you with every step you take, meaning you actually have to think about where you will go or the enemies will catch up to you. This was implemented by adding a sign function that decide whether the enemy should move +1 or -1 and then moving the enemy by that value. There were some bugs regarding enemies in previous rooms which got fixed by resetting the whole array during map init FOG OF WAR I added a fog of war feature that obstructs everything in the map you haven’t explored yet. This also pairs very well with the homing enemies feature. You have to go around the map to look out for items and enemies which now also walk towards you, so every step matters now BATTLE LOGIC OVERHAUL After revisiting most of my code for commenting i realized how terrible most of my battle logic was so i made it a bit more efficient and most importantly more readable. Overall i realized how great switch statements are in the last few logs BUG FIXES DOOR BUG There was a bug with the map that was somewhat useful when testing but still was a bug. The issue was that if you tried to step into the door the game let you step onto that char. The issue was that i forgot to make the game think that the door (when closed) should behave exactly like a wall. So the fix was just to add the door char to the wall collision check function
LOG 22: POISON ITEM, BATTLE LOG, MAIN LOOP AND ITEM SELECTION REWORK POISON ITEM A new item that does 3 tick damage every enemy turn, for 2 turns. Its the rarest item in the game as of right now and was somewhat complex to add (because of the tick damage and tracking how many turns have passed) BATTLE LOG A log that tracks the last two actions that have happened in the game. It currently only tracks damage and attacks but will track item usage and more detailed information in the future. It was a real headache to implement because i had contradictory logic between the log and my main loop and i had to reimplement it multiple times. But went well overall :) REWORKS MAIN LOOP REWORK I reworked the main loop a bit because even though it worked well in theory it was not really optimized and it was prone to bugs in the future which is why i felt like redoing it a bit. Now instead of every function handling their own init, every changing gamestate instantly also inits the state it was changed to. Because of this there are less possible bugs and its overall easier to do for future gamestates ITEM PICKUP REWORK I noticed that the logic for my items wasn’t really perfect and seemed unoptimized which is why i felt like changing it a bit. Because when picking up items there are only two possible things to do (which both result in the same exit scenario) i swapped my if/else if logic for a switch statement which made the code shorter, and more optimal
LOG 23: BATTLE LOG FOR ITEMS, BUG FIXES, BUG FIXES, BUG FIXES, BUG FIXES FEATURE BATTLE LOG FOR ITEMS The previous battle log only logged attacks and the damage dealt, now the log also tracks if items are used or items deal damage BUG FIXES SEGFAULT There was a segfault when trying to render the bottom of deeper rooms because the render guard had a major fault (only disjunctions no conjunctions). Because of that the game tried to reach spaces of the visible_map array out of reach of the array which resulted in a segfault when trying to go into spaces out of reach of the array. The fix was changing the guard from if ((player_y + y) < MAX_HEIGHT || (player_x + x) < MAX_WIDTH || (player_y + y ) >= 0 || (player_x + x >= 0)) to if ((player_y + y) < MAX_HEIGHT && (player_x + x) < MAX_WIDTH && (player_y + y ) >= 0 && (player_x + x >= 0)) which fixed the issue BATTLE LOG NULL TERMINATOR FIX There was a bug with the battle log, where ^ were printed (NUL ascii in ncurses) because the battle log printed out every part of the string character by character (including the \0 terminator). The fix was to just not print out the \0 terminator to the screen BATTLE SELECTION BUG There was a bug with conflicting selection variables (multiple variables where named selection which resulted in wrong selections being displayed). The fix was to give every function their own selection variable which fixed the issue VISIBLE MAP GLITCH Because the visible map only updated itself in the perimeter you are standing in if you moved fast enough some characters lagged behind and made it look like there were way more enemies than there actually were. The fix was to update not only the perimeter on every movement but also update everything that had already been explored
LOG 24: BOSS ITEM DROP, CONTROLS SCREEN, NEW IN-GAME BANNER, ITEM TO INVENTORY REFACTOR, BUG FIXES FEATURES BOSS ITEM DROP I added an item that only the boss drops, when killed. Its ability is to make the enemy unable to attack for one turn. You will always get it when defeating the boss and has the ‘?’ glyph compare to regular items (‘+’). Its also the only item that can always be picked up (with normal items, if your inventory is full you cannot pick them up, with the boss item your first slot gets overwritten). CONTROLS SCREEN I added a basic controls screen so people that try the game out (now or when it ships), know what to do when playing. Currently most things are really straightforward but i added it just in case. The most important aspect will probably how to end the game because thats the most unintuitive one (even though i hope anyone testing the game doesnt want to quit it) ITEM TO INVENTORY REFACTOR I thought that the previous state of my item to inventory were pretty lazy so i changed the logic up a bit. Previously when picking up items the items would go into the spot after the last item that was picked up and when the inventory ran full the first item was swappped with the newly picked up item. I didnt like that looking back and because of that the logic now scans through the inventory until it finds an empty spot and puts the item in that empty slot. If the inventory is full no item can be picked up (except the boss item) and the player gets a message on their screen. They can then leave the item screen using ESC and the item is not removed and can be picked up later if you somehow make space in your inventory NEW IN-GAME BANNER Also pretty straightforward, i added a banner so the menu looks a little bit prettier :) BUG FIXES BOSS ROOM BUG Because of map and gamestates and me forgetting to implement a feature in the door collision checks, there was a bug when defeating the boss (the map stayed as it was, but had the usual visible map ‘#’ everywhere you hadnt already explored (you cant really explore much so there where many ‘#’ ’s around the map which was really ugly. The fix was to move a mapstate change from the function that is responsible for handling victory to the function handling doors BOSS BUG There was a bug after defeating the boss which resulted from the previous bug and its fix. Because i forgot an additional check in my door function when defeating the boss the boss would spawn again and overwrite your boss item. The boss also chased you (which normally doesnt happen) and you couldnt leave the room. The fix was just to add another condition to the if statement in the door function responsible for the boss room ENEMY REMOVAL BUG For some reason (i dont know how i made the bug happen), when defeating enemies the visible map lagged behind the normal map which resulted in defeated enemies appearing to still exist on the map for one iteration of the loop (pressing any button made them vanish). The fix was to add a call to the visible_map_init function after defeating enemies
LOG 25: FLEEING ENEMIES (CONTAINS MANY CHANGES), BOSS ITEM REFACTOR FLEEING ENEMIES Enemies (except the boss) now have the ability to run away if the enemy would get killed by the next attack. The chance for this to happen is 10% and when they run away, they gain 1 HP per step they take and return to chasing the enemy if their hp is back at half of their max HP. FLEEING REWORK Before adding this feature, fleeing was the same practically as winning (the return type of the fight was STATE_VICTORY), i changed that to the proper STATE _FLED. Also before when fleeing, if you fled and another enemy of another type collided with you, he had normal stats but the enemy before that also got his stats reset. The same went for enemies of the same type. When fleeing from enemy A from type A and then colliding with enemy B from type A, he would have the stats of enemy A. The fix for both was to make a 2D Array of all enemies and their types, so each individual enemy stores its stats, not the battle function. PLAYER POSITION STRUCT Previously the player had ~ 8 different position variables, which was pretty clunky if i wanted to transport the player position to another function. Because of that i put all player positions into a singular struct, so i could pass all the player positions at once if i needed to. ENEMY PURSUIT FUNCTION REWORK Because enemies have to run away instead of chasing i had to rework the pursuit function a bit so it could also work in a reverse way. I had to make the function branch between the two states which took a bit more work than originally anticipated because i had a bunch of wrong ideas for how the function should work. Overall the function implementation was essentially to just use the inverse vector of the normal vector for the direction function BOSS ITEM FUNCTION/ITEM FUNCTION REFACTOR Because previously the boss item detection function and the item detection were separate the code didnt feel clean at all (felt like a lazy implementation for me), so i made the item function work with the boss item which makes the item function overall more open for new item types (if i will add any more)
LOG 26: FINAL DEVLOG MAINLY BUG FIXES AND SOME MINOR CHANGES CHANGES Enemies previously scaled to strongly and beat you too hard after the boss fight. Also because it was hard to scale the opponents down i decided to make the hp of everyone higher (everything got stronger in theory, player has 100 starting hp, does 20 damage etc.) LATE ADDITIONS LICENSE I licensed the project under the MIT licesne because it seemed fitting BUILD FILE I added a build file for the repo so i could upload a release binary (ncurses is required tho) BUG FIXES HIGHSCORE BUG There was a bug with the highscore not being displayed when there was no highscore.txt file. I needed to change the handling of the fact that the open function returned NULL, because NULL either meant, no file was there or no file could be found which resulted in no file being created because the function exited when the open function returned NULL, the fix was pretty simple overall tho (just adding an extra if conditional to check) FULL INVENTORY BUG Previously when having a full inventory, you couldnt pick up new items, issue was when using items that state didnt reset so one full inventory meant no items anymore :( . The fix was just to reset the state after using items BOSS ITEM INVENTORY BUG I forgot to make the boss item return the correct state which resulted in the item sometimes not being put in the inventory. The fix was just to add return ENTER_LEGAL to the boss items if statement SET ROOM ISSUE Because of random rooms sometimes boss room dimensions where bigger than current room which resulted in bugs (see previous devlogs). My previous fix worked in theory but had more affinity for potential bugs so i changed the set room function from two static values to two values that get passed into the function
Ships:
A roguelike room crawler completely built in C! What is in it? Randomly generated rooms with a fog of war for you to explore Three different enemy types with scaling difficulty Boss fights with unique item drop RPG Style fighting An interactive inventory that can be used during battle A battle log that tracks everything that happens in battle Items, pickups and a persistent highscore What am I proud of? The enemy pursuit and fleeing system. It was somewhat hard to implement but I think it made the game wayyyy better than before. I’m also proud of how the state machine turned out in the end. The game has strict separations between the different game states and first handles what the player/the game did during the game loop iteration and then after that is done draws it to the screen. That state machine was very prone to bugs and I had to spend a bunch of time to fix (fallthrough bug, etc. all talked about in devlogs). But I think the result that turned out at the end was great and I am very content with it How is it built? As said its completely built in C using ncurses as its graphics library using 12 source files (currently) with each one having a specific task only it does. The build is released using GitHub workflows and the binary can easily be downloaded and used on (almost) all glibc linux distros (the project was compiled for Ubuntu and you will have to install ncurses though) What I learned The game was actually my first real coding project ever apart from a few simple websites so I learned a bunch. I learned how to separate state transitions, I learned the importance of good and bad switch statements, bounds checking (really rough path) and I think most importantly: The power of code separation and making every file do its designated task. I often caught myself picking the easy and sloppy path and then fixing it properly and in retrospect helped with preventing a bunch of bugs Known limitations / plans for the future It’s my first project, so there are likely still issues I haven’t found. Even though I tried to find everything (a.e. using Valgrind told me there are no memory blocks definitely lost) there are still potentially memory safety issues or potential segfaults. It’s possible some edge cases might have slipped through. I’ve tested the project thoroughly and haven’t found any crashes since the last few debugging sessions but I cannot safely say it’s perfect. I think if I will find the time I will maybe add some new features like new special item related enemies or player status effects though I cannot safely say if i can Closing word I think building a game for my first real project was the right decision for me because I really had a bunch of fun building this project. I currently have some ideas for unrelated new projects (one is up on my profile check it out (; ) and I think this project was a really good pathway into coding for me. Check the GitHub and the demo video out and I hope you like the project...
|
1793004940.3502064
|
1793091340.3502064
|
|
57140
|
Visora by @Amadev | Stardance
|
Amadev
|
1
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-10T17:29:23Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built Visora, an MCP server that gives AI agents reliable high-level control over the Unity Editor. The hardest part was making animation and editor workflows safe and predictable: IK, gaze, retargeting, animation QA, bridge reload recovery, prefab inspection, rollback, and reproducible preview artifacts. I’m most proud of how much of the Unity-side behavior is covered by real EditMode/integration tests instead of only mocked Python tests. To test it, use the GitHub release/source, follow the setup guide, connect Visora to a Unity project, and try the MCP tools for animation, scene inspection, previews, or prefab inspection.", "repo": "https://github.com/AmaLS367/Visora", "demo": "https://github.com/AmaLS367/Visora/releases/tag/v0.1.3"}]...
|
[{"post_id": 65482, "ts": "202 [{"post_id": 65482, "ts": "2026-09-10T17:21:38Z", "hours": 5.3419, "text": "Preview Artifacts, Bridge Recovery & Prefab Workflows Added reproducible animation preview artifacts with stored records and comparison tools for repeatable QA.Improved Unity bridge recovery during reloads/recompiles, added retry hints and safer timeout handling. Added real Unity E2E animation fixtures and reorganized the test suite.Finished the v0.1.3 release, refreshed the README/docs, and started v0.1.4 prefab workflows. Added inspect_prefab_asset and inspect_prefab_overrides with native Unity services, support for nested/variant/model prefabs, structured override inspection, stable IDs, and Python/integration/EditMode test coverage."}, {"post_id": 64760, "ts": "2026-09-09T12:27:18Z", "hours": 8.7661, "text": "Worked on a large animation/character workflow update for Visora. Added dedicated agent workflows for animation authoring, camera/action sequences, rig retargeting, IK, gaze, motion polishing, contact handling and animation QA. Updated the MCP instructions and project docs so agents have a clear workflow for checking rigs, previewing animation, validating motion and handling Humanoid/Generic fallback cases. Implemented new animation tooling around Two-Bone IK, viewport-based effector placement and character gaze. Added support for solving and baking IK/gaze into animation clips, including parameter validation and Unity capability checks.Added a bigger QA layer for animation. This includes temporal motion analysis, curve discontinuity diagnostics, self-intersection checks and comparison of animation previews. Also added contact baking for things like planted feet/hands and camera-subject action tooling for synchronizing character motion with camera impacts. Added atomic animation transactions and improved rollback/backup handling so multiple animation edits can be applied together and reverted safely when something fails. Refactored the Unity-side animation services around shared sampling, curve writing and rollback helpers. Spent a good amount of time hardening all of this against actual Unity edge cases: Edit Mode requirements, unsupported bridge capabilities, invalid parameters, unknown diagnostic values, quaternion discontinuities, tangent preservation and proper exception handling. Added a Unity EditMode integration test suite covering IK, gaze, contact baking and atomic animation transactions, together with a runner script. Expanded the Python unit tests for the new animation tools and failure cases as well.Also reworked Visora’s visual output. Screenshots, animation previews and video frames now use multimodal MCP image blocks and file artifacts instead of dumping Base64 data into the response. Multi-frame previews can generate contact sheets, and full-resolution artifacts stay on disk. After that I focused heavily on MCP context usage. Compact tool definitions reduced the tool catalog payload significantly, diagnostic tools now have limits/filtering for large skeletons and clips, tool results are compacted, duplicate structured output is removed, and several redundant tools/wrappers were merged or deleted. The tool catalog went from 55 tools down to 44. Merged the two separate video capture tools into a single capture_video workflow and reduced the default screenshot resolution to 720p. Inline images are now automatically downscaled while keeping the full-resolution artifact available separately. Finally tuned the default diagnostic dump sizes further so normal tool calls consume much less agent context and larger detailed dumps are requested only when they are actually needed."}, {"post_id": 62172, "ts": "2026-09-05T13:09:04Z", "hours": 2.9436, "text": "Editing Animation Clips & Events Hey everyone, continue working on it. Up until now, the agent could only really watch animations—taking previews and checking poses. If a keyframe was off or a transition looked janky, you still had to go into Unity and fix it by hand. Now, the agent can actually edit AnimationClip assets directly. It can add, move, or delete keyframes, tweak curves, and set tangent modes like smooth, linear, or step holds. Giving an AI write access to your animation files is honestly a bit scary—one bad curve and your character turns into a noodle. To keep things safe, Visora now takes an automatic backup of the clip before touching it, and hooks every edit into Unity’s native Undo system. If the agent makes a mess, you can roll it back with a tool call or just hit Ctrl + Z right in the editor. We also added tools to create and remove animation events. This makes it way easier to sync things like hit-stops, camera shake, or footstep sounds to exact frames on the timeline instead of guessing with timers."}, {"post_id": 61583, "ts": "2026-09-04T15:45:13Z", "hours": 5.5072, "text": "Visora v0.1.3 — Giving Agents Eyes on Unity Animations So, we just fixed a massive problem. Once I hit merge, a huge weight lifted off my shoulders. It feels like the raw volume of code I write is getting smaller each time, but what actually lands has a massive, cascading impact on the entire system.Until now, whenever an AI agent needed to inspect an animation in Unity, it was basically flying blind. The old approach was either pulling raw curve data (which tells an agent nothing about clipping, silhouette, or visual feel) or recording full video dumps over the HTTP bridge. Video was heavy, expensive on tokens, slow to transfer, and worse: if the camera wasn’t manually lined up in the scene, the character would just walk right out of frame or get clipped halfway through. With Visora v0.1.3, we tackled this head-on by building preview_animation. It’s not just a snapshot tool — it’s a complete visual pipeline designed specifically for agent context budgets. What Actually Changed Under the Hood Trajectory-Aware Auto-Framing (C# Engine Side) Instead of relying on whatever camera happens to be in the scene, Visora now spins up a transient preview camera. Before snapping a single frame, it samples the clip across its timeline, collects every active skinned and mesh renderer, and computes a union bounding sphere for the entire motion trajectory. It places the camera at an ideal 45° vantage point, automatically calculates the optimal distance based on camera FOV, and dynamically compensates for vertical vs. horizontal aspect ratios so tall or wide aspect ratios don’t clip the character’s head or limbs. Smart Keyframe Selection (Python Side) Agents can’t look at 120 raw frames — that would incinerate context windows and latency. We built an intelligent keyframe extractor (preview_keyframes.py) that analyzes the clip curves to find where actual motion happens: curve extrema, zero-crossings, sudden velocity changes, and animation event timestamps. It pins the start and end poses, then fits the most informative frames within a strict frame budget (e.g. 4 to 8 images). Zero-Side-Effect Scene Safety One of the hardest parts of building agent tooling for Unity is engine hygiene. The preview system samples the animation, renders offscreen to a custom RenderTexture, encodes directly to PNG byte buffers, and cleans up after itself. No dummy cameras left in the hierarchy, no dirty scene flags, and character poses are strictly restored to their pre-sampling state. Hardened CI & The Unity Package Gate We also tightened our pre-commit and CI gates. We introduced scripts/check_unity_package.py, compiling the C# package directly against real Unity assemblies with Microsoft.Unity.Analyzers in headless Linux containers. If there’s an obsolete API, a loose memory allocation, or a CA analyzer warning, the build fails before it ever touches a project. It feels great to have this merged and rock-solid. With animation visual inspection out of the way, I’m heading straight to the next item on the Roadmap: Typed Clip, Event, and Camera Authoring!"}, {"post_id": 60781, "ts": "2026-09-03T11:33:29Z", "hours": 2.2286, "text": "Visora devlog — v0.1.1 & v0.1.2 Shipped two releases back to back. Visora now has a proper open-source foundation: an Apache-2.0 license, full contributor and security docs, a hardened Docker image, and a complete CI pipeline that tests every change and publishes releases automatically. v0.1.1 was about infrastructure — agents can now search the web for 3D models, environments and rigs and import them straight into a live Unity project, plus all the CI/CD and Docker groundwork. v0.1.2 was about packaging and community — licensing, PyPI metadata, issue templates, contributor guides, and release integrity checks. You can now just pip install visora. And here’s the first real demo. A 2-second shot: a Rover-style character from Wuthering Waves throws a flying kick straight into the camera in a desert wasteland. The environment, the rig, the animation and the capture were all built by an AI agent driving a live Unity Editor through Visora — nothing hand-placed. The whole thing was made by Claude Sonnet 5, using about 20% of the 5-hour limit on the $20 plan. So a mid-tier model, for a fraction of a cheap subscription, can already take a scene from empty to finished shot on its own. Right now it’s 2 seconds — deliberately small, to set the floor. The goal is for Visora to grow into something where AI can build full, directed animation sequences: minute-long shots, multiple characters, real rigging, proper timelines. “Make me a cutscene” turning into an actual cutscene. This dropkick is just the starting line."}, {"post_id": 60717, "ts": "2026-09-03T08:42:43Z", "hours": 0.915, "text": "Production CI/CD and MCP 2.0 are now complete for Visora. The project now has a parallel GitHub Actions pipeline covering formatting, Ruff linting, strict mypy checks, unit and integration tests, lockfile validation, Unity package validation, distribution builds, and an enforced 80% coverage threshold. The workflows use uv caching, cancel outdated runs automatically, and skip runs for documentation-only changes. All GitHub Actions are pinned by commit SHA. A release pipeline now validates version tags, runs the full verification suite, builds the package, publishes it to PyPI, and creates a GitHub Release. Dependabot was added to update GitHub Actions and Python dependencies weekly. Funding configuration was added as well. Visora was migrated from MCP 1.x to MCP 2.1.1, replacing FastMCP with MCPServer and updating the related tests and documentation. The updated Dependabot pull request passed every CI check and was merged. The Production CI/CD roadmap item is now marked as completed."}, {"post_id": 60695, "ts": "2026-09-03T07:39:13Z", "hours": 3.4883, "text": "Visora devlog — asset pipeline & Unity native bridge (18 commits) Asset pipeline: from broken to trustworthy Built out the 3D-asset workflow (search → download → import → verify) and then spent most of the effort hardening it against silent failures: Added asset search/download/Unity-import tools (1a0bcd3, bf6a7d9), then refactored out dead backward-compat aliases (dda6c17). Fixed real bugs found by actually running it: ambientCG downloads being wrongly rejected and Sketchfab results silently hidden (99d3f15), a wrong ambientCG download URL for 3D models (1d6e2ce), a crash on comma-separated port lists plus missing env-var docs (117e6e3), and .bin/.mtl companion files being incorrectly stripped out of glTF/OBJ archives (5cb1afa). Discovered Sketchfab’s own search API ignores the query text entirely (verified live) — added web_search_assets, a SearXNG-primary/DuckDuckGo-fallback real web search to find a specific named model and extract its Sketchfab UID (4489725). Biggest find: download_and_import_asset was reporting success=true even when Unity couldn’t actually parse the file (glTF with no importer installed → empty placeholder asset). Fixed to detect and reject that case explicitly instead of lying about success (8c4241b). Native Unity bridge: first real compile & runtime test com.visora.editor had apparently never been compiled in a real Unity Editor before. Opening it in Unity 6.6 surfaced a chain of genuine bugs, fixed one at a time: A broken float field that Unity’s JSON deserializer can’t handle, flattened to float on both C# and Python sides (08f502e, 4d05468). Unity 6.6 API removals: GetInstanceID() → GetEntityId() (c8c8905), then GetEntityId()’s own obsolete int-conversion operator → GetRawData() (027e39c). Two HTTP handlers (/api/editor/state, /api/visora/info) and a log-callback subscription were calling Unity APIs off the main thread, causing runtime errors — dispatched onto the main thread (d27e03f, 5e3069b). Dynamic C# snippet compilation was missing a reference to UnityEditor.CoreModule, breaking any snippet touching EditorApplication/EditorSceneManager (a8689a9). Agent guidance Shipped documentation aimed at other agents driving Visora, not just humans: an always-on MCP instructions block plus a copyable Claude Code skill (visora-asset-workflow) covering Sketchfab’s broken search, supported import formats, and how to actually verify an import worked (4e8cd5c). Housekeeping Committed the 29 .meta files Unity generated on first real import of the package — standard Unity convention, and further confirmation the package had never been opened in a real editor before this round of testing (b9e4f01). Net effect: the asset import pipeline no longer lies about success, Sketchfab search actually works for named models, and the native Unity bridge compiles and runs cleanly on Unity 6.6 — all verified end-to-end (ambientCG apple + a Sketchfab character model imported, inspected, and visually confirmed in-scene)."}, {"post_id": 60167, "ts": "2026-09-02T11:47:32Z", "hours": 1.5803, "text": "Building Visora: Teaching AI agents to actually see and fix Unity scenes (v0.1.0 update) Quick update on what I’ve been hacking on for Visora since adding the project banner. The problem I ran into: If you try to let an AI agent (like Claude or Cursor) work inside Unity, it’s usually a disaster. Current bridges just let the model run raw C# strings and read console logs.The agent is completely blind. It doesn’t know if a 3D character spawned behind the camera, if an animation is flying off into infinity, or if a model looks like a spiky mess because bone weights are broken. Even worse, agents love to edit things during Play Mode or hit save while Unity is recompiling, completely wrecking the scene files.I got tired of babysitting that, so I built Visora — a Python MCP server and a companion Unity package that gives agents actual eyes, rigging smarts, and guardrails so they don’t break your project. V0.1.0 — Here is what I’ve coded and got working over the last few days: Gave the agent actual vision. The agent can now render screenshots from any camera in the scene, check if a character is cut off by the screen edges or clipping planes (project_world_points and diagnose_camera_framing), compare before/after images, and even record short MP4/WebP video clips to inspect physics and animations over time. Made it understand rigs and animations. Instead of guessing why an animation looks wrong: It inspects AnimationClip curves directly and catches unwanted position or scale drift. It can sample any character’s pose at a specific second, inspect the transforms, and immediately restore the original pose so nothing stays messed up. Added a skeleton mapper with fuzzy bone search that understands both standard Humanoid rigs and messy Japanese MMD bone chains (like 全ての親, センター, 下半身, D-bones). Skinned mesh diagnostics Added tools to inspect SkinnedMeshRenderers. It detects inverted or zero-sized bounding boxes, missing root bones, and broken bone weights. It also tells you whether a glitch is just a missing material/texture or an actual broken mesh deformation. Made scene edits safe (undo & transaction rollback). Every script the agent runs now happens inside an isolated Undo group. If the C# code crashes or throws an exception, Visora automatically rolls back the entire scene to before the run. It also blocks saving during Play Mode so your scene never gets corrupted. Native Unity package + 24 typed tools Built a native Unity Editor package (com.visora.editor) using HttpListener hooked directly into Unity’s main editor update loop. On the Python side, I implemented 24 clean MCP tools with strict Pydantic schemas, auto-discovery for ports 8080-8085, and async queue polling for long tasks. Tagged and released v0.1.0 on GitHub with complete setup guides, agent recipes, and test coverage. What I’m building next for v0.1.1: Auto 3D model web search & download: I want the agent to search the web, find 3D models, textures, and environments, and download/import them directly into the Unity project so it can build and animate entire scenes on its own. Clean GitHub Actions CI/CD: Automatic linting, typing, and test runners on every commit. Docker support: A lightweight Dockerfile to easily run the MCP server anywhere in a headless container. You can check out the code and the v0.1.0 release here: https://github.com/AmaLS367/Visora"}]...
|
Title: Visora by @Amadev | Stardance
Devlogs:
Bui Title: Visora by @Amadev | Stardance
Devlogs:
Building Visora: Teaching AI agents to actually see and fix Unity scenes (v0.1.0 update) Quick update on what I’ve been hacking on for Visora since adding the project banner. The problem I ran into: If you try to let an AI agent (like Claude or Cursor) work inside Unity, it’s usually a disaster. Current bridges just let the model run raw C# strings and read console logs.The agent is completely blind. It doesn’t know if a 3D character spawned behind the camera, if an animation is flying off into infinity, or if a model looks like a spiky mess because bone weights are broken. Even worse, agents love to edit things during Play Mode or hit save while Unity is recompiling, completely wrecking the scene files.I got tired of babysitting that, so I built Visora — a Python MCP server and a companion Unity package that gives agents actual eyes, rigging smarts, and guardrails so they don’t break your project. V0.1.0 — Here is what I’ve coded and got working over the last few days: Gave the agent actual vision. The agent can now render screenshots from any camera in the scene, check if a character is cut off by the screen edges or clipping planes (project_world_points and diagnose_camera_framing), compare before/after images, and even record short MP4/WebP video clips to inspect physics and animations over time. Made it understand rigs and animations. Instead of guessing why an animation looks wrong: It inspects AnimationClip curves directly and catches unwanted position or scale drift. It can sample any character’s pose at a specific second, inspect the transforms, and immediately restore the original pose so nothing stays messed up. Added a skeleton mapper with fuzzy bone search that understands both standard Humanoid rigs and messy Japanese MMD bone chains (like 全ての親, センター, 下半身, D-bones). Skinned mesh diagnostics Added tools to inspect SkinnedMeshRenderers. It detects inverted or zero-sized bounding boxes, missing root bones, and broken bone weights. It also tells you whether a glitch is just a missing material/texture or an actual broken mesh deformation. Made scene edits safe (undo & transaction rollback). Every script the agent runs now happens inside an isolated Undo group. If the C# code crashes or throws an exception, Visora automatically rolls back the entire scene to before the run. It also blocks saving during Play Mode so your scene never gets corrupted. Native Unity package + 24 typed tools Built a native Unity Editor package (com.visora.editor) using HttpListener hooked directly into Unity’s main editor update loop. On the Python side, I implemented 24 clean MCP tools with strict Pydantic schemas, auto-discovery for ports 8080-8085, and async queue polling for long tasks. Tagged and released v0.1.0 on GitHub with complete setup guides, agent recipes, and test coverage. What I’m building next for v0.1.1: Auto 3D model web search & download: I want the agent to search the web, find 3D models, textures, and environments, and download/import them directly into the Unity project so it can build and animate entire scenes on its own. Clean GitHub Actions CI/CD: Automatic linting, typing, and test runners on every commit. Docker support: A lightweight Dockerfile to easily run the MCP server anywhere in a headless container. You can check out the code and the v0.1.0 release here: https://github.com/AmaLS367/Visora
Visora devlog — asset pipeline & Unity native bridge (18 commits) Asset pipeline: from broken to trustworthy Built out the 3D-asset workflow (search → download → import → verify) and then spent most of the effort hardening it against silent failures: Added asset search/download/Unity-import tools (1a0bcd3, bf6a7d9), then refactored out dead backward-compat aliases (dda6c17). Fixed real bugs found by actually running it: ambientCG downloads being wrongly rejected and Sketchfab results silently hidden (99d3f15), a wrong ambientCG download URL for 3D models (1d6e2ce), a crash on comma-separated port lists plus missing env-var docs (117e6e3), and .bin/.mtl companion files being incorrectly stripped out of glTF/OBJ archives (5cb1afa). Discovered Sketchfab’s own search API ignores the query text entirely (verified live) — added web_search_assets, a SearXNG-primary/DuckDuckGo-fallback real web search to find a specific named model and extract its Sketchfab UID (4489725). Biggest find: download_and_import_asset was reporting success=true even when Unity couldn’t actually parse the file (glTF with no importer installed → empty placeholder asset). Fixed to detect and reject that case explicitly instead of lying about success (8c4241b). Native Unity bridge: first real compile & runtime test com.visora.editor had apparently never been compiled in a real Unity Editor before. Opening it in Unity 6.6 surfaced a chain of genuine bugs, fixed one at a time: A broken float field that Unity’s JSON deserializer can’t handle, flattened to float on both C# and Python sides (08f502e, 4d05468). Unity 6.6 API removals: GetInstanceID() → GetEntityId() (c8c8905), then GetEntityId()’s own obsolete int-conversion operator → GetRawData() (027e39c). Two HTTP handlers (/api/editor/state, /api/visora/info) and a log-callback subscription were calling Unity APIs off the main thread, causing runtime errors — dispatched onto the main thread (d27e03f, 5e3069b). Dynamic C# snippet compilation was missing a reference to UnityEditor.CoreModule, breaking any snippet touching EditorApplication/EditorSceneManager (a8689a9). Agent guidance Shipped documentation aimed at other agents driving Visora, not just humans: an always-on MCP instructions block plus a copyable Claude Code skill (visora-asset-workflow) covering Sketchfab’s broken search, supported import formats, and how to actually verify an import worked (4e8cd5c). Housekeeping Committed the 29 .meta files Unity generated on first real import of the package — standard Unity convention, and further confirmation the package had never been opened in a real editor before this round of testing (b9e4f01). Net effect: the asset import pipeline no longer lies about success, Sketchfab search actually works for named models, and the native Unity bridge compiles and runs cleanly on Unity 6.6 — all verified end-to-end (ambientCG apple + a Sketchfab character model imported, inspected, and visually confirmed in-scene).
Production CI/CD and MCP 2.0 are now complete for Visora. The project now has a parallel GitHub Actions pipeline covering formatting, Ruff linting, strict mypy checks, unit and integration tests, lockfile validation, Unity package validation, distribution builds, and an enforced 80% coverage threshold. The workflows use uv caching, cancel outdated runs automatically, and skip runs for documentation-only changes. All GitHub Actions are pinned by commit SHA. A release pipeline now validates version tags, runs the full verification suite, builds the package, publishes it to PyPI, and creates a GitHub Release. Dependabot was added to update GitHub Actions and Python dependencies weekly. Funding configuration was added as well. Visora was migrated from MCP 1.x to MCP 2.1.1, replacing FastMCP with MCPServer and updating the related tests and documentation. The updated Dependabot pull request passed every CI check and was merged. The Production CI/CD roadmap item is now marked as completed.
Visora devlog — v0.1.1 & v0.1.2 Shipped two releases back to back. Visora now has a proper open-source foundation: an Apache-2.0 license, full contributor and security docs, a hardened Docker image, and a complete CI pipeline that tests every change and publishes releases automatically. v0.1.1 was about infrastructure — agents can now search the web for 3D models, environments and rigs and import them straight into a live Unity project, plus all the CI/CD and Docker groundwork. v0.1.2 was about packaging and community — licensing, PyPI metadata, issue templates, contributor guides, and release integrity checks. You can now just pip install visora. And here’s the first real demo. A 2-second shot: a Rover-style character from Wuthering Waves throws a flying kick straight into the camera in a desert wasteland. The environment, the rig, the animation and the capture were all built by an AI agent driving a live Unity Editor through Visora — nothing hand-placed. The whole thing was made by Claude Sonnet 5, using about 20% of the 5-hour limit on the $20 plan. So a mid-tier model, for a fraction of a cheap subscription, can already take a scene from empty to finished shot on its own. Right now it’s 2 seconds — deliberately small, to set the floor. The goal is for Visora to grow into something where AI can build full, directed animation sequences: minute-long shots, multiple characters, real rigging, proper timelines. “Make me a cutscene” turning into an actual cutscene. This dropkick is just the starting line.
Visora v0.1.3 — Giving Agents Eyes on Unity Animations So, we just fixed a massive problem. Once I hit merge, a huge weight lifted off my shoulders. It feels like the raw volume of code I write is getting smaller each time, but what actually lands has a massive, cascading impact on the entire system.Until now, whenever an AI agent needed to inspect an animation in Unity, it was basically flying blind. The old approach was either pulling raw curve data (which tells an agent nothing about clipping, silhouette, or visual feel) or recording full video dumps over the HTTP bridge. Video was heavy, expensive on tokens, slow to transfer, and worse: if the camera wasn’t manually lined up in the scene, the character would just walk right out of frame or get clipped halfway through. With Visora v0.1.3, we tackled this head-on by building preview_animation. It’s not just a snapshot tool — it’s a complete visual pipeline designed specifically for agent context budgets. What Actually Changed Under the Hood Trajectory-Aware Auto-Framing (C# Engine Side) Instead of relying on whatever camera happens to be in the scene, Visora now spins up a transient preview camera. Before snapping a single frame, it samples the clip across its timeline, collects every active skinned and mesh renderer, and computes a union bounding sphere for the entire motion trajectory. It places the camera at an ideal 45° vantage point, automatically calculates the optimal distance based on camera FOV, and dynamically compensates for vertical vs. horizontal aspect ratios so tall or wide aspect ratios don’t clip the character’s head or limbs. Smart Keyframe Selection (Python Side) Agents can’t look at 120 raw frames — that would incinerate context windows and latency. We built an intelligent keyframe extractor (preview_keyframes.py) that analyzes the clip curves to find where actual motion happens: curve extrema, zero-crossings, sudden velocity changes, and animation event timestamps. It pins the start and end poses, then fits the most informative frames within a strict frame budget (e.g. 4 to 8 images). Zero-Side-Effect Scene Safety One of the hardest parts of building agent tooling for Unity is engine hygiene. The preview system samples the animation, renders offscreen to a custom RenderTexture, encodes directly to PNG byte buffers, and cleans up after itself. No dummy cameras left in the hierarchy, no dirty scene flags, and character poses are strictly restored to their pre-sampling state. Hardened CI & The Unity Package Gate We also tightened our pre-commit and CI gates. We introduced scripts/check_unity_package.py, compiling the C# package directly against real Unity assemblies with Microsoft.Unity.Analyzers in headless Linux containers. If there’s an obsolete API, a loose memory allocation, or a CA analyzer warning, the build fails before it ever touches a project. It feels great to have this merged and rock-solid. With animation visual inspection out of the way, I’m heading straight to the next item on the Roadmap: Typed Clip, Event, and Camera Authoring!
Editing Animation Clips & Events Hey everyone, continue working on it. Up until now, the agent could only really watch animations—taking previews and checking poses. If a keyframe was off or a transition looked janky, you still had to go into Unity and fix it by hand. Now, the agent can actually edit AnimationClip assets directly. It can add, move, or delete keyframes, tweak curves, and set tangent modes like smooth, linear, or step holds. Giving an AI write access to your animation files is honestly a bit scary—one bad curve and your character turns into a noodle. To keep things safe, Visora now takes an automatic backup of the clip before touching it, and hooks every edit into Unity’s native Undo system. If the agent makes a mess, you can roll it back with a tool call or just hit Ctrl + Z right in the editor. We also added tools to create and remove animation events. This makes it way easier to sync things like hit-stops, camera shake, or footstep sounds to exact frames on the timeline instead of guessing with timers.
Worked on a large animation/character workflow update for Visora. Added dedicated agent workflows for animation authoring, camera/action sequences, rig retargeting, IK, gaze, motion polishing, contact handling and animation QA. Updated the MCP instructions and project docs so agents have a clear workflow for checking rigs, previewing animation, validating motion and handling Humanoid/Generic fallback cases. Implemented new animation tooling around Two-Bone IK, viewport-based effector placement and character gaze. Added support for solving and baking IK/gaze into animation clips, including parameter validation and Unity capability checks.Added a bigger QA layer for animation. This includes temporal motion analysis, curve discontinuity diagnostics, self-intersection checks and comparison of animation previews. Also added contact baking for things like planted feet/hands and camera-subject action tooling for synchronizing character motion with camera impacts. Added atomic animation transactions and improved rollback/backup handling so multiple animation edits can be applied together and reverted safely when something fails. Refactored the Unity-side animation services around shared sampling, curve writing and rollback helpers. Spent a good amount of time hardening all of this against actual Unity edge cases: Edit Mode requirements, unsupported bridge capabilities, invalid parameters, unknown diagnostic values, quaternion discontinuities, tangent preservation and proper exception handling. Added a Unity EditMode integration test suite covering IK, gaze, contact baking and atomic animation transactions, together with a runner script. Expanded the Python unit tests for the new animation tools and failure cases as well.Also reworked Visora’s visual output. Screenshots, animation previews and video frames now use multimodal MCP image blocks and file artifacts instead of dumping Base64 data into the response. Multi-frame previews can generate contact sheets, and full-resolution artifacts stay on disk. After that I focused heavily on MCP context usage. Compact tool definitions reduced the tool catalog payload significantly, diagnostic tools now have limits/filtering for large skeletons and clips, tool results are compacted, duplicate structured output is removed, and several redundant tools/wrappers were merged or deleted. The tool catalog went from 55 tools down to 44. Merged the two separate video capture tools into a single capture_video workflow and reduced the default screenshot resolution to 720p. Inline images are now automatically downscaled while keeping the full-resolution artifact available separately. Finally tuned the default diagnostic dump sizes further so normal tool calls consume much less agent context and larger detailed dumps are requested only when they are actually needed.
Preview Artifacts, Bridge Recovery & Prefab Workflows Added reproducible animation preview artifacts with stored records and comparison tools for repeatable QA.Improved Unity bridge recovery during reloads/recompiles, added retry hints and safer timeout handling. Added real Unity E2E animation fixtures and reorganized the test suite.Finished the v0.1.3 release, refreshed the README/docs, and started v0.1.4 prefab workflows. Added inspect_prefab_asset and inspect_prefab_overrides with native Unity services, support for nested/variant/model prefabs, structured override inspection, stable IDs, and Python/integration/EditMode test coverage.
Ships:
Built Visora, an MCP server that gives AI agents reliable high-level control over the Unity Editor. The hardest part was making animation and editor workflows safe and predictable: IK, gaze, retargeting, animation QA, bridge reload recovery, prefab inspection, rollback, and reproducible preview artifacts. I’m most proud of how much of the Unity-side behavior is covered by real EditMode/integration tests instead of only mocked Python tests. To test it, use the GitHub release/source, follow the setup guide, connect Visora to a Unity project, and try the MCP tools for animation, scene inspection, previews, or prefab inspection....
|
1793004937.6767473
|
1793091337.6767473
|
|
57106
|
Mini arduino car by @TheLemonEater | Stardance
|
TheLemonEater
|
1
|
1.25
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T15:31:16Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I tried to build a arduino based car with a ultra sonic sensor so it can detect objects in front of it. For the motors i reused some from a old drone but that is the problem about my project now because the motors where from a drone they were made just to spin with no resistence but when you put them on the ground they need a lot of power to even push the car a little and because i also used a step by step motor module, the motors arent getting enough power so thats why only 2 motors can spin at the same time even if they are in the air. I would have fixed the problem but stardance is almost ending and i have to ship the project.", "repo": "https://github.com/TheLemonEater312/arduino-obstacle-avoiding-car/blob/main/README.md", "demo": ""}]...
|
[{"post_id": 76187, "ts": "202 [{"post_id": 76187, "ts": "2026-10-02T16:53:09Z", "hours": 1.25, "text": "Im back and this time i dissasembled the car because im going to use 2 dc 6v motors so it can actually move now. I also soldered some wires to a dc motor module so i can connect it easier to the arduino and motors. I want to warn anybody that wants to dissasemble a water proof care that it would be so hard and messy because all of the components are covered in silicone(i think) and glue as you can see in the photo."}, {"post_id": 74470, "ts": "2026-09-27T13:29:11Z", "hours": 1.4028, "text": "i had to scrap the rc car idea beacus i dont know how but the ir receptor dosent work but i switched to the first idea that i had and i used a sensor and now when it sees a object in a range of 20cm it will try to go around( i chose 20cm beacus it turns right or left really hard). I mounted everything on the “case” of the car but i left the arduino out beacus i still dont have a way to power it."}, {"post_id": 71144, "ts": "2026-09-20T10:56:03Z", "hours": 1.0853, "text": "i made a wheel for the mototrs. It isnt the best design but i think it will work for a demo"}, {"post_id": 70564, "ts": "2026-09-19T11:31:28Z", "hours": 1.1836, "text": "i mounted everything on the “case” and now i just need to find a way to power the arduino nano beacus the battery that i have only has 3.7v and it isnt enough to power the module and the arduino nano"}, {"post_id": 66494, "ts": "2026-09-12T10:24:10Z", "hours": 1.4956, "text": "i made a case for the car but as you can see i am not that good at 3d modeling but it will do the job"}, {"post_id": 60840, "ts": "2026-09-03T13:48:28Z", "hours": 1.15, "text": "i tested it with more motor,made a battery holder so it can have more power and added a remote but i tested it with only one motor"}, {"post_id": 60340, "ts": "2026-09-02T16:52:48Z", "hours": 0.6544, "text": "tested the reused motors and combined them with a arduino nano and a stepper model module"}]...
|
Title: Mini arduino car by @TheLemonEater | Starda Title: Mini arduino car by @TheLemonEater | Stardance
Devlogs:
tested the reused motors and combined them with a arduino nano and a stepper model module
i tested it with more motor,made a battery holder so it can have more power and added a remote but i tested it with only one motor
i made a case for the car but as you can see i am not that good at 3d modeling but it will do the job
i mounted everything on the “case” and now i just need to find a way to power the arduino nano beacus the battery that i have only has 3.7v and it isnt enough to power the module and the arduino nano
i made a wheel for the mototrs. It isnt the best design but i think it will work for a demo
i had to scrap the rc car idea beacus i dont know how but the ir receptor dosent work but i switched to the first idea that i had and i used a sensor and now when it sees a object in a range of 20cm it will try to go around( i chose 20cm beacus it turns right or left really hard). I mounted everything on the “case” of the car but i left the arduino out beacus i still dont have a way to power it.
Im back and this time i dissasembled the car because im going to use 2 dc 6v motors so it can actually move now. I also soldered some wires to a dc motor module so i can connect it easier to the arduino and motors. I want to warn anybody that wants to dissasemble a water proof care that it would be so hard and messy because all of the components are covered in silicone(i think) and glue as you can see in the photo.
Ships:
I tried to build a arduino based car with a ultra sonic sensor so it can detect objects in front of it. For the motors i reused some from a old drone but that is the problem about my project now because the motors where from a drone they were made just to spin with no resistence but when you put them on the ground they need a lot of power to even push the car a little and because i also used a step by step motor module, the motors arent getting enough power so thats why only 2 motors can spin at the same time even if they are in the air. I would have fixed the problem but stardance is almost ending and i have to ship the project....
|
1793004936.5292099
|
1793091336.5292099
|
|
51971
|
MeshTree by @Trident | Stardance
|
Trident
|
1
|
25.6
|
335
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T11:51:28Z", "hours": 25.0, "multiplier": 13.36, "payout": 335, "blessing": "neutral", "text": "MeshTree is a macOS photogrammetry app that turns photos into textured 3D models. To test, Download MeshTree.zip from GitHub Releases, load your photo folder, and click Start Reconstruction. If MacOS blocks it, run xattr -cr /path/to/MeshTree.app or go to System Settings > Privacy & Security, scroll down to the Security section, and click Open Anyway.", "repo": "https://github.com/raiyan-islam-dev/Meshtree", "demo": "https://github.com/raiyan-islam-dev/Meshtree/releases/latest"}]...
|
[{"post_id": 77910, "ts": "202 [{"post_id": 77910, "ts": "2026-10-08T18:52:12Z", "hours": 0.5994, "text": "got rejected for the 3rd time😭 reshipping again🤞"}, {"post_id": 69593, "ts": "2026-09-17T11:37:04Z", "hours": 4.3556, "text": "Added a remove button to remove individual pictures. Fixed some bugs and polished a bit, I’m using the same photoset each time as a benchmark ik it looks a bit odd😭. Now shipping for the first time 🤞"}, {"post_id": 64418, "ts": "2026-09-08T19:44:00Z", "hours": 10.0856, "text": "Been a long time since my last devlog, was busy with exams. I realised the blur detection wasn’t working properly, soo I’ll have to work on that. I also noticed it’s using a massive amount of memory for a relatively small render, so most of the time went to just testing how the blur detection actually detects a blur and the memory load, and watching activity monitor while rendering, so progress might seem slow. But I have plans to make the memory situation better by using a chunk system where only a small section loads and renders soo there’s less load on memory. Also, since I tested a bunch of renders from objects around my house and our car, taking the pictures was a massive pain, so I’ll work on MeshCam so I can take pictures automatically at a set interval. I also have plans to add video support tho I haven’t figured out anything for that."}, {"post_id": 54772, "ts": "2026-08-25T21:35:59Z", "hours": 8.4114, "text": "Been a while since my last devlog, i’ve been busy with other things, but still managed to give some time to MeshTree. Last time I got Object Capture working with a very basic UI, just to see if the pipeline works or not, thankfully it did. Since then i’ve added a ton of features : -Quality presets(Low,Medium,High,Max,Ultra) -Cancel button -Blurry/low res image detection -3D model viewer -Progress Bar -.usdz export -A bunch of UI tweaks (this one alone took a surprising amount of time) Up next:MeshCam:- I’m planning a companion app called MeshCam. The idea is it will capture photos at a user selected interval and log in motion data, all in a single file that the user can just airdrop to their mac and MeshTree, and use the motion sensor data for even higher quality models"}, {"post_id": 51840, "ts": "2026-08-21T18:20:43Z", "hours": 2.335, "text": "Object Capture is working, successfully generated the first local .usdz 3D model from an image folder. Had some issues with WakaTime logging time, but after a bit of troubleshooting, it’s now fixed."}]...
|
Title: MeshTree by @Trident | Stardance
Devlogs:
Title: MeshTree by @Trident | Stardance
Devlogs:
Object Capture is working, successfully generated the first local .usdz 3D model from an image folder. Had some issues with WakaTime logging time, but after a bit of troubleshooting, it’s now fixed.
Been a while since my last devlog, i’ve been busy with other things, but still managed to give some time to MeshTree. Last time I got Object Capture working with a very basic UI, just to see if the pipeline works or not, thankfully it did. Since then i’ve added a ton of features : -Quality presets(Low,Medium,High,Max,Ultra) -Cancel button -Blurry/low res image detection -3D model viewer -Progress Bar -.usdz export -A bunch of UI tweaks (this one alone took a surprising amount of time) Up next:MeshCam:- I’m planning a companion app called MeshCam. The idea is it will capture photos at a user selected interval and log in motion data, all in a single file that the user can just airdrop to their mac and MeshTree, and use the motion sensor data for even higher quality models
Been a long time since my last devlog, was busy with exams. I realised the blur detection wasn’t working properly, soo I’ll have to work on that. I also noticed it’s using a massive amount of memory for a relatively small render, so most of the time went to just testing how the blur detection actually detects a blur and the memory load, and watching activity monitor while rendering, so progress might seem slow. But I have plans to make the memory situation better by using a chunk system where only a small section loads and renders soo there’s less load on memory. Also, since I tested a bunch of renders from objects around my house and our car, taking the pictures was a massive pain, so I’ll work on MeshCam so I can take pictures automatically at a set interval. I also have plans to add video support tho I haven’t figured out anything for that.
Added a remove button to remove individual pictures. Fixed some bugs and polished a bit, I’m using the same photoset each time as a benchmark ik it looks a bit odd😭. Now shipping for the first time 🤞
got rejected for the 3rd time😭 reshipping again🤞
Ships:
MeshTree is a macOS photogrammetry app that turns photos into textured 3D models. To test, Download MeshTree.zip from GitHub Releases, load your photo folder, and click Start Reconstruction. If MacOS blocks it, run xattr -cr /path/to/MeshTree.app or go to System Settings > Privacy & Security, scroll down to the Security section, and click Open Anyway....
|
1793004935.4030545
|
1793091335.4030545
|
|
51969
|
coffeeTracker by @skyFonix | Stardance
|
skyFonix
|
1
|
38.0
|
388
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T18:48:25Z", "hours": 38.0, "multiplier": 8.44, "payout": 388, "blessing": "neutral", "text": "coffeeTracker The reason The reason I made this project was because my dad asked me whether I could develop a solution for tracking coffee usage at his workplace, because it was a real mess without a central system. Features User account registration without any permission First user to register automatically becomes the admin Everyone else has to be approved by the admin if the account wasn’t created from the admin dashboard The whole system works based on pools, every coffee machine at an office is considered a pool, each of them have a separate transaction list. Every user has a different balance for all of them! Clear UI with big buttons for the four main functions Drink (“Ivás”): The user can either choose a predefined strength of coffee or can enter a custom amount in gramms, people can only drink from a pool if the user has enough money to pay for the coffee and the pool has enough coffee to drink from Add coffee (“Kávé hozzáadása”): The user can register coffee that they bought with their own money!. They need to enter the amount and cost of it! Add money (“Pénz hozzáadása”): The user can register a money only transaction, the system treats it differently to a coffee add transaction, since it doesn’t physically add coffee to the pool Use Money (“Pénz felhasználása”): Since the system treats money only and coffee transactions this serves the function of using up the funds from money only transactions in the pool! Any transaction can be edited: Users can only edit their transactions for a limited time, while admins can edit all transactions at any point in time right from the dashboard! Profile pictures: Any user can set a profile picture, it has no usefulness, but it’s fun. Admins can administer profile pics to any user these pictures can also be removed! Upcoming features: Statistics: These aren’t implemented yet, because I’m not sure what will be needed in everyday usage, so I decided it’s better to let the environment decide. Difficulties: One of the biggest challenges of this project was the logic behind handling and updating transactions and pool balances I also found working with modals a bit inconvenient and ugly at times, but got used to them by the end Demo: https://democoffee.cigoria.eu ADMIN User: demoadmin Password: password USER User: demouser Password: password1", "repo": "https://github.com/FonixPython/coffeeTracker", "demo": "https://democoffee.cigoria.eu"}]...
|
[{"post_id": 78795, "ts": "202 [{"post_id": 78795, "ts": "2026-10-11T16:58:47Z", "hours": 6.9053, "text": "Final devlog before first ship! I translated the whole thing to Hungarian because the environment that it will be used in required it! I implemented a money usage transaction I also implemented editing of transactions for both users and admins, admins can edit transaction anytime, users can only edit transactions the hour after it was made! QR support was also implemented, these can be printed out and when scanned they bring the user right to the correct pool for quick transactions"}, {"post_id": 71142, "ts": "2026-09-20T10:52:55Z", "hours": 9.0417, "text": "It seems like I’m still keeping my track record of not making enough devlogs. Things that have changed since last time: I added support for profile pictures A top bar was added for access to the admin panel, user editor and the logout button! I started making the home page functional, adding coffee, adding money and drinking coffee are now functional! Challenging things: As per usual my procrastination did not help the progress of the project I spent the last half an hour figuring out why the checks for drinking coffee weren’t working, it turned out to be quite a dumb mistake Things left to do: Use money from pool function Edit transaction for users and admins Generate QR code for pool with a printable .pdf Statistics: Coffee drinking leader board Coffee buying leader board Monthly drinking summaries Drinking frequency stats throughout the day Display amount of money actually spent on coffee and amount of money that’s just money"}, {"post_id": 67364, "ts": "2026-09-13T13:25:23Z", "hours": 2.86, "text": "Accounts can finally be properly edited from the admin panel, next up is the profile picture support!"}, {"post_id": 66777, "ts": "2026-09-12T17:43:33Z", "hours": 9.7572, "text": "Damn it, I’m devloging almost 10 hours of work again! I everything I did was on the admin page side of things, forgot to devlog tho… Admin can create, edit and delete pools Admin can create, edit and delete coffee variations (how strong a coffee can be) Admin can register, accept, edit and delete users Currently the most challenging part of this project is battling my ADHD brain and trying not to procrastinate on it. :("}, {"post_id": 53987, "ts": "2026-08-24T18:23:40Z", "hours": 6.5903, "text": "Big devlog - backend work mostly finished Things added Authentication systems with tokens stored inside of a cookie CRUD for pools for admins CRUD for transactions for admins and users CRUD for variations for admins Frontend Tasks Connect the login page to backend Connect user dashboard to backend Add modals to user dashboard Add notifications to user dashboard Connect admin dashboard to backend Create statistics diagrams Backend Tasks Profile picture support, db table already there, but uploads and such aren’t yet implemented, I’m unsure of when to handle them"}, {"post_id": 51257, "ts": "2026-08-20T19:53:10Z", "hours": 1.8378, "text": "Finished with the basic design of the user dashboard! Also optimized it for mobile devices, since that’s going to be the primary target device!"}, {"post_id": 51182, "ts": "2026-08-20T18:00:46Z", "hours": 0.8058, "text": "Login panel design finished"}, {"post_id": 51092, "ts": "2026-08-20T16:17:02Z", "hours": 0.4714, "text": "Finished with schema design!"}]...
|
Title: coffeeTracker by @skyFonix | Stardance
Dev Title: coffeeTracker by @skyFonix | Stardance
Devlogs:
Finished with schema design!
Login panel design finished
Finished with the basic design of the user dashboard! Also optimized it for mobile devices, since that’s going to be the primary target device!
Big devlog - backend work mostly finished Things added Authentication systems with tokens stored inside of a cookie CRUD for pools for admins CRUD for transactions for admins and users CRUD for variations for admins Frontend Tasks Connect the login page to backend Connect user dashboard to backend Add modals to user dashboard Add notifications to user dashboard Connect admin dashboard to backend Create statistics diagrams Backend Tasks Profile picture support, db table already there, but uploads and such aren’t yet implemented, I’m unsure of when to handle them
Damn it, I’m devloging almost 10 hours of work again! I everything I did was on the admin page side of things, forgot to devlog tho… Admin can create, edit and delete pools Admin can create, edit and delete coffee variations (how strong a coffee can be) Admin can register, accept, edit and delete users Currently the most challenging part of this project is battling my ADHD brain and trying not to procrastinate on it. :(
Accounts can finally be properly edited from the admin panel, next up is the profile picture support!
It seems like I’m still keeping my track record of not making enough devlogs. Things that have changed since last time: I added support for profile pictures A top bar was added for access to the admin panel, user editor and the logout button! I started making the home page functional, adding coffee, adding money and drinking coffee are now functional! Challenging things: As per usual my procrastination did not help the progress of the project I spent the last half an hour figuring out why the checks for drinking coffee weren’t working, it turned out to be quite a dumb mistake Things left to do: Use money from pool function Edit transaction for users and admins Generate QR code for pool with a printable .pdf Statistics: Coffee drinking leader board Coffee buying leader board Monthly drinking summaries Drinking frequency stats throughout the day Display amount of money actually spent on coffee and amount of money that’s just money
Final devlog before first ship! I translated the whole thing to Hungarian because the environment that it will be used in required it! I implemented a money usage transaction I also implemented editing of transactions for both users and admins, admins can edit transaction anytime, users can only edit transactions the hour after it was made! QR support was also implemented, these can be printed out and when scanned they bring the user right to the correct pool for quick transactions
Ships:
coffeeTracker The reason The reason I made this project was because my dad asked me whether I could develop a solution for tracking coffee usage at his workplace, because it was a real mess without a central system. Features User account registration without any permission First user to register automatically becomes the admin Everyone else has to be approved by the admin if the account wasn’t created from the admin dashboard The whole system works based on pools, every coffee machine at an office is considered a pool, each of them have a separate transaction list. Every user has a different balance for all of them! Clear UI with big buttons for the four main functions Drink (“Ivás”): The user can either choose a predefined strength of coffee or can enter a custom amount in gramms, people can only drink from a pool if the user has enough money to pay for the coffee and the pool has enough coffee to drink from Add coffee (“Kávé hozzáadása”): The user can register coffee that they bought with their own money!. They need to enter the amount and cost of it! Add money (“Pénz hozzáadása”): The user can register a money only transaction, the system treats it differently to a coffee add transaction, since it doesn’t physically add coffee to the pool Use Money (“Pénz felhasználása”): Since the system treats money only and coffee transactions this serves the function of using up the funds from money only transactions in the pool! Any transaction can be edited: Users can only edit their transactions for a limited time, while admins can edit all transactions at any point in time right from the dashboard! Profile pictures: Any user can set a profile picture, it has no usefulness, but it’s fun. Admins can administer profile pics to any user these pictures can also be removed! Upcoming features: Statistics: These aren’t implemented yet, because I’m not sure what will be needed in everyday usage, so I decided it’s better to let the environment decide. Difficulties: One of the biggest challenges of this project was the logic behind handling and updating transactions and pool balances I also found working with modals a bit inconvenient and ugly at times, but got used to them by the end Demo: https://democoffee.cigoria.eu ADMIN User: demoadmin Password: password USER User: demouser Password: password1...
|
1793004934.0955114
|
1793091334.0955114
|
|
20987
|
Pancake FRC Turret by @strixt | Stardance
|
strixt
|
1
|
46.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T23:35:12Z", "hours": 46.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I cadded an FRC Turret designed around the 2026 game REBUILT. This project started off as a personal project, just a cad but after I finished I convinced my team to let me build it but I shipped it now because the parts will come after stardance :(. Everything you need to know about this turret is in the google doc below: https://docs.google.com/document/d/19otRmG-d0zHCSDyZ5glDNmW7cP3afZkpb5Q3BmI4kPE/edit?tab=t.0 (P.S. to the mod reading this is it possible i can get my hours back? I didnt know that you had to devlog every 10 hours)", "repo": "https://github.com/strixt1/FRC-Pancake-Style-Turret-", "demo": ""}]...
|
[{"post_id": 49492, "ts": "202 [{"post_id": 49492, "ts": "2026-08-18T11:07:52Z", "hours": 40.1572, "text": "Its been a long time huh. I basically finished the whole thing, however to catch yall up to speed I have created the ultimate devlog. PLS look at this google doc if you can. I made a whole essentially an ESSAY trying to make a recap with at most info as needed but its too long to post so here is the google doc with it in https://docs.google.com/document/d/19otRmG-d0zHCSDyZ5glDNmW7cP3afZkpb5Q3BmI4kPE/edit?tab=t.0 4"}, {"post_id": 27641, "ts": "2026-07-13T12:19:20Z", "hours": 5.3853, "text": "The Turret Sketch of everything is complete. Turret Gearing: The turret gearing is geared to 1:56.25, powered by one kraken x44. The turret is supported by 4 box tubes (2 1x1 and 2 2x1) Shooter Geometry: Using very similar to team 4414. 3 inch flywheel/ stealth wheel with a 1 inch sushi roller on the other side powered 1:1 by 2 kraken x60s. 1 inch compression between the roller and the flywheel. Bottom bearing is an 8 inch bearing for dye rotor. Wiring: Wiring a turret can be difficult, since no slip ring means no free rotation. That’s why I have this e-chain. This allows the turret to spin a 360 full rotation before spinning back. the e-chain is constantly tensioned with an 8 lb spring to help it reset its position when the turret needs it"}]...
|
Title: Pancake FRC Turret by @strixt | Stardance
Title: Pancake FRC Turret by @strixt | Stardance
Devlogs:
The Turret Sketch of everything is complete. Turret Gearing: The turret gearing is geared to 1:56.25, powered by one kraken x44. The turret is supported by 4 box tubes (2 1x1 and 2 2x1) Shooter Geometry: Using very similar to team 4414. 3 inch flywheel/ stealth wheel with a 1 inch sushi roller on the other side powered 1:1 by 2 kraken x60s. 1 inch compression between the roller and the flywheel. Bottom bearing is an 8 inch bearing for dye rotor. Wiring: Wiring a turret can be difficult, since no slip ring means no free rotation. That’s why I have this e-chain. This allows the turret to spin a 360 full rotation before spinning back. the e-chain is constantly tensioned with an 8 lb spring to help it reset its position when the turret needs it
Its been a long time huh. I basically finished the whole thing, however to catch yall up to speed I have created the ultimate devlog. PLS look at this google doc if you can. I made a whole essentially an ESSAY trying to make a recap with at most info as needed but its too long to post so here is the google doc with it in https://docs.google.com/document/d/19otRmG-d0zHCSDyZ5glDNmW7cP3afZkpb5Q3BmI4kPE/edit?tab=t.0 4
Ships:
I cadded an FRC Turret designed around the 2026 game REBUILT. This project started off as a personal project, just a cad but after I finished I convinced my team to let me build it but I shipped it now because the parts will come after stardance :(. Everything you need to know about this turret is in the google doc below: https://docs.google.com/document/d/19otRmG-d0zHCSDyZ5glDNmW7cP3afZkpb5Q3BmI4kPE/edit?tab=t.0 (P.S. to the mod reading this is it possible i can get my hours back? I didnt know that you had to devlog every 10 hours)...
|
1793004932.98335
|
1793091332.98335
|
|
30861
|
bench power supply by @SohamKaran | Stardance
|
SohamKaran
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T16:23:28Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a dc power supply which can run your projects test prototypes and other kind of stuffs . generally a dc variable power supply cost more than 100 dollars but i build it under that budget", "repo": "https://github.com/sohamboyythrdh6/bench-power-supply/blob/main/README.md", "demo": ""}]...
|
[{"post_id": 67467, "ts": "202 [{"post_id": 67467, "ts": "2026-09-13T16:06:22Z", "hours": 3.2769, "text": "after getting all the components i started building this project after hour of work finally showedup and now i ready to ship this project"}, {"post_id": 26663, "ts": "2026-07-11T16:35:28Z", "hours": 4.1675, "text": "after finding that my desk has no variable power supply i started thinking to build this project at first i also watch some tutorials then chose the parts for building this project later i started building the case for this project which took most of my time after done this i started working on my repo i create the bom write README and add all other essential files and after checking everything i am ready to sent this project for review"}]...
|
Title: bench power supply by @SohamKaran | Stardan Title: bench power supply by @SohamKaran | Stardance
Devlogs:
after finding that my desk has no variable power supply i started thinking to build this project at first i also watch some tutorials then chose the parts for building this project later i started building the case for this project which took most of my time after done this i started working on my repo i create the bom write README and add all other essential files and after checking everything i am ready to sent this project for review
after getting all the components i started building this project after hour of work finally showedup and now i ready to ship this project
Ships:
i made a dc power supply which can run your projects test prototypes and other kind of stuffs . generally a dc variable power supply cost more than 100 dollars but i build it under that budget...
|
1793004931.8737905
|
1793091331.8737905
|
|
57087
|
IMPROVED NUMBER GUESSING GAME by @Dhanush_Mundra | IMPROVED NUMBER GUESSING GAME by @Dhanush_Mundra | Stardance...
|
Dhanush_Mundra
|
1
|
2.0
|
6
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T16:39:18Z", "hours": 2.0, "multiplier": 3.52, "payout": 6, "blessing": "neutral", "text": "ok ok ok. so I have finally made my improved version of number guessing game. I earlier shipped it but many people told me what I could do more so I added the system of hint in which the user can take hint if they want to after a certain number of chances done in a particular level. I also modified the GUI which was last time the main point of the people. the challenging part was of the logic and to make the GUI better with the use of html and css. It was a great experience to do work with different languages and make a single project. I am looking forward to do more changes in this project but this is my first project and I am very proud of this. also I was not able to give it enough time because I am working. on other bigger projects as you can see on my stardance account. I am hoping you to rate as good as you can because this project is very close to my heart and as a 13 year old I feel that I am going on the right track and doing great. so now looking for your support for my hardwork THANK YOU FOR READING AND VIEWING MY PROJECT!!!", "repo": "https://github.com/mundradhanush-lgtm/NUMBER_GUESSING_GAME", "demo": "https://mundradhanush-lgtm.github.io/NUMBER_GUESSING_GAME/"}]...
|
[{"post_id": 67303, "ts": "202 [{"post_id": 67303, "ts": "2026-09-13T11:41:02Z", "hours": 0.2669, "text": "ok so I have added the gui and my project is ready to be uploaded. I made the gui much much better and much more easy to use."}, {"post_id": 59532, "ts": "2026-09-01T12:20:57Z", "hours": 1.5706, "text": "okay so I have already made this project (you can just visit my older NUMBER GUESSING GAME PROJECT by going on my profile and projects) but the thing I am working on is the topic of hint and changing th GUI and if possible the feature of public leaderboard."}]...
|
Title: IMPROVED NUMBER GUESSING GAME by @Dhanush_M Title: IMPROVED NUMBER GUESSING GAME by @Dhanush_Mundra | Stardance
Devlogs:
okay so I have already made this project (you can just visit my older NUMBER GUESSING GAME PROJECT by going on my profile and projects) but the thing I am working on is the topic of hint and changing th GUI and if possible the feature of public leaderboard.
ok so I have added the gui and my project is ready to be uploaded. I made the gui much much better and much more easy to use.
Ships:
ok ok ok. so I have finally made my improved version of number guessing game. I earlier shipped it but many people told me what I could do more so I added the system of hint in which the user can take hint if they want to after a certain number of chances done in a particular level. I also modified the GUI which was last time the main point of the people. the challenging part was of the logic and to make the GUI better with the use of html and css. It was a great experience to do work with different languages and make a single project. I am looking forward to do more changes in this project but this is my first project and I am very proud of this. also I was not able to give it enough time because I am working. on other bigger projects as you can see on my stardance account. I am hoping you to rate as good as you can because this project is very close to my heart and as a 13 year old I feel that I am going on the right track and doing great. so now looking for your support for my hardwork THANK YOU FOR READING AND VIEWING MY PROJECT!!!...
|
1793004930.7551985
|
1793091330.7551985
|
|
57085
|
expenditureAI by @ahnafiscool | Stardance
|
ahnafiscool
|
2
|
14.0
|
78
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-14T12:13:39Z", "hours": 8.0, "multiplier": 4.22, "payout": 35, "blessing": "neutral", "text": "This ship is to account for the few hours I could not log into the previous ship after some changes were requested. I almost forgot about cuz I was working on other YSWSs and stardance is coming to an end too. The major changes I made were updating of the service page with globes and a few redesigns + Added a new homepage/landing page.", "repo": "https://github.com/AhnafPro/ExpenditureAI/", "demo": "https://expenditureai.wasmer.app/"}, {"ship_num": 2, "ts": "2026-09-16T18:31:36Z", "hours": 6.0, "multiplier": 7.37, "payout": 43, "blessing": "neutral", "text": "A simple yet unique project idea that came in my mind at the start of this month has finally reached it’s first milestone. Here it is the first ship and the first beta preview of the project… The challenging part was creating the logic and the algorithm, at first I thought of using some AI api but then I realized that most of the credit would go to the AI not me so I came up with such a plan. The fun part was actually designing the UI of the website because It was cool to experiment with countless design and I’m glad of how it looks now. I’ve tried my best to keep the documentation and presentation side well so that each devlog, readme etc. were easy to understand by a glance. PLEASE 🙏 keep in mind that this project is still in development and for sure lacks options under “active expenses” as it just to give a peek on what I made. So please, do not rate the project negatively saying that there were less options, or outputs were not from real AI etc… Thank You!", "repo": "https://github.com/AhnafPro/ExpenditureAI/", "demo": "https://expenditureai.wasmer.app/"}]...
|
[{"post_id": 74720, "ts": "202 [{"post_id": 74720, "ts": "2026-09-28T02:13:38Z", "hours": 8.3244, "text": "We are almost dead end of the stardance and I hope this is gonna be my last devlog. Last time I had to make changes since AI use went over 30%, so I had to either add new features or rewrite the codes myself. Here are the changes: Added: New landing page (made purely out of HTML/CSS) Custom globe model with major regions marked (Made in sculptGL and textured in Paint3D, used google’s model-viewer to display) Region code legend marked in color emoji squares. Notes (for storing texts in local storage) Rewrote: Currency converter (redesinged with bare HTML/CSS and paired with existing script.) New README (reference from othneildrew/Best-README-Template, and Ileriayo/markdown-badges) note: for now the chart is not functional, I will fix it later."}, {"post_id": 69267, "ts": "2026-09-16T18:16:34Z", "hours": 0.5953, "text": "And here it is, finally forged a clean and simple README.md page. I have not got anything to say since it is the last log before I ship. So better read the ship message or check down other logs…"}, {"post_id": 68520, "ts": "2026-09-15T07:55:10Z", "hours": 0.3878, "text": "I made a small change before the ship. I have added a small widget and a legend for the country codes inside the forcast box. The widget is able to convert the other country rates to USD on a rough estimate. Along with that the forcast changes its currency too now. The analyze button now works manually unlike before where it just instantly show the output. After this I’ll have to upload it to infinity free for the hosting. I might make another log when I’m done writing the README.md. CYA…"}, {"post_id": 68494, "ts": "2026-09-15T07:02:06Z", "hours": 0.3819, "text": "The flowcharts and logic for the food delivery options are done. This one I made it on figma and as you can see it does not look as good as the one on the right (made on draw.io), plus it was kinda sluggish to make it cuz randomly the figma page gets corrupted and the texts get interchanged in the boxes. And the saddest thing was I spent an hour on it but the extension only recorded 22 mins. But, i’ve finally done it. I think I will ship it now for everyone to test it before I progress more into it."}, {"post_id": 67998, "ts": "2026-09-14T10:49:18Z", "hours": 0.2561, "text": "After juggling with lots of tight time management, I was able to finish the algorithm logic for the music subscription options. I made it on draw.io and honestly it was not that quick and easy as it looks. I will be switching to figma for the next data set since doing all these on draw.io won’t log anytime but it will get more complicated make these flowchart compared to how smooth it is on draw. I must get back to make another chart, CYA!"}, {"post_id": 66069, "ts": "2026-09-11T17:15:29Z", "hours": 0.915, "text": "Unfortunately, I had lost my streak… cuz I was having exams and stuff so I could not really do much until today and made a bit of progress on the UI side, nothings yet funtional do but this is how the finsihed UI is gonna look like. I might have to skip few more days until I get enough time to make my own algoritm since I’m not planning to use any kind of pre-made AI apis or any help from someone’s AI. It’s gonna be based on all present/given data. Cya"}, {"post_id": 63097, "ts": "2026-09-06T18:19:27Z", "hours": 1.0053, "text": "Everything is still static, nothing is yet functional but it soon will be. For now I have added heading and other UI components, skeleton etc. I have tried to make it look as professional looking as I can with simple fonts and good placement of texts. I did not make much progress in these days since my exams are coming up and tmrw is my first term exam. Everybody please pray for me, tysm. gtg sleep now, bye"}, {"post_id": 62001, "ts": "2026-09-05T06:31:19Z", "hours": 1.0628, "text": "I have completely made the layout, and I bet it looks really clean. And I have added hover animations to all of it. For the large boxes, those will have a card hover animation where it follows your pointer if you hover over them, and the smaller boxes will have a simple yet smooth pop-up hover animation. I have marked each of the boxes in different colors so that it can be understood what each of the section does: Red: It shows our total cost forecast, month, and what percentage each item costs. Blue: It is where you add your items along with cost. Black: Here is where the algorithm or AI gives the output Yellow: Bar graph comparison between our input and ai/algorithm saving suggestions and shows the total savings amount. cya until next log…"}, {"post_id": 60856, "ts": "2026-09-03T14:13:34Z", "hours": 1.2794, "text": "Just started this project, I am still making the layout and stuffs. I’m thinking of going for a clean, simple and minimalistic design for the site. And I have plans to make a landing page for it later on when I finish the actual project’s site (this one). Though I have to give it a sleek look, I don’t want to make it look dark and boring so there will be little tweaks to the design you might see on next log…"}]...
|
Title: expenditureAI by @ahnafiscool | Stardance
Title: expenditureAI by @ahnafiscool | Stardance
Devlogs:
Just started this project, I am still making the layout and stuffs. I’m thinking of going for a clean, simple and minimalistic design for the site. And I have plans to make a landing page for it later on when I finish the actual project’s site (this one). Though I have to give it a sleek look, I don’t want to make it look dark and boring so there will be little tweaks to the design you might see on next log…
I have completely made the layout, and I bet it looks really clean. And I have added hover animations to all of it. For the large boxes, those will have a card hover animation where it follows your pointer if you hover over them, and the smaller boxes will have a simple yet smooth pop-up hover animation. I have marked each of the boxes in different colors so that it can be understood what each of the section does: Red: It shows our total cost forecast, month, and what percentage each item costs. Blue: It is where you add your items along with cost. Black: Here is where the algorithm or AI gives the output Yellow: Bar graph comparison between our input and ai/algorithm saving suggestions and shows the total savings amount. cya until next log…
Everything is still static, nothing is yet functional but it soon will be. For now I have added heading and other UI components, skeleton etc. I have tried to make it look as professional looking as I can with simple fonts and good placement of texts. I did not make much progress in these days since my exams are coming up and tmrw is my first term exam. Everybody please pray for me, tysm. gtg sleep now, bye
Unfortunately, I had lost my streak… cuz I was having exams and stuff so I could not really do much until today and made a bit of progress on the UI side, nothings yet funtional do but this is how the finsihed UI is gonna look like. I might have to skip few more days until I get enough time to make my own algoritm since I’m not planning to use any kind of pre-made AI apis or any help from someone’s AI. It’s gonna be based on all present/given data. Cya
After juggling with lots of tight time management, I was able to finish the algorithm logic for the music subscription options. I made it on draw.io and honestly it was not that quick and easy as it looks. I will be switching to figma for the next data set since doing all these on draw.io won’t log anytime but it will get more complicated make these flowchart compared to how smooth it is on draw. I must get back to make another chart, CYA!
The flowcharts and logic for the food delivery options are done. This one I made it on figma and as you can see it does not look as good as the one on the right (made on draw.io), plus it was kinda sluggish to make it cuz randomly the figma page gets corrupted and the texts get interchanged in the boxes. And the saddest thing was I spent an hour on it but the extension only recorded 22 mins. But, i’ve finally done it. I think I will ship it now for everyone to test it before I progress more into it.
I made a small change before the ship. I have added a small widget and a legend for the country codes inside the forcast box. The widget is able to convert the other country rates to USD on a rough estimate. Along with that the forcast changes its currency too now. The analyze button now works manually unlike before where it just instantly show the output. After this I’ll have to upload it to infinity free for the hosting. I might make another log when I’m done writing the README.md. CYA…
And here it is, finally forged a clean and simple README.md page. I have not got anything to say since it is the last log before I ship. So better read the ship message or check down other logs…
We are almost dead end of the stardance and I hope this is gonna be my last devlog. Last time I had to make changes since AI use went over 30%, so I had to either add new features or rewrite the codes myself. Here are the changes: Added: New landing page (made purely out of HTML/CSS) Custom globe model with major regions marked (Made in sculptGL and textured in Paint3D, used google’s model-viewer to display) Region code legend marked in color emoji squares. Notes (for storing texts in local storage) Rewrote: Currency converter (redesinged with bare HTML/CSS and paired with existing script.) New README (reference from othneildrew/Best-README-Template, and Ileriayo/markdown-badges) note: for now the chart is not functional, I will fix it later.
Ships:
A simple yet unique project idea that came in my mind at the start of this month has finally reached it’s first milestone. Here it is the first ship and the first beta preview of the project… The challenging part was creating the logic and the algorithm, at first I thought of using some AI api but then I realized that most of the credit would go to the AI not me so I came up with such a plan. The fun part was actually designing the UI of the website because It was cool to experiment with countless design and I’m glad of how it looks now. I’ve tried my best to keep the documentation and presentation side well so that each devlog, readme etc. were easy to understand by a glance. PLEASE 🙏 keep in mind that this project is still in development and for sure lacks options under “active expenses” as it just to give a peek on what I made. So please, do not rate the project negatively saying that there were less options, or outputs were not from real AI etc… Thank You!
This ship is to account for the few hours I could not log into the previous ship after some changes were requested. I almost forgot about cuz I was working on other YSWSs and stardance is coming to an end too. The major changes I made were updating of the service page with globes and a few redesigns + Added a new homepage/landing page....
|
1793004929.5184813
|
1793091329.5184813
|
|
28240
|
My awesome macropad! by @Shlok_P | Stardance
|
Shlok_P
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T23:07:56Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made a macropad- Learned a lot about coding and how to make a pcb and solder it", "repo": "https://github.com/shlokrpatel/Shlok-Superpad", "demo": ""}]...
|
[{"post_id": 73345, "ts": "202 [{"post_id": 73345, "ts": "2026-09-24T23:07:15Z", "hours": 0.9333, "text": "Coding some stuff and got it working"}, {"post_id": 26174, "ts": "2026-07-10T20:30:17Z", "hours": 2.3333, "text": "I finally finished my macropad. I troubleshooted my qmk so many times and finally found the problem and fixed with claude. I then spent some time compiling all my files into git and am currently working on the submission"}, {"post_id": 25660, "ts": "2026-07-10T02:16:54Z", "hours": 5.2308, "text": "Absolutely huge day for me. I finished my case after hours of working on it and started on my qmk coding. Coding is sooooo hard. I had to use 3 different websites and some AI to help me and still couldn’t get it right."}, {"post_id": 24790, "ts": "2026-07-08T16:15:31Z", "hours": 4.6169, "text": "First post! I have had some trouble with attaching my timelapses to my project but thanks to some amazing help in the slack I compiled all 3 of my current timelapses into my first devlog. These 3 timelapses include me making my pcb with 9 switches, a oled screen, and a rotary encoder. After I finished with the pcb I spend a lot of time looking at other projects that people made for some inspiration for my case. I finally started making my case and ran into problems with sizing and trying to get a 3 degree tilt on it. I still have to finish my case and will probably seek some help again."}]...
|
Title: My awesome macropad! by @Shlok_P | Stardanc Title: My awesome macropad! by @Shlok_P | Stardance
Devlogs:
First post! I have had some trouble with attaching my timelapses to my project but thanks to some amazing help in the slack I compiled all 3 of my current timelapses into my first devlog. These 3 timelapses include me making my pcb with 9 switches, a oled screen, and a rotary encoder. After I finished with the pcb I spend a lot of time looking at other projects that people made for some inspiration for my case. I finally started making my case and ran into problems with sizing and trying to get a 3 degree tilt on it. I still have to finish my case and will probably seek some help again.
Absolutely huge day for me. I finished my case after hours of working on it and started on my qmk coding. Coding is sooooo hard. I had to use 3 different websites and some AI to help me and still couldn’t get it right.
I finally finished my macropad. I troubleshooted my qmk so many times and finally found the problem and fixed with claude. I then spent some time compiling all my files into git and am currently working on the submission
Coding some stuff and got it working
Ships:
Made a macropad- Learned a lot about coding and how to make a pcb and solder it...
|
1793004928.2093728
|
1793091328.2093728
|
|
57003
|
Jamly by @prymeknona | Stardance
|
prymeknona
|
1
|
37.0
|
417
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-15T19:34:18Z", "hours": 37.0, "multiplier": 11.2, "payout": 417, "blessing": "neutral", "text": "I built Jamly, a platform where musicians can find other musicians, discover people nearby, and connect to create music together. The hardest part was building the backend and messaging system, and I’m proud that Jamly is now live and ready to use!", "repo": "https://github.com/tadeusz12121/baza_muzykow", "demo": "https://www.jamly.pl"}]...
|
[{"post_id": 68789, "ts": "202 [{"post_id": 68789, "ts": "2026-09-15T19:11:40Z", "hours": 1.7944, "text": "Improved the look of the login form, the .HEIC images upload on group chat works now"}, {"post_id": 67662, "ts": "2026-09-13T20:19:49Z", "hours": 2.1094, "text": "Added nearby musician search using GPS coordinates and Mongodb geolocation"}, {"post_id": 67201, "ts": "2026-09-13T08:10:12Z", "hours": 3.2406, "text": "Locked down profile picture uploads with size/type limits, added rate limiting on login/registration. Built a real-time group chat from scratch with Socket.IO including image uploads compressed on the fly with sharp"}, {"post_id": 66731, "ts": "2026-09-12T16:56:10Z", "hours": 2.4583, "text": "better profile ui"}, {"post_id": 66173, "ts": "2026-09-11T20:37:22Z", "hours": 2.8572, "text": "still working on a chat design"}, {"post_id": 65610, "ts": "2026-09-10T21:01:22Z", "hours": 3.1111, "text": "Built a notification system for incoming messages"}, {"post_id": 64814, "ts": "2026-09-09T14:21:29Z", "hours": 4.4819, "text": "Added a private chat feature"}, {"post_id": 62913, "ts": "2026-09-06T13:30:01Z", "hours": 8.2556, "text": "register form"}, {"post_id": 59712, "ts": "2026-09-01T17:12:53Z", "hours": 4.0675, "text": "some css now"}, {"post_id": 59473, "ts": "2026-09-01T10:38:19Z", "hours": 1.4558, "text": "Still working on a backend and added some new features the html"}, {"post_id": 59393, "ts": "2026-09-01T05:45:52Z", "hours": 3.3919, "text": "Built the backend for my musician networking platform. Added authentication checks and a musician search API with filters for instrument, skill level, and city."}]...
|
Title: Jamly by @prymeknona | Stardance
Devlogs:
Title: Jamly by @prymeknona | Stardance
Devlogs:
Built the backend for my musician networking platform. Added authentication checks and a musician search API with filters for instrument, skill level, and city.
Still working on a backend and added some new features the html
some css now
register form
Added a private chat feature
Built a notification system for incoming messages
still working on a chat design
better profile ui
Locked down profile picture uploads with size/type limits, added rate limiting on login/registration. Built a real-time group chat from scratch with Socket.IO including image uploads compressed on the fly with sharp
Added nearby musician search using GPS coordinates and Mongodb geolocation
Improved the look of the login form, the .HEIC images upload on group chat works now
Ships:
I built Jamly, a platform where musicians can find other musicians, discover people nearby, and connect to create music together. The hardest part was building the backend and messaging system, and I’m proud that Jamly is now live and ready to use!...
|
1793004927.0773869
|
1793091327.0773869
|
|
57001
|
Space_explore by @Jazil | Stardance
|
Jazil
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T18:07:19Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I used nasa api to make this wonderful i liked it", "repo": "https://github.com/JazilJafar/Space-displaying", "demo": "https://jaziljafar.github.io/Space-displaying/"}]...
|
[{"post_id": 73686, "ts": "202 [{"post_id": 73686, "ts": "2026-09-25T18:06:08Z", "hours": 0.9822, "text": "my first version of this website is live in https://jaziljafar.github.io/Space-displaying/ please look if the token limit exceeded sorry"}, {"post_id": 64569, "ts": "2026-09-09T02:32:12Z", "hours": 0.2572, "text": "Some font and style changes"}, {"post_id": 63621, "ts": "2026-09-07T15:25:28Z", "hours": 0.7581, "text": "i enhaced my website structure with css more when getted from api’s"}, {"post_id": 62090, "ts": "2026-09-05T10:40:39Z", "hours": 0.3903, "text": "My space_explore website started fetching data and displaying it . Next is styling it"}, {"post_id": 60962, "ts": "2026-09-03T17:20:01Z", "hours": 0.4497, "text": "I enhanced my readme and also changed my projects files"}, {"post_id": 59405, "ts": "2026-09-01T06:34:37Z", "hours": 0.2636, "text": "My first commit to github and first project coding started"}]...
|
Title: Space_explore by @Jazil | Stardance
Devlog Title: Space_explore by @Jazil | Stardance
Devlogs:
My first commit to github and first project coding started
I enhanced my readme and also changed my projects files
My space_explore website started fetching data and displaying it . Next is styling it
i enhaced my website structure with css more when getted from api’s
Some font and style changes
my first version of this website is live in https://jaziljafar.github.io/Space-displaying/ please look if the token limit exceeded sorry
Ships:
I used nasa api to make this wonderful i liked it...
|
1793004925.8408945
|
1793091325.8408945
|
|
35149
|
Wingspan for Pterodactyl by @brahmtejsawhney | Sta Wingspan for Pterodactyl by @brahmtejsawhney | Stardance...
|
brahmtejsawhney
|
2
|
38.44
|
680
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T07:32:22Z", "hours": 14.0, "multiplier": 17.93, "payout": 246, "blessing": "neutral", "text": "Hello! If you are new here, welcome! This is my flagship project called Wingspan, It’s used by system administrators and infrastructure managers to manage their virtual servers in bulk rather than one by one. This project works in the terminal with AMAZING Terminal UI! This is my second ship. I have worked on making the Server Purge Function, to easily delete servers in large quantities. In my previous ships, I worked on making the basics of the code and functions to index and search the database. I have received extremely positive comments for this project, and i’m really proud of making it! Do star it on github if you like this one!", "repo": "https://github.com/brahmtej2009/wingspan", "demo": "https://github.com/brahmtej2009/Wingspan/blob/main/SHIPWRIGHTS.md"}, {"ship_num": 2, "ts": "2026-09-23T10:49:52Z", "hours": 24.0, "multiplier": 18.44, "payout": 434, "blessing": "neutral", "text": "Welcome to WingSpan, A project to bulk manage your self hosted hardware on pterodactyl. Easily search through servers, get detailed information, export lists based on precise filtering and more! It is made for people like me, who manage hundreds of servers daily, and need to perform bulk actions on them. Its posted on frictionless mission because it would make my life really easy as it automates a lot of my work and would save me a LOT of clicks! cant wait for you to try it out! <3", "repo": "https://github.com/brahmtej2009/wingspan", "demo": "https://github.com/brahmtej2009/Wingspan/blob/main/SHIPWRIGHTS.md"}]...
|
[{"post_id": 80768, "ts": "202 [{"post_id": 80768, "ts": "2026-10-18T18:48:38Z", "hours": 0.4375, "text": "ps: not an official devlog, just an update Show and Tell + Super Star This was another great show and tell, and OMG SUPER STAR! Thanks @Lazyllama ❤️ Ty guys, rly grateful!! Image shows me submitting to Show and Tell and 2nd Image showing my Super Star!"}, {"post_id": 80312, "ts": "2026-10-17T07:27:32Z", "hours": 2.9072, "text": "Devlog 19 Show and Tell #1 WINNER Project! 🏆 Progress Done Purge function has been completely created. I have worked on API Request Error Catching in duration of this devlog. I have integrated all the standard practices and error catching which is required, and now the program displays the error and a solution to fix it. Also, it tracks if there are any errors due to wingspan itself, and provides resolution! Great Stuff! I also started work on User Purge Function, which i’ll release in the ship after shipping Server Purge. There was a bug in the release file, which prevented auto update in windows. Fixed that. Features Added/Worked on Better API Requests to Pterodactyl Rate Limit detector and queue Error Catching and Resolution Server Purge Function Completed Started work on User Purge What new I learnt I learnt to work with industry standard error catching I learnt to make better API systems I learnt to work with queues and rate limiters I learnt to use DELETE Protocol What I would be working on Completing Documentation till here Shipping till Server Purge AI Declaration Claude was used to find out bug in release file only. No AI was used in code during the span of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, project homepage and some lovely previous votes screenshots."}, {"post_id": 79114, "ts": "2026-10-12T18:33:47Z", "hours": 2.0575, "text": "Devlog 18 Progress Done Purge feature is now functional. Server purges are working as expected. I have added 4 purge methods. Parameters are Forced/Unforced, and Verified and Unverified.So, FV,FU,UV,UU. When you choose unforced method, it would ensure a clean deletion, and ensure the entire data is wiped. On a forced delete, it would delete it from frontend, and only attempt to clean it entirely. Force method is useful to delete servers whose nodes have been discontinued, or conditions where unforced wouldnt work. Verified feature ensures that the purge process goes as close to the expected outcome as possible, and if anything is detected which shouldnt be so, wingspan would prompt you there, so you can take manual action right there on the spot while it purges. Unverified means that wingspan would try its best to delete all the servers given in the importlist and would not prompt the user in case of discrepancies. Features Added/Worked on Import Verification Server Name Live Verification Completed Beta Purge Function Updated Menu to allow Purge Function Wingspan now needs an Admin API key with Full Perms (Readonly no longer works) What I would be working on Bugchecking all the features I made Attempting to delete some servers in massive quantities. Starting work on User Purge Function Do changes in README.md for the new purge function documentation. Find a good reliable Pterodactyl API Docs Website. AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Graphical UI of the Purge Function along with the questions it asks."}, {"post_id": 78414, "ts": "2026-10-10T18:32:47Z", "hours": 3.1958, "text": "Devlog 17 Show and Tell #1 WINNER Project! 🏆 Progress Done Ship Approved! Yay! Also, Show and Tell Winner! So, during the span of this devlog, I have worked on creating release files for this project, in a way that they do not have to be updated everr! Also, I have worked on the Purge Function, and have completed the server list import, and have made major changes in server list export function, which now exports minimally required data only for security reasons. Also, I have made quite a lot of confirmations that the person has to fill in order for the servers to actually get deleted, which is a good practice so a person doesnt anciently delete their entire pterodactyl. Also, I have worked on advanced logging in the import system and a very smart directory checker. Also, exporting now adds the panel’s URL on top of the export file, so a wingspan session linked to another panel does not perform critical actions on wrong servers. It properly verifies the import file and gives a clear warning if needed. Features Added/Worked on Export Function Major Changes New Import Function Improved logging Purge Function Increased security and confirmations before taking critical actions. What new I learnt I learnt to export files I learnt to import files I learnt security and integrity tactics to prevent unwanted destruction I learnt to do better logging What I would be working on Completing server purge function Starting work on user purge function AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached file shows and older video I recorded of me using the project."}, {"post_id": 77037, "ts": "2026-10-05T13:23:55Z", "hours": 5.5469, "text": "Devlog 16 Progress Done The project is still on its reviewing stage, in the meantime, I have worked on releasing the executable release for both windows and linux. The executables are internally dynamic, so it updates to the latest wingspan version on every boot. Alongside, I have also worked on a lot of bugfixes, added more detailed logging, Autoboot after Setup and more. I have also worked on the purge function, specifically on the server purge feature. I have completed the export function and import function for the server lists. So server lists could be imported to action functions. I have also worked on reducing the boot time for linux, and on a fresh install, its as little as 5 seconds for the complete install and setup. I’ll be releasing more things after the ship gets approved! Features Added/Worked on Enhanced Logging System Added Release Executables/Binaries Added Auto Updater Added Importer Function for exported server-lists Fixed bugs and slight performance enhancement for windows Massive performance enhancement for linux What new I learnt I learnt to make a formal logging system I learnt to create binaries of python I learnt how to export and import and edit csv I learnt to optimize code on linux I learnt to make Auto Updaters and Version Checkers What I would be working on Completing server purge function Improving performance for windows systems Adding verification of exports while importing them Warnings before destructive action AI Declaration No AI was used in code in the duration of this devlog. AI was used in helping me with creating the executables from the code. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, Purge Window Screenshots and Export File Content Screenshots."}, {"post_id": 72609, "ts": "2026-09-23T10:33:51Z", "hours": 2.5994, "text": "Changelog Repo Created on Git, Code Uploaded. V1: Added: Server & Info Fn. Welcome to wingspan folks! <3"}, {"post_id": 71935, "ts": "2026-09-21T20:20:07Z", "hours": 4.2222, "text": "Devlog 14 Progress Done I know this is a very delayed devlog, I had my exams mid way. I’m into the 20th hour of the project, most of the stuff is made. API System is ready, most of the code which would be shared across multiple functions is ready. First function, of Bulk Search and server lookup is also complete. Server lookup function has a really cool UI. Alongside with that, I have also added export option to the Bulk Server Search, you can use the exported file on other functions which take actions on server. Features Added/Worked on Completed Bulk Search and Server Lookup Added server list export Added Shipwrights Docs (Readme for shipwrights) Worked on fixing bugs and README What new I learnt I learnt to work with CSV files I learnt to spoof responses to provide hardcoded outputs (For shipwrights testing) I learnt how to read and save data into json and env I learnt to add images into my Readme AI Declaration A little bit AI was used in CSV saving mechanics, so its saved in a way so could be read back easily for processing later. Server Lookup’s UI was heavily created with help of AI, as I was not able to achieve that high information density without use of AI. Rest, updates in README and SHIPWRIGHTS.md were all done by hand with 0% AI. The attached image shows the new Server Lookup UI, new readme with banner and terminal header, shipwrights file, csv file output."}, {"post_id": 36602, "ts": "2026-07-28T20:22:42Z", "hours": 0.5042, "text": "Devlog 13 Progress Done I did not do much today as the schedule was really busy, I have done a little bit of debugging and bughunting by testing with different kinds of server eggs and parameters on pterodactyl. I have not found any major issue yet, there were some little issues with server search function where some parameters would not show up, that is fixed. Rest, I also am working on the server info function and the readme. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached photos show the new updates to the readme and docs."}, {"post_id": 36001, "ts": "2026-07-27T20:15:25Z", "hours": 1.0306, "text": "Devlog 12 Progress Done I am now making the Server Info function, which provides all the server information in one very well managed panel. Thanks to my fellow developer @stef [U0823APHVK7], I got to know that most of the pterodactyl API docs out there are AI generated and are mostly inaccurate. The accurate one is: https://pterodactyl-api.redbanana.dev I have also experienced issues with Pterodactyl itself, not working right with parameter based data fetching, Il work more on it as most likely its some my side issue. I am also working on adding some kind of live table display right into the terminal to beautifully display the data from the Server Info function. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached video show the preview pics of the new Server Info function."}, {"post_id": 35424, "ts": "2026-07-26T20:28:47Z", "hours": 0.6428, "text": "Devlog 11 Progress Done Im in the 14th Hour of the project, and I have worked on the readme. I have written installation process, and scopes of this project. Also, I have added credits as required. All content is human written, no AI used. Features Added/Worked on Added Readme AI Declaration No AI Used for this devlog period The attached video show the preview pics of the readme."}, {"post_id": 34748, "ts": "2026-07-25T18:37:48Z", "hours": 1.3872, "text": "Devlog 10 Progress Done Im in the 13th hour of the project, and have completely finished the first feature of Searching and Indexing servers. This feature allows you to search from bulk server lists and filter out servers based on all the parameters. It also works with any extension which you may add in future which adds more parameters in the panel, its universally compatible. Next, I would be working on the Purge function, on which we would be using the Search and Info function, to export a csv list and import it into the purgetool to eliminate servers. Features Added/Worked on Refined menus and controls Added more colors Added support for complete universal API [Explained above] Finished with the first function of the software What new I learnt I learnt to work with APIs I learnt to manage big data I learnt to make really complicated nested loops I learnt to convert Json and Lists from 2D to 1D AI Declaration A little bit of AI was used to automate repetitive tasks to save time in the search and info function, where filter rules had to be created for each datatype separately and code was mostly same as I written by hand. AI was used to just change variable names and fit it for other datatypes. AI was also used for debugging and checking if everything works alright. Wherever AI was used, has an AI marker in the source code. The attached video show the first working function which is filtering servers based on user inputs."}, {"post_id": 34235, "ts": "2026-07-24T19:23:32Z", "hours": 0.445, "text": "Devlog 9 Progress Done Im working on the final parts of the first function, that is filtering and exporting. Next I would be moving onto purge manager and related functions which are more useful in real life. Input of the ID parameter was giving vague errors when provided with ranges, It took me a lot of debugging to find the source of the issue, and that was a string was being compared to an int (str<int) in a part of code where I didnt typecast. That is fixed now. AI Declaration Close to None AI was used for this devlog. The attached images show the accepted input of the ID field when put with a range."}, {"post_id": 33694, "ts": "2026-07-23T20:23:16Z", "hours": 0.3294, "text": "Devlog 8 Progress Done Im done with Search and Info function’s basics. Only export options and other advanced options are left to be created. This is a really little 15 minute devlog to mark the achievement of the first actual usable feature in the program, which took me about 11 hours, and this project would be having about 20 of such large functions, making this an extremely detailed and big project. In this devlog, I also want to thank each and every follower of mine, for taking interest in my project and supporting me! Thankyou. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the Banner of project."}, {"post_id": 33143, "ts": "2026-07-22T19:44:20Z", "hours": 1.6344, "text": "Devlog 7 Progress Done Im into the 12th hour of the project, and I have done a lot of progress on the first function, which is search and info. I have worked on the parameter search option which is an extremely bulky work as im making it compatible with future upgrades and any extra addons that the user may have which cause changes in the API, I’m adding dynamic automatic support for new fields too for search, while taking all inputs and performing operations in the terminal. I am completely AVOIDING AI for this devlog, and focusing on complete self improvement and understanding of such deeply nested code structures. This is a partial devlog, meaning it doesnt mark a completion of a feature. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the home page, followed by the new Search from Parameters Mode…"}, {"post_id": 32494, "ts": "2026-07-21T18:30:08Z", "hours": 3.0075, "text": "Devlog 6 Progress Done Its the 11th hour into the project and the progress is booming! I have started working on the interactive menus of the program. I have also started work on the first function, which is “Search and Info”, in which you can select parameters to search from, and it performs bulk search for you, which you can export to a file, or use in the program internally to trigger actions, or get detailed info about. I have also added terminal ui from curses in this, for the parameter selector, and it looks really good! I also worked on algorithms which convert data from pterodactyl to a usable format for mass bulk searching. I am making it in a way that some of the load is shared on the pterodactyl server side for filtering, and the rest is done on machine running this program, so I can minimize the rate limiting and divide load among both the machines for bulk processing and improve speed. For example, basic filter arguments are run on pterodactyl server’s side (Handled built in by pterodactyl), whereas advanced parameter searches are done on user side as generally user’s own system has more threads and is much better than the pterodactyl webserver. Features Added/Worked on Made menus and sections for first function Worked on algorithms to convert api responses to filterable data Worked on UI by adding curses based parameter selector Made first function, Search and Info What new I learnt I learnt to work with massive data and make algorithms to convert to usable data I learnt to make my first usable intractable terminal UI from curses I learnt to divide operations and perform load balancing for such bulk data AI Declaration Close to None AI was used for this devlog. All the algorithms which were made, where made completely by hand. AI was used for research purposes for curses as its a new field for me. All code blocks where AI has been used are marked in source code! The attached images show the home page, followed by new menus, along with the parameter selector and more…"}, {"post_id": 31424, "ts": "2026-07-19T19:41:27Z", "hours": 1.7656, "text": "Devlog 5 Progress Done Its about the 8th hour into the project, Since around the past 1 hour, I have been reading and understanding the entire pterodactyl API. Learning everything from sending requests to sorting data according to needs. Not much progress was done on the main project, though I did a lot of testing in temp files and had a lot of learning. What new I learnt I learnt to use RestJS API system of Pterodactyl I learnt to use Requests in Python I learnt to capture data and filter/manipulate it from APIs I learnt to manage rate limits and error codes Sources Pterodactyl API Docs: https://pterodactyl-api-docs.netvpx.com/docs/intro AI Declaration No AI was used for the period of this devlog. Most of the work was only done for understanding and learning purposes which was done in temp files which is essential for the project’s development. The attached images show the pterodactyl AI docs which I am reading and testing."}, {"post_id": 30613, "ts": "2026-07-18T10:19:26Z", "hours": 2.2778, "text": "Devlog 4 Progress Done Its about the 6th hour into the project, I have worked on making a terminal UI on which you can click up and down arrows and space button to select servers from a list to do actions. I did not work on actual API yet, thats kept for the last, currently I am working on data sorting and filter functions and more. I also made a cool banner for the project! Sorry for the late devlog, took a lot of time debugging and learning this one. Features Added/Worked on Made a cool image banner on canva [No AI] Worked on filtering functions Worked on a better terminal UI with curses Made HomePage What new I learnt I learnt Graphic Design with Canva I learnt to work with Curses to make terminal UI I learnt to capture button clicks on terminal for functions AI Declaration Close to None AI was used for this devlog. I used AI to understand how the curses library works and how to make it perform actions on button clicks. Also, the tech-pterodactyl symbol on the banner was made with AI as I couldnt find a similar icon on the internet. The attached images show the new banner, followed by the homepage and terminal selector UI demo."}, {"post_id": 28897, "ts": "2026-07-15T14:28:47Z", "hours": 1.6511, "text": "Devlog 3 Progress Done Its the 3rd hour into the project, and I have worked on adding args feature (specifically for linux users) and have worked on the project’s banner and interactive setup menu. I have also added verification in the setup fields to ensure that the user fills in correct information, and even guides the user if wrong keys are entered after 2 tries. Alongside with it, I added colors and made a cool ASCII banner. I also added the system to make venv automatically on first boot (supported on both linux/windows) for those who are running the code directly uncompiled. Features Added/Worked on Added Colorful ASCII Banner [Check Attached Image] Added field verification for setup- Added Args support, Eg. wingspan setup Improved POST Added Auto Venv and Dependency Installer What new I learnt I learnt to work with ASCII Color Codes I learnt to make args on python I learnt how to work with Venv I learnt to work with Terminal Commands from python to install dependencies AI Declaration AI was used for this devlog period for generating the automatic venv and dependencies installer, and making it compatible for both linux and windows at the same time. AI was also used to help with the Args function as I have not had any experience with it before. The attached images show the program running on both Linux and Windows. First screenshot shows the automatic dependencies installer in action, followed by images of the new banner and guide text if the user enters wrong api key multiple times."}, {"post_id": 28503, "ts": "2026-07-14T19:58:23Z", "hours": 1.5825, "text": "Devlog 2 Progress Done Its been about the first hour into the project, and I have well planned everything and have started working on execution. I have started with the linux versions (CMD ONLY), because I dont have experience with GUI Apps and compiling to executables. I have started on configuration tool, which asks the user for all required API Keys and creates the config files and sets up the installation. I have also worked on a standard automatic dependency downloader, so it runs its own venv on boot, downloads its dependencies there, and runs normally. I would not be compiling it into an executable, so you can take and run it on linux, and copy paste it and run it on windows without any platform change issues. I also set up python library, “logging”, to provide proper logs of every action, because it would be important for the users if anything goes wrong or they need history of the tool’s actions. I have also added an entire system testing feature (POST) which triggers when the program is turned on. This is to ensure that no issues come while critical server actions are being performed by the software. It also checks if all the configs are built right. Features Added/Worked on Added Logging System Added Self Config tool Added dependency resolver Added a POST Test What new I learnt I learnt to work with logging library I learnt different logging levels I learnt how to read and save data into json and env I learnt to work with venv & auto pip installers I learnt that stardance has a 4000 char limit on devlogs I learnt to make a cool startup animation with ASCII I learnt to make a cool looking UI in terminal for config page AI Declaration AI was used to make a big empty blueprint list of all functions which I have to code, which makes the work easy as it allows me to visualize the functions pending to create and those which are done. AI was used in ASCII Animation’s character generation. The attached image shows the ASCII Animation, and then some pics of the AutoConfig window, asking the user to enter the details to perform setup."}, {"post_id": 28444, "ts": "2026-07-14T18:06:10Z", "hours": 0.4731, "text": "Devlog 1 Project Details 1. The point/scope of this project So, this is going to be a project for all the hosting owners and homelab operators, who have to manually control/edit each server on pterodactyl to do basic actions which is the same to be done on multiple servers. If you dont know, Pterodactyl is a game/server hosting control panel which gives you a good UI to make your stuff easier to control and all.. but it does lack bulk change features, and there arent much addons for it, and addons also dont work well and get deleted everytime we upgrade the panel, which is a mess. 2. My Solution for the problem I would be making a standalone windows app + a linux cmd app which uses pterodactyl API to perform actions. It would provide a very comprehensive UI to specifically allow for bulk actions and add features which arent there in normal pterodactyl. 3. Features of my project After extensive planning and discussion with several other hosting/homelab owners, I have gathered a list of features which everyone require and would use on a regular basis if there was an app for it. So, my app would have the following features: Bulk Suspend/Unsuspend Bulk Delete Selective Purge Backup download Bulk resource change, or Copy 1 server’s resources and paste to multiple servers. Bulk Reinstall Bulk Transfer Settings page for storing api keys and more. Email notifications to notify users for bulk actions if scheduled. [Planned for a later stage, to be released with other matching updates] Make a management tab in which all node’s real specs are shown, and heavy overloading or other parameter of servers are shown. Il take suggestions from UI of Proxmox and Proxmox Datacenter manager as thats a really good UI with a lot of pterodactyl usable features. User management features like Bulk Email, Bulk user delete, Specific User Purge (Like delete those without any server), User Clear (Clear all servers of a user) The complete flagship feature of panel speed booster, which does all required purges and makes panel faster Update monitor, so users can safely and reliably update their wingspan installation and get prompted whenever a new release is put. 4. Who am I/What do I do? I am Brahmtej Singh, a Python Developer, usually working with devops projects like automations and things, so this kinda project is a perfect fit of what I like to do! Im the founder of HostingKarle, I started with a pledge of providing a safe place to my customers. There are a lot LOT of scams out there in IT/Hosting sector, and I wish to change that. I always prioritized customer experience and trust building, and I also support developers by providing Free hosting services to support their development and projects! AI Use in Project and Other Details I am always very clear with AI Use, I believe to use it as a helping tool to navigate through complex logic building and automate repetitive tasks. All my AI use is properly logged and would be attached in every devlog, though I try my best to write what I know by hand. If you ever wish to contribute or to provide feedback on my work, please feel free to conact me on slack, ID: U0AJ2DDJ996 I always write all my devlogs by hand, every single detail is hand written and not passed through any AI tool, not even for grammatical or syntaxial fixing. My devlogs are mainly formatted like this: Introduction to what I did What new I learnt Project Impact / Upcoming Changes AI Use Declaration Attached Photo Description Thankyou for taking interest in my project. The attached image shows a screenshot of my current and future targets, written and planned out. This much text wouldnt fit in the text space, so had to attach a screenshot of the text planning. (First 15 Minutes into creation)"}]...
|
Title: Wingspan for Pterodactyl by @brahmtejsawhne Title: Wingspan for Pterodactyl by @brahmtejsawhney | Stardance
Devlogs:
Devlog 1 Project Details 1. The point/scope of this project So, this is going to be a project for all the hosting owners and homelab operators, who have to manually control/edit each server on pterodactyl to do basic actions which is the same to be done on multiple servers. If you dont know, Pterodactyl is a game/server hosting control panel which gives you a good UI to make your stuff easier to control and all.. but it does lack bulk change features, and there arent much addons for it, and addons also dont work well and get deleted everytime we upgrade the panel, which is a mess. 2. My Solution for the problem I would be making a standalone windows app + a linux cmd app which uses pterodactyl API to perform actions. It would provide a very comprehensive UI to specifically allow for bulk actions and add features which arent there in normal pterodactyl. 3. Features of my project After extensive planning and discussion with several other hosting/homelab owners, I have gathered a list of features which everyone require and would use on a regular basis if there was an app for it. So, my app would have the following features: Bulk Suspend/Unsuspend Bulk Delete Selective Purge Backup download Bulk resource change, or Copy 1 server’s resources and paste to multiple servers. Bulk Reinstall Bulk Transfer Settings page for storing api keys and more. Email notifications to notify users for bulk actions if scheduled. [Planned for a later stage, to be released with other matching updates] Make a management tab in which all node’s real specs are shown, and heavy overloading or other parameter of servers are shown. Il take suggestions from UI of Proxmox and Proxmox Datacenter manager as thats a really good UI with a lot of pterodactyl usable features. User management features like Bulk Email, Bulk user delete, Specific User Purge (Like delete those without any server), User Clear (Clear all servers of a user) The complete flagship feature of panel speed booster, which does all required purges and makes panel faster Update monitor, so users can safely and reliably update their wingspan installation and get prompted whenever a new release is put. 4. Who am I/What do I do? I am Brahmtej Singh, a Python Developer, usually working with devops projects like automations and things, so this kinda project is a perfect fit of what I like to do! Im the founder of HostingKarle, I started with a pledge of providing a safe place to my customers. There are a lot LOT of scams out there in IT/Hosting sector, and I wish to change that. I always prioritized customer experience and trust building, and I also support developers by providing Free hosting services to support their development and projects! AI Use in Project and Other Details I am always very clear with AI Use, I believe to use it as a helping tool to navigate through complex logic building and automate repetitive tasks. All my AI use is properly logged and would be attached in every devlog, though I try my best to write what I know by hand. If you ever wish to contribute or to provide feedback on my work, please feel free to conact me on slack, ID: U0AJ2DDJ996 I always write all my devlogs by hand, every single detail is hand written and not passed through any AI tool, not even for grammatical or syntaxial fixing. My devlogs are mainly formatted like this: Introduction to what I did What new I learnt Project Impact / Upcoming Changes AI Use Declaration Attached Photo Description Thankyou for taking interest in my project. The attached image shows a screenshot of my current and future targets, written and planned out. This much text wouldnt fit in the text space, so had to attach a screenshot of the text planning. (First 15 Minutes into creation)
Devlog 2 Progress Done Its been about the first hour into the project, and I have well planned everything and have started working on execution. I have started with the linux versions (CMD ONLY), because I dont have experience with GUI Apps and compiling to executables. I have started on configuration tool, which asks the user for all required API Keys and creates the config files and sets up the installation. I have also worked on a standard automatic dependency downloader, so it runs its own venv on boot, downloads its dependencies there, and runs normally. I would not be compiling it into an executable, so you can take and run it on linux, and copy paste it and run it on windows without any platform change issues. I also set up python library, “logging”, to provide proper logs of every action, because it would be important for the users if anything goes wrong or they need history of the tool’s actions. I have also added an entire system testing feature (POST) which triggers when the program is turned on. This is to ensure that no issues come while critical server actions are being performed by the software. It also checks if all the configs are built right. Features Added/Worked on Added Logging System Added Self Config tool Added dependency resolver Added a POST Test What new I learnt I learnt to work with logging library I learnt different logging levels I learnt how to read and save data into json and env I learnt to work with venv & auto pip installers I learnt that stardance has a 4000 char limit on devlogs I learnt to make a cool startup animation with ASCII I learnt to make a cool looking UI in terminal for config page AI Declaration AI was used to make a big empty blueprint list of all functions which I have to code, which makes the work easy as it allows me to visualize the functions pending to create and those which are done. AI was used in ASCII Animation’s character generation. The attached image shows the ASCII Animation, and then some pics of the AutoConfig window, asking the user to enter the details to perform setup.
Devlog 3 Progress Done Its the 3rd hour into the project, and I have worked on adding args feature (specifically for linux users) and have worked on the project’s banner and interactive setup menu. I have also added verification in the setup fields to ensure that the user fills in correct information, and even guides the user if wrong keys are entered after 2 tries. Alongside with it, I added colors and made a cool ASCII banner. I also added the system to make venv automatically on first boot (supported on both linux/windows) for those who are running the code directly uncompiled. Features Added/Worked on Added Colorful ASCII Banner [Check Attached Image] Added field verification for setup- Added Args support, Eg. wingspan setup Improved POST Added Auto Venv and Dependency Installer What new I learnt I learnt to work with ASCII Color Codes I learnt to make args on python I learnt how to work with Venv I learnt to work with Terminal Commands from python to install dependencies AI Declaration AI was used for this devlog period for generating the automatic venv and dependencies installer, and making it compatible for both linux and windows at the same time. AI was also used to help with the Args function as I have not had any experience with it before. The attached images show the program running on both Linux and Windows. First screenshot shows the automatic dependencies installer in action, followed by images of the new banner and guide text if the user enters wrong api key multiple times.
Devlog 4 Progress Done Its about the 6th hour into the project, I have worked on making a terminal UI on which you can click up and down arrows and space button to select servers from a list to do actions. I did not work on actual API yet, thats kept for the last, currently I am working on data sorting and filter functions and more. I also made a cool banner for the project! Sorry for the late devlog, took a lot of time debugging and learning this one. Features Added/Worked on Made a cool image banner on canva [No AI] Worked on filtering functions Worked on a better terminal UI with curses Made HomePage What new I learnt I learnt Graphic Design with Canva I learnt to work with Curses to make terminal UI I learnt to capture button clicks on terminal for functions AI Declaration Close to None AI was used for this devlog. I used AI to understand how the curses library works and how to make it perform actions on button clicks. Also, the tech-pterodactyl symbol on the banner was made with AI as I couldnt find a similar icon on the internet. The attached images show the new banner, followed by the homepage and terminal selector UI demo.
Devlog 5 Progress Done Its about the 8th hour into the project, Since around the past 1 hour, I have been reading and understanding the entire pterodactyl API. Learning everything from sending requests to sorting data according to needs. Not much progress was done on the main project, though I did a lot of testing in temp files and had a lot of learning. What new I learnt I learnt to use RestJS API system of Pterodactyl I learnt to use Requests in Python I learnt to capture data and filter/manipulate it from APIs I learnt to manage rate limits and error codes Sources Pterodactyl API Docs: https://pterodactyl-api-docs.netvpx.com/docs/intro AI Declaration No AI was used for the period of this devlog. Most of the work was only done for understanding and learning purposes which was done in temp files which is essential for the project’s development. The attached images show the pterodactyl AI docs which I am reading and testing.
Devlog 6 Progress Done Its the 11th hour into the project and the progress is booming! I have started working on the interactive menus of the program. I have also started work on the first function, which is “Search and Info”, in which you can select parameters to search from, and it performs bulk search for you, which you can export to a file, or use in the program internally to trigger actions, or get detailed info about. I have also added terminal ui from curses in this, for the parameter selector, and it looks really good! I also worked on algorithms which convert data from pterodactyl to a usable format for mass bulk searching. I am making it in a way that some of the load is shared on the pterodactyl server side for filtering, and the rest is done on machine running this program, so I can minimize the rate limiting and divide load among both the machines for bulk processing and improve speed. For example, basic filter arguments are run on pterodactyl server’s side (Handled built in by pterodactyl), whereas advanced parameter searches are done on user side as generally user’s own system has more threads and is much better than the pterodactyl webserver. Features Added/Worked on Made menus and sections for first function Worked on algorithms to convert api responses to filterable data Worked on UI by adding curses based parameter selector Made first function, Search and Info What new I learnt I learnt to work with massive data and make algorithms to convert to usable data I learnt to make my first usable intractable terminal UI from curses I learnt to divide operations and perform load balancing for such bulk data AI Declaration Close to None AI was used for this devlog. All the algorithms which were made, where made completely by hand. AI was used for research purposes for curses as its a new field for me. All code blocks where AI has been used are marked in source code! The attached images show the home page, followed by new menus, along with the parameter selector and more…
Devlog 7 Progress Done Im into the 12th hour of the project, and I have done a lot of progress on the first function, which is search and info. I have worked on the parameter search option which is an extremely bulky work as im making it compatible with future upgrades and any extra addons that the user may have which cause changes in the API, I’m adding dynamic automatic support for new fields too for search, while taking all inputs and performing operations in the terminal. I am completely AVOIDING AI for this devlog, and focusing on complete self improvement and understanding of such deeply nested code structures. This is a partial devlog, meaning it doesnt mark a completion of a feature. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the home page, followed by the new Search from Parameters Mode…
Devlog 8 Progress Done Im done with Search and Info function’s basics. Only export options and other advanced options are left to be created. This is a really little 15 minute devlog to mark the achievement of the first actual usable feature in the program, which took me about 11 hours, and this project would be having about 20 of such large functions, making this an extremely detailed and big project. In this devlog, I also want to thank each and every follower of mine, for taking interest in my project and supporting me! Thankyou. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the Banner of project.
Devlog 9 Progress Done Im working on the final parts of the first function, that is filtering and exporting. Next I would be moving onto purge manager and related functions which are more useful in real life. Input of the ID parameter was giving vague errors when provided with ranges, It took me a lot of debugging to find the source of the issue, and that was a string was being compared to an int (str<int) in a part of code where I didnt typecast. That is fixed now. AI Declaration Close to None AI was used for this devlog. The attached images show the accepted input of the ID field when put with a range.
Devlog 10 Progress Done Im in the 13th hour of the project, and have completely finished the first feature of Searching and Indexing servers. This feature allows you to search from bulk server lists and filter out servers based on all the parameters. It also works with any extension which you may add in future which adds more parameters in the panel, its universally compatible. Next, I would be working on the Purge function, on which we would be using the Search and Info function, to export a csv list and import it into the purgetool to eliminate servers. Features Added/Worked on Refined menus and controls Added more colors Added support for complete universal API [Explained above] Finished with the first function of the software What new I learnt I learnt to work with APIs I learnt to manage big data I learnt to make really complicated nested loops I learnt to convert Json and Lists from 2D to 1D AI Declaration A little bit of AI was used to automate repetitive tasks to save time in the search and info function, where filter rules had to be created for each datatype separately and code was mostly same as I written by hand. AI was used to just change variable names and fit it for other datatypes. AI was also used for debugging and checking if everything works alright. Wherever AI was used, has an AI marker in the source code. The attached video show the first working function which is filtering servers based on user inputs.
Devlog 11 Progress Done Im in the 14th Hour of the project, and I have worked on the readme. I have written installation process, and scopes of this project. Also, I have added credits as required. All content is human written, no AI used. Features Added/Worked on Added Readme AI Declaration No AI Used for this devlog period The attached video show the preview pics of the readme.
Devlog 12 Progress Done I am now making the Server Info function, which provides all the server information in one very well managed panel. Thanks to my fellow developer @stef [U0823APHVK7], I got to know that most of the pterodactyl API docs out there are AI generated and are mostly inaccurate. The accurate one is: https://pterodactyl-api.redbanana.dev I have also experienced issues with Pterodactyl itself, not working right with parameter based data fetching, Il work more on it as most likely its some my side issue. I am also working on adding some kind of live table display right into the terminal to beautifully display the data from the Server Info function. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached video show the preview pics of the new Server Info function.
Devlog 13 Progress Done I did not do much today as the schedule was really busy, I have done a little bit of debugging and bughunting by testing with different kinds of server eggs and parameters on pterodactyl. I have not found any major issue yet, there were some little issues with server search function where some parameters would not show up, that is fixed. Rest, I also am working on the server info function and the readme. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached photos show the new updates to the readme and docs.
Devlog 14 Progress Done I know this is a very delayed devlog, I had my exams mid way. I’m into the 20th hour of the project, most of the stuff is made. API System is ready, most of the code which would be shared across multiple functions is ready. First function, of Bulk Search and server lookup is also complete. Server lookup function has a really cool UI. Alongside with that, I have also added export option to the Bulk Server Search, you can use the exported file on other functions which take actions on server. Features Added/Worked on Completed Bulk Search and Server Lookup Added server list export Added Shipwrights Docs (Readme for shipwrights) Worked on fixing bugs and README What new I learnt I learnt to work with CSV files I learnt to spoof responses to provide hardcoded outputs (For shipwrights testing) I learnt how to read and save data into json and env I learnt to add images into my Readme AI Declaration A little bit AI was used in CSV saving mechanics, so its saved in a way so could be read back easily for processing later. Server Lookup’s UI was heavily created with help of AI, as I was not able to achieve that high information density without use of AI. Rest, updates in README and SHIPWRIGHTS.md were all done by hand with 0% AI. The attached image shows the new Server Lookup UI, new readme with banner and terminal header, shipwrights file, csv file output.
Changelog Repo Created on Git, Code Uploaded. V1: Added: Server & Info Fn. Welcome to wingspan folks! <3
Devlog 16 Progress Done The project is still on its reviewing stage, in the meantime, I have worked on releasing the executable release for both windows and linux. The executables are internally dynamic, so it updates to the latest wingspan version on every boot. Alongside, I have also worked on a lot of bugfixes, added more detailed logging, Autoboot after Setup and more. I have also worked on the purge function, specifically on the server purge feature. I have completed the export function and import function for the server lists. So server lists could be imported to action functions. I have also worked on reducing the boot time for linux, and on a fresh install, its as little as 5 seconds for the complete install and setup. I’ll be releasing more things after the ship gets approved! Features Added/Worked on Enhanced Logging System Added Release Executables/Binaries Added Auto Updater Added Importer Function for exported server-lists Fixed bugs and slight performance enhancement for windows Massive performance enhancement for linux What new I learnt I learnt to make a formal logging system I learnt to create binaries of python I learnt how to export and import and edit csv I learnt to optimize code on linux I learnt to make Auto Updaters and Version Checkers What I would be working on Completing server purge function Improving performance for windows systems Adding verification of exports while importing them Warnings before destructive action AI Declaration No AI was used in code in the duration of this devlog. AI was used in helping me with creating the executables from the code. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, Purge Window Screenshots and Export File Content Screenshots.
Devlog 17 Show and Tell #1 WINNER Project! 🏆 Progress Done Ship Approved! Yay! Also, Show and Tell Winner! So, during the span of this devlog, I have worked on creating release files for this project, in a way that they do not have to be updated everr! Also, I have worked on the Purge Function, and have completed the server list import, and have made major changes in server list export function, which now exports minimally required data only for security reasons. Also, I have made quite a lot of confirmations that the person has to fill in order for the servers to actually get deleted, which is a good practice so a person doesnt anciently delete their entire pterodactyl. Also, I have worked on advanced logging in the import system and a very smart directory checker. Also, exporting now adds the panel’s URL on top of the export file, so a wingspan session linked to another panel does not perform critical actions on wrong servers. It properly verifies the import file and gives a clear warning if needed. Features Added/Worked on Export Function Major Changes New Import Function Improved logging Purge Function Increased security and confirmations before taking critical actions. What new I learnt I learnt to export files I learnt to import files I learnt security and integrity tactics to prevent unwanted destruction I learnt to do better logging What I would be working on Completing server purge function Starting work on user purge function AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached file shows and older video I recorded of me using the project.
Devlog 18 Progress Done Purge feature is now functional. Server purges are working as expected. I have added 4 purge methods. Parameters are Forced/Unforced, and Verified and Unverified.So, FV,FU,UV,UU. When you choose unforced method, it would ensure a clean deletion, and ensure the entire data is wiped. On a forced delete, it would delete it from frontend, and only attempt to clean it entirely. Force method is useful to delete servers whose nodes have been discontinued, or conditions where unforced wouldnt work. Verified feature ensures that the purge process goes as close to the expected outcome as possible, and if anything is detected which shouldnt be so, wingspan would prompt you there, so you can take manual action right there on the spot while it purges. Unverified means that wingspan would try its best to delete all the servers given in the importlist and would not prompt the user in case of discrepancies. Features Added/Worked on Import Verification Server Name Live Verification Completed Beta Purge Function Updated Menu to allow Purge Function Wingspan now needs an Admin API key with Full Perms (Readonly no longer works) What I would be working on Bugchecking all the features I made Attempting to delete some servers in massive quantities. Starting work on User Purge Function Do changes in README.md for the new purge function documentation. Find a good reliable Pterodactyl API Docs Website. AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Graphical UI of the Purge Function along with the questions it asks.
Devlog 19 Show and Tell #1 WINNER Project! 🏆 Progress Done Purge function has been completely created. I have worked on API Request Error Catching in duration of this devlog. I have integrated all the standard practices and error catching which is required, and now the program displays the error and a solution to fix it. Also, it tracks if there are any errors due to wingspan itself, and provides resolution! Great Stuff! I also started work on User Purge Function, which i’ll release in the ship after shipping Server Purge. There was a bug in the release file, which prevented auto update in windows. Fixed that. Features Added/Worked on Better API Requests to Pterodactyl Rate Limit detector and queue Error Catching and Resolution Server Purge Function Completed Started work on User Purge What new I learnt I learnt to work with industry standard error catching I learnt to make better API systems I learnt to work with queues and rate limiters I learnt to use DELETE Protocol What I would be working on Completing Documentation till here Shipping till Server Purge AI Declaration Claude was used to find out bug in release file only. No AI was used in code during the span of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, project homepage and some lovely previous votes screenshots.
ps: not an official devlog, just an update Show and Tell + Super Star This was another great show and tell, and OMG SUPER STAR! Thanks @Lazyllama ❤️ Ty guys, rly grateful!! Image shows me submitting to Show and Tell and 2nd Image showing my Super Star!
Ships:
Welcome to WingSpan, A project to bulk manage your self hosted hardware on pterodactyl. Easily search through servers, get detailed information, export lists based on precise filtering and more! It is made for people like me, who manage hundreds of servers daily, and need to perform bulk actions on them. Its posted on frictionless mission because it would make my life really easy as it automates a lot of my work and would save me a LOT of clicks! cant wait for you to try it out! <3
Hello! If you are new here, welcome! This is my flagship project called Wingspan, It’s used by system administrators and infrastructure managers to manage their virtual servers in bulk rather than one by one. This project works in the terminal with AMAZING Terminal UI! This is my second ship. I have worked on making the Server Purge Function, to easily delete servers in large quantities. In my previous ships, I worked on making the basics of the code and functions to index and search the database. I have received extremely positive comments for this project, and i’m really proud of making it! Do star it on github if you like this one!...
|
1793004924.442677
|
1793091324.442677
|
|
5234
|
CraftHub by @Axeno | Stardance
|
Axeno
|
1
|
17.89
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-11T21:00:04Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "CraftHub is a unified platform that makes it easy to discover and download Minecraft mods, plugins, modpacks, and more from multiple sources like Modrinth, SpigotMC, in one place.", "repo": "https://github.com/timeobvrt/CraftHub", "demo": "https://crafthub.axeno.me/"}]...
|
[{"post_id": 72214, "ts": "202 [{"post_id": 72214, "ts": "2026-09-22T13:51:22Z", "hours": 5.5394, "text": "I reworked some of page components (again)"}, {"post_id": 69291, "ts": "2026-09-16T19:05:54Z", "hours": 1.3506, "text": "I reworked some of the page components to give them a more human feel, rather than an AI-generated one."}, {"post_id": 66178, "ts": "2026-09-11T20:46:49Z", "hours": 1.0422, "text": "I’ve added a new download modal to simplify downloads and list all available versions in one place"}, {"post_id": 66147, "ts": "2026-09-11T19:37:50Z", "hours": 6.1339, "text": "CraftHub now supports SpigotMC resources alongside Modrinth projects."}, {"post_id": 65113, "ts": "2026-09-10T00:51:56Z", "hours": 3.1531, "text": "I redesigned a large part of the website to give CraftHub cleaner and more consitent look. The search and project pages have been reworked, with better layouts, project cards, filter and overall navigation. The search system has been significantly improved. You can now filter projects by Minecraft version, loader and project type, as well as sort results by relevance, downloads, publish date, … I aso added pagination and improved support for projects that have multiple types such as projects available as both a mod and a plugin. The integration with the Modrinth API v3 has also been improved to better handle project data and filtering."}, {"post_id": 64873, "ts": "2026-09-09T15:56:17Z", "hours": 0.305, "text": "I set up the project using Laravel, Blade and Tailwind CSS, create the first version of homepage and started integrating the Modrinth API for project search."}]...
|
Title: CraftHub by @Axeno | Stardance
Devlogs:
I Title: CraftHub by @Axeno | Stardance
Devlogs:
I set up the project using Laravel, Blade and Tailwind CSS, create the first version of homepage and started integrating the Modrinth API for project search.
I redesigned a large part of the website to give CraftHub cleaner and more consitent look. The search and project pages have been reworked, with better layouts, project cards, filter and overall navigation. The search system has been significantly improved. You can now filter projects by Minecraft version, loader and project type, as well as sort results by relevance, downloads, publish date, … I aso added pagination and improved support for projects that have multiple types such as projects available as both a mod and a plugin. The integration with the Modrinth API v3 has also been improved to better handle project data and filtering.
CraftHub now supports SpigotMC resources alongside Modrinth projects.
I’ve added a new download modal to simplify downloads and list all available versions in one place
I reworked some of the page components to give them a more human feel, rather than an AI-generated one.
I reworked some of page components (again)
Ships:
CraftHub is a unified platform that makes it easy to discover and download Minecraft mods, plugins, modpacks, and more from multiple sources like Modrinth, SpigotMC, in one place....
|
1793004923.2992067
|
1793091323.2992067
|
|
56954
|
Times by @Vishy | Stardance
|
Vishy
|
1
|
7.0
|
11
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-26T13:34:29Z", "hours": 7.0, "multiplier": 1.52, "payout": 11, "blessing": "neutral", "text": "Hello everyone I made a wordle and am hoping to make a whole series of NYT games, overall they require premium, and if I make a simpler and free version I think it will be very good. Currently I have made Wordle otherwise known as my version Fishle anyways go try it out, I am also in the process of making the tile game, but a little simpler less tiles and free. But lets talk about Fishle, in Fishle you have unlimited games and it has 5 thousand words to choose from, so that should keep you very occupied. Anyways I hope you guys have fun playing, so I ALSO MIGRATED FROM A DIFFERENT EVENT, that is why I have 7 hours and one devlog, but I am also glad stardance is extended, thank you so much guys enjoy!", "repo": "https://github.com/justvishy12/Fishy-Times", "demo": "https://justvishy12.github.io/Fishy-Times/"}]...
|
[{"post_id": 73980, "ts": "202 [{"post_id": 73980, "ts": "2026-09-26T13:30:39Z", "hours": 6.9356, "text": "Finish Wordle Game I know this is my only devlog, but I am migrating from a different event . Hello everyone we are back to stardance, I thought it was done but nope, now I have time to do at least 30 hours. So I am scrapping this project but I will ship because this is like my first actual thing I made that users can do online, and it uses godot, so without further to do lets get into it. Game Making So we used alot of randi and button presses, randi for choosing the words and button for the keyboard. Also I have a 5 thousand word list of 5 letter english words, and some are simple others are not, so this should be very fun. Anyways I have tyles and I have a white text ontop of them, so each tile has a text box on it, and whenever u press or delete in the code it changes the variable number on where u are. And I use the characters check if it is in the choosen word or not and modulate it. This overall was very hard and took some time (not logged). I also spent a lot of time on figma creating the assets."}]...
|
Title: Times by @Vishy | Stardance
Devlogs:
Finis Title: Times by @Vishy | Stardance
Devlogs:
Finish Wordle Game I know this is my only devlog, but I am migrating from a different event . Hello everyone we are back to stardance, I thought it was done but nope, now I have time to do at least 30 hours. So I am scrapping this project but I will ship because this is like my first actual thing I made that users can do online, and it uses godot, so without further to do lets get into it. Game Making So we used alot of randi and button presses, randi for choosing the words and button for the keyboard. Also I have a 5 thousand word list of 5 letter english words, and some are simple others are not, so this should be very fun. Anyways I have tyles and I have a white text ontop of them, so each tile has a text box on it, and whenever u press or delete in the code it changes the variable number on where u are. And I use the characters check if it is in the choosen word or not and modulate it. This overall was very hard and took some time (not logged). I also spent a lot of time on figma creating the assets.
Ships:
Hello everyone I made a wordle and am hoping to make a whole series of NYT games, overall they require premium, and if I make a simpler and free version I think it will be very good. Currently I have made Wordle otherwise known as my version Fishle anyways go try it out, I am also in the process of making the tile game, but a little simpler less tiles and free. But lets talk about Fishle, in Fishle you have unlimited games and it has 5 thousand words to choose from, so that should keep you very occupied. Anyways I hope you guys have fun playing, so I ALSO MIGRATED FROM A DIFFERENT EVENT, that is why I have 7 hours and one devlog, but I am also glad stardance is extended, thank you so much guys enjoy!...
|
1793004922.4483635
|
1793091322.4483635
|
|
37553
|
Privacy Policy Checker by @Christie | Stardance
|
Christie
|
1
|
13.0
|
154
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T06:49:12Z", "hours": 13.0, "multiplier": 12.15, "payout": 154, "blessing": "neutral", "text": "This is a simple policy checker that allows you to enter a URL and check its policies. As a security-conscious person, I always found myself really frustrated that the 10000 legal policies every company has are impossible to a) find and b) parse, because they’re written in legalese. I built this tool to help me to find and check the policies of websites we use in normal English, using AI to summarize and explain them. I learnt how to use Python to scrape websites! It was super interesting to see how you can automate something that would otherwise involve a lot of manual searching and copying. One thing I found particularly interesting was considering the ethical side of things. Just because information is publicly accessible doesn’t necessarily mean it’s okay to collect and use it however you want, but also scraping a page is basically the same thing as visiting it, so I don’t really know what my opinion is here. After spending a long time working mostly with JavaScript, it was also nice to return to Python and refresh my memory! That doesn’t mean it was easy though – debugging my code was sometimes super difficult as I had lots of moving parts :) Getting to call AI models through an API was also pretty cool! It was interesting to see how you can integrate AI into your own code and build tools around it, rather than just interacting with AI through a chat interface. And finally, a huge thank you to Hack Club for providing free AI access and making it possible to experiment with these tools! It’s awesome to have the opportunity to learn, build, and explore new ideas without worrying about API costs. Also thanks to Claude for helping me deploy my project! ALSO ALSO IF YOU’RE READING THIS, THANK YOU SOO MUCH!! I REALLY WANT A RETRO COMPUTER MAGAZINE SO PLEASSEEE BE NICE TO ME :»>", "repo": "https://github.com/Christie125/Policy_checker", "demo": "https://policychecker.christie.hackclub.app/"}]...
|
[{"post_id": 78669, "ts": "202 [{"post_id": 78669, "ts": "2026-10-11T07:39:05Z", "hours": 3.7278, "text": "Sorry about the bullet points, short on time.py Made SECRET_KEY mandatory: app now raises RuntimeError at startup if it’s missing, instead of silently running with None Added rate limiting via Flask-Limiter, returns a friendly 429 message when exceeded, added Flask_Limiter to requirements Wrapped the AI content-processing call in a try/except so a failure there shows an error message instead of crashing the request -Turned off debug mode for production added a “Back” button Fixed HTML typos Added a little bit of CSS! Deployed with Nest!!!! Yayyy I’m done!!"}, {"post_id": 73342, "ts": "2026-09-24T22:47:46Z", "hours": 4.7181, "text": "I finished the logic for my app, putting together all the previous functions with Flask to make a functioning web app. Now all I have to do is add CSS!"}, {"post_id": 57049, "ts": "2026-08-29T03:50:03Z", "hours": 2.5925, "text": "I added a bunch of stuff to my app! To explain simply: -> I scrape the content off all the links using Beautiful Soup -> I push this content into AI to be summarised using Hack Club’s AI API -> Summarised terms and conditions are returned! This means I can work on my frontend now yayyyy!!!"}, {"post_id": 44317, "ts": "2026-08-10T00:07:56Z", "hours": 0.4703, "text": "Added scanning of robots.txt and sitemap.xml CHECKPOINTTT I finished building the first stage of the web app by coding the second and third ways way discover legal document links – scanning robots.txt and sitemap.xml using Requests, Python and BeautifulSoup, and filtering them against a list of keywords such as “privacy”, “terms”, and “cookies” and removing duplicates. Now I have three ways of finding links, and can move onto actually reading what’s inside them! Yay :)"}, {"post_id": 36256, "ts": "2026-07-28T07:43:25Z", "hours": 0.8153, "text": "Adding Scraping Robots.txt Functionality To get a more comprehensive link check, I made it so that my link searcher also scraped robots.txt of a domain, where more potential links may be lurking (hehehe). This is important because it will help me find more terms to scan, making my tool better! This was done in a similar process to the scraping footers function. However, I used response/request to get the robots.txt file instead of scanning as page with BeautifulSoup. Just as before, I scanned the links and checked for duplicates before adding to the main array. Yay! Below, you can see it in action (I combined the two functions)."}, {"post_id": 33742, "ts": "2026-07-23T21:57:44Z", "hours": 0.3575, "text": "I focused on building the first stage of the web app by coding the first way discover legal document links – scanning page footers using Requests and BeautifulSoup, and filtering them against a list of keywords such as “privacy”, “terms”, and “cookies” and removing duplicates. I also began implementing a second discovery method using robots.txt, which can now be loaded. This didn’t take me 19 minutes – over 2 hours, in fact – but I only discovered Stardance later."}]...
|
Title: Privacy Policy Checker by @Christie | Stard Title: Privacy Policy Checker by @Christie | Stardance
Devlogs:
I focused on building the first stage of the web app by coding the first way discover legal document links – scanning page footers using Requests and BeautifulSoup, and filtering them against a list of keywords such as “privacy”, “terms”, and “cookies” and removing duplicates. I also began implementing a second discovery method using robots.txt, which can now be loaded. This didn’t take me 19 minutes – over 2 hours, in fact – but I only discovered Stardance later.
Adding Scraping Robots.txt Functionality To get a more comprehensive link check, I made it so that my link searcher also scraped robots.txt of a domain, where more potential links may be lurking (hehehe). This is important because it will help me find more terms to scan, making my tool better! This was done in a similar process to the scraping footers function. However, I used response/request to get the robots.txt file instead of scanning as page with BeautifulSoup. Just as before, I scanned the links and checked for duplicates before adding to the main array. Yay! Below, you can see it in action (I combined the two functions).
Added scanning of robots.txt and sitemap.xml CHECKPOINTTT I finished building the first stage of the web app by coding the second and third ways way discover legal document links – scanning robots.txt and sitemap.xml using Requests, Python and BeautifulSoup, and filtering them against a list of keywords such as “privacy”, “terms”, and “cookies” and removing duplicates. Now I have three ways of finding links, and can move onto actually reading what’s inside them! Yay :)
I added a bunch of stuff to my app! To explain simply: -> I scrape the content off all the links using Beautiful Soup -> I push this content into AI to be summarised using Hack Club’s AI API -> Summarised terms and conditions are returned! This means I can work on my frontend now yayyyy!!!
I finished the logic for my app, putting together all the previous functions with Flask to make a functioning web app. Now all I have to do is add CSS!
Sorry about the bullet points, short on time.py Made SECRET_KEY mandatory: app now raises RuntimeError at startup if it’s missing, instead of silently running with None Added rate limiting via Flask-Limiter, returns a friendly 429 message when exceeded, added Flask_Limiter to requirements Wrapped the AI content-processing call in a try/except so a failure there shows an error message instead of crashing the request -Turned off debug mode for production added a “Back” button Fixed HTML typos Added a little bit of CSS! Deployed with Nest!!!! Yayyy I’m done!!
Ships:
This is a simple policy checker that allows you to enter a URL and check its policies. As a security-conscious person, I always found myself really frustrated that the 10000 legal policies every company has are impossible to a) find and b) parse, because they’re written in legalese. I built this tool to help me to find and check the policies of websites we use in normal English, using AI to summarize and explain them. I learnt how to use Python to scrape websites! It was super interesting to see how you can automate something that would otherwise involve a lot of manual searching and copying. One thing I found particularly interesting was considering the ethical side of things. Just because information is publicly accessible doesn’t necessarily mean it’s okay to collect and use it however you want, but also scraping a page is basically the same thing as visiting it, so I don’t really know what my opinion is here. After spending a long time working mostly with JavaScript, it was also nice to return to Python and refresh my memory! That doesn’t mean it was easy though – debugging my code was sometimes super difficult as I had lots of moving parts :) Getting to call AI models through an API was also pretty cool! It was interesting to see how you can integrate AI into your own code and build tools around it, rather than just interacting with AI through a chat interface. And finally, a huge thank you to Hack Club for providing free AI access and making it possible to experiment with these tools! It’s awesome to have the opportunity to learn, build, and explore new ideas without worrying about API costs. Also thanks to Claude for helping me deploy my project! ALSO ALSO IF YOU’RE READING THIS, THANK YOU SOO MUCH!! I REALLY WANT A RETRO COMPUTER MAGAZINE SO PLEASSEEE BE NICE TO ME :»>...
|
1793004920.564789
|
1793091320.564789
|
|
56905
|
OrbitTrace by @Jhenil | Stardance
|
Jhenil
|
1
|
17.0
|
328
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-11T00:35:53Z", "hours": 17.0, "multiplier": 19.06, "payout": 328, "blessing": "neutral", "text": "What Is It? I have made a 3D Earth Satellite Tracker. If you can explore and get live information about the satellites. It uses an API link which gives the code the data which it needs to go through a custom made equation and does calculations to update the satellite’s location accurately and create a projected path for it. The globe is custom made with THREE.js and Vite. Features 3D Earth Real Satellite Positions using Satellite.js Search Feature Select Satellites Camera zoom Predicted and completed orbital path Ground Track Satellite Position Replay Information Panel Loading Screen Unique Features The ground track feature is I think the best one because we all know that satellite’s orbit around Earth in circles but it looks different when you see it relative to the Earth. The satellites have weird wavy or boxy type paths if seen on the Earth’s surface. Another great feature is replay which can give you replay for the last 90 minutes. It will not be a full 90 minutes, it increments by 1 minute which makes the process of replay faster and you don’t have to sit there for 90 minutes or for the amount of time you have selected. Goal I have mentioned this a lot but I am really close to my goal for an A1 Mini 3D Printer. If you guys leave me great reviews about the project then I will be set for my goal. Thank you in advance to any one who has supported me or has rated my project.", "repo": "https://github.com/JP-code33/OrbitTrace", "demo": "https://orbit-trace-three.vercel.app/"}]...
|
[{"post_id": 65662, "ts": "202 [{"post_id": 65662, "ts": "2026-09-10T23:17:45Z", "hours": 0.6525, "text": "Devlog - 8 I have never been this frustrated to deploy a website. When I went to deploy the website, it kept giving me errors and errors. The main fault was that Vite 8 used a rolldown to bundle dependencies. It couldn’t bundle my satellite.js as it used js and WASM. Then I tried many times to make the code forcefully use the JS version but it just didn’t work. Then I searched up and saw that Vite 8 causes this and if I downgrade to Vite 7 then it will work then I did that and finally the deployment was turned from errors to success message and now the site is finally live. I will be shipping this project soon. Thank you for the support once again!"}, {"post_id": 65594, "ts": "2026-09-10T20:41:14Z", "hours": 2.5822, "text": "Devlog - 7 I am happy to announce that OrbitTrace is complete . My own 3D satellite tracker is complete. For the last 2 hours I have focused on features which are Ground Track & Replay . Let’s start with Ground Track. The satellite on the model let’s us know that where the satellite is and the projected paths are just circles you may say. But Ground Track let’s you know the satellite is traveling relative to Earth. Like it travels in weird patterns around the Earth. The replay as you may guess is the where you can time travel. You can go behind in time for about 90 minutes to see where the satellite was. It increments per minute so it doesn’t take full 90 minutes to replay. Thank you for all the support. Goal As I have mentioned earlier this is my last project before and my last hope for A1 Mini 3D printer as it is getting hard to manage school and coding at the same time but I will try my best to work on more projects. I need around 200 more stardust and I think this project has the potential to achieve that. Thank everyone once again!"}, {"post_id": 64482, "ts": "2026-09-08T22:12:17Z", "hours": 2.9764, "text": "Devlog - 6 Ok guys, I think this was the hardest part of the project till now. I was trying to get the day/night version so it replicates the real earth. I this whole time figuring it out. Firstly I start up with math to actually figure out like astronomical values for the shader and to figure out where the Sun will be at what point of time but it didn’t work out but then I went to online libraries which let’s say also didn’t work as I could understand how to use it properly. I made so many changes through out this almost three hours but at the end I made a version where it sees users local time and adjusts the earth whether it will be day time or night time. Thank you and stay tuned!"}, {"post_id": 63632, "ts": "2026-09-07T15:39:56Z", "hours": 2.2867, "text": "Devlog - 5 Finally Finally . I have overcome the problem of syncing the latitude and longitude of the Earth and the satellites. So the main problem was, I used a tutorial to build the earth in 3D so what happened the Earth’s longitude at zero was -90 so because of that the calculations were being correct but the marker was being placed at a wrong latitude. Before I didn’t knew about that so I tried changing the math but that was correct and then when I figured out that is was at a wrong longitude, it was a simple fix as I just added +90 . Then I encountered another problem which was after a search the zoom controls and the drag controls for the earth became sketchy . That was because I was using a normal zoom function before but for zooming in on a satellite after the search it switched to x, y, z coordinate system and after just for normal zoom it tried to switch back to normal but couldn’t and that is why it became sketchy but I fixed that as well. Then I started to add features in. I have added satellite’s porjected path and completed path in now. You can see that in the video below. This was just like debugging. Thank you and stay tuned!"}, {"post_id": 63061, "ts": "2026-09-06T17:28:16Z", "hours": 2.4639, "text": "Devlog - 4 Right now it is being a bit too much of a trial and error debugging for me. I did manage to get all the satellites being added on the earth textured globe. There are around 16,000 satellites. I have separate code which asks the API for the data and then that data gets parsed and then it converts it to TLE and which is then used in the main code to make those markers. Then I added search feature and while making that search feature I noticed that still the syncing of the latitude & longitude of the textured earth and the satellites is still a big problem. I can’t get it too sync with each other . I will be continuing to debug and lets see what happens. Thank you & stay tuned!"}, {"post_id": 62319, "ts": "2026-09-05T17:00:25Z", "hours": 2.4547, "text": "Devlog - 3 In 2 hours I have worked on quite a few different things. Starting it off with a problem mentioned in the last devlog which was having the latitude and longitude of satellites matching that with the earth’s lat and lon. I have fixed that problem and it was quite a silly one because It the API which had me blocked for a temporary basis because I have requested a lot in a few amount of time. So, it was just no responding to the request and that is why the satellites where not appearing and stayed in the middle. Second I added a sliding panel for the satellite information in which I encountered a problem where I was using Raycaster and it detected every click rather than a specific satellite click so then I again did like trial and error process and got it to work at the end. Also created a new data folder so that the data for satellites stays separated from the main code. Next up I will be loading more of the satellites into the project. Thank you and stay tuned."}, {"post_id": 61758, "ts": "2026-09-04T20:18:27Z", "hours": 2.3228, "text": "Devlog - 2 Ok guys I have spent the time mostly getting the API working and gathering the TLE data which just means two line element data. I am currently getting data from CelesTrak and it is going quite good. I have also gotten the marker for the ISS on the globe. The part I am struggling with currently is the fact to sync the coordinates of the satellite with the earth and with the mouse movement. Currently I am trying many different things out like stopping the earth rotation and changing the camera location rather than the actual earth, just like trial and error. I have still not found a way to get this thing to work but I am continuing the trial and error process and will update about it in the next devlog. Thank you and stay tuned! Plus sorry for late devlog as I can’t really focus on coding much as the school has started and all."}, {"post_id": 59851, "ts": "2026-09-01T20:32:28Z", "hours": 1.4969, "text": "Devlog - 1 Thank you so for the support for SkyTrace . That project got great votes and helped me get closer to my goal for an A1 Mini 3D Printer . After seeing the success of SkyTrace, I have decided to make OrbitTrace. SkyTrace = Aviation enthusiast whereas OrbitTrace = Space enthusiast . Progress For the progress I worked on making a globe, make it rotate, follow the direction of the and I have added stars. This process for me was fairly quick because I have previously made a globe for 3d flight tracking but let just say it didn’t go well. But I am back to making globes. Currently, I have planned to make it a satellite tracker but as usual it is not going to be that simple. I am going to add more unique features to as I did to SkyTrace. It might take me longer to post devlogs because now I have to manage studies and coding which is getting a bit harder, but I will ship this project. Thank you & stay tuned!"}]...
|
Title: OrbitTrace by @Jhenil | Stardance
Devlogs: Title: OrbitTrace by @Jhenil | Stardance
Devlogs:
Devlog - 1 Thank you so for the support for SkyTrace . That project got great votes and helped me get closer to my goal for an A1 Mini 3D Printer . After seeing the success of SkyTrace, I have decided to make OrbitTrace. SkyTrace = Aviation enthusiast whereas OrbitTrace = Space enthusiast . Progress For the progress I worked on making a globe, make it rotate, follow the direction of the and I have added stars. This process for me was fairly quick because I have previously made a globe for 3d flight tracking but let just say it didn’t go well. But I am back to making globes. Currently, I have planned to make it a satellite tracker but as usual it is not going to be that simple. I am going to add more unique features to as I did to SkyTrace. It might take me longer to post devlogs because now I have to manage studies and coding which is getting a bit harder, but I will ship this project. Thank you & stay tuned!
Devlog - 2 Ok guys I have spent the time mostly getting the API working and gathering the TLE data which just means two line element data. I am currently getting data from CelesTrak and it is going quite good. I have also gotten the marker for the ISS on the globe. The part I am struggling with currently is the fact to sync the coordinates of the satellite with the earth and with the mouse movement. Currently I am trying many different things out like stopping the earth rotation and changing the camera location rather than the actual earth, just like trial and error. I have still not found a way to get this thing to work but I am continuing the trial and error process and will update about it in the next devlog. Thank you and stay tuned! Plus sorry for late devlog as I can’t really focus on coding much as the school has started and all.
Devlog - 3 In 2 hours I have worked on quite a few different things. Starting it off with a problem mentioned in the last devlog which was having the latitude and longitude of satellites matching that with the earth’s lat and lon. I have fixed that problem and it was quite a silly one because It the API which had me blocked for a temporary basis because I have requested a lot in a few amount of time. So, it was just no responding to the request and that is why the satellites where not appearing and stayed in the middle. Second I added a sliding panel for the satellite information in which I encountered a problem where I was using Raycaster and it detected every click rather than a specific satellite click so then I again did like trial and error process and got it to work at the end. Also created a new data folder so that the data for satellites stays separated from the main code. Next up I will be loading more of the satellites into the project. Thank you and stay tuned.
Devlog - 4 Right now it is being a bit too much of a trial and error debugging for me. I did manage to get all the satellites being added on the earth textured globe. There are around 16,000 satellites. I have separate code which asks the API for the data and then that data gets parsed and then it converts it to TLE and which is then used in the main code to make those markers. Then I added search feature and while making that search feature I noticed that still the syncing of the latitude & longitude of the textured earth and the satellites is still a big problem. I can’t get it too sync with each other . I will be continuing to debug and lets see what happens. Thank you & stay tuned!
Devlog - 5 Finally Finally . I have overcome the problem of syncing the latitude and longitude of the Earth and the satellites. So the main problem was, I used a tutorial to build the earth in 3D so what happened the Earth’s longitude at zero was -90 so because of that the calculations were being correct but the marker was being placed at a wrong latitude. Before I didn’t knew about that so I tried changing the math but that was correct and then when I figured out that is was at a wrong longitude, it was a simple fix as I just added +90 . Then I encountered another problem which was after a search the zoom controls and the drag controls for the earth became sketchy . That was because I was using a normal zoom function before but for zooming in on a satellite after the search it switched to x, y, z coordinate system and after just for normal zoom it tried to switch back to normal but couldn’t and that is why it became sketchy but I fixed that as well. Then I started to add features in. I have added satellite’s porjected path and completed path in now. You can see that in the video below. This was just like debugging. Thank you and stay tuned!
Devlog - 6 Ok guys, I think this was the hardest part of the project till now. I was trying to get the day/night version so it replicates the real earth. I this whole time figuring it out. Firstly I start up with math to actually figure out like astronomical values for the shader and to figure out where the Sun will be at what point of time but it didn’t work out but then I went to online libraries which let’s say also didn’t work as I could understand how to use it properly. I made so many changes through out this almost three hours but at the end I made a version where it sees users local time and adjusts the earth whether it will be day time or night time. Thank you and stay tuned!
Devlog - 7 I am happy to announce that OrbitTrace is complete . My own 3D satellite tracker is complete. For the last 2 hours I have focused on features which are Ground Track & Replay . Let’s start with Ground Track. The satellite on the model let’s us know that where the satellite is and the projected paths are just circles you may say. But Ground Track let’s you know the satellite is traveling relative to Earth. Like it travels in weird patterns around the Earth. The replay as you may guess is the where you can time travel. You can go behind in time for about 90 minutes to see where the satellite was. It increments per minute so it doesn’t take full 90 minutes to replay. Thank you for all the support. Goal As I have mentioned earlier this is my last project before and my last hope for A1 Mini 3D printer as it is getting hard to manage school and coding at the same time but I will try my best to work on more projects. I need around 200 more stardust and I think this project has the potential to achieve that. Thank everyone once again!
Devlog - 8 I have never been this frustrated to deploy a website. When I went to deploy the website, it kept giving me errors and errors. The main fault was that Vite 8 used a rolldown to bundle dependencies. It couldn’t bundle my satellite.js as it used js and WASM. Then I tried many times to make the code forcefully use the JS version but it just didn’t work. Then I searched up and saw that Vite 8 causes this and if I downgrade to Vite 7 then it will work then I did that and finally the deployment was turned from errors to success message and now the site is finally live. I will be shipping this project soon. Thank you for the support once again!
Ships:
What Is It? I have made a 3D Earth Satellite Tracker. If you can explore and get live information about the satellites. It uses an API link which gives the code the data which it needs to go through a custom made equation and does calculations to update the satellite’s location accurately and create a projected path for it. The globe is custom made with THREE.js and Vite. Features 3D Earth Real Satellite Positions using Satellite.js Search Feature Select Satellites Camera zoom Predicted and completed orbital path Ground Track Satellite Position Replay Information Panel Loading Screen Unique Features The ground track feature is I think the best one because we all know that satellite’s orbit around Earth in circles but it looks different when you see it relative to the Earth. The satellites have weird wavy or boxy type paths if seen on the Earth’s surface. Another great feature is replay which can give you replay for the last 90 minutes. It will not be a full 90 minutes, it increments by 1 minute which makes the process of replay faster and you don’t have to sit there for 90 minutes or for the amount of time you have selected. Goal I have mentioned this a lot but I am really close to my goal for an A1 Mini 3D Printer. If you guys leave me great reviews about the project then I will be set for my goal. Thank you in advance to any one who has supported me or has rated my project....
|
1793004919.326967
|
1793091319.326967
|
|
14535
|
Issued YSWS by @Acidicts | Stardance
|
Acidicts
|
1
|
91.58
|
1383
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T17:03:11Z", "hours": 89.0, "multiplier": 15.53, "payout": 1383, "blessing": "neutral", "text": "Shipped!!! There are a bunch of features and stuff that I have added to this since flavortown, from the ordering system to devlogs and ship flow. Project Info This is the ruby on rails app for the ysws draft #issued where YS: Designs made with Code WS: Clothes and other swag with those designs Features added: A bunch of features have been added and I have separated them to 3 categories Major ones for functionality, quality of life for feel and use, security for data security. New Major Features: Designs view now is more detailed including hackatime projects and images from devlogs and ships Ship flow system so you can submit to the ysws Product Design system (admin only - for making the shop items by importing from printful via api) Order system using lots of hotwired turbo (choose color, design placement rotation and scale) Notifications (3 types Normal which provides info and 2 others Boolean which gets a yes or no answer and text which gets a written answer Reviewer Panel which shows pending ships to review with some data on (need to add hackatime info for it though) Storing Reviewer proof videos in a cloudflare R2 storage Quality-Of-Life: Added better UI/UX with some issues with need for ironing out (eg font change from workbench to ‘lexend’ and ‘space mono’ Kept a consistent style through the site, although some panels might need better border colour On login it redirects to the page you logged in by Security: I added User DB encryption to protect user data stored on the postgres database instance, such as name and email Summary Made the functional part of the ysws site (Designs, ordering, shipping) Added more security for user data Improved UI(Font and colour scheme)", "repo": "https://github.com/Acidicts/Issued", "demo": "https://issued.bing-bong.uk"}]...
|
[{"post_id": 78879, "ts": "202 [{"post_id": 78879, "ts": "2026-10-11T21:05:08Z", "hours": 2.5772, "text": "I created the fulfilment system for a fulfilment team to use Recent changes Removed redundant save! calls and updated fulfillment tests to reduce unnecessary database operations and align test logic with current behavior 9acc056 . Added a fulfillment role, batch pipeline, and popup controller to support new workflow automation and UI interactions afa7a20 . The popup controller likely handles transient UI elements like notifications or modals. Fixed a crash in /designs preview rendering by resolving an issue blocking Ruby scan/lint CI, ensuring previews no longer fail unexpectedly ( 911f035 ). Corrected a stray question mark in a design preview image tag to prevent malformed HTML output ( 955dd6c ). Added a note about YSWS draft sponsorship documentation, possibly for tracking external partnerships or funding discussions ( d92d571 ). No performance optimizations or subsystem overhauls were addressed in this cycle. Next steps depend on external feedback and test coverage improvements implied by recent test updates."}, {"post_id": 75924, "ts": "2026-10-01T16:48:57Z", "hours": 0.6297, "text": "Deploying on coolify and fixing bugs with that + encrypting current db"}, {"post_id": 75729, "ts": "2026-09-30T21:34:41Z", "hours": 1.0775, "text": "Recent changes - Installed Bundler 4.0.4 in the Dockerfile to standardize gem management across environments ( 88ba659 ). - Ensured the verification directory exists for SVG upload tests, addressing missing file system setup in test workflows ( 83f2e53 ). - Resolved a Turbo conflict in order steps, likely related to event streaming or frame rendering in Rails views ( e8d08f4 ). Updated navigation unread counts dynamically from notification events, improving real-time feedback for user activity ( a75f6ff )."}, {"post_id": 75254, "ts": "2026-09-29T16:08:17Z", "hours": 3.9967, "text": "## Recent changes Notifications: Unanswered notifications now retain their unread status until explicitly addressed. This ensures users can distinguish between pending and resolved interactions without relying on manual state updates ( 751a370 ). Security: Authentication workflows, file uploads, and resource authorization checks have been updated with additional safeguards. Specifics include input validation and access control refinements, though implementation details are not disclosed in the commit message ( 97e48db )."}, {"post_id": 74657, "ts": "2026-09-27T21:33:33Z", "hours": 2.8042, "text": "Made Notifications Useful Recent changes Persistent unread state for unanswered boolean notifications Notifications with unresolved boolean actions (e.g., approvals) now remain marked as unread until explicitly addressed. This ensures users revisit pending decisions. Commit: 39aabb2 . Interactive notification replies with approval time tracking Added support for direct replies to notifications, along with timestamp logging for when approvals are finalized. This enables granular tracking of response times for actionable alerts. Commit: 6ac80f9 ."}, {"post_id": 74176, "ts": "2026-09-26T21:01:23Z", "hours": 9.8606, "text": "Recent changes Added ship request reviews, resubmission logic, and R2 storage integration for tracking reviewed submissions ( 41b1e43 ). Started on the review workflow Started on Resubmission logic Set up support for cloudflare R2 Guarded Hack Club token persistence behind encryption configuration, ensuring tokens are only stored when encryption is explicitly enabled ( a4b6d0c )."}, {"post_id": 71158, "ts": "2026-09-20T11:24:58Z", "hours": 2.1222, "text": "Recent changes Comment delete, Turbo Comment Box, and ship request fade functionality Add #destroy functionality to the comments with owner permission, path, delete button, and dependent comments. Make use of valid commentable_type/id while building comments and make responses as Turbo streams and wrap up comments within a Turbo frame. Resize the comment box according to the content changes detected by the MutationObserver. Make ship request modal and overlay fade in and out. Consider higher level ship request as blockers for all ship requests. Comment card and comment list styling."}, {"post_id": 70827, "ts": "2026-09-19T20:44:04Z", "hours": 7.9789, "text": "Recent changes Add comments to devlogs and ship requests Implement polymorphic Comment model with CommentsController, Stimulus-driven collapsing comment box, markdown preview form, and styles. Comments will be rendered by Turbo frames and allow editing by owner/admin. This is what else is included in this change: Encryption of hackclub_access_token and hackclub_refresh_token through ActiveRecord encryption, including config, env sample and migration task for already existing non-encrypted tokens. SSL enforcement in production (assume_ssl, force_ssl). Update filter_parameters to strip out sensitive information and OAuth tokens from logs. Fix ExchangeRate API call to include Bearer authentication header. Sanitization of devlogs HTML output through SafeListSanitizer. Update Design#can_make_devlog to can_make_devlog? method and restrict can_ship? check to devlogs without ship request. Add SRI integrity attribute to marked/DOMPurify scripts loaded from CDNs. UI improvements: styles for disabled buttons, utility class for hover-underline effect, devlog cards layout and info icons."}, {"post_id": 65654, "ts": "2026-09-10T22:45:01Z", "hours": 4.65, "text": "Recent changes Ship request flow and SVG conversion : Added support for processing ship requests, handling SVG conversions, and validating devlog images before submission 8ca9b5d9 . Nil safety for Hackatime projects : Wrapped the @hackatime_projects variable in an Array structure to prevent nil errors when retrieving project data a29691ff . CI environment and test ordering : Set RAILS_ENV=test for the CI setup process and reordered the sequence of test steps to improve execution reliability 2968d162 . Authorization consolidation : Refactored authorization guards and consolidated the linking logic for Hackatime projects 4c2b1836 ."}, {"post_id": 63555, "ts": "2026-09-07T13:59:01Z", "hours": 4.54, "text": "Recent changes Fixed a failure in the CI/CD pipeline commit Implemented status tracking for balance events and refined the underlying thread logic associated with them commit Refactored the token rendering component for render_encoded to allow {{design: design.id}} making a pill, to improve display fidelity and added an edit functionality for devlog entries commit Integrated support for uploading images directly within the devlog interface and established links to corresponding Hackatime projects commit"}, {"post_id": 62972, "ts": "2026-09-06T15:23:56Z", "hours": 7.4994, "text": "Added Devlogs and changed hackatime projects to be multi model per design. Move hackatime project linkage from a single designs.hackatime_project column to a has_many hackatime_projects model, syncing each project’s time and aggregating totals on designs. Add devlogs, ship_requests, ships, and comments models/routes/views for design logging and shipping, and make balance_events polymorphic.Update designs controller, helpers, and views to render multiple project pills, allow adding/removing linked projects, and show a combined hackatime/image/devlog layout. Add redcarpet for Markdown rendering and adjust CSS for dark mode, responsive galleries, and pill controls. Added Devlogs and the prep for adding the shipping flow I added devlogs to the project in prep for the shipping flow"}, {"post_id": 61811, "ts": "2026-09-04T21:55:13Z", "hours": 3.1611, "text": "Recent changes Added support for balance events and thread adjustments to improve financial tracking accuracy. This also included an update to the notification rendering system to safely handle these new data types without breaking existing templates (commit: ( faed39b57619 )). Fixed the positioning of the design box within the product editor. This specifically addresses display issues occurring when editing products via /admin/products/<id>/edit (commit: ( aa4e314b5dcd ))."}, {"post_id": 60507, "ts": "2026-09-02T21:52:42Z", "hours": 5.5383, "text": "I’ve focused on refining the shop page styling, header positioning, and cost handling logic ( d10a9c51 ). The recent batch of work involved schema adjustments for a product enabled flag, adding support for cost and thread costs ( 82f9f2d1 ), applying a schema fix ( 3f8bcb8a ), fixing CI pipeline issues ( 71e98a ), and pushing updates to production ( ca19da29 ). Recent changes Added an image variants system and updated views to utilize thumb and display variants specifically ( a2e4eb28 ). Implemented cost handling updates, including a specific support for thread costs alongside general product cost tracking ( 82f9f2d1 ). Added an auto annotaterb script executed within the Rails migration process ( 7d07d278 ). Applied schema fixes to ensure data integrity during the recent updates ( 3f8bcb8a ). Updated the RSVP page styles and refreshed the thanks template ( 217945eb ). Refined header positioning and shop page styling across the frontend ( d10a9c51 ). Added a product enabled flag to control product visibility and state in the system ( 82f9f2d1 ). Whats next: Umm, so whats next I think would be adding balance_events so you can trace changes in balances(spending/earning)"}, {"post_id": 59213, "ts": "2026-08-31T21:41:46Z", "hours": 2.8433, "text": "Since the last update, I’ve focused on enhancing the order preview system to support complex design workflows and improving image navigation for multi-image configurations. Recent changes Added multi-image preview navigation with left/right arrow buttons and an index display (e.g., “Image 2 of 5”) to streamline design review workflows ( b269fe5 ). This change directly addresses the need to review multiple design iterations in a single view without page reloads. Refactored the order preview component to support multiple print areas with independently configurable design images. This involved restructuring the preview logic to handle dynamic print area definitions while maintaining consistent state across design selections ( 0545118 ). The refactor enables customers to visualize different designs on separate print areas (e.g., front/back/ sleeves) within the same order preview."}, {"post_id": 58236, "ts": "2026-08-30T16:26:21Z", "hours": 8.9714, "text": "Print area management UI & backend ( a42a00d ): Built a full stack for managing print areas (think “where the design goes” on a shirt front or back). This includes models to store print area dimensions, controllers to handle CRUD ops, and RESTful routes to tie it all together. The frontend now lets users drag/drop to define print zones with responsive positioning ( position: absolute + transform: scale to handle dynamic sizing). Edge case: Products with multiple print areas (e.g., front + back) now render distinct configurations without clobbering state. Printful service & stock syncing ( 7b5d817 ): Added printful_id to product models to map Issued products to Printful’s inventory. UI updates to display Printful sync status (green checkmarks for success, red alerts for failures). Technical tangents The print area system was a slow make. For example: To ensure designs stay within printable bounds, I had to calculate dynamic margins based on product type (e.g., a hoodie’s print area ≠ a mug’s). This involved hacking some trigonometry into the frontend to snap selections to “safe zones.” On the backend, I’m using ActiveRecord callbacks to validate print area dimensions against product specs. If a user tries to set a print area wider than the product allows It raises a PrintAreaOutOfBounds error Future features The actual ship flow and being able to edit multiple print areas instead of just the one"}, {"post_id": 53048, "ts": "2026-08-23T13:14:54Z", "hours": 4.1422, "text": "Added Variants for size and colors with stock for each printful region facility. Stimulus target which groups the variants by colour and deletes empty groups"}, {"post_id": 50653, "ts": "2026-08-19T22:27:11Z", "hours": 3.3331, "text": "Created Printful API Integration and improved order screen to allow better customisations Add Printful import endpoint and order preview UI improvementsImplemented Printful product import, added order preview generation, UI styles, and controller changes for drag‑resize‑rotate preview."}, {"post_id": 37237, "ts": "2026-07-29T19:53:07Z", "hours": 0.3972, "text": "Improved the New Order Page to be neater, and better themed along the colour scheme"}, {"post_id": 37220, "ts": "2026-07-29T19:25:45Z", "hours": 1.2728, "text": "Rename admin-product to products and refactor CSS, controller, and views. Updated class names and CSS variables, added .no-product-grid and .dashed-break styles. Simplified image loading logic in the product preview controller, and replaced large inline layout styles with external stylesheet includes."}, {"post_id": 35739, "ts": "2026-07-27T11:35:58Z", "hours": 1.3936, "text": "Add brand colors, badge styles, and redesign pagesAdd brand color variables, badge styles, and a full redesign of design pages with responsive layouts, fixed redirect stuff, optimised by using one erb engine call for designs"}, {"post_id": 35463, "ts": "2026-07-26T22:10:06Z", "hours": 1.1911, "text": "Dropdown Styling & Component Replacement The design form’s dropdown interface was overhauled to improve visual consistency and user experience. A native <select> element was replaced with a custom-styled solution using 3ab7405 , allowing for greater flexibility in aligning with the project’s aesthetic goals. This change ensures smoother integration with the overall theme and avoids browser-specific styling quirks. CSS Refactoring & Theme Variables Design form styling was fully refactored in 928b7b0 , introducing global theme variables to streamline color, spacing, and typography management. This move simplifies future theme adjustments and promotes code reuse. Model defaults were also standardized to reduce redundancy in form initialization logic, making the codebase more maintainable. Admin Test Redirects In 2af0071 , the admin test workflow was updated to automatically redirect to the products list URL after test submissions. This improves user navigation by providing immediate feedback and next steps, ensuring a cohesive backend experience. Current Status The frontend is now more thematically consistent, with design forms serving as a primary focus area. Admin workflows are being optimized for clarity and efficiency, though backend test processing logic remains pending integration. The codebase is gradually adopting a modular structure, particularly for UI components and configuration. Things Learnt Custom dropdowns using CSS and JavaScript offer better cross-browser compatibility than styling native <select> elements. Theme variables significantly reduce the effort required for UI adjustments, especially as the project scales. Redirects in admin flows should be designed with user context in mind to avoid confusion."}, {"post_id": 34704, "ts": "2026-07-25T17:05:22Z", "hours": 1.6431, "text": "Project Summary: Admin & Infrastructure Progress Key Milestones & Features Built 🛠️ Admin Product Management UI : Added a full admin interface for product management, including preview capabilities, environment variable integration, and updated order flow logic. This enables admins to efficiently manage product listings and track orders. 🆓 Privacy Enhancements : Implemented a “hide PII” controller to anonymize user data in the UI, ensuring sensitive information is protected in user-facing tables. 🧪 Product Cost Handling : Validated GBP pricing logic for products, ensuring accurate cost handling in the British Pounds currency. 🛠️ CI/CD & Dependency Updates : Configured PostgreSQL in CI pipelines, updated database URLs, and bumped Ruby gem versions to ensure a stable, up-to-date environment. 🎨 Styling Cleanup : Replaced inline styles in admin views with stylesheet_link_tag imports, improving maintainability and separation of concerns. Current Status The project now has a functional admin dashboard for product and order management, with privacy features baked into user data displays. Infrastructure is PostgreSQL-ready in CI, and styling practices align with modern Rails conventions. Core e-commerce logic (pricing, currency) is under testing, with environment variables streamlining configuration. Lessons Learned Privacy by Design : Integrating PII protection early simplifies compliance and reduces technical debt. Infrastructure as Code : Automating PostgreSQL setup in CI saves manual effort and reduces environment inconsistencies. Maintainable Styles : Moving to external stylesheets improves collaboration and long-term code hygiene. Order Page Started Created a functional order page Currency Handling : Explicit GBP validation highlights the need for clear financial logic in order systems."}, {"post_id": 32945, "ts": "2026-07-22T13:01:39Z", "hours": 1.1947, "text": "Replace admin view inline styles with stylesheet_link_tag importsRemoved large embedded CSS from multiple admin templates and switched to external stylesheet links for consistency and maintainability."}, {"post_id": 32314, "ts": "2026-07-21T12:27:35Z", "hours": 0.3503, "text": "Add CurrencyConvertible include and cost conversion helpersInclude CurrencyConvertible in ApplicationHelper and Product, add cost_usd and cost_gbp methods, remove obsolete gbp_to_usd, usd_per_gbp and fetch_usd_conversion_rates, rename cost column comment, and adjust product inheritance."}, {"post_id": 32039, "ts": "2026-07-20T22:30:02Z", "hours": 1.2369, "text": "Update README, moved CSS files, fixed issues between pages (styling)Include planning file entry, revise README wording, and remove dashboard and notifications stylesheet files."}, {"post_id": 30900, "ts": "2026-07-18T21:33:53Z", "hours": 0.9747, "text": "feat(database): migrate from SQLite to PostgreSQL and switch to Redis infrastructure- replace sqlite3 with PostgreSQL database adapter in Gemfile and config configure Redis for caching, Action Cable, and Active Job instead of Solid adapters add guide attribute to User model for onboarding flow control implement user existence validation in ApplicationController refactor CSS architecture by moving stylesheets to components directory create shared designs.css stylesheet for design pages with responsive styling update todo partial to check guide flag before displaying onboarding prompts add migration for guide column on users table"}, {"post_id": 26210, "ts": "2026-07-10T21:30:31Z", "hours": 0.6197, "text": "Key Milestones & Features The project has made solid strides in building out core admin functionality and refining user interactions: Admin Controller Tests : Comprehensive tests for the dashboard, orders, and products controllers were added, ensuring reliability and laying groundwork for future expansions. Form Submission Control : A disable button feature was implemented in the design-form component to prevent multiple submissions, improving UX and reducing backend load. Dashboard Updates : The dashboard_controller.rb received updates (specifics pending documentation), likely enhancing core admin workflows. Current Status The admin interface is shaping up with test-covered controllers and polished frontend interactions. Testing prioritization suggests a focus on stability, while form improvements reflect attention to user-centric details. The project appears in an active development phase, with July 2026 commits indicating recent momentum. Things Learnt Test-Driven Practices : Adding controller tests early highlights the team’s emphasis on maintainable, scalable code. Form UX Nuances : Disabling submission buttons during processing is a small but impactful tweak to prevent errors and improve responsiveness. Documentation Gaps : The vague “Update dashboard_controller.rb” commit underscores the importance of descriptive commit messages for clarity in collaborative projects."}, {"post_id": 20347, "ts": "2026-07-01T22:27:04Z", "hours": 0.7008, "text": "fix(auth): update product params to include thread_cost instead of cost_gbp - replace deprecated cost_gbp parameter with thread_cost in product creation/update - adjust database migration to add thread_cost column to products table, added shop, added notification page"}, {"post_id": 19576, "ts": "2026-06-30T22:24:00Z", "hours": 1.3847, "text": "Used claude to brainstorm colour schemes and layouts. Created this new dashboard design and transitioned the rest of the site to follow the colour scheme"}, {"post_id": 13382, "ts": "2026-06-21T22:29:32Z", "hours": 0.6847, "text": "Add design image gallery with viewer page- Add image route, controller action, and full-size viewer template Add gallery grid on show page with hover overlays and timestamps Fix partial render syntax (collection with as: :image)"}, {"post_id": 12184, "ts": "2026-06-19T21:59:46Z", "hours": 2.8486, "text": "Summary Major update: background removal, UI improvements, model fixes, and CI stability. Changes Added RemoveBackgroundJob with rembg CLI for automatic background removal Created Image and DesignEditSession models; updated schema comments Added brand.css and regulated form partial for new/edit designs Added dark mode support and image preview scaling Enabled PostgreSQL extensions; switched dev DB to SQLite Removed stale migrations (verified, trust columns from users) Cleaned up model validations and associations Fixed CI test suite with updated fixtures Removed node_modules from git; added to .gitignore Removed unused editor and dashboard views Updated Gemfile/Gemfile.lock dependencies"}]...
|
Title: Issued YSWS by @Acidicts | Stardance
Devlo Title: Issued YSWS by @Acidicts | Stardance
Devlogs:
Summary Major update: background removal, UI improvements, model fixes, and CI stability. Changes Added RemoveBackgroundJob with rembg CLI for automatic background removal Created Image and DesignEditSession models; updated schema comments Added brand.css and regulated form partial for new/edit designs Added dark mode support and image preview scaling Enabled PostgreSQL extensions; switched dev DB to SQLite Removed stale migrations (verified, trust columns from users) Cleaned up model validations and associations Fixed CI test suite with updated fixtures Removed node_modules from git; added to .gitignore Removed unused editor and dashboard views Updated Gemfile/Gemfile.lock dependencies
Add design image gallery with viewer page- Add image route, controller action, and full-size viewer template Add gallery grid on show page with hover overlays and timestamps Fix partial render syntax (collection with as: :image)
Used claude to brainstorm colour schemes and layouts. Created this new dashboard design and transitioned the rest of the site to follow the colour scheme
fix(auth): update product params to include thread_cost instead of cost_gbp - replace deprecated cost_gbp parameter with thread_cost in product creation/update - adjust database migration to add thread_cost column to products table, added shop, added notification page
Key Milestones & Features The project has made solid strides in building out core admin functionality and refining user interactions: Admin Controller Tests : Comprehensive tests for the dashboard, orders, and products controllers were added, ensuring reliability and laying groundwork for future expansions. Form Submission Control : A disable button feature was implemented in the design-form component to prevent multiple submissions, improving UX and reducing backend load. Dashboard Updates : The dashboard_controller.rb received updates (specifics pending documentation), likely enhancing core admin workflows. Current Status The admin interface is shaping up with test-covered controllers and polished frontend interactions. Testing prioritization suggests a focus on stability, while form improvements reflect attention to user-centric details. The project appears in an active development phase, with July 2026 commits indicating recent momentum. Things Learnt Test-Driven Practices : Adding controller tests early highlights the team’s emphasis on maintainable, scalable code. Form UX Nuances : Disabling submission buttons during processing is a small but impactful tweak to prevent errors and improve responsiveness. Documentation Gaps : The vague “Update dashboard_controller.rb” commit underscores the importance of descriptive commit messages for clarity in collaborative projects.
feat(database): migrate from SQLite to PostgreSQL and switch to Redis infrastructure- replace sqlite3 with PostgreSQL database adapter in Gemfile and config configure Redis for caching, Action Cable, and Active Job instead of Solid adapters add guide attribute to User model for onboarding flow control implement user existence validation in ApplicationController refactor CSS architecture by moving stylesheets to components directory create shared designs.css stylesheet for design pages with responsive styling update todo partial to check guide flag before displaying onboarding prompts add migration for guide column on users table
Update README, moved CSS files, fixed issues between pages (styling)Include planning file entry, revise README wording, and remove dashboard and notifications stylesheet files.
Add CurrencyConvertible include and cost conversion helpersInclude CurrencyConvertible in ApplicationHelper and Product, add cost_usd and cost_gbp methods, remove obsolete gbp_to_usd, usd_per_gbp and fetch_usd_conversion_rates, rename cost column comment, and adjust product inheritance.
Replace admin view inline styles with stylesheet_link_tag importsRemoved large embedded CSS from multiple admin templates and switched to external stylesheet links for consistency and maintainability.
Project Summary: Admin & Infrastructure Progress Key Milestones & Features Built 🛠️ Admin Product Management UI : Added a full admin interface for product management, including preview capabilities, environment variable integration, and updated order flow logic. This enables admins to efficiently manage product listings and track orders. 🆓 Privacy Enhancements : Implemented a “hide PII” controller to anonymize user data in the UI, ensuring sensitive information is protected in user-facing tables. 🧪 Product Cost Handling : Validated GBP pricing logic for products, ensuring accurate cost handling in the British Pounds currency. 🛠️ CI/CD & Dependency Updates : Configured PostgreSQL in CI pipelines, updated database URLs, and bumped Ruby gem versions to ensure a stable, up-to-date environment. 🎨 Styling Cleanup : Replaced inline styles in admin views with stylesheet_link_tag imports, improving maintainability and separation of concerns. Current Status The project now has a functional admin dashboard for product and order management, with privacy features baked into user data displays. Infrastructure is PostgreSQL-ready in CI, and styling practices align with modern Rails conventions. Core e-commerce logic (pricing, currency) is under testing, with environment variables streamlining configuration. Lessons Learned Privacy by Design : Integrating PII protection early simplifies compliance and reduces technical debt. Infrastructure as Code : Automating PostgreSQL setup in CI saves manual effort and reduces environment inconsistencies. Maintainable Styles : Moving to external stylesheets improves collaboration and long-term code hygiene. Order Page Started Created a functional order page Currency Handling : Explicit GBP validation highlights the need for clear financial logic in order systems.
Dropdown Styling & Component Replacement The design form’s dropdown interface was overhauled to improve visual consistency and user experience. A native <select> element was replaced with a custom-styled solution using 3ab7405 , allowing for greater flexibility in aligning with the project’s aesthetic goals. This change ensures smoother integration with the overall theme and avoids browser-specific styling quirks. CSS Refactoring & Theme Variables Design form styling was fully refactored in 928b7b0 , introducing global theme variables to streamline color, spacing, and typography management. This move simplifies future theme adjustments and promotes code reuse. Model defaults were also standardized to reduce redundancy in form initialization logic, making the codebase more maintainable. Admin Test Redirects In 2af0071 , the admin test workflow was updated to automatically redirect to the products list URL after test submissions. This improves user navigation by providing immediate feedback and next steps, ensuring a cohesive backend experience. Current Status The frontend is now more thematically consistent, with design forms serving as a primary focus area. Admin workflows are being optimized for clarity and efficiency, though backend test processing logic remains pending integration. The codebase is gradually adopting a modular structure, particularly for UI components and configuration. Things Learnt Custom dropdowns using CSS and JavaScript offer better cross-browser compatibility than styling native <select> elements. Theme variables significantly reduce the effort required for UI adjustments, especially as the project scales. Redirects in admin flows should be designed with user context in mind to avoid confusion.
Add brand colors, badge styles, and redesign pagesAdd brand color variables, badge styles, and a full redesign of design pages with responsive layouts, fixed redirect stuff, optimised by using one erb engine call for designs
Rename admin-product to products and refactor CSS, controller, and views. Updated class names and CSS variables, added .no-product-grid and .dashed-break styles. Simplified image loading logic in the product preview controller, and replaced large inline layout styles with external stylesheet includes.
Improved the New Order Page to be neater, and better themed along the colour scheme
Created Printful API Integration and improved order screen to allow better customisations Add Printful import endpoint and order preview UI improvementsImplemented Printful product import, added order preview generation, UI styles, and controller changes for drag‑resize‑rotate preview.
Added Variants for size and colors with stock for each printful region facility. Stimulus target which groups the variants by colour and deletes empty groups
Print area management UI & backend ( a42a00d ): Built a full stack for managing print areas (think “where the design goes” on a shirt front or back). This includes models to store print area dimensions, controllers to handle CRUD ops, and RESTful routes to tie it all together. The frontend now lets users drag/drop to define print zones with responsive positioning ( position: absolute + transform: scale to handle dynamic sizing). Edge case: Products with multiple print areas (e.g., front + back) now render distinct configurations without clobbering state. Printful service & stock syncing ( 7b5d817 ): Added printful_id to product models to map Issued products to Printful’s inventory. UI updates to display Printful sync status (green checkmarks for success, red alerts for failures). Technical tangents The print area system was a slow make. For example: To ensure designs stay within printable bounds, I had to calculate dynamic margins based on product type (e.g., a hoodie’s print area ≠ a mug’s). This involved hacking some trigonometry into the frontend to snap selections to “safe zones.” On the backend, I’m using ActiveRecord callbacks to validate print area dimensions against product specs. If a user tries to set a print area wider than the product allows It raises a PrintAreaOutOfBounds error Future features The actual ship flow and being able to edit multiple print areas instead of just the one
Since the last update, I’ve focused on enhancing the order preview system to support complex design workflows and improving image navigation for multi-image configurations. Recent changes Added multi-image preview navigation with left/right arrow buttons and an index display (e.g., “Image 2 of 5”) to streamline design review workflows ( b269fe5 ). This change directly addresses the need to review multiple design iterations in a single view without page reloads. Refactored the order preview component to support multiple print areas with independently configurable design images. This involved restructuring the preview logic to handle dynamic print area definitions while maintaining consistent state across design selections ( 0545118 ). The refactor enables customers to visualize different designs on separate print areas (e.g., front/back/ sleeves) within the same order preview.
I’ve focused on refining the shop page styling, header positioning, and cost handling logic ( d10a9c51 ). The recent batch of work involved schema adjustments for a product enabled flag, adding support for cost and thread costs ( 82f9f2d1 ), applying a schema fix ( 3f8bcb8a ), fixing CI pipeline issues ( 71e98a ), and pushing updates to production ( ca19da29 ). Recent changes Added an image variants system and updated views to utilize thumb and display variants specifically ( a2e4eb28 ). Implemented cost handling updates, including a specific support for thread costs alongside general product cost tracking ( 82f9f2d1 ). Added an auto annotaterb script executed within the Rails migration process ( 7d07d278 ). Applied schema fixes to ensure data integrity during the recent updates ( 3f8bcb8a ). Updated the RSVP page styles and refreshed the thanks template ( 217945eb ). Refined header positioning and shop page styling across the frontend ( d10a9c51 ). Added a product enabled flag to control product visibility and state in the system ( 82f9f2d1 ). Whats next: Umm, so whats next I think would be adding balance_events so you can trace changes in balances(spending/earning)
Recent changes Added support for balance events and thread adjustments to improve financial tracking accuracy. This also included an update to the notification rendering system to safely handle these new data types without breaking existing templates (commit: ( faed39b57619 )). Fixed the positioning of the design box within the product editor. This specifically addresses display issues occurring when editing products via /admin/products/<id>/edit (commit: ( aa4e314b5dcd )).
Added Devlogs and changed hackatime projects to be multi model per design. Move hackatime project linkage from a single designs.hackatime_project column to a has_many hackatime_projects model, syncing each project’s time and aggregating totals on designs. Add devlogs, ship_requests, ships, and comments models/routes/views for design logging and shipping, and make balance_events polymorphic.Update designs controller, helpers, and views to render multiple project pills, allow adding/removing linked projects, and show a combined hackatime/image/devlog layout. Add redcarpet for Markdown rendering and adjust CSS for dark mode, responsive galleries, and pill controls. Added Devlogs and the prep for adding the shipping flow I added devlogs to the project in prep for the shipping flow
Recent changes Fixed a failure in the CI/CD pipeline commit Implemented status tracking for balance events and refined the underlying thread logic associated with them commit Refactored the token rendering component for render_encoded to allow {{design: design.id}} making a pill, to improve display fidelity and added an edit functionality for devlog entries commit Integrated support for uploading images directly within the devlog interface and established links to corresponding Hackatime projects commit
Recent changes Ship request flow and SVG conversion : Added support for processing ship requests, handling SVG conversions, and validating devlog images before submission 8ca9b5d9 . Nil safety for Hackatime projects : Wrapped the @hackatime_projects variable in an Array structure to prevent nil errors when retrieving project data a29691ff . CI environment and test ordering : Set RAILS_ENV=test for the CI setup process and reordered the sequence of test steps to improve execution reliability 2968d162 . Authorization consolidation : Refactored authorization guards and consolidated the linking logic for Hackatime projects 4c2b1836 .
Recent changes Add comments to devlogs and ship requests Implement polymorphic Comment model with CommentsController, Stimulus-driven collapsing comment box, markdown preview form, and styles. Comments will be rendered by Turbo frames and allow editing by owner/admin. This is what else is included in this change: Encryption of hackclub_access_token and hackclub_refresh_token through ActiveRecord encryption, including config, env sample and migration task for already existing non-encrypted tokens. SSL enforcement in production (assume_ssl, force_ssl). Update filter_parameters to strip out sensitive information and OAuth tokens from logs. Fix ExchangeRate API call to include Bearer authentication header. Sanitization of devlogs HTML output through SafeListSanitizer. Update Design#can_make_devlog to can_make_devlog? method and restrict can_ship? check to devlogs without ship request. Add SRI integrity attribute to marked/DOMPurify scripts loaded from CDNs. UI improvements: styles for disabled buttons, utility class for hover-underline effect, devlog cards layout and info icons.
Recent changes Comment delete, Turbo Comment Box, and ship request fade functionality Add #destroy functionality to the comments with owner permission, path, delete button, and dependent comments. Make use of valid commentable_type/id while building comments and make responses as Turbo streams and wrap up comments within a Turbo frame. Resize the comment box according to the content changes detected by the MutationObserver. Make ship request modal and overlay fade in and out. Consider higher level ship request as blockers for all ship requests. Comment card and comment list styling.
Recent changes Added ship request reviews, resubmission logic, and R2 storage integration for tracking reviewed submissions ( 41b1e43 ). Started on the review workflow Started on Resubmission logic Set up support for cloudflare R2 Guarded Hack Club token persistence behind encryption configuration, ensuring tokens are only stored when encryption is explicitly enabled ( a4b6d0c ).
Made Notifications Useful Recent changes Persistent unread state for unanswered boolean notifications Notifications with unresolved boolean actions (e.g., approvals) now remain marked as unread until explicitly addressed. This ensures users revisit pending decisions. Commit: 39aabb2 . Interactive notification replies with approval time tracking Added support for direct replies to notifications, along with timestamp logging for when approvals are finalized. This enables granular tracking of response times for actionable alerts. Commit: 6ac80f9 .
## Recent changes Notifications: Unanswered notifications now retain their unread status until explicitly addressed. This ensures users can distinguish between pending and resolved interactions without relying on manual state updates ( 751a370 ). Security: Authentication workflows, file uploads, and resource authorization checks have been updated with additional safeguards. Specifics include input validation and access control refinements, though implementation details are not disclosed in the commit message ( 97e48db ).
Recent changes - Installed Bundler 4.0.4 in the Dockerfile to standardize gem management across environments ( 88ba659 ). - Ensured the verification directory exists for SVG upload tests, addressing missing file system setup in test workflows ( 83f2e53 ). - Resolved a Turbo conflict in order steps, likely related to event streaming or frame rendering in Rails views ( e8d08f4 ). Updated navigation unread counts dynamically from notification events, improving real-time feedback for user activity ( a75f6ff ).
Deploying on coolify and fixing bugs with that + encrypting current db
I created the fulfilment system for a fulfilment team to use Recent changes Removed redundant save! calls and updated fulfillment tests to reduce unnecessary database operations and align test logic with current behavior 9acc056 . Added a fulfillment role, batch pipeline, and popup controller to support new workflow automation and UI interactions afa7a20 . The popup controller likely handles transient UI elements like notifications or modals. Fixed a crash in /designs preview rendering by resolving an issue blocking Ruby scan/lint CI, ensuring previews no longer fail unexpectedly ( 911f035 ). Corrected a stray question mark in a design preview image tag to prevent malformed HTML output ( 955dd6c ). Added a note about YSWS draft sponsorship documentation, possibly for tracking external partnerships or funding discussions ( d92d571 ). No performance optimizations or subsystem overhauls were addressed in this cycle. Next steps depend on external feedback and test coverage improvements implied by recent test updates.
Ships:
Shipped!!! There are a bunch of features and stuff that I have added to this since flavortown, from the ordering system to devlogs and ship flow. Project Info This is the ruby on rails app for the ysws draft #issued where YS: Designs made with Code WS: Clothes and other swag with those designs Features added: A bunch of features have been added and I have separated them to 3 categories Major ones for functionality, quality of life for feel and use, security for data security. New Major Features: Designs view now is more detailed including hackatime projects and images from devlogs and ships Ship flow system so you can submit to the ysws Product Design system (admin only - for making the shop items by importing from printful via api) Order system using lots of hotwired turbo (choose color, design placement rotation and scale) Notifications (3 types Normal which provides info and 2 others Boolean which gets a yes or no answer and text which gets a written answer Reviewer Panel which shows pending ships to review with some data on (need to add hackatime info for it though) Storing Reviewer proof videos in a cloudflare R2 storage Quality-Of-Life: Added better UI/UX with some issues with need for ironing out (eg font change from workbench to ‘lexend’ and ‘space mono’ Kept a consistent style through the site, although some panels might need better border colour On login it redirects to the page you logged in by Security: I added User DB encryption to protect user data stored on the postgres database instance, such as name and email Summary Made the functional part of the ysws site (Designs, ordering, shipping) Added more security for user data Improved UI(Font and colour scheme)...
|
1793004917.3471303
|
1793091317.3471303
|