|
42887
|
Stellar Gallery by @laurengracebroadbent | Stardan Stellar Gallery by @laurengracebroadbent | Stardance...
|
laurengracebroadbent
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-02T20:52:44Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created Stellar Gallery, a space-themed image gallery that utilizes NASA’s Astronomy Picture of the Day (APOD) API. The website allows users to explore astronomy images, view detailed descriptions, and save their favorite photos for later. One of the biggest challenges was working on the favorites page. I had trouble getting the saved images to display correctly, and I was not able to fully fix the issue yet. I am proud of the overall design and progress I made on Stellar Gallery.", "repo": "https://github.com/lambie93/stellar-gallery", "demo": "https://lambie93.github.io/stellar-gallery/"}]...
|
[{"post_id": 39701, "ts": "202 [{"post_id": 39701, "ts": "2026-08-02T20:43:15Z", "hours": 4.9217, "text": "I worked on improving Stellar Gallery by focusing on the main page styling and the favorites page. I spent time adjusting the layout, colors, fonts, and overall design to make the website feel more polished and organized. I also worked on the favorites page, but I ran into some issues with getting the saved images to appear correctly. I looked through my code and tried to figure out what was causing the problem, but I was not able to fully fix it yet. Next, I want to continue refining the main page and work on fixing the image display issues on the favorites page."}]...
|
Title: Stellar Gallery by @laurengracebroadbent | Title: Stellar Gallery by @laurengracebroadbent | Stardance
Devlogs:
I worked on improving Stellar Gallery by focusing on the main page styling and the favorites page. I spent time adjusting the layout, colors, fonts, and overall design to make the website feel more polished and organized. I also worked on the favorites page, but I ran into some issues with getting the saved images to appear correctly. I looked through my code and tried to figure out what was causing the problem, but I was not able to fully fix it yet. Next, I want to continue refining the main page and work on fixing the image display issues on the favorites page.
Ships:
I created Stellar Gallery, a space-themed image gallery that utilizes NASA’s Astronomy Picture of the Day (APOD) API. The website allows users to explore astronomy images, view detailed descriptions, and save their favorite photos for later. One of the biggest challenges was working on the favorites page. I had trouble getting the saved images to display correctly, and I was not able to fully fix the issue yet. I am proud of the overall design and progress I made on Stellar Gallery....
|
1793408127.7176218
|
1793494527.7176218
|
|
42890
|
CoordsCopy v2.0 by @MarioS271 | Stardance
|
MarioS271
|
1
|
6.0
|
65
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-06T15:42:42Z", "hours": 6.0, "multiplier": 8.65, "payout": 65, "blessing": "neutral", "text": "Hey there! :) Welcome to another one of my minecraft mods, ✨CoordsCopy v2.0 ✨. Why v2.0? Well, I’ve decided I want to boost availiability across versions and loaders to make it possible for everyone on forge (1.16.5 and 1.17.1-1.20.1), neoforge (1.20.4 and 1.20.6-latest) and fabric (1.16.5 and 1.17.1-latest) to use it. For that reason, decided to rewrite the mod using a tool called stonecutter to make that possible. Guide for trying the mod Disclaimer: If you do not own minecraft, I suggest you skip reviewing this (with the little skip button at the top of the page), as you won’t be able to try this properly. Press the “Try Project” button to go to the latest release of the mod Download the .jar file for the loader you want to use (i recommend fabric, also DONT download the sources jar) Install the mod somewhere 3.1) If you only have unmodded or normal minecraft consider skipping because it takes a bit of time to get modded minecraft set up. If you want to still do that, I’d really appreciate it tho! :) 3.2) Drop the jar in your launcher/mods folder. Done! Default Keybinds: [F9] Copy Player Position [f10] Copy Block Position (of block you’re currently looking at) [F12] Open Config Menu (also possible via the Mod Menu) I hope you have fun trying the mod! :)", "repo": "https://github.com/MarioS271/coords_copy", "demo": "https://www.curseforge.com/minecraft/mc-mods/coordscopy"}]...
|
[{"post_id": 39750, "ts": "202 [{"post_id": 39750, "ts": "2026-08-02T22:18:04Z", "hours": 1.8672, "text": "FINALLY got everything working again All versions are tested, but of course the maven servers the mod needs for building are NOT reliable. I’ve just had to cancel 10+ CI/CD runs just because maven servers timed out. Keep in mind, each run takes ~20min (which I actually also finally reduced down to ~5min). Only gotta build & publish everything now!"}, {"post_id": 39644, "ts": "2026-08-02T19:26:00Z", "hours": 2.4325, "text": "god DAMN it Well… I found out today that all the versions I had published up until that point had the config setting’s effect inverted. ADDITIONALLY, the forge version was just straight up broken. Turns out, it’s a stupid idea to not register KeyInputHandler.onKeyTick under Neoforge’s onClientTick event. Other Changes Instead of the setting in the config screen being a true/false value with “Show output in chat instead of actionbar”, the config value is now “Message Location” with a button that toggles between actionbar and chat for better UX."}, {"post_id": 39185, "ts": "2026-08-01T23:43:43Z", "hours": 1.8925, "text": "Just started refactoring another one of my mods, CoordsCopy! 1.16.5-fabric already works, now I’m just trying to get forge and CI/CD running for today. oh and look cool new logo :D"}]...
|
Title: CoordsCopy v2.0 by @MarioS271 | Stardance
Title: CoordsCopy v2.0 by @MarioS271 | Stardance
Devlogs:
Just started refactoring another one of my mods, CoordsCopy! 1.16.5-fabric already works, now I’m just trying to get forge and CI/CD running for today. oh and look cool new logo :D
god DAMN it Well… I found out today that all the versions I had published up until that point had the config setting’s effect inverted. ADDITIONALLY, the forge version was just straight up broken. Turns out, it’s a stupid idea to not register KeyInputHandler.onKeyTick under Neoforge’s onClientTick event. Other Changes Instead of the setting in the config screen being a true/false value with “Show output in chat instead of actionbar”, the config value is now “Message Location” with a button that toggles between actionbar and chat for better UX.
FINALLY got everything working again All versions are tested, but of course the maven servers the mod needs for building are NOT reliable. I’ve just had to cancel 10+ CI/CD runs just because maven servers timed out. Keep in mind, each run takes ~20min (which I actually also finally reduced down to ~5min). Only gotta build & publish everything now!
Ships:
Hey there! :) Welcome to another one of my minecraft mods, ✨CoordsCopy v2.0 ✨. Why v2.0? Well, I’ve decided I want to boost availiability across versions and loaders to make it possible for everyone on forge (1.16.5 and 1.17.1-1.20.1), neoforge (1.20.4 and 1.20.6-latest) and fabric (1.16.5 and 1.17.1-latest) to use it. For that reason, decided to rewrite the mod using a tool called stonecutter to make that possible. Guide for trying the mod Disclaimer: If you do not own minecraft, I suggest you skip reviewing this (with the little skip button at the top of the page), as you won’t be able to try this properly. Press the “Try Project” button to go to the latest release of the mod Download the .jar file for the loader you want to use (i recommend fabric, also DONT download the sources jar) Install the mod somewhere 3.1) If you only have unmodded or normal minecraft consider skipping because it takes a bit of time to get modded minecraft set up. If you want to still do that, I’d really appreciate it tho! :) 3.2) Drop the jar in your launcher/mods folder. Done! Default Keybinds: [F9] Copy Player Position [f10] Copy Block Position (of block you’re currently looking at) [F12] Open Config Menu (also possible via the Mod Menu) I hope you have fun trying the mod! :)...
|
1793408138.3876605
|
1793494538.3876605
|
|
42907
|
LifeTab by @CadenO | Stardance
|
CadenO
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-06T22:19:06Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a new tab webpage with Conway’s game of life running in the background. It can search google, follow web addresses, and look satisfying! I had the most trouble with using CSS to lay things out, as I haven’t done a lot of frontend in a while, but I am content with how it looks.", "repo": "https://github.com/Cesium72/LifeTab", "demo": "https://cesium72.github.io/LifeTab/"}]...
|
[{"post_id": 41455, "ts": "202 [{"post_id": 41455, "ts": "2026-08-05T17:47:33Z", "hours": 1.9761, "text": "I’ve been making LifeTab, a new tab page with John Conway’s game of life running in the background. So far, the image basically shows it all, as I haven’t done frontend in a while."}]...
|
Title: LifeTab by @CadenO | Stardance
Devlogs:
I’ Title: LifeTab by @CadenO | Stardance
Devlogs:
I’ve been making LifeTab, a new tab page with John Conway’s game of life running in the background. So far, the image basically shows it all, as I haven’t done frontend in a while.
Ships:
I made a new tab webpage with Conway’s game of life running in the background. It can search google, follow web addresses, and look satisfying! I had the most trouble with using CSS to lay things out, as I haven’t done a lot of frontend in a while, but I am content with how it looks....
|
1793436950.1819735
|
1793523350.1819735
|
|
42909
|
Patio Light Hooks by @cadencrouch88 | Stardance
|
cadencrouch88
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T06:55:48Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made patio light hooks that don’t require any drilling to attach. The design came after a problem I had with adhesive strip clips not holding well due to the tension in the string lights. With this clip, it should be able to bear the tension and hold up the string lights. The most difficult thing about this project was setting up GitHub for the first time and learning how to reference images and screenshots. This is my first ship, so I know that there will be problems that will need fixing. However, I’m glad that I was able to post a simple project that introduced me to the process of building on stardance and hopefully will lead to more complex projects. In the off-chance that someone wants to use this project, it should just be known that the dimensions will probably have to change for each component that you have (patio plank width and wire diameter). I found that a tolerance of 5 thou was about right for me and led to a near press fit for both the wire and the patio plank.", "repo": "https://github.com/CCrouch88/Patio-Light-Hooks", "demo": ""}]...
|
[{"post_id": 40571, "ts": "202 [{"post_id": 40571, "ts": "2026-08-04T06:47:38Z", "hours": 0.3067, "text": "First V1 test successful, the print failed about 75% through because of a spool error, but it didn’t affect the usability. Possible iterations for V2 might include tighter tolerance or shortening the clip width."}, {"post_id": 39259, "ts": "2026-08-02T03:37:19Z", "hours": 0.4744, "text": "Patio Light Hooks - In this devlog, being my first, I wanted to test out the lapse recording feature as well as make an initial design sketch and 3D CAD model. The sketch features some of the necessary dimensions I needed to consider when making the hook, and the CAD model reflects the design decisions. I accidentally recorded the wrong tab for the CAD model and couldn’t find a way to edit the footage or rerecord. So I’ll attach the progress I made so far and fix the error during the rest of the process."}]...
|
Title: Patio Light Hooks by @cadencrouch88 | Stard Title: Patio Light Hooks by @cadencrouch88 | Stardance
Devlogs:
Patio Light Hooks - In this devlog, being my first, I wanted to test out the lapse recording feature as well as make an initial design sketch and 3D CAD model. The sketch features some of the necessary dimensions I needed to consider when making the hook, and the CAD model reflects the design decisions. I accidentally recorded the wrong tab for the CAD model and couldn’t find a way to edit the footage or rerecord. So I’ll attach the progress I made so far and fix the error during the rest of the process.
First V1 test successful, the print failed about 75% through because of a spool error, but it didn’t affect the usability. Possible iterations for V2 might include tighter tolerance or shortening the clip width.
Ships:
I made patio light hooks that don’t require any drilling to attach. The design came after a problem I had with adhesive strip clips not holding well due to the tension in the string lights. With this clip, it should be able to bear the tension and hold up the string lights. The most difficult thing about this project was setting up GitHub for the first time and learning how to reference images and screenshots. This is my first ship, so I know that there will be problems that will need fixing. However, I’m glad that I was able to post a simple project that introduced me to the process of building on stardance and hopefully will lead to more complex projects. In the off-chance that someone wants to use this project, it should just be known that the dimensions will probably have to change for each component that you have (patio plank width and wire diameter). I found that a tolerance of 5 thou was about right for me and led to a near press fit for both the wire and the patio plank....
|
1793436952.3333707
|
1793523352.3333707
|
|
42911
|
MineAscii by @renanfartes | Stardance
|
renanfartes
|
1
|
43.35
|
359
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-27T16:11:23Z", "hours": 40.0, "multiplier": 9.06, "payout": 359, "blessing": "neutral", "text": "I made a OpenGL based voxel engine with a terminal Renderer in raw C! The game uses RGB TrueColors ansi scape codes in a buffer before printing it all ar once. It also compreses the RGB colors. The main problem i handled was developing hours without seeing something opn the screen in C. But i managed to got it working with block clulling, chunk and mesh generation logic.", "repo": "https://github.com/Renan-G-projec/MineAscii", "demo": "https://github.com/Renan-G-projec/MineAscii/releases/tag/v0.1.0"}]...
|
[{"post_id": 58747, "ts": "202 [{"post_id": 58747, "ts": "2026-08-31T09:43:02Z", "hours": 3.3486, "text": "Devlog 19 Tree shaking, RLE and terminal checking. I tried to implement a feature that would make the terminal scale accordingly with the users terminal. It was the hardest thing i would have to handle in C. I tried callbacks to resize, signals and so more and it didn’t work. The feature would detect any changes on the size and adapt itself. After hours i just deleted the branch and focused on developing the tree shaking (it is complete!) and now the game does not start when the terminal is not big enough. Next step is to change line breaks with move cursor instructions and move the syscalls to macros so i can add a windows version asap! Also, now the z key exits gracefully unloading everything. AMDG"}, {"post_id": 55540, "ts": "2026-08-27T13:44:47Z", "hours": 0.275, "text": "Devlog 18 Just imprved the readme and added demo video. I also improve the resolution!"}, {"post_id": 55531, "ts": "2026-08-27T13:22:01Z", "hours": 3.0394, "text": "Devlog 17 Finally got it to work!!!! I refactored the code so it supports easy tree shaking (yet is not fully implemented) The termios reads input nonblock and then the game can effectivelly be played (bu terminals reads only one key at a time. This issue i cannot fix right now and it if i try to take input another way the game shall not work on wayland by now.)"}, {"post_id": 54446, "ts": "2026-08-25T13:52:05Z", "hours": 2.9392, "text": "Devlog 16 Terminal Rendering and block placing changed to Stone I implemented a reallyh bad way of printing the terminal to the screen. It works by copyting the pixels from the opengl context, but the code is a mess and the line breaking is weird at dicfferent terminals (i’m using kitty) I will refactor and optimize this by making a component which is responsibgle from receivend the pixels, mounting a ultra optimized string and printing it in one single syscall. Also i may use unicode characters because this shall gave me a better resolutui9on and a better experience overall I"}, {"post_id": 51660, "ts": "2026-08-21T13:43:48Z", "hours": 1.4514, "text": "Devlog 15 Hitbox Interface and Infinite chunk generation I changed the sky color and finally added infinite chunk generation. I was getting weird bugs but it was all negative coordinates stuff, so i added a offset to the perlin noise calculation. It is alfuw and to big negative coordinates it will happen again. I may need to change the lib itself or come with another solution. I also removed a dynamic memory allocation on the chunk generation, it could be made static and now the OS handles the basic allocation. Now the game loads and unloads chunks dynamically. But the render distacne can’t be above 6 or my pc starts to cry. I need to optimize this. Next steps are to add collision and maybe aw few blocks. For the first ship i don’t think i need trees or clouds or complex illumination. AMDG!"}, {"post_id": 50367, "ts": "2026-08-19T15:19:30Z", "hours": 3.2514, "text": "Devlog 14 Chunk with hashmaps and big refactor I Had TONS of headaches with my current code. The mess was a lot more messy than i thought. I changed a lot of the old code and refactored the chunk rendering system. Now the chunks can be on negative coords, the world position unit is calculated in chunks. I implemented a hashmap to calculate the chunks and implemented chunk unloading. It is not performatic (i may have to use greedy culling or even frustum culling). The dynamic chunk loading is not implemented yet but it is easy with this refactor Also i think the code leaks memory because of the hashmap implmenentaiton. I will take a look on that later."}, {"post_id": 49972, "ts": "2026-08-18T23:58:21Z", "hours": 1.8006, "text": "Devlog 13 Block deleting and Block placing Just finished the core block manegment system. The raytracing engine determines which face it has touched and the player puts the block based on that. The code is a mess. I tried implementing a face culling between chunks but failed miserably. I tried making the chunk receive the world context and it didn’t work because of circular dependency (the world imports the chunk and then imports the chunk again), and forward definitions also wasn’t solving My next urgency is to refactor and turn this mess legible. AMDG"}, {"post_id": 48904, "ts": "2026-08-17T13:49:58Z", "hours": 0.8056, "text": "Devlog 12 Visual for the raytracing! So.. I hardcoded this cube so the player can clearly see what block he is looking at. I’m really surprised that this was a lot more fast than the raytracing itself. Deleting blocks will be the next step and will be easy this this help. Unfornatly i had to use gemini to help me debug some little strange issues, even that the code itself was written by me it makes me feel dependent. I wish someone makes an AI blocker lol AMDG"}, {"post_id": 47803, "ts": "2026-08-16T00:32:16Z", "hours": 3.8569, "text": "Devlog 11 Gravity, Jump, Refactor and Raycasting I implemented a very raw way of handling with gravity and a very messy snap logic. It still works but i really do not like the code quality for that. I also added the jump logiac and refactor a lot o the code of the engine itself. Also i implemented the bassic raycasting to the next steps, which are deleting and creating blocks. I think i will have a hard time with these since there’s all the logic of which face is the player looking etc. I used gemini to decide some architectural decisions and some debugging, i’m sad to use ai even for that. Ps: Writing this Devlog for the 3rd time because i didn’t notice that the video was over 50mb. AMDG"}, {"post_id": 47274, "ts": "2026-08-15T03:02:48Z", "hours": 1.0928, "text": "Devlog 10 World generation, stone and perlin noise fized! I fixed that weird bug and added the texture to the dirt, improved a little the terrain generation system and the movimentation. The code for that is still a mess but it works. I also do not know how i can turn this terrain more natural. Just seems so uniform and feels kinda weird. Next steps are making the chunks load and unload on RAM (They’re fixed at the moment) and making the world infinite. I also need to implement gravity and collision to the player. AMDG"}, {"post_id": 47217, "ts": "2026-08-14T23:57:54Z", "hours": 3.8075, "text": "Devlog 09 Raw Chunk generation! I refactored Tons of lines of code, improved the performance and readibility and added a random and undocumented perlin noise library to generate the chunk. I also made the camera and the player 2 separated entities, so in the future if i want to add another persapective a state machine would be more easy. I added the stone block (yet it still not visible on the video) and the chunk generation stills weird. I’m gonna fix that. Also, this perlin noise library is from 12 yearss ago. It is small so maybe i can improve the documentation by opening a pull request (it doesn’t even have a README or License… So i added a reference at external/perlin/LICENSE.md AMDG"}, {"post_id": 45872, "ts": "2026-08-12T16:38:22Z", "hours": 2.9658, "text": "Devlog 08 BLock culling. Finally added block clulling to my voxel engine game! I also refactored all teh mesh generation logic and made MANY refactors to the engine. The first was to break the code into smaller pieces with different responsabilities so i can think only on the problem i am handliing with. I added CubeFace and removed hardcoded pieces. As seen on the video, faces between 2 solid blocks are not generated anymore…. my code looks dangerous on the border btw but the getBlock returns air block when out-of-index."}, {"post_id": 44145, "ts": "2026-08-09T18:25:49Z", "hours": 2.905, "text": "Devlog 07 Chunk Rendering added! I added a lot of things since last devlog. I Encapsulated the textures, organized project structure and started working on the chunk logic. I really do not like the result, it is not optimized but the goal was to see something on the screen fast. I added a block interfacee with the chunk. But i used a lot of pointers and i might be in danger if i not refactor this later or take really care with malloc. I plan to refactor and optimize the logic (faces between solid blocks still being rendered) and i really wonder how i shall add the texture mapping to this. I also had a hard time debugging this because buffer underflows were being caused by premature optimization (yall can even see in the src/core/chunk.c the comment). I used Gemini to debug the logic, but i plan to refactor and using AI makes me kidna sad even for debugging"}, {"post_id": 43548, "ts": "2026-08-08T21:37:24Z", "hours": 2.4325, "text": "Devlog 06 Movimentation + sensitivity + textures added! I added some really simple textures based on the minecraf t classic ones. I created also a texture interface class and modded some shaders because i was troubleshotting to make the atlas work. I want now to work on the core logic as we have all the basic interfaces we need (I just need to put the texture encapsulated and everything shall be ready). Chunks and mesh building will be probably next. As this is a simple model for testing the texture atlas, i raw coded the vertices and this was kinda a headache. Not doing this again for a long time. Also my index buffer was not needed because the faces had shared vertcices but the UV was totally different PS: The texture of the top face is grey because the atlas expect me to color it, but i`m to tired to do this now.. XD"}, {"post_id": 42976, "ts": "2026-08-07T23:39:04Z", "hours": 1.2256, "text": "Devlog 05 Working camera! I was trying to make the camera workingh and i had hard times with it, because opengl does not warn about anything that goes wrong with the shader stuff so it just desapears. I also learned a lot about matrices and this beautiful opengl course is helping me a lot: OpenGL by Victor Gordan . I also added really basic movements for testing. It is not a 3d object yet, it is more like a paper. I need to work in textures and model matrices while making a renderer to organize and optimize the graphical pipeline. Also all the minecraft logic needs to initialize urgently."}, {"post_id": 42310, "ts": "2026-08-06T23:27:04Z", "hours": 2.3978, "text": "Devlog 04 Added matrices library and meshs Ok, so first i coded the mesh logics and it worked well. I do not remember but i have in my memory that it was successfully added, but when i opened vs code today i realised i’ve pushed a code that didn’t compile and even don’t display anything because i did not test the logic after encapsulated. I had to go to gemini and ask it about the bug. I feel bad fort that. I also added the cglm bind to C and it worked well, i even made the square rotates with some matrices (and that was in teh commit that couldn’t compile). I removed it to debug and i’m not likelly to code this again. Next steps is to add some more logic to the Mesh such as model matrices. I plan to make the camera and start going 3d next. Also as seen on the image i added input! I made a wrapper as the GLFW will after be hidden so i don’t need to rewrite input handling in 70 different files."}, {"post_id": 41054, "ts": "2026-08-05T00:27:58Z", "hours": 2.9536, "text": "Devlog 03 Added triangles and mini library! So i learned a little techniques in C while doing this code. I coded some helper functions to handle Shaders (w/ file reading), VAOs, EBOs and VBOs, which are kinda weird to look into the raw call to opengl The functions kinda look like POO but as these objects are just simple unsigned integers i didn’t made any cache miss on that, and no allocation was indeed made. I learned to make it work alos! I hard coded everything on main then refactored line by line commiting it. The result is just a square but the base is readdy!!!"}, {"post_id": 39468, "ts": "2026-08-02T13:09:14Z", "hours": 1.5714, "text": "Devlog 02 Added basic window and linked libraries! So i spent some time adding CMAKE to the project. I do not like the semantics of these metabuild system but it is necessary and useful. I downloaded the GLAD loader and put in a external/folder. I also put by FetchContent the GLFW module so it is not on the source tree. I now have a basic window. But yall may think that this is strange, if it is ascii why would i have a window? My objective is to use the GPU to process the pixels but instead of putting it on the screen, it writes to a buffer and then my code prints using these ANSI escape codes to do RGB. I will disable the window, that’s called offscreen rendering. But to my next tests i will do the framebuffer (i changed the previous class name to ascii buffer because it’s goal is to only print on the terminal. The framebuffer shall be the OpenGL target. The framebuffer functions shall also optimize the asciibuffer by compressing those ANSI scape codes) If it works i can develop the entire game into a big screen and at the last time try to put it on the terminal. Do not know if this is a good idea. Forever"}, {"post_id": 39236, "ts": "2026-08-02T02:11:38Z", "hours": 0.8919, "text": "Devlog 01 Just started the project! I wanna make a minecraft in C that runs on the terminal. I know that will be hard as terminals were not supposed to do that kind of work but this is exactly the reason i’m using C I started developing basic framebuffer functions and got the baaasic pixel rendering."}]...
|
Title: MineAscii by @renanfartes | Stardance
Devl Title: MineAscii by @renanfartes | Stardance
Devlogs:
Devlog 01 Just started the project! I wanna make a minecraft in C that runs on the terminal. I know that will be hard as terminals were not supposed to do that kind of work but this is exactly the reason i’m using C I started developing basic framebuffer functions and got the baaasic pixel rendering.
Devlog 02 Added basic window and linked libraries! So i spent some time adding CMAKE to the project. I do not like the semantics of these metabuild system but it is necessary and useful. I downloaded the GLAD loader and put in a external/folder. I also put by FetchContent the GLFW module so it is not on the source tree. I now have a basic window. But yall may think that this is strange, if it is ascii why would i have a window? My objective is to use the GPU to process the pixels but instead of putting it on the screen, it writes to a buffer and then my code prints using these ANSI escape codes to do RGB. I will disable the window, that’s called offscreen rendering. But to my next tests i will do the framebuffer (i changed the previous class name to ascii buffer because it’s goal is to only print on the terminal. The framebuffer shall be the OpenGL target. The framebuffer functions shall also optimize the asciibuffer by compressing those ANSI scape codes) If it works i can develop the entire game into a big screen and at the last time try to put it on the terminal. Do not know if this is a good idea. Forever
Devlog 03 Added triangles and mini library! So i learned a little techniques in C while doing this code. I coded some helper functions to handle Shaders (w/ file reading), VAOs, EBOs and VBOs, which are kinda weird to look into the raw call to opengl The functions kinda look like POO but as these objects are just simple unsigned integers i didn’t made any cache miss on that, and no allocation was indeed made. I learned to make it work alos! I hard coded everything on main then refactored line by line commiting it. The result is just a square but the base is readdy!!!
Devlog 04 Added matrices library and meshs Ok, so first i coded the mesh logics and it worked well. I do not remember but i have in my memory that it was successfully added, but when i opened vs code today i realised i’ve pushed a code that didn’t compile and even don’t display anything because i did not test the logic after encapsulated. I had to go to gemini and ask it about the bug. I feel bad fort that. I also added the cglm bind to C and it worked well, i even made the square rotates with some matrices (and that was in teh commit that couldn’t compile). I removed it to debug and i’m not likelly to code this again. Next steps is to add some more logic to the Mesh such as model matrices. I plan to make the camera and start going 3d next. Also as seen on the image i added input! I made a wrapper as the GLFW will after be hidden so i don’t need to rewrite input handling in 70 different files.
Devlog 05 Working camera! I was trying to make the camera workingh and i had hard times with it, because opengl does not warn about anything that goes wrong with the shader stuff so it just desapears. I also learned a lot about matrices and this beautiful opengl course is helping me a lot: OpenGL by Victor Gordan . I also added really basic movements for testing. It is not a 3d object yet, it is more like a paper. I need to work in textures and model matrices while making a renderer to organize and optimize the graphical pipeline. Also all the minecraft logic needs to initialize urgently.
Devlog 06 Movimentation + sensitivity + textures added! I added some really simple textures based on the minecraf t classic ones. I created also a texture interface class and modded some shaders because i was troubleshotting to make the atlas work. I want now to work on the core logic as we have all the basic interfaces we need (I just need to put the texture encapsulated and everything shall be ready). Chunks and mesh building will be probably next. As this is a simple model for testing the texture atlas, i raw coded the vertices and this was kinda a headache. Not doing this again for a long time. Also my index buffer was not needed because the faces had shared vertcices but the UV was totally different PS: The texture of the top face is grey because the atlas expect me to color it, but i`m to tired to do this now.. XD
Devlog 07 Chunk Rendering added! I added a lot of things since last devlog. I Encapsulated the textures, organized project structure and started working on the chunk logic. I really do not like the result, it is not optimized but the goal was to see something on the screen fast. I added a block interfacee with the chunk. But i used a lot of pointers and i might be in danger if i not refactor this later or take really care with malloc. I plan to refactor and optimize the logic (faces between solid blocks still being rendered) and i really wonder how i shall add the texture mapping to this. I also had a hard time debugging this because buffer underflows were being caused by premature optimization (yall can even see in the src/core/chunk.c the comment). I used Gemini to debug the logic, but i plan to refactor and using AI makes me kidna sad even for debugging
Devlog 08 BLock culling. Finally added block clulling to my voxel engine game! I also refactored all teh mesh generation logic and made MANY refactors to the engine. The first was to break the code into smaller pieces with different responsabilities so i can think only on the problem i am handliing with. I added CubeFace and removed hardcoded pieces. As seen on the video, faces between 2 solid blocks are not generated anymore…. my code looks dangerous on the border btw but the getBlock returns air block when out-of-index.
Devlog 09 Raw Chunk generation! I refactored Tons of lines of code, improved the performance and readibility and added a random and undocumented perlin noise library to generate the chunk. I also made the camera and the player 2 separated entities, so in the future if i want to add another persapective a state machine would be more easy. I added the stone block (yet it still not visible on the video) and the chunk generation stills weird. I’m gonna fix that. Also, this perlin noise library is from 12 yearss ago. It is small so maybe i can improve the documentation by opening a pull request (it doesn’t even have a README or License… So i added a reference at external/perlin/LICENSE.md AMDG
Devlog 10 World generation, stone and perlin noise fized! I fixed that weird bug and added the texture to the dirt, improved a little the terrain generation system and the movimentation. The code for that is still a mess but it works. I also do not know how i can turn this terrain more natural. Just seems so uniform and feels kinda weird. Next steps are making the chunks load and unload on RAM (They’re fixed at the moment) and making the world infinite. I also need to implement gravity and collision to the player. AMDG
Devlog 11 Gravity, Jump, Refactor and Raycasting I implemented a very raw way of handling with gravity and a very messy snap logic. It still works but i really do not like the code quality for that. I also added the jump logiac and refactor a lot o the code of the engine itself. Also i implemented the bassic raycasting to the next steps, which are deleting and creating blocks. I think i will have a hard time with these since there’s all the logic of which face is the player looking etc. I used gemini to decide some architectural decisions and some debugging, i’m sad to use ai even for that. Ps: Writing this Devlog for the 3rd time because i didn’t notice that the video was over 50mb. AMDG
Devlog 12 Visual for the raytracing! So.. I hardcoded this cube so the player can clearly see what block he is looking at. I’m really surprised that this was a lot more fast than the raytracing itself. Deleting blocks will be the next step and will be easy this this help. Unfornatly i had to use gemini to help me debug some little strange issues, even that the code itself was written by me it makes me feel dependent. I wish someone makes an AI blocker lol AMDG
Devlog 13 Block deleting and Block placing Just finished the core block manegment system. The raytracing engine determines which face it has touched and the player puts the block based on that. The code is a mess. I tried implementing a face culling between chunks but failed miserably. I tried making the chunk receive the world context and it didn’t work because of circular dependency (the world imports the chunk and then imports the chunk again), and forward definitions also wasn’t solving My next urgency is to refactor and turn this mess legible. AMDG
Devlog 14 Chunk with hashmaps and big refactor I Had TONS of headaches with my current code. The mess was a lot more messy than i thought. I changed a lot of the old code and refactored the chunk rendering system. Now the chunks can be on negative coords, the world position unit is calculated in chunks. I implemented a hashmap to calculate the chunks and implemented chunk unloading. It is not performatic (i may have to use greedy culling or even frustum culling). The dynamic chunk loading is not implemented yet but it is easy with this refactor Also i think the code leaks memory because of the hashmap implmenentaiton. I will take a look on that later.
Devlog 15 Hitbox Interface and Infinite chunk generation I changed the sky color and finally added infinite chunk generation. I was getting weird bugs but it was all negative coordinates stuff, so i added a offset to the perlin noise calculation. It is alfuw and to big negative coordinates it will happen again. I may need to change the lib itself or come with another solution. I also removed a dynamic memory allocation on the chunk generation, it could be made static and now the OS handles the basic allocation. Now the game loads and unloads chunks dynamically. But the render distacne can’t be above 6 or my pc starts to cry. I need to optimize this. Next steps are to add collision and maybe aw few blocks. For the first ship i don’t think i need trees or clouds or complex illumination. AMDG!
Devlog 16 Terminal Rendering and block placing changed to Stone I implemented a reallyh bad way of printing the terminal to the screen. It works by copyting the pixels from the opengl context, but the code is a mess and the line breaking is weird at dicfferent terminals (i’m using kitty) I will refactor and optimize this by making a component which is responsibgle from receivend the pixels, mounting a ultra optimized string and printing it in one single syscall. Also i may use unicode characters because this shall gave me a better resolutui9on and a better experience overall I
Devlog 17 Finally got it to work!!!! I refactored the code so it supports easy tree shaking (yet is not fully implemented) The termios reads input nonblock and then the game can effectivelly be played (bu terminals reads only one key at a time. This issue i cannot fix right now and it if i try to take input another way the game shall not work on wayland by now.)
Devlog 18 Just imprved the readme and added demo video. I also improve the resolution!
Devlog 19 Tree shaking, RLE and terminal checking. I tried to implement a feature that would make the terminal scale accordingly with the users terminal. It was the hardest thing i would have to handle in C. I tried callbacks to resize, signals and so more and it didn’t work. The feature would detect any changes on the size and adapt itself. After hours i just deleted the branch and focused on developing the tree shaking (it is complete!) and now the game does not start when the terminal is not big enough. Next step is to change line breaks with move cursor instructions and move the syscalls to macros so i can add a windows version asap! Also, now the z key exits gracefully unloading everything. AMDG
Ships:
I made a OpenGL based voxel engine with a terminal Renderer in raw C! The game uses RGB TrueColors ansi scape codes in a buffer before printing it all ar once. It also compreses the RGB colors. The main problem i handled was developing hours without seeing something opn the screen in C. But i managed to got it working with block clulling, chunk and mesh generation logic....
|
1793465816.0422733
|
1793552216.0422733
|
|
42916
|
willie and lue :D by @lueyun | Stardance
|
lueyun
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T06:50:31Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "hello guys! i present to you my personal website!! this project introduced me to many things, and some of them include how much variety there is to the world of coding. there is so much you can do, and also many places to start. i hope you like this (boring-ish) personal website about my characters and me!!", "repo": "https://github.com/lueyun0110/willie-and-lue-website", "demo": "https://lueyun0110.github.io/willie-and-lue-website/website/"}]...
|
[{"post_id": 74347, "ts": "202 [{"post_id": 74347, "ts": "2026-09-27T06:47:02Z", "hours": 0.6217, "text": "day 6? HIII i finally figured out my dilemma with my shipping issue!! even though this personalized website isn’t that extraordinary, i hope you get to understand my ocs (+ me)!"}, {"post_id": 72103, "ts": "2026-09-22T05:28:08Z", "hours": 0.7317, "text": "day 5 haha short update- i just added the final touch-ups: new page to show you guys their latest adventures new button to direct you to it now i need to figure out how to ship this 🥲🥲"}, {"post_id": 72081, "ts": "2026-09-22T04:06:24Z", "hours": 2.6869, "text": "day 4 hello!! im back 😎😎 ive been very off lately due to school but its alright. i really wanted to keep on doing this, so here i am! heres what i did: added CSS (color, font, sizing, etc) added gifs to make this website have personality lol changed the instagram link to just instagram username i’m planning on making final touches as this is close to being finished (imo lol)"}, {"post_id": 65225, "ts": "2026-09-10T06:35:56Z", "hours": 1.1033, "text": "day 3 hi guys!! long time no see…. ive been recently busy with many things. i have no clue what to do so this project will take longer than expected. 😓😓 anyways, i added: -more for their backstory -added a NEW page about myself since this website is a personal one to introduce the world to yourself hahaa…. -finally using css to format this website i hope to continue more on the format because rn, this looks so bright 😭"}, {"post_id": 39892, "ts": "2026-08-03T05:31:21Z", "hours": 0.8778, "text": "day 2 heh this is where i wanted to add more, but i truly didn’t know how, so i decided to go with some lore/background info about them. i added a new page with buttons to go back and forth with so everything can be kept organized. the lore is currently incomplete as i made them all in the spot (💀) so im planning on updating them soon (not very soon though). as for the visuals, i plan on doing them later since i want to get the main stuff done :D"}, {"post_id": 39838, "ts": "2026-08-03T02:57:15Z", "hours": 0.4386, "text": "starting a personal website for willie and lue! its my first time coding html btw ahah but heres a simple introduction of my two adventurous ocs!! i want to expand on this by documenting more about their adventures than posting on insta 😅 as for right now, i added a title, brief introduction, image to see who they are, and outside links if you want to check out some of their adventures im planning on (well attempting to) create something interactive that will bring both characters alive… idk when that will be so we shall seee 👀✨"}]...
|
Title: willie and lue :D by @lueyun | Stardance
D Title: willie and lue :D by @lueyun | Stardance
Devlogs:
starting a personal website for willie and lue! its my first time coding html btw ahah but heres a simple introduction of my two adventurous ocs!! i want to expand on this by documenting more about their adventures than posting on insta 😅 as for right now, i added a title, brief introduction, image to see who they are, and outside links if you want to check out some of their adventures im planning on (well attempting to) create something interactive that will bring both characters alive… idk when that will be so we shall seee 👀✨
day 2 heh this is where i wanted to add more, but i truly didn’t know how, so i decided to go with some lore/background info about them. i added a new page with buttons to go back and forth with so everything can be kept organized. the lore is currently incomplete as i made them all in the spot (💀) so im planning on updating them soon (not very soon though). as for the visuals, i plan on doing them later since i want to get the main stuff done :D
day 3 hi guys!! long time no see…. ive been recently busy with many things. i have no clue what to do so this project will take longer than expected. 😓😓 anyways, i added: -more for their backstory -added a NEW page about myself since this website is a personal one to introduce the world to yourself hahaa…. -finally using css to format this website i hope to continue more on the format because rn, this looks so bright 😭
day 4 hello!! im back 😎😎 ive been very off lately due to school but its alright. i really wanted to keep on doing this, so here i am! heres what i did: added CSS (color, font, sizing, etc) added gifs to make this website have personality lol changed the instagram link to just instagram username i’m planning on making final touches as this is close to being finished (imo lol)
day 5 haha short update- i just added the final touch-ups: new page to show you guys their latest adventures new button to direct you to it now i need to figure out how to ship this 🥲🥲
day 6? HIII i finally figured out my dilemma with my shipping issue!! even though this personalized website isn’t that extraordinary, i hope you get to understand my ocs (+ me)!
Ships:
hello guys! i present to you my personal website!! this project introduced me to many things, and some of them include how much variety there is to the world of coding. there is so much you can do, and also many places to start. i hope you like this (boring-ish) personal website about my characters and me!!...
|
1793339369.5214612
|
1793425769.5214612
|
|
42920
|
Personal Portfolio Website by @self-taught-scribe Personal Portfolio Website by @self-taught-scribe | Stardance...
|
self-taught-scribe
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T01:09:23Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This started as a school web dev assessment and passion project I’ve been meaning to do for a while, but quickly grew way past that. I built a full portfolio site with a Catppuccin based light/dark theme, Home/About/Blog/Projects/Contact pages, and a system that auto-generates cards for blog posts and projects from JSON data. Along the way I fixed a bunch of bugs, such as my broken image fallback logic (was checking .ok on an unresolved fetch Promise), an undiscoverable native multi-select filter (replaced with clickable pill buttons), a missing closing that broke my page layout, and hardcoded NZ date formatting. The part I’m proudest of is three live data widgets. They’re a GitHub commit tracker, a GitHub contribution graph matching my profile heatmap, and a Hackatime coding time dashboard. All three needed lots of debugging. I finished by adding responsive breakpoints, since none of my layouts adapted to mobile at all. Most of this project was debugging, not writing new code, which taught me more than the actual building did.", "repo": "https://github.com/Astral-Scribe/Personal-Portfolio-Site", "demo": "https://owhitedevportfolio.ddns.net/"}]...
|
[{"post_id": 61892, "ts": "202 [{"post_id": 61892, "ts": "2026-09-05T01:53:12Z", "hours": 6.1092, "text": "This started as a school web dev assessment and passion project I’ve been meaning to do for a while, but quickly grew way past that. I built a full portfolio site with a Catppuccin based light/dark theme, Home/About/Blog/Projects/Contact pages, and a system that auto-generates cards for blog posts and projects from JSON data. Along the way I fixed a bunch of bugs, such as my broken image fallback logic (was checking .ok on an unresolved fetch Promise), an undiscoverable native multi-select filter (replaced with clickable pill buttons), a missing closing that broke my page layout, and hardcoded NZ date formatting. The part I’m proudest of is three live data widgets. They’re a GitHub commit tracker, a GitHub contribution graph matching my profile heatmap, and a Hackatime coding time dashboard. All three needed lots of debugging. I finished by adding responsive breakpoints, since none of my layouts adapted to mobile at all. Most of this project was debugging, not writing new code, which taught me more than the actual building did."}]...
|
Title: Personal Portfolio Website by @self-taught- Title: Personal Portfolio Website by @self-taught-scribe | Stardance
Devlogs:
This started as a school web dev assessment and passion project I’ve been meaning to do for a while, but quickly grew way past that. I built a full portfolio site with a Catppuccin based light/dark theme, Home/About/Blog/Projects/Contact pages, and a system that auto-generates cards for blog posts and projects from JSON data. Along the way I fixed a bunch of bugs, such as my broken image fallback logic (was checking .ok on an unresolved fetch Promise), an undiscoverable native multi-select filter (replaced with clickable pill buttons), a missing closing that broke my page layout, and hardcoded NZ date formatting. The part I’m proudest of is three live data widgets. They’re a GitHub commit tracker, a GitHub contribution graph matching my profile heatmap, and a Hackatime coding time dashboard. All three needed lots of debugging. I finished by adding responsive breakpoints, since none of my layouts adapted to mobile at all. Most of this project was debugging, not writing new code, which taught me more than the actual building did.
Ships:
This started as a school web dev assessment and passion project I’ve been meaning to do for a while, but quickly grew way past that. I built a full portfolio site with a Catppuccin based light/dark theme, Home/About/Blog/Projects/Contact pages, and a system that auto-generates cards for blog posts and projects from JSON data. Along the way I fixed a bunch of bugs, such as my broken image fallback logic (was checking .ok on an unresolved fetch Promise), an undiscoverable native multi-select filter (replaced with clickable pill buttons), a missing closing that broke my page layout, and hardcoded NZ date formatting. The part I’m proudest of is three live data widgets. They’re a GitHub commit tracker, a GitHub contribution graph matching my profile heatmap, and a Hackatime coding time dashboard. All three needed lots of debugging. I finished by adding responsive breakpoints, since none of my layouts adapted to mobile at all. Most of this project was debugging, not writing new code, which taught me more than the actual building did....
|
1793339373.9935207
|
1793425773.9935207
|
|
42931
|
inspireFlow by @Cret | Stardance
|
Cret
|
1
|
20.0
|
74
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-07T03:40:35Z", "hours": 20.0, "multiplier": 5.89, "payout": 74, "blessing": "neutral", "text": "Thank you to visit here. I am the frontend developer You can create a new account or use our demo account demo account: pawntest2026 password: test123456789abc", "repo": "https://github.com/AdvxPlora2026/inspire-flow-frontend", "demo": "https://testflight.apple.com/join/ezvT3SN9"}]...
|
[{"post_id": 42419, "ts": "202 [{"post_id": 42419, "ts": "2026-08-07T03:34:32Z", "hours": 0.4786, "text": "I want to add English support first. And then I give up"}, {"post_id": 40600, "ts": "2026-08-04T07:55:13Z", "hours": 19.1381, "text": "InspireFlow An AI-powered creative workflow assistant for creators. InspireFlow (升变) is a project built by a team of high school students during AdventureX 2026. It explores how AI can help creators manage the journey from an initial idea to a finished piece of content, while keeping their creative assets organized and under their control. What are we building? Creating content often involves scattered ideas, unfinished drafts, collaboration messages, brand requirements, and production plans across different tools. InspireFlow aims to provide a unified workflow where creators can: Capture and organize creative ideas Transform rough thoughts into structured content plans Assist with outlines, scripts, and production workflows using AI Keep track of creative assets and collaboration history Create verifiable records for important creative materials The goal is to make the creative process more organized, transparent, and easier to manage. Why InspireFlow? Many creators spend significant time developing ideas, writing drafts, and communicating with collaborators. However, these valuable creative assets are often stored across disconnected platforms, making it difficult to track ownership, changes, and the evolution of an idea. InspireFlow explores a different approach: creators should have better visibility and control over the creative process behind their work. How it works InspireFlow combines several technologies: AI assistance — helping creators structure ideas and improve workflows On-device processing — designed to keep sensitive creative information local whenever possible iOS application — providing a native experience for creators Hardware interaction — integrating with devices such as smart rings for easier idea capture Blockchain-based records — exploring ways to create verifiable records for creative assets Current Status InspireFlow is currently a prototype/demo developed during AdventureX 2026. The project was built within a short hackathon timeframe, including: A complete iOS demo application AI-assisted creative workflows Hardware integration experiments A prototype for creative asset verification There is still a lot to improve, and we are continuing to explore how AI can better support creators. Vision From the first spark of an idea to the final delivery, creators should have a clearer and more connected workflow. InspireFlow is an experiment toward building tools that help creators focus on creativity while maintaining better control over their creative process."}]...
|
Title: inspireFlow by @Cret | Stardance
Devlogs:
Title: inspireFlow by @Cret | Stardance
Devlogs:
InspireFlow An AI-powered creative workflow assistant for creators. InspireFlow (升变) is a project built by a team of high school students during AdventureX 2026. It explores how AI can help creators manage the journey from an initial idea to a finished piece of content, while keeping their creative assets organized and under their control. What are we building? Creating content often involves scattered ideas, unfinished drafts, collaboration messages, brand requirements, and production plans across different tools. InspireFlow aims to provide a unified workflow where creators can: Capture and organize creative ideas Transform rough thoughts into structured content plans Assist with outlines, scripts, and production workflows using AI Keep track of creative assets and collaboration history Create verifiable records for important creative materials The goal is to make the creative process more organized, transparent, and easier to manage. Why InspireFlow? Many creators spend significant time developing ideas, writing drafts, and communicating with collaborators. However, these valuable creative assets are often stored across disconnected platforms, making it difficult to track ownership, changes, and the evolution of an idea. InspireFlow explores a different approach: creators should have better visibility and control over the creative process behind their work. How it works InspireFlow combines several technologies: AI assistance — helping creators structure ideas and improve workflows On-device processing — designed to keep sensitive creative information local whenever possible iOS application — providing a native experience for creators Hardware interaction — integrating with devices such as smart rings for easier idea capture Blockchain-based records — exploring ways to create verifiable records for creative assets Current Status InspireFlow is currently a prototype/demo developed during AdventureX 2026. The project was built within a short hackathon timeframe, including: A complete iOS demo application AI-assisted creative workflows Hardware integration experiments A prototype for creative asset verification There is still a lot to improve, and we are continuing to explore how AI can better support creators. Vision From the first spark of an idea to the final delivery, creators should have a clearer and more connected workflow. InspireFlow is an experiment toward building tools that help creators focus on creativity while maintaining better control over their creative process.
I want to add English support first. And then I give up
Ships:
Thank you to visit here. I am the frontend developer You can create a new account or use our demo account demo account: pawntest2026 password: test123456789abc...
|
1793436953.4555
|
1793523353.4555
|
|
42942
|
PikaOS by @notvedansh | Stardance
|
notvedansh
|
1
|
29.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T08:32:02Z", "hours": 29.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The main idea behind this project was to make an operating system with a virtual assistant, so I chose Pikachu as the main theme. Now, for the cool features: the Pikachu assistant can move on your screen. Clicking it will make it stop, and it will open a panel where you can type things from a selected range of inputs that will make Pikachu do the certain things I have written about in my devlogs; you can see those. Well, it also has a terminal and a file manager which are fully functional. The main thing I see from this project is a base for version 2 of the project. I have a set of goals which I would complete in the next version. I think I learned a lot from handling the CMake errors; at least, I think almost every time I compiled the code, I had at least atleast one error. And yh i think that’s it.", "repo": "https://github.com/vedansh201/PikaOS", "demo": "https://github.com/vedansh201/PikaOS/releases/tag/Version-1"}]...
|
[{"post_id": 74985, "ts": "202 [{"post_id": 74985, "ts": "2026-09-28T19:35:22Z", "hours": 1.5372, "text": "#Final Devlog Alright so yeah you all haven’t heard from me in a while now, and I am very,, very sorry for that like I couldn’t manage a project of this level with my daily life and there were some family complications. But long story short, I created version 1 of this operating system. Now it’s not fancy and does not have all the desired features i promised it would have, but it’s version 1 so yeah. There will be new versions of this, and I think the next version will be the final version of it. I am proud of it what i have made, like, most of my time was wasted in handling the cmake errors so yeah, but still I think it has the perfect base for upcoming features. And for what i did to complete it - i did all the wiring of the system like i completed the main base and did the panel work so like now when we click the start button it opens a panel with two options file manager and terminal. So yeah, that’s it, guys: version 1 of PikaOS is finally complete."}, {"post_id": 60166, "ts": "2026-09-02T11:43:24Z", "hours": 8.6597, "text": "Devlog 6 Well, every Operating system needs a file manager, so I completed one. It now has folder navigation, sidebar locations, creating files and folders, renaming, deleting, properties, right-click menus, multi-selection, and multi-file copy/cut/paste. I have added it to the assistant so that typing “open files” will open the file manager. Now I will add more features to this, but I want to complete the base of the whole O.S. first. I had to handle so many CMake errors; handling them took most of my time."}, {"post_id": 52281, "ts": "2026-08-22T12:01:52Z", "hours": 5.48, "text": "Devlog 5 Well sorry for the late devlog i was little busy with my school life. The good thing is the terminal is now finally ready in the operating system. I initially had the terminal running Bash through QProcess, which worked for simple commands, but it had limitations. Things like Ctrl+C, interactive programs, terminal formatting, and commands such as ping weren’t behaving like they would in a real terminal. So I switched to a PTY (pseudo-terminal) approach using Linux’s forkpty(). Last time u saw the assistant working, I also connected my assistant to this terminal, not the Konsole which I was using earlier. Also sorry for the vid quality and voice"}, {"post_id": 44732, "ts": "2026-08-10T17:52:16Z", "hours": 3.9169, "text": "Devlog 4 So I don’t think I have mentioned why I’m tinkering with a Pikachu image. So I think it’s time to reveal to you my plan for this operating system. I wanted my operating system to have an assistant that would help with small tasks such as creating folders open terminal. So, like now, when you click Pikachu, you will open a dialogue box in which you can type things. ** FEW FUNCTIONS IT CAN DO RIGHT NOW ** –> It can open the terminal. –> It can tell the battery status. –> It can tell the date and time. –> It can create files and folders. –> It has a help command too, so that if you want to know what things it can do. Now, what happens when you type something it doesn’t understand? It says, “I don’t know this command”. I will be improving the assistant more in the upcoming days, but setting up the logic for this much part only is exhausting."}, {"post_id": 42787, "ts": "2026-08-07T17:52:08Z", "hours": 3.2186, "text": "Devlog 3 So, over the last two days, I spent making Pikachu move left to right; I mean, now Pikachu can move a random distance in a random time. He can move 50 pixels in the left direction and then wait for some random time and then start moving again in random directions. Also, it flips the image, so if it moves left, the image gets flipped, and up and down motion is as it is. Now this may seem very little, but trust me, the level of errors I have encountered is crazy. Here is a video attached. ignore the vid quality."}, {"post_id": 41232, "ts": "2026-08-05T09:40:04Z", "hours": 2.2336, "text": "Devlog 2 So after spending a considerable amount of time thinking about which thing to start from, I went with polishing the Pikachu transparent image I have on the desktop. So now it is draggable!! And you can drag it from one place to another. I also added a simple up-and-down animation to it. So now the image moves up and down, and once you drag it to some other place, it will do the same at that place too. My plan for it is that after this, I will add walking, sleeping and idle motion. PS - sorry for the video quality."}, {"post_id": 40806, "ts": "2026-08-04T15:53:23Z", "hours": 3.6608, "text": "#Devlog 1 So I planned to build an operating system that is built around my favourite Pokémon, Pikachu. I am building it in Oracle VirtualBox. I will mainly use C++ for this because they are faster and also because I want to build something using my C++ skills. So what I did is not that interesting: I set up my vbox, installed git and connected hackatime to it. What I actually coded: Created a dedicated Pikachuwidget Loaded the sprite through Qt’s resource system Fixed resource loading issues and CMake errors I downloaded an image from browser that is transparent and added it to the desktop layer of pikashell. I also added functions so that it shows the time in the panel. Now I know it sounds simple, but it took me lots of time to figure out why the image is not showing up on the desktop layer."}]...
|
Title: PikaOS by @notvedansh | Stardance
Devlogs: Title: PikaOS by @notvedansh | Stardance
Devlogs:
#Devlog 1 So I planned to build an operating system that is built around my favourite Pokémon, Pikachu. I am building it in Oracle VirtualBox. I will mainly use C++ for this because they are faster and also because I want to build something using my C++ skills. So what I did is not that interesting: I set up my vbox, installed git and connected hackatime to it. What I actually coded: Created a dedicated Pikachuwidget Loaded the sprite through Qt’s resource system Fixed resource loading issues and CMake errors I downloaded an image from browser that is transparent and added it to the desktop layer of pikashell. I also added functions so that it shows the time in the panel. Now I know it sounds simple, but it took me lots of time to figure out why the image is not showing up on the desktop layer.
Devlog 2 So after spending a considerable amount of time thinking about which thing to start from, I went with polishing the Pikachu transparent image I have on the desktop. So now it is draggable!! And you can drag it from one place to another. I also added a simple up-and-down animation to it. So now the image moves up and down, and once you drag it to some other place, it will do the same at that place too. My plan for it is that after this, I will add walking, sleeping and idle motion. PS - sorry for the video quality.
Devlog 3 So, over the last two days, I spent making Pikachu move left to right; I mean, now Pikachu can move a random distance in a random time. He can move 50 pixels in the left direction and then wait for some random time and then start moving again in random directions. Also, it flips the image, so if it moves left, the image gets flipped, and up and down motion is as it is. Now this may seem very little, but trust me, the level of errors I have encountered is crazy. Here is a video attached. ignore the vid quality.
Devlog 4 So I don’t think I have mentioned why I’m tinkering with a Pikachu image. So I think it’s time to reveal to you my plan for this operating system. I wanted my operating system to have an assistant that would help with small tasks such as creating folders open terminal. So, like now, when you click Pikachu, you will open a dialogue box in which you can type things. ** FEW FUNCTIONS IT CAN DO RIGHT NOW ** –> It can open the terminal. –> It can tell the battery status. –> It can tell the date and time. –> It can create files and folders. –> It has a help command too, so that if you want to know what things it can do. Now, what happens when you type something it doesn’t understand? It says, “I don’t know this command”. I will be improving the assistant more in the upcoming days, but setting up the logic for this much part only is exhausting.
Devlog 5 Well sorry for the late devlog i was little busy with my school life. The good thing is the terminal is now finally ready in the operating system. I initially had the terminal running Bash through QProcess, which worked for simple commands, but it had limitations. Things like Ctrl+C, interactive programs, terminal formatting, and commands such as ping weren’t behaving like they would in a real terminal. So I switched to a PTY (pseudo-terminal) approach using Linux’s forkpty(). Last time u saw the assistant working, I also connected my assistant to this terminal, not the Konsole which I was using earlier. Also sorry for the vid quality and voice
Devlog 6 Well, every Operating system needs a file manager, so I completed one. It now has folder navigation, sidebar locations, creating files and folders, renaming, deleting, properties, right-click menus, multi-selection, and multi-file copy/cut/paste. I have added it to the assistant so that typing “open files” will open the file manager. Now I will add more features to this, but I want to complete the base of the whole O.S. first. I had to handle so many CMake errors; handling them took most of my time.
#Final Devlog Alright so yeah you all haven’t heard from me in a while now, and I am very,, very sorry for that like I couldn’t manage a project of this level with my daily life and there were some family complications. But long story short, I created version 1 of this operating system. Now it’s not fancy and does not have all the desired features i promised it would have, but it’s version 1 so yeah. There will be new versions of this, and I think the next version will be the final version of it. I am proud of it what i have made, like, most of my time was wasted in handling the cmake errors so yeah, but still I think it has the perfect base for upcoming features. And for what i did to complete it - i did all the wiring of the system like i completed the main base and did the panel work so like now when we click the start button it opens a panel with two options file manager and terminal. So yeah, that’s it, guys: version 1 of PikaOS is finally complete.
Ships:
The main idea behind this project was to make an operating system with a virtual assistant, so I chose Pikachu as the main theme. Now, for the cool features: the Pikachu assistant can move on your screen. Clicking it will make it stop, and it will open a panel where you can type things from a selected range of inputs that will make Pikachu do the certain things I have written about in my devlogs; you can see those. Well, it also has a terminal and a file manager which are fully functional. The main thing I see from this project is a base for version 2 of the project. I have a set of goals which I would complete in the next version. I think I learned a lot from handling the CMake errors; at least, I think almost every time I compiled the code, I had at least atleast one error. And yh i think that’s it....
|
1793339379.267187
|
1793425779.267187
|
|
42985
|
The Sun and Moon by @NOT_a_ZEBRA | Stardance
|
NOT_a_ZEBRA
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T07:31:50Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website that gives u random but new facts about space directly from NASA . It seemed easy at the beginning but i became hard when it came to JavaScript. I face a problem with the css file as it was not working along with the other files, i tried to link it several times but nothing happened , so i used AI to debug it and then it was workin!!", "repo": "https://github.com/zebraz567/GoodOne", "demo": "https://zebraz567.github.io/GoodOne/"}]...
|
[{"post_id": 43138, "ts": "202 [{"post_id": 43138, "ts": "2026-08-08T07:27:53Z", "hours": 1.2889, "text": "This is my first time working with APIs and stuff, but it was really fun to develop this website!!!"}]...
|
Title: The Sun and Moon by @NOT_a_ZEBRA | Stardanc Title: The Sun and Moon by @NOT_a_ZEBRA | Stardance
Devlogs:
This is my first time working with APIs and stuff, but it was really fun to develop this website!!!
Ships:
I made a website that gives u random but new facts about space directly from NASA . It seemed easy at the beginning but i became hard when it came to JavaScript. I face a problem with the css file as it was not working along with the other files, i tried to link it several times but nothing happened , so i used AI to debug it and then it was workin!!...
|
1793562513.2052772
|
1793648913.2052772
|
|
43000
|
My own site! by @Ng_Chang_Jack | Stardance
|
Ng_Chang_Jack
|
1
|
3.61
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T15:58:26Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I just finished making my own site! I am going to update it regularly I used AI for helping me solve problems when i am stuck and also for code correcting", "repo": "https://github.com/Chz3nex/WebOs", "demo": "https://chz3nex.github.io/WebOs/"}]...
|
[{"post_id": 41228, "ts": "202 [{"post_id": 41228, "ts": "2026-08-05T09:36:26Z", "hours": 0.6092, "text": "Devlog 05(probably the last/updated the design 1 last time)"}, {"post_id": 40803, "ts": "2026-08-04T15:42:09Z", "hours": 0.6719, "text": "Devlog 04 (added an interactive button!)"}, {"post_id": 40626, "ts": "2026-08-04T09:18:18Z", "hours": 0.4028, "text": "Devlog 03 (added hover animation!)"}, {"post_id": 39959, "ts": "2026-08-03T09:14:15Z", "hours": 0.4117, "text": "Devlog 02 (Improved the design)"}, {"post_id": 39398, "ts": "2026-08-02T10:40:54Z", "hours": 1.1422, "text": "Devlog 1(Basic Website Elements)"}]...
|
Title: My own site! by @Ng_Chang_Jack | Stardance
Title: My own site! by @Ng_Chang_Jack | Stardance
Devlogs:
Devlog 1(Basic Website Elements)
Devlog 02 (Improved the design)
Devlog 03 (added hover animation!)
Devlog 04 (added an interactive button!)
Devlog 05(probably the last/updated the design 1 last time)
Ships:
I just finished making my own site! I am going to update it regularly I used AI for helping me solve problems when i am stuck and also for code correcting...
|
1793458290.7876008
|
1793544690.7876008
|
|
43004
|
my APOD site by @Rayna_gupta | Stardance
|
Rayna_gupta
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T11:14:17Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a website in which NASA’s present day and past days pictures with explanation can be accessed using API keys, and learn facts about the SPACE and SOLAR SYSTEM, get to know a little bout the solar system and some of our moons.", "repo": "https://github.com/messdinge/NASA.Pictureoftheday", "demo": "https://messdinge.github.io/NASA.Pictureoftheday/"}]...
|
[{"post_id": 43909, "ts": "202 [{"post_id": 43909, "ts": "2026-08-09T11:06:20Z", "hours": 1.8292, "text": "I’ve been working on my APOD site, which will provide you with basic space information, and provide you with NASA’s present and past day picture, here are the results:"}]...
|
Title: my APOD site by @Rayna_gupta | Stardance
D Title: my APOD site by @Rayna_gupta | Stardance
Devlogs:
I’ve been working on my APOD site, which will provide you with basic space information, and provide you with NASA’s present and past day picture, here are the results:
Ships:
i made a website in which NASA’s present day and past days pictures with explanation can be accessed using API keys, and learn facts about the SPACE and SOLAR SYSTEM, get to know a little bout the solar system and some of our moons....
|
1793569815.0752466
|
1793656215.0752466
|
|
43023
|
Worlds Unbound - Terrain Engine by @alpeka | Stard Worlds Unbound - Terrain Engine by @alpeka | Stardance...
|
alpeka
|
1
|
125.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:05:30Z", "hours": 125.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "— SHIP No.1 — I spent the last couple of months making a model terrain, which I will use for my game that I will continue to build after this competition. My game idea is quite ambitious, and given how long it took for me to get this basic terrain to work properly and well, that won’t even be coming with the extra month added one. I lot of you may be thinking though, what on earth were you doing for 125 hours, when all you came up with is a glorified green and grey piece of paper you could walk on. Well, not only was I learning and using Godot for the first time, it was the first time I learnt anything as complicated as this. I had to wrap my head around complex (at least for me) maths and computer science topics, like vectors and cross product, noise and FBM, TBN model, and UVs, not to mention just the sheer amount of logic I had to get through. It was so tiring to keep getting bugs for the chunking system I had, or the collisions. But thankfully, all that is behind me 😼. I’ll give you a more indepth look into what I’ve done over the past couple months. Devlogs 1-12: This period was the general beginning of my project. Not only was I learning Godot, and watching tutorials on it, I was also spending time on the player character, the camera system, and the world environment. Devlogs 13-15: I tried to implement LODs into my chunks, since the performance was simply too bad. Somehow this made it worse, possibly because of more chunks (the ones at the broder of LOD borders) being forced to be unloaded and loaded back in. Devlogs 16-21: I used my current technique, heavily based from devmars video on youtube about procedural terrain during this period. School had also started, so I spent less and less time on it, being significantly burnt out and tired. So I basically went through 3 iterations of terrain for my game, so that is why it took so long to get to this point.", "repo": "https://github.com/jona-mtw/Celestial", "demo": "https://alpeka.itch.io/worlds-unbound-terrain-engine"}]...
|
[{"post_id": 73370, "ts": "202 [{"post_id": 73370, "ts": "2026-09-25T00:42:51Z", "hours": 2.2056, "text": "Devlog 21 - Ship Prep!!! Colours I added colours to the terrain depending on how high the vertex is. This does create a very harsh border between the two colours, but I didn’t want to learn lerping, ik how to larp enough. Cleaned up my commits My commits were, and probably are still messy, and when I went ahead to revert some changes it said there were errors, but now thankfully that’s all fixed. :) I also updated quite small normals and some technical stuff."}, {"post_id": 72564, "ts": "2026-09-23T07:21:06Z", "hours": 3.9622, "text": "Devlog 20: GPU noise I found a way to make noise using a Godot addon called FastNoiseLite Runtime Shader . It was apparently identical to the FastNoiseLite in GDScript. So I gave it a try. I knew it was a gamble, given how much time I got left to ship an decent project, but I gave it a try since it seemed interesting. It wasn’t that hard to get the noise working, but to get it to sync with the collisions was a nightmare. In the end, I decided that even though the README stated it was 99.9% the same, the output seed by seed was different. So I decided to scrap it and now I’m going back to the old version with heightmaps. Why did I really want to switch? Because of the limited colour depth in images (has to be 8-bit for GDShader to read), theres not enough heights for each vertex to be at, so every so often, there’s this massive wall. It looks fine from afar, but thats probably because my terrain is 20km x 20km, so of course an 8m tall wall would look fine. (the image is from the addon readme)"}, {"post_id": 70779, "ts": "2026-09-19T19:04:39Z", "hours": 6.5594, "text": "Devlog 19 - Main Menu Added (and other things)! I spent quite a lot of time making the background for the main menu in Blender. After just copy and pasting the player model used in the game, I went ahead and made the main attraction: ✨ the planet in the background ✨ . My knowledge of noise that I gained from my previous attempts at the terrain generation helped me create the stars in the background, and the texture for the actual planet in the shader editor. I also added a slight atmosphere, which is (somewhat?) noticeable. I also went ahead and updated the shader code. Before, I used to use the visual shaders, since it was quite similar to the shader editor in Blender, which I was familiar with. But then I realised there’s just more flexibility with using GLSL . I can group uniforms in the inspector, making it clearer and less cluttered if I want to add textures in the future, including different images for the same texture (like Ambient Occlusion, Normals, Colours, and Roughness). Thus being able to group those different types images for the same texture was very important for future usability. Thankfully, Godot allows you to see the shader code that is generated from the visual shaders. Unfortunately, it was not readable at all. The generated code used a random(ish) collection of numbers and letters, and it was too long. Look below for the comparision for just the vertex shader, but it was something like 84 lines that was shruken down to 10 for the vertex shader. Even if you account for spaces in the generated code (which then it might be like 50-60 lines) thats a huge difference. So it took quite some time to get it to a readable state. edit: idk why the actual background looks so bumcheeks compared to the banner, hopefully itll be fixed by then 🤞"}, {"post_id": 67802, "ts": "2026-09-14T01:51:22Z", "hours": 4.0497, "text": "Devlog 18 - I am happy once again!! I FINALLY got the collisions to work!! Basically, it looks at the terrain model that is imported into Godot, and aligns the vertices of the CollisionShape3D with it. It also updates its position every time the player moves 1 unit (whatever the size of a quad of the mesh is). Then it looks at the heightmap, looks up the height of its coresponding pixel, multiplies that by the height shader param (2000, like in the vertex shaders), and thats the collision shape done. I noticed while walking around the world, that there were these massive ridges on the terrain. This is due to the lack of precision in the heightmap. The heightmap only has 256 shades of grey, and I need 2000 values. It is quite impossible to make a image file with that much precision, so instead, I’ll make it so that the CPU will just send an array to the vertex shader. Also, I’ve rebranded my project to Worlds Unbound, and this specific Stardance project will just be handling the terrain stuff for the game. p.s, it never goes above 16ms, i think thats probably because i was recording"}, {"post_id": 65723, "ts": "2026-09-11T02:05:18Z", "hours": 6.0086, "text": "Devlog 17 - I am incredibly frustrated. No matter what I do it feels like I just can’t get the collisions to work. Basically, I’m trying to fetch the heights from the height map to input into the CollisionShape3D, but the coordinates are always offset in some way or the other. I even used AI my friend to basically rewrite the entire script over and over again, but that didn’t work either. Maybe it’s cos school has started now, and I haven’t been able to spend that much time on this project than I would like to As you can see in the photo, the collision mesh (in blue) is offset from the normal terrain (in white)"}, {"post_id": 63142, "ts": "2026-09-06T19:41:46Z", "hours": 7.2203, "text": "Devlog 16 - AMAZING PROGRESS!! I’ve managed to get a massive 20km render distance with huge mountains and ridges using FastNoiseLite and vertex shaders. I used devmar ’s terrain technique, which he named the “Wandering Clipmap Terrain Technique”. The reason why the technique is called the “ Wandering Clipmap Terrain Technique” is because a flat plane that is subdivided a bunch (to make varrying levels of detail (LODs)) that follows the player. The vertex shaders then offset the heightmap so it gives off the illusions that your moving about in a massive world. All the displacement is done by the vertex shaders, which looks at a heightmap. In the future, I might make this heightmap be generated in gdscript instead of in the inspector, to deal with texture resolutions. Currently, from afar, the terrain looks amazing (except from the fact its not textured) but upclose, you can see rings in the terrain, which is caused by the heightmap’s resolution being too low. In fact each ring is about 8m tall so I really need to fix that 😭 The normals are calculated by just copying the heightmap and setting it ‘as normals’ in the inspector. They also are multiplied by a normal basis matrix, which allows me to configure the specific normal settings. I’ll need to calculate the normals in the fragment shader as well in the future for more convincing shadows, but for the mean time, the vertex shaders should do just fine. I’m planning on adding collisions, then maybe textures, biomes and vegetation soon!!"}, {"post_id": 61230, "ts": "2026-09-04T01:57:24Z", "hours": 4.8533, "text": "Devlog 15 - I’m an Idiot For the past 95ish hours, I’ve been working on a way to make procedural terrain for my game. I tried 2 main methods, one centred round the CPU, and one I was building centred around the GPU. The endless chunk seam bugs caused me to burnout/get tired of the entire project, and there was so many stuff (that I won’t really be explaining for the sake of my poor reader’s sanity) leading to me ✨ youtube ✨ I saw this AMAZINGLY smart video by devmar, showing an alternate way of generating terrain. I urge you to watch the video as well, the whole technique is very very clever, and he even goes on to make further videos on making collisions, recalculating normals and adding vegetation, especially if your interested in procedural generation. After watching this video however, I became incredibly frustrated. I spent nearly 100hrs of my summer making this procedural terrain which I know hadn’t gotten anywhere and theres this incredibly smart video from 4yrs ago that pops up on my feed. Welp, now ig i gotta try out this way, and quick cos my parents are on my tail talking about me finishing this project before school starts 🙏 (its my gcse year so ig its valid but still ) Now what I actually did that counted to my time Experimented with vertex shaders, and sending heightmaps to vertex shaders to displace. This however caused immense lag and caused VERY ANNOYING chunk seams. #epicfails"}, {"post_id": 59673, "ts": "2026-09-01T16:27:07Z", "hours": 9.5572, "text": "Devlog 14 - LOD chunks ——— OPTIMISATION IS SOO HARDD 10hrs to do practically do something I’ve already done? (i had already made a chunk system in previous devlogs) Well, whilst some of that time was transferring code from my old commits to the current one and making sure it works, most of the time I spent on this devlog was spent on ✨ “optimisation” ✨ Optimisation First of all, I added LODs into the chunk mesh. What this means is that since further away chunks take up less of your screen, the level of detail (LOD) is reduced the further away it is. I had already made the script that handled the creation of those different meshes with different LODs, so in this devlog, I added it to the main terrain generation script, and assigned each LOD to a certain distance, so that any chunk with a certain distance has a certain LOD. In my last version of the terrain generation, I relied on the name of the MeshInstance3d nodes created to identify what chunk they were. I realised when making this updated version that it was prone to failure, since if the node did not exist or a node with the same name were some how added to the scene tree, errors would be raised or at the very least, a logic error would occur. To recetify this, I switched to using dictionaries to house all the information of all the chunks: chunks : Dictionary [ Vector2i , int ] = { Vector2i ( 0 , 0 ): 0 , Vector2i ( 0 , 1 ): 0 , #etc } The key is chunk coordinate, and the value is the LOD (0 being the highest, 4 being the lowest) Every time I wanted to update the terrain, I would search the scene tree if a particular node was unwanted (again, by looking at the name) and then generating the rest of the ones wanted. This way would not work with LODs, since some chunks may still exist, but may have to change LOD depending on where the player is. So I made use of the dictionary and also created a new one that would store the chunks that I want created. It would loop through the dictionarys, checking certain conditions, and the terrain would be updated. All this looping is somewhat inefficient, and did cause some lag spikes, so I will try to fix that next devlog by only checking the chunks that would be affected based on which way the player moved. To help with the looping, I created chunk and lod lookup tables, that can be offset based on the players_position. These lookup tables are only changed when the render distance is changed, so the same calculation doesn’t have to run hundreds of times in 16ms (60 fps)."}, {"post_id": 57389, "ts": "2026-08-29T15:03:50Z", "hours": 3.8103, "text": "Devlog 13 - LOD template I basically deleted all the old code, and started over, by making a function where the noise will be given to the vertex shader, and one that will generate the actual flat mesh for it (which is going to be changed by the vertex shader). I made the template for making flat planes with different levels of detail (LOD), which will be changed by the vertex shaders, applying the noise to the mesh. I created a new script called lod.gd and gave it a class name, so that I can call multiple instances of it in the main terrain generation program. Every time the program wants to make another chunk, I have to pass the arguements: resolution - what ive defined as a synoymn of LOD chunk_pos - where the chunk is The function then loads an ArrayMesh from a pre-generated list of possible meshes and creates a new MeshInstance3D node to display it. Extra stuff I also added player coords and chunk position in the debug_screen :)"}, {"post_id": 56938, "ts": "2026-08-28T23:24:46Z", "hours": 4.2589, "text": "Devlog 12 - General updates 3.0 I PROMISE THIS IS THE LAST ONE GUYS 🙏 Performance Stats I added a little HUD showing the FPS, the time it takes to make one frame (has to be below 16.67ms (60fps) or there will be noticeable lag), and the memory usage. Lighting, Shadows, and World Environment I slightly changed the shadow bias and normal bias so that shadow artifacts are to a minimum. On top of that, I set it so that shadows aren’t cast for the terrain, which unintentionally handles with some of the artifacts, whilst keeping the “shadows” by illuminating the terrain depending on where the DirectionalLight3d is, making the “shadows” reponsive to a future day-night cycle. Also the volumetric fog and lighting looks better Camera Issues 2.0 So previously I had the player hide() when you go into first person, but that also effects the shadows. So instead I made the visor disappear when you go into first person. But then there was another problem. The head would move during the idle and walking animations, which is quite distracting and could be problematic for some players. So I stopped the animtions whilst in first person. It is a very rudimentary fix, since players can look at their shadows and see the lack of animation. Furthermore if I want to add multiplayer in the future, it’ll look very weird. Performance checks In preparation of the biome generation, I wanted to make sure the performance is fine. It takes a bit for the terrain to generate at the start, but thats common across nearly every game. And this will be lightened a bit when I implement LODs. Once the game is running, it runs relatively fine, except with (very quick) lag spikes when the chunks update. To address this, I’m planning of offloading some of the terrain generation to the GPU, which can calculate normals a LOT more effeciently and quicker than the CPU. Current, the CPU calculates all the vertices, indices, normals, and then compiles it into an ArrayMesh , which is given to the GPU for rendering. This can put a lot of strain on the CPU, especially later down the line, so it’s better and more effiecient if the GPU does the very repetetive calculations, by making it do all the normal calculations, including other stuff."}, {"post_id": 56302, "ts": "2026-08-28T01:02:37Z", "hours": 5.1292, "text": "Devlog 11 - General updates 2.0 Editor Tools!! - (to see the terrain in the editor) So in a previous devlog, I think I talked about how I added @tool in my terrain generation program to be able to see it in the editor. Once I made it dependent on the player position, it didn’t generate in the editor because the player wasn’t loaded in. So now I made it so that if the script was running while the editor (not the game) is open, the terrain would generate around (0, 0) based on how ever big the render distance is. Also I made it so that if you tweak the value of any of the primary noise settings in the editor, it updates in the editor. On top of that, I set the viewport to display wireframe so that I can see the triangles at different resolutions, which is where I came across:…. FLOATING POINT ERRORS!!! (yay ) I noticed that if I set the resolution to a decimal value that was not a power of 2, the triangles would be off by some amount, causing neighbouring triangles to overlap each other, causing normal and collision problems. The resolution variable is going to be eventually used for LODs, so since I’ll be the only setting it, I’ll just make sure to use a value thats a power of 2 The reason why this happens is because 16 (my chunk size) can be multplied and divided by 0.125 (2^-3) evenly to create an integer, compared to 0.1 which results in 1.6. Any smaller power of two is rounded it to the nearest 3dp, so 0.0625 (2^-4) doesn’t work. Camera Issues So I made functionality with the camera where you can scroll to zoom the camera in and out, and if you scroll far enough in, you’ll be in first person, much like how it works in Roblox. There was one problem though. Since the material for the visor on the player model was somewhat transluscent, your view would get darker. Also, you could free look inside the helmet, looking at the areas I wasn’t bothered to model and texture hadn’t modelled. So I disabled that in first person. The biggest timewaste of my life In an attempt to offload some of the generation to the GPU for more effecient parallel processing, I tried to figure out which parts of the algorthim were going to be handled by the CPU and GPU. There were some that had to be handled by the CPU, and there was no choice about those, and they were: collisions and figuring out what chunks should be rendered. At first I thought, how about I offload nearly everything to the GPU, including the noise function. Then I learnt that FastNoiseLite didn’t exist in .gdshader . So I did what any normal person would do, and CODE PERLIN NOISE BY HAND. I spent HOURS learning everything my dumbass could about it: vectors, normals, gradients, deviation, erosional generation, and finite difference approximation. At least I probably learnt something useful for FSMQ 🤷 (a British maths exam most students do in yr11 along with their other GCSEs)."}, {"post_id": 55266, "ts": "2026-08-26T23:25:21Z", "hours": 4.5936, "text": "Devlog 10 - General updates Alright, so ik I said I would work on the procedural terrain, but instead I worked on:… Debugging Tools!! (yayy! ) When tab is pressed, it toggles on debug mode, where all meshes turn into wireframes (to check LOD) and chunk boudaries are shown. There are problems with chunk boundaries not despawning when the terrain its on is gone, but that’s fixed when you toggle debug mode again :). I could fix it but icba I have other stuff that needs to be prioritsed. Resizabile UI So before, if you resized the window, the pause menu and settings menu would be offset from the centre and wouldn’t scale with the window. Now when you scale it, the pause and settings menu stay in the centre and scale accordingly. (the flickering in the video is just an artifact created by the godot editor, and will apparently be fixed once exported)"}, {"post_id": 55025, "ts": "2026-08-26T13:34:07Z", "hours": 7.725, "text": "Devlog 9 - Player Animation!! Walking and Idle Animations I finished a basic walking and idle animation for the player. The walking animation is also somewhat inspired from the kerbals from KSP. Both the animations are kinda choppy, especially when the animation loops round, but frankly icba I didn’t have enough time to fix them rn (mbmb 😭 ). Thankfully the walking animation is timed properly so that the player doesn’t look like its sliding around. Camera updates I added functionality to the camera where you can freelook around the player when holding the right mouse button. Once released, it goes back to the normal position (motion is lerped). Prepartions for next steps For the next steps, I want to go back to the terrain_generation program and start to add variation across the world (like biomes, mountains, etc.). I’m also looking to optimise it, making it generate terrain and collisions faster in prepartion for any future implementation of faster travel. So I added functionality that can allow me to make LODs, which will likely be implemented next devlog."}, {"post_id": 53506, "ts": "2026-08-24T02:34:01Z", "hours": 9.7758, "text": "Devlog 8 - Player Model and other assets! Player Model I finished with texturing, rigging and weight painting. Next Step is to make the walking and jumping animations. Worked on the settings menu I updated the setting menu layout to account for different settings I’ll add in the future Stupid Bugs So when trying to break the terrain generation, I set the speed of the player to like 300 (which it will never be in the game except when in a space ship) but when I tried to do that, the game kept crashing, spitting out an error saying that something didn’t exist. It was coming from my unload_terrain() function. Basically how it works is it checks for all the instances of the MeshInstance3D node, and checks the name of it. For every chunk that is created, I assigned a unique name to it on creation based on the x and y coordinates of it. The function would checking all the nodes, and seeing which ones were out of the “ collision_chunk_size ” radius, and then would delete them. But when going super fast, the processing of things got all weird, meaning that when it tried to delete a chunk, and if it didn’t exist, it would crash. So I added a simple if statement if len(child_name_array) > 2: (basically it would check if the length of the name was long enough to see if there was the coord data). Stupidly I wrote the greater than sign the wrong way round, which led to me being stumped for SO long on why the terrain was just not unloading. tldr: > was the wrong way round and cost me hours."}, {"post_id": 48656, "ts": "2026-08-17T04:20:08Z", "hours": 6.7203, "text": "Devlog 7 - Chunks # 2: PROCEDURAL GENERATION DONE (mostly) Bugs Managed to fix all the bugs related to this part of terrain generation. Weird chunk errors There was an if statement (I changed it out for something else that’s more efficient) that was like: if abs(player_position.x - chunk_pos.x) > collision_chunk_size or abs(player_position.y - chunk_pos.y) > collision_chunk_size This logic error create weird stuttering issues and lag. The fix was to switch or with and . Normals DEFINITELY the bane of my existence. I know roughly what normals are due to me doing 3D modelling/rendering, but I have no clue how it actually works. And plus, I’ve barely covered the maths I need for this in school, so I spent sooo much time (much of which wasn’t recorded) just researching about normals and how they work. I think that definitely helped me find a solution to the annoying chunk borders and random artifacts found inside each chunk. Chunk Sizing I stupidly and randomly changed the chunk size from 16 to 10, which worked completely fine, except for the fact that the player script was still using the 16x16 chunk system, causing the generation to lag behind, eventually leading to the player falling off the map. New Features There were also some ✨ features ✨ that I added. Colour I added colour to the world, and if I match it to the fog and sky, I think it would look AMAZING I will make it so that the colour does vary across the planet. Player I added the rig and refined the topology for animation."}, {"post_id": 47230, "ts": "2026-08-15T00:41:31Z", "hours": 7.1208, "text": "Devlog 6 - Chunks # 1 Previously, I had it so that the entire world was one big mesh, that could not be expanded without unloading and reloading the whole thing and more. This is obviously very inefficient, especially if I want the terrain to load in and out based on where the player is. Chunks is the answer to that. Split the world into chunks of your choice (I chose 16x16), and load/unload just the chunks you need to, not the whole thing. It seemed easy for me at first, clearly it wasn’t (the #1 for the header, ik this isnt gonna be the only devlog on this 😭 ). Bug 1 - The Normals aren’t normal Last devlog, I talked about calculating the normals, which went smoothly… For the old mesh… You see, to calculate normals, you need the vertices surrounding the vertex your trying to find out, and with chunks, that meant every 16 vertices, the normals were being calculated incorrectly, causing seams to be found in the terrain. However, since we did calculate the normals (for the most part) some pretty nice shadows have been cast on our terrain. Despite it being a bug, it is useful to find out where the chunk boundaries are, which is EXTREMELY useful for debugging, so I haven’t tried fixing it just yet. Bug 2 - Not so Good Performance After dividing the terrain into chunks, and making new chunks generate when the player moved into a new chunk, I tested it out. And every time I tried to cross a chunk border, there would be a huge lag spike. This would be caused by the fact the game prioritised the generation of chunks instead of the game. Thankfully I was able to make it so that the chunks would load whenever the processor was ready, to make sure not to overload it too much. Bug 3 - (Lack of) Collisions Another reason why chunks are useful is for limiting the area with active collisions. When the terrain was one big mesh, the entire mesh had active collisions, which would all be checking if something hit it, which is very resource intensive. Which is why I limited the area with collisions to a small radius around the player. While coding it, many logic erros came up, such as one that caused the collisions to just not work."}, {"post_id": 46583, "ts": "2026-08-13T22:19:41Z", "hours": 8.0178, "text": "Devlog 5 - Procedural Terrain (FINALLY!!) I made a start at making the procedural terrain, made some progress with the player model, and with configuring the basic shaders of the game. Elephant in the Room - Procedural Terrain Technically calling it procedural terrain is cheating a bit, cos really all it is right now is perlin noise applied to each vertex’s height. And with that, you can change the shape of the terrain by changing the values of some variables, like the seed, frequency, and octaves. I exported these variables so I could change them in the editor, and added @tool at the start so I can see it in the editor. I’m starting to work on a chunk system at the moment, which will load and unload chunks of the world as the player moves about. Player Model I finished modelling the player (added this version to the game) and added the bones for rigging, except when I move the arm bone, the helmet deforms, so next time I will be doing some weight painting Thankfully UV unwrapping is done as well so I should be able to texture everything before the next devlog. Also, addressing my last devlog, I said Lapse wasn’t syncing with hackatime. Turns out, if I just told it to create a new project called Celestial (which is what my project is called on hackatime), it’ll just add the time to it, so thats amazing!!! The WorldEnvironment Node I accidentally deleted my old configuration of this node while experimenting with stuff, and so I made some changes to the shading of the world. Next up is to recalculate all the normals of each triangle so shadows can be cast properly. I tried using SSAO, but every time I used that to make some sort of shadow, it changed depending on where the camera was and it made the terrain very pixelated. As you can see in the video, you can see the outlines of the terrain. That is because of the volumetric fog added. It sounds resource intensive, so if it starts to lag out my game I might remove it, which is a shame cos it looks really nice."}, {"post_id": 45513, "ts": "2026-08-12T01:47:27Z", "hours": 6.4792, "text": "Devlog 4 - A little bit of a few things I mostly did a combination of small bits, which is probably bad in terms of github commits and actual progress, but at least it’s not burning me out because I’m doing whatever part of the project I fancy at the time. UI I spent most of the time making a (hopefully) futuristic(?) looking pause menu that can also redirect you to a settings page, where I’m planning to hold the settings for terrain generation for the player to manipulate. Much of this time was spent experimenting with different Control nodes, finding out what they do and what they’re helpful for and manipulating the styles of them. I ended up with a style shown below 👇👇👇 Player Model I think I’ve finalised on a particular style, now I basically just have to make it and then texture it. The sad thing is that for some reason lapse doesn’t recognise my hackclub project anymore (already logged 5+ hrs on lapse), so all the time I spent on Blender wasn’t actually logged. If someone could please tell me how to fix this or if theres an extension for blender that would be SO helpful 🙏. Extras I also added the devlogs to my repository, it should appear there when I next commit, which should be soon!! I realise that the popular devlogs have assets from the get-go, so I probably might focus more on that, despite lapse not working if I wanna record time on Blender or Affinity. Again, if someone could please tell me if something is up with lapse or if there’s an extension that I can download for Blender or Affinity, that would be SOO helpful!! 🙏"}, {"post_id": 44908, "ts": "2026-08-10T23:37:53Z", "hours": 2.1228, "text": "Devlog 3 - Flat Plane I know this sounds INCREDIBLY trivial, but I finally figured out how to make a flat plane in Godot, that can be used to make an actual terrain. There were 2 main ways that I could have used to make this: Method 1: I can use a PlaneMesh and then subdivide it down into triangles. Then use vertex shaders or custom scripts to displace the plane as a whole based on noise. It is faster to make the flat plane using this method since you give Godot most of the control over the tessellation, and the individual vertex placement. This means however that it is a lot harder to load and unload certain parts of the terrain, and it is generally harder to add noise to the terrain since you do not have control over each vertex. Method 2: I can use an ArrayMesh , where I create the grid from scratch, telling Godot how to connect every single vertex to create triangles. The downside to this is how long this took. I know it seems short compared to my first devlog (I think the main reason I took so long in that one was not only because I was learning Godot, but it was also because I was experimenting with player models on Blender but hopefully now I’ll be more time efficient) but it is still more time consuming to tell Godot how to connect each and every vertex. I was in fact so stumped on how to go about doing this that it suddenly came to me when I was playing with my little cousin. I even noted down how to do it on my phones notes app (excuse my bad handwriting I was in the car writing with my finger) :/ Despite it being longer to setup, it is overall better for the needs of my game, since I’ll not only need to be able to change the height of each vertex based on a heightmap, but it can also aid with making biomes, by adding custom values to each vertex, which is simply not possible with PlaneMesh . It is also easier to load and unload certain parts of the mesh, and it is better for larger maps, since your CPU isnt doing all the hard work of choosing all the vertices and indexing them. In order to make the actually interesting part of the terrain (which btw I haven’t done in this devlog, I guess this is just like a future plans part) I can use either vertex shaders or custom scripts to make noise in the terrain. Both of these have their respective use cases, and I wouldn’t be able to say one is better than the other for my case. Vertex Shaders: GPU based no collisions (purely visual) written in Godot Shader Language (which is written in C, which is terrifying for me who practically only knows Python ( GDScript and Python are similar enough for me)) Custom Scripts: CPU based can create collisions (actually changes the vertex’s height) written in GDScript (happy days (ik I can write it in C# , but I’m staying far away from that)) Despite my fear of anything not similar to Python , I will still need to use vertex shaders. And I will explain that in my next devlog because this is getting too long. Now onto my struggles incredible skill when making a.. flat plane in Godot. I chose to do Method 2, because of it’s functionality later down the line. But that means I have to tell Godot what vertices to make, and how to connect them up. Obviously that was as simple as could be.. (you can see my failures in the screen recordings below)"}, {"post_id": 44630, "ts": "2026-08-10T15:03:15Z", "hours": 1.7508, "text": "Devlog 2 - One Lone Triangle I spent 2ish hours trying to make a triangle. In GDScript.. Absoutely terrible progress. I see people on Stardance making whole ass projects in 2 hours, and I’m spending those 2 hours making a simple triangle. I have no idea why decided to do a game with procedural terrain generation as my FIRST Godot project. I somewhat understand the theory behind procedural generation, mainly from watching a video on the breakdown of Minecraft’s code when I was like 10, but yeah 🤷 Unfortunately, I have no clue how to do it in practise.. so I guess hours of looking through the Godot docs awaits me yay -_-. (jk the docs are extremely helpful tysm godot 🙏)"}, {"post_id": 43355, "ts": "2026-08-08T15:43:46Z", "hours": 12.8333, "text": "Devlog 1 - Player Movement Okay I know what your thinking. 12 hours for just player movement. Surely you must be wasting time just to get as much stardust as possible. The thing is.. I’ve never used Godot before. Everything from the node tree, to project settings was all pretty much new to me. I should have honestly done the WarioWave Godot mission thingy, so that I would have at least been fimilarised with how Godot worked in 3D. And here I am thinking about making a game where you explore a procedurally generated world. Never before have I touched Godot, and I’m dreaming of making a game with procedural terrain, like in Minecraft or No Mans Sky. Time Waste No. 1 - Learning Godot I had to look through the docs just to figure out how to assign a key to going forwards, mind you all the code needed is given to you when you use the PlayerCharacter3D class. This is on of the many things I struggled with in Godot. 😭 Time Waste No. 2 - Experimenting with player models in blender I experiemented with different styles of player models to use in the game, and I landed on one inspired from the infamous space game Kerbal Space Program. Time Waste No. 3 - Being petty about a camera system 📷 I think this is what took up most of my time. As soon as I made a moveable player that doesn’t fall through the ground (a very quickly made glorified cube in blender), I thought about adding a third person camera. I initially thought of making it toggleable, like in Minecraft, where you press F5, it toggles between first, second(?) and third person. But you can’t change the distance away the camera is from the player in third person. Besides, my stupid ass made it so that each time you pressed F, the camera would keep zooming out endlessly instead of toggling between first and third person. So instead I made it zoomable, like in Roblox. First I tried to manually change the offset based on the scroll wheel (that took me so much time because I had no clue how to get inputs from the scroll wheel). But that posed a problem, which was that the player could clip through walls. Then I found there was a literal node called SpringArm3D to do all of this for me 😭 And its so useful, like I can change how much it zoom’s out by my just changing one variable, and it automatically detects collisions an stops clipping through them. This may seem like somehting that is really basic to some of you who have actually cared to read this far (ty btw :)) but this was crazy for me. And now, I realised you can’t orbit around the camera without the player moving. But that’s something to add next time 🤷 lmao this feels like smth to convince ppl that i wasnt afk or smth to farm stardust. i PROMISE im not trying to farm them, although i would love to get some, im not trying to cheat the system guys 😭"}]...
|
Title: Worlds Unbound - Terrain Engine by @alpeka Title: Worlds Unbound - Terrain Engine by @alpeka | Stardance
Devlogs:
Devlog 1 - Player Movement Okay I know what your thinking. 12 hours for just player movement. Surely you must be wasting time just to get as much stardust as possible. The thing is.. I’ve never used Godot before. Everything from the node tree, to project settings was all pretty much new to me. I should have honestly done the WarioWave Godot mission thingy, so that I would have at least been fimilarised with how Godot worked in 3D. And here I am thinking about making a game where you explore a procedurally generated world. Never before have I touched Godot, and I’m dreaming of making a game with procedural terrain, like in Minecraft or No Mans Sky. Time Waste No. 1 - Learning Godot I had to look through the docs just to figure out how to assign a key to going forwards, mind you all the code needed is given to you when you use the PlayerCharacter3D class. This is on of the many things I struggled with in Godot. 😭 Time Waste No. 2 - Experimenting with player models in blender I experiemented with different styles of player models to use in the game, and I landed on one inspired from the infamous space game Kerbal Space Program. Time Waste No. 3 - Being petty about a camera system 📷 I think this is what took up most of my time. As soon as I made a moveable player that doesn’t fall through the ground (a very quickly made glorified cube in blender), I thought about adding a third person camera. I initially thought of making it toggleable, like in Minecraft, where you press F5, it toggles between first, second(?) and third person. But you can’t change the distance away the camera is from the player in third person. Besides, my stupid ass made it so that each time you pressed F, the camera would keep zooming out endlessly instead of toggling between first and third person. So instead I made it zoomable, like in Roblox. First I tried to manually change the offset based on the scroll wheel (that took me so much time because I had no clue how to get inputs from the scroll wheel). But that posed a problem, which was that the player could clip through walls. Then I found there was a literal node called SpringArm3D to do all of this for me 😭 And its so useful, like I can change how much it zoom’s out by my just changing one variable, and it automatically detects collisions an stops clipping through them. This may seem like somehting that is really basic to some of you who have actually cared to read this far (ty btw :)) but this was crazy for me. And now, I realised you can’t orbit around the camera without the player moving. But that’s something to add next time 🤷 lmao this feels like smth to convince ppl that i wasnt afk or smth to farm stardust. i PROMISE im not trying to farm them, although i would love to get some, im not trying to cheat the system guys 😭
Devlog 2 - One Lone Triangle I spent 2ish hours trying to make a triangle. In GDScript.. Absoutely terrible progress. I see people on Stardance making whole ass projects in 2 hours, and I’m spending those 2 hours making a simple triangle. I have no idea why decided to do a game with procedural terrain generation as my FIRST Godot project. I somewhat understand the theory behind procedural generation, mainly from watching a video on the breakdown of Minecraft’s code when I was like 10, but yeah 🤷 Unfortunately, I have no clue how to do it in practise.. so I guess hours of looking through the Godot docs awaits me yay -_-. (jk the docs are extremely helpful tysm godot 🙏)
Devlog 3 - Flat Plane I know this sounds INCREDIBLY trivial, but I finally figured out how to make a flat plane in Godot, that can be used to make an actual terrain. There were 2 main ways that I could have used to make this: Method 1: I can use a PlaneMesh and then subdivide it down into triangles. Then use vertex shaders or custom scripts to displace the plane as a whole based on noise. It is faster to make the flat plane using this method since you give Godot most of the control over the tessellation, and the individual vertex placement. This means however that it is a lot harder to load and unload certain parts of the terrain, and it is generally harder to add noise to the terrain since you do not have control over each vertex. Method 2: I can use an ArrayMesh , where I create the grid from scratch, telling Godot how to connect every single vertex to create triangles. The downside to this is how long this took. I know it seems short compared to my first devlog (I think the main reason I took so long in that one was not only because I was learning Godot, but it was also because I was experimenting with player models on Blender but hopefully now I’ll be more time efficient) but it is still more time consuming to tell Godot how to connect each and every vertex. I was in fact so stumped on how to go about doing this that it suddenly came to me when I was playing with my little cousin. I even noted down how to do it on my phones notes app (excuse my bad handwriting I was in the car writing with my finger) :/ Despite it being longer to setup, it is overall better for the needs of my game, since I’ll not only need to be able to change the height of each vertex based on a heightmap, but it can also aid with making biomes, by adding custom values to each vertex, which is simply not possible with PlaneMesh . It is also easier to load and unload certain parts of the mesh, and it is better for larger maps, since your CPU isnt doing all the hard work of choosing all the vertices and indexing them. In order to make the actually interesting part of the terrain (which btw I haven’t done in this devlog, I guess this is just like a future plans part) I can use either vertex shaders or custom scripts to make noise in the terrain. Both of these have their respective use cases, and I wouldn’t be able to say one is better than the other for my case. Vertex Shaders: GPU based no collisions (purely visual) written in Godot Shader Language (which is written in C, which is terrifying for me who practically only knows Python ( GDScript and Python are similar enough for me)) Custom Scripts: CPU based can create collisions (actually changes the vertex’s height) written in GDScript (happy days (ik I can write it in C# , but I’m staying far away from that)) Despite my fear of anything not similar to Python , I will still need to use vertex shaders. And I will explain that in my next devlog because this is getting too long. Now onto my struggles incredible skill when making a.. flat plane in Godot. I chose to do Method 2, because of it’s functionality later down the line. But that means I have to tell Godot what vertices to make, and how to connect them up. Obviously that was as simple as could be.. (you can see my failures in the screen recordings below)
Devlog 4 - A little bit of a few things I mostly did a combination of small bits, which is probably bad in terms of github commits and actual progress, but at least it’s not burning me out because I’m doing whatever part of the project I fancy at the time. UI I spent most of the time making a (hopefully) futuristic(?) looking pause menu that can also redirect you to a settings page, where I’m planning to hold the settings for terrain generation for the player to manipulate. Much of this time was spent experimenting with different Control nodes, finding out what they do and what they’re helpful for and manipulating the styles of them. I ended up with a style shown below 👇👇👇 Player Model I think I’ve finalised on a particular style, now I basically just have to make it and then texture it. The sad thing is that for some reason lapse doesn’t recognise my hackclub project anymore (already logged 5+ hrs on lapse), so all the time I spent on Blender wasn’t actually logged. If someone could please tell me how to fix this or if theres an extension for blender that would be SO helpful 🙏. Extras I also added the devlogs to my repository, it should appear there when I next commit, which should be soon!! I realise that the popular devlogs have assets from the get-go, so I probably might focus more on that, despite lapse not working if I wanna record time on Blender or Affinity. Again, if someone could please tell me if something is up with lapse or if there’s an extension that I can download for Blender or Affinity, that would be SOO helpful!! 🙏
Devlog 5 - Procedural Terrain (FINALLY!!) I made a start at making the procedural terrain, made some progress with the player model, and with configuring the basic shaders of the game. Elephant in the Room - Procedural Terrain Technically calling it procedural terrain is cheating a bit, cos really all it is right now is perlin noise applied to each vertex’s height. And with that, you can change the shape of the terrain by changing the values of some variables, like the seed, frequency, and octaves. I exported these variables so I could change them in the editor, and added @tool at the start so I can see it in the editor. I’m starting to work on a chunk system at the moment, which will load and unload chunks of the world as the player moves about. Player Model I finished modelling the player (added this version to the game) and added the bones for rigging, except when I move the arm bone, the helmet deforms, so next time I will be doing some weight painting Thankfully UV unwrapping is done as well so I should be able to texture everything before the next devlog. Also, addressing my last devlog, I said Lapse wasn’t syncing with hackatime. Turns out, if I just told it to create a new project called Celestial (which is what my project is called on hackatime), it’ll just add the time to it, so thats amazing!!! The WorldEnvironment Node I accidentally deleted my old configuration of this node while experimenting with stuff, and so I made some changes to the shading of the world. Next up is to recalculate all the normals of each triangle so shadows can be cast properly. I tried using SSAO, but every time I used that to make some sort of shadow, it changed depending on where the camera was and it made the terrain very pixelated. As you can see in the video, you can see the outlines of the terrain. That is because of the volumetric fog added. It sounds resource intensive, so if it starts to lag out my game I might remove it, which is a shame cos it looks really nice.
Devlog 6 - Chunks # 1 Previously, I had it so that the entire world was one big mesh, that could not be expanded without unloading and reloading the whole thing and more. This is obviously very inefficient, especially if I want the terrain to load in and out based on where the player is. Chunks is the answer to that. Split the world into chunks of your choice (I chose 16x16), and load/unload just the chunks you need to, not the whole thing. It seemed easy for me at first, clearly it wasn’t (the #1 for the header, ik this isnt gonna be the only devlog on this 😭 ). Bug 1 - The Normals aren’t normal Last devlog, I talked about calculating the normals, which went smoothly… For the old mesh… You see, to calculate normals, you need the vertices surrounding the vertex your trying to find out, and with chunks, that meant every 16 vertices, the normals were being calculated incorrectly, causing seams to be found in the terrain. However, since we did calculate the normals (for the most part) some pretty nice shadows have been cast on our terrain. Despite it being a bug, it is useful to find out where the chunk boundaries are, which is EXTREMELY useful for debugging, so I haven’t tried fixing it just yet. Bug 2 - Not so Good Performance After dividing the terrain into chunks, and making new chunks generate when the player moved into a new chunk, I tested it out. And every time I tried to cross a chunk border, there would be a huge lag spike. This would be caused by the fact the game prioritised the generation of chunks instead of the game. Thankfully I was able to make it so that the chunks would load whenever the processor was ready, to make sure not to overload it too much. Bug 3 - (Lack of) Collisions Another reason why chunks are useful is for limiting the area with active collisions. When the terrain was one big mesh, the entire mesh had active collisions, which would all be checking if something hit it, which is very resource intensive. Which is why I limited the area with collisions to a small radius around the player. While coding it, many logic erros came up, such as one that caused the collisions to just not work.
Devlog 7 - Chunks # 2: PROCEDURAL GENERATION DONE (mostly) Bugs Managed to fix all the bugs related to this part of terrain generation. Weird chunk errors There was an if statement (I changed it out for something else that’s more efficient) that was like: if abs(player_position.x - chunk_pos.x) > collision_chunk_size or abs(player_position.y - chunk_pos.y) > collision_chunk_size This logic error create weird stuttering issues and lag. The fix was to switch or with and . Normals DEFINITELY the bane of my existence. I know roughly what normals are due to me doing 3D modelling/rendering, but I have no clue how it actually works. And plus, I’ve barely covered the maths I need for this in school, so I spent sooo much time (much of which wasn’t recorded) just researching about normals and how they work. I think that definitely helped me find a solution to the annoying chunk borders and random artifacts found inside each chunk. Chunk Sizing I stupidly and randomly changed the chunk size from 16 to 10, which worked completely fine, except for the fact that the player script was still using the 16x16 chunk system, causing the generation to lag behind, eventually leading to the player falling off the map. New Features There were also some ✨ features ✨ that I added. Colour I added colour to the world, and if I match it to the fog and sky, I think it would look AMAZING I will make it so that the colour does vary across the planet. Player I added the rig and refined the topology for animation.
Devlog 8 - Player Model and other assets! Player Model I finished with texturing, rigging and weight painting. Next Step is to make the walking and jumping animations. Worked on the settings menu I updated the setting menu layout to account for different settings I’ll add in the future Stupid Bugs So when trying to break the terrain generation, I set the speed of the player to like 300 (which it will never be in the game except when in a space ship) but when I tried to do that, the game kept crashing, spitting out an error saying that something didn’t exist. It was coming from my unload_terrain() function. Basically how it works is it checks for all the instances of the MeshInstance3D node, and checks the name of it. For every chunk that is created, I assigned a unique name to it on creation based on the x and y coordinates of it. The function would checking all the nodes, and seeing which ones were out of the “ collision_chunk_size ” radius, and then would delete them. But when going super fast, the processing of things got all weird, meaning that when it tried to delete a chunk, and if it didn’t exist, it would crash. So I added a simple if statement if len(child_name_array) > 2: (basically it would check if the length of the name was long enough to see if there was the coord data). Stupidly I wrote the greater than sign the wrong way round, which led to me being stumped for SO long on why the terrain was just not unloading. tldr: > was the wrong way round and cost me hours.
Devlog 9 - Player Animation!! Walking and Idle Animations I finished a basic walking and idle animation for the player. The walking animation is also somewhat inspired from the kerbals from KSP. Both the animations are kinda choppy, especially when the animation loops round, but frankly icba I didn’t have enough time to fix them rn (mbmb 😭 ). Thankfully the walking animation is timed properly so that the player doesn’t look like its sliding around. Camera updates I added functionality to the camera where you can freelook around the player when holding the right mouse button. Once released, it goes back to the normal position (motion is lerped). Prepartions for next steps For the next steps, I want to go back to the terrain_generation program and start to add variation across the world (like biomes, mountains, etc.). I’m also looking to optimise it, making it generate terrain and collisions faster in prepartion for any future implementation of faster travel. So I added functionality that can allow me to make LODs, which will likely be implemented next devlog.
Devlog 10 - General updates Alright, so ik I said I would work on the procedural terrain, but instead I worked on:… Debugging Tools!! (yayy! ) When tab is pressed, it toggles on debug mode, where all meshes turn into wireframes (to check LOD) and chunk boudaries are shown. There are problems with chunk boundaries not despawning when the terrain its on is gone, but that’s fixed when you toggle debug mode again :). I could fix it but icba I have other stuff that needs to be prioritsed. Resizabile UI So before, if you resized the window, the pause menu and settings menu would be offset from the centre and wouldn’t scale with the window. Now when you scale it, the pause and settings menu stay in the centre and scale accordingly. (the flickering in the video is just an artifact created by the godot editor, and will apparently be fixed once exported)
Devlog 11 - General updates 2.0 Editor Tools!! - (to see the terrain in the editor) So in a previous devlog, I think I talked about how I added @tool in my terrain generation program to be able to see it in the editor. Once I made it dependent on the player position, it didn’t generate in the editor because the player wasn’t loaded in. So now I made it so that if the script was running while the editor (not the game) is open, the terrain would generate around (0, 0) based on how ever big the render distance is. Also I made it so that if you tweak the value of any of the primary noise settings in the editor, it updates in the editor. On top of that, I set the viewport to display wireframe so that I can see the triangles at different resolutions, which is where I came across:…. FLOATING POINT ERRORS!!! (yay ) I noticed that if I set the resolution to a decimal value that was not a power of 2, the triangles would be off by some amount, causing neighbouring triangles to overlap each other, causing normal and collision problems. The resolution variable is going to be eventually used for LODs, so since I’ll be the only setting it, I’ll just make sure to use a value thats a power of 2 The reason why this happens is because 16 (my chunk size) can be multplied and divided by 0.125 (2^-3) evenly to create an integer, compared to 0.1 which results in 1.6. Any smaller power of two is rounded it to the nearest 3dp, so 0.0625 (2^-4) doesn’t work. Camera Issues So I made functionality with the camera where you can scroll to zoom the camera in and out, and if you scroll far enough in, you’ll be in first person, much like how it works in Roblox. There was one problem though. Since the material for the visor on the player model was somewhat transluscent, your view would get darker. Also, you could free look inside the helmet, looking at the areas I wasn’t bothered to model and texture hadn’t modelled. So I disabled that in first person. The biggest timewaste of my life In an attempt to offload some of the generation to the GPU for more effecient parallel processing, I tried to figure out which parts of the algorthim were going to be handled by the CPU and GPU. There were some that had to be handled by the CPU, and there was no choice about those, and they were: collisions and figuring out what chunks should be rendered. At first I thought, how about I offload nearly everything to the GPU, including the noise function. Then I learnt that FastNoiseLite didn’t exist in .gdshader . So I did what any normal person would do, and CODE PERLIN NOISE BY HAND. I spent HOURS learning everything my dumbass could about it: vectors, normals, gradients, deviation, erosional generation, and finite difference approximation. At least I probably learnt something useful for FSMQ 🤷 (a British maths exam most students do in yr11 along with their other GCSEs).
Devlog 12 - General updates 3.0 I PROMISE THIS IS THE LAST ONE GUYS 🙏 Performance Stats I added a little HUD showing the FPS, the time it takes to make one frame (has to be below 16.67ms (60fps) or there will be noticeable lag), and the memory usage. Lighting, Shadows, and World Environment I slightly changed the shadow bias and normal bias so that shadow artifacts are to a minimum. On top of that, I set it so that shadows aren’t cast for the terrain, which unintentionally handles with some of the artifacts, whilst keeping the “shadows” by illuminating the terrain depending on where the DirectionalLight3d is, making the “shadows” reponsive to a future day-night cycle. Also the volumetric fog and lighting looks better Camera Issues 2.0 So previously I had the player hide() when you go into first person, but that also effects the shadows. So instead I made the visor disappear when you go into first person. But then there was another problem. The head would move during the idle and walking animations, which is quite distracting and could be problematic for some players. So I stopped the animtions whilst in first person. It is a very rudimentary fix, since players can look at their shadows and see the lack of animation. Furthermore if I want to add multiplayer in the future, it’ll look very weird. Performance checks In preparation of the biome generation, I wanted to make sure the performance is fine. It takes a bit for the terrain to generate at the start, but thats common across nearly every game. And this will be lightened a bit when I implement LODs. Once the game is running, it runs relatively fine, except with (very quick) lag spikes when the chunks update. To address this, I’m planning of offloading some of the terrain generation to the GPU, which can calculate normals a LOT more effeciently and quicker than the CPU. Current, the CPU calculates all the vertices, indices, normals, and then compiles it into an ArrayMesh , which is given to the GPU for rendering. This can put a lot of strain on the CPU, especially later down the line, so it’s better and more effiecient if the GPU does the very repetetive calculations, by making it do all the normal calculations, including other stuff.
Devlog 13 - LOD template I basically deleted all the old code, and started over, by making a function where the noise will be given to the vertex shader, and one that will generate the actual flat mesh for it (which is going to be changed by the vertex shader). I made the template for making flat planes with different levels of detail (LOD), which will be changed by the vertex shaders, applying the noise to the mesh. I created a new script called lod.gd and gave it a class name, so that I can call multiple instances of it in the main terrain generation program. Every time the program wants to make another chunk, I have to pass the arguements: resolution - what ive defined as a synoymn of LOD chunk_pos - where the chunk is The function then loads an ArrayMesh from a pre-generated list of possible meshes and creates a new MeshInstance3D node to display it. Extra stuff I also added player coords and chunk position in the debug_screen :)
Devlog 14 - LOD chunks ——— OPTIMISATION IS SOO HARDD 10hrs to do practically do something I’ve already done? (i had already made a chunk system in previous devlogs) Well, whilst some of that time was transferring code from my old commits to the current one and making sure it works, most of the time I spent on this devlog was spent on ✨ “optimisation” ✨ Optimisation First of all, I added LODs into the chunk mesh. What this means is that since further away chunks take up less of your screen, the level of detail (LOD) is reduced the further away it is. I had already made the script that handled the creation of those different meshes with different LODs, so in this devlog, I added it to the main terrain generation script, and assigned each LOD to a certain distance, so that any chunk with a certain distance has a certain LOD. In my last version of the terrain generation, I relied on the name of the MeshInstance3d nodes created to identify what chunk they were. I realised when making this updated version that it was prone to failure, since if the node did not exist or a node with the same name were some how added to the scene tree, errors would be raised or at the very least, a logic error would occur. To recetify this, I switched to using dictionaries to house all the information of all the chunks: chunks : Dictionary [ Vector2i , int ] = { Vector2i ( 0 , 0 ): 0 , Vector2i ( 0 , 1 ): 0 , #etc } The key is chunk coordinate, and the value is the LOD (0 being the highest, 4 being the lowest) Every time I wanted to update the terrain, I would search the scene tree if a particular node was unwanted (again, by looking at the name) and then generating the rest of the ones wanted. This way would not work with LODs, since some chunks may still exist, but may have to change LOD depending on where the player is. So I made use of the dictionary and also created a new one that would store the chunks that I want created. It would loop through the dictionarys, checking certain conditions, and the terrain would be updated. All this looping is somewhat inefficient, and did cause some lag spikes, so I will try to fix that next devlog by only checking the chunks that would be affected based on which way the player moved. To help with the looping, I created chunk and lod lookup tables, that can be offset based on the players_position. These lookup tables are only changed when the render distance is changed, so the same calculation doesn’t have to run hundreds of times in 16ms (60 fps).
Devlog 15 - I’m an Idiot For the past 95ish hours, I’ve been working on a way to make procedural terrain for my game. I tried 2 main methods, one centred round the CPU, and one I was building centred around the GPU. The endless chunk seam bugs caused me to burnout/get tired of the entire project, and there was so many stuff (that I won’t really be explaining for the sake of my poor reader’s sanity) leading to me ✨ youtube ✨ I saw this AMAZINGLY smart video by devmar, showing an alternate way of generating terrain. I urge you to watch the video as well, the whole technique is very very clever, and he even goes on to make further videos on making collisions, recalculating normals and adding vegetation, especially if your interested in procedural generation. After watching this video however, I became incredibly frustrated. I spent nearly 100hrs of my summer making this procedural terrain which I know hadn’t gotten anywhere and theres this incredibly smart video from 4yrs ago that pops up on my feed. Welp, now ig i gotta try out this way, and quick cos my parents are on my tail talking about me finishing this project before school starts 🙏 (its my gcse year so ig its valid but still ) Now what I actually did that counted to my time Experimented with vertex shaders, and sending heightmaps to vertex shaders to displace. This however caused immense lag and caused VERY ANNOYING chunk seams. #epicfails
Devlog 16 - AMAZING PROGRESS!! I’ve managed to get a massive 20km render distance with huge mountains and ridges using FastNoiseLite and vertex shaders. I used devmar ’s terrain technique, which he named the “Wandering Clipmap Terrain Technique”. The reason why the technique is called the “ Wandering Clipmap Terrain Technique” is because a flat plane that is subdivided a bunch (to make varrying levels of detail (LODs)) that follows the player. The vertex shaders then offset the heightmap so it gives off the illusions that your moving about in a massive world. All the displacement is done by the vertex shaders, which looks at a heightmap. In the future, I might make this heightmap be generated in gdscript instead of in the inspector, to deal with texture resolutions. Currently, from afar, the terrain looks amazing (except from the fact its not textured) but upclose, you can see rings in the terrain, which is caused by the heightmap’s resolution being too low. In fact each ring is about 8m tall so I really need to fix that 😭 The normals are calculated by just copying the heightmap and setting it ‘as normals’ in the inspector. They also are multiplied by a normal basis matrix, which allows me to configure the specific normal settings. I’ll need to calculate the normals in the fragment shader as well in the future for more convincing shadows, but for the mean time, the vertex shaders should do just fine. I’m planning on adding collisions, then maybe textures, biomes and vegetation soon!!
Devlog 17 - I am incredibly frustrated. No matter what I do it feels like I just can’t get the collisions to work. Basically, I’m trying to fetch the heights from the height map to input into the CollisionShape3D, but the coordinates are always offset in some way or the other. I even used AI my friend to basically rewrite the entire script over and over again, but that didn’t work either. Maybe it’s cos school has started now, and I haven’t been able to spend that much time on this project than I would like to As you can see in the photo, the collision mesh (in blue) is offset from the normal terrain (in white)
Devlog 18 - I am happy once again!! I FINALLY got the collisions to work!! Basically, it looks at the terrain model that is imported into Godot, and aligns the vertices of the CollisionShape3D with it. It also updates its position every time the player moves 1 unit (whatever the size of a quad of the mesh is). Then it looks at the heightmap, looks up the height of its coresponding pixel, multiplies that by the height shader param (2000, like in the vertex shaders), and thats the collision shape done. I noticed while walking around the world, that there were these massive ridges on the terrain. This is due to the lack of precision in the heightmap. The heightmap only has 256 shades of grey, and I need 2000 values. It is quite impossible to make a image file with that much precision, so instead, I’ll make it so that the CPU will just send an array to the vertex shader. Also, I’ve rebranded my project to Worlds Unbound, and this specific Stardance project will just be handling the terrain stuff for the game. p.s, it never goes above 16ms, i think thats probably because i was recording
Devlog 19 - Main Menu Added (and other things)! I spent quite a lot of time making the background for the main menu in Blender. After just copy and pasting the player model used in the game, I went ahead and made the main attraction: ✨ the planet in the background ✨ . My knowledge of noise that I gained from my previous attempts at the terrain generation helped me create the stars in the background, and the texture for the actual planet in the shader editor. I also added a slight atmosphere, which is (somewhat?) noticeable. I also went ahead and updated the shader code. Before, I used to use the visual shaders, since it was quite similar to the shader editor in Blender, which I was familiar with. But then I realised there’s just more flexibility with using GLSL . I can group uniforms in the inspector, making it clearer and less cluttered if I want to add textures in the future, including different images for the same texture (like Ambient Occlusion, Normals, Colours, and Roughness). Thus being able to group those different types images for the same texture was very important for future usability. Thankfully, Godot allows you to see the shader code that is generated from the visual shaders. Unfortunately, it was not readable at all. The generated code used a random(ish) collection of numbers and letters, and it was too long. Look below for the comparision for just the vertex shader, but it was something like 84 lines that was shruken down to 10 for the vertex shader. Even if you account for spaces in the generated code (which then it might be like 50-60 lines) thats a huge difference. So it took quite some time to get it to a readable state. edit: idk why the actual background looks so bumcheeks compared to the banner, hopefully itll be fixed by then 🤞
Devlog 20: GPU noise I found a way to make noise using a Godot addon called FastNoiseLite Runtime Shader . It was apparently identical to the FastNoiseLite in GDScript. So I gave it a try. I knew it was a gamble, given how much time I got left to ship an decent project, but I gave it a try since it seemed interesting. It wasn’t that hard to get the noise working, but to get it to sync with the collisions was a nightmare. In the end, I decided that even though the README stated it was 99.9% the same, the output seed by seed was different. So I decided to scrap it and now I’m going back to the old version with heightmaps. Why did I really want to switch? Because of the limited colour depth in images (has to be 8-bit for GDShader to read), theres not enough heights for each vertex to be at, so every so often, there’s this massive wall. It looks fine from afar, but thats probably because my terrain is 20km x 20km, so of course an 8m tall wall would look fine. (the image is from the addon readme)
Devlog 21 - Ship Prep!!! Colours I added colours to the terrain depending on how high the vertex is. This does create a very harsh border between the two colours, but I didn’t want to learn lerping, ik how to larp enough. Cleaned up my commits My commits were, and probably are still messy, and when I went ahead to revert some changes it said there were errors, but now thankfully that’s all fixed. :) I also updated quite small normals and some technical stuff.
Ships:
— SHIP No.1 — I spent the last couple of months making a model terrain, which I will use for my game that I will continue to build after this competition. My game idea is quite ambitious, and given how long it took for me to get this basic terrain to work properly and well, that won’t even be coming with the extra month added one. I lot of you may be thinking though, what on earth were you doing for 125 hours, when all you came up with is a glorified green and grey piece of paper you could walk on. Well, not only was I learning and using Godot for the first time, it was the first time I learnt anything as complicated as this. I had to wrap my head around complex (at least for me) maths and computer science topics, like vectors and cross product, noise and FBM, TBN model, and UVs, not to mention just the sheer amount of logic I had to get through. It was so tiring to keep getting bugs for the chunking system I had, or the collisions. But thankfully, all that is behind me 😼. I’ll give you a more indepth look into what I’ve done over the past couple months. Devlogs 1-12: This period was the general beginning of my project. Not only was I learning Godot, and watching tutorials on it, I was also spending time on the player character, the camera system, and the world environment. Devlogs 13-15: I tried to implement LODs into my chunks, since the performance was simply too bad. Somehow this made it worse, possibly because of more chunks (the ones at the broder of LOD borders) being forced to be unloaded and loaded back in. Devlogs 16-21: I used my current technique, heavily based from devmars video on youtube about procedural terrain during this period. School had also started, so I spent less and less time on it, being significantly burnt out and tired. So I basically went through 3 iterations of terrain for my game, so that is why it took so long to get to this point....
|
1793339389.6048944
|
1793425789.6048944
|
|
43024
|
nwwm by @pinetree182 | Stardance
|
pinetree182
|
1
|
30.0
|
496
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T02:18:12Z", "hours": 30.0, "multiplier": 16.48, "payout": 496, "blessing": "neutral", "text": "I made nwwm, a simple tiling window manager for the X windowing system, a popular display server for Linux. Its job is basically to decide where windows go on the screen and how they should look, as well as listen to keypresses and decide what should happen. I ran into quite a few issues since I was using Rust which is not a language I’m 100% familiar with, and this was also my first proper systems-level project, but I managed to pull through and I’m really happy with where nwwm has gotten. Some features include: Tiling Multiple workspaces Support for docked windows, like statusbars Config loading from ~/.config/nwwm/config.toml Configurable keybinds (Barebones) EWMH support Since this is a Linux project, I know that most people won’t be able to test it so I’ve made a small video showing off some of the core features. You can view this video on the website, just scroll down to the “Demo” section and play the video.", "repo": "https://github.com/annaxiomm/nwwm", "demo": "https://annaxiomm.github.io/nwwm"}]...
|
[{"post_id": 72932, "ts": "202 [{"post_id": 72932, "ts": "2026-09-24T02:13:03Z", "hours": 5.9592, "text": "devlog #8 - the end is near stardance is coming to a close, the school holidays are nearing, and I’m running out of things to add to nwwm so I think I’m going to ship it here. I’m really happy with how far I’ve come in this project and I’ve learned a ton about X11, Rust, and myself. GAPS!! every good modern tiling window manager has gaps, so naturally I added them to nwwm. you can configure them in the config.toml through the gaps_inner and gaps_outer rules. gaps_inner controls the gaps between the windows themselves, and gaps_outer controls the gaps between the windows and the outer edge of the screen. other essentials I also added the ability to move windows between two workspaces. you can now set keybinds with the movetoworkspace <workspace> action to move the currently focused window to <workspace> . this was fairly easy to implement but I did run into a bug where the wm wasn’t correctly selecting a new window to focus after the focused window was moved to another workspace. I also finally added the ability to move focus backwards instead of just forwards, which you can do with the focus last action. promotional material I also sunk a few hours into making a cool little website for nwwm. it’s pretty generic but it gets the job done, and has a demo, config, screenshot, project description, and an example config file. you can see the website at annaxiomm.github.io/nwwm . finally, I made a simple logo in the form of a compass (because nwwm stands for N orth W est W indow M anager ) next steps ship it cash in my loot"}, {"post_id": 67018, "ts": "2026-09-13T01:49:32Z", "hours": 1.0403, "text": "devlog #7 - sanity check a bit of a short devlog here, but I decided to take a break from programming to make the repo look a bit more presentable (I’m planning to ship soon so it needs to look good for the camera!) README changes the existing README was quite barebones so I fully fleshed it out with a bunch of new stuff, including a proper testing tutorial, configuration help, and an entire section dedicated to what’s wrong with the project and what I’m going to fix when I decide to try and rewrite this bowl of spaghetti at some point next steps cleaning up the project, writting code comments, etc polishing up the project with some final features, like vanity gaps making a landing page for the wm because I know that when it comes time to ship, most people won’t be able to try out nwwm for themselves so I want to make a little showcase (so I don’t get a bad grade for usability!)"}, {"post_id": 66302, "ts": "2026-09-12T02:00:06Z", "hours": 3.9894, "text": "devlog #6 - CONFIGURATION!!! adding a config file has been in the next steps of just about every devlog i’ve made, and i finally got around to doing it! config.toml nwwm wouldn’t be a cliche rust project without a config.toml . but in all seriousness, i really like toml as a configuration language and it integrates really cleanly with rust anyway. so far, you can set parameters like window border, mod key, and default layout in $HOME/.config/nwwm/config.toml and nwwm will read those and apply them at runtime. unfortunately, config isn’t reloadable at the moment (next step?). you can also configure keybinds and even startup commands! i would really have liked to have lua scripting as a config but it’s just a bit too hard for a first wm project. the error handling is pretty hairy at the moment but i’ll fix that soon i promise other stuff i’ve changed not much else happened, but i added a feature where debug logging only happens if you run nwwm with -v or --verbose . next steps better error handling in config loading config re loading at runtime better documentation (maybe a website?)"}, {"post_id": 64645, "ts": "2026-09-09T06:37:27Z", "hours": 6.4375, "text": "devlog #5 - self hosted? ok it’s been quite a while since my last devlog but i’ve added a ton of new stuff - to the point where nwwm might become my main window manager soon! docks n’ struts “what even are those?” i hear you ask, and fear not because i am here to answer. a docked window is any kind of window that isn’t tiled, doesn’t belong to any workspace, and reserves space on the screen that other windows can’t take up. a really common example is a status bar: it persists between desktops, and reserves space on the screen. a strut is basically the space on the screen that it reserves. i implemented support for this so you can now use your favourite status bar with nwwm! i also spent like 3 hours debugging an error that happened sometimes when you closed a docked window, and ended up fixing it by complete accident workspaces 🧰 a window manager is basically useless without workspaces, so naturally i’ve added them to nwwm. they were actually quite easy to implement since i’ve technically supported them since day 1 i just never added workspace switching. basically when you switch a workspace it checks to see if the workspace exists, then it unfocuses the current window, unmaps (hides) all the windows in the current workspace, switches to the new workspace, maps (shows) all the windows in the new workspace, and focuses the first window in the new workspace. phew, try saying that in one breath! status bar compatibility as i mentioned earlier, i added struts and docks so that status bars can reserve space on the screen, but i also added some ewmh hints that allow status bars to see and change the current desktop. this was really easy, i just had to add some atoms and listen for ClientMessage events, and then connect those to my existing code next steps config file loading more ewmh 😭"}, {"post_id": 46047, "ts": "2026-08-12T23:48:13Z", "hours": 3.6097, "text": "devlog #4 - +10 usability! we’re now shifting from the realm of “experimental” to “experimental but usable ”. i’ve added a ton of new features recently and i’m really happy with how nwwm is coming together. actually good tiling i’ve added 2 new tiling layouts: monocle, and master/stack. monocle is the easiest to understand: all windows are the same size as the screen, and the currently focused window is brought to the front. master/stack is the traditional layout you see in wms like dwm, where there is a “master” window that takes up half of the screen and the rest split vertically (or “stack”) on the other half of the screen. i also added keybinds that switch between layouts revamped keybind system previously, the keybind system was just using raw x11 keycodes which were really annoying because they don’t match up with any other system (25 = w??) and are keymap-dependant. so, i switched to using xkbcommon and now keybinds are defined with more human-readable keysyms like KEY_w or KEY_Return . i also implemented a small command runner system so now you can launch commands with keybinds. so far i’ve set Mod+Enter to launch kitty and ofc these will all be configurable through the config file mysterious bugs i spent ages trying to debug some weird behaviour where bound keys wouldn’t register as keypresses if no windows had been opened in nwwm yet. after a lot of trial and error, and a few ChatGPT therapy sessions, i discovered that my error was one letter: i had keyboard_mode in the global mouse grab (which i need for click to focus) set to GrabMode::Sync instead of GrabMode::Async (fml) next steps more usability (moving windows, closing windows) better EWMH compliance support for temporary and permanent floating windows (i.e. tiled windows that you make float, and windows that only float like rofi) config file when?"}, {"post_id": 42968, "ts": "2026-08-07T23:32:08Z", "hours": 3.5736, "text": "devlog #3 - wow! visuals! how many times can i call conn.send_request() in one program?? config file i made a struct called Config which the wm owns, and it has values like border width, color, and keybinds. eventually it will read from a config.toml file but for now it’s all hard coded in the source code. window borders windows now have borders with color and width deriving from the Config (meaning they’ll be configurable through a config file at some point!). also, the currently focused window has a different border color (also configurable!) modular keybinds instead of hard-coding keybinds, i gave Config a child called Keybinds , which are hard coded in the source code… but eventually they’ll be part of the config file. when each keybind is called, it calls an Action which is linked to a function call in the wm. later there’ll be plenty of actions for anything you can think of, but for now theres only FocusNext which… focuses the next window! next steps config.toml loading better tiling (again) gaps EWMH compliance"}, {"post_id": 42307, "ts": "2026-08-06T23:15:26Z", "hours": 2.8794, "text": "devlog #2 - an actual window manager x11 is an ancient beast, full of mismatched types (screen height is a u16, window height is a u32, window position is an i32, etc), difficult protocols, and more double colons than you can shake a stick at, but i’m working through it. a (tiling) window manager i started off by storing a list of open workspaces in the main wm struct, and each workspace has a list of open windows (and a tiling layout). then, i made the wm listen for DestroyNotify events and remove them from their respective workspaces. soon after marvelling at my creation i realised that i could only see one window at a time, so i worked on implementing a basic tiling algorithm. so far, all i have is columns ( window_width = screen_width / num_of_windows ) but i’m working on adding master-stack tiling (what dwm uses) focus! i also realised that it’s no use having multiple windows if you can only use type on one, so i made each window grab the left click, and then listen for ButtonPress events, focusing the clicked window. next steps more tiling layouts cosmetic stuff (borders, gaps) keyboard shortcuts"}, {"post_id": 40452, "ts": "2026-08-03T23:38:06Z", "hours": 2.6114, "text": "devlog #1 - getting things started after working on tundra I decided that I wanted to make a window manager for an actual os instead, so I loaded arch onto an old macbook and got started. xlib woes I initially started by loosely following a tutorial that uses xlib for rust, but I soon realised that any direct mapping to C from rust is going to be an absolute horror to use (literally every function call had to be unsafe), so I switched to xcb. it has a slightly different API but it’s cleaner and i3 uses it so it must be good. current features: it runs it doesn’t crash you can open a window (by externally injecting it from a command prompt next steps: storing open windows in a struct / list basic tiling"}]...
|
Title: nwwm by @pinetree182 | Stardance
Devlogs:
Title: nwwm by @pinetree182 | Stardance
Devlogs:
devlog #1 - getting things started after working on tundra I decided that I wanted to make a window manager for an actual os instead, so I loaded arch onto an old macbook and got started. xlib woes I initially started by loosely following a tutorial that uses xlib for rust, but I soon realised that any direct mapping to C from rust is going to be an absolute horror to use (literally every function call had to be unsafe), so I switched to xcb. it has a slightly different API but it’s cleaner and i3 uses it so it must be good. current features: it runs it doesn’t crash you can open a window (by externally injecting it from a command prompt next steps: storing open windows in a struct / list basic tiling
devlog #2 - an actual window manager x11 is an ancient beast, full of mismatched types (screen height is a u16, window height is a u32, window position is an i32, etc), difficult protocols, and more double colons than you can shake a stick at, but i’m working through it. a (tiling) window manager i started off by storing a list of open workspaces in the main wm struct, and each workspace has a list of open windows (and a tiling layout). then, i made the wm listen for DestroyNotify events and remove them from their respective workspaces. soon after marvelling at my creation i realised that i could only see one window at a time, so i worked on implementing a basic tiling algorithm. so far, all i have is columns ( window_width = screen_width / num_of_windows ) but i’m working on adding master-stack tiling (what dwm uses) focus! i also realised that it’s no use having multiple windows if you can only use type on one, so i made each window grab the left click, and then listen for ButtonPress events, focusing the clicked window. next steps more tiling layouts cosmetic stuff (borders, gaps) keyboard shortcuts
devlog #3 - wow! visuals! how many times can i call conn.send_request() in one program?? config file i made a struct called Config which the wm owns, and it has values like border width, color, and keybinds. eventually it will read from a config.toml file but for now it’s all hard coded in the source code. window borders windows now have borders with color and width deriving from the Config (meaning they’ll be configurable through a config file at some point!). also, the currently focused window has a different border color (also configurable!) modular keybinds instead of hard-coding keybinds, i gave Config a child called Keybinds , which are hard coded in the source code… but eventually they’ll be part of the config file. when each keybind is called, it calls an Action which is linked to a function call in the wm. later there’ll be plenty of actions for anything you can think of, but for now theres only FocusNext which… focuses the next window! next steps config.toml loading better tiling (again) gaps EWMH compliance
devlog #4 - +10 usability! we’re now shifting from the realm of “experimental” to “experimental but usable ”. i’ve added a ton of new features recently and i’m really happy with how nwwm is coming together. actually good tiling i’ve added 2 new tiling layouts: monocle, and master/stack. monocle is the easiest to understand: all windows are the same size as the screen, and the currently focused window is brought to the front. master/stack is the traditional layout you see in wms like dwm, where there is a “master” window that takes up half of the screen and the rest split vertically (or “stack”) on the other half of the screen. i also added keybinds that switch between layouts revamped keybind system previously, the keybind system was just using raw x11 keycodes which were really annoying because they don’t match up with any other system (25 = w??) and are keymap-dependant. so, i switched to using xkbcommon and now keybinds are defined with more human-readable keysyms like KEY_w or KEY_Return . i also implemented a small command runner system so now you can launch commands with keybinds. so far i’ve set Mod+Enter to launch kitty and ofc these will all be configurable through the config file mysterious bugs i spent ages trying to debug some weird behaviour where bound keys wouldn’t register as keypresses if no windows had been opened in nwwm yet. after a lot of trial and error, and a few ChatGPT therapy sessions, i discovered that my error was one letter: i had keyboard_mode in the global mouse grab (which i need for click to focus) set to GrabMode::Sync instead of GrabMode::Async (fml) next steps more usability (moving windows, closing windows) better EWMH compliance support for temporary and permanent floating windows (i.e. tiled windows that you make float, and windows that only float like rofi) config file when?
devlog #5 - self hosted? ok it’s been quite a while since my last devlog but i’ve added a ton of new stuff - to the point where nwwm might become my main window manager soon! docks n’ struts “what even are those?” i hear you ask, and fear not because i am here to answer. a docked window is any kind of window that isn’t tiled, doesn’t belong to any workspace, and reserves space on the screen that other windows can’t take up. a really common example is a status bar: it persists between desktops, and reserves space on the screen. a strut is basically the space on the screen that it reserves. i implemented support for this so you can now use your favourite status bar with nwwm! i also spent like 3 hours debugging an error that happened sometimes when you closed a docked window, and ended up fixing it by complete accident workspaces 🧰 a window manager is basically useless without workspaces, so naturally i’ve added them to nwwm. they were actually quite easy to implement since i’ve technically supported them since day 1 i just never added workspace switching. basically when you switch a workspace it checks to see if the workspace exists, then it unfocuses the current window, unmaps (hides) all the windows in the current workspace, switches to the new workspace, maps (shows) all the windows in the new workspace, and focuses the first window in the new workspace. phew, try saying that in one breath! status bar compatibility as i mentioned earlier, i added struts and docks so that status bars can reserve space on the screen, but i also added some ewmh hints that allow status bars to see and change the current desktop. this was really easy, i just had to add some atoms and listen for ClientMessage events, and then connect those to my existing code next steps config file loading more ewmh 😭
devlog #6 - CONFIGURATION!!! adding a config file has been in the next steps of just about every devlog i’ve made, and i finally got around to doing it! config.toml nwwm wouldn’t be a cliche rust project without a config.toml . but in all seriousness, i really like toml as a configuration language and it integrates really cleanly with rust anyway. so far, you can set parameters like window border, mod key, and default layout in $HOME/.config/nwwm/config.toml and nwwm will read those and apply them at runtime. unfortunately, config isn’t reloadable at the moment (next step?). you can also configure keybinds and even startup commands! i would really have liked to have lua scripting as a config but it’s just a bit too hard for a first wm project. the error handling is pretty hairy at the moment but i’ll fix that soon i promise other stuff i’ve changed not much else happened, but i added a feature where debug logging only happens if you run nwwm with -v or --verbose . next steps better error handling in config loading config re loading at runtime better documentation (maybe a website?)
devlog #7 - sanity check a bit of a short devlog here, but I decided to take a break from programming to make the repo look a bit more presentable (I’m planning to ship soon so it needs to look good for the camera!) README changes the existing README was quite barebones so I fully fleshed it out with a bunch of new stuff, including a proper testing tutorial, configuration help, and an entire section dedicated to what’s wrong with the project and what I’m going to fix when I decide to try and rewrite this bowl of spaghetti at some point next steps cleaning up the project, writting code comments, etc polishing up the project with some final features, like vanity gaps making a landing page for the wm because I know that when it comes time to ship, most people won’t be able to try out nwwm for themselves so I want to make a little showcase (so I don’t get a bad grade for usability!)
devlog #8 - the end is near stardance is coming to a close, the school holidays are nearing, and I’m running out of things to add to nwwm so I think I’m going to ship it here. I’m really happy with how far I’ve come in this project and I’ve learned a ton about X11, Rust, and myself. GAPS!! every good modern tiling window manager has gaps, so naturally I added them to nwwm. you can configure them in the config.toml through the gaps_inner and gaps_outer rules. gaps_inner controls the gaps between the windows themselves, and gaps_outer controls the gaps between the windows and the outer edge of the screen. other essentials I also added the ability to move windows between two workspaces. you can now set keybinds with the movetoworkspace <workspace> action to move the currently focused window to <workspace> . this was fairly easy to implement but I did run into a bug where the wm wasn’t correctly selecting a new window to focus after the focused window was moved to another workspace. I also finally added the ability to move focus backwards instead of just forwards, which you can do with the focus last action. promotional material I also sunk a few hours into making a cool little website for nwwm. it’s pretty generic but it gets the job done, and has a demo, config, screenshot, project description, and an example config file. you can see the website at annaxiomm.github.io/nwwm . finally, I made a simple logo in the form of a compass (because nwwm stands for N orth W est W indow M anager ) next steps ship it cash in my loot
Ships:
I made nwwm, a simple tiling window manager for the X windowing system, a popular display server for Linux. Its job is basically to decide where windows go on the screen and how they should look, as well as listen to keypresses and decide what should happen. I ran into quite a few issues since I was using Rust which is not a language I’m 100% familiar with, and this was also my first proper systems-level project, but I managed to pull through and I’m really happy with where nwwm has gotten. Some features include: Tiling Multiple workspaces Support for docked windows, like statusbars Config loading from ~/.config/nwwm/config.toml Configurable keybinds (Barebones) EWMH support Since this is a Linux project, I know that most people won’t be able to test it so I’ve made a small video showing off some of the core features. You can view this video on the website, just scroll down to the “Demo” section and play the video....
|
1793339393.8759298
|
1793425793.8759298
|
|
43029
|
SmolOS by @aer | Stardance
|
aer
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T09:26:10Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a webOS inspired by Smol YSWS. It was really easy and fun to make. I hope you love it, peace!", "repo": "https://github.com/aeratory678/smolOS", "demo": "https://smolos.vercel.app"}]...
|
[{"post_id": 44635, "ts": "202 [{"post_id": 44635, "ts": "2026-08-10T15:10:38Z", "hours": 0.4225, "text": "i made a calculator and finished my project."}, {"post_id": 44376, "ts": "2026-08-10T02:51:23Z", "hours": 0.5044, "text": "i made a clock and improved the notepad"}, {"post_id": 43948, "ts": "2026-08-09T12:22:43Z", "hours": 2.1806, "text": "I made a welcome screen and my first app on the OS : Notepad"}]...
|
Title: SmolOS by @aer | Stardance
Devlogs:
I made Title: SmolOS by @aer | Stardance
Devlogs:
I made a welcome screen and my first app on the OS : Notepad
i made a clock and improved the notepad
i made a calculator and finished my project.
Ships:
This is a webOS inspired by Smol YSWS. It was really easy and fun to make. I hope you love it, peace!...
|
1793569867.9882407
|
1793656267.9882407
|
|
43041
|
My own site! by @Lumethra | Stardance
|
Lumethra
|
1
|
15.0
|
264
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T12:10:38Z", "hours": 15.0, "multiplier": 17.76, "payout": 264, "blessing": "neutral", "text": "I made a very own personal website with NextJS. I oriented myself on my kitty (terminal app on linux) config and tried to do everything quite similar. It turned out pretty well. I also made a typewriter effect with async and timeout n stuff. This whole project made me learn more about NextJS and got some js functions into my head, such as new Promise, .map, Also some NextJS function, like newRef and similar. Overall it was very fun to not code with AI at all and it was also very helpful for my understanding of this language. Have fun with it :D", "repo": "https://github.com/Lumethra/personal-site", "demo": "https://lumethra-personal-site.vercel.app/"}]...
|
[{"post_id": 45716, "ts": "202 [{"post_id": 45716, "ts": "2026-08-12T11:57:39Z", "hours": 1.1606, "text": "readme typed a readme word by word, I think it explains everything pretty well."}, {"post_id": 44576, "ts": "2026-08-10T12:59:40Z", "hours": 1.2886, "text": "Improved the welcome screen to be more noticeable and fancier. It was quite a struggle and I tried alot of stuff. First my idea was to translate (move) it to the middle then zoom up and then do the same backwards, but uhh, CSS didnt like my idea and refused to work. Then I wanted to do the whole thing with scale. This worked a bit better, but not optimal. At the end I decided on just move it to the middle with some tinted blur and let it typewrite and then just clear. The most boring solution ever, but hey, here we are. I think we can get it to smooth move back down, but thats a problem for later me. Edit: Ahh and CSS animations doesnt like me anymore, CSS overall is still okay, but I now hate to animate stuff in general, it is just AHHH annoying and confusing and I also played around a lille bit (the button that got commented)"}, {"post_id": 44008, "ts": "2026-08-09T14:35:32Z", "hours": 0.4103, "text": "not did much today, just added 2 commands, one linking my github and one my slack, the other command is just featuring github, that took longer, because I needed to write a whole paragraph, but uhh, todays mission was to keep the streak alive, soooo, ya"}, {"post_id": 43356, "ts": "2026-08-08T15:44:13Z", "hours": 1.6747, "text": "adding a welcome I tried to add a welcome today, cause without it, my website felt strange, we always need an ASCII-art welcome screen thingi. In my terminal (pc) it is sth showing my stats and pokimons, and I needed sth like that for my website too. First I used this to generate a nice welcome ASCII-art and then saved it inside a JSON just like orphie. Then I added a specific command for it returning Welcome and implemented some handling in the constructOutput() function. After it was working with ASCIITextFrame being .join, just like any other json thingi, I wanted to have a typewriter effect and I just wrapped it inside. At first it went quite well, but then I realized, that white spaces takes time to being typed out too and tried to modify my typewriter function to just simply skip the timeout for it, it was quite confusing, but I managed to make it async and create a delay using await. There was a problem though, I didnt want to delete my old function, soo I created a try catch block to keep it as backup. After doing all that I realized I could break each line apart and typewrite then simultaneously. I wrapped another .map inside a .map and wrapped the lines in a span and then joined the construction with a line break. This went perfectly, but now I need to do animateWelcome() differently. I decided on querySelectorAll and a forEach loop. Figuring out how to get the spans where uhh, alot of guessing. At some point I even wanted to give the spans inside the .welcome container a class, but then I found out how it functioned. Using for each was also fun, I wasnt quite sure about the syntax, but google helped very quickly. But because of the white space skipping, they werent all in sync, because the number of white space isnt the same. The effect created was beautiful though and I left it. While writing this devlog I also modified the typewriter function a lille so I can choose if I skip white space or not. Anyways, enough yap, bye."}, {"post_id": 42124, "ts": "2026-08-06T18:28:38Z", "hours": 0.6953, "text": "AUTOSCROLLING what the heck firefox, why, WHY, just simply WHY. okay, okay, i know that the scroll thingi should have been strapped to the body tag, but ey, I copied it from Leons terminal (mine is obviously better /j). But there is absolutely no reason you return 0 every time. AND WHY did you return a specific value, I think it was 3218 when I set ur height to 0? This doesnt make any sense at all. This was the weirdest bug in this entire project. My solution didnt work at first, but then it worked, but then it did not again and then I quitted and came back and then it worked again?? Like wth. I hope it stays now intact and I dont wanna debug that ever again, holy stressful 1 and an half hour. Edit: ahh and I also filled the skills output command and added the interests command, both not placeholders anymore"}, {"post_id": 42000, "ts": "2026-08-06T15:21:34Z", "hours": 1.01, "text": "MORE ORPHIE!!!!! I added the other 2 animations, the time was mainly spend formatting the JSON and matching the height of every animation, so that the lowest bar doesnt jump, ya, thats about it, it was very exhausting, the sleep animation should have been longer, but I’ve cut corners. Enjoy this easteregg"}, {"post_id": 41950, "ts": "2026-08-06T14:07:24Z", "hours": 1.9133, "text": "Today was a very productive day, I implemented the arrow up and arrow down for history, added the age counter (idea yoinked from @Leon ), but I made it cleaner, because his version had leap year handing and mine just simply use milliseconds to be accurate, only one line, instead of a whole function, I think this is progress, even faster now. I animated the age counter, but just before writing this devlog, i realized that it wont work that well and improved it. However the best thing was orphie. @Leon gave me some gifs and I first extracted them into individual frames and HOLY, Leon, what did u do in orphie sleep, 40 FRAMES!! DO U WANT TO KILL ME?? Anyway, I chose the one with the least frames and converted it into ASCII-art using this . Then I slapped the 2 frames into a JSON file and put every line in “”, and then joined them back together in the code. It was quite fun to animate him, go check it out by typing orphie https://lumethra-personal-site.vercel.app/"}, {"post_id": 41312, "ts": "2026-08-05T13:42:34Z", "hours": 0.6714, "text": "The idea was already very clear in the beginning. After executing every command, save it to local storage in a JSON. First I played around with local storage and after I understood how it worked I started with the task. But I ran into a major problem. Local storage only accepts strings, so it is kinda impossible to store the history in JSON / array. I first tried to slice the strings where the separator was, but this solution wasnt elegant and will cause problems when I wanna implement the arrow up to the last used command, simply just the command history thing from kitty terminal. After wasting some time on the separator solution, I came back to JSON and after looking through what I did in other projects, I realized that there is a build in function to turn a JSON into a string and back, called JSON stringify, it used to be my favorite build in function, because it is sooooooo handy. After this thing was solved, it was time to implement clear history and clear. clear history was easy, its just simply delete the local storage entry and I solved it with an if statement, ik its not great, cause hardcode n stuff, but who care, not my problem currently, future Maximilian problem. The clear command was something else. My final approach was to simply clear the history container with .innerHTML = “” and run it as a function. Enough yap, bye"}, {"post_id": 40838, "ts": "2026-08-04T16:55:29Z", "hours": 0.9483, "text": "well, ima need to write this again ig, stardance had a bad gateway. I added a typewriter effect. First I tried to do it with only CSS, but then I found out that uhh, it doesnt work on <input></input> , what a bummer. Well, then I tried to make it with a function and a fancy for loop, well no, I first tried with a forEach, but it somehow didnt worked, it said, that there is no forEach function. Then I tried with a for loop. I also found out that JS/TS are async programming languages. The for loop simply doesnt care if the setTimeout finished or not . So I needed to find another approach so the typewriters (when I call the func multiple times) dont interfere. The only reasonable solution I found was using an async function and await. Await also cause some serious problems, cause it just didnt wanted to work. VS Code then suggested me to return a new promise . IT WORKED. Ahh, and the CSS approach was from here . To any vibecoder out there: Try coding without AI once, its fun, but I need to admit, its also slow, but its fun and that is what counts right, right?"}, {"post_id": 40777, "ts": "2026-08-04T15:01:39Z", "hours": 0.8569, "text": "today I added a artificial delay, so the terminal feels more natural. I also added an indicator (the one with the X in the image) which toook waaaaaay too long. It was very hard to get it to show the X or tick corresponding to the response, because I tried to do it with ifs, so I needed to match every case, but then I realized, that I can use the bool ? true : false method, which made it alot easier. I also struggled to bring it to the right, because I tried to use flex and justify-content: space-between. Normally this will work very well, but I had more than 2 divs, or in my case spans inside the container, so it stretched the whole thing out and that wasnt great. In the end I decided to hard code that with position absolute and right 20px (body has 20px padding). Another funny error was the inline style. In NextJS u handle style like this <span style={{ position: \"absolute\", right: \"20px\" }}> , but u need to change to normal html when using the .innerHTML function, so <span style=\"position: absolute, right: 20px\"> . This confused me quite a while. But ya, here we are."}, {"post_id": 40040, "ts": "2026-08-03T12:01:40Z", "hours": 2.4117, "text": "I implemented the command functionality. It is great to actually code again. I have mixed feelings about NextJS. On the one hand, I love how it simplifies things, for example with .find or useRef (Stackoverflow my goat for finding them, but WHAT THE HECK IS TYPE DEFINITION, I WILL GIVE IT TYPE ANY ANYWAYS. The “JS injection” from JSON is also a lille bit janky, but we luve JSON, JSON is great. I also rewrote some things to let it be smaller, (u can see it, the big comment block). The if in a const is also GREAT, how do so less ppl use it. Next step: adding command history, easter eggs, fancy tui stuff and some more stuff"}, {"post_id": 39515, "ts": "2026-08-02T14:53:33Z", "hours": 1.8289, "text": "I started my proj and tried to recreate my terminal setup (2nd image, not the green one). I also decided on trying out NextJS legit this time, sooo uhh progress is a lille small, but its coming together. I also decided on this greenish style. I also implemented an auto focusing input (stole from some random stackoverflow xD). Ya, thats about it, the cleaning up of the files after creating took very long, ahh and the JetBrainsMono Nerd Font was also quite a hassle (it was just the “” missing lol)."}]...
|
Title: My own site! by @Lumethra | Stardance
Devl Title: My own site! by @Lumethra | Stardance
Devlogs:
I started my proj and tried to recreate my terminal setup (2nd image, not the green one). I also decided on trying out NextJS legit this time, sooo uhh progress is a lille small, but its coming together. I also decided on this greenish style. I also implemented an auto focusing input (stole from some random stackoverflow xD). Ya, thats about it, the cleaning up of the files after creating took very long, ahh and the JetBrainsMono Nerd Font was also quite a hassle (it was just the “” missing lol).
I implemented the command functionality. It is great to actually code again. I have mixed feelings about NextJS. On the one hand, I love how it simplifies things, for example with .find or useRef (Stackoverflow my goat for finding them, but WHAT THE HECK IS TYPE DEFINITION, I WILL GIVE IT TYPE ANY ANYWAYS. The “JS injection” from JSON is also a lille bit janky, but we luve JSON, JSON is great. I also rewrote some things to let it be smaller, (u can see it, the big comment block). The if in a const is also GREAT, how do so less ppl use it. Next step: adding command history, easter eggs, fancy tui stuff and some more stuff
today I added a artificial delay, so the terminal feels more natural. I also added an indicator (the one with the X in the image) which toook waaaaaay too long. It was very hard to get it to show the X or tick corresponding to the response, because I tried to do it with ifs, so I needed to match every case, but then I realized, that I can use the bool ? true : false method, which made it alot easier. I also struggled to bring it to the right, because I tried to use flex and justify-content: space-between. Normally this will work very well, but I had more than 2 divs, or in my case spans inside the container, so it stretched the whole thing out and that wasnt great. In the end I decided to hard code that with position absolute and right 20px (body has 20px padding). Another funny error was the inline style. In NextJS u handle style like this <span style={{ position: "absolute", right: "20px" }}> , but u need to change to normal html when using the .innerHTML function, so <span style="position: absolute, right: 20px"> . This confused me quite a while. But ya, here we are.
well, ima need to write this again ig, stardance had a bad gateway. I added a typewriter effect. First I tried to do it with only CSS, but then I found out that uhh, it doesnt work on <input></input> , what a bummer. Well, then I tried to make it with a function and a fancy for loop, well no, I first tried with a forEach, but it somehow didnt worked, it said, that there is no forEach function. Then I tried with a for loop. I also found out that JS/TS are async programming languages. The for loop simply doesnt care if the setTimeout finished or not . So I needed to find another approach so the typewriters (when I call the func multiple times) dont interfere. The only reasonable solution I found was using an async function and await. Await also cause some serious problems, cause it just didnt wanted to work. VS Code then suggested me to return a new promise . IT WORKED. Ahh, and the CSS approach was from here . To any vibecoder out there: Try coding without AI once, its fun, but I need to admit, its also slow, but its fun and that is what counts right, right?
The idea was already very clear in the beginning. After executing every command, save it to local storage in a JSON. First I played around with local storage and after I understood how it worked I started with the task. But I ran into a major problem. Local storage only accepts strings, so it is kinda impossible to store the history in JSON / array. I first tried to slice the strings where the separator was, but this solution wasnt elegant and will cause problems when I wanna implement the arrow up to the last used command, simply just the command history thing from kitty terminal. After wasting some time on the separator solution, I came back to JSON and after looking through what I did in other projects, I realized that there is a build in function to turn a JSON into a string and back, called JSON stringify, it used to be my favorite build in function, because it is sooooooo handy. After this thing was solved, it was time to implement clear history and clear. clear history was easy, its just simply delete the local storage entry and I solved it with an if statement, ik its not great, cause hardcode n stuff, but who care, not my problem currently, future Maximilian problem. The clear command was something else. My final approach was to simply clear the history container with .innerHTML = “” and run it as a function. Enough yap, bye
Today was a very productive day, I implemented the arrow up and arrow down for history, added the age counter (idea yoinked from @Leon ), but I made it cleaner, because his version had leap year handing and mine just simply use milliseconds to be accurate, only one line, instead of a whole function, I think this is progress, even faster now. I animated the age counter, but just before writing this devlog, i realized that it wont work that well and improved it. However the best thing was orphie. @Leon gave me some gifs and I first extracted them into individual frames and HOLY, Leon, what did u do in orphie sleep, 40 FRAMES!! DO U WANT TO KILL ME?? Anyway, I chose the one with the least frames and converted it into ASCII-art using this . Then I slapped the 2 frames into a JSON file and put every line in “”, and then joined them back together in the code. It was quite fun to animate him, go check it out by typing orphie https://lumethra-personal-site.vercel.app/
MORE ORPHIE!!!!! I added the other 2 animations, the time was mainly spend formatting the JSON and matching the height of every animation, so that the lowest bar doesnt jump, ya, thats about it, it was very exhausting, the sleep animation should have been longer, but I’ve cut corners. Enjoy this easteregg
AUTOSCROLLING what the heck firefox, why, WHY, just simply WHY. okay, okay, i know that the scroll thingi should have been strapped to the body tag, but ey, I copied it from Leons terminal (mine is obviously better /j). But there is absolutely no reason you return 0 every time. AND WHY did you return a specific value, I think it was 3218 when I set ur height to 0? This doesnt make any sense at all. This was the weirdest bug in this entire project. My solution didnt work at first, but then it worked, but then it did not again and then I quitted and came back and then it worked again?? Like wth. I hope it stays now intact and I dont wanna debug that ever again, holy stressful 1 and an half hour. Edit: ahh and I also filled the skills output command and added the interests command, both not placeholders anymore
adding a welcome I tried to add a welcome today, cause without it, my website felt strange, we always need an ASCII-art welcome screen thingi. In my terminal (pc) it is sth showing my stats and pokimons, and I needed sth like that for my website too. First I used this to generate a nice welcome ASCII-art and then saved it inside a JSON just like orphie. Then I added a specific command for it returning Welcome and implemented some handling in the constructOutput() function. After it was working with ASCIITextFrame being .join, just like any other json thingi, I wanted to have a typewriter effect and I just wrapped it inside. At first it went quite well, but then I realized, that white spaces takes time to being typed out too and tried to modify my typewriter function to just simply skip the timeout for it, it was quite confusing, but I managed to make it async and create a delay using await. There was a problem though, I didnt want to delete my old function, soo I created a try catch block to keep it as backup. After doing all that I realized I could break each line apart and typewrite then simultaneously. I wrapped another .map inside a .map and wrapped the lines in a span and then joined the construction with a line break. This went perfectly, but now I need to do animateWelcome() differently. I decided on querySelectorAll and a forEach loop. Figuring out how to get the spans where uhh, alot of guessing. At some point I even wanted to give the spans inside the .welcome container a class, but then I found out how it functioned. Using for each was also fun, I wasnt quite sure about the syntax, but google helped very quickly. But because of the white space skipping, they werent all in sync, because the number of white space isnt the same. The effect created was beautiful though and I left it. While writing this devlog I also modified the typewriter function a lille so I can choose if I skip white space or not. Anyways, enough yap, bye.
not did much today, just added 2 commands, one linking my github and one my slack, the other command is just featuring github, that took longer, because I needed to write a whole paragraph, but uhh, todays mission was to keep the streak alive, soooo, ya
Improved the welcome screen to be more noticeable and fancier. It was quite a struggle and I tried alot of stuff. First my idea was to translate (move) it to the middle then zoom up and then do the same backwards, but uhh, CSS didnt like my idea and refused to work. Then I wanted to do the whole thing with scale. This worked a bit better, but not optimal. At the end I decided on just move it to the middle with some tinted blur and let it typewrite and then just clear. The most boring solution ever, but hey, here we are. I think we can get it to smooth move back down, but thats a problem for later me. Edit: Ahh and CSS animations doesnt like me anymore, CSS overall is still okay, but I now hate to animate stuff in general, it is just AHHH annoying and confusing and I also played around a lille bit (the button that got commented)
readme typed a readme word by word, I think it explains everything pretty well.
Ships:
I made a very own personal website with NextJS. I oriented myself on my kitty (terminal app on linux) config and tried to do everything quite similar. It turned out pretty well. I also made a typewriter effect with async and timeout n stuff. This whole project made me learn more about NextJS and got some js functions into my head, such as new Promise, .map, Also some NextJS function, like newRef and similar. Overall it was very fun to not code with AI at all and it was also very helpful for my understanding of this language. Have fun with it :D...
|
1793569926.7838218
|
1793656326.7838218
|
|
43047
|
rig-wave by @ttyChud | Stardance
|
ttyChud
|
1
|
3.0
|
8
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T08:51:29Z", "hours": 3.0, "multiplier": 2.21, "payout": 8, "blessing": "neutral", "text": "For a while it was quiet around here, but Rig Wave is finally live on Vercel — check out the demo at rigwave.vercel.app ( https://rigwave.vercel.app/ )! It’s an ambient wave background where light sweeps across a grid, a glowing trail follows your cursor, and clicks send ripples across the canvas. And if you want it in your own project, you can grab it the shadcn way: npx shadcn@latest add Himanshu121865/rig-wave/rig-wave — it pulls the component straight from the GitHub repo into your code, ready to tweak.", "repo": "https://github.com/Himanshu121865/rig-wave", "demo": "https://rigwave.vercel.app/"}]...
|
[{"post_id": 45647, "ts": "202 [{"post_id": 45647, "ts": "2026-08-12T08:46:24Z", "hours": 0.35, "text": "it’s been quiet sometime but i have now hosted it on vercel for demo rigwave.vercel.app ( https://rigwave.vercel.app/ ) and if someone wanna use it they can also use it through shadcn way (npx shadcn@latest add Himanshu121865/rig-wave/rig-wave) this puts the component straight for the github repo"}, {"post_id": 39459, "ts": "2026-08-02T12:52:12Z", "hours": 3.0864, "text": "so I wanted to build an fragment shader like we see on reactbits but then i got a better idea and here is the final result."}]...
|
Title: rig-wave by @ttyChud | Stardance
Devlogs:
Title: rig-wave by @ttyChud | Stardance
Devlogs:
so I wanted to build an fragment shader like we see on reactbits but then i got a better idea and here is the final result.
it’s been quiet sometime but i have now hosted it on vercel for demo rigwave.vercel.app ( https://rigwave.vercel.app/ ) and if someone wanna use it they can also use it through shadcn way (npx shadcn@latest add Himanshu121865/rig-wave/rig-wave) this puts the component straight for the github repo
Ships:
For a while it was quiet around here, but Rig Wave is finally live on Vercel — check out the demo at rigwave.vercel.app ( https://rigwave.vercel.app/ )! It’s an ambient wave background where light sweeps across a grid, a glowing trail follows your cursor, and clicks send ripples across the canvas. And if you want it in your own project, you can grab it the shadcn way: npx shadcn@latest add Himanshu121865/rig-wave/rig-wave — it pulls the component straight from the GitHub repo into your code, ready to tweak....
|
1792878704.3391025
|
1793742704.3391025
|
|
43056
|
Zebra-is-stuck by @NOT_a_ZEBRA | Stardance
|
NOT_a_ZEBRA
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-02T12:51:39Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "It is just a website explaining about a stuck zebra. It was not much challenging as the guide was given.", "repo": "https://github.com/zebraz567/PersonalWeb", "demo": "https://zebraz567.github.io/PersonalWeb/"}]...
|
[{"post_id": 39442, "ts": "202 [{"post_id": 39442, "ts": "2026-08-02T12:08:42Z", "hours": 0.5653, "text": "A personal website . Im am a beginner and this is my first time developing a website. And what can u even expect in half an hour , anyway there will be major updates!!"}]...
|
Title: Zebra-is-stuck by @NOT_a_ZEBRA | Stardance
Title: Zebra-is-stuck by @NOT_a_ZEBRA | Stardance
Devlogs:
A personal website . Im am a beginner and this is my first time developing a website. And what can u even expect in half an hour , anyway there will be major updates!!
Ships:
It is just a website explaining about a stuck zebra. It was not much challenging as the guide was given....
|
1793465302.9623544
|
1793551702.9623544
|
|
43059
|
orbitview by @gautamagrawal5067 | Stardance
|
gautamagrawal5067
|
1
|
11.0
|
64
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-07T11:45:11Z", "hours": 11.0, "multiplier": 6.08, "payout": 64, "blessing": "neutral", "text": "I have built a space explorer website called OrbitView that uses NASA APIs to show real-time information regarding asteroids close to our planet Earth. The project contains a modern space-themed design, a glassmorphism interface, responsive design, interactive data cards, and navigation. I wanted to build an educational yet fun space exploration website that would provide information from NASA APIs. The hardest part of the work was implementing the NASA APIs and making sure that the data loading was done successfully in any circumstances. Moreover, the design of the user interface took a lot of time, as it needed to be both beautiful and readable, and fit the different screen sizes. Testing the working of JavaScript modules, as well as the loading of the API data was hard but necessary. The thing that I am most proud of is turning the concept of the project into a working website. All the elements of the website were developed through the process of testing and improving. OrbitView can be tested by opening the website in the modern web browser that is connected to the Internet, since the project uses NASA’s public APIs.", "repo": "https://github.com/gautamagrawal5068-maker/orbitview", "demo": "https://vieworbit.netlify.app"}]...
|
[{"post_id": 42560, "ts": "202 [{"post_id": 42560, "ts": "2026-08-07T11:43:24Z", "hours": 1.9978, "text": "This session brought about the completion of OrbitView. The work that I did included integration of the rest of the pieces together, bug fixing, and improving the overall experience. I was successful in getting the frontend working with the NASA APIs and hence live asteroid data. I also completed the responsive design, made improvements in animations, optimized the performance, and did extensive testing to ensure that all the functionality works perfectly well. The problem: The challenges in this phase of the development were dealing with a couple of bugs such as API request errors, inconsistencies in the UI functionality on various screen sizes, and some JavaScript bugs that affected data rendering. Fixing these bugs involved a lot of testing and several revisions to get everything running. The plan ahead: Now that OrbitView is complete, the way forward is to deploy it by improving the documentation and refining the README file and then deploying this latest build and submitting it as my project for the Hack Club Stardance challenge."}, {"post_id": 41847, "ts": "2026-08-06T10:00:14Z", "hours": 4.61, "text": "In this session, I was able to completely write the CSS code for the whole OrbitView website. Most of the time was dedicated to adjusting the dark-space inspired UI to ensure that all its elements conform to the general futuristic dashboard design style. I made sure that the styling of sidebars, navigation, modals, buttons, information blocks, and responsive design were done to the fullest. I also perfected glassmorphism, animations, spaces, and fonts in order to create an appealing user experience. At this point, with the frontend being completely styled, the website is ready for the functional part of development. The problem: The process of fine-tuning glassmorphism turned out to be quite challenging, as finding the correct balance between transparency, blur effect, and readability involved many trials. In addition, there were some issues with the layout and responsiveness, when some elements overlapped each other or were misaligned at certain screen sizes, and therefore, I had to do several corrections. The plan ahead: After the completion of the CSS code, the next step is the development of api.js file. In it, I am going to implement the NASA NeoWs API to show up-to-date information about asteroids in OrbitView."}, {"post_id": 41085, "ts": "2026-08-05T01:32:19Z", "hours": 3.9389, "text": "This session saw me spend a lot of time setting up the frontend UI architecture. I created style.css to develop the dark space-themed UI where I used glassmorphism to build my sidebars and modals to make it look like a dashboard interface. Also, I began working on the Javascript architecture by splitting it into multiple files (ui.js, api.js, scene.js). The problem: Getting the CSS backdrop-filter (blurring effect) working properly and not making everything too blurry was a pain in the neck. In addition to this, I had some difficulties while trying to test my JS modules because of CORS issues until I figured out that I had to use a Python HTTP server to test them. The plan ahead: Now, the UI is done but it is still an empty shell. Next session, I am going to start working on api.js to get my asteroids from NASA NeoWs API endpoint."}]...
|
Title: orbitview by @gautamagrawal5067 | Stardance Title: orbitview by @gautamagrawal5067 | Stardance
Devlogs:
This session saw me spend a lot of time setting up the frontend UI architecture. I created style.css to develop the dark space-themed UI where I used glassmorphism to build my sidebars and modals to make it look like a dashboard interface. Also, I began working on the Javascript architecture by splitting it into multiple files (ui.js, api.js, scene.js). The problem: Getting the CSS backdrop-filter (blurring effect) working properly and not making everything too blurry was a pain in the neck. In addition to this, I had some difficulties while trying to test my JS modules because of CORS issues until I figured out that I had to use a Python HTTP server to test them. The plan ahead: Now, the UI is done but it is still an empty shell. Next session, I am going to start working on api.js to get my asteroids from NASA NeoWs API endpoint.
In this session, I was able to completely write the CSS code for the whole OrbitView website. Most of the time was dedicated to adjusting the dark-space inspired UI to ensure that all its elements conform to the general futuristic dashboard design style. I made sure that the styling of sidebars, navigation, modals, buttons, information blocks, and responsive design were done to the fullest. I also perfected glassmorphism, animations, spaces, and fonts in order to create an appealing user experience. At this point, with the frontend being completely styled, the website is ready for the functional part of development. The problem: The process of fine-tuning glassmorphism turned out to be quite challenging, as finding the correct balance between transparency, blur effect, and readability involved many trials. In addition, there were some issues with the layout and responsiveness, when some elements overlapped each other or were misaligned at certain screen sizes, and therefore, I had to do several corrections. The plan ahead: After the completion of the CSS code, the next step is the development of api.js file. In it, I am going to implement the NASA NeoWs API to show up-to-date information about asteroids in OrbitView.
This session brought about the completion of OrbitView. The work that I did included integration of the rest of the pieces together, bug fixing, and improving the overall experience. I was successful in getting the frontend working with the NASA APIs and hence live asteroid data. I also completed the responsive design, made improvements in animations, optimized the performance, and did extensive testing to ensure that all the functionality works perfectly well. The problem: The challenges in this phase of the development were dealing with a couple of bugs such as API request errors, inconsistencies in the UI functionality on various screen sizes, and some JavaScript bugs that affected data rendering. Fixing these bugs involved a lot of testing and several revisions to get everything running. The plan ahead: Now that OrbitView is complete, the way forward is to deploy it by improving the documentation and refining the README file and then deploying this latest build and submitting it as my project for the Hack Club Stardance challenge.
Ships:
I have built a space explorer website called OrbitView that uses NASA APIs to show real-time information regarding asteroids close to our planet Earth. The project contains a modern space-themed design, a glassmorphism interface, responsive design, interactive data cards, and navigation. I wanted to build an educational yet fun space exploration website that would provide information from NASA APIs. The hardest part of the work was implementing the NASA APIs and making sure that the data loading was done successfully in any circumstances. Moreover, the design of the user interface took a lot of time, as it needed to be both beautiful and readable, and fit the different screen sizes. Testing the working of JavaScript modules, as well as the loading of the API data was hard but necessary. The thing that I am most proud of is turning the concept of the project into a working website. All the elements of the website were developed through the process of testing and improving. OrbitView can be tested by opening the website in the modern web browser that is connected to the Internet, since the project uses NASA’s public APIs....
|
1793465310.9410617
|
1793551710.9410617
|
|
43074
|
My own site! by @Sifatur | Stardance
|
Sifatur
|
1
|
3.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-06T22:13:14Z", "hours": 3.0, "multiplier": 1.03, "payout": 3, "blessing": "neutral", "text": "I made my own website. The challenging part was to program according to my vision. and iam proud to launch it. If anyone is interest they can test my project.", "repo": "https://github.com/Sifatur1/My-personal-site", "demo": "https://sifatur1.github.io/My-personal-site/"}]...
|
[{"post_id": 42234, "ts": "202 [{"post_id": 42234, "ts": "2026-08-06T21:01:25Z", "hours": 1.0508, "text": "just finished everything"}, {"post_id": 42163, "ts": "2026-08-06T19:25:56Z", "hours": 1.2819, "text": "I completely changed my layout and iam trying to add 3 pages for my info . i need some suggestions from you guys to help me make it leonardo da vinci inspired theme."}, {"post_id": 41294, "ts": "2026-08-05T12:55:08Z", "hours": 0.2628, "text": "Iam Currently working on my first website .Learning new things"}]...
|
Title: My own site! by @Sifatur | Stardance
Devlo Title: My own site! by @Sifatur | Stardance
Devlogs:
Iam Currently working on my first website .Learning new things
I completely changed my layout and iam trying to add 3 pages for my info . i need some suggestions from you guys to help me make it leonardo da vinci inspired theme.
just finished everything
Ships:
I made my own website. The challenging part was to program according to my vision. and iam proud to launch it. If anyone is interest they can test my project....
|
1793465318.0010114
|
1793551718.0010114
|
|
43083
|
My StarWebsite by @S-Akhil | Stardance
|
S-Akhil
|
1
|
5.0
|
5
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T10:27:02Z", "hours": 5.0, "multiplier": 1.01, "payout": 5, "blessing": "neutral", "text": "I created my own Personal Portfolio Website .Insted of my photo and email I just gave a example image and email.", "repo": "https://github.com/s-akhiltechy/My-Personal-Website", "demo": "https://s-akhiltechy.github.io/My-Personal-Website/"}]...
|
[{"post_id": 39916, "ts": "202 [{"post_id": 39916, "ts": "2026-08-03T07:05:41Z", "hours": 5.135, "text": "Hello, I am currently working on my portfolio website."}]...
|
Title: My StarWebsite by @S-Akhil | Stardance
Dev Title: My StarWebsite by @S-Akhil | Stardance
Devlogs:
Hello, I am currently working on my portfolio website.
Ships:
I created my own Personal Portfolio Website .Insted of my photo and email I just gave a example image and email....
|
1793465322.8959944
|
1793551722.8959944
|
|
43093
|
Bloop by @suprit | Stardance
|
suprit
|
1
|
6.35
|
73
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T15:46:21Z", "hours": 6.0, "multiplier": 12.11, "payout": 73, "blessing": "neutral", "text": "For now, I have added AI moderation within the Discord bot, an economy system for gaming, betting games (I dont know a lot about betting so I used the help of AI), music playback and random memes from Reddit using its API. This tools are quite helpful in managing a discord server, especially when AI can decide how someone’s action is harming someone else and can also decide whether to Kick, Ban, Mute or Timeout the person although you can remove those permissions from it anytime!", "repo": "https://github.com/supritpahari/bloop", "demo": "https://discord.gg/te2MYwzTVA"}]...
|
[{"post_id": 51113, "ts": "202 [{"post_id": 51113, "ts": "2026-08-20T16:42:44Z", "hours": 0.3503, "text": "For this new update, I added just some fun commands in the bot. The newly added commands include the /neko, /meme, /joke commands, each getting content from specific apis. I used the free APIs from different platforms and checked the commands a number of times to ensure the api requests work and I get some output data. Go try yourself!"}, {"post_id": 43790, "ts": "2026-08-09T06:50:57Z", "hours": 0.9839, "text": "Just completed my second mission: Make the Bot Sound and Moderate Today, I continued my work on my Discord bot Bloop, a friendly Discord bot that will include AI moderation and games for everyone! I coded it with Python. Today’s Objective- Add Music and Audio Playback from YouTube Add AI Moderation for better servers Fixed some errors in Economy Commands and Database Next Objective- Add AI Chat Support You can invite the bot in your discord to test out some features! I used Wisp byte to host it for free forever! Invite here: https://discord.com/oauth2/authorize?client_id=1533480410519048293"}, {"post_id": 42460, "ts": "2026-08-07T06:38:38Z", "hours": 5.0803, "text": "Just completed my first mission: Make the Bot Alive Today, I started my work on my Discord bot Bloop, a friendly Discord bot that will include AI moderation and games for everyone! I coded it with Python. Today’s Objective- Make the Bot Alive Add basic ban and kick commands Add economy commands Next Objective- Add Music Playback Support You can invite the bot in your discord to test out some features! I used Wisp byte to host it for free forever! Invite here: https://discord.com/oauth2/authorize?client_id=1533480410519048293"}]...
|
Title: Bloop by @suprit | Stardance
Devlogs:
Just Title: Bloop by @suprit | Stardance
Devlogs:
Just completed my first mission: Make the Bot Alive Today, I started my work on my Discord bot Bloop, a friendly Discord bot that will include AI moderation and games for everyone! I coded it with Python. Today’s Objective- Make the Bot Alive Add basic ban and kick commands Add economy commands Next Objective- Add Music Playback Support You can invite the bot in your discord to test out some features! I used Wisp byte to host it for free forever! Invite here: https://discord.com/oauth2/authorize?client_id=1533480410519048293
Just completed my second mission: Make the Bot Sound and Moderate Today, I continued my work on my Discord bot Bloop, a friendly Discord bot that will include AI moderation and games for everyone! I coded it with Python. Today’s Objective- Add Music and Audio Playback from YouTube Add AI Moderation for better servers Fixed some errors in Economy Commands and Database Next Objective- Add AI Chat Support You can invite the bot in your discord to test out some features! I used Wisp byte to host it for free forever! Invite here: https://discord.com/oauth2/authorize?client_id=1533480410519048293
For this new update, I added just some fun commands in the bot. The newly added commands include the /neko, /meme, /joke commands, each getting content from specific apis. I used the free APIs from different platforms and checked the commands a number of times to ensure the api requests work and I get some output data. Go try yourself!
Ships:
For now, I have added AI moderation within the Discord bot, an economy system for gaming, betting games (I dont know a lot about betting so I used the help of AI), music playback and random memes from Reddit using its API. This tools are quite helpful in managing a discord server, especially when AI can decide how someone’s action is harming someone else and can also decide whether to Kick, Ban, Mute or Timeout the person although you can remove those permissions from it anytime!...
|
1793573724.8812816
|
1793660124.8812816
|
|
43094
|
Time Capsule! by @Prathush | Stardance
|
Prathush
|
1
|
1.87
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T14:25:23Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created Time Capsule, a website where users can save memories and set a date and time to revisit them later and reflect upon them. As a beginner, the most challenging part was building the interface with CSS. The project is currently in development, with the basic functionality yet to be implemented.", "repo": "https://github.com/prathushthecoder/time-capsule", "demo": "https://prathushthecoder.github.io/time-capsule/"}]...
|
[{"post_id": 56738, "ts": "202 [{"post_id": 56738, "ts": "2026-08-28T16:46:52Z", "hours": 0.8664, "text": "I improvised the interface of my project Time Capsule and made it functional, where now you can add your thoughts which you would like to remember later and seal it as a capsule, and later let it pop up in your screen…"}, {"post_id": 47025, "ts": "2026-08-14T16:52:07Z", "hours": 0.6794, "text": "I’m working on a project named Time Capsule where I record my thoughts or memories and set them to open at a given date, so that I can reflect upon them:) I did the basic styling and programming today…."}]...
|
Title: Time Capsule! by @Prathush | Stardance
Dev Title: Time Capsule! by @Prathush | Stardance
Devlogs:
I’m working on a project named Time Capsule where I record my thoughts or memories and set them to open at a given date, so that I can reflect upon them:) I did the basic styling and programming today….
I improvised the interface of my project Time Capsule and made it functional, where now you can add your thoughts which you would like to remember later and seal it as a capsule, and later let it pop up in your screen…
Ships:
I created Time Capsule, a website where users can save memories and set a date and time to revisit them later and reflect upon them. As a beginner, the most challenging part was building the interface with CSS. The project is currently in development, with the basic functionality yet to be implemented....
|
1793533683.4600568
|
1793620083.4600568
|
|
43106
|
RadsiOS by @radsi | Stardance
|
radsi
|
1
|
6.33
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T20:24:39Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A made a minimalist webOS, stylized with emojis, that has a snake minigame :). I had a lot of problems making it responsive and with text colors, but I think I did a pretty webOS.", "repo": "https://github.com/radsi/RadsiOS", "demo": "https://radsi.github.io/RadsiOS/"}]...
|
[{"post_id": 51863, "ts": "202 [{"post_id": 51863, "ts": "2026-08-21T18:52:04Z", "hours": 0.7494, "text": "I removed the “explorer” app and instead made the home button list all the available apps and files."}, {"post_id": 49572, "ts": "2026-08-18T13:39:50Z", "hours": 1.5778, "text": "I redesigned the webOS layout using hand-drawn assets :)"}, {"post_id": 40958, "ts": "2026-08-04T20:22:56Z", "hours": 1.0239, "text": "I made a snake game and a wallpaper app, some text color corrections and deployed it on github pages 👍"}, {"post_id": 40872, "ts": "2026-08-04T17:50:18Z", "hours": 1.3831, "text": "I’ve worked on the taskbar, fixed the window order (z), and Notepad’s file system, among other things. Notepad gave me the most trouble; the same file was being created multiple times, and it wasn’t displaying correctly… but that’s fixed now."}, {"post_id": 39572, "ts": "2026-08-02T17:03:51Z", "hours": 1.2781, "text": "I’m making a html/tailwind/js webOS, stylized with emojis. I dont really know what to add but probably some minigames."}]...
|
Title: RadsiOS by @radsi | Stardance
Devlogs:
I’m Title: RadsiOS by @radsi | Stardance
Devlogs:
I’m making a html/tailwind/js webOS, stylized with emojis. I dont really know what to add but probably some minigames.
I’ve worked on the taskbar, fixed the window order (z), and Notepad’s file system, among other things. Notepad gave me the most trouble; the same file was being created multiple times, and it wasn’t displaying correctly… but that’s fixed now.
I made a snake game and a wallpaper app, some text color corrections and deployed it on github pages 👍
I redesigned the webOS layout using hand-drawn assets :)
I removed the “explorer” app and instead made the home button list all the available apps and files.
Ships:
A made a minimalist webOS, stylized with emojis, that has a snake minigame :). I had a lot of problems making it responsive and with text colors, but I think I did a pretty webOS....
|
1793469110.4612708
|
1793555510.4612708
|
|
43116
|
X-Revenant by @nejenabinupa | Stardance
|
nejenabinupa
|
1
|
49.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-06T17:17:01Z", "hours": 49.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "this model is finished now all of the details are in the readme how you like it", "repo": "https://github.com/binupax6699/X-REVENANT-3D-MODLE", "demo": "https://sketchfab.com/3d-models/x-revenant-d105edc6008d4e148df14087eecc2355"}]...
|
[{"post_id": 77351, "ts": "202 [{"post_id": 77351, "ts": "2026-10-06T17:11:44Z", "hours": 1.4131, "text": "finished up all and its ready now"}, {"post_id": 43397, "ts": "2026-08-08T16:48:16Z", "hours": 6.4225, "text": "Finally finished baking the textures to the body"}, {"post_id": 42499, "ts": "2026-08-07T08:42:02Z", "hours": 9.8578, "text": "I did the texturing for the all and I make the interior and put weapons that come out from openings, next will be backing the texture and sum small details to make it perfect."}, {"post_id": 41340, "ts": "2026-08-05T14:27:20Z", "hours": 10.5606, "text": "I added small details and sum small changes to the topology and cut out opening to add this that come out and I add the landing gear and it was the most complex part today and i even animated it and it look so perfect."}, {"post_id": 40203, "ts": "2026-08-03T16:38:36Z", "hours": 10.9303, "text": "Did so much changes and I think this is the final model I can get, maybe little more changes and textures I can add in next devlog, it’s looking good i think I did a great job to get to here and make it much more my style and better over time"}, {"post_id": 39555, "ts": "2026-08-02T16:15:05Z", "hours": 10.265, "text": "Took so long to make the based mash and it was good enough to work ok and need to make it perfect and make some small small changes along the way."}]...
|
Title: X-Revenant by @nejenabinupa | Stardance
De Title: X-Revenant by @nejenabinupa | Stardance
Devlogs:
Took so long to make the based mash and it was good enough to work ok and need to make it perfect and make some small small changes along the way.
Did so much changes and I think this is the final model I can get, maybe little more changes and textures I can add in next devlog, it’s looking good i think I did a great job to get to here and make it much more my style and better over time
I added small details and sum small changes to the topology and cut out opening to add this that come out and I add the landing gear and it was the most complex part today and i even animated it and it look so perfect.
I did the texturing for the all and I make the interior and put weapons that come out from openings, next will be backing the texture and sum small details to make it perfect.
Finally finished baking the textures to the body
finished up all and its ready now
Ships:
this model is finished now all of the details are in the readme how you like it...
|
1793339429.6954126
|
1793425829.6954126
|
|
43119
|
Super Minigame! by @ashrafmahin10 | Stardance
|
ashrafmahin10
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T23:54:58Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a warioware inspired minigame. The challenging part of it was to debug some code. I am proud to have my own game published for the public.You can go to my github page to start trying out my project :3", "repo": "https://github.com/Ashraf-999/Super-Minigame", "demo": "https://ashrafmahin.itch.io/super-minigame"}]...
|
[{"post_id": 48499, "ts": "202 [{"post_id": 48499, "ts": "2026-08-16T21:25:58Z", "hours": 3.8286, "text": "Just finished the game!"}, {"post_id": 42409, "ts": "2026-08-07T03:05:44Z", "hours": 1.2989, "text": "Just finished building the home page for my warioware game!"}]...
|
Title: Super Minigame! by @ashrafmahin10 | Stardan Title: Super Minigame! by @ashrafmahin10 | Stardance
Devlogs:
Just finished building the home page for my warioware game!
Just finished the game!
Ships:
I made a warioware inspired minigame. The challenging part of it was to debug some code. I am proud to have my own game published for the public.You can go to my github page to start trying out my project :3...
|
1793537820.5694456
|
1793624220.5694456
|
|
43125
|
webOS-1 by @HimanshuPratap | Stardance
|
HimanshuPratap
|
1
|
9.12
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T08:42:03Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The goal was to create a small desktop environment that runs directly in a web browser. Features Simple desktop interface Top system bar with live clock Taskbar Start menu Files application Notes application Settings application Multiple draggable windows Notes auto-save using browser localStorage No login or password required", "repo": "https://github.com/CoderPratap-dev/webOS-1", "demo": "https://coderpratap-dev.github.io/webOS-1/"}]...
|
[{"post_id": 63007, "ts": "202 [{"post_id": 63007, "ts": "2026-09-06T15:57:41Z", "hours": 5.1219, "text": "working on this project again"}, {"post_id": 43162, "ts": "2026-08-08T08:36:37Z", "hours": 0.6681, "text": "Final Submission i have add the draggable windows with multi windows and autosaving system in notes"}, {"post_id": 43137, "ts": "2026-08-08T07:27:37Z", "hours": 1.3261, "text": "added all icon working"}, {"post_id": 40254, "ts": "2026-08-03T17:36:14Z", "hours": 2.0986, "text": "created the basic structure of web os + i have add the local storage system for notes"}]...
|
Title: webOS-1 by @HimanshuPratap | Stardance
Dev Title: webOS-1 by @HimanshuPratap | Stardance
Devlogs:
created the basic structure of web os + i have add the local storage system for notes
added all icon working
Final Submission i have add the draggable windows with multi windows and autosaving system in notes
working on this project again
Ships:
The goal was to create a small desktop environment that runs directly in a web browser. Features Simple desktop interface Top system bar with live clock Taskbar Start menu Files application Notes application Settings application Multiple draggable windows Notes auto-save using browser localStorage No login or password required...
|
1792878733.3507082
|
1793742733.3507082
|
|
43126
|
LubruCore-Economy by @mr_lmj_email | Stardance
|
mr_lmj_email
|
1
|
4.0
|
27
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T18:05:20Z", "hours": 4.0, "multiplier": 7.44, "payout": 27, "blessing": "neutral", "text": "I made my second Plugin LubruCore-Economy It was really fun to make but there where some things that where hard one of them was getting idees what features i could make. And also there where bugs and these were hard to fix", "repo": "https://github.com/mrlmjYT/LubruCore-Economy", "demo": "https://modrinth.com/project/PY4fvVUp"}]...
|
[{"post_id": 44738, "ts": "202 [{"post_id": 44738, "ts": "2026-08-10T18:02:10Z", "hours": 1.8436, "text": "Finished entire ui and is now fully playable i have finished the projekt made a readme in github and added a release"}, {"post_id": 39983, "ts": "2026-08-03T10:23:04Z", "hours": 0.8722, "text": "Rank System Owner can set Ranks Owner is automatic someone who got OP rights"}, {"post_id": 39597, "ts": "2026-08-02T18:02:24Z", "hours": 0.9506, "text": "GUI of the Economy Plugin"}]...
|
Title: LubruCore-Economy by @mr_lmj_email | Starda Title: LubruCore-Economy by @mr_lmj_email | Stardance
Devlogs:
GUI of the Economy Plugin
Rank System Owner can set Ranks Owner is automatic someone who got OP rights
Finished entire ui and is now fully playable i have finished the projekt made a readme in github and added a release
Ships:
I made my second Plugin LubruCore-Economy It was really fun to make but there where some things that where hard one of them was getting idees what features i could make. And also there where bugs and these were hard to fix...
|
1793332586.507487
|
1793418986.507487
|
|
43130
|
My own site! by @safayet | Stardance
|
safayet
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-06T18:45:32Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built my personal portfolio website — a single-page site with hero/intro, about-me, services (Web/App Dev, UI/UX, Graphics Design), an animated skills section, and a working contact form, using vanilla HTML/CSS/JS with Matter.js for an interactive mouse-reactive particle background and Lenis for smooth scrolling. The trickiest part was tuning the Matter.js particle background so it reacted smoothly to the cursor without lagging, and syncing scroll-triggered animations (like the sketch-pad draw-in effect) with Lenis’s smooth scroll. I’m most proud of the particle background — it makes the site feel alive instead of static, all done with vanilla JS and lightweight libraries instead of a heavy framework. To test it, just open index.html, move your mouse around the hero section to see the particles react, scroll down to see the Services sketch animation and Skills progress circles trigger, and try the contact form at the bottom (it actually submits via Web3Forms).", "repo": "https://github.com/Safayet200/portfolio", "demo": "https://safayet200.github.io/portfolio/"}]...
|
[{"post_id": 39610, "ts": "202 [{"post_id": 39610, "ts": "2026-08-02T18:23:04Z", "hours": 0.2572, "text": "I think the animation is cool huh?"}]...
|
Title: My own site! by @safayet | Stardance
Devlo Title: My own site! by @safayet | Stardance
Devlogs:
I think the animation is cool huh?
Ships:
I built my personal portfolio website — a single-page site with hero/intro, about-me, services (Web/App Dev, UI/UX, Graphics Design), an animated skills section, and a working contact form, using vanilla HTML/CSS/JS with Matter.js for an interactive mouse-reactive particle background and Lenis for smooth scrolling. The trickiest part was tuning the Matter.js particle background so it reacted smoothly to the cursor without lagging, and syncing scroll-triggered animations (like the sketch-pad draw-in effect) with Lenis’s smooth scroll. I’m most proud of the particle background — it makes the site feel alive instead of static, all done with vanilla JS and lightweight libraries instead of a heavy framework. To test it, just open index.html, move your mouse around the hero section to see the particles react, scroll down to see the Services sketch animation and Skills progress circles trigger, and try the contact form at the bottom (it actually submits via Web3Forms)....
|
1793469113.396527
|
1793555513.396527
|
|
43134
|
Pi - the game! by @laptopDragoness_27 | Stardance
|
laptopDragoness_27
|
1
|
16.0
|
235
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T04:02:06Z", "hours": 16.0, "multiplier": 14.9, "payout": 235, "blessing": "neutral", "text": "I made a game about guessing digits of pi in pico-8! It uses the Stanley-Rabinowitz spigot algorithm in real time to generate new digits of pi! I’m really proud of it, and it’s also got a decent amount of polish (the first real game I’ve made in pico-8 honestly).", "repo": "https://github.com/laptopDragoness27/Pi-the-gmae-main", "demo": "https://king-of-waffles.itch.io/pi-the-game"}]...
|
[{"post_id": 56371, "ts": "202 [{"post_id": 56371, "ts": "2026-08-28T03:39:16Z", "hours": 1.0833, "text": "It’s done! fixed the last couple issues and added some more sound effects. Finally done!!!"}, {"post_id": 55747, "ts": "2026-08-27T18:41:01Z", "hours": 1.8, "text": "Almost done! Got the delay nearly fully gone with the help of itch user kevinthompson who showed me how coroutines work. I used the coroutines to split up the code that generates a digit of pi after each correct guess over many frames, so it will run at about 50% speed for like a second and then continue on lag free. There was also an edge case there, if the digit hadn’t finished generating and you picked the correct digit, it would say it was wrong! To solve this I made the game just wait for it to finish, and added some static noise to it so you would know it was intentional. Definitely not a perfect solution, but as good as I’ve come up with. I’m also considering adding music to the background, but I haven’t figured it out yet. Kind of annoying for sure…"}, {"post_id": 54139, "ts": "2026-08-24T23:33:34Z", "hours": 3.2833, "text": "Changed the game a lot! It feels much more polished now (better menus, etc) and most notably, the initial loading screen is gone! I made it so now the next digit is generated on the fly instead of in advance so you don’t have to wait for minutes on end before being able to play. There is a major issue though, it makes a pause happen when you get the digit correct which is very jarring. Might look into something like co-routines. You can also play it now! Let me know what you think please!"}, {"post_id": 53495, "ts": "2026-08-24T02:13:52Z", "hours": 3.3833, "text": "Work is being done on the game! I’ve got the main mechanics working (gameplay loop, digit selection and checking, scoring, a timer per digit, high score) but it’s all rudimentary right now. Next I’m going to make a display to see the digit you need to guess with previous digits and other visual things to make the game look better. Hope it goes well!"}, {"post_id": 51810, "ts": "2026-08-21T17:30:05Z", "hours": 0.4167, "text": "Got all the digits working! The issue that was causing it to stop working seemed to be an issue with the 16-bit integer limit, since at a certain point the numbers get too large to have proper precision, so they are off by a bit which causes the numbers to be inaccurate. Now time to actually make the game! Hopefully the easy part."}, {"post_id": 44321, "ts": "2026-08-10T00:16:26Z", "hours": 1.4503, "text": "I figured out how many digits my stupid program can generate… 263 I have no idea why more won’t work…"}, {"post_id": 41686, "ts": "2026-08-06T01:57:08Z", "hours": 4.3497, "text": "I’ve gotten the first 200 digits of pi generated in Pico-8! But the 300th is wrong… okay… a bit of background. First, why am I trying to generate pi, why not just precompute it and store it in rom? Gee I wish. A limitation in Pico-8 is that one cart can only have about 8000 tokens total, and each list element counts as a token, so having a sufficiently large amount of tokens, like 10 000 would literally be impossible, so instead I’ll just compute it when the program loads up and store it in RAM. What is interesting though is how I got this done! I used an algorithm by Rabinowitz and Wagon (link to the paper: http://stanleyrabinowitz.com/bibliography/spigot.pdf ) where you start with a bunch of 2s, and do various operations on them from right to left involving division and multiplication to get a number who’s 10s digit is the digit of pi for that iteration. My implementation should be working the same, however for a reason I am yet to figure out it stops working between 200 and 300 digits of pi, most likely due to a small error in my implementation that causes it to drift very slowly, only mattering after a couple hundred digits."}]...
|
Title: Pi - the game! by @laptopDragoness_27 | Sta Title: Pi - the game! by @laptopDragoness_27 | Stardance
Devlogs:
I’ve gotten the first 200 digits of pi generated in Pico-8! But the 300th is wrong… okay… a bit of background. First, why am I trying to generate pi, why not just precompute it and store it in rom? Gee I wish. A limitation in Pico-8 is that one cart can only have about 8000 tokens total, and each list element counts as a token, so having a sufficiently large amount of tokens, like 10 000 would literally be impossible, so instead I’ll just compute it when the program loads up and store it in RAM. What is interesting though is how I got this done! I used an algorithm by Rabinowitz and Wagon (link to the paper: http://stanleyrabinowitz.com/bibliography/spigot.pdf ) where you start with a bunch of 2s, and do various operations on them from right to left involving division and multiplication to get a number who’s 10s digit is the digit of pi for that iteration. My implementation should be working the same, however for a reason I am yet to figure out it stops working between 200 and 300 digits of pi, most likely due to a small error in my implementation that causes it to drift very slowly, only mattering after a couple hundred digits.
I figured out how many digits my stupid program can generate… 263 I have no idea why more won’t work…
Got all the digits working! The issue that was causing it to stop working seemed to be an issue with the 16-bit integer limit, since at a certain point the numbers get too large to have proper precision, so they are off by a bit which causes the numbers to be inaccurate. Now time to actually make the game! Hopefully the easy part.
Work is being done on the game! I’ve got the main mechanics working (gameplay loop, digit selection and checking, scoring, a timer per digit, high score) but it’s all rudimentary right now. Next I’m going to make a display to see the digit you need to guess with previous digits and other visual things to make the game look better. Hope it goes well!
Changed the game a lot! It feels much more polished now (better menus, etc) and most notably, the initial loading screen is gone! I made it so now the next digit is generated on the fly instead of in advance so you don’t have to wait for minutes on end before being able to play. There is a major issue though, it makes a pause happen when you get the digit correct which is very jarring. Might look into something like co-routines. You can also play it now! Let me know what you think please!
Almost done! Got the delay nearly fully gone with the help of itch user kevinthompson who showed me how coroutines work. I used the coroutines to split up the code that generates a digit of pi after each correct guess over many frames, so it will run at about 50% speed for like a second and then continue on lag free. There was also an edge case there, if the digit hadn’t finished generating and you picked the correct digit, it would say it was wrong! To solve this I made the game just wait for it to finish, and added some static noise to it so you would know it was intentional. Definitely not a perfect solution, but as good as I’ve come up with. I’m also considering adding music to the background, but I haven’t figured it out yet. Kind of annoying for sure…
It’s done! fixed the last couple issues and added some more sound effects. Finally done!!!
Ships:
I made a game about guessing digits of pi in pico-8! It uses the Stanley-Rabinowitz spigot algorithm in real time to generate new digits of pi! I’m really proud of it, and it’s also got a decent amount of polish (the first real game I’ve made in pico-8 honestly)....
|
1793486971.6809301
|
1793573371.6809301
|
|
43141
|
AI Water Calc Extension by @Gagnant | Stardance
|
Gagnant
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T17:58:00Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is like a sort of sequel to my first project, the AI water calculator. The difference? As shown in the picture, this is a browser extension. Which means you do not have to open it live to use it but instead you have a lil version at the side of your screen, cute innit? What’s even better is it can detect whether you’re on an AI site, tho ofc only the AI I outlined in it but that’s basically the main AI that I added so…not exactly worried. My issues? THE EXTENSION UPLOADING. Likeeeeee it was the 2nd hardest aspect of it all, the hardest was the JavaScript and easiest was the manifest, or no, the content.css. To be more specific the uploading was an issue because the emojis were loading as awkward symbols and I didn’t know why. I first saved it on VS code as UTF-8 since my friend told me to, then it didn’t change a thing. They then said I should save encoding as “UTF-8 with BOM” tell me what even is the difference. I guess there was one, but it wasted my time so much so that the frustration made me not ship this even though I was more or less done. Another issue was icon designing since designs aren’t my thing but for some reason it turned out alright. Then, I had to get it resized, nearly lost my PC by visiting some rip-off resizer site that gave me some sketchy file to download, if I wasn’t cautious, this PC of mine wouldn’t have seen this moment. Though, all in all, this was fun, not nerdy fun but the thought that I could build this is motivation because my goal seems more feasible now. So ironic that what I am anticipating isn’t related to Sustainability at all, but kinda is? It’s complicated, but yes visit my repo please and use the extension so you can track your Water Use live on the go.", "repo": "https://github.com/Itz-COCO/AI-Water-Extension", "demo": "https://github.com/Itz-COCO/AI-Water-Extension.git"}]...
|
[{"post_id": 40865, "ts": "202 [{"post_id": 40865, "ts": "2026-08-04T17:42:31Z", "hours": 0.8897, "text": "I’M DONE. This last bit was so difficult. The code was sorted out and the content.css didn’t take me long it was debugging the icons that became my issue even now I don’t know why the icon is refusing to load on the extension page, it’s really frustrating me and I have tried many things but it’s not complying, but I’m leaving it as is since the main thing is actually working pretty well, no bugs whatsoever. Then I had to install chrome on my PC since I actually just got this last week ( I mentioned this before in my first project). Anyways, the folder can be viewed in my GitHub repo which will prolly come soon if I ship it. I implore y’all to give it a shot. Both on edge and Chrome. Please look forward to my next two projects, I mean it."}, {"post_id": 40047, "ts": "2026-08-03T12:21:59Z", "hours": 0.9842, "text": "Just finished the content.js file. It did take me a while cause of formatting I ended up overcrowding lines, and I am very sure I still have that issue but Imma sort it out during debugging. I see my files in this way: popup.html is my mockup structure, popup.js is the brain for that that gives it basic function, which is why from my screenshot earlier, you could see like the calculator working but other things weren’t. The purpose of my content.js is to enable REAL TIME TRACKING. It silently runs on the ai site (butchu gotta get the extension first, obviously) Which reminds me that I am yet to finish the github repository for all this neither have I added it to chrome extensions but that’s meant to be the last part since I need the folder itself complete so lemme not rush. So basically, manifest.json tells chrome this is an extension, Ive explained the popup duo, also the content.js I just finished. Of course, icons are self- explanatory. Then, content.css is just to spruce the whole thing up. Can’t wait to finish this. So, I can handle the next 2."}, {"post_id": 39885, "ts": "2026-08-03T05:06:17Z", "hours": 0.7261, "text": "Oh, so the reason for the issue back then was because they were not on the same line. I was very puzzled, so I visited my calculator code and then it just kinda clicked to try, and I did then the errors stopped. I am now finished with the popup.js file. Took me a while but I guess it’s kinda changing the extension a bit more. It can now perform the basic calculation aspect, still isn’t loading the dashboard values though, but I’mma handle that in the last two files: content.js and content.css. There is no particular order (I think) I am merely following the easy building block guide"}, {"post_id": 39860, "ts": "2026-08-03T03:53:39Z", "hours": 0.7192, "text": "I am kinda stuck rn, after persevering using the sound of rain in my area as motivation in the dark, I have come to a major block, I first had storage issues since I needed the right storage set up for a chrome extension so I kept deleting and reenacting over and over again. Well, I dealt with allat and now I’m here. The code looks fine to me tbh I don’t even understand."}, {"post_id": 39833, "ts": "2026-08-03T02:47:17Z", "hours": 0.4667, "text": "Finally started the script, hopefully it makes up for that sorry looking thing I showed earlier; to make this an improved version of the calculator, I added more cheeky remarks (yes, I said that). I was feeling odd so they may be weird buh I didn’t add emojis this time unlike the calculator and these remarks are…harsh? Yeah, pretty much, whereas the calculator remarks praise you for using a model other than ChatGPT. The remarks here are a lottttt."}, {"post_id": 39764, "ts": "2026-08-02T22:58:52Z", "hours": 0.7306, "text": "… Finished debugging the html, I now need to move on to the script. But man, this looks mad corny…incredibly so. But I was warned and went through with it anyways, so that’s definitely on me so I shall trust the process. Let’s see how better it looks when I add the content files and the JS to all this"}, {"post_id": 39742, "ts": "2026-08-02T22:09:10Z", "hours": 0.8667, "text": "Well, I am completely done with the style section of my code. Made sure it was really personalized, added a mascot concept, bouncing text animation and implemented the Font package Fredoka One and Nunito, I am hoping it’ll turn out nicely because I feel I prolly have bugs buh I am not debugging just yet so warrever. Prop tip: Evn if you lowkey wanna bank up on hours, it’s best to separately plan code and test on a different device so when retyping elsewhere, you’re immersed in the code and efficent. (I am in no place say allat, buh yeah, it helped me a lto to pull this off)"}, {"post_id": 39702, "ts": "2026-08-02T20:43:17Z", "hours": 0.6983, "text": "Well, the manifest file wrapped up pretty quickly, so I had to move on to the icon, I used Canva to create a mildish icon then had it resized 16x 16, 48x48 and the OG Canva design was 128x128. I needed these 3 since they’re like the essential sizes the icon will be viewed in for the browser extension, well it took me a while, but I finished and I am currently like dealing with the popup.html document, my backbone. Taking my time, I drafted the main code on paper earlier today via phone, so I am converting it by finger on laptop, I have become a faster code typer with my glasses so at this speed and consistency I will prolly be finished really soon, but here’s the icon look, very basic tbh but to me it’s perfect. I am taking my time styling the html because my first site was WAY TOO plain. Therefore, the flaw with this one will be that the site in itself looks like it’s high…. Anyways, I hope not but my friend reviewed my code and thinks otherwise. Ah yes, here’s my icon"}, {"post_id": 39598, "ts": "2026-08-02T18:04:10Z", "hours": 0.3572, "text": "Under the oh-so calm guidance of resources and my friend dearest, I am doing devlogs. I realized I didn’t fully understand the concept of devlogs during my last project and now I do. Then again, I could not do much since the code was finished way before StarDance. Anyways, the first step of extension creation is supposedly like creating different files. Like 5 in total: manifest.json , popup.html, popup.js, content.css and content.js. Not sure if this is the standard way but SoloLearn and other sites told me so and then a friend said this is the best route for a beginner like myself, lowkey hope they’re right tho cuz mehn tbh the site visits I have had to make for this manifest.json file ain’t for the weak. (Sorry for the abbreviations, it’s a bad habit, it’s even worse on my phone tbh) oh yeah so like this is basically me after my eyes couldn’t stand the laptop ray anymore and I took a screenshot of my progress rn, and will be gathering more info for next steps on my phone so I can go get my glasses and pull an all-nighter cause I have other programs I am a part of like the Eco-Ambassadors Solutions Lab stuff,anywaysssss. Behold 🥹🥹🥹🥹🥹🥹🥹🥹"}]...
|
Title: AI Water Calc Extension by @Gagnant | Stard Title: AI Water Calc Extension by @Gagnant | Stardance
Devlogs:
Under the oh-so calm guidance of resources and my friend dearest, I am doing devlogs. I realized I didn’t fully understand the concept of devlogs during my last project and now I do. Then again, I could not do much since the code was finished way before StarDance. Anyways, the first step of extension creation is supposedly like creating different files. Like 5 in total: manifest.json , popup.html, popup.js, content.css and content.js. Not sure if this is the standard way but SoloLearn and other sites told me so and then a friend said this is the best route for a beginner like myself, lowkey hope they’re right tho cuz mehn tbh the site visits I have had to make for this manifest.json file ain’t for the weak. (Sorry for the abbreviations, it’s a bad habit, it’s even worse on my phone tbh) oh yeah so like this is basically me after my eyes couldn’t stand the laptop ray anymore and I took a screenshot of my progress rn, and will be gathering more info for next steps on my phone so I can go get my glasses and pull an all-nighter cause I have other programs I am a part of like the Eco-Ambassadors Solutions Lab stuff,anywaysssss. Behold 🥹🥹🥹🥹🥹🥹🥹🥹
Well, the manifest file wrapped up pretty quickly, so I had to move on to the icon, I used Canva to create a mildish icon then had it resized 16x 16, 48x48 and the OG Canva design was 128x128. I needed these 3 since they’re like the essential sizes the icon will be viewed in for the browser extension, well it took me a while, but I finished and I am currently like dealing with the popup.html document, my backbone. Taking my time, I drafted the main code on paper earlier today via phone, so I am converting it by finger on laptop, I have become a faster code typer with my glasses so at this speed and consistency I will prolly be finished really soon, but here’s the icon look, very basic tbh but to me it’s perfect. I am taking my time styling the html because my first site was WAY TOO plain. Therefore, the flaw with this one will be that the site in itself looks like it’s high…. Anyways, I hope not but my friend reviewed my code and thinks otherwise. Ah yes, here’s my icon
Well, I am completely done with the style section of my code. Made sure it was really personalized, added a mascot concept, bouncing text animation and implemented the Font package Fredoka One and Nunito, I am hoping it’ll turn out nicely because I feel I prolly have bugs buh I am not debugging just yet so warrever. Prop tip: Evn if you lowkey wanna bank up on hours, it’s best to separately plan code and test on a different device so when retyping elsewhere, you’re immersed in the code and efficent. (I am in no place say allat, buh yeah, it helped me a lto to pull this off)
… Finished debugging the html, I now need to move on to the script. But man, this looks mad corny…incredibly so. But I was warned and went through with it anyways, so that’s definitely on me so I shall trust the process. Let’s see how better it looks when I add the content files and the JS to all this
Finally started the script, hopefully it makes up for that sorry looking thing I showed earlier; to make this an improved version of the calculator, I added more cheeky remarks (yes, I said that). I was feeling odd so they may be weird buh I didn’t add emojis this time unlike the calculator and these remarks are…harsh? Yeah, pretty much, whereas the calculator remarks praise you for using a model other than ChatGPT. The remarks here are a lottttt.
I am kinda stuck rn, after persevering using the sound of rain in my area as motivation in the dark, I have come to a major block, I first had storage issues since I needed the right storage set up for a chrome extension so I kept deleting and reenacting over and over again. Well, I dealt with allat and now I’m here. The code looks fine to me tbh I don’t even understand.
Oh, so the reason for the issue back then was because they were not on the same line. I was very puzzled, so I visited my calculator code and then it just kinda clicked to try, and I did then the errors stopped. I am now finished with the popup.js file. Took me a while but I guess it’s kinda changing the extension a bit more. It can now perform the basic calculation aspect, still isn’t loading the dashboard values though, but I’mma handle that in the last two files: content.js and content.css. There is no particular order (I think) I am merely following the easy building block guide
Just finished the content.js file. It did take me a while cause of formatting I ended up overcrowding lines, and I am very sure I still have that issue but Imma sort it out during debugging. I see my files in this way: popup.html is my mockup structure, popup.js is the brain for that that gives it basic function, which is why from my screenshot earlier, you could see like the calculator working but other things weren’t. The purpose of my content.js is to enable REAL TIME TRACKING. It silently runs on the ai site (butchu gotta get the extension first, obviously) Which reminds me that I am yet to finish the github repository for all this neither have I added it to chrome extensions but that’s meant to be the last part since I need the folder itself complete so lemme not rush. So basically, manifest.json tells chrome this is an extension, Ive explained the popup duo, also the content.js I just finished. Of course, icons are self- explanatory. Then, content.css is just to spruce the whole thing up. Can’t wait to finish this. So, I can handle the next 2.
I’M DONE. This last bit was so difficult. The code was sorted out and the content.css didn’t take me long it was debugging the icons that became my issue even now I don’t know why the icon is refusing to load on the extension page, it’s really frustrating me and I have tried many things but it’s not complying, but I’m leaving it as is since the main thing is actually working pretty well, no bugs whatsoever. Then I had to install chrome on my PC since I actually just got this last week ( I mentioned this before in my first project). Anyways, the folder can be viewed in my GitHub repo which will prolly come soon if I ship it. I implore y’all to give it a shot. Both on edge and Chrome. Please look forward to my next two projects, I mean it.
Ships:
This is like a sort of sequel to my first project, the AI water calculator. The difference? As shown in the picture, this is a browser extension. Which means you do not have to open it live to use it but instead you have a lil version at the side of your screen, cute innit? What’s even better is it can detect whether you’re on an AI site, tho ofc only the AI I outlined in it but that’s basically the main AI that I added so…not exactly worried. My issues? THE EXTENSION UPLOADING. Likeeeeee it was the 2nd hardest aspect of it all, the hardest was the JavaScript and easiest was the manifest, or no, the content.css. To be more specific the uploading was an issue because the emojis were loading as awkward symbols and I didn’t know why. I first saved it on VS code as UTF-8 since my friend told me to, then it didn’t change a thing. They then said I should save encoding as “UTF-8 with BOM” tell me what even is the difference. I guess there was one, but it wasted my time so much so that the frustration made me not ship this even though I was more or less done. Another issue was icon designing since designs aren’t my thing but for some reason it turned out alright. Then, I had to get it resized, nearly lost my PC by visiting some rip-off resizer site that gave me some sketchy file to download, if I wasn’t cautious, this PC of mine wouldn’t have seen this moment. Though, all in all, this was fun, not nerdy fun but the thought that I could build this is motivation because my goal seems more feasible now. So ironic that what I am anticipating isn’t related to Sustainability at all, but kinda is? It’s complicated, but yes visit my repo please and use the extension so you can track your Water Use live on the go....
|
1793469193.0299697
|
1793555593.0299697
|
|
43154
|
WarioWare Game by @whitakerailey | Stardance
|
whitakerailey
|
1
|
9.33
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T01:18:23Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "it was pretty challenging debugging the first microgame because of some obscure bugs.", "repo": "https://github.com/whitakerailey-cell/GodotioWare", "demo": "https://whit-240.itch.io/godotioware"}]...
|
[{"post_id": 42893, "ts": "202 [{"post_id": 42893, "ts": "2026-08-07T21:01:14Z", "hours": 0.3333, "text": "The game got corrupted and idk how to undo it sorry :( I dont want to corrupt my files further and dunno how to pull fro github and overwrite my local files without causing problems.."}, {"post_id": 41080, "ts": "2026-08-05T01:15:14Z", "hours": 0.8419, "text": "I replaced all the assets with custom-made ones! this was a lot of work but it turned out great! I made most of my assets on the website Pixilart (you should check it out!). I think I’m ready to publish the game now. BTW: this was copied from a .txt file because for some reason it won’t let you create a new line on the website, and the “please write this yourself, humans read it!” text glowed red whenever I pasted this in. So that’s kind of weird."}, {"post_id": 40983, "ts": "2026-08-04T21:11:22Z", "hours": 0.9742, "text": "I finished the game and added an extra microgame!"}, {"post_id": 40813, "ts": "2026-08-04T15:59:37Z", "hours": 6.7978, "text": "My First Devlog Hi! I’m working on a game called GodotioWare where you complete various microgames and so far, It’s been going great!"}]...
|
Title: WarioWare Game by @whitakerailey | Stardanc Title: WarioWare Game by @whitakerailey | Stardance
Devlogs:
My First Devlog Hi! I’m working on a game called GodotioWare where you complete various microgames and so far, It’s been going great!
I finished the game and added an extra microgame!
I replaced all the assets with custom-made ones! this was a lot of work but it turned out great! I made most of my assets on the website Pixilart (you should check it out!). I think I’m ready to publish the game now. BTW: this was copied from a .txt file because for some reason it won’t let you create a new line on the website, and the “please write this yourself, humans read it!” text glowed red whenever I pasted this in. So that’s kind of weird.
The game got corrupted and idk how to undo it sorry :( I dont want to corrupt my files further and dunno how to pull fro github and overwrite my local files without causing problems..
Ships:
it was pretty challenging debugging the first microgame because of some obscure bugs....
|
1793476279.837011
|
1793562679.837011
|
|
43170
|
CosmoTab by @emlats | Stardance
|
emlats
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T10:15:57Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "this was my first experience working with nasa apod and i really enjoyed it. i added weather by location, date, clock, web search and the change space button. i also added custom styling and deployed the project with github pages.", "repo": "https://github.com/e-lataks/CosmoTab", "demo": "https://e-lataks.github.io/CosmoTab/"}]...
|
[{"post_id": 45415, "ts": "202 [{"post_id": 45415, "ts": "2026-08-11T20:57:35Z", "hours": 1.0278, "text": "update #4 added a “Change Space” button that loads a random NASA APOD and styled it to match the rest of the page"}, {"post_id": 45129, "ts": "2026-08-11T12:48:15Z", "hours": 0.8606, "text": "update #3 improved the overall styling and layout of the new tab page; added a cleaner full-screen design with larger time, date, weather and search elements, while keeping the NASA background as the main focus"}, {"post_id": 45059, "ts": "2026-08-11T10:13:05Z", "hours": 0.6903, "text": "update #2 add date, search bar, time and location-based weather; next step is to add styling and ship the project!"}, {"post_id": 43297, "ts": "2026-08-08T14:06:08Z", "hours": 1.205, "text": "#1 project setup; connected the NASA API and built the first version of my new tab page, also added basic styling and made the NASA image fill the screen; next, I want to add useful features like a clock, date, weather, and other widgets to make the page more functional;"}]...
|
Title: CosmoTab by @emlats | Stardance
Devlogs:
# Title: CosmoTab by @emlats | Stardance
Devlogs:
#1 project setup; connected the NASA API and built the first version of my new tab page, also added basic styling and made the NASA image fill the screen; next, I want to add useful features like a clock, date, weather, and other widgets to make the page more functional;
update #2 add date, search bar, time and location-based weather; next step is to add styling and ship the project!
update #3 improved the overall styling and layout of the new tab page; added a cleaner full-screen design with larger time, date, weather and search elements, while keeping the NASA background as the main focus
update #4 added a “Change Space” button that loads a random NASA APOD and styled it to match the rest of the page
Ships:
this was my first experience working with nasa apod and i really enjoyed it. i added weather by location, date, clock, web search and the change space button. i also added custom styling and deployed the project with github pages....
|
1792878491.1890216
|
1793742491.1890216
|
|
43178
|
GamEngine by @bartoszkasyna | Stardance
|
bartoszkasyna
|
1
|
244.34
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T15:49:21Z", "hours": 195.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made GPU driven game engine. It use vulkan 1.4. GTAO and VSM are still little bugged. Project will be still in development. This experimental version. More deatils are in devlogs. If engine or demo crashes on your device please send me generated logs and device specification", "repo": "https://github.com/B4rtekk1/GamEngine", "demo": "https://github.com/B4rtekk1/GamEngine/releases/tag/v0.1.0"}]...
|
[{"post_id": 79106, "ts": "202 [{"post_id": 79106, "ts": "2026-10-12T18:07:52Z", "hours": 10.8381, "text": "I was working on bug fixes and glass system. Glass is not working was I want but it havs some progress. Currently glass is highly unoptimized."}, {"post_id": 78281, "ts": "2026-10-10T08:29:57Z", "hours": 4.4117, "text": "I made custom installer for my engine. Now i willl work on optimatization"}, {"post_id": 74967, "ts": "2026-09-28T18:36:35Z", "hours": 9.7639, "text": "I mainly working on bug fixing. Now VSM and GTAO are fully stable, TAA still needs some love. I was also working on fbx model importer. On the image you can see Amazon Lumberyard Bistro which has 2.7M triangles with 140FPS. I have to work on fps stability while moving camera and make glass shader/object."}, {"post_id": 74396, "ts": "2026-09-27T09:59:55Z", "hours": 9.5208, "text": "I was trying to made my version of DDGI but it was unstable, so I made this disabled. Full DDGI would be impossible for my gpu so I used Brixelizer GI from FidelityFX SDK from AMD. It looks good and stable. Image is capyured on intel sponza which has 2.7M traingles - 13x more than original sponza so my engine scale well."}, {"post_id": 73521, "ts": "2026-09-25T09:34:28Z", "hours": 9.7292, "text": "I was working on Ray Traced Contact Shadows and DDGI. Ray traced shadows works well without droping fps that much. Currently my DDGI is bugged - its very dark. The image is taken with RTCS, DGGI disabled"}, {"post_id": 72555, "ts": "2026-09-23T06:37:29Z", "hours": 5.0792, "text": "Successfully optimized GTAO and VSM, 40FPS gain and more stable 1% low"}, {"post_id": 71260, "ts": "2026-09-20T15:17:19Z", "hours": 7.5197, "text": "I was working on game optimization, editor functionalities and standalone game building. I successfully optimized GTAO and VSM a little. GTAO still have some halo around some objects and VSM are not full stable. I added option build game in editor. I have to optimize editor a little and add some more functionalities. On the first image you can see nvidia nsight graphics profiler and on the second one standalone game build running in 160 after few seconds. This is decent score for rtx 3050."}, {"post_id": 70490, "ts": "2026-09-19T08:46:32Z", "hours": 7.4986, "text": "I was trying to fix shadows but it didint go well, so I gave up and started refactoring code for better readibiliy. On the image you can see broken verin of shadows, dont worry I went back to working ones. I fixed few smaller nearly invisible shadows bugs, so I didint waste myy time. Now I will focus on optimatization and graphics effet"}, {"post_id": 69704, "ts": "2026-09-17T16:43:10Z", "hours": 8.0603, "text": "I started migration to dynamic rendering, so rendering pipeline would be much easier for user. I also made custom title bar. Im in process of improving UI. I found two bugs - in certains camera angle shadows/AO or something doesnt work correctly. Second - some random patterns may occur while looking into sky inside sponza"}, {"post_id": 69075, "ts": "2026-09-16T10:23:21Z", "hours": 5.7283, "text": "I made water system but it look horrible and performance isnt great, so i focused next on large models importing. Big models are now devided into meshlets. On the image you can see very popular benchmark scene, its called crytek sponza. I think that 170FPS in this stage is good"}, {"post_id": 68570, "ts": "2026-09-15T10:28:57Z", "hours": 8.1017, "text": "I am working on water system. I decided to make something diffrent that normal water commonly used in every modern engine. I want to make virtual water system which is inspired by VSM. More technical details I will provide in devlog when I finish my water system. I dont have any working water image so I just upload some engine footage. PS. It might be much more optimize than normal water."}, {"post_id": 67943, "ts": "2026-09-14T08:27:35Z", "hours": 6.5411, "text": "I was working on water system and improving GTAO. While testing I found weird little horizontal strips on shadows. I thought it was my WSM bug so I was trying to fix it. After I checked all possible bugs i realized that I could downgrade GTAO by linear interpolation. I fixed it and now works fine. Water currently has implemented SSR and simple Gernster waves. On the images you can see clip levels and virutal pages shown in shadow debug mode"}, {"post_id": 67159, "ts": "2026-09-13T07:20:53Z", "hours": 7.1444, "text": "I was working on editor optimatization and bug fixes. Editor launch time jumped from ~7seconds to 1.5 seconds if editor has cache, otherwise 4.3 seconds. Launching editor no more cause vulkan errors. I also added IBL and reflects. I also bugged shadows a little."}, {"post_id": 66406, "ts": "2026-09-12T06:58:22Z", "hours": 6.8744, "text": "I was working on finishing render graph. I also optimized editor - in huge scenes it will have more stable 60FPS. I optimized game mode - 1% low are higher now"}, {"post_id": 65853, "ts": "2026-09-11T08:49:16Z", "hours": 8.0272, "text": "I was mainly working on models and textures compression. Textures are now compressed into BC7 format. I also added remdergraph so user dont have to make it manually."}, {"post_id": 65239, "ts": "2026-09-10T07:13:42Z", "hours": 7.9544, "text": "Today I was working on game optimatization and little shadows improvements. I was mainly working on game profiler as you can see in the image"}, {"post_id": 64328, "ts": "2026-09-08T16:49:40Z", "hours": 9.6778, "text": "Last 2 days I was working on editor functionalities. I added built-in powersheell terminal. I also added shadergraph which currently is doesnt want to compile properly"}, {"post_id": 63480, "ts": "2026-09-07T11:14:38Z", "hours": 6.3356, "text": "I was working on UX in editor. Then I found bug which I couldnt fix for 3 hours. Bug was caused my matrix decompose floating point"}, {"post_id": 62420, "ts": "2026-09-05T19:23:52Z", "hours": 5.1811, "text": "Today I was working on optimatization, code quality and better model imports. fps jumped from ~400 to ~430."}, {"post_id": 61744, "ts": "2026-09-04T20:02:01Z", "hours": 8.3261, "text": "I was working on game optimzatization. I made jump from around 200FPS to 400. There is still a lot more things to optimize."}, {"post_id": 59136, "ts": "2026-08-31T19:21:14Z", "hours": 5.6275, "text": "I was working on optimizing grass system. I added wind component and optimized colission with other objects. Thanks to optimatization FPS jumped from ~250 to ~320. I also modified scene saving system - binary file as main file and .terrains failes as terrain data. I added Editor layout to AppData so editor rembeber your last layout"}, {"post_id": 58356, "ts": "2026-08-30T19:03:02Z", "hours": 6.1303, "text": "Today i was adding missing tests. I also updated terrain sculping system - you can now sculp all terrain at once if multiple instances. I added some utils and deleted fps limit in play mode."}, {"post_id": 57564, "ts": "2026-08-29T19:02:32Z", "hours": 4.8972, "text": "Today I was working on better shadow implemenatation. I implemented VSM shadows - smiliar are used in UE5. I think its looks good"}, {"post_id": 56852, "ts": "2026-08-28T20:10:13Z", "hours": 5.6839, "text": "Today I was working on code quality and better terrain sculping tools. I added grass painting. I also added some nice shader to grass - A rolling ball leaves a trail in the grass. Check it out!"}, {"post_id": 56432, "ts": "2026-08-28T06:18:19Z", "hours": 5.745, "text": "I was working on terrain sculping. I was inspired by unity system generator so I wanted to make something smiliar. Now there is only one brush but i will extend possibilities of my system."}, {"post_id": 55427, "ts": "2026-08-27T07:58:03Z", "hours": 4.6125, "text": "Added gltf models importing with editor asset manager. Imported gameobject has his unique mesh collider."}, {"post_id": 54988, "ts": "2026-08-26T12:44:55Z", "hours": 2.9125, "text": "I was fixing my physics system. I fixed some bugs and created new ones. First new bug is sphere bouning up on first contact. 2 bug is cube lifting up another cube. I’m happy that I removed object shaking"}, {"post_id": 54700, "ts": "2026-08-25T19:29:26Z", "hours": 6.6933, "text": "Today I was mainly working on code quality and project refactorization. When I was testing scenes with various of configuration I found some type of physics bug - Objects are shaking for some reason, you can see this in attached video"}, {"post_id": 53759, "ts": "2026-08-24T13:13:25Z", "hours": 1.2175, "text": "last 1.25h I was adding cube physics, imo it look very satisfying."}, {"post_id": 53644, "ts": "2026-08-24T09:33:54Z", "hours": 4.9856, "text": "I was working on realistic sphere physics. I think it looks good enough. I was also working on tests. Fixed bug when ramp after start/stop was changing her location."}, {"post_id": 52942, "ts": "2026-08-23T09:58:18Z", "hours": 3.4753, "text": "I added simple gravity and colliders. I also reorganized code a little - I make high level API so user dont have to use Vulkan and SDL directly."}, {"post_id": 52275, "ts": "2026-08-22T11:51:51Z", "hours": 3.0019, "text": "Added Color picker, and updated window reloading while adding MSAA or new color. Now you can easily change color in editor"}, {"post_id": 51666, "ts": "2026-08-21T13:55:21Z", "hours": 2.4742, "text": "I made object scriptable!"}, {"post_id": 50944, "ts": "2026-08-20T12:37:57Z", "hours": 4.6658, "text": "I messed something up and m editor wasnt responding I couldt click anything. I was trying to fix it almost 5 hours. What I fixed? - vulkan and SDL were recreating while turning MSAA on and GPU was loosing context"}, {"post_id": 49752, "ts": "2026-08-18T17:53:31Z", "hours": 3.2764, "text": "Editor Update The editor has been significantly improved and now looks much better. Cross-Platform Support The editor no longer depends on the Windows API, which means it should work on both Windows and Linux . Technology Stack The original goal was to use only: C++ Vulkan SDK SDL3 GLM These are all standard components that come with a typical Vulkan development setup. After further research, Dear ImGui was also added. It is currently the only third-party dependency . Performance Both the Scene View and Game View are capped at 60 FPS . The Scene View captures the 90th frame of the particle effect so that it remains static. Next Steps Focus will now shift to expanding the editor’s functionality."}, {"post_id": 49441, "ts": "2026-08-18T09:01:45Z", "hours": 1.725, "text": "I made basic editor. Now looks like terrible but I will make it better"}, {"post_id": 49021, "ts": "2026-08-17T16:44:03Z", "hours": 1.5692, "text": "Added movement, you can move by using wasd, scroll and RMB"}, {"post_id": 48153, "ts": "2026-08-16T13:31:10Z", "hours": 4.0589, "text": "Particle System I was trying to add .glb models importer but this is very hard to do without third parties dependencies and i messed up something - Tree looks flat(second attachment). After many failed attempts I decided to start making particle system, as you can see it looks good. It is also optimized. FPS drop which you can see on video is caused by cmake compilation in background. I hope you like my particles :) All of this is made in C++ and the Vulkan SDK."}, {"post_id": 47579, "ts": "2026-08-15T15:41:56Z", "hours": 2.8206, "text": "Progress Update – Last 3 Hours Focused on two main things: Engine Optimization Font Rasterizer – added support for rendering fonts in the HUD Optimizations: Integrated VMA (Vulkan Memory Allocator) Added object instancing Fixed a buffer bug that was causing a memory leak Image: Cube made of 30×30×30 (27 000) smaller cubes + HUD with rendered font. All of this is made in C++ and the Vulkan SDK."}, {"post_id": 47338, "ts": "2026-08-15T06:56:33Z", "hours": 5.75, "text": "Engine Updates Added GPU-driven Hi-Z culling Added canvas — you can now make HUDs Optimized scenes a little Added Scene Serializer Added Asset Manager Added Color class — you no longer have to work with plain vectors Showcase On the image you can see a cube made from 30×30×30 smaller cubes, each one casting a shadow. In the bottom-left corner you can see the canvas. All of this is made in C++ and the Vulkan SDK ."}, {"post_id": 46339, "ts": "2026-08-13T14:18:08Z", "hours": 4.5861, "text": "Added Engine Math based on glm. Optimized multi object drawing. Made better project structure"}, {"post_id": 45817, "ts": "2026-08-12T15:21:12Z", "hours": 2.5969, "text": "Added shadows, game objects, engine vectors and matrixs, standaole camera, position and transforms"}, {"post_id": 40303, "ts": "2026-08-03T18:52:30Z", "hours": 3.1914, "text": "I have reorganized code. I added MSAA and rotaing cube!"}, {"post_id": 39619, "ts": "2026-08-02T18:45:09Z", "hours": 0.8017, "text": "I finished my previus project so now i can have two concurrent - this and c++/cuda custom llm. Successfully rendered triangle :) Its only about ~1000 lines of code. I used offical tutorial for start."}]...
|
Title: GamEngine by @bartoszkasyna | Stardance
De Title: GamEngine by @bartoszkasyna | Stardance
Devlogs:
I finished my previus project so now i can have two concurrent - this and c++/cuda custom llm. Successfully rendered triangle :) Its only about ~1000 lines of code. I used offical tutorial for start.
I have reorganized code. I added MSAA and rotaing cube!
Added shadows, game objects, engine vectors and matrixs, standaole camera, position and transforms
Added Engine Math based on glm. Optimized multi object drawing. Made better project structure
Engine Updates Added GPU-driven Hi-Z culling Added canvas — you can now make HUDs Optimized scenes a little Added Scene Serializer Added Asset Manager Added Color class — you no longer have to work with plain vectors Showcase On the image you can see a cube made from 30×30×30 smaller cubes, each one casting a shadow. In the bottom-left corner you can see the canvas. All of this is made in C++ and the Vulkan SDK .
Progress Update – Last 3 Hours Focused on two main things: Engine Optimization Font Rasterizer – added support for rendering fonts in the HUD Optimizations: Integrated VMA (Vulkan Memory Allocator) Added object instancing Fixed a buffer bug that was causing a memory leak Image: Cube made of 30×30×30 (27 000) smaller cubes + HUD with rendered font. All of this is made in C++ and the Vulkan SDK.
Particle System I was trying to add .glb models importer but this is very hard to do without third parties dependencies and i messed up something - Tree looks flat(second attachment). After many failed attempts I decided to start making particle system, as you can see it looks good. It is also optimized. FPS drop which you can see on video is caused by cmake compilation in background. I hope you like my particles :) All of this is made in C++ and the Vulkan SDK.
Added movement, you can move by using wasd, scroll and RMB
I made basic editor. Now looks like terrible but I will make it better
Editor Update The editor has been significantly improved and now looks much better. Cross-Platform Support The editor no longer depends on the Windows API, which means it should work on both Windows and Linux . Technology Stack The original goal was to use only: C++ Vulkan SDK SDL3 GLM These are all standard components that come with a typical Vulkan development setup. After further research, Dear ImGui was also added. It is currently the only third-party dependency . Performance Both the Scene View and Game View are capped at 60 FPS . The Scene View captures the 90th frame of the particle effect so that it remains static. Next Steps Focus will now shift to expanding the editor’s functionality.
I messed something up and m editor wasnt responding I couldt click anything. I was trying to fix it almost 5 hours. What I fixed? - vulkan and SDL were recreating while turning MSAA on and GPU was loosing context
I made object scriptable!
Added Color picker, and updated window reloading while adding MSAA or new color. Now you can easily change color in editor
I added simple gravity and colliders. I also reorganized code a little - I make high level API so user dont have to use Vulkan and SDL directly.
I was working on realistic sphere physics. I think it looks good enough. I was also working on tests. Fixed bug when ramp after start/stop was changing her location.
last 1.25h I was adding cube physics, imo it look very satisfying.
Today I was mainly working on code quality and project refactorization. When I was testing scenes with various of configuration I found some type of physics bug - Objects are shaking for some reason, you can see this in attached video
I was fixing my physics system. I fixed some bugs and created new ones. First new bug is sphere bouning up on first contact. 2 bug is cube lifting up another cube. I’m happy that I removed object shaking
Added gltf models importing with editor asset manager. Imported gameobject has his unique mesh collider.
I was working on terrain sculping. I was inspired by unity system generator so I wanted to make something smiliar. Now there is only one brush but i will extend possibilities of my system.
Today I was working on code quality and better terrain sculping tools. I added grass painting. I also added some nice shader to grass - A rolling ball leaves a trail in the grass. Check it out!
Today I was working on better shadow implemenatation. I implemented VSM shadows - smiliar are used in UE5. I think its looks good
Today i was adding missing tests. I also updated terrain sculping system - you can now sculp all terrain at once if multiple instances. I added some utils and deleted fps limit in play mode.
I was working on optimizing grass system. I added wind component and optimized colission with other objects. Thanks to optimatization FPS jumped from ~250 to ~320. I also modified scene saving system - binary file as main file and .terrains failes as terrain data. I added Editor layout to AppData so editor rembeber your last layout
I was working on game optimzatization. I made jump from around 200FPS to 400. There is still a lot more things to optimize.
Today I was working on optimatization, code quality and better model imports. fps jumped from ~400 to ~430.
I was working on UX in editor. Then I found bug which I couldnt fix for 3 hours. Bug was caused my matrix decompose floating point
Last 2 days I was working on editor functionalities. I added built-in powersheell terminal. I also added shadergraph which currently is doesnt want to compile properly
Today I was working on game optimatization and little shadows improvements. I was mainly working on game profiler as you can see in the image
I was mainly working on models and textures compression. Textures are now compressed into BC7 format. I also added remdergraph so user dont have to make it manually.
I was working on finishing render graph. I also optimized editor - in huge scenes it will have more stable 60FPS. I optimized game mode - 1% low are higher now
I was working on editor optimatization and bug fixes. Editor launch time jumped from ~7seconds to 1.5 seconds if editor has cache, otherwise 4.3 seconds. Launching editor no more cause vulkan errors. I also added IBL and reflects. I also bugged shadows a little.
I was working on water system and improving GTAO. While testing I found weird little horizontal strips on shadows. I thought it was my WSM bug so I was trying to fix it. After I checked all possible bugs i realized that I could downgrade GTAO by linear interpolation. I fixed it and now works fine. Water currently has implemented SSR and simple Gernster waves. On the images you can see clip levels and virutal pages shown in shadow debug mode
I am working on water system. I decided to make something diffrent that normal water commonly used in every modern engine. I want to make virtual water system which is inspired by VSM. More technical details I will provide in devlog when I finish my water system. I dont have any working water image so I just upload some engine footage. PS. It might be much more optimize than normal water.
I made water system but it look horrible and performance isnt great, so i focused next on large models importing. Big models are now devided into meshlets. On the image you can see very popular benchmark scene, its called crytek sponza. I think that 170FPS in this stage is good
I started migration to dynamic rendering, so rendering pipeline would be much easier for user. I also made custom title bar. Im in process of improving UI. I found two bugs - in certains camera angle shadows/AO or something doesnt work correctly. Second - some random patterns may occur while looking into sky inside sponza
I was trying to fix shadows but it didint go well, so I gave up and started refactoring code for better readibiliy. On the image you can see broken verin of shadows, dont worry I went back to working ones. I fixed few smaller nearly invisible shadows bugs, so I didint waste myy time. Now I will focus on optimatization and graphics effet
I was working on game optimization, editor functionalities and standalone game building. I successfully optimized GTAO and VSM a little. GTAO still have some halo around some objects and VSM are not full stable. I added option build game in editor. I have to optimize editor a little and add some more functionalities. On the first image you can see nvidia nsight graphics profiler and on the second one standalone game build running in 160 after few seconds. This is decent score for rtx 3050.
Successfully optimized GTAO and VSM, 40FPS gain and more stable 1% low
I was working on Ray Traced Contact Shadows and DDGI. Ray traced shadows works well without droping fps that much. Currently my DDGI is bugged - its very dark. The image is taken with RTCS, DGGI disabled
I was trying to made my version of DDGI but it was unstable, so I made this disabled. Full DDGI would be impossible for my gpu so I used Brixelizer GI from FidelityFX SDK from AMD. It looks good and stable. Image is capyured on intel sponza which has 2.7M traingles - 13x more than original sponza so my engine scale well.
I mainly working on bug fixing. Now VSM and GTAO are fully stable, TAA still needs some love. I was also working on fbx model importer. On the image you can see Amazon Lumberyard Bistro which has 2.7M triangles with 140FPS. I have to work on fps stability while moving camera and make glass shader/object.
I made custom installer for my engine. Now i willl work on optimatization
I was working on bug fixes and glass system. Glass is not working was I want but it havs some progress. Currently glass is highly unoptimized.
Ships:
I made GPU driven game engine. It use vulkan 1.4. GTAO and VSM are still little bugged. Project will be still in development. This experimental version. More deatils are in devlogs. If engine or demo crashes on your device please send me generated logs and device specification...
|
1793339460.971905
|
1793425860.971905
|
|
43179
|
Laravel Web App with Checkout by @lorenzm08 | Star Laravel Web App with Checkout by @lorenzm08 | Stardance...
|
lorenzm08
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T09:22:04Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Its a laravel web application with login feature", "repo": "https://github.com/malo280/stardance", "demo": "https://google.com/"}]...
|
[{"post_id": 39950, "ts": "202 [{"post_id": 39950, "ts": "2026-08-03T08:56:10Z", "hours": 0.3069, "text": "Just installed Laravel with Laravel Brezze for login!"}]...
|
Title: Laravel Web App with Checkout by @lorenzm08 Title: Laravel Web App with Checkout by @lorenzm08 | Stardance
Devlogs:
Just installed Laravel with Laravel Brezze for login!
Ships:
Its a laravel web application with login feature...
|
1793476348.3621328
|
1793562748.3621328
|
|
43180
|
My First WebOS! by @ahsen_oruc | Stardance
|
ahsen_oruc
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T22:03:50Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created my first WebOS with the guide by Hackatime and I created a web app called “The Prologue” which is basically a book journal app. It was challenging to make the buttons in my project work correctly and I had to spend a lot of time just trying to understand Github. But overall I’m happy with the outcome!", "repo": "https://github.com/AhsenEda/My-Very-Own-WebOS-", "demo": "https://ahseneda.github.io/My-Very-Own-WebOS-/"}]...
|
[{"post_id": 44263, "ts": "202 [{"post_id": 44263, "ts": "2026-08-09T22:01:15Z", "hours": 1.3169, "text": "HEEYYY I’M DONE WITH THIS PROJECT!!! (for now I might do some updates in the future) So I finished my app called “The Prologue”. It is a book journal and to be honest, I have done the outline of the app in HTML before, so I didn’t waste any time styling or adding features about the website etc. But I added buttons and scripts, I made a reading list page which almost worked with the same logic as the review page. I made the reviews draggable! So you can list them in order. I had to waste a lot of time to learn how to connect two html files to eachother and get the live working link, but I figured it out. My first review was for my friend’s book, whom I dedicated my web app too, as you can learn about in the about page. This project was a lot harder than I expected, but I’m happy with the outcome and I hope some people will enjoy it too!"}, {"post_id": 40784, "ts": "2026-08-04T15:17:41Z", "hours": 1.2156, "text": "I have created my logo for my app, and now it opens a new window when I click it! I hade a problem with linking the new window to the first one and it gave me an error message saying file couldn’t be accessed. That problem did take me 30 minutes to fix and I have to admit I used AI many times to figure out what I can do to solve it - turns out AI didn’t know anything more than I did but it worked at the end. Now for the final step, I’ll finish designing my app!"}, {"post_id": 40061, "ts": "2026-08-03T13:01:26Z", "hours": 1.8819, "text": "Added move and close buttons to my OS by finishing Part 3, now it is draggable! I had a LOT of issues with connecting my js and css files to my html file and my codes had a LOT of errors that continued growing as I tried to fix them, hence the 2 hours. I really need help on learning how to use Github without going crazy…"}, {"post_id": 39682, "ts": "2026-08-02T20:19:17Z", "hours": 0.2764, "text": "Done with part 2 of the guide… So you can be sure that this 2 parts took me WAY more than an hour (like MUCH more…), but I had an issue with my hackathime and somehow couldn’t connect my repo, so only 16 minutes of my work was logged until now. (someone please give me a github tutorial I am going crazy…) I had to do a LOT of research to learn how to style my OS the way I wanted it to look. However I can say that with my limited HTML knowledge it’s actually going really good! I’m going to continue developing my project tomorrow, only 3 parts left to go!"}]...
|
Title: My First WebOS! by @ahsen_oruc | Stardance
Title: My First WebOS! by @ahsen_oruc | Stardance
Devlogs:
Done with part 2 of the guide… So you can be sure that this 2 parts took me WAY more than an hour (like MUCH more…), but I had an issue with my hackathime and somehow couldn’t connect my repo, so only 16 minutes of my work was logged until now. (someone please give me a github tutorial I am going crazy…) I had to do a LOT of research to learn how to style my OS the way I wanted it to look. However I can say that with my limited HTML knowledge it’s actually going really good! I’m going to continue developing my project tomorrow, only 3 parts left to go!
Added move and close buttons to my OS by finishing Part 3, now it is draggable! I had a LOT of issues with connecting my js and css files to my html file and my codes had a LOT of errors that continued growing as I tried to fix them, hence the 2 hours. I really need help on learning how to use Github without going crazy…
I have created my logo for my app, and now it opens a new window when I click it! I hade a problem with linking the new window to the first one and it gave me an error message saying file couldn’t be accessed. That problem did take me 30 minutes to fix and I have to admit I used AI many times to figure out what I can do to solve it - turns out AI didn’t know anything more than I did but it worked at the end. Now for the final step, I’ll finish designing my app!
HEEYYY I’M DONE WITH THIS PROJECT!!! (for now I might do some updates in the future) So I finished my app called “The Prologue”. It is a book journal and to be honest, I have done the outline of the app in HTML before, so I didn’t waste any time styling or adding features about the website etc. But I added buttons and scripts, I made a reading list page which almost worked with the same logic as the review page. I made the reviews draggable! So you can list them in order. I had to waste a lot of time to learn how to connect two html files to eachother and get the live working link, but I figured it out. My first review was for my friend’s book, whom I dedicated my web app too, as you can learn about in the about page. This project was a lot harder than I expected, but I’m happy with the outcome and I hope some people will enjoy it too!
Ships:
I created my first WebOS with the guide by Hackatime and I created a web app called “The Prologue” which is basically a book journal app. It was challenging to make the buttons in my project work correctly and I had to spend a lot of time just trying to understand Github. But overall I’m happy with the outcome!...
|
1793429320.5714622
|
1793515720.5714622
|
|
43181
|
My own site! by @AraJiger | Stardance
|
AraJiger
|
1
|
0.41
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-02T20:42:14Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website that has information about me and my projects. I made it using Code on Artix Linux. I used AI mainly for CSS because even tho I am familiar with HTML, I wasn’t familiar with CSS so I used AI for that part. Deploying the page on GitHub was definitely the hardest part and I wish I was able to host it locally and use a cloudflared tunnel to publish it.", "repo": "https://github.com/arajiger500/arawebsite", "demo": "https://arajiger500.github.io/arawebsite/"}]...
|
[{"post_id": 40114, "ts": "202 [{"post_id": 40114, "ts": "2026-08-03T14:41:50Z", "hours": 0.4075, "text": "Changed the readme.md and polished the website."}, {"post_id": 39693, "ts": "2026-08-02T20:36:00Z", "hours": 0.3094, "text": "I finished the first demo of my website and published it."}]...
|
Title: My own site! by @AraJiger | Stardance
Devl Title: My own site! by @AraJiger | Stardance
Devlogs:
I finished the first demo of my website and published it.
Changed the readme.md and polished the website.
Ships:
I made a website that has information about me and my projects. I made it using Code on Artix Linux. I used AI mainly for CSS because even tho I am familiar with HTML, I wasn’t familiar with CSS so I used AI for that part. Deploying the page on GitHub was definitely the hardest part and I wish I was able to host it locally and use a cloudflared tunnel to publish it....
|
1793476354.7243156
|
1793562754.7243156
|
|
43190
|
Making a website better by @torren | Stardance
|
torren
|
1
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T02:36:38Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "what did you make? my personal portfolio site. it’s where i show what i’m working on and what i’ve shipped. homepage has my main projects, and each one clicks into its own page with the full story. 8 projects total, from startups to school projects to random experiments. what was challenging? the contact form was the biggest one. wanted people to email me straight from the site with no popup or anything, so i had to build a real backend for it plus spam protection so nobody can send more than 3 messages a day, checked both on the browser and on the server so it can’t be bypassed. also almost shipped the site with 18 known security vulnerabilities because i just never thought to check. did a full audit and fixed all of them, ended at zero. what are you proud of? that every stat on the site is real. first draft i let ai guess at my project achievements and it was embarrassing, generic buzzword soup. rewrote every single project with actual numbers instead. nothing on the site is made up. what should people know to test it? click into any project card, not just the homepage. the case studies are where the actual work is try the contact form, it really sends to my inbox if you spam it more than 3 times it’ll tell you to stop, that’s intentional not a bug", "repo": "", "demo": ""}]...
|
[{"post_id": 39709, "ts": "202 [{"post_id": 39709, "ts": "2026-08-02T20:52:00Z", "hours": 9.3958, "text": "built my own personal website from scratch. it’s where i show what i’m working on and what i’ve shipped. the homepage has all my main projects, and each one clicks into its own page with the full story, what i built, and what happened. there are 8 in total, from startups to school projects to random experiments. added a real contact form that actually sends emails to my inbox when someone fills it out, with spam protection so nobody can send more than 3 messages a day. did a full security check and patched every vulnerability, ended at zero. not trying to make it perfect, just trying to make it real."}]...
|
Title: Making a website better by @torren | Starda Title: Making a website better by @torren | Stardance
Devlogs:
built my own personal website from scratch. it’s where i show what i’m working on and what i’ve shipped. the homepage has all my main projects, and each one clicks into its own page with the full story, what i built, and what happened. there are 8 in total, from startups to school projects to random experiments. added a real contact form that actually sends emails to my inbox when someone fills it out, with spam protection so nobody can send more than 3 messages a day. did a full security check and patched every vulnerability, ended at zero. not trying to make it perfect, just trying to make it real.
Ships:
what did you make? my personal portfolio site. it’s where i show what i’m working on and what i’ve shipped. homepage has my main projects, and each one clicks into its own page with the full story. 8 projects total, from startups to school projects to random experiments. what was challenging? the contact form was the biggest one. wanted people to email me straight from the site with no popup or anything, so i had to build a real backend for it plus spam protection so nobody can send more than 3 messages a day, checked both on the browser and on the server so it can’t be bypassed. also almost shipped the site with 18 known security vulnerabilities because i just never thought to check. did a full audit and fixed all of them, ended at zero. what are you proud of? that every stat on the site is real. first draft i let ai guess at my project achievements and it was embarrassing, generic buzzword soup. rewrote every single project with actual numbers instead. nothing on the site is made up. what should people know to test it? click into any project card, not just the homepage. the case studies are where the actual work is try the contact form, it really sends to my inbox if you spam it more than 3 times it’ll tell you to stop, that’s intentional not a bug...
|
1793476361.458264
|
1793562761.458264
|
|
43233
|
Portfolio by @Shayan_ | Stardance
|
Shayan_
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T10:52:13Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Personal Portfolio site made using NextJS. Most of the time was spent on FIGMA. Tried new animations and experiments with web layout. Decided to try something new and aligned with my interests, Was always amazed with other peoples portfolio site and decided i needed one even though i have one other proper project only. Hopefully this gets me new clients even though i think it wont get any visitors anytime soon. Although if anybody here in this community needs a site, HOOK ME UP PLZ", "repo": "https://github.com/AgentTurtles/portfolio", "demo": "https://www.shayanejaz.dev/#home"}]...
|
[{"post_id": 57236, "ts": "202 [{"post_id": 57236, "ts": "2026-08-29T10:43:16Z", "hours": 6.9192, "text": "The project times were blacked out because i posted this under a different project but i accidently labeled this project in missions but i didnt know that i wouldnt get credits for this so i deleted it and wanted to post again but i couldnt so i just gave up now after weeks its letting me post this with my proper times again so here is it again. Its a pretty good portfolio site, gonna keep it like this for a while before i learn anything new to experiment"}]...
|
Title: Portfolio by @Shayan_ | Stardance
Devlogs: Title: Portfolio by @Shayan_ | Stardance
Devlogs:
The project times were blacked out because i posted this under a different project but i accidently labeled this project in missions but i didnt know that i wouldnt get credits for this so i deleted it and wanted to post again but i couldnt so i just gave up now after weeks its letting me post this with my proper times again so here is it again. Its a pretty good portfolio site, gonna keep it like this for a while before i learn anything new to experiment
Ships:
Personal Portfolio site made using NextJS. Most of the time was spent on FIGMA. Tried new animations and experiments with web layout. Decided to try something new and aligned with my interests, Was always amazed with other peoples portfolio site and decided i needed one even though i have one other proper project only. Hopefully this gets me new clients even though i think it wont get any visitors anytime soon. Although if anybody here in this community needs a site, HOOK ME UP PLZ...
|
1793494421.544569
|
1793580821.544569
|
|
43239
|
JustAWebsite by @UnknownUser_Person | Stardance
|
UnknownUser_Person
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T11:13:51Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Welcome to JustAWebsite. Its well, just a website about me and stuff! No bloat, No ai chatbot on the side. Just a simple website about me! go check it out! https://unknow-account.github.io/Justawebsite/", "repo": "https://github.com/Unknow-Account/Justawebsite", "demo": "https://unknow-account.github.io/Justawebsite/"}]...
|
[{"post_id": 40670, "ts": "202 [{"post_id": 40670, "ts": "2026-08-04T11:07:08Z", "hours": 0.4339, "text": "Added some links!! and made it more “box” which is good. Ill take it for a website"}, {"post_id": 40434, "ts": "2026-08-03T23:00:46Z", "hours": 1.0028, "text": "We got the outline and base done now its time to do some deco and make it look nice!"}, {"post_id": 40218, "ts": "2026-08-03T16:59:42Z", "hours": 0.9967, "text": "we have gotten the first chapter/section drafted. It must contiune to be worked on. Anywho first time actual html/css so. I think its somewhat okay"}]...
|
Title: JustAWebsite by @UnknownUser_Person | Stard Title: JustAWebsite by @UnknownUser_Person | Stardance
Devlogs:
we have gotten the first chapter/section drafted. It must contiune to be worked on. Anywho first time actual html/css so. I think its somewhat okay
We got the outline and base done now its time to do some deco and make it look nice!
Added some links!! and made it more “box” which is good. Ill take it for a website
Ships:
Welcome to JustAWebsite. Its well, just a website about me and stuff! No bloat, No ai chatbot on the side. Just a simple website about me! go check it out! https://unknow-account.github.io/Justawebsite/...
|
1793480226.2652905
|
1793566626.2652905
|
|
43240
|
Robotic Arm by @aabdullahjaami71 | Stardance
|
aabdullahjaami71
|
1
|
11.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-28T03:00:16Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a 4 DOF Robotic Arm that has a control panel accomapnying it. I was inspired by youtube tutorials on these types of control panels and decided to make one myself. Something that they didn’t include however, was an inverse kinematics function of some sort. I decided to add that by having IK library full of questions that you can solve and the robotic arm would them drive the servos to the angles you solved for. Also, you can control the angle of the servos with the sliders and record and save their positions. You can also export their positions with a json file and load them in too. There is also another option where if you don’t have a RoboArm, you can still access all of the buttons. Due to my servo driver short circuiting, I don’t have a video of it picking and placing things up (just take my word for it that it can lol).", "repo": "https://github.com/aabdullahjaami71-afk/Robotic-Arm", "demo": ""}]...
|
[{"post_id": 83512, "ts": "202 [{"post_id": 83512, "ts": "2026-10-28T02:46:32Z", "hours": 2.2728, "text": "FINAL DEVLOG BEFORE SHIPPING The RoboArm Project is done (kinda). The buttons on the app are all funcitonal and now you can save, clear, record, and play RoboArm positions. However, theres one thing that went horribly wrong in my project. My servo drivers fried themselves, so the ESP32 is sending commands but the drivers aren’t driving the servos. Nevertheless, I think project has a lot of room for improvement. Maybe add a cycloidal drive instead of simple servos?? (TBD)"}, {"post_id": 79217, "ts": "2026-10-13T02:07:38Z", "hours": 2.5058, "text": "ARM #06 After a broken 3d printer, fried arduino, and many more hurdles I finally got something that I can test with. This is a control panel I made with python tkinter (I had Claude guide me on how to make the GUI), and it communicates via serial to send over servo angles. It reads whenever you are connected to the esp32 and then enables the Drive Servos button and the Play Recording Button. Once they’re enabled, you can slide the sliders to whatever angle you want and then press “Drive Servos” to move them IRL. Im currently working on the recording and playing robotic arm movements part, so the record, save,load,clear buttons are currently non-functional (will work in future). Also, there is a IK library you can open which will in the future have a range of IK questions you can solve related to the robotic arm. Thats also non-functional but I’ll be working in on it the following devlogs. Mechanically, The robot arm keeps tipping over so I’ll have to redesign the case. So thats all lol. Next steps: Fix Tipping over Problem Make the recording and playing functional Learn Inverse Kinematics"}, {"post_id": 77220, "ts": "2026-10-06T04:29:54Z", "hours": 2.0472, "text": "Assembled! (kinda) Its been a very very very very long time since I’ve mad e a devlog since I took a break from this project, but heres what happened since. I decided to add another DOF to the project for the wrist rotation. Also I 3d printed and assembled the joints. The servo driver I was using actually had flathead screw terminals. Guess what, I didn’t have a flathead. So I soldered wires to the terminals instead, and hooked them up a drill battery. In doing so, I fried the bootloader on my Arduino and as a result had to switch to ESP32. On the software side, I have the ESP32 communicating with a python app via serial. The python app takes user input of the servo angles and the ESP32 executes them. Next steps are to get the remaining joints on and create a GUI. This week Im planning on implementing some form of inverse kinematics to the roboarm."}, {"post_id": 61264, "ts": "2026-09-04T03:41:11Z", "hours": 2.1222, "text": "My 3d printer broke :( Okay so Im basically done with the designing part and now I’m actually doing the hardware, problem is my 3d printer decided to stop working or something. During a print, it just stopped extruding filament. I took apart the nozzle assembly and got the jammed filament out of the nozzle and put it back on print. Turns out the nozzle wasn’t secured enough and scratched the print bed + attacked me by ejecting a 3d print straight off the bed and into my face. I’ll try to troubleshoot this asap, but for now I’m going to do the software of my robotic arm. I’m planning on making a python app where u can use sliders to move the robots joints, and also an inverse kinematics part where the app gives you a cartesian coordinate and you have to solve and input the correct servo positions to move it to that coordinate."}, {"post_id": 47301, "ts": "2026-08-15T05:23:16Z", "hours": 4.225, "text": "ARM #3 Redesigned the waist of the arm, started working on the gripper. This took way too long and I think its mostly because of me not knowing how to use onshape correctly (hey you learn along the way tho). Im going to work to get the gripper fully assembled and ready so I can put it on my arm as the end effector. After that, I can assemble it in CAD and start working on getting my parts ready IRL. I think designing it was easy, it was just very tedious. Software will definetaly be the hardest part of this project. Im aiming to make an App where you can control each servo’s motion using sliders. Additionally, you can give it a coordinate in a 3D plane and it’ll point to that exact spot. I plan to use processing to make that app."}, {"post_id": 45007, "ts": "2026-08-11T04:31:09Z", "hours": 3.4431, "text": "ARM #2 Ok i have most of the joints designed but I’m lowkey worried about the bottom one since its kinda cantilevered but Imma redesign it if it causes a problem in the future. I have the servos all mounted to each joint and the next step is to create the gripper, which I will be doing next devlog. Its coming together all good but the real question is if it can hold up in real life."}, {"post_id": 44406, "ts": "2026-08-10T03:59:18Z", "hours": 1.9294, "text": "ARM #01 Im making my first robotic arm and Im going to design all by myself. However I’m going to draw some inspo from other robotic arm designs too so it’s not entirely going to be off the dome. Currently I’ve been trying to figure out how to get my servo to fit in the base. I didn’t know it was this large (or maybe the cad model i downloaded had the wrong dimensions) I also made a custom servo horn thats basically a circular disk that can be screwed to the output shaft of the servo and then the outer M3 screws can be bolted into the base. I have no idea how Im going to be fastening each part of the arm into each other. Im pretty sure project will be needing a lot of redesigning. but trial and error is good so its whatever"}]...
|
Title: Robotic Arm by @aabdullahjaami71 | Stardanc Title: Robotic Arm by @aabdullahjaami71 | Stardance
Devlogs:
ARM #01 Im making my first robotic arm and Im going to design all by myself. However I’m going to draw some inspo from other robotic arm designs too so it’s not entirely going to be off the dome. Currently I’ve been trying to figure out how to get my servo to fit in the base. I didn’t know it was this large (or maybe the cad model i downloaded had the wrong dimensions) I also made a custom servo horn thats basically a circular disk that can be screwed to the output shaft of the servo and then the outer M3 screws can be bolted into the base. I have no idea how Im going to be fastening each part of the arm into each other. Im pretty sure project will be needing a lot of redesigning. but trial and error is good so its whatever
ARM #2 Ok i have most of the joints designed but I’m lowkey worried about the bottom one since its kinda cantilevered but Imma redesign it if it causes a problem in the future. I have the servos all mounted to each joint and the next step is to create the gripper, which I will be doing next devlog. Its coming together all good but the real question is if it can hold up in real life.
ARM #3 Redesigned the waist of the arm, started working on the gripper. This took way too long and I think its mostly because of me not knowing how to use onshape correctly (hey you learn along the way tho). Im going to work to get the gripper fully assembled and ready so I can put it on my arm as the end effector. After that, I can assemble it in CAD and start working on getting my parts ready IRL. I think designing it was easy, it was just very tedious. Software will definetaly be the hardest part of this project. Im aiming to make an App where you can control each servo’s motion using sliders. Additionally, you can give it a coordinate in a 3D plane and it’ll point to that exact spot. I plan to use processing to make that app.
My 3d printer broke :( Okay so Im basically done with the designing part and now I’m actually doing the hardware, problem is my 3d printer decided to stop working or something. During a print, it just stopped extruding filament. I took apart the nozzle assembly and got the jammed filament out of the nozzle and put it back on print. Turns out the nozzle wasn’t secured enough and scratched the print bed + attacked me by ejecting a 3d print straight off the bed and into my face. I’ll try to troubleshoot this asap, but for now I’m going to do the software of my robotic arm. I’m planning on making a python app where u can use sliders to move the robots joints, and also an inverse kinematics part where the app gives you a cartesian coordinate and you have to solve and input the correct servo positions to move it to that coordinate.
Assembled! (kinda) Its been a very very very very long time since I’ve mad e a devlog since I took a break from this project, but heres what happened since. I decided to add another DOF to the project for the wrist rotation. Also I 3d printed and assembled the joints. The servo driver I was using actually had flathead screw terminals. Guess what, I didn’t have a flathead. So I soldered wires to the terminals instead, and hooked them up a drill battery. In doing so, I fried the bootloader on my Arduino and as a result had to switch to ESP32. On the software side, I have the ESP32 communicating with a python app via serial. The python app takes user input of the servo angles and the ESP32 executes them. Next steps are to get the remaining joints on and create a GUI. This week Im planning on implementing some form of inverse kinematics to the roboarm.
ARM #06 After a broken 3d printer, fried arduino, and many more hurdles I finally got something that I can test with. This is a control panel I made with python tkinter (I had Claude guide me on how to make the GUI), and it communicates via serial to send over servo angles. It reads whenever you are connected to the esp32 and then enables the Drive Servos button and the Play Recording Button. Once they’re enabled, you can slide the sliders to whatever angle you want and then press “Drive Servos” to move them IRL. Im currently working on the recording and playing robotic arm movements part, so the record, save,load,clear buttons are currently non-functional (will work in future). Also, there is a IK library you can open which will in the future have a range of IK questions you can solve related to the robotic arm. Thats also non-functional but I’ll be working in on it the following devlogs. Mechanically, The robot arm keeps tipping over so I’ll have to redesign the case. So thats all lol. Next steps: Fix Tipping over Problem Make the recording and playing functional Learn Inverse Kinematics
FINAL DEVLOG BEFORE SHIPPING The RoboArm Project is done (kinda). The buttons on the app are all funcitonal and now you can save, clear, record, and play RoboArm positions. However, theres one thing that went horribly wrong in my project. My servo drivers fried themselves, so the ESP32 is sending commands but the drivers aren’t driving the servos. Nevertheless, I think project has a lot of room for improvement. Maybe add a cycloidal drive instead of simple servos?? (TBD)
Ships:
I created a 4 DOF Robotic Arm that has a control panel accomapnying it. I was inspired by youtube tutorials on these types of control panels and decided to make one myself. Something that they didn’t include however, was an inverse kinematics function of some sort. I decided to add that by having IK library full of questions that you can solve and the robotic arm would them drive the servos to the angles you solved for. Also, you can control the angle of the servos with the sliders and record and save their positions. You can also export their positions with a json file and load them in too. There is also another option where if you don’t have a RoboArm, you can still access all of the buttons. Due to my servo driver short circuiting, I don’t have a video of it picking and placing things up (just take my word for it that it can lol)....
|
1793415393.0173078
|
1793501793.0173078
|
|
43242
|
mtg tool by @flyingfish | Stardance
|
flyingfish
|
1
|
46.0
|
400
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T01:16:08Z", "hours": 46.0, "multiplier": 8.6, "payout": 400, "blessing": "neutral", "text": "i made a tool for making custom mtg cards in bulk i dont aurally know anything about mtg my brother just wanted me to make this", "repo": "https://github.com/dinotiger01/frfr", "demo": "https://github.com/dinotiger01/frfr/releases/tag/idk"}]...
|
[{"post_id": 71543, "ts": "202 [{"post_id": 71543, "ts": "2026-09-21T01:14:49Z", "hours": 1.4325, "text": "just some last minute repo fixes"}, {"post_id": 44887, "ts": "2026-08-10T22:42:40Z", "hours": 9.2114, "text": "it works on windows"}, {"post_id": 43638, "ts": "2026-08-09T00:43:02Z", "hours": 8.2292, "text": "i have spent the past 4 HOURS trying to fix a bug and nothing works(i am going to try to ship by the end of today if i can fix this stupid bug)"}, {"post_id": 42311, "ts": "2026-08-06T23:27:47Z", "hours": 8.6642, "text": "it can conect to an api now"}, {"post_id": 41448, "ts": "2026-08-05T17:41:26Z", "hours": 9.0586, "text": "it can export now"}, {"post_id": 39896, "ts": "2026-08-03T05:48:25Z", "hours": 4.0275, "text": "its too late in the day for this jusdt work for like 10 hrs today"}, {"post_id": 39784, "ts": "2026-08-02T23:52:07Z", "hours": 5.8589, "text": "ykyk"}]...
|
Title: mtg tool by @flyingfish | Stardance
Devlog Title: mtg tool by @flyingfish | Stardance
Devlogs:
ykyk
its too late in the day for this jusdt work for like 10 hrs today
it can export now
it can conect to an api now
i have spent the past 4 HOURS trying to fix a bug and nothing works(i am going to try to ship by the end of today if i can fix this stupid bug)
it works on windows
just some last minute repo fixes
Ships:
i made a tool for making custom mtg cards in bulk i dont aurally know anything about mtg my brother just wanted me to make this...
|
1793339483.68441
|
1793425883.68441
|
|
43255
|
TodoApp by @renanfartes | Stardance
|
renanfartes
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T19:25:34Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a todo aplication to train my Vue 3 skills while trying to make a useful project. I did put manual effort styling this but still ugly D:", "repo": "https://github.com/Renan-G-projec/TodoApp", "demo": "https://renan-g-projec.github.io/TodoApp/"}]...
|
[{"post_id": 40323, "ts": "202 [{"post_id": 40323, "ts": "2026-08-03T19:20:22Z", "hours": 2.1447, "text": "Devlog 03 This had everything to be wrong because i’ve lost internet for a long time. I basically spent the time refining the todo logic core. Now it is possible to create and delete tasks, also marking them as concluded."}, {"post_id": 39826, "ts": "2026-08-03T02:31:56Z", "hours": 0.7239, "text": "Devlog 02 I fixed some bugs, made the fetching reactive and binded it to the page and added the hero with some custom fonts!"}, {"post_id": 39803, "ts": "2026-08-03T01:16:03Z", "hours": 1.1744, "text": "Devlog 01 Added fetch image content. Ok so i tryed to add a function that is triggered when the page is loaded. It checks if is on local storage, if no or if it is but the date is different it fetches a new one to update and overwrite the old one. After that, the code is injected into a reactive property of vue so the image will render again in any change. The app will be a todo app with a custom background. I had a lot of headache as this is my first time working seriouslly with typescript. It obligated me to handle a case weather the image is not on local storage and it couldn’t be fetched… i just returned a empty object lol I’m not gonna change that but i will ask AI if this was a good practice. prob not, but lets seee"}]...
|
Title: TodoApp by @renanfartes | Stardance
Devlog Title: TodoApp by @renanfartes | Stardance
Devlogs:
Devlog 01 Added fetch image content. Ok so i tryed to add a function that is triggered when the page is loaded. It checks if is on local storage, if no or if it is but the date is different it fetches a new one to update and overwrite the old one. After that, the code is injected into a reactive property of vue so the image will render again in any change. The app will be a todo app with a custom background. I had a lot of headache as this is my first time working seriouslly with typescript. It obligated me to handle a case weather the image is not on local storage and it couldn’t be fetched… i just returned a empty object lol I’m not gonna change that but i will ask AI if this was a good practice. prob not, but lets seee
Devlog 02 I fixed some bugs, made the fetching reactive and binded it to the page and added the hero with some custom fonts!
Devlog 03 This had everything to be wrong because i’ve lost internet for a long time. I basically spent the time refining the todo logic core. Now it is possible to create and delete tasks, also marking them as concluded.
Ships:
I made a todo aplication to train my Vue 3 skills while trying to make a useful project. I did put manual effort styling this but still ugly D:...
|
1793487157.275065
|
1793573557.275065
|
|
43259
|
FREAK OS by @jonathanelazar89 | Stardance
|
jonathanelazar89
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T01:46:55Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A simple x86 32 bit OS. This OS is dedicated for gaming.", "repo": "https://github.com/JonathanElazar/FREAK-OS", "demo": "https://github.com/JonathanElazar/FREAK-OS/releases/"}]...
|
[{"post_id": 39806, "ts": "202 [{"post_id": 39806, "ts": "2026-08-03T01:24:12Z", "hours": 9.5569, "text": "Completed entire operating system. Started in assembly to write the bootloader and enter 32 bit protected mode than in C programmed the Snake and Tetris games that can be run on the OS."}]...
|
Title: FREAK OS by @jonathanelazar89 | Stardance
Title: FREAK OS by @jonathanelazar89 | Stardance
Devlogs:
Completed entire operating system. Started in assembly to write the bootloader and enter 32 bit protected mode than in C programmed the Snake and Tetris games that can be run on the OS.
Ships:
A simple x86 32 bit OS. This OS is dedicated for gaming....
|
1793487158.4652681
|
1793573558.4652681
|
|
43261
|
My Pulse Website by @AwesomeFreshDay | Stardance
|
AwesomeFreshDay
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T03:53:16Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Very simple website created to introduce me to NASA daily astronomy image site with their public APOD API. It fetches data from the API to create the title, photo/video, and description that is updated automatically daily. Learned to setup project with vite and use gitignore on our env to hide the token from pushing to github. Learned to be able to fetch data from the API to be able to display on a site.", "repo": "https://github.com/AdamT2529/Give-Your-Website-a-Pulse", "demo": "https://awesomefreshday.github.io/Give-Your-Website-a-Pulse/"}]...
|
[{"post_id": 41123, "ts": "202 [{"post_id": 41123, "ts": "2026-08-05T03:41:14Z", "hours": 0.2633, "text": "Imported a library called Animate on Scroll Library the clock/date, title, and description now have animations when loading in"}, {"post_id": 41112, "ts": "2026-08-05T03:21:27Z", "hours": 1.6603, "text": "Worked on Give Your Website a Pulse mission had to download the api from nasa and fetch data for news each day in space. Had to fetch the data where you export the title, photo/video, and description. I added a date and time feature and am on the last step to create one real feature"}]...
|
Title: My Pulse Website by @AwesomeFreshDay | Star Title: My Pulse Website by @AwesomeFreshDay | Stardance
Devlogs:
Worked on Give Your Website a Pulse mission had to download the api from nasa and fetch data for news each day in space. Had to fetch the data where you export the title, photo/video, and description. I added a date and time feature and am on the last step to create one real feature
Imported a library called Animate on Scroll Library the clock/date, title, and description now have animations when loading in
Ships:
Very simple website created to introduce me to NASA daily astronomy image site with their public APOD API. It fetches data from the API to create the title, photo/video, and description that is updated automatically daily. Learned to setup project with vite and use gitignore on our env to hide the token from pushing to github. Learned to be able to fetch data from the API to be able to display on a site....
|
1793487164.1342726
|
1793573564.1342726
|
|
43267
|
M.I.W bot by @Marinho | Stardance
|
Marinho
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T19:51:51Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A simple bot that can search on the wiki for quick info main focus is to help out robotic teams to get the needed documentation about their hardware quickly, I using Render to make the bot 24/7 /miw_wiki to search up the wiki(after the command write what you want to search) /miw_status return the current system and python version of the bot /miw_random returns a random quote", "repo": "https://github.com/danielmcneto/MIWbot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BNRLDCDA7"}]...
|
[{"post_id": 40042, "ts": "202 [{"post_id": 40042, "ts": "2026-08-03T12:14:59Z", "hours": 0.4978, "text": "Give the bot a reason to live It name is M.I.W(Microcontroller Information Wiki) its can search up the wiki by /miw_wiki and give information about anything, but the focus is on the microcontrollers like ESP32 and Arduino Now it also works 24/7 by using rend as a web server you can verify the status of the bot by /miw_status and can also get a random quote by /miw_random"}, {"post_id": 39989, "ts": "2026-08-03T10:33:57Z", "hours": 0.3719, "text": "Firsts commands are up /yupi /decide /joke I used the socket mode to bypass the need of a webhook making the coding easy and fast. Right now the bot isn’t 24/7 but working on that"}]...
|
Title: M.I.W bot by @Marinho | Stardance
Devlogs: Title: M.I.W bot by @Marinho | Stardance
Devlogs:
Firsts commands are up /yupi /decide /joke I used the socket mode to bypass the need of a webhook making the coding easy and fast. Right now the bot isn’t 24/7 but working on that
Give the bot a reason to live It name is M.I.W(Microcontroller Information Wiki) its can search up the wiki by /miw_wiki and give information about anything, but the focus is on the microcontrollers like ESP32 and Arduino Now it also works 24/7 by using rend as a web server you can verify the status of the bot by /miw_status and can also get a random quote by /miw_random
Ships:
A simple bot that can search on the wiki for quick info main focus is to help out robotic teams to get the needed documentation about their hardware quickly, I using Render to make the bot 24/7 /miw_wiki to search up the wiki(after the command write what you want to search) /miw_status return the current system and python version of the bot /miw_random returns a random quote...
|
1793487168.0063272
|
1793573568.0063272
|
|
43289
|
Spam Email Classifier by @crazydave | Stardance
|
|
1
|
1.0
|
7
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T04:07:45Z", "hours": 1.0, "multiplier": 4.91, "payout": 7, "blessing": "neutral", "text": "I made a single-layer perceptron from scratch, which is a machine learning algorithm. I decided to make this as I am currently learning about perceptrons in my computer science class and thought it would be cool to try and implement one in python. I made a version that can seperate data-points above and below the line x+y=10 and then a more advanced version which can detect if emails are spam or not spam. It was challenging to convert the emails.csv into inputs that the perceptron could handle, but after some research I found that TF-IDF is a good way of converting the emails into vectorised inputs that the perceptron can handle, and then made it output -1 for not spam or +1 for spam. I am proud of how accurate the perceptron is when using such a simple machine learning model, and it is also really cool to watch the simple higher-lower perceptron seperate the points in 2D with a line in real-time. To test it, follow the setup instructions in the README. I hope you enjoy!", "repo": "https://github.com/rufus-gh/perceptron", "demo": "https://github.com/rufus-gh/perceptron/releases"}]...
|
[{"post_id": 39864, "ts": "202 [{"post_id": 39864, "ts": "2026-08-03T04:02:06Z", "hours": 1.4433, "text": "I made a perceptron which can detect spam emails, as we learnt about them in my computer science class, so I decided to try and implement one from scratch. I first made a basic perceptron that can seperate points that lie above or below the line x+y=10 line, and then applied the same algorithm to classify emails as either spam or not spam. It ended up working really well and gets 99.21% accuracy for spam detection."}]...
|
Title: Spam Email Classifier by @crazydave | Stard Title: Spam Email Classifier by @crazydave | Stardance
Devlogs:
I made a perceptron which can detect spam emails, as we learnt about them in my computer science class, so I decided to try and implement one from scratch. I first made a basic perceptron that can seperate points that lie above or below the line x+y=10 line, and then applied the same algorithm to classify emails as either spam or not spam. It ended up working really well and gets 99.21% accuracy for spam detection.
Ships:
I made a single-layer perceptron from scratch, which is a machine learning algorithm. I decided to make this as I am currently learning about perceptrons in my computer science class and thought it would be cool to try and implement one in python. I made a version that can seperate data-points above and below the line x+y=10 and then a more advanced version which can detect if emails are spam or not spam. It was challenging to convert the emails.csv into inputs that the perceptron could handle, but after some research I found that TF-IDF is a good way of converting the emails into vectorised inputs that the perceptron can handle, and then made it output -1 for not spam or +1 for spam. I am proud of how accurate the perceptron is when using such a simple machine learning model, and it is also really cool to watch the simple higher-lower perceptron seperate the points in 2D with a line in real-time. To test it, follow the setup instructions in the README. I hope you enjoy!...
|
1793357379.2716153
|
1793443779.2716153
|
|
43305
|
WTime by @pratham | Stardance
|
pratham
|
1
|
2.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T18:16:36Z", "hours": 2.0, "multiplier": 1.7, "payout": 3, "blessing": "neutral", "text": "GNU Time, but in rust: Simple utility that allows you to measure the time a process took to execute, written in rust. The hard part was to like ensure the command alongside the subcommands were processed. The easiest part was the timing. The code was literally on the documentation of std::time so basically copy pasted that.", "repo": "https://github.com/PrathamGhaywat/wtime", "demo": "https://github.com/PrathamGhaywat/wtime/releases/tag/v0.1"}]...
|
[{"post_id": 40275, "ts": "202 [{"post_id": 40275, "ts": "2026-08-03T18:14:28Z", "hours": 0.7769, "text": "Finally finished the most minimal implementation of it. It now outputs the time with colors and the resulting binary in windows is ONLY 200 KILOBYTES?! Thx to a bit of release optimizations it prob is even smaller on unix systems!"}, {"post_id": 39908, "ts": "2026-08-03T06:26:27Z", "hours": 0.4594, "text": "The program can now run the commands! I still have to allow the user to like select options (for example, blank was automatically selected, whereas you have multiple options on how to start a project in bun)"}, {"post_id": 39898, "ts": "2026-08-03T05:52:54Z", "hours": 0.3267, "text": "I figured out the std library “Command” which allows me to run commands with subcommands (like flags and so on) The unused std:env is going to help me parse the inputed commands, so the goal is to get something like: wtime npm run build and this should output “stuff” (yet to figure out what)"}]...
|
Title: WTime by @pratham | Stardance
Devlogs:
I f Title: WTime by @pratham | Stardance
Devlogs:
I figured out the std library “Command” which allows me to run commands with subcommands (like flags and so on) The unused std:env is going to help me parse the inputed commands, so the goal is to get something like: wtime npm run build and this should output “stuff” (yet to figure out what)
The program can now run the commands! I still have to allow the user to like select options (for example, blank was automatically selected, whereas you have multiple options on how to start a project in bun)
Finally finished the most minimal implementation of it. It now outputs the time with colors and the resulting binary in windows is ONLY 200 KILOBYTES?! Thx to a bit of release optimizations it prob is even smaller on unix systems!
Ships:
GNU Time, but in rust: Simple utility that allows you to measure the time a process took to execute, written in rust. The hard part was to like ensure the command alongside the subcommands were processed. The easiest part was the timing. The code was literally on the documentation of std::time so basically copy pasted that....
|
1793494312.9429076
|
1793580712.9429076
|
|
43315
|
tring-bro-on-stardance by @himanshu-singh7 | Stard tring-bro-on-stardance by @himanshu-singh7 | Stardance...
|
himanshu-singh7
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T09:24:56Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i make an bot which give cat fact , jokes and weather using open-meteo", "repo": "https://github.com/rahul-gound/tring-bro-on-stardance", "demo": "https://hackclub.enterprise.slack.com/archives/C0BMK4NAVGA"}]...
|
[{"post_id": 39954, "ts": "202 [{"post_id": 39954, "ts": "2026-08-03T09:10:06Z", "hours": 8.0283, "text": "i added command like :/tring-bro-on-stardance-ping - Check bot latency, /tring-bro-on-stardance-catfact - Get a cat fact, /tring-bro-on-stardance-joke, /tring-bro-on-stardance-help, /tring-bro-on-stardance-weather and catfact tell an cat face and joke gives a jok and weathwer tell weather but /tring-bro-on-stardance-weather city"}]...
|
Title: tring-bro-on-stardance by @himanshu-singh7 Title: tring-bro-on-stardance by @himanshu-singh7 | Stardance
Devlogs:
i added command like :/tring-bro-on-stardance-ping - Check bot latency, /tring-bro-on-stardance-catfact - Get a cat fact, /tring-bro-on-stardance-joke, /tring-bro-on-stardance-help, /tring-bro-on-stardance-weather and catfact tell an cat face and joke gives a jok and weathwer tell weather but /tring-bro-on-stardance-weather city
Ships:
i make an bot which give cat fact , jokes and weather using open-meteo...
|
1793494316.1358562
|
1793580716.1358562
|
|
43324
|
Boeing 737 w/ stand by @citunek22 | Stardance
|
citunek22
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T07:39:42Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a boeing 737 with a stand. It was quite easy and hard like the begining was the hardest like getting to know all the tools and lacking motivation but after that i gained motivation and wanted to finish this. I´m proud of making this tho i don´t even have a printer and i hope that yall will like it and that it works. Like i said i don´t have a printer so i don´t know if it prints well and i didn´t make this in a day.", "repo": "https://github.com/ItsHonza48/boeing-737-tinkercad", "demo": ""}]...
|
[{"post_id": 39920, "ts": "202 [{"post_id": 39920, "ts": "2026-08-03T07:31:40Z", "hours": 5.3578, "text": "I know it looks bad but it was my first tinkercad project or my first 3d modeling project so it isn´t perfect but i hope you like it and maybe priint it and if there is a problem you can write a review on my printables."}]...
|
Title: Boeing 737 w/ stand by @citunek22 | Stardan Title: Boeing 737 w/ stand by @citunek22 | Stardance
Devlogs:
I know it looks bad but it was my first tinkercad project or my first 3d modeling project so it isn´t perfect but i hope you like it and maybe priint it and if there is a problem you can write a review on my printables.
Ships:
I made a boeing 737 with a stand. It was quite easy and hard like the begining was the hardest like getting to know all the tools and lacking motivation but after that i gained motivation and wanted to finish this. I´m proud of making this tho i don´t even have a printer and i hope that yall will like it and that it works. Like i said i don´t have a printer so i don´t know if it prints well and i didn´t make this in a day....
|
1793494321.2972567
|
1793580721.2972567
|