|
66811
|
My own site! by @PhantomStorm_ | Stardance
|
PhantomStorm_
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @PhantomStorm_ | Stardance
|
1793724583.4690628
|
1794329383.4690628
|
|
66810
|
BLARE by @VirajSingh15 | Stardance
|
VirajSingh15
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BLARE by @VirajSingh15 | Stardance
|
1793724582.5667598
|
1794329382.5667598
|
|
610
|
MARGE - Modular Advanced Raytracing & Graphics MARGE - Modular Advanced Raytracing & Graphics Engine by @markmris | Stardance...
|
markmris
|
2
|
31.0
|
482
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T22:21:26Z", "hours": 9.0, "multiplier": 16.75, "payout": 159, "blessing": "neutral", "text": "I improved and optimized my raytracing graphics engine. Images now render ~2x faster under default settings. Textures have been added, along with motion blur. I ran into issues like my first stack overflow error and nullpointers. To try the project, follow the instructions at the bottom of the README for the best experience.", "repo": "https://github.com/markmris/marge", "demo": "https://github.com/markmris/marge/releases/tag/v0.16.2"}, {"ship_num": 2, "ts": "2026-08-05T22:53:58Z", "hours": 22.0, "multiplier": 14.64, "payout": 323, "blessing": "neutral", "text": "I built a raytracing graphics engine in raw C++. The engine uses mathematical concepts involving vectors, quadratics, as well as scientific concepts like reflection and refraction. This was my first long-term project I actually committed to. I learned a lot about C++ and math in general. To try the project, follow the instructions at the bottom of the README.", "repo": "https://github.com/markmris/marge", "demo": "https://github.com/markmris/marge/releases/tag/v0.16.2"}]...
|
[{"post_id": 53380, "ts": "202 [{"post_id": 53380, "ts": "2026-08-23T22:12:27Z", "hours": 4.5031, "text": "These final hours have been excruciating. I encountered my first ever stack overflow (cannon event), I had trouble with null pointers, and somehow a function I made 2 weeks ago was broken but never showed its way through until today. But finally, I added textures! The 2 textures added are a checkerboard texture (as seen in the image below), and now you can upload any jpeg, png, or tga to the textures folder and they will be randomly applied to spheres. I added an earth texture and basketball texture. The image library was not me, it’s from an open source image library called stb_image. I would not have been able to make it myself. Also, I reorganized the project file structure because when I started my files were very non-conventional. Believe it or not, I got the file advice from The Cherno on YouTube. This is probably my final devlog for the summer. I learned a lot making this project and will continue it for the next few months to hopefully get it to where I want it to be."}, {"post_id": 49940, "ts": "2026-08-18T22:19:25Z", "hours": 3.9922, "text": "2 things done today: Fixed the black sphere bug. I realized the issue was generating the colors by using normal vectors, which return values between -1 and 1. Since negative values are clamped to 0 by the color module, I rendered black spheres. I fixed this by making a designated randomColor() function. I added Bounding Volume Hierarchies, or BVH for short. BVH creates a massive performance increase, just over doubling render speed (from 6:30 to 3:04). This feature was by far the hardest to implement and understand, but basically it chunks up objects in the world to be in groups of boxes, and instead of looping through each object in the scene for collision checks, we loop through bounding boxes (groups) first, eliminating the objects that were missed. There was lots of friction creating this feature, especially after implementing a new loop that mathematically, should make the renderer faster, but in reality it became ~2.6x slower? I scrapped that for now and I’ll revisit it later."}, {"post_id": 46630, "ts": "2026-08-14T00:57:35Z", "hours": 0.9831, "text": "Today I made motion blur and moving objects. The camera cannot move yet, but objects can now be given a current and moveto position. The lower the fps is and/or the further the points are from each other, the blurrier the object will be, since as of now, each object is “moving” at a constant speed that will get them from point A to B in 1 time unit. (Maybe I should call it ticks or something) Feel free to leave a fun name idea in the comments. One weird issue I ran into was the 2nd book skipped a few steps and used methods and variables that were never covered, so I had to ask AI for help. There’s also a bug that makes the sphere look black and the motion blur is the proper color so that will have to be fixed soon."}, {"post_id": 40898, "ts": "2026-08-04T18:29:28Z", "hours": 5.435, "text": "I made a lots of progress and learned a bunch in the past few hours! I added 2 big features: Custom Command Line Parsing and Random Scene Generation. I also ran into a lot of friction doing these. I first had to learn how to connect an enum to strings, which was pretty easy, but the hard part was making sure commands were secure and wouldn’t break under one mistype. The random scene generation was pretty hard too. The big part was calculating the center point every object revolved around and positioning them nicely. This made the renderer quite a bit slower, but it was worth it."}, {"post_id": 40148, "ts": "2026-08-03T15:32:59Z", "hours": 0.5725, "text": "Not much done this log. I just added defocus blur. This works by conceptually simulating a real camera with a virtual lens that grows and shrinks along with a focus distance. At the focus distance, objects are fully in focus. The further objects get from that distance, they decrease in focus linearly based on the size of the lens as well. Once again not much friction."}, {"post_id": 39767, "ts": "2026-08-02T23:06:59Z", "hours": 1.4736, "text": "Finished something huge today, a positionable/modifiable camera! Each image can now have a unique position for the camera, as well as a rotated camera. I also added FOV which makes the camera zoom in or out. (Default set to 90). One big thing I had to deal with was the cross products. The cross product of two vectors returns one vector perpendicular to both original vectors, which was required to calculate the direction the camera was facing. The order of calculation matters a lot because incorrect cross products flipped the image upside down, inversed rotation and position, etc."}, {"post_id": 39688, "ts": "2026-08-02T20:31:11Z", "hours": 0.3392, "text": "Didn’t do much this log. I just added some code to handle edge cases where light intersects glass or any dielectric at a 90 degree angle that screws up the pixel slightly. Not really much friction at all today. On the sphere t the left, I made it look hollow by placing another sphere inside the bigger one which makes light bend multiple times causing the hollow effect."}, {"post_id": 39216, "ts": "2026-08-02T01:19:31Z", "hours": 0.9275, "text": "Today I created another material, dielectrics. A dielectric is any material that bends or refracts light, for example, glass, water, diamonds, etc. Think of when you dip a pencil in water and it looks bent, that’s refraction. The sphere on the left is now a solid glass ball where light refracts in a way that flips it 180 degrees. I ran into an issue where I used multiplication instead of addition in the refraction code which made the refraction look warped and messy. (Forgot to screenshot it)"}, {"post_id": 37936, "ts": "2026-07-30T23:24:59Z", "hours": 0.5417, "text": "Today I made the fuzzy metal material. Metal surfaces now take a new fuzz parameter which modifies the reflectivity and makes it look like a shiny diffuse material the more fuzzy it is. In the screenshot I posted, the sphere on the left is non-fuzzy metal, the middle one is diffuse, and the right one is fuzzy metal."}, {"post_id": 35313, "ts": "2026-07-26T17:09:41Z", "hours": 1.4764, "text": "My renderer is starting to get pretty advanced now! I just finished making the metal/reflective material, as you can see in the photo. I also added gamma correction, which is just square rooting the color output so that the color accuracy and intensity is proper. One issue I ran into was figuring out a weird compiler quirk with override methods, how I wasn’t meant to use the override keyword when defining a function in the .cpp module, but you are supposed to use it only in the declaration in the .h header file."}, {"post_id": 34794, "ts": "2026-07-25T19:48:08Z", "hours": 1.2036, "text": "I fixed one big thing today! Shadow Acne. (Yes that’s what it’s called). This is an issue where a ray starts too close to its origin and accidentally hits itself, causing black freckles all over the image. (As seen in the first photo below). It seemed the only way to fix it was to increase pixel sampling, which is shooting multiple rays at each pixel that are all slightly offset and calculating the average of the colors hit, as seen in the second photo. The downside to this is that it makes the renderer MUCH slower. Image generation jumped from a few seconds to ~2 minutes. I also spent a decent amount of time getting a better understanding of the pipeline and rendering process. Here’s a rundown of how it works if you’re interested: Start by initializing the camera, image and viewport size, and defining the position of every object in the world. Loop through each pixel in the image. For each pixel looped through, loop through every object in the scene. Run each object’s respective “hit” function to calculate whether or not it was hit. If the object was hit, run the sampling process as explained above. If not, color the sky gradient. Obviously there’s much more to it but that’s too much to explain."}, {"post_id": 33207, "ts": "2026-07-22T22:10:48Z", "hours": 0.6583, "text": "Today I did some new vector math to generate diffuse materials. The idea is that a diffuse is a surface that is the same color all around it, and not this pixely, but it’s a work in progress. Not much friction today overall."}, {"post_id": 31415, "ts": "2026-07-19T19:21:13Z", "hours": 2.9711, "text": "Today I worked on antialiasing, the process of blending edge pixels with the background to give the image smoother surfaces and to look nicer. Unfortunately, this process makes the renderer a lot slower, meaning it will have to be heavily optimized over time. I also ran into a big issue where the rendered image was black. I found out that I messed up some arithmetic and also had a divide by zero error that didn’t show up."}, {"post_id": 22496, "ts": "2026-07-05T00:14:22Z", "hours": 3.9025, "text": "I finally have a decent graphics engine! Over the past while, I’ve been cleaning up and reorganizing the entire codebase so it’s much easier to work with and expand. Instead of having everything jumbled together, I’ve split the project into reusable modules and created a central header that keeps the code organized. The biggest improvement is how objects are handled. Before, adding another sphere or object required changing the rendering code itself. Now, I can simply add a new object to a list, and the engine automatically includes it the next time it renders the image. This makes building more complex worlds much faster and sets up a solid foundation for future features and shapes. This’ll hopefully someday turn into a game engine or open source graphics engine that will actually generate frames, so it can be used to make video games from scratch! Here’s the GitHub if you’re interested in following along: https://github.com/markmris/marge"}, {"post_id": 15722, "ts": "2026-06-25T16:11:09Z", "hours": 1.2989, "text": "Finally got a chance after exams to continue working on my graphics engine. I spent some time watching videos on vector math to better understand them and how they differ from regular scalars, coordinates, and lines. With my new knowledge I got to work on creating a surface normal, and now my sphere has a VERY ugly blend of colors that give it some visual depth. The concept of surface normals still doesn’t make that much sense to me, so I’m gonna spend more time watching videos and understanding them"}, {"post_id": 575, "ts": "2026-06-02T02:11:11Z", "hours": 0.4825, "text": "I’ve started rendering actual shapes now. The first shape I rendered is a sphere, though it looks like a circle (kind of like the Japanese flag) since it doesn’t have any depth yet. I also discovered and fixed a major bug making the viewport/window a square and the image a rectangle which distorted shapes and gradients."}, {"post_id": 149, "ts": "2026-05-31T23:26:33Z", "hours": 0.7561, "text": "I implemented raycasts to be used instead of manual color drawings and made a sky gradient. Ran into a bug with the vector math and moved around a few things to fix it, now it works, looks better, and renders faster!"}]...
|
Title: MARGE - Modular Advanced Raytracing & G Title: MARGE - Modular Advanced Raytracing & Graphics Engine by @markmris | Stardance
Devlogs:
I implemented raycasts to be used instead of manual color drawings and made a sky gradient. Ran into a bug with the vector math and moved around a few things to fix it, now it works, looks better, and renders faster!
I’ve started rendering actual shapes now. The first shape I rendered is a sphere, though it looks like a circle (kind of like the Japanese flag) since it doesn’t have any depth yet. I also discovered and fixed a major bug making the viewport/window a square and the image a rectangle which distorted shapes and gradients.
Finally got a chance after exams to continue working on my graphics engine. I spent some time watching videos on vector math to better understand them and how they differ from regular scalars, coordinates, and lines. With my new knowledge I got to work on creating a surface normal, and now my sphere has a VERY ugly blend of colors that give it some visual depth. The concept of surface normals still doesn’t make that much sense to me, so I’m gonna spend more time watching videos and understanding them
I finally have a decent graphics engine! Over the past while, I’ve been cleaning up and reorganizing the entire codebase so it’s much easier to work with and expand. Instead of having everything jumbled together, I’ve split the project into reusable modules and created a central header that keeps the code organized. The biggest improvement is how objects are handled. Before, adding another sphere or object required changing the rendering code itself. Now, I can simply add a new object to a list, and the engine automatically includes it the next time it renders the image. This makes building more complex worlds much faster and sets up a solid foundation for future features and shapes. This’ll hopefully someday turn into a game engine or open source graphics engine that will actually generate frames, so it can be used to make video games from scratch! Here’s the GitHub if you’re interested in following along: https://github.com/markmris/marge
Today I worked on antialiasing, the process of blending edge pixels with the background to give the image smoother surfaces and to look nicer. Unfortunately, this process makes the renderer a lot slower, meaning it will have to be heavily optimized over time. I also ran into a big issue where the rendered image was black. I found out that I messed up some arithmetic and also had a divide by zero error that didn’t show up.
Today I did some new vector math to generate diffuse materials. The idea is that a diffuse is a surface that is the same color all around it, and not this pixely, but it’s a work in progress. Not much friction today overall.
I fixed one big thing today! Shadow Acne. (Yes that’s what it’s called). This is an issue where a ray starts too close to its origin and accidentally hits itself, causing black freckles all over the image. (As seen in the first photo below). It seemed the only way to fix it was to increase pixel sampling, which is shooting multiple rays at each pixel that are all slightly offset and calculating the average of the colors hit, as seen in the second photo. The downside to this is that it makes the renderer MUCH slower. Image generation jumped from a few seconds to ~2 minutes. I also spent a decent amount of time getting a better understanding of the pipeline and rendering process. Here’s a rundown of how it works if you’re interested: Start by initializing the camera, image and viewport size, and defining the position of every object in the world. Loop through each pixel in the image. For each pixel looped through, loop through every object in the scene. Run each object’s respective “hit” function to calculate whether or not it was hit. If the object was hit, run the sampling process as explained above. If not, color the sky gradient. Obviously there’s much more to it but that’s too much to explain.
My renderer is starting to get pretty advanced now! I just finished making the metal/reflective material, as you can see in the photo. I also added gamma correction, which is just square rooting the color output so that the color accuracy and intensity is proper. One issue I ran into was figuring out a weird compiler quirk with override methods, how I wasn’t meant to use the override keyword when defining a function in the .cpp module, but you are supposed to use it only in the declaration in the .h header file.
Today I made the fuzzy metal material. Metal surfaces now take a new fuzz parameter which modifies the reflectivity and makes it look like a shiny diffuse material the more fuzzy it is. In the screenshot I posted, the sphere on the left is non-fuzzy metal, the middle one is diffuse, and the right one is fuzzy metal.
Today I created another material, dielectrics. A dielectric is any material that bends or refracts light, for example, glass, water, diamonds, etc. Think of when you dip a pencil in water and it looks bent, that’s refraction. The sphere on the left is now a solid glass ball where light refracts in a way that flips it 180 degrees. I ran into an issue where I used multiplication instead of addition in the refraction code which made the refraction look warped and messy. (Forgot to screenshot it)
Didn’t do much this log. I just added some code to handle edge cases where light intersects glass or any dielectric at a 90 degree angle that screws up the pixel slightly. Not really much friction at all today. On the sphere t the left, I made it look hollow by placing another sphere inside the bigger one which makes light bend multiple times causing the hollow effect.
Finished something huge today, a positionable/modifiable camera! Each image can now have a unique position for the camera, as well as a rotated camera. I also added FOV which makes the camera zoom in or out. (Default set to 90). One big thing I had to deal with was the cross products. The cross product of two vectors returns one vector perpendicular to both original vectors, which was required to calculate the direction the camera was facing. The order of calculation matters a lot because incorrect cross products flipped the image upside down, inversed rotation and position, etc.
Not much done this log. I just added defocus blur. This works by conceptually simulating a real camera with a virtual lens that grows and shrinks along with a focus distance. At the focus distance, objects are fully in focus. The further objects get from that distance, they decrease in focus linearly based on the size of the lens as well. Once again not much friction.
I made a lots of progress and learned a bunch in the past few hours! I added 2 big features: Custom Command Line Parsing and Random Scene Generation. I also ran into a lot of friction doing these. I first had to learn how to connect an enum to strings, which was pretty easy, but the hard part was making sure commands were secure and wouldn’t break under one mistype. The random scene generation was pretty hard too. The big part was calculating the center point every object revolved around and positioning them nicely. This made the renderer quite a bit slower, but it was worth it.
Today I made motion blur and moving objects. The camera cannot move yet, but objects can now be given a current and moveto position. The lower the fps is and/or the further the points are from each other, the blurrier the object will be, since as of now, each object is “moving” at a constant speed that will get them from point A to B in 1 time unit. (Maybe I should call it ticks or something) Feel free to leave a fun name idea in the comments. One weird issue I ran into was the 2nd book skipped a few steps and used methods and variables that were never covered, so I had to ask AI for help. There’s also a bug that makes the sphere look black and the motion blur is the proper color so that will have to be fixed soon.
2 things done today: Fixed the black sphere bug. I realized the issue was generating the colors by using normal vectors, which return values between -1 and 1. Since negative values are clamped to 0 by the color module, I rendered black spheres. I fixed this by making a designated randomColor() function. I added Bounding Volume Hierarchies, or BVH for short. BVH creates a massive performance increase, just over doubling render speed (from 6:30 to 3:04). This feature was by far the hardest to implement and understand, but basically it chunks up objects in the world to be in groups of boxes, and instead of looping through each object in the scene for collision checks, we loop through bounding boxes (groups) first, eliminating the objects that were missed. There was lots of friction creating this feature, especially after implementing a new loop that mathematically, should make the renderer faster, but in reality it became ~2.6x slower? I scrapped that for now and I’ll revisit it later.
These final hours have been excruciating. I encountered my first ever stack overflow (cannon event), I had trouble with null pointers, and somehow a function I made 2 weeks ago was broken but never showed its way through until today. But finally, I added textures! The 2 textures added are a checkerboard texture (as seen in the image below), and now you can upload any jpeg, png, or tga to the textures folder and they will be randomly applied to spheres. I added an earth texture and basketball texture. The image library was not me, it’s from an open source image library called stb_image. I would not have been able to make it myself. Also, I reorganized the project file structure because when I started my files were very non-conventional. Believe it or not, I got the file advice from The Cherno on YouTube. This is probably my final devlog for the summer. I learned a lot making this project and will continue it for the next few months to hopefully get it to where I want it to be.
Ships:
I built a raytracing graphics engine in raw C++. The engine uses mathematical concepts involving vectors, quadratics, as well as scientific concepts like reflection and refraction. This was my first long-term project I actually committed to. I learned a lot about C++ and math in general. To try the project, follow the instructions at the bottom of the README.
I improved and optimized my raytracing graphics engine. Images now render ~2x faster under default settings. Textures have been added, along with motion blur. I ran into issues like my first stack overflow error and nullpointers. To try the project, follow the instructions at the bottom of the README for the best experience....
|
1793724581.2907228
|
1793810981.2907228
|
|
66809
|
BLARE by @zeva | Stardance
|
zeva
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BLARE by @zeva | Stardance
|
1793724580.3900073
|
1794329380.3900073
|
|
59139
|
short-remover by @spectra | Stardance
|
spectra
|
1
|
3.0
|
24
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T21:12:36Z", "hours": 3.0, "multiplier": 7.5, "payout": 24, "blessing": "neutral", "text": "Hi! I made a browser extension that removes Shorts from you Youtube feed. This was a pretty easy project, however I think there’s a real demand for this kind of tool. I made this extension so I can’t be distracted and loose countless hours scrolling for nothing (instead of working on some stardance projects for example :D). The hardest part of this project was understanding how the manifest works, and making it compatible for both chromium-based browsers and Firefox.", "repo": "https://github.com/NaFo44/short-remover", "demo": "https://github.com/NaFo44/short-remover/releases/tag/v1.0.0"}]...
|
[{"post_id": 63862, "ts": "202 [{"post_id": 63862, "ts": "2026-09-07T21:04:04Z", "hours": 0.9675, "text": "Devlog #4: I added the ability to directly remove the “Shorts” button on Youtube’s sidebar, so you no longer feel the urge to scroll instead of being productive!"}, {"post_id": 63809, "ts": "2026-09-07T19:32:49Z", "hours": 1.0094, "text": "Devlog #3: I updated the UI of the Youtube Shorts remover extension! I kept it simple so everyone can easily use it. I might add another option to also hide the “Shorts” button on the sidebar."}, {"post_id": 63462, "ts": "2026-09-07T10:21:01Z", "hours": 0.4053, "text": "Devlog #2: I fixed the compatibility with firefox! If you want to try the short remover extention on Firefox (not the final version, but it’s working):"}, {"post_id": 63197, "ts": "2026-09-06T21:20:44Z", "hours": 0.7589, "text": "Devlog #1: I just started working on a simple browser extension to remove youtube shorts from your feed! It already works, so you can try it."}]...
|
Title: short-remover by @spectra | Stardance
Devl Title: short-remover by @spectra | Stardance
Devlogs:
Devlog #1: I just started working on a simple browser extension to remove youtube shorts from your feed! It already works, so you can try it.
Devlog #2: I fixed the compatibility with firefox! If you want to try the short remover extention on Firefox (not the final version, but it’s working):
Devlog #3: I updated the UI of the Youtube Shorts remover extension! I kept it simple so everyone can easily use it. I might add another option to also hide the “Shorts” button on the sidebar.
Devlog #4: I added the ability to directly remove the “Shorts” button on Youtube’s sidebar, so you no longer feel the urge to scroll instead of being productive!
Ships:
Hi! I made a browser extension that removes Shorts from you Youtube feed. This was a pretty easy project, however I think there’s a real demand for this kind of tool. I made this extension so I can’t be distracted and loose countless hours scrolling for nothing (instead of working on some stardance projects for example :D). The hardest part of this project was understanding how the manifest works, and making it compatible for both chromium-based browsers and Firefox....
|
1793724579.1621215
|
1793810979.1621215
|
|
66808
|
My awesome macropad! by @Gyan | Stardance
|
Gyan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Gyan | Stardance
|
1793724578.276589
|
1794329378.276589
|
|
59138
|
TrefleSite by @reaue | Stardance
|
reaue
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T14:49:34Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I created a website connected to the trefle.io API, which show you some informations and images about plants. You can choose between searching for a specific plant or let the random selector choose for you. What was challenging? API requesting was challenging because for the search request I had some issues with how to select it and it took me time to debug it. what are you proud of? I’m happy to have learned API requesting in JS, it was my first time What should people know so they can test your project If you want try this project it’s online : https://reaue.github.io/TrefleSite .", "repo": "https://github.com/reaue/TrefleSite", "demo": "https://reaue.github.io/TrefleSite/"}]...
|
[{"post_id": 63572, "ts": "202 [{"post_id": 63572, "ts": "2026-09-07T14:21:48Z", "hours": 0.5506, "text": "Devlog 2 - Work on the frontend. I writed the CSS file and now the site it’s done. I think I have well respect the idea of this mission and hope that it will be accepted for the ship."}, {"post_id": 63529, "ts": "2026-09-07T13:19:14Z", "hours": 2.5744, "text": "Devlog 1 - All the backend features are implemented ! I start the Give Your Website a Pulse mission, my goal it’s to build a website connected to the Trefle.io API to show random plants with a search bar and a random plant button. I also add a light and dark mode but all the CSS it’s not already done."}]...
|
Title: TrefleSite by @reaue | Stardance
Devlogs:
Title: TrefleSite by @reaue | Stardance
Devlogs:
Devlog 1 - All the backend features are implemented ! I start the Give Your Website a Pulse mission, my goal it’s to build a website connected to the Trefle.io API to show random plants with a search bar and a random plant button. I also add a light and dark mode but all the CSS it’s not already done.
Devlog 2 - Work on the frontend. I writed the CSS file and now the site it’s done. I think I have well respect the idea of this mission and hope that it will be accepted for the ship.
Ships:
What did you make? I created a website connected to the trefle.io API, which show you some informations and images about plants. You can choose between searching for a specific plant or let the random selector choose for you. What was challenging? API requesting was challenging because for the search request I had some issues with how to select it and it took me time to debug it. what are you proud of? I’m happy to have learned API requesting in JS, it was my first time What should people know so they can test your project If you want try this project it’s online : https://reaue.github.io/TrefleSite ....
|
1793724573.0968435
|
1793810973.0968435
|
|
66807
|
The cheapest hexapod using MG996R servos and metal The cheapest hexapod using MG996R servos and metal parts ! by @Vedaprotoshredhq | Stardance...
|
Vedaprotoshredhq
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: The cheapest hexapod using MG996R servos an Title: The cheapest hexapod using MG996R servos and metal parts ! by @Vedaprotoshredhq | Stardance...
|
1793724572.2509294
|
1794329372.2509294
|
|
47816
|
My Portfolio by @EVINJSUBIN | Stardance
|
EVINJSUBIN
|
2
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T02:18:39Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I learned so much css from so many yt tutorials how to use var and also found a new dev community it was a great journey also i found form submit", "repo": "https://github.com/EVINJSUBIN/My-Own-Portfolio", "demo": "https://evinjsubin.github.io/My-Own-Portfolio/"}, {"ship_num": 2, "ts": "2026-08-14T15:23:05Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I Made My Portfolio It was cool learned lot of seo and about og cards meta tags and how relay google learns your site and also about how 3js,nextjs and react work and how we can optmize a website for mobile althrough i am not perfect ai and yt tutorials guid me . if i made any mistakes i will try to make it perfect next time , dont forget to try light theme!, bye.", "repo": "https://github.com/EVINJSUBIN/My-Own-Portfolio", "demo": "https://evinjsubin.github.io/My-Own-Portfolio/"}]...
|
[{"post_id": 48605, "ts": "202 [{"post_id": 48605, "ts": "2026-08-17T02:16:18Z", "hours": 0.7975, "text": "re doing website"}, {"post_id": 47921, "ts": "2026-08-16T06:00:03Z", "hours": 0.2594, "text": "New ui"}, {"post_id": 47335, "ts": "2026-08-15T06:46:25Z", "hours": 1.2031, "text": "Re Written My Portfolio new git repo , this time only html css and little bit of js , try it out https://evinjsubin.github.io/My-Own-Portfolio/"}, {"post_id": 46952, "ts": "2026-08-14T15:04:51Z", "hours": 2.3883, "text": "Finally finished it! 🚀 Which theme did you like the most? I’d love to hear your thoughts and suggestions—let me know if you think it needs a complete revamp or just a few tweaks! Try it out here: https://evin-jacob-subin.vercel.app/"}]...
|
Title: My Portfolio by @EVINJSUBIN | Stardance
De Title: My Portfolio by @EVINJSUBIN | Stardance
Devlogs:
Finally finished it! 🚀 Which theme did you like the most? I’d love to hear your thoughts and suggestions—let me know if you think it needs a complete revamp or just a few tweaks! Try it out here: https://evin-jacob-subin.vercel.app/
Re Written My Portfolio new git repo , this time only html css and little bit of js , try it out https://evinjsubin.github.io/My-Own-Portfolio/
New ui
re doing website
Ships:
I Made My Portfolio It was cool learned lot of seo and about og cards meta tags and how relay google learns your site and also about how 3js,nextjs and react work and how we can optmize a website for mobile althrough i am not perfect ai and yt tutorials guid me . if i made any mistakes i will try to make it perfect next time , dont forget to try light theme!, bye.
I learned so much css from so many yt tutorials how to use var and also found a new dev community it was a great journey also i found form submit...
|
1793724569.9930394
|
1793810969.9930394
|
|
47806
|
Sumesh Bot by @nove | Stardance
|
nove
|
1
|
2.95
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T17:07:31Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I love to make discord bots, and other small javascript things. and when i entered stardance i got a mission to make a bot. i was like “eyy, can we make slack bots ?”. and that question made me build this bot and thank you for your guide. I will surely update this in future.", "repo": "https://github.com/NOVE300IQ/sumesh-bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354?skip_today=1"}]...
|
[{"post_id": 65503, "ts": "202 [{"post_id": 65503, "ts": "2026-09-10T18:10:08Z", "hours": 0.3275, "text": "Yo I was having some exams. I got many feedbacks from recent review sections, First of all thank you everyone for your valuable time taken for making the review. As per all those reviews am gonna improve this project and add more features and fixing some sort of bugs reported by the reviewers. And improve the writing of my DevLogs. Now i fixed the structure of the codespace and made it better and clean. Thank You 🫡💕"}, {"post_id": 54664, "ts": "2026-08-25T18:12:05Z", "hours": 0.6625, "text": "Updgrading Sumesh To A Peak 😁"}, {"post_id": 50344, "ts": "2026-08-19T14:58:23Z", "hours": 0.3083, "text": "New commands Broo :D"}, {"post_id": 49052, "ts": "2026-08-17T17:17:37Z", "hours": 0.6481, "text": "Implemented new 2 commands. :)"}, {"post_id": 47019, "ts": "2026-08-14T16:37:29Z", "hours": 1.2556, "text": "A slack bot which cares you commands. and probably the best one 😁"}]...
|
Title: Sumesh Bot by @nove | Stardance
Devlogs:
A Title: Sumesh Bot by @nove | Stardance
Devlogs:
A slack bot which cares you commands. and probably the best one 😁
Implemented new 2 commands. :)
New commands Broo :D
Updgrading Sumesh To A Peak 😁
Yo I was having some exams. I got many feedbacks from recent review sections, First of all thank you everyone for your valuable time taken for making the review. As per all those reviews am gonna improve this project and add more features and fixing some sort of bugs reported by the reviewers. And improve the writing of my DevLogs. Now i fixed the structure of the codespace and made it better and clean. Thank You 🫡💕
Ships:
I love to make discord bots, and other small javascript things. and when i entered stardance i got a mission to make a bot. i was like “eyy, can we make slack bots ?”. and that question made me build this bot and thank you for your guide. I will surely update this in future....
|
1793724567.6994324
|
1793810967.6994324
|
|
66805
|
3017: A cyberpunk videogame by @purpletue | Starda 3017: A cyberpunk videogame by @purpletue | Stardance...
|
purpletue
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: 3017: A cyberpunk videogame by @purpletue | Title: 3017: A cyberpunk videogame by @purpletue | Stardance...
|
1793724566.7812486
|
1794329366.7812486
|
|
44282
|
Comment Box Generator by @nouxinf | Stardance
|
nouxinf
|
1
|
11.0
|
51
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T19:36:16Z", "hours": 11.0, "multiplier": 4.68, "payout": 51, "blessing": "neutral", "text": "I made Comment Box Generator, which is a simple website that lets you make ASCII/Unicode comment boxes. For example: # ██████████████████████████████████████ # █ EXAMPLE █ # ██████████████████████████████████████ (these kinds of comments look centred when using a monospace font, which most code editors do) It has several customisation features, like: Changing the text (obviously) Changing what language its for Changing the minimum width (it automatically widens if the minimum width is less than the text length) Deciding whether the comment should be multiline or not ( i.e. whether to use // or /* */ What box symbol to use out of 9 Dark mode/light mode/detect from system settings Other features include: Links to Github and this Hack Club Stardance project page An info dialog, with attribution to Font Awesome for their icons You can check it out easily at https://commentboxgenerator.lemonsite.uk/ You can also self host it by cloning the github repo and running bun install , then bun run deploy . There is also a script, vps.sh , which is made for running it 24/7 on a linux server. It kills whatever process is on the same port (3054) and deploys the site, with logs at ~/logs/cbg.log . You don’t need to worry about that though if you are just checking the site out.", "repo": "https://github.com/nouxinf/comment-box-generator", "demo": "https://commentboxgenerator.lemonsite.uk/"}]...
|
[{"post_id": 49793, "ts": "202 [{"post_id": 49793, "ts": "2026-08-18T18:48:17Z", "hours": 3.6883, "text": "Devlog #4 of Comment Box Generator Comment Box Generator is a super lightweight site for making unicode boxes to put in comments in your code that are centred, for example: # ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ # ▓ EXAMPLE ▓ # ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ (which looks centred if you are using a monospace font) This is probably the last devlog for this project, meaning all these changes are finishing touches. For example: Loads more box options - there are now 9 of them Started using Liberation Mono to make appearance consistent between OSs instead of relying on the default monospace font Some SEO: Meta tags have been added to the HTML and I put the site on Google Search Console so hopefully soon people will find this site naturally Simple favicon A copy button to the output plus wrapping it in a container A proper README + CONTRIBUTING.md A dialog fade/zoom in and out animation. Cross-browser quirks are INSANELY annoying, took 19 Qwen prompts to sort that one out Will be shipping it soon!"}, {"post_id": 47131, "ts": "2026-08-14T20:04:58Z", "hours": 3.8247, "text": "Devlog #3 of Comment Box Generator Comment Box Generator is a super lightweight site for making unicode boxes to put in comments in your code that are centred, for example: /* ╔════════════════════════════════════╗ ║ EXAMPLE ║ ╚════════════════════════════════════╝ */ (trust me this looks normal in a code editor) It’s made with Bun on the backend, so it builds and hosts fast. When distributed, it loads super fast as it’s only 50KB minified. This is done by removing all whitespace in HTML, CSS and JS and removing unnecessary glyphs in the one font that’s bundled, Stack Sans. Things that have been added since the previous devlog: Unicode box symbols: this is far more reliable than using just one character like = because there are far fewer of those that work with centred box comments. Now you define eight characters for each box preset, for each side and corner. Proper CSS! and Dark mode with that too. Minifying fonts in the Bun build script Forcing multiline for languages like HTML where there are no single line comments Removed RobotoMono and instead used the browser’s default monospace font as that was causing issues with the unicode box approach Colour scheme options and Github, Hack Club Stardance links and an info dialog in the top right Things yet to come: A proper README More box options SEO (I want people to organically find this site after all) A favicon A copy button for the output, plus generally styling that up"}, {"post_id": 44764, "ts": "2026-08-10T19:17:19Z", "hours": 2.7125, "text": "Devlog #2 of Comment Box Generator Comment Box Generator is a small site that lets you generate comment boxes with text inside for various programming languages: # ====================================== # = like so = # ====================================== (which is centred when you are using a monospace font) In this devlog I’ve rewritten the “backend” in Bun so in package.json there are several scripts for various purposes: Build: just bun run build.js which minifies whats in src/ and puts it out to dist/ Deploy: Builds and hosts the project VPS: This runs vps.sh which is primarily just meant for me to run on my VPS (hosted at https://commentboxgenerator.lemonsite.uk/ ). It kills whatever process is on the port used by CBG (always 3054), builds the project and deploys. It uses nohup to log to a file and to run in the background. It then restarts nginx. Dev: This just runs a development server: unminified and with hot reload straight from src/ On the frontend I’ve added the option to use different languages’ comment syntax, to use single line or multiline comments, and to change what symbol is used for the box. Things that are coming soon: Styling (as you can tell not much attention has been paid to that yet) Forcing multiline for languages that don’t support single line comments like HTML"}, {"post_id": 41512, "ts": "2026-08-05T19:24:57Z", "hours": 0.6942, "text": "Was trying to write one of those centred box comments in one of my projects, like: # ====================================== # = HELPER FUNCTIONS = # ====================================== (which is centred in monospace font) But I couldn’t find any tool online that could centre a box comment online, so I’m making one myself. Here’s just a minimal prototype for Python, but I will be updating and making it look nicer; and most importantly adding new features like other language support and custom box characters."}]...
|
Title: Comment Box Generator by @nouxinf | Stardan Title: Comment Box Generator by @nouxinf | Stardance
Devlogs:
Was trying to write one of those centred box comments in one of my projects, like: # ====================================== # = HELPER FUNCTIONS = # ====================================== (which is centred in monospace font) But I couldn’t find any tool online that could centre a box comment online, so I’m making one myself. Here’s just a minimal prototype for Python, but I will be updating and making it look nicer; and most importantly adding new features like other language support and custom box characters.
Devlog #2 of Comment Box Generator Comment Box Generator is a small site that lets you generate comment boxes with text inside for various programming languages: # ====================================== # = like so = # ====================================== (which is centred when you are using a monospace font) In this devlog I’ve rewritten the “backend” in Bun so in package.json there are several scripts for various purposes: Build: just bun run build.js which minifies whats in src/ and puts it out to dist/ Deploy: Builds and hosts the project VPS: This runs vps.sh which is primarily just meant for me to run on my VPS (hosted at https://commentboxgenerator.lemonsite.uk/ ). It kills whatever process is on the port used by CBG (always 3054), builds the project and deploys. It uses nohup to log to a file and to run in the background. It then restarts nginx. Dev: This just runs a development server: unminified and with hot reload straight from src/ On the frontend I’ve added the option to use different languages’ comment syntax, to use single line or multiline comments, and to change what symbol is used for the box. Things that are coming soon: Styling (as you can tell not much attention has been paid to that yet) Forcing multiline for languages that don’t support single line comments like HTML
Devlog #3 of Comment Box Generator Comment Box Generator is a super lightweight site for making unicode boxes to put in comments in your code that are centred, for example: /* ╔════════════════════════════════════╗ ║ EXAMPLE ║ ╚════════════════════════════════════╝ */ (trust me this looks normal in a code editor) It’s made with Bun on the backend, so it builds and hosts fast. When distributed, it loads super fast as it’s only 50KB minified. This is done by removing all whitespace in HTML, CSS and JS and removing unnecessary glyphs in the one font that’s bundled, Stack Sans. Things that have been added since the previous devlog: Unicode box symbols: this is far more reliable than using just one character like = because there are far fewer of those that work with centred box comments. Now you define eight characters for each box preset, for each side and corner. Proper CSS! and Dark mode with that too. Minifying fonts in the Bun build script Forcing multiline for languages like HTML where there are no single line comments Removed RobotoMono and instead used the browser’s default monospace font as that was causing issues with the unicode box approach Colour scheme options and Github, Hack Club Stardance links and an info dialog in the top right Things yet to come: A proper README More box options SEO (I want people to organically find this site after all) A favicon A copy button for the output, plus generally styling that up
Devlog #4 of Comment Box Generator Comment Box Generator is a super lightweight site for making unicode boxes to put in comments in your code that are centred, for example: # ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ # ▓ EXAMPLE ▓ # ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ (which looks centred if you are using a monospace font) This is probably the last devlog for this project, meaning all these changes are finishing touches. For example: Loads more box options - there are now 9 of them Started using Liberation Mono to make appearance consistent between OSs instead of relying on the default monospace font Some SEO: Meta tags have been added to the HTML and I put the site on Google Search Console so hopefully soon people will find this site naturally Simple favicon A copy button to the output plus wrapping it in a container A proper README + CONTRIBUTING.md A dialog fade/zoom in and out animation. Cross-browser quirks are INSANELY annoying, took 19 Qwen prompts to sort that one out Will be shipping it soon!
Ships:
I made Comment Box Generator, which is a simple website that lets you make ASCII/Unicode comment boxes. For example: # ██████████████████████████████████████ # █ EXAMPLE █ # ██████████████████████████████████████ (these kinds of comments look centred when using a monospace font, which most code editors do) It has several customisation features, like: Changing the text (obviously) Changing what language its for Changing the minimum width (it automatically widens if the minimum width is less than the text length) Deciding whether the comment should be multiline or not ( i.e. whether to use // or /* */ What box symbol to use out of 9 Dark mode/light mode/detect from system settings Other features include: Links to Github and this Hack Club Stardance project page An info dialog, with attribution to Font Awesome for their icons You can check it out easily at https://commentboxgenerator.lemonsite.uk/ You can also self host it by cloning the github repo and running bun install , then bun run deploy . There is also a script, vps.sh , which is made for running it 24/7 on a linux server. It kills whatever process is on the same port (3054) and deploys the site, with logs at ~/logs/cbg.log . You don’t need to worry about that though if you are just checking the site out....
|
1793724565.6335654
|
1793810965.6335654
|
|
44263
|
FootyHub by @LilSaadt | Stardance
|
LilSaadt
|
1
|
2.0
|
9
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T20:35:26Z", "hours": 2.0, "multiplier": 3.78, "payout": 9, "blessing": "neutral", "text": "This is FootyHub, a small tool, with future updates planned. Currently, it allows you to look and find you favorite club out of the top 5 leagues using a free API. Than gives you a decent amount of information you may have not known.", "repo": "https://github.com/FrenchV/FootyHub", "demo": "https://footy-hub-git-main-saads-projects-2f496f6f.vercel.app/"}]...
|
[{"post_id": 49739, "ts": "202 [{"post_id": 49739, "ts": "2026-08-18T17:38:09Z", "hours": 1.5678, "text": "SOME BIG POTATOES TACKLED! Devlog #3 What was added: Last time I did mention big progress, but this time I came with receipts! Now we finally have the intro screen completly done, with top 5 leagues, and all included clubs The dashboard basics have already started aswell, meaning its only 1 devlog away from being complete Issues I encountered: None really, just hard work to get the project this far Been pretty good ever since THANKS FOR LISTENING, SEE YOU GUYS LATER!!"}, {"post_id": 47021, "ts": "2026-08-14T16:44:59Z", "hours": 0.3836, "text": "IM BACK, IM BACK (Uzbekistan reference)! Devlog #2 So umm despite there being no screenshots DONT WORRY WE MADE BIG PROGRESS We settled on the colour pallete for this webapp WE also made multi league selection and a whole new selection of teams thanks to the api switch in the last devlog Issues I encountered: The api was definetly not for beginners and was quite hard to work with but after a while we made it happen😭 Idk been pretty good ever since THANKS FOR LISTENING, SEE YOU GUYS LATER!!"}, {"post_id": 41443, "ts": "2026-08-05T17:35:03Z", "hours": 0.3142, "text": "WELCOME TO FOOTYHUB!! Devlog #1 Its the first devlog ofcourse so just setting up using the guide was the main goal Also made the bare bones for the first page to select your favourite club, I will make it simple yet effective. Issue I encountered: Man the fudging API key didnt want to work so I had to choose a completely different API key, which hakatime didnt like and didnt count a minute towards the project😭😭 After a lot of technical difficulties we FINALLY made it work See you guys in the next one."}]...
|
Title: FootyHub by @LilSaadt | Stardance
Devlogs: Title: FootyHub by @LilSaadt | Stardance
Devlogs:
WELCOME TO FOOTYHUB!! Devlog #1 Its the first devlog ofcourse so just setting up using the guide was the main goal Also made the bare bones for the first page to select your favourite club, I will make it simple yet effective. Issue I encountered: Man the fudging API key didnt want to work so I had to choose a completely different API key, which hakatime didnt like and didnt count a minute towards the project😭😭 After a lot of technical difficulties we FINALLY made it work See you guys in the next one.
IM BACK, IM BACK (Uzbekistan reference)! Devlog #2 So umm despite there being no screenshots DONT WORRY WE MADE BIG PROGRESS We settled on the colour pallete for this webapp WE also made multi league selection and a whole new selection of teams thanks to the api switch in the last devlog Issues I encountered: The api was definetly not for beginners and was quite hard to work with but after a while we made it happen😭 Idk been pretty good ever since THANKS FOR LISTENING, SEE YOU GUYS LATER!!
SOME BIG POTATOES TACKLED! Devlog #3 What was added: Last time I did mention big progress, but this time I came with receipts! Now we finally have the intro screen completly done, with top 5 leagues, and all included clubs The dashboard basics have already started aswell, meaning its only 1 devlog away from being complete Issues I encountered: None really, just hard work to get the project this far Been pretty good ever since THANKS FOR LISTENING, SEE YOU GUYS LATER!!
Ships:
This is FootyHub, a small tool, with future updates planned. Currently, it allows you to look and find you favorite club out of the top 5 leagues using a free API. Than gives you a decent amount of information you may have not known....
|
1793724564.4203544
|
1793810964.4203544
|
|
66804
|
A live sync notepad? Like a big platform for writi A live sync notepad? Like a big platform for writing? by @cobaltsplayground | Stardance...
|
cobaltsplayground
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A live sync notepad? Like a big platform fo Title: A live sync notepad? Like a big platform for writing? by @cobaltsplayground | Stardance...
|
1793724563.538759
|
1794329363.538759
|
|
66802
|
My awesome macropad! by @fastxsonic675 | Stardance
|
fastxsonic675
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @fastxsonic675 | St Title: My awesome macropad! by @fastxsonic675 | Stardance...
|
1793724562.6370554
|
1794329362.6370554
|
|
41105
|
Omni-Core by @_KoundinyaG_ | Stardance
|
_KoundinyaG_
|
1
|
11.69
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-30T17:41:25Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a fully-local AI-powered student assistant. Like it has EVERYTHING from Textbook Analysis, a Priority Matrix and Web Research to Music Streaming and Music Downloads to Auto-Meeting Transcription and Observer Mode and MORE. Like, building this project was a nightmare in debugging as it used Tauri, Rust and React, and shifting between debugging one to the other is hell as they are VERY DIFFERENT. And the most powerful thing is that this app is like that one teacher who refuses to stop observing you guys, so that you guys work. This constantly records your screen (bit like PiecesOS or Windows Recall BUT I don’t ship all your data to a server unlike Pieces) and gives you statistics on what you’ve been doing, and your entire data including Statistics, Goals, Tasks, Textbooks and Notebooks and MORE are sent to the local AI models (btw, yeah, you have to have Ollama set up with the 4 models mentioned in setup) so that it has your entire context. And all this with no telemetry, privacy risk or internet needs, it can run COMPLETELY LOCALLY (music too is downloadable hehe). Also, please read the GitHub README as it holds all the features, I have only teased it here. Also, btw, this wasn’t made in just 10 hours, that is just the time I had hackatime on (and I’m fine with getting 10 hours worth of Stardust as it is my fault for not having hackatime), I just want you to know that 60+ hours (3-4 hours per day including research) of MY work was put to this and that this is NOT just a scrapped project that over-claims and under-delivers.", "repo": "https://github.com/Koundinya-Git/omni-dashboard", "demo": "https://github.com/Koundinya-Git/omni-dashboard/releases/tag/v1"}]...
|
[{"post_id": 38378, "ts": "202 [{"post_id": 38378, "ts": "2026-07-31T18:41:44Z", "hours": 1.6894, "text": "Kill Distracting Processes whilst Focus Mode, and a Persistent Daemon that scans your screen and answers your query upon hotkey command (Ctrl/Command + Shift + J)."}, {"post_id": 37739, "ts": "2026-07-30T17:27:51Z", "hours": 2.1597, "text": "Ughhhhh, tryna, get this to Linux as a DEB file, but apparently GitHub Actions hates me lol. Anyways, I managed to get the .exe fully working with all core features loaded, and well, we’ll see about the .deb , AppImage and .rpm."}, {"post_id": 37567, "ts": "2026-07-30T11:55:15Z", "hours": 2.9314, "text": "Yea, I just added a Start-up page, and also finished up with all the core features. (I spent way more than 3 hours lol, don’t think I just sat and built everything in 3 hrs). Anyways, try it out at: https://github.com/Koundinya-Git/omni-dashboard"}, {"post_id": 36438, "ts": "2026-07-28T15:45:55Z", "hours": 4.9136, "text": "Finished implementing the Goal Tracker"}]...
|
Title: Omni-Core by @_KoundinyaG_ | Stardance
Dev Title: Omni-Core by @_KoundinyaG_ | Stardance
Devlogs:
Finished implementing the Goal Tracker
Yea, I just added a Start-up page, and also finished up with all the core features. (I spent way more than 3 hours lol, don’t think I just sat and built everything in 3 hrs). Anyways, try it out at: https://github.com/Koundinya-Git/omni-dashboard
Ughhhhh, tryna, get this to Linux as a DEB file, but apparently GitHub Actions hates me lol. Anyways, I managed to get the .exe fully working with all core features loaded, and well, we’ll see about the .deb , AppImage and .rpm.
Kill Distracting Processes whilst Focus Mode, and a Persistent Daemon that scans your screen and answers your query upon hotkey command (Ctrl/Command + Shift + J).
Ships:
I made a fully-local AI-powered student assistant. Like it has EVERYTHING from Textbook Analysis, a Priority Matrix and Web Research to Music Streaming and Music Downloads to Auto-Meeting Transcription and Observer Mode and MORE. Like, building this project was a nightmare in debugging as it used Tauri, Rust and React, and shifting between debugging one to the other is hell as they are VERY DIFFERENT. And the most powerful thing is that this app is like that one teacher who refuses to stop observing you guys, so that you guys work. This constantly records your screen (bit like PiecesOS or Windows Recall BUT I don’t ship all your data to a server unlike Pieces) and gives you statistics on what you’ve been doing, and your entire data including Statistics, Goals, Tasks, Textbooks and Notebooks and MORE are sent to the local AI models (btw, yeah, you have to have Ollama set up with the 4 models mentioned in setup) so that it has your entire context. And all this with no telemetry, privacy risk or internet needs, it can run COMPLETELY LOCALLY (music too is downloadable hehe). Also, please read the GitHub README as it holds all the features, I have only teased it here. Also, btw, this wasn’t made in just 10 hours, that is just the time I had hackatime on (and I’m fine with getting 10 hours worth of Stardust as it is my fault for not having hackatime), I just want you to know that 60+ hours (3-4 hours per day including research) of MY work was put to this and that this is NOT just a scrapped project that over-claims and under-delivers....
|
1793724561.4562438
|
1793810961.4562438
|
|
41101
|
my first 3d game by @Yatheesh | Stardance
|
Yatheesh
|
1
|
6.49
|
31
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T18:19:24Z", "hours": 6.0, "multiplier": 4.89, "payout": 31, "blessing": "neutral", "text": "I made A 3d Game, The most challenging part was making the player controller because I had never made a 3d game before so it was very new and I even had to rewrite it.", "repo": "https://github.com/Yatheeshpatcha/3d_game", "demo": "https://patcha123.itch.io/jump"}]...
|
[{"post_id": 42066, "ts": "202 [{"post_id": 42066, "ts": "2026-08-06T16:57:47Z", "hours": 0.4897, "text": "Some changes where request concerning level 2s hitboxes I fixed them and I am ready to ship again!"}, {"post_id": 41467, "ts": "2026-08-05T18:05:33Z", "hours": 1.6439, "text": "I finished my game! and I figured out what corrupted my files and got all my work back !"}, {"post_id": 41045, "ts": "2026-08-04T23:56:57Z", "hours": 0.5592, "text": "guys my godot went crazy and allmost all my work got deleted Now I have to remake everything"}, {"post_id": 40249, "ts": "2026-08-03T17:30:31Z", "hours": 1.3742, "text": "I FINISHED LEVEL 1! I am really proud that I managed tp finish it, it is pretty simple but it works, I also added a camera bob and a sprint to my character along with some velocity."}, {"post_id": 39035, "ts": "2026-08-01T18:19:50Z", "hours": 1.5553, "text": "I had to rewrite my whole player controller Because of the way it was coded it was almost impossible to code a jump so i had to rewrite it, I also added a start screen and used kenny to add some textures"}, {"post_id": 38382, "ts": "2026-07-31T18:47:14Z", "hours": 1.2775, "text": "I am making my first every 3D Game and it is going pretty well I just finsihed making my player controller"}]...
|
Title: my first 3d game by @Yatheesh | Stardance
Title: my first 3d game by @Yatheesh | Stardance
Devlogs:
I am making my first every 3D Game and it is going pretty well I just finsihed making my player controller
I had to rewrite my whole player controller Because of the way it was coded it was almost impossible to code a jump so i had to rewrite it, I also added a start screen and used kenny to add some textures
I FINISHED LEVEL 1! I am really proud that I managed tp finish it, it is pretty simple but it works, I also added a camera bob and a sprint to my character along with some velocity.
guys my godot went crazy and allmost all my work got deleted Now I have to remake everything
I finished my game! and I figured out what corrupted my files and got all my work back !
Some changes where request concerning level 2s hitboxes I fixed them and I am ready to ship again!
Ships:
I made A 3d Game, The most challenging part was making the player controller because I had never made a 3d game before so it was very new and I even had to rewrite it....
|
1793724560.2390413
|
1793810960.2390413
|
|
46439
|
Mini Weather station by @Jovi | Stardance
|
Jovi
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T11:06:20Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Mini Weather Station, with many capabilities(Used all the functions that the board has, except the accelerometer and gyroscope). Was pretty challenging to make the code, even though used AI for it", "repo": "https://github.com/TeenEngineer/Mini-Weather-Station/", "demo": ""}]...
|
[{"post_id": 46228, "ts": "202 [{"post_id": 46228, "ts": "2026-08-13T10:03:03Z", "hours": 1.4394, "text": "Assembled the thing, debugged stuff, added a flashlight mode, and added a way to exit AP mode from the device itself. You can watch the video showcase of the station here: https://github.com/user-attachments/assets/98cfebd6-e004-4a77-a924-2f23e415244a"}, {"post_id": 45734, "ts": "2026-08-12T12:46:03Z", "hours": 0.4408, "text": "Made the 3d model of the case for the thing(for some reason lapse didnt see my hackatime project and deducted frickin 20 minutes wth)"}, {"post_id": 45714, "ts": "2026-08-12T11:49:19Z", "hours": 1.2886, "text": "Finally, after going through this stuff with Gemini, I finally got the final code working, and ready for commercial use! P.S. the settings are in the highlighted zone, pls don’t change other settings(only if you don’t know what you’re doing)"}, {"post_id": 45110, "ts": "2026-08-11T11:58:11Z", "hours": 0.6658, "text": "Soldered the touch sensor’s pins to the board, also soldered on a connector cable to the battery"}]...
|
Title: Mini Weather station by @Jovi | Stardance
Title: Mini Weather station by @Jovi | Stardance
Devlogs:
Soldered the touch sensor’s pins to the board, also soldered on a connector cable to the battery
Finally, after going through this stuff with Gemini, I finally got the final code working, and ready for commercial use! P.S. the settings are in the highlighted zone, pls don’t change other settings(only if you don’t know what you’re doing)
Made the 3d model of the case for the thing(for some reason lapse didnt see my hackatime project and deducted frickin 20 minutes wth)
Assembled the thing, debugged stuff, added a flashlight mode, and added a way to exit AP mode from the device itself. You can watch the video showcase of the station here: https://github.com/user-attachments/assets/98cfebd6-e004-4a77-a924-2f23e415244a
Ships:
I made a Mini Weather Station, with many capabilities(Used all the functions that the board has, except the accelerometer and gyroscope). Was pretty challenging to make the code, even though used AI for it...
|
1793724559.0547462
|
1793810959.0547462
|
|
66801
|
A webpage by @Blackboy | Stardance
|
Blackboy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A webpage by @Blackboy | Stardance
|
1793724558.1978586
|
1794329358.1978586
|
|
46435
|
Meco by @pranav101 | Stardance
|
pranav101
|
1
|
58.37
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T06:06:38Z", "hours": 42.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Meco - a memory companion", "repo": "https://github.com/itzpranav101/Meco---Updated/", "demo": "https://itzpranav101.github.io/meco-67-website-final/"}]...
|
[{"post_id": 66019, "ts": "202 [{"post_id": 66019, "ts": "2026-09-11T15:41:35Z", "hours": 11.7181, "text": "Reworking on my complete readme!!! Also trying to integrate a plant app especially for seniors with dementia to imrpove their memory skills by using plants!!! - not added files to github currently in production"}, {"post_id": 50916, "ts": "2026-08-20T11:55:49Z", "hours": 1.0669, "text": "Currently debugging the css 😅"}, {"post_id": 50155, "ts": "2026-08-19T08:11:12Z", "hours": 3.5889, "text": "Currently reworking the css of the caregiver/patient console also adding a few more cognitive graph features for more accurate summarys of the patients. Also working on an app for meco!!"}, {"post_id": 44686, "ts": "2026-08-10T16:42:28Z", "hours": 42.3147, "text": "Working on the user interface!"}]...
|
Title: Meco by @pranav101 | Stardance
Devlogs:
Wo Title: Meco by @pranav101 | Stardance
Devlogs:
Working on the user interface!
Currently reworking the css of the caregiver/patient console also adding a few more cognitive graph features for more accurate summarys of the patients. Also working on an app for meco!!
Currently debugging the css 😅
Reworking on my complete readme!!! Also trying to integrate a plant app especially for seniors with dementia to imrpove their memory skills by using plants!!! - not added files to github currently in production
Ships:
Meco - a memory companion...
|
1793724557.0204318
|
1793810957.0204318
|
|
45179
|
aurek by @Erox | Stardance
|
Erox
|
1
|
7.0
|
126
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T13:01:25Z", "hours": 7.0, "multiplier": 17.6, "payout": 126, "blessing": "neutral", "text": "aurek is a rust security wrapper for yay that adds a security check before installing aur packages. aur packages are community maintained and their pkgbuild files can execute arbitrary commands, so aurek fetches and scans the pkgbuild before allowing yay to continue. it uses heuristic and regex based detection for things like remote script execution, suspicious sudo usage, dangerous commands, obfuscation, downloads, permission changes and systemd or cron modifications. starting from v2.0.0, aurek can also use a local gemma model through llama.cpp for context-aware analysis, while keeping the whole process on the users machine with no external api required ,gemma (2b) is easy to run why waste money. v2.1.2 focused on making the workflow easier to use with scan-by-default, /etc/aurek.conf , better llm output, colored terminal output and on v2.1.4 more yay commands including package removal with -R. the project went through several iterations and a few very stupid bugs along the way, including multiple crates.io naming issues(it was really stupid) and a version reporting bug, but those were fixed and v2.1.4 is now published. aurek is not meant to guarantee that a package is safe, but to give users another layer of protection before trusting an aur pkgbuild. the project is open source and still has a roadmap for more detection methods, dependency scanning, additional llm models and support for other package managers. Also i wd like to add github support also , i am genuinely asking myself if i shld i add paru too , but i believe in yay supremacy , so no.", "repo": "https://github.com/Erox-02/aurek", "demo": "https://crates.io/crates/aurek"}]...
|
[{"post_id": 45130, "ts": "202 [{"post_id": 45130, "ts": "2026-08-11T12:53:44Z", "hours": 0.3506, "text": "after the version hell , i added -R feature just like yay , now it looks better and to be honest the llm is unpredictable i genuinely advise to use the fallback model its fine for most cases ."}, {"post_id": 45105, "ts": "2026-08-11T11:45:07Z", "hours": 3.1, "text": "I have successfully built aurek 2.1.3 , after treating some hillarious bugs , its finally here. try it now on “ https://crates.io/crates/aurek ” i found i literally did the same mistake(as v1) ,naming on crates(cargo) requires README.md and on stardance readme.md , i have decided to keep both from now also there were some other bug fix and qol , after the major v2 , for last 3 hrs i have added llm response , a config file on /etc/aurek.conf (yeah here i accidentally added my /home/erox/.config) so main change , added some more bugs to fix later , sank you"}, {"post_id": 43998, "ts": "2026-08-09T14:15:16Z", "hours": 3.6928, "text": "Aurek v2.0.0 is probably the biggest change the project has had so far. aurek started as a small security wrapper for yay that checks aur packages before installation, mainly using heuristics to look for things like remote script execution, suspicious sudo usage, dangerous commands, chmod 777, base64, eval and other patterns that could be risky inside a pkgbuild. The problem with heuristics is that they only really see patterns, they don’t understand much context, so v2.0.0 adds optional local LLM analysis using Gemma through llama.cpp. Everything runs locally, no external API or internet connection is needed, and aurek handles starting llama-server, waiting for it, running the analysis and shutting it down afterwards. The LLM is meant to be another layer on top of the heuristics, not a replacement for them. v2.0.0 also added Git fallback when the aur API isn’t available and improved some of the package handling. Colored terminal output isn’t actually part of v2.0.0, that’s being worked on for v2.1.0 along with some other improvements. After publishing v2.0.0, a small packaging issue was noticed where the README was named readme.md instead of README.md, which meant crates.io didn’t display it properly. Because of that v2.0.0 was yanked and v2.0.1 was released with the filename fixed, with no actual code or functionality changes. The project itself has been moving along for a while before Stardance too. The v1 devlog couldn’t be published because I wasn’t registered on Stardance(my aadhar was on queue ) at the time, but development kept going and Hackatime picked up on the continued work. So instead of leaving that part undocumented, all three stages are being put together here — v1, v2.0.0 and the small v2.0.1 fix. The next plans are more LLM models, better heuristics, recursive dependency scanning and eventually support for package managers beyond the aur. aurek is still meant to be a security layer, not a guarantee that every package is safe, but the goal is to make checking aur packages a bit less of a just trust this pkgbuild and pray situation."}]...
|
Title: aurek by @Erox | Stardance
Devlogs:
Aurek Title: aurek by @Erox | Stardance
Devlogs:
Aurek v2.0.0 is probably the biggest change the project has had so far. aurek started as a small security wrapper for yay that checks aur packages before installation, mainly using heuristics to look for things like remote script execution, suspicious sudo usage, dangerous commands, chmod 777, base64, eval and other patterns that could be risky inside a pkgbuild. The problem with heuristics is that they only really see patterns, they don’t understand much context, so v2.0.0 adds optional local LLM analysis using Gemma through llama.cpp. Everything runs locally, no external API or internet connection is needed, and aurek handles starting llama-server, waiting for it, running the analysis and shutting it down afterwards. The LLM is meant to be another layer on top of the heuristics, not a replacement for them. v2.0.0 also added Git fallback when the aur API isn’t available and improved some of the package handling. Colored terminal output isn’t actually part of v2.0.0, that’s being worked on for v2.1.0 along with some other improvements. After publishing v2.0.0, a small packaging issue was noticed where the README was named readme.md instead of README.md, which meant crates.io didn’t display it properly. Because of that v2.0.0 was yanked and v2.0.1 was released with the filename fixed, with no actual code or functionality changes. The project itself has been moving along for a while before Stardance too. The v1 devlog couldn’t be published because I wasn’t registered on Stardance(my aadhar was on queue ) at the time, but development kept going and Hackatime picked up on the continued work. So instead of leaving that part undocumented, all three stages are being put together here — v1, v2.0.0 and the small v2.0.1 fix. The next plans are more LLM models, better heuristics, recursive dependency scanning and eventually support for package managers beyond the aur. aurek is still meant to be a security layer, not a guarantee that every package is safe, but the goal is to make checking aur packages a bit less of a just trust this pkgbuild and pray situation.
I have successfully built aurek 2.1.3 , after treating some hillarious bugs , its finally here. try it now on “ https://crates.io/crates/aurek ” i found i literally did the same mistake(as v1) ,naming on crates(cargo) requires README.md and on stardance readme.md , i have decided to keep both from now also there were some other bug fix and qol , after the major v2 , for last 3 hrs i have added llm response , a config file on /etc/aurek.conf (yeah here i accidentally added my /home/erox/.config) so main change , added some more bugs to fix later , sank you
after the version hell , i added -R feature just like yay , now it looks better and to be honest the llm is unpredictable i genuinely advise to use the fallback model its fine for most cases .
Ships:
aurek is a rust security wrapper for yay that adds a security check before installing aur packages. aur packages are community maintained and their pkgbuild files can execute arbitrary commands, so aurek fetches and scans the pkgbuild before allowing yay to continue. it uses heuristic and regex based detection for things like remote script execution, suspicious sudo usage, dangerous commands, obfuscation, downloads, permission changes and systemd or cron modifications. starting from v2.0.0, aurek can also use a local gemma model through llama.cpp for context-aware analysis, while keeping the whole process on the users machine with no external api required ,gemma (2b) is easy to run why waste money. v2.1.2 focused on making the workflow easier to use with scan-by-default, /etc/aurek.conf , better llm output, colored terminal output and on v2.1.4 more yay commands including package removal with -R. the project went through several iterations and a few very stupid bugs along the way, including multiple crates.io naming issues(it was really stupid) and a version reporting bug, but those were fixed and v2.1.4 is now published. aurek is not meant to guarantee that a package is safe, but to give users another layer of protection before trusting an aur pkgbuild. the project is open source and still has a roadmap for more detection methods, dependency scanning, additional llm models and support for other package managers. Also i wd like to add github support also , i am genuinely asking myself if i shld i add paru too , but i believe in yay supremacy , so no....
|
1793724555.767911
|
1793810955.767911
|
|
66800
|
. by @eshalzohaib370 | Stardance
|
eshalzohaib370
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: . by @eshalzohaib370 | Stardance
|
1793724554.8489797
|
1794329354.8489797
|
|
45175
|
My own site! by @Anishhh | Stardance
|
Anishhh
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-15T16:18:38Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I felt like it wasn’t possible and that i couldn’t make any website by myself but i finally did it. i made my portfolio and learnt so many things. Although i faced some issues like i wasn’t able to find what my mistakes were and that’s where i used chatgpt and try to learn it. It was fun making something like such :D", "repo": "https://github.com/damn-anish/portfolio/", "demo": "https://damn-anish.github.io/portfolio/"}]...
|
[{"post_id": 46420, "ts": "202 [{"post_id": 46420, "ts": "2026-08-13T16:44:32Z", "hours": 2.8592, "text": "This is my first proper web project, and honestly, I built most of it while figuring things out along the way. I started with the basics of HTML and CSS, then slowly added other little things that made the site feel more like mine.I wanted the website to have a bit of a coding/terminal vibe because that’s what I’m interested in. I played around with the design, colors instead of just making a basic page with some text on it.I’m still pretty new to web development, so there are probably a lot of things I could do better. But that’s what makes this project interesting to me. It’s basically a starting point that I can keep improving as I learn more about programming and development.I’m currently studying CSE with a focus on AI & ML, so I’ll prolly end up adding some actual AI and machine learning projects here as I build them. For now, this website is just a small record of where I started :) hope you like it."}]...
|
Title: My own site! by @Anishhh | Stardance
Devlo Title: My own site! by @Anishhh | Stardance
Devlogs:
This is my first proper web project, and honestly, I built most of it while figuring things out along the way. I started with the basics of HTML and CSS, then slowly added other little things that made the site feel more like mine.I wanted the website to have a bit of a coding/terminal vibe because that’s what I’m interested in. I played around with the design, colors instead of just making a basic page with some text on it.I’m still pretty new to web development, so there are probably a lot of things I could do better. But that’s what makes this project interesting to me. It’s basically a starting point that I can keep improving as I learn more about programming and development.I’m currently studying CSE with a focus on AI & ML, so I’ll prolly end up adding some actual AI and machine learning projects here as I build them. For now, this website is just a small record of where I started :) hope you like it.
Ships:
I felt like it wasn’t possible and that i couldn’t make any website by myself but i finally did it. i made my portfolio and learnt so many things. Although i faced some issues like i wasn’t able to find what my mistakes were and that’s where i used chatgpt and try to learn it. It was fun making something like such :D...
|
1793724553.6858096
|
1793810953.6858096
|
|
66799
|
Frictionless by @athrv | Stardance
|
athrv
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @athrv | Stardance
|
1793724552.7845366
|
1794329352.7845366
|
|
10267
|
Rubik's Cube Algorithm Finder by @pi | Stardan Rubik's Cube Algorithm Finder by @pi | Stardance...
|
pi
|
1
|
17.33
|
149
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-08T03:56:02Z", "hours": 17.0, "multiplier": 8.73, "payout": 149, "blessing": "neutral", "text": "Search a Rubik’s Cube for short algorithms that solve a scramble or reach a target pattern. I made this project after I learned to solve a Rubik’s Cube. See, I have this bad habit of taking something I like and automating it. On the bright side, I now have a program that can automatically solve a Rubik’s Cube, much faster than I can! To run the Python program, follow the steps linked in the Try Project section.", "repo": "https://github.com/anagram-of-pi/rubik_cube_algorithm_finder", "demo": "https://alg-finder-install.netlify.app/"}]...
|
[{"post_id": 65701, "ts": "202 [{"post_id": 65701, "ts": "2026-09-11T01:04:58Z", "hours": 0.3286, "text": "Added a real demo :) My ship got denied because I hadn’t set up a proper demo (eg, wasn’t on PyPi or a binary) so I just spent 20 minutes doing that. I’m just posting a devlog for the record."}, {"post_id": 64009, "ts": "2026-09-08T03:41:45Z", "hours": 2.23, "text": "I haven’t worked on this in a very long time, haha So I stopped working on my Rubik’s Cube solver a while ago because it was more or less complete. I never actually submitted it though! I just spent a few hours cleaning up the repo, fixing some stuff, etc.. It is now presentable and shippable! I’m not sure exactly how to do this but my demo is actually a hosted web page giving instructions on how to install and run it. It’s not one line but actually two (one for cloning and one for pip install-ing) but I hope that’s okay. Thanks all!"}, {"post_id": 5070, "ts": "2026-06-08T19:05:36Z", "hours": 0.5742, "text": "My program found solutions that I’ve never seen before :) * I told it to find an algorithm that takes an F2L pair out (e.g., R U R’ U’). If you are not familiar with the Rubik’s cube, I told it to find a sequence of moves that would result in a certain state. * I knew about one, very common sequence (R U R’ U’) and it found 17 others that I had never seen before, in about a minute of search time. * Now all that’s left is to optimize it so it can find longer algorithms!"}, {"post_id": 5040, "ts": "2026-06-08T18:19:17Z", "hours": 3.435, "text": "This was meant to be a quick side project. I have now spent more time on this than my main project. What happened??"}, {"post_id": 4401, "ts": "2026-06-07T18:36:41Z", "hours": 4.5167, "text": "Successfully searched up to depth 6 (meet-in-the-middle, so essentially up to 12) and solved a 10 move scramble in 50 seconds! * This program solved a rubik’s cube that had been scrambled with “F R U’ B’ D’ R’ L F’ B U’”, so ten moves. It correctly found the optimal 10 move solution, as well as many others. * This is Python, and I’m already running 18 searches in parallel, so I’m not sure if I’ll be able to improve the raw speed, but I hope to prune more and maybe even do a heuristic-based search in the future. * I’m planning on doing some more with this that may involve loosening the constraints. That may or may not speed it up."}, {"post_id": 3956, "ts": "2026-06-07T02:49:40Z", "hours": 2.6847, "text": "Well I thought this would be a quick project. 2.5 hours of programming later: It was not. * Since the last devlog, I have a Rubik’s Cube represented correctly in the code now, and it can make moves. All I have left to do for this part of the project is to fix the str method that returns a visualization of the cube. Right now, it gets the orientation mixed up on up and down quarter turns, but it shouldn’t be too much debugging… * Here’s a screenshot of it working next to it not working:"}, {"post_id": 3854, "ts": "2026-06-06T22:30:51Z", "hours": 3.6764, "text": "This project is very difficult to debug! It’s just a big lookup table that I entered in by hand… I’m sure I made many typos, so that will be fun."}]...
|
Title: Rubik's Cube Algorithm Finder by @pi | Title: Rubik's Cube Algorithm Finder by @pi | Stardance
Devlogs:
This project is very difficult to debug! It’s just a big lookup table that I entered in by hand… I’m sure I made many typos, so that will be fun.
Well I thought this would be a quick project. 2.5 hours of programming later: It was not. * Since the last devlog, I have a Rubik’s Cube represented correctly in the code now, and it can make moves. All I have left to do for this part of the project is to fix the str method that returns a visualization of the cube. Right now, it gets the orientation mixed up on up and down quarter turns, but it shouldn’t be too much debugging… * Here’s a screenshot of it working next to it not working:
Successfully searched up to depth 6 (meet-in-the-middle, so essentially up to 12) and solved a 10 move scramble in 50 seconds! * This program solved a rubik’s cube that had been scrambled with “F R U’ B’ D’ R’ L F’ B U’”, so ten moves. It correctly found the optimal 10 move solution, as well as many others. * This is Python, and I’m already running 18 searches in parallel, so I’m not sure if I’ll be able to improve the raw speed, but I hope to prune more and maybe even do a heuristic-based search in the future. * I’m planning on doing some more with this that may involve loosening the constraints. That may or may not speed it up.
This was meant to be a quick side project. I have now spent more time on this than my main project. What happened??
My program found solutions that I’ve never seen before :) * I told it to find an algorithm that takes an F2L pair out (e.g., R U R’ U’). If you are not familiar with the Rubik’s cube, I told it to find a sequence of moves that would result in a certain state. * I knew about one, very common sequence (R U R’ U’) and it found 17 others that I had never seen before, in about a minute of search time. * Now all that’s left is to optimize it so it can find longer algorithms!
I haven’t worked on this in a very long time, haha So I stopped working on my Rubik’s Cube solver a while ago because it was more or less complete. I never actually submitted it though! I just spent a few hours cleaning up the repo, fixing some stuff, etc.. It is now presentable and shippable! I’m not sure exactly how to do this but my demo is actually a hosted web page giving instructions on how to install and run it. It’s not one line but actually two (one for cloning and one for pip install-ing) but I hope that’s okay. Thanks all!
Added a real demo :) My ship got denied because I hadn’t set up a proper demo (eg, wasn’t on PyPi or a binary) so I just spent 20 minutes doing that. I’m just posting a devlog for the record.
Ships:
Search a Rubik’s Cube for short algorithms that solve a scramble or reach a target pattern. I made this project after I learned to solve a Rubik’s Cube. See, I have this bad habit of taking something I like and automating it. On the bright side, I now have a program that can automatically solve a Rubik’s Cube, much faster than I can! To run the Python program, follow the steps linked in the Try Project section....
|
1793724551.5767884
|
1793810951.5767884
|
|
66798
|
Zero hour by @youngrich | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Zero hour by @youngrich | Stardance
|
1793724550.7148314
|
1794329350.7148314
|
|
42650
|
esp-pod by @krisander | Stardance
|
krisander
|
1
|
31.15
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T13:06:01Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a retro themed mp3 player built around the esp32-wroom-1, this is version 1.3, this verson can play audio, browse through songs, add favorite songs, remane songs, artists and setsong duration. It has an inbuild keyboard wich makes it easy to type and save songs.", "repo": "https://github.com/krisander11/esp-pod", "demo": ""}]...
|
[{"post_id": 69104, "ts": "202 [{"post_id": 69104, "ts": "2026-09-16T11:39:39Z", "hours": 5.6508, "text": "i finished all the PCB Editing in about 5 hours!! I’m gonna put the PCB files on github soon. I”ll also send it for reshipping… hopefully it will be accepted."}, {"post_id": 68526, "ts": "2026-09-15T08:24:22Z", "hours": 0.7842, "text": "i fixed the schematics of the board. I added switches and labeled everything. I ran through the tests and it passed perfect."}, {"post_id": 68000, "ts": "2026-09-14T11:04:35Z", "hours": 1.7142, "text": "I found out i have to create a pcb so I’m doing it."}, {"post_id": 46367, "ts": "2026-08-13T15:19:17Z", "hours": 1.2575, "text": "I just dropped version 1.3 of the esp-pod on github , go check it out!"}, {"post_id": 45843, "ts": "2026-08-12T15:56:37Z", "hours": 1.5375, "text": "I’m currently fixing the keyboard navigation, and adding code to rename artists as well. I will update agian after fixing it."}, {"post_id": 45658, "ts": "2026-08-12T09:15:01Z", "hours": 2.0997, "text": "just uploaded build montage on lapse go check it out"}, {"post_id": 44706, "ts": "2026-08-10T17:23:29Z", "hours": 0.6858, "text": "I added code so that i can rename songs through the player but i have to clike abt 52 times per letter becaue the screen size and buttons are limited . If you have any ideas on optmizing the typing please feel free to suggest it in the comments!"}, {"post_id": 44670, "ts": "2026-08-10T16:17:09Z", "hours": 2.1997, "text": "I finished ver1.3, currenty debugging errors in ver1.3… Ill do a timlapse soon stay tuned for the hardware build montage!"}, {"post_id": 44073, "ts": "2026-08-09T16:25:57Z", "hours": 1.0806, "text": "ok so the project works but i complete forgt to add the logic part of renaming songs etc, i deleted about 200 lines of code to update it. ill will post a breadboard prototype after fixing this version of code"}, {"post_id": 43426, "ts": "2026-08-08T17:38:25Z", "hours": 1.0017, "text": "im fixing a few errors it the menu like not being able to rename songs and fixing ui freezing and audio glitches, I got the base working and will start on bluetooth soon!"}, {"post_id": 43266, "ts": "2026-08-08T12:59:00Z", "hours": 0.9897, "text": "I finally got all the errors fixed! I’m going to flash and test this version and then add bluetooth! I’ll publish this version on github after that. :-)"}, {"post_id": 43230, "ts": "2026-08-08T11:33:31Z", "hours": 3.3317, "text": "i started working on the settings part of the code . in getting hit with a lot of errors but im combing through the code and finding manyyy errors! ill update soon."}, {"post_id": 42690, "ts": "2026-08-07T15:28:31Z", "hours": 1.0631, "text": "currently writing the track selection code! Its throwing soooo many errors at me :-("}, {"post_id": 42598, "ts": "2026-08-07T12:41:23Z", "hours": 2.3325, "text": "The display of my laptop broke :-( I have been coding uisng an external 7 inch monitor… These curly brackets are confusing me so much! But ill never stop this project till im done. Currently am rewriting the code for the menu and how to interact with it, i will andd bluetooth once im done with this base model!"}, {"post_id": 42120, "ts": "2026-08-06T18:12:52Z", "hours": 1.3767, "text": "i started rewriting the code so i can use little fs to save song names to the esp32, as the sd card is going to be directly mounted to the dfplayer and there is no other way to save or read data form the sd using the dfplayermini. I created a new settings menu as wel."}, {"post_id": 40268, "ts": "2026-08-03T18:02:27Z", "hours": 4.2856, "text": "I spent so much time overthinking how to debug the 53 errors i got, turns out it was because of a semicolon…. btw this is a retro themed esp32 music play, because way too much stuff is digitalized and music shouldent be filled with ads!"}]...
|
Title: esp-pod by @krisander | Stardance
Devlogs: Title: esp-pod by @krisander | Stardance
Devlogs:
I spent so much time overthinking how to debug the 53 errors i got, turns out it was because of a semicolon…. btw this is a retro themed esp32 music play, because way too much stuff is digitalized and music shouldent be filled with ads!
i started rewriting the code so i can use little fs to save song names to the esp32, as the sd card is going to be directly mounted to the dfplayer and there is no other way to save or read data form the sd using the dfplayermini. I created a new settings menu as wel.
The display of my laptop broke :-( I have been coding uisng an external 7 inch monitor… These curly brackets are confusing me so much! But ill never stop this project till im done. Currently am rewriting the code for the menu and how to interact with it, i will andd bluetooth once im done with this base model!
currently writing the track selection code! Its throwing soooo many errors at me :-(
i started working on the settings part of the code . in getting hit with a lot of errors but im combing through the code and finding manyyy errors! ill update soon.
I finally got all the errors fixed! I’m going to flash and test this version and then add bluetooth! I’ll publish this version on github after that. :-)
im fixing a few errors it the menu like not being able to rename songs and fixing ui freezing and audio glitches, I got the base working and will start on bluetooth soon!
ok so the project works but i complete forgt to add the logic part of renaming songs etc, i deleted about 200 lines of code to update it. ill will post a breadboard prototype after fixing this version of code
I finished ver1.3, currenty debugging errors in ver1.3… Ill do a timlapse soon stay tuned for the hardware build montage!
I added code so that i can rename songs through the player but i have to clike abt 52 times per letter becaue the screen size and buttons are limited . If you have any ideas on optmizing the typing please feel free to suggest it in the comments!
just uploaded build montage on lapse go check it out
I’m currently fixing the keyboard navigation, and adding code to rename artists as well. I will update agian after fixing it.
I just dropped version 1.3 of the esp-pod on github , go check it out!
I found out i have to create a pcb so I’m doing it.
i fixed the schematics of the board. I added switches and labeled everything. I ran through the tests and it passed perfect.
i finished all the PCB Editing in about 5 hours!! I’m gonna put the PCB files on github soon. I”ll also send it for reshipping… hopefully it will be accepted.
Ships:
This is a retro themed mp3 player built around the esp32-wroom-1, this is version 1.3, this verson can play audio, browse through songs, add favorite songs, remane songs, artists and setsong duration. It has an inbuild keyboard wich makes it easy to type and save songs....
|
1793724549.4658616
|
1793810949.4658616
|
|
49653
|
Jumpy BALL! by @mohithkumar | Stardance
|
mohithkumar
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-02T16:24:54Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is pixel styled minigames which have been combined with help of global health system , and have unique Jump and running animation. I have made the sprites and background using pixilart and Canva. The game also have a unique minigame 3 which have been inspired by Mario.", "repo": "https://github.com/mohithkumar-kry/Fresh-Platformer", "demo": "https://mohithkumar-kry.itch.io/pixel-warrior"}]...
|
[{"post_id": 59640, "ts": "202 [{"post_id": 59640, "ts": "2026-09-01T15:40:39Z", "hours": 2.0336, "text": "Just completed my version 1 of pixel warrior. These are the current features for game version 1: -Added animations. -Added extra level(kind of Mario jumping). -Added winning screen. -Made levels little tougher."}, {"post_id": 52743, "ts": "2026-08-23T02:26:31Z", "hours": 6.4294, "text": "This is my first ever game, only death screen and winning screen is pending. The version 1 of game consist of 3 mini games."}]...
|
Title: Jumpy BALL! by @mohithkumar | Stardance
De Title: Jumpy BALL! by @mohithkumar | Stardance
Devlogs:
This is my first ever game, only death screen and winning screen is pending. The version 1 of game consist of 3 mini games.
Just completed my version 1 of pixel warrior. These are the current features for game version 1: -Added animations. -Added extra level(kind of Mario jumping). -Added winning screen. -Made levels little tougher.
Ships:
This is pixel styled minigames which have been combined with help of global health system , and have unique Jump and running animation. I have made the sprites and background using pixilart and Canva. The game also have a unique minigame 3 which have been inspired by Mario....
|
1793724548.300916
|
1793810948.300916
|
|
59105
|
monochrome by @jworden | Stardance
|
jworden
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T20:50:21Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a monochrome themed-minimalistic astronomy picture of the day site. the only challanges were getting the API to work, using vite, and getting my deploy.yml to work", "repo": "https://github.com/venjae/nasa-apod", "demo": "https://venjae.github.io/nasa-apod/"}]...
|
[{"post_id": 63160, "ts": "202 [{"post_id": 63160, "ts": "2026-09-06T20:08:04Z", "hours": 1.0028, "text": "finished site, minimalist monochrome theme"}]...
|
Title: monochrome by @jworden | Stardance
Devlogs Title: monochrome by @jworden | Stardance
Devlogs:
finished site, minimalist monochrome theme
Ships:
I made a monochrome themed-minimalistic astronomy picture of the day site. the only challanges were getting the API to work, using vite, and getting my deploy.yml to work...
|
1793724547.1163113
|
1793810947.1163113
|
|
35043
|
Time Tracker by @Karlito | Stardance
|
Karlito
|
1
|
13.0
|
21
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T11:17:13Z", "hours": 13.0, "multiplier": 1.66, "payout": 21, "blessing": "neutral", "text": "I have made a cool and simple time tracking tool. You can add activities, remove activities, click on the activities to start them or when they are started click on them to deactivate them. This was mainly built for my friend, but you’re free to use/improve it! The activities are tied to your account (which is just a simple GitHub oAuth) so you’re able to have data easily synced across multiple devices! I have learned a lot when making this project like the auth or working with a database. Its been really fun!", "repo": "https://github.com/Karlito05/time-tracker", "demo": "https://timer.karlito.dev/timer"}]...
|
[{"post_id": 43910, "ts": "202 [{"post_id": 43910, "ts": "2026-08-09T11:09:04Z", "hours": 5.3844, "text": "Devlog 2 - Long time no see! This will be the last devlog for this project because the scope is just very small. Overview I have added an overview page which sorts your your activities based on how much you time you spent on them. There is nothing much to be said about this, its just a simple database query. Final polish In preparation to ship this project I have been polishing the readme and ironing out some bugs. All considered I think it turned out great. It just works. What I gained from this project ? I think for how small this project was, I gained quite a lot. I have learned the basics of working with a DB, how server and the client communicate, auth, and some TS quirks. I really enjoyed making this! For whoever read this far, Thank you for giving a f*** :D and have a beautiful day!"}, {"post_id": 29027, "ts": "2026-07-15T17:54:20Z", "hours": 7.2081, "text": "DevLog 1 What a 7h this was :D UI I started simple with making the UI. For now the UI is pretty simple. Just a timer, acitivity selection and a add activity input. Auth I wanted the app to be usable for more users at once on multiple devices. This is sadly not possible to do with a simple cookie based data storage, so I had to implement an account system with a database. This proved to be pretty difficult as I never did such a thing. The Auth was simple enough, I found a YouTube tutorial for that and all went well. I decided to go for OAuth with GH, as it was pretty simple. I will probably expand this in the future :). The DB Oh the db… It was not enjoyable to setup. I went with Prisma to handle the difficult stuff for me, but still, the setup was not smooth. Somehow I think I hit like everything that could go wrong :D But in the end I somehow set it up. Using the db itself for storing and retrieving data is really good and intuitive. So that’s nice. Next Steps Next I plan to refine the UI (right now you have to refresh every time you add/remove/change active activity), add some profile page, add login page and add some overview for the tracked activities!"}]...
|
Title: Time Tracker by @Karlito | Stardance
Devlo Title: Time Tracker by @Karlito | Stardance
Devlogs:
DevLog 1 What a 7h this was :D UI I started simple with making the UI. For now the UI is pretty simple. Just a timer, acitivity selection and a add activity input. Auth I wanted the app to be usable for more users at once on multiple devices. This is sadly not possible to do with a simple cookie based data storage, so I had to implement an account system with a database. This proved to be pretty difficult as I never did such a thing. The Auth was simple enough, I found a YouTube tutorial for that and all went well. I decided to go for OAuth with GH, as it was pretty simple. I will probably expand this in the future :). The DB Oh the db… It was not enjoyable to setup. I went with Prisma to handle the difficult stuff for me, but still, the setup was not smooth. Somehow I think I hit like everything that could go wrong :D But in the end I somehow set it up. Using the db itself for storing and retrieving data is really good and intuitive. So that’s nice. Next Steps Next I plan to refine the UI (right now you have to refresh every time you add/remove/change active activity), add some profile page, add login page and add some overview for the tracked activities!
Devlog 2 - Long time no see! This will be the last devlog for this project because the scope is just very small. Overview I have added an overview page which sorts your your activities based on how much you time you spent on them. There is nothing much to be said about this, its just a simple database query. Final polish In preparation to ship this project I have been polishing the readme and ironing out some bugs. All considered I think it turned out great. It just works. What I gained from this project ? I think for how small this project was, I gained quite a lot. I have learned the basics of working with a DB, how server and the client communicate, auth, and some TS quirks. I really enjoyed making this! For whoever read this far, Thank you for giving a f*** :D and have a beautiful day!
Ships:
I have made a cool and simple time tracking tool. You can add activities, remove activities, click on the activities to start them or when they are started click on them to deactivate them. This was mainly built for my friend, but you’re free to use/improve it! The activities are tied to your account (which is just a simple GitHub oAuth) so you’re able to have data easily synced across multiple devices! I have learned a lot when making this project like the auth or working with a database. Its been really fun!...
|
1793724545.950217
|
1793810945.950217
|
|
40050
|
PenaltyIQ by @Praknoor | Stardance
|
Praknoor
|
1
|
24.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-31T19:00:34Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "this platform was made for a hackaton, but gg i got 3rd 😭….so basicly this web app is like a platform where a soccer player can have guidance on their form during the penalty kick……. it still needs some refinements i only had like 2 days for creating an app so yeah it may contain some bugs, currently the sign does not functions but u can enter as guest", "repo": "https://github.com/GurnoorLog/Penaltyiq-v2", "demo": "https://penaltyiq-v2.vercel.app/"}]...
|
[{"post_id": 38377, "ts": "202 [{"post_id": 38377, "ts": "2026-07-31T18:40:52Z", "hours": 24.055, "text": "yoo guys this is a platform i made for soccer players"}]...
|
Title: PenaltyIQ by @Praknoor | Stardance
Devlogs Title: PenaltyIQ by @Praknoor | Stardance
Devlogs:
yoo guys this is a platform i made for soccer players
Ships:
this platform was made for a hackaton, but gg i got 3rd 😭….so basicly this web app is like a platform where a soccer player can have guidance on their form during the penalty kick……. it still needs some refinements i only had like 2 days for creating an app so yeah it may contain some bugs, currently the sign does not functions but u can enter as guest...
|
1793724544.7637134
|
1793810944.7637134
|
|
66797
|
solar powered plant waterer by @eshalzohaib370 | S solar powered plant waterer by @eshalzohaib370 | Stardance...
|
eshalzohaib370
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: solar powered plant waterer by @eshalzohaib Title: solar powered plant waterer by @eshalzohaib370 | Stardance...
|
1793724543.8647692
|
1794329343.8647692
|
|
66796
|
My very own WebOS by @vihan_d26 | Stardance
|
vihan_d26
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @vihan_d26 | Stardance
|
1793724542.9416404
|
1794329342.9416404
|
|
30118
|
Connect 4 AI by @Kazamir | Stardance
|
Kazamir
|
1
|
29.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-22T10:03:00Z", "hours": 29.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Connect 4 AI This project is the culmination of the machine learning and pygame I have learned this year through incremental projects and combines my passion of AI/ML and board games into the classical Connect 4 game. This project took me a while, teaching me a lot about programming, as it took me 7 draft versions of the game before I was ready to publish it. By far the most fun part (apart from beating my friends) was building the computer algorithmns you play against. I learnt how UCB - a very simple stochastic algorithm could actually be quite strong if you give a lot of compute to it, defeating both MCTS and my deep learning algorithm, which I spent most of the time programming. The deep learning algorithm was a bit of a let down - it wasn’t as good as could have been, but while building it I learnt a lot about deep learning, and in the end of the day, thats all that matters. It was a fun project to make, and I am proud of it.", "repo": "https://github.com/JapneetSTalwar/Connect4", "demo": "https://kazamir.itch.io/connect-4"}]...
|
[{"post_id": 81741, "ts": "202 [{"post_id": 81741, "ts": "2026-10-22T09:56:17Z", "hours": 1.5919, "text": "Web Upload I learnt how to make my pygame avaliable to play on the web via Itch.io using pybag. It was much more complicated than I expected and I unfortunately had to ask AI to help me. Since my code used pytorch which is too big to upload on web, I had to sacrifice the MCTS and DMCTS AI to make the demo playable."}, {"post_id": 78220, "ts": "2026-10-10T00:36:43Z", "hours": 2.9881, "text": "I overhauled the UI, deciding to scrap the pixel background for a more minimalistic one. I learned how to import a font and use it and made some pretty decent looking buttons and peices."}, {"post_id": 31117, "ts": "2026-07-19T07:58:50Z", "hours": 2.0739, "text": "#Pixel Art I added a pixalart board and peices, and added a timer for ai move so it doesnt move too fast"}, {"post_id": 30069, "ts": "2026-07-17T11:10:34Z", "hours": 0.8986, "text": "Checkboxes I implemented checkboxes so that you can choose which model to play against."}, {"post_id": 29353, "ts": "2026-07-16T07:37:49Z", "hours": 11.1353, "text": "DEEP Monte Carlo Tree search (AlphaZero) In this update, I combined MCTS with a Deep learning model, mimicking that of AlphaZero. Why? Because I like deep learning and wanted to understand how reinforcement learning can work. Unfortunately the final model that came out wasn’t the best, but it is still stronger than a simple UCB algorithmn, if just barely, winning 60% of the time against UCB. The CNN Cnns are Deep learning networks - machine learning networks consisting of layers of neurons that process an input to an output, transform it and pass it to the next layer. CNNs are a type of network that performs a convolution operation when reading an image, reading the image in chunks, (4x4 in this case) and transforming the data into useable information for later layers, before finally deciding on a move. Features I used pytorch to code my network, and hence had to convert my image, a list of 1s,-1s and 0s representing a connect 4 board into a tensor. But before I can pass the board to the model (CNN) for prediction, I need to break the board up into features. To ensure that the model has enough information to learn the rules of the game, I broke the board into 4 feature boards. The first board contains 1s for free spots and 0s for occupied spots. The second board only shows player 1 peices and the third board only shows player 2 peices and the final board just shows 1s or -1s depending on whose turn it is. I converted these 4 boards into tensors and fed them into my network. Model Architecture The model architecture consists of 3 convolution blocks each which consists of a CNN, a reLu activation function and a batch normaliser. Finally, I have 2 heads, a value head and a policy head. The value head is a prediction of who is winning the game, whereas the policy head is the probabilities of the next best move. By choosing the highest probabilty, you can get the model’s next move. DMCTS To actually train and use the model, we combine it with the MCTS algorithm from my last devlog. During the MCTS simulation, whenever we reach a node which has already been explored, we choose the move using a rule that combines what the model recommends is best (via the policy head) and the average score of the node. When we reach a new node, instead of doing random rollouts to see who would win, we trust the model’s value head. Training Training occurs during self play where the model plays itself. At the start, each move is random, and the model predicts bad moves. But since the model is combined with MCTS, the model;s bad moves are eventually overwritten by better moves. At every move, the board and the model prediction are recorded. When we reach the end of the game, all the models values are replaced with the real results of the training, and each board state is stored in a databank. After every 10 games of self play, the model trains on a sample of these board states, updating the policy prediction by comparing the model’s policy values to MCTS’s run values and updating the model’s values by comparing who it thought was winning compared to who won. Post training After training around 12 generations of models, with each generation taking a few hours of training time, and bugfixing flawed models and architecture, I finally produced a model that can outmatch UCB. The real bottleneck was the MCTS, to train a better model, I would need more rollouts, but increasing rollouts increased the time each training run took. I trained the model with 500 rollouts, which isn’t the best, but was all I could afford. To make a better model I would need faster code and much more compute. In the end of the day, this was a very informative experiance on Reinforement Learning for me, and while the model isn’t the smartest, it isn’t incompetant either."}, {"post_id": 23850, "ts": "2026-07-07T01:16:19Z", "hours": 5.0719, "text": "Monte Carlo Tree Search The UCB is a good algorithmn, until you realise that it can only see 1 move into the future. A strong player for any project has the ability to stratagise, by predicting into the future. Monte Carlo Tree Search takes this UCB algorithm and gives it the ability to see into the future, creating a stronger AI opponent at the cost of compute. How it works Monte Carlo tree search, as it’s name suggests, builds a tree of future states to calculate which state is the best. The algorithm works in 4 steps - Selection, Expansion, Simulation and Backpropogation Selection At the start of the search, the parent node looks to its children node, which consist of the legal connect 4 moves, e.g 7 children for each column you can place a piece in. If each child has already been simulated at least once, the child with the highest UCB score is chosen and the process repeats until you reach a node where not all future moves have been simulated. Expansion Once you reach a new unexplored node, you fist expand the node, creating children for each of the possible states the next move can take. Simulation Once you have reached a node where all the children aren’t explored, one of these children are chosen, and a random rollout takes place, similiarly to the UCB algorithm Backpropogation After simulation, the results of the simulation (win or loss or draw) go back up the tree, updating each parent node with the updated win score. Decision making After enough simulations, the child of the original state with the highest run count is chosen - as this is deemed to be the most promising node by the algorithm Implementation Implementing this algorithm from scartch was harder than expected, but also fun! The only problem was that for higher simulation counts, such as 1,000 or 10,000, it takes a good few seconds for the algorithm to make a decision. I also somehow broke my original connect 4 code when trying to implement this program. I ran 100 simulations of MCTS vs UCB, both with 1000 simulations each, and MCTS only won 20 more games than ucb. I moved MCTS simulation count to 10000 and it won most of the games played."}, {"post_id": 22038, "ts": "2026-07-04T09:10:15Z", "hours": 0.3464, "text": "I remade the PvP mode so now the game is fully playable, added a purple background for the gameboard and made the background black for empty peices."}, {"post_id": 22030, "ts": "2026-07-04T08:46:56Z", "hours": 2.0686, "text": "This update was a revamp of my old code, I remade everything but the PVP section and made the screen resizable."}, {"post_id": 21410, "ts": "2026-07-03T10:40:53Z", "hours": 0.7989, "text": "Added easy, medium and hard mode - each being UCBs but with different runtimes. Also updated the buttons as they were outdated code"}, {"post_id": 21284, "ts": "2026-07-03T03:59:15Z", "hours": 1.9475, "text": "UCB - Upper Confidence Bound The UCB algorithm is an algorithm that I created to play connect 4. How it works The philosphy of UCB is doing random simulations of the game, and the move with the highest winrate in the random simulations is the best move. The problem UCB solves is given a set amount of simulations - called rollouts, how do you allocate the amount of rollouts each move gets? You want to spend more time on promising moves, and less on unpromising moves, but you still need to try these unpromising moves because they may be good, but have low winrates just due to random chance. This is decided by the UCB rule: UCBᵢ = avg(Xᵢ) + √( 2 ln(T) / nᵢ ) Which is the average winrate of the move i plus an optimism score. The more times you play a move, the chance that it is secretely a good move decreases. This ensures that you spend more time on good moves (high average) but also spend some times on worse moves that may turn out to be better by investing more rollouts on them. Implementation I implemented this into my connect 4 game I made, and allocated rollouts to 1000, so it makes 1000 random simulations to choose each move, and it kept on beating me. I had to reduce rollouts to 250 so I had a chance of winning."}]...
|
Title: Connect 4 AI by @Kazamir | Stardance
Devlo Title: Connect 4 AI by @Kazamir | Stardance
Devlogs:
UCB - Upper Confidence Bound The UCB algorithm is an algorithm that I created to play connect 4. How it works The philosphy of UCB is doing random simulations of the game, and the move with the highest winrate in the random simulations is the best move. The problem UCB solves is given a set amount of simulations - called rollouts, how do you allocate the amount of rollouts each move gets? You want to spend more time on promising moves, and less on unpromising moves, but you still need to try these unpromising moves because they may be good, but have low winrates just due to random chance. This is decided by the UCB rule: UCBᵢ = avg(Xᵢ) + √( 2 ln(T) / nᵢ ) Which is the average winrate of the move i plus an optimism score. The more times you play a move, the chance that it is secretely a good move decreases. This ensures that you spend more time on good moves (high average) but also spend some times on worse moves that may turn out to be better by investing more rollouts on them. Implementation I implemented this into my connect 4 game I made, and allocated rollouts to 1000, so it makes 1000 random simulations to choose each move, and it kept on beating me. I had to reduce rollouts to 250 so I had a chance of winning.
Added easy, medium and hard mode - each being UCBs but with different runtimes. Also updated the buttons as they were outdated code
This update was a revamp of my old code, I remade everything but the PVP section and made the screen resizable.
I remade the PvP mode so now the game is fully playable, added a purple background for the gameboard and made the background black for empty peices.
Monte Carlo Tree Search The UCB is a good algorithmn, until you realise that it can only see 1 move into the future. A strong player for any project has the ability to stratagise, by predicting into the future. Monte Carlo Tree Search takes this UCB algorithm and gives it the ability to see into the future, creating a stronger AI opponent at the cost of compute. How it works Monte Carlo tree search, as it’s name suggests, builds a tree of future states to calculate which state is the best. The algorithm works in 4 steps - Selection, Expansion, Simulation and Backpropogation Selection At the start of the search, the parent node looks to its children node, which consist of the legal connect 4 moves, e.g 7 children for each column you can place a piece in. If each child has already been simulated at least once, the child with the highest UCB score is chosen and the process repeats until you reach a node where not all future moves have been simulated. Expansion Once you reach a new unexplored node, you fist expand the node, creating children for each of the possible states the next move can take. Simulation Once you have reached a node where all the children aren’t explored, one of these children are chosen, and a random rollout takes place, similiarly to the UCB algorithm Backpropogation After simulation, the results of the simulation (win or loss or draw) go back up the tree, updating each parent node with the updated win score. Decision making After enough simulations, the child of the original state with the highest run count is chosen - as this is deemed to be the most promising node by the algorithm Implementation Implementing this algorithm from scartch was harder than expected, but also fun! The only problem was that for higher simulation counts, such as 1,000 or 10,000, it takes a good few seconds for the algorithm to make a decision. I also somehow broke my original connect 4 code when trying to implement this program. I ran 100 simulations of MCTS vs UCB, both with 1000 simulations each, and MCTS only won 20 more games than ucb. I moved MCTS simulation count to 10000 and it won most of the games played.
DEEP Monte Carlo Tree search (AlphaZero) In this update, I combined MCTS with a Deep learning model, mimicking that of AlphaZero. Why? Because I like deep learning and wanted to understand how reinforcement learning can work. Unfortunately the final model that came out wasn’t the best, but it is still stronger than a simple UCB algorithmn, if just barely, winning 60% of the time against UCB. The CNN Cnns are Deep learning networks - machine learning networks consisting of layers of neurons that process an input to an output, transform it and pass it to the next layer. CNNs are a type of network that performs a convolution operation when reading an image, reading the image in chunks, (4x4 in this case) and transforming the data into useable information for later layers, before finally deciding on a move. Features I used pytorch to code my network, and hence had to convert my image, a list of 1s,-1s and 0s representing a connect 4 board into a tensor. But before I can pass the board to the model (CNN) for prediction, I need to break the board up into features. To ensure that the model has enough information to learn the rules of the game, I broke the board into 4 feature boards. The first board contains 1s for free spots and 0s for occupied spots. The second board only shows player 1 peices and the third board only shows player 2 peices and the final board just shows 1s or -1s depending on whose turn it is. I converted these 4 boards into tensors and fed them into my network. Model Architecture The model architecture consists of 3 convolution blocks each which consists of a CNN, a reLu activation function and a batch normaliser. Finally, I have 2 heads, a value head and a policy head. The value head is a prediction of who is winning the game, whereas the policy head is the probabilities of the next best move. By choosing the highest probabilty, you can get the model’s next move. DMCTS To actually train and use the model, we combine it with the MCTS algorithm from my last devlog. During the MCTS simulation, whenever we reach a node which has already been explored, we choose the move using a rule that combines what the model recommends is best (via the policy head) and the average score of the node. When we reach a new node, instead of doing random rollouts to see who would win, we trust the model’s value head. Training Training occurs during self play where the model plays itself. At the start, each move is random, and the model predicts bad moves. But since the model is combined with MCTS, the model;s bad moves are eventually overwritten by better moves. At every move, the board and the model prediction are recorded. When we reach the end of the game, all the models values are replaced with the real results of the training, and each board state is stored in a databank. After every 10 games of self play, the model trains on a sample of these board states, updating the policy prediction by comparing the model’s policy values to MCTS’s run values and updating the model’s values by comparing who it thought was winning compared to who won. Post training After training around 12 generations of models, with each generation taking a few hours of training time, and bugfixing flawed models and architecture, I finally produced a model that can outmatch UCB. The real bottleneck was the MCTS, to train a better model, I would need more rollouts, but increasing rollouts increased the time each training run took. I trained the model with 500 rollouts, which isn’t the best, but was all I could afford. To make a better model I would need faster code and much more compute. In the end of the day, this was a very informative experiance on Reinforement Learning for me, and while the model isn’t the smartest, it isn’t incompetant either.
Checkboxes I implemented checkboxes so that you can choose which model to play against.
#Pixel Art I added a pixalart board and peices, and added a timer for ai move so it doesnt move too fast
I overhauled the UI, deciding to scrap the pixel background for a more minimalistic one. I learned how to import a font and use it and made some pretty decent looking buttons and peices.
Web Upload I learnt how to make my pygame avaliable to play on the web via Itch.io using pybag. It was much more complicated than I expected and I unfortunately had to ask AI to help me. Since my code used pytorch which is too big to upload on web, I had to sacrifice the MCTS and DMCTS AI to make the demo playable.
Ships:
Connect 4 AI This project is the culmination of the machine learning and pygame I have learned this year through incremental projects and combines my passion of AI/ML and board games into the classical Connect 4 game. This project took me a while, teaching me a lot about programming, as it took me 7 draft versions of the game before I was ready to publish it. By far the most fun part (apart from beating my friends) was building the computer algorithmns you play against. I learnt how UCB - a very simple stochastic algorithm could actually be quite strong if you give a lot of compute to it, defeating both MCTS and my deep learning algorithm, which I spent most of the time programming. The deep learning algorithm was a bit of a let down - it wasn’t as good as could have been, but while building it I learnt a lot about deep learning, and in the end of the day, thats all that matters. It was a fun project to make, and I am proud of it....
|
1793724541.75747
|
1793810941.75747
|
|
12888
|
Smart LED strip by @VladoK | Stardance
|
VladoK
|
1
|
27.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-11-01T00:05:31Z", "hours": 27.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello. I have made an NeoPixel LED strip controller with 13 modes and a custom TFT touchscreen display UI. It is based on ESP32. Why this? I decided to make this project because I wanted to have some nice decoration on the shelf near my bed. I decided that a NeoPixel strip running my custom modes would be nice. I added a lot of parameters to adjust because I wanted it to be really customizable. What it is? As I have mentioned before it is a NeoPixel led strip controller with a touchscreen UI, 13 different modes and all of them have adjustable parameters (through the display UI). It features some original modes you might not have seen before. So check it out.! I have much more detailed descriptions in my readme:). You can also see the modes in action on the youtube demo playlist. Challenges First, I have faced some hardware challenges, because I had trouble getting the display to work. It turned out to be a broken jumper wire. Then finding the correct library for the display was also a nightmare. Then came software problem. Because I am doing graphics on the ESP32 in this project and I am also using micropython, my ESP32 ran out of RAM. I solved this problem by moving all NeoPixel modes related functions in a separate file (pixAnimations.py). And I also optimized one UI displaying function (color picker). And now it runs without a problem. (More about the way software is structured in the README) What did I learn? My previous programs look horrible, bad code structure, radom variable names… I decided to change that in this project, I started giving each variable a more sensible name, so that I can know what it does even a year later. I divided the code into many functions so that is it easier to maintain and find things in it. I also added comments to make it more organized and labeled which section does what. I think that I have improved in this a lot and I am proud of myself in this aspect. Tell me what you think, is the code clear???", "repo": "https://github.com/vladimirkudlicka/SMART_LED_strip", "demo": "https://www.youtube.com/playlist?list=PLYp0B6ZtO7mI"}]...
|
[{"post_id": 85988, "ts": "202 [{"post_id": 85988, "ts": "2026-10-31T23:27:11Z", "hours": 0.4233, "text": "SMART LED strip devlog#8 Hi. Guys I have managed to upload videos of my project to YouTube and also finished my README. I have also catched some last bugs and I think I am ready to ship. Even though I have planned to do more I have a working version of my project. If you want to know how this project will continue in the future make sure to check out my github account after a month or two. Maybe I will also post some video on youtube when I add some other new features."}, {"post_id": 83923, "ts": "2026-10-28T22:01:12Z", "hours": 0.8931, "text": "SMART LED strip devlog#7 Hi. I managed to add some things as I have planned. As I have mentioned in the previous devlog, due to the quality of the toucscreen I miss somethimes and I fire up numeric keyboard or a color picking UI or the mode selecting UI. Now I added a pushbutton that gets you out of those withou changing any parameters. Simply press and release the pushutton and you are in the mode menu. You can also turn off the LED strip with the pushbutton if you hold it down longer and then release it. I have also made a turnoff animation to make it more interesting. And the last feature I added is the automatic display shutdown. That means that if you are not using the display for 2 minuites it will shut down. You can turn the display back on by touching it. (It won’t change any parameters on the wake up touch). So to sum it up. These are the new freatures. -display auto off when inactive -numeric keyboard, mode selector, and colorpicker escape button -led stip shutdown (using the same button but longer press) with a shutdown animation You can see the things in the video below"}, {"post_id": 82813, "ts": "2026-10-25T21:59:00Z", "hours": 3.8767, "text": "SMART LED strip devlog#6 Hi. I am back after some time again. I have great news. I managed to finish the display UI, for all modes. That means I can control every mode’s parameters and run the modes using the display UI. As a next step I need to finish my README and maybe add some more functions that I have mentioned in the previous devlogs. Like the PIR sensor auto-off function etc. But I am not sure if I will have enough time because I have a lot of tests this week and I am also going to visit my family at the end of the week. So, we will see what i will manage to acomplish. I am a bit sad that I will not manage to finish my project completely until the deadline. I had limited time on that because of school and competitions, but I could have worked more. In the videos below you can see that somethimes when I click on something, something else is done instead. It is not a software flaw. It is caused by the display quality. My display has a resistive touchscreen, that somethimes does not determine the touch point precisely enough. Video speed is 2x"}, {"post_id": 74842, "ts": "2026-09-28T12:43:17Z", "hours": 7.5308, "text": "SMART LED strip devlog#5 Hi guys I am back after a longer time again, unfortunately I will not manage to ship this project in time so I will at least post my progress here. :) What have I done: 1. I have added display UI for modes 0 to 5 , the UI for this modes is almost fully functional and reacting to touch, icluding colorPicker UI starting, numeric keyboard starting, boolean parameters change 2. I have encounered some RAM problems since my ESP uses RAM heavy display graphics and WiFi and NeoPixel animations, that is why I moved the NeoPixel mode functions and NeoPixel modes support functions into a separate module and now it works so much better. I also had tio optimise the ColorPicker UI creating function since it creates a huge buffer. I hope it will work OK now, so I can continue developing UI for other modes. -I have written a validation functions for numeric keyboard so that it will only accept valid parameter value. Future plans: -I am going to continue adding UI for the other modes. -I need to make a function to run and stop the modes using thread. - i am planning to add a speaker so that it can function as an alarm clock. -I am planning to add a PIR sensor so tht it can turn off when you leave the room."}, {"post_id": 62390, "ts": "2026-09-05T18:43:12Z", "hours": 2.6175, "text": "SMART LED strip (NeoPixel) Devlog#4 —————————————————————––I haven’t worked on this project for a long time but I am back. I have done some small work since I started again. I decided that I would be nicer to have something physical to controll brightness, so I added a brightness potentiometer , that meant some small hardware changes, but a lot of software changes. I had to make small changes in every mode, and now it is finished. I also faced some changellenges beause I had to make sure that the physical brightness controll will not interfere with the future WiFi controll. So I designed it so that if the brightness is set throught WiFi it will ignore the potentiometer value, unless you move the potentiometer and then it switches back to potentiometer control. Next I will move on to design the UI for the display."}, {"post_id": 27376, "ts": "2026-07-12T21:49:06Z", "hours": 5.46, "text": "SMART LED strip (NeoPixel) Devlog#3 NeoPixel modes update: I managed to finish the remaining 3 modes, random mode a.k.a. stars, and two soundbar modes. (Videos are included in the devlog). I am having some problems with the noise sensor because it seems to not be reacting to normal music, only to extreme loud noises like blowing into the microphone. Also the value in quiet changes every day so I added the calibration function. WiFi: I also managed to finish part of the code that connect the ESP32 to the wifi network. I also added a code that synchronizes time. This was quite hard because I used a NTP server which return UTC time. And my country is UTC+1 and we have daylight saving time. But, after about an 1.5 hour I finally managed to find a public API that returns the UTC offset based on the location that it figured out using your IP adress. And it works! (It took me such a long time because the APIs a have tried before requied HTTPS and my ESP32 didn’t have enougth RAM to manage it) More detailed project description: I have written 2 devlogs so far but I think I haven’t described my system enough. So, basically I am building a led strip for my room that will be controled by a display witch touscreen and a simple local web server. (if I don’t run out of RAM on my ESP32). It will have 12 modes and the parameters will be changable via the touchscreen and the web server. I am also planning to integrate a PIR sensor so that it can turn off the strip when I am not in the room (some parameters will be also changable here) and i will add a buzzer because I want it to serve as an alarm clock too. (I hope that light combined with sound will wake me up more easily :) ). System achitecture: I will run the neopixel mode functions on the core #2, because I want to make sure that the neopixel animations will run smoothly. I have written functions to display the color picker UI, numeric keyboard and mode picker, as well as the functions that process thouch during these modes. I am planning to write on big function in which I will process the mode setting UI touch events, and a function that will display the mode setting UI. Each time someone touches the diplay it triggers an IRQ which sets a flag, after that the touch is assigned to a touch handling function in the main loop. I will probably use another IRQ for the On/Off button and one for the PIR sensor. I will also write a function to start and stop running modes on core #2. Also an alarms function. The web server will run in the main loop and the requests will be handled by a function that the mainloop will call. Basically the main loop will can funtions and the functions will do something or call other functions. And IRQs will set flags to the main loop."}, {"post_id": 25549, "ts": "2026-07-09T21:20:01Z", "hours": 5.5586, "text": "Smart LED (NeoPixel) strip Devlog#2 Work done: Today I have been working on the mode functions. I have managed to write 9 of them today, which means there are 3 left for tommorow. I think I will be dreaming about for loops tonight after this. I have also fixed my HSV to RGB function because I found out that the fictional HSV color wheel was mirrored. Future plans: Tommorow I am planning to finish the mode functions, hook up an PIR sensor to the ESP32, so that the NeoPixel strip can turn off automatically when there is nobody in the room, and also write code that will process the noise level sensor raw values, so that they can be used in the soundbar mode. I also want to start designing the display UI that will allow me to change the mode parameters, because I have only finished the numeric input, color input and mode picker so far."}, {"post_id": 24946, "ts": "2026-07-08T20:36:35Z", "hours": 0.2619, "text": "Brief description:Creating display UI and planning the system architecture. I am currently designing elements of UI that will be used to modify parameters such as modes, colors, speed and brightness. Desining the color wheel was the hardest thing so far because I faced some problems with the framebuf library. (different way of storing information than my display library used) I used chatGPT to help me with this fix. I have also written down all the modes that I want to create and also defined what parameters I want to change on them using the UI. I have also thought of a way how to store those parameters and how to run the modes. I am planning to create functions for each mode and then run them as threads. I have also been solving some problems with HackaTime. (I have worked for at least 5 hrs not 15 mins) Because it does not support Thonny, so I decided to write the code in VS code and then run it on my ESP32 using Thonny."}]...
|
Title: Smart LED strip by @VladoK | Stardance
Dev Title: Smart LED strip by @VladoK | Stardance
Devlogs:
Brief description:Creating display UI and planning the system architecture. I am currently designing elements of UI that will be used to modify parameters such as modes, colors, speed and brightness. Desining the color wheel was the hardest thing so far because I faced some problems with the framebuf library. (different way of storing information than my display library used) I used chatGPT to help me with this fix. I have also written down all the modes that I want to create and also defined what parameters I want to change on them using the UI. I have also thought of a way how to store those parameters and how to run the modes. I am planning to create functions for each mode and then run them as threads. I have also been solving some problems with HackaTime. (I have worked for at least 5 hrs not 15 mins) Because it does not support Thonny, so I decided to write the code in VS code and then run it on my ESP32 using Thonny.
Smart LED (NeoPixel) strip Devlog#2 Work done: Today I have been working on the mode functions. I have managed to write 9 of them today, which means there are 3 left for tommorow. I think I will be dreaming about for loops tonight after this. I have also fixed my HSV to RGB function because I found out that the fictional HSV color wheel was mirrored. Future plans: Tommorow I am planning to finish the mode functions, hook up an PIR sensor to the ESP32, so that the NeoPixel strip can turn off automatically when there is nobody in the room, and also write code that will process the noise level sensor raw values, so that they can be used in the soundbar mode. I also want to start designing the display UI that will allow me to change the mode parameters, because I have only finished the numeric input, color input and mode picker so far.
SMART LED strip (NeoPixel) Devlog#3 NeoPixel modes update: I managed to finish the remaining 3 modes, random mode a.k.a. stars, and two soundbar modes. (Videos are included in the devlog). I am having some problems with the noise sensor because it seems to not be reacting to normal music, only to extreme loud noises like blowing into the microphone. Also the value in quiet changes every day so I added the calibration function. WiFi: I also managed to finish part of the code that connect the ESP32 to the wifi network. I also added a code that synchronizes time. This was quite hard because I used a NTP server which return UTC time. And my country is UTC+1 and we have daylight saving time. But, after about an 1.5 hour I finally managed to find a public API that returns the UTC offset based on the location that it figured out using your IP adress. And it works! (It took me such a long time because the APIs a have tried before requied HTTPS and my ESP32 didn’t have enougth RAM to manage it) More detailed project description: I have written 2 devlogs so far but I think I haven’t described my system enough. So, basically I am building a led strip for my room that will be controled by a display witch touscreen and a simple local web server. (if I don’t run out of RAM on my ESP32). It will have 12 modes and the parameters will be changable via the touchscreen and the web server. I am also planning to integrate a PIR sensor so that it can turn off the strip when I am not in the room (some parameters will be also changable here) and i will add a buzzer because I want it to serve as an alarm clock too. (I hope that light combined with sound will wake me up more easily :) ). System achitecture: I will run the neopixel mode functions on the core #2, because I want to make sure that the neopixel animations will run smoothly. I have written functions to display the color picker UI, numeric keyboard and mode picker, as well as the functions that process thouch during these modes. I am planning to write on big function in which I will process the mode setting UI touch events, and a function that will display the mode setting UI. Each time someone touches the diplay it triggers an IRQ which sets a flag, after that the touch is assigned to a touch handling function in the main loop. I will probably use another IRQ for the On/Off button and one for the PIR sensor. I will also write a function to start and stop running modes on core #2. Also an alarms function. The web server will run in the main loop and the requests will be handled by a function that the mainloop will call. Basically the main loop will can funtions and the functions will do something or call other functions. And IRQs will set flags to the main loop.
SMART LED strip (NeoPixel) Devlog#4 —————————————————————––I haven’t worked on this project for a long time but I am back. I have done some small work since I started again. I decided that I would be nicer to have something physical to controll brightness, so I added a brightness potentiometer , that meant some small hardware changes, but a lot of software changes. I had to make small changes in every mode, and now it is finished. I also faced some changellenges beause I had to make sure that the physical brightness controll will not interfere with the future WiFi controll. So I designed it so that if the brightness is set throught WiFi it will ignore the potentiometer value, unless you move the potentiometer and then it switches back to potentiometer control. Next I will move on to design the UI for the display.
SMART LED strip devlog#5 Hi guys I am back after a longer time again, unfortunately I will not manage to ship this project in time so I will at least post my progress here. :) What have I done: 1. I have added display UI for modes 0 to 5 , the UI for this modes is almost fully functional and reacting to touch, icluding colorPicker UI starting, numeric keyboard starting, boolean parameters change 2. I have encounered some RAM problems since my ESP uses RAM heavy display graphics and WiFi and NeoPixel animations, that is why I moved the NeoPixel mode functions and NeoPixel modes support functions into a separate module and now it works so much better. I also had tio optimise the ColorPicker UI creating function since it creates a huge buffer. I hope it will work OK now, so I can continue developing UI for other modes. -I have written a validation functions for numeric keyboard so that it will only accept valid parameter value. Future plans: -I am going to continue adding UI for the other modes. -I need to make a function to run and stop the modes using thread. - i am planning to add a speaker so that it can function as an alarm clock. -I am planning to add a PIR sensor so tht it can turn off when you leave the room.
SMART LED strip devlog#6 Hi. I am back after some time again. I have great news. I managed to finish the display UI, for all modes. That means I can control every mode’s parameters and run the modes using the display UI. As a next step I need to finish my README and maybe add some more functions that I have mentioned in the previous devlogs. Like the PIR sensor auto-off function etc. But I am not sure if I will have enough time because I have a lot of tests this week and I am also going to visit my family at the end of the week. So, we will see what i will manage to acomplish. I am a bit sad that I will not manage to finish my project completely until the deadline. I had limited time on that because of school and competitions, but I could have worked more. In the videos below you can see that somethimes when I click on something, something else is done instead. It is not a software flaw. It is caused by the display quality. My display has a resistive touchscreen, that somethimes does not determine the touch point precisely enough. Video speed is 2x
SMART LED strip devlog#7 Hi. I managed to add some things as I have planned. As I have mentioned in the previous devlog, due to the quality of the toucscreen I miss somethimes and I fire up numeric keyboard or a color picking UI or the mode selecting UI. Now I added a pushbutton that gets you out of those withou changing any parameters. Simply press and release the pushutton and you are in the mode menu. You can also turn off the LED strip with the pushbutton if you hold it down longer and then release it. I have also made a turnoff animation to make it more interesting. And the last feature I added is the automatic display shutdown. That means that if you are not using the display for 2 minuites it will shut down. You can turn the display back on by touching it. (It won’t change any parameters on the wake up touch). So to sum it up. These are the new freatures. -display auto off when inactive -numeric keyboard, mode selector, and colorpicker escape button -led stip shutdown (using the same button but longer press) with a shutdown animation You can see the things in the video below
SMART LED strip devlog#8 Hi. Guys I have managed to upload videos of my project to YouTube and also finished my README. I have also catched some last bugs and I think I am ready to ship. Even though I have planned to do more I have a working version of my project. If you want to know how this project will continue in the future make sure to check out my github account after a month or two. Maybe I will also post some video on youtube when I add some other new features.
Ships:
Hello. I have made an NeoPixel LED strip controller with 13 modes and a custom TFT touchscreen display UI. It is based on ESP32. Why this? I decided to make this project because I wanted to have some nice decoration on the shelf near my bed. I decided that a NeoPixel strip running my custom modes would be nice. I added a lot of parameters to adjust because I wanted it to be really customizable. What it is? As I have mentioned before it is a NeoPixel led strip controller with a touchscreen UI, 13 different modes and all of them have adjustable parameters (through the display UI). It features some original modes you might not have seen before. So check it out.! I have much more detailed descriptions in my readme:). You can also see the modes in action on the youtube demo playlist. Challenges First, I have faced some hardware challenges, because I had trouble getting the display to work. It turned out to be a broken jumper wire. Then finding the correct library for the display was also a nightmare. Then came software problem. Because I am doing graphics on the ESP32 in this project and I am also using micropython, my ESP32 ran out of RAM. I solved this problem by moving all NeoPixel modes related functions in a separate file (pixAnimations.py). And I also optimized one UI displaying function (color picker). And now it runs without a problem. (More about the way software is structured in the README) What did I learn? My previous programs look horrible, bad code structure, radom variable names… I decided to change that in this project, I started giving each variable a more sensible name, so that I can know what it does even a year later. I divided the code into many functions so that is it easier to maintain and find things in it. I also added comments to make it more organized and labeled which section does what. I think that I have improved in this a lot and I am proud of myself in this aspect. Tell me what you think, is the code clear???...
|
1793724537.9307797
|
1793810937.9307797
|
|
66795
|
WarioWare Game by @Abhishekkhiladi69 | Stardance
|
Abhishekkhiladi69
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @Abhishekkhiladi69 | Star Title: WarioWare Game by @Abhishekkhiladi69 | Stardance...
|
1793724537.019207
|
1794329337.019207
|
|
40529
|
hackclubai.ts by @Gavin | Stardance
|
Gavin
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-29T06:09:19Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "HackClubAI.ts is an all in one typescript solution to let you use Hack Club AI’s api routes in JS/TS with built in async calls, JSON-based tooling, web search, and helpful bootstrap utilities. Demo: Read the NPMjs page (demo link) or use https://brainbase-v8-temp.vercel.app/ with an api key from Hack Club AI.", "repo": "https://github.com/gavingogaming/hackclubai-ts", "demo": "https://brainbase-v8-temp.vercel.app/"}]...
|
[{"post_id": 43517, "ts": "202 [{"post_id": 43517, "ts": "2026-08-08T20:45:46Z", "hours": 1.3133, "text": "Made a first-version simple frontend called BrainbaseV8 for demo: https://brainbase-v8-temp.vercel.app/ Get a hackclub AI api key from https://ai.hackclub.com/ and input it to test it out! :D"}, {"post_id": 35734, "ts": "2026-07-27T11:16:32Z", "hours": 4.4681, "text": "Completed a first release (1.3.0) on npmjs with JSON based tooling, web search, config, and SSE streaming. (While code screenshots are usually frowned upon I don’t have a UI to show this yet and wanted to get a devlog out :))"}]...
|
Title: hackclubai.ts by @Gavin | Stardance
Devlog Title: hackclubai.ts by @Gavin | Stardance
Devlogs:
Completed a first release (1.3.0) on npmjs with JSON based tooling, web search, config, and SSE streaming. (While code screenshots are usually frowned upon I don’t have a UI to show this yet and wanted to get a devlog out :))
Made a first-version simple frontend called BrainbaseV8 for demo: https://brainbase-v8-temp.vercel.app/ Get a hackclub AI api key from https://ai.hackclub.com/ and input it to test it out! :D
Ships:
HackClubAI.ts is an all in one typescript solution to let you use Hack Club AI’s api routes in JS/TS with built in async calls, JSON-based tooling, web search, and helpful bootstrap utilities. Demo: Read the NPMjs page (demo link) or use https://brainbase-v8-temp.vercel.app/ with an api key from Hack Club AI....
|
1793724535.7846208
|
1793810935.7846208
|
|
32126
|
Astrex VPN by @ThatWorks | Stardance
|
ThatWorks
|
1
|
52.25
|
625
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T17:57:10Z", "hours": 52.0, "multiplier": 14.1, "payout": 625, "blessing": "neutral", "text": "🚀 Building a VPN I actually want to use! I’m creating an open-source, cross-platform VPN client powered by the most resilient protocols - VLESS + REALITY and Hysteria 2. Frustrated by ad-heavy apps and shady privacy policies, I decided to build my own full ecosystem from scratch—including custom servers, node architecture, and native apps for macOS and Android (Windows & Linux coming soon!). Super proud to turn this idea into reality and keep it completely clean and transparent. Give it a try and download the builds at https://astrex.club !", "repo": "https://github.com/theorynow/AstrexVPN", "demo": "https://astrex.club"}]...
|
[{"post_id": 49960, "ts": "202 [{"post_id": 49960, "ts": "2026-08-18T23:05:08Z", "hours": 0.2522, "text": "A short video that shows the app in action. Download it for Android and macOS at https://astrex.club . Don’t forget to use a promo code for free traffic - TRIAL 🔥"}, {"post_id": 46441, "ts": "2026-08-13T17:31:58Z", "hours": 1.2156, "text": "Fixed the x86_64 (Intel) build issues for macOS. Sing-box now compiles seamlessly for both ARM64 and Intel architectures."}, {"post_id": 46368, "ts": "2026-08-13T15:20:54Z", "hours": 2.5178, "text": "Updated the design and the icon, added a new server, made some minor adjustments to the server-switching logic."}, {"post_id": 45383, "ts": "2026-08-11T20:02:10Z", "hours": 2.2822, "text": "I’ve been so focused on the client lately that I haven’t posted a devlog about the custom backend I’ve been building in the background for about 10 hours (the time actually doesn’t match this devlog, but it’s already synced to the main counter - a bit of a weird system). The whole architecture runs on a central Hub that stores user data and traffic, with individual nodes connecting to it via WebSockets so users can easily fetch active nodes and route their connections. The most interesting challenge was figuring out how to update the Xray core config on the nodes without any restarts—I managed to hook into Xray’s gRPC API to inject users and track traffic on the fly, while Hysteria handles the same tasks at the rest level. I also spun up a quick landing page for app downloads at https://astrex.club , but since I completely vibecoded, I kept it off the project time tracker to keep things fair. If you want to poke around under the hood, you can check out the API docs at https://hub.astrex.skyfly.hackclub.app/docs and the public Grafana dashboard here: https://grafana.hub.astrex.skyfly.hackclub.app/public-dashboards/f396f592ce994d128f9b2a321030ad58"}, {"post_id": 45146, "ts": "2026-08-11T13:28:32Z", "hours": 3.9036, "text": "Finally automated releases. One Gradle task now handles the whole process: updates versions in Android and iOS from libs.versions.toml, generates signed split APKs per architecture, and kicks off the macOS DMG build. (Plus, I finally fixed the issue where release builds were somehow still using the debug key…) Also added a small UI polish."}, {"post_id": 42860, "ts": "2026-08-07T20:18:39Z", "hours": 3.3008, "text": "Added promo codes and deeplinks. The plan is to put a “Try Trial” button on the website that deep-links straight into the app and auto-claims free traffic. To stop bots from abusing this, hooked up Abuse Shield with silent guest auth across our Axum backend and KMP client. Android uses ANDROID_ID, while iOS and macOS generate a persistent 256-bit key in Keychain to authenticate devices without login screens. It’s still a fairly basic check for now, but better than nothing. The rest was UI cleanup."}, {"post_id": 42171, "ts": "2026-08-06T19:44:17Z", "hours": 8.0311, "text": "Localization sat in the backlog forever, but I finally knocked it out using moko-resources. Dropped a language picker into the account screen too. Also added live TCP pings to the server list (previously there were mocks). The rest was mostly cleanup. Refreshed the account screen ui, properly organized folders by feature, and mapped backend errors to actual translated text instead of dumping raw unlocalized strings on the user. Next on the list is deeplinks. The plan is to let people claim their traffic via a link rather than just giving it away on signup - mainly to filter out bots. Once that’s sorted, I can finally start handing the client out for testing."}, {"post_id": 39181, "ts": "2026-08-01T23:37:52Z", "hours": 1.4764, "text": "Sparkle updates are finally working on macOS. Xcode was being a pain and ignoring version numbers from Info.plist, but got it sorted. Also fixed that annoying bug where the connection timer reset to zero whenever you navigated away from the home screen. Now we just calculate elapsed time dynamically - Android saves it in prefs, and macOS just asks the system how long sing-box has been running."}, {"post_id": 36995, "ts": "2026-07-29T13:26:34Z", "hours": 1.6144, "text": "Fixed a crash that only showed up when switching protocols really fast on Android. Every switch was doing a full restart of the VPN under the hood - kill the old connection, start a new one. The problem is the old connection’s background threads didn’t have time to clean up before the new ones started, and they’d end up colliding. Rare, but when it hit, the whole app went down. Turns out the library we use (sing-box) actually has a built-in way to swap configs without restarting anything - just feed it the new config and it handles the rest. Switched to that, crash is gone."}, {"post_id": 36580, "ts": "2026-07-28T19:48:21Z", "hours": 11.6572, "text": "Two commits in since the last post. MacOS is finally working - sing-box integration needed a proper rewrite, took longer than it should’ve. Also hooked up the backend to actual UI - server list, traffic, account, connect/disconnect - all talking to the rust (Axum) backend now. Plus added an in-app update widget to the UI. Android is fully working end to end at this point. Currently integrating Sparkle for auto-updates on macOS. More soon."}, {"post_id": 32977, "ts": "2026-07-22T14:22:53Z", "hours": 15.8939, "text": "So, first devlog - let’s go. I’ve been working on Astrex VPN for a while now and figured it’s time to start talking about it. Honestly, a big chunk of my time has gone into design, way more than I expected - I just can’t ship something that doesn’t look and feel right to me. The client is cross-platform, built with Kotlin Multiplatform and sing-box doing the heavy lifting under the hood. The backend is in Rust, which has been a great choice so far. Architecturally, the whole thing runs on a hub-and-node setup: the hub sits in the middle managing connections, and the nodes are individual servers that reach out to the hub and talk to it over WebSocket. Still a lot to do, but it’s coming together. More updates soon."}]...
|
Title: Astrex VPN by @ThatWorks | Stardance
Devlo Title: Astrex VPN by @ThatWorks | Stardance
Devlogs:
So, first devlog - let’s go. I’ve been working on Astrex VPN for a while now and figured it’s time to start talking about it. Honestly, a big chunk of my time has gone into design, way more than I expected - I just can’t ship something that doesn’t look and feel right to me. The client is cross-platform, built with Kotlin Multiplatform and sing-box doing the heavy lifting under the hood. The backend is in Rust, which has been a great choice so far. Architecturally, the whole thing runs on a hub-and-node setup: the hub sits in the middle managing connections, and the nodes are individual servers that reach out to the hub and talk to it over WebSocket. Still a lot to do, but it’s coming together. More updates soon.
Two commits in since the last post. MacOS is finally working - sing-box integration needed a proper rewrite, took longer than it should’ve. Also hooked up the backend to actual UI - server list, traffic, account, connect/disconnect - all talking to the rust (Axum) backend now. Plus added an in-app update widget to the UI. Android is fully working end to end at this point. Currently integrating Sparkle for auto-updates on macOS. More soon.
Fixed a crash that only showed up when switching protocols really fast on Android. Every switch was doing a full restart of the VPN under the hood - kill the old connection, start a new one. The problem is the old connection’s background threads didn’t have time to clean up before the new ones started, and they’d end up colliding. Rare, but when it hit, the whole app went down. Turns out the library we use (sing-box) actually has a built-in way to swap configs without restarting anything - just feed it the new config and it handles the rest. Switched to that, crash is gone.
Sparkle updates are finally working on macOS. Xcode was being a pain and ignoring version numbers from Info.plist, but got it sorted. Also fixed that annoying bug where the connection timer reset to zero whenever you navigated away from the home screen. Now we just calculate elapsed time dynamically - Android saves it in prefs, and macOS just asks the system how long sing-box has been running.
Localization sat in the backlog forever, but I finally knocked it out using moko-resources. Dropped a language picker into the account screen too. Also added live TCP pings to the server list (previously there were mocks). The rest was mostly cleanup. Refreshed the account screen ui, properly organized folders by feature, and mapped backend errors to actual translated text instead of dumping raw unlocalized strings on the user. Next on the list is deeplinks. The plan is to let people claim their traffic via a link rather than just giving it away on signup - mainly to filter out bots. Once that’s sorted, I can finally start handing the client out for testing.
Added promo codes and deeplinks. The plan is to put a “Try Trial” button on the website that deep-links straight into the app and auto-claims free traffic. To stop bots from abusing this, hooked up Abuse Shield with silent guest auth across our Axum backend and KMP client. Android uses ANDROID_ID, while iOS and macOS generate a persistent 256-bit key in Keychain to authenticate devices without login screens. It’s still a fairly basic check for now, but better than nothing. The rest was UI cleanup.
Finally automated releases. One Gradle task now handles the whole process: updates versions in Android and iOS from libs.versions.toml, generates signed split APKs per architecture, and kicks off the macOS DMG build. (Plus, I finally fixed the issue where release builds were somehow still using the debug key…) Also added a small UI polish.
I’ve been so focused on the client lately that I haven’t posted a devlog about the custom backend I’ve been building in the background for about 10 hours (the time actually doesn’t match this devlog, but it’s already synced to the main counter - a bit of a weird system). The whole architecture runs on a central Hub that stores user data and traffic, with individual nodes connecting to it via WebSockets so users can easily fetch active nodes and route their connections. The most interesting challenge was figuring out how to update the Xray core config on the nodes without any restarts—I managed to hook into Xray’s gRPC API to inject users and track traffic on the fly, while Hysteria handles the same tasks at the rest level. I also spun up a quick landing page for app downloads at https://astrex.club , but since I completely vibecoded, I kept it off the project time tracker to keep things fair. If you want to poke around under the hood, you can check out the API docs at https://hub.astrex.skyfly.hackclub.app/docs and the public Grafana dashboard here: https://grafana.hub.astrex.skyfly.hackclub.app/public-dashboards/f396f592ce994d128f9b2a321030ad58
Updated the design and the icon, added a new server, made some minor adjustments to the server-switching logic.
Fixed the x86_64 (Intel) build issues for macOS. Sing-box now compiles seamlessly for both ARM64 and Intel architectures.
A short video that shows the app in action. Download it for Android and macOS at https://astrex.club . Don’t forget to use a promo code for free traffic - TRIAL 🔥
Ships:
🚀 Building a VPN I actually want to use! I’m creating an open-source, cross-platform VPN client powered by the most resilient protocols - VLESS + REALITY and Hysteria 2. Frustrated by ad-heavy apps and shady privacy policies, I decided to build my own full ecosystem from scratch—including custom servers, node architecture, and native apps for macOS and Android (Windows & Linux coming soon!). Super proud to turn this idea into reality and keep it completely clean and transparent. Give it a try and download the builds at https://astrex.club !...
|
1793724534.4661875
|
1793810934.4661875
|
|
66794
|
My awesome macropad! by @eshalzohaib370 | Stardanc My awesome macropad! by @eshalzohaib370 | Stardance...
|
eshalzohaib370
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @eshalzohaib370 | S Title: My awesome macropad! by @eshalzohaib370 | Stardance...
|
1793724533.5225275
|
1794329333.5225275
|
|
22856
|
Verstappen by @jphwb | Stardance
|
jphwb
|
1
|
1.0
|
7
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T06:50:13Z", "hours": 1.0, "multiplier": 4.78, "payout": 7, "blessing": "neutral", "text": "I made a slack bot called Verstappen and it just gives you info on Verstappen, it can tell a joke, say a quote from him and you can check his stats from every season he’s completed from 2015 to 2025. I used OpenF1 API to get all the info.", "repo": "https://github.com/jphwba/verstappen-slackbot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BC29MHNR1"}]...
|
[{"post_id": 13569, "ts": "202 [{"post_id": 13569, "ts": "2026-06-22T06:48:22Z", "hours": 0.5353, "text": "Finished the program and I added all the icons and details"}, {"post_id": 12415, "ts": "2026-06-20T08:11:27Z", "hours": 0.535, "text": "Using OpenF1 API when the user runs /verstappen-info it shows them info on Max Verstappen. when they run /verstappen-quote it shows them a random quote from a list of quotes said by verstappen."}, {"post_id": 12397, "ts": "2026-06-20T07:15:38Z", "hours": 0.3481, "text": "Made the basic code from the guide so it says a catfact, a joke and displays the help menu and ping."}]...
|
Title: Verstappen by @jphwb | Stardance
Devlogs:
Title: Verstappen by @jphwb | Stardance
Devlogs:
Made the basic code from the guide so it says a catfact, a joke and displays the help menu and ping.
Using OpenF1 API when the user runs /verstappen-info it shows them info on Max Verstappen. when they run /verstappen-quote it shows them a random quote from a list of quotes said by verstappen.
Finished the program and I added all the icons and details
Ships:
I made a slack bot called Verstappen and it just gives you info on Verstappen, it can tell a joke, say a quote from him and you can check his stats from every season he’s completed from 2015 to 2025. I used OpenF1 API to get all the info....
|
1793724530.451154
|
1793810930.451154
|
|
66793
|
My awesome macropad! by @Lizardy | Stardance
|
Lizardy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Lizardy | Stardanc Title: My awesome macropad! by @Lizardy | Stardance...
|
1793724528.606935
|
1794329328.606935
|
|
121
|
Image to Equation converter by @cziwu2010 | Starda Image to Equation converter by @cziwu2010 | Stardance...
|
cziwu2010
|
2
|
36.0
|
581
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-07T05:37:27Z", "hours": 27.0, "multiplier": 18.45, "payout": 445, "blessing": "neutral", "text": "A program that converts an image into a graph. Improved: Reduced equation output amount by almost half, allowing more detailed graphs without crashing desmos New architecture debug option What’s next: color", "repo": "https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2", "demo": "https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2/releases/tag/v1.1"}, {"ship_num": 2, "ts": "2026-06-04T17:39:26Z", "hours": 9.0, "multiplier": 15.16, "payout": 136, "blessing": "neutral", "text": "My first major project: a raster image to equation converter. It converts the upload image into a set of equations that when plotted shows the edges of the image. There’s still limitations from the programme but I continue on iterating and improving on it.", "repo": "https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2", "demo": "https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2/releases/tag/v1.1"}]...
|
[{"post_id": 77483, "ts": "202 [{"post_id": 77483, "ts": "2026-10-07T05:30:07Z", "hours": 3.6806, "text": "v1.1 is complete: https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2/releases/tag/v1.1"}, {"post_id": 75474, "ts": "2026-09-30T06:00:02Z", "hours": 11.6989, "text": "ok so i just relogged into stardance and i forgot to devlog it so now i have 11hours and 34minutes unlogged. So basically i tested multiple methods to reduce the equation count and also trying to get rid of the potrace double line and I finally did it. The previous version using potrace outputed 1398 equations while the new one outputed only 649. Almost halfed the previous amount. And now it’s just a single line compared to the double lines that potrace outputed. I’m planning to put this on browser so it’s easily accessable. (first image: previous ver, second image: new reduced ver third image: potrace double line output fourth image: reduced ver) to see the code: skanny.py https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2"}, {"post_id": 57379, "ts": "2026-08-29T14:42:40Z", "hours": 10.7344, "text": "update: Improved the converter to output wayyyyyy fewer equations while maintaining graph quality and improved performance"}, {"post_id": 4138, "ts": "2026-06-07T10:34:49Z", "hours": 0.4356, "text": "turned this into an executable"}, {"post_id": 2255, "ts": "2026-06-04T17:23:28Z", "hours": 1.5056, "text": "okay"}, {"post_id": 1314, "ts": "2026-06-03T07:17:24Z", "hours": 3.1794, "text": "Will prob release this week. Almost done"}, {"post_id": 238, "ts": "2026-06-01T11:18:07Z", "hours": 4.5825, "text": "in progress"}]...
|
Title: Image to Equation converter by @cziwu2010 | Title: Image to Equation converter by @cziwu2010 | Stardance
Devlogs:
in progress
Will prob release this week. Almost done
okay
turned this into an executable
update: Improved the converter to output wayyyyyy fewer equations while maintaining graph quality and improved performance
ok so i just relogged into stardance and i forgot to devlog it so now i have 11hours and 34minutes unlogged. So basically i tested multiple methods to reduce the equation count and also trying to get rid of the potrace double line and I finally did it. The previous version using potrace outputed 1398 equations while the new one outputed only 649. Almost halfed the previous amount. And now it’s just a single line compared to the double lines that potrace outputed. I’m planning to put this on browser so it’s easily accessable. (first image: previous ver, second image: new reduced ver third image: potrace double line output fourth image: reduced ver) to see the code: skanny.py https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2
v1.1 is complete: https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2/releases/tag/v1.1
Ships:
My first major project: a raster image to equation converter. It converts the upload image into a set of equations that when plotted shows the edges of the image. There’s still limitations from the programme but I continue on iterating and improving on it.
A program that converts an image into a graph. Improved: Reduced equation output amount by almost half, allowing more detailed graphs without crashing desmos New architecture debug option What’s next: color...
|
1793724527.3855627
|
1793810927.3855627
|
|
66792
|
PHY STUFF by @TXJ_PROGRAMER | Stardance
|
TXJ_PROGRAMER
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: PHY STUFF by @TXJ_PROGRAMER | Stardance
|
1793724526.4632452
|
1794329326.4632452
|
|
66790
|
MYPEROSNALWEBSITE@ by @rudranshjain | Stardance
|
rudranshjain
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: MYPEROSNALWEBSITE@ by @rudranshjain | Stard Title: MYPEROSNALWEBSITE@ by @rudranshjain | Stardance...
|
1793724525.556352
|
1794329325.556352
|
|
28066
|
Hackmusic Studio by @Dasher2801 | Stardance
|
|
1
|
7.0
|
19
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-28T17:51:47Z", "hours": 7.0, "multiplier": 2.77, "payout": 19, "blessing": "neutral", "text": "I built Hackmusic, an online tool that lets you click on notes ranging from C5 to C6 (displayed as boxes) and play them back at various speeds between 80 and 180 BPM.", "repo": "https://github.com/Dasher2801/Hackmusic-Studio", "demo": "https://dasher2801.github.io/Hackmusic-Studio/"}]...
|
[{"post_id": 36510, "ts": "202 [{"post_id": 36510, "ts": "2026-07-28T17:47:13Z", "hours": 0.5711, "text": "I’ve added more notes; since five weren’t enough for me, there are now eight. The musicians among you will instantly understand—eight notes must mean an octave. Exactly: it’s the octave from C5 to C6. I also created a style.css file and a corresponding script.js file."}, {"post_id": 18187, "ts": "2026-06-29T07:39:11Z", "hours": 6.1522, "text": "I created hackmusic-studio. You can click on various boxes across six pitch levels, each spaced a third apart. As the playhead moves across the row of boxes, the notes play in sequence. You can control the speed yourself; anything from 80 to 180 BPM is possible."}]...
|
Title: Hackmusic Studio by @Dasher2801 | Stardance Title: Hackmusic Studio by @Dasher2801 | Stardance
Devlogs:
I created hackmusic-studio. You can click on various boxes across six pitch levels, each spaced a third apart. As the playhead moves across the row of boxes, the notes play in sequence. You can control the speed yourself; anything from 80 to 180 BPM is possible.
I’ve added more notes; since five weren’t enough for me, there are now eight. The musicians among you will instantly understand—eight notes must mean an octave. Exactly: it’s the octave from C5 to C6. I also created a style.css file and a corresponding script.js file.
Ships:
I built Hackmusic, an online tool that lets you click on notes ranging from C5 to C6 (displayed as boxes) and play them back at various speeds between 80 and 180 BPM....
|
1793724524.6598444
|
1793810924.6598444
|
|
66789
|
Space OS by @arnavseth | Stardance
|
arnavseth
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Space OS by @arnavseth | Stardance
|
1793724523.770296
|
1794329323.770296
|
|
38944
|
My very own WebOS by @logannavaia | Stardance
|
logannavaia
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-25T03:55:43Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own personal web!! I took a long time as you can see but I am happy because I have tried to make many projects and never finished. There is a secret surprise when you out your cursor on the box hint.. its a Pokemon!! I think my website really reflects me !!", "repo": "https://github.com/logannavaia-lang/myweb", "demo": "https://logannavaia-lang.github.io/myweb/"}]...
|
[{"post_id": 34424, "ts": "202 [{"post_id": 34424, "ts": "2026-07-25T03:53:28Z", "hours": 0.7047, "text": "finished it now!! ik its not the best but its my first ever finished project!!"}, {"post_id": 34401, "ts": "2026-07-25T02:43:22Z", "hours": 3.2017, "text": "Added some stuff!! Any tips will be appreciated"}, {"post_id": 33864, "ts": "2026-07-24T04:01:32Z", "hours": 1.0658, "text": "Working on my own web page !! It sucks I know but I am new, I tried to add a picture and that didn’t work so I figured out how to make a gradient"}]...
|
Title: My very own WebOS by @logannavaia | Stardan Title: My very own WebOS by @logannavaia | Stardance
Devlogs:
Working on my own web page !! It sucks I know but I am new, I tried to add a picture and that didn’t work so I figured out how to make a gradient
Added some stuff!! Any tips will be appreciated
finished it now!! ik its not the best but its my first ever finished project!!
Ships:
I made my own personal web!! I took a long time as you can see but I am happy because I have tried to make many projects and never finished. There is a secret surprise when you out your cursor on the box hint.. its a Pokemon!! I think my website really reflects me !!...
|
1793724522.6060412
|
1793810922.6060412
|
|
66788
|
Personal Ai Assistant by @Xdreamninja | Stardance
|
Xdreamninja
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Personal Ai Assistant by @Xdreamninja | Sta Title: Personal Ai Assistant by @Xdreamninja | Stardance...
|
1793724521.720975
|
1794329321.720975
|
|
29690
|
Robotic Gripper Arm by @ianselizhuk | Stardance
|
ianselizhuk
|
1
|
17.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-07T06:04:51Z", "hours": 17.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hey! It’s been a while since the last devlog as I went away for a little and got busy with other stuff. I really wanted to finish this project even if it wasn’t the best product as I’ll be away for over a week, so here it is. It’s pretty basic and not as complex as I wanted it to be when I started, but it works and thats all that matters to me right now. The video of the project shows the gripper arm working, grabbing the base on my first prototype which is ironic. Thank you for all the support, sorry if the end product didn’t reach the hype.", "repo": "https://github.com/fossa27/Robotic-Gripper-Arm", "demo": ""}]...
|
[{"post_id": 32177, "ts": "202 [{"post_id": 32177, "ts": "2026-07-21T05:07:42Z", "hours": 5.1331, "text": "Devlog #4 - Main Base Redesign + Torque Up & TPU Gripper Redesign First of all, thank you all so much for the support on my last devlog, it means a lot. In my last devlog I discussed either getting new servo motors or torqueing up my current motors, and I went with the latter. I have redesigned the main base of my gripper arm & added more gears to torque it up, with only a basic 2 gear ratio. The CAD of this was horrific to make and also looks horrific, but at least its functional? (Hopefully) I also redesigned the TPU gripper by adding a multistable structure. “Multistable” just means it has more than one stable state, with the idea being that as the gripper closes, it has an easier time squishing into the second state. I will soon reprint the gears and main base and build it soon. Assuming it works as intended I will probably add a pressure sensor, work that into my code, and then ship it. Only if this works though… Thank you so much for the recent support once again!"}, {"post_id": 27932, "ts": "2026-07-13T21:18:32Z", "hours": 4.3678, "text": "Devlog #3 - TPU Gripper Redesign & Rebuild It’s been a little since my last devlog, and that’s for good reason. At the end of my last devlog I mentioned an issue I had, which was that the servo wasn’t powerful enough to supply a constant force to actually grab anything, and that even if I had a motor powerful enough to do that, it would use a lot of energy. I have been trying to solve this issue with a compliant mechanism. The TPU in my last design was 72D, which is really hard and not what I was looking for, but it was what I had. I went and bought 95A TPU which is much softer and squishier, making it ideal for this use case. I also redesigned the gripper arm itself so that it will never contact the second arm, so only the TPU parts close in on each other. I also shifted the holes on the gripper to account for this, and adjusted the angle of the gripper so that it closes cleanly. I have reprinted everything and rewired it, but I’m facing a similar issue. I expected that after the gripper makes contact with an object, the servo will still work, causing the gripper to compact, which would cause the necessary pressure to actually hold the object in place, but it didn’t do that. It seems that the servo just stops running after the slightest bit of resistance, which isn’t ideal. I am currently planning to adding some high friction material on the inside to help with that but I need more effective solutions. My main idea right now is to torque up the servos, but that’ll obviously slow it down and also I’m not sure about the reliability of 3D-printed gears, but we’ll see. Any help would be GREATLY appreciated right now. Thank you!"}, {"post_id": 23012, "ts": "2026-07-05T18:44:30Z", "hours": 2.3175, "text": "Devlog #2 - Robotic Gripper Arm Build + Wiring You can check my first devlog to understand what I’m building and the CAD behind it. I printed all the parts with PLA and the gripper arms with TPU, and assembled them. Something I forgot to mention in the first devlog is that the assembly doesn’t require any screws (besides the ones that come with the servos), and all attachments are printed pegs that create friction fits. I first started by wiring one servo and just making sure the gears and movement works properly. I did have to fix the gears as they weren’t meshing properly, so I increased the pitch diameter by .5 mm. The servo kept browning out and wasn’t able to move both arms a lot, then I remembered that I created it for two servos. I wired everything up and this is what I have so far! Currently, my main issue is that its not really holding anything well. I realized that with us humans we dont just move our fingers but we also hold pressure down to make sure any object we hold doesn’t fall, so I’ll need to figure something out. Any critiques, comments, or concerns would be much appreciated, so feel free to comment down below. Thank you!"}, {"post_id": 22327, "ts": "2026-07-04T18:59:08Z", "hours": 4.8342, "text": "Devlog #1 - Robotic Gripper Arm CAD Hello! I am currently working on a robotic gripper arm that, when finished, will have TPU arms, be powered by an Arduino, and have a pressure sensor to carefully grab whatever object it’s trying to grab. I have spent the last couple of days making each part in Onshape and making an assembly, which is shown by the GIF (which I dont think works for some reason, quite sad). I started with a basic servo model, which I created a case around. I next added a gear attachment to the servo, which also connects to the handle of the gripper. Once I connected all those parts on the assembly with revolve mates, I worked on the lever thats directly connects the base to the handle, which I then added to the assembly (with only a couple modifications that messed everything up.) Overall, I am quite happy with this current model, and I will start printing the parts soon and work on assembly of the mechanical aspect of this build, and make any adjustments on the CAD if necessary. Excited to see this build in real life!"}]...
|
Title: Robotic Gripper Arm by @ianselizhuk | Stard Title: Robotic Gripper Arm by @ianselizhuk | Stardance
Devlogs:
Devlog #1 - Robotic Gripper Arm CAD Hello! I am currently working on a robotic gripper arm that, when finished, will have TPU arms, be powered by an Arduino, and have a pressure sensor to carefully grab whatever object it’s trying to grab. I have spent the last couple of days making each part in Onshape and making an assembly, which is shown by the GIF (which I dont think works for some reason, quite sad). I started with a basic servo model, which I created a case around. I next added a gear attachment to the servo, which also connects to the handle of the gripper. Once I connected all those parts on the assembly with revolve mates, I worked on the lever thats directly connects the base to the handle, which I then added to the assembly (with only a couple modifications that messed everything up.) Overall, I am quite happy with this current model, and I will start printing the parts soon and work on assembly of the mechanical aspect of this build, and make any adjustments on the CAD if necessary. Excited to see this build in real life!
Devlog #2 - Robotic Gripper Arm Build + Wiring You can check my first devlog to understand what I’m building and the CAD behind it. I printed all the parts with PLA and the gripper arms with TPU, and assembled them. Something I forgot to mention in the first devlog is that the assembly doesn’t require any screws (besides the ones that come with the servos), and all attachments are printed pegs that create friction fits. I first started by wiring one servo and just making sure the gears and movement works properly. I did have to fix the gears as they weren’t meshing properly, so I increased the pitch diameter by .5 mm. The servo kept browning out and wasn’t able to move both arms a lot, then I remembered that I created it for two servos. I wired everything up and this is what I have so far! Currently, my main issue is that its not really holding anything well. I realized that with us humans we dont just move our fingers but we also hold pressure down to make sure any object we hold doesn’t fall, so I’ll need to figure something out. Any critiques, comments, or concerns would be much appreciated, so feel free to comment down below. Thank you!
Devlog #3 - TPU Gripper Redesign & Rebuild It’s been a little since my last devlog, and that’s for good reason. At the end of my last devlog I mentioned an issue I had, which was that the servo wasn’t powerful enough to supply a constant force to actually grab anything, and that even if I had a motor powerful enough to do that, it would use a lot of energy. I have been trying to solve this issue with a compliant mechanism. The TPU in my last design was 72D, which is really hard and not what I was looking for, but it was what I had. I went and bought 95A TPU which is much softer and squishier, making it ideal for this use case. I also redesigned the gripper arm itself so that it will never contact the second arm, so only the TPU parts close in on each other. I also shifted the holes on the gripper to account for this, and adjusted the angle of the gripper so that it closes cleanly. I have reprinted everything and rewired it, but I’m facing a similar issue. I expected that after the gripper makes contact with an object, the servo will still work, causing the gripper to compact, which would cause the necessary pressure to actually hold the object in place, but it didn’t do that. It seems that the servo just stops running after the slightest bit of resistance, which isn’t ideal. I am currently planning to adding some high friction material on the inside to help with that but I need more effective solutions. My main idea right now is to torque up the servos, but that’ll obviously slow it down and also I’m not sure about the reliability of 3D-printed gears, but we’ll see. Any help would be GREATLY appreciated right now. Thank you!
Devlog #4 - Main Base Redesign + Torque Up & TPU Gripper Redesign First of all, thank you all so much for the support on my last devlog, it means a lot. In my last devlog I discussed either getting new servo motors or torqueing up my current motors, and I went with the latter. I have redesigned the main base of my gripper arm & added more gears to torque it up, with only a basic 2 gear ratio. The CAD of this was horrific to make and also looks horrific, but at least its functional? (Hopefully) I also redesigned the TPU gripper by adding a multistable structure. “Multistable” just means it has more than one stable state, with the idea being that as the gripper closes, it has an easier time squishing into the second state. I will soon reprint the gears and main base and build it soon. Assuming it works as intended I will probably add a pressure sensor, work that into my code, and then ship it. Only if this works though… Thank you so much for the recent support once again!
Ships:
Hey! It’s been a while since the last devlog as I went away for a little and got busy with other stuff. I really wanted to finish this project even if it wasn’t the best product as I’ll be away for over a week, so here it is. It’s pretty basic and not as complex as I wanted it to be when I started, but it works and thats all that matters to me right now. The video of the project shows the gripper arm working, grabbing the base on my first prototype which is ironic. Thank you for all the support, sorry if the end product didn’t reach the hype....
|
1793724520.5340102
|
1793810920.5340102
|
|
38429
|
My first slack bot! by @BestSpark687090 | Stardanc My first slack bot! by @BestSpark687090 | Stardance...
|
BestSpark687090
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T19:22:41Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "so basically i made a “goofy ahh bot” im calling it i have a couple commands meant for funnies. and to be honest i did this mostly because i could but, hey it works it’s running on the nest infrastructure so its running 24/7! many goofy functions written here so uhhh yeah enjoy i guess :P the try project link is a link to the channel i set the bot up in btw.", "repo": "https://github.com/BestSpark687090/goofy-ahh-slack-bot-thing", "demo": "https://hackclub.enterprise.slack.com/archives/C0BJQ92C9N3"}]...
|
[{"post_id": 34311, "ts": "202 [{"post_id": 34311, "ts": "2026-07-24T22:02:58Z", "hours": 0.2769, "text": "devlog number 2 i guess so yeah hi i added a help to make things work its from a txt file thats in there. ok thats it bye"}, {"post_id": 33181, "ts": "2026-07-22T21:04:40Z", "hours": 0.7314, "text": "so devlog number one i guess i got the bot running. commands are working just fine :)"}]...
|
Title: My first slack bot! by @BestSpark687090 | S Title: My first slack bot! by @BestSpark687090 | Stardance
Devlogs:
so devlog number one i guess i got the bot running. commands are working just fine :)
devlog number 2 i guess so yeah hi i added a help to make things work its from a txt file thats in there. ok thats it bye
Ships:
so basically i made a “goofy ahh bot” im calling it i have a couple commands meant for funnies. and to be honest i did this mostly because i could but, hey it works it’s running on the nest infrastructure so its running 24/7! many goofy functions written here so uhhh yeah enjoy i guess :P the try project link is a link to the channel i set the bot up in btw....
|
1793724519.356917
|
1793810919.356917
|