|
2801
|
The 8x8 shootout by @Yikang | Stardance
|
Yikang
|
1
|
12.53
|
77
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-26T19:03:11Z", "hours": 11.0, "multiplier": 7.09, "payout": 77, "blessing": "neutral", "text": "This is my summer hackclub project with 3 minigames that you can play. A 2d shooter, chess puzzles, and a soccer penalty shooter. Spent a lot of time coding this but i also thought is was really fun. The 2d shooter was a project i did years and years ago on scratch and coding it in java was really cool thing to see. Chess puzzle was also really fun(but also very difficult). As well as the soccer penalty shooter, as I like soccer. Enjoy!", "repo": "https://github.com/Yikang2010/Summer-Hackclub-Project", "demo": "https://github.com/Yikang2010/Summer-Hackclub-Project/releases/tag/v1.0.0"}]...
|
[{"post_id": 17214, "ts": "202 [{"post_id": 17214, "ts": "2026-06-27T22:32:22Z", "hours": 1.5281, "text": "Devlog - Ending screen! There are also cool effects. I also added it so that when you lose a level that you can now restart, instead of having to close the app to play again. I also just made everything looking very polished and made some balance changes as the speed changes when exporting the project."}, {"post_id": 16435, "ts": "2026-06-26T19:01:50Z", "hours": 2.1528, "text": "Devlog - During this time I added a main screen with button to press depending on which game you want to play. I also had to change some of code that read the files in the code so that java could actually read the code when exporting the files. It ran on my ide but when exporting the art didn’t show up. I also tried to make the project available though website using cheerpj but was a large waste of time as it runs way too slow. But yeah, i think i’m ready to ship! Devlog - Ending screen! There are also cool effects. I also added it so that when you lose a level that you can now restart, instead of having to close the app to play again. I also just made everything looking very polished and made some balance changes as the speed changes when exporting the project."}, {"post_id": 13513, "ts": "2026-06-22T03:38:07Z", "hours": 3.2336, "text": "Devlog - After a very long time I have finally got everything to work perfectly, I have connect all of the games so that when you win you move on to the next mine game. I also made it so that the screen when playing the games also changes the game size instead of being a fixed size. Everything is now connected seamlessly! All the games and code: 2D Shooter: Setting up player movement, shooting mechanics, enemy spawning, collision detection, and a basic scoring system. As well as the art and the waves. Chess Puzzle: Coding the rules of chess, each pieces, turn logic, win/loss conditions, and a grid system. Also adding capture animations and the layout of the puzzle. Absolutely the longest and most difficult to code by far. Soccer Shooter (PK / Penalty Kick): Implementing a aiming mechanic, a goalkeeper AI, moving target, smooth UI and ball physics. As well as hitboxes for the goal/goalie and the UI."}, {"post_id": 10174, "ts": "2026-06-16T19:46:26Z", "hours": 1.8222, "text": "Devlog: Chess Game Design After a long and tough development cycle I finally got the chess board to work! It was like climbing a mountain just getting all the pieces to show up on the board correctly.. The hard work paid off. Everything works as it should: all the pieces are the size and their positions are accurate. Architecture and Class Breakdown My game code uses object-oriented programming. The structure is broken down into two parts: Piece Classes: Classes for each chess piece. Each piece has its movement rules, boundary checks and capture rules. For example Pawns, Knights, Bishops, Rooks, Queens and Kings all have rules. The Board Class: The Board class the most difficult by far. It took a lot of time to get all the pieces to show up in the places. Dealing with Layout The development process had alignment problems. First I had to figure out the correct board size for screen resolutions. It was a headache. If there was any space around the grid it broke the rendering math. That made it hard to calculate coordinates. When the board grid was fixed the piece sizes looked weird. I tried to scale the vector assets. It didn’t work. I decided to take an approach. I took a screenshot of chess pieces cut them into sprites and used those. It worked. Future Plans (next devlog - finishing touches): Next I’m planning on fitting the theme better with using chess puzzles (It just fits the theme more, like a puzzle fits with the other mini games more) Then I want to connect the minigames together like after finishing one level you go to next."}, {"post_id": 7106, "ts": "2026-06-11T21:34:58Z", "hours": 1.3978, "text": "Devlog 2 - After the first game in the project, this is now game number 2, it is a soccer penalty shooter where you drag on the ball the shoot into goal. Classes used were a ball class a balltrajectory class where you see where the ball will be able to shoot, a game manager class that controls every thing, then a goal class to show where the goal is inside goal outside miss. 5 goals you win 2 misses your out. Goalie class that tries to stop you and last just a UImanager that handles mostly everything you see on screen. Besides the background and other art. How to play: Place your mouse on the ball and drag to aim, then try to score."}, {"post_id": 6466, "ts": "2026-06-10T21:34:43Z", "hours": 2.2611, "text": "Devlog 1 First project is the 2D shooter. In this time the classes that were coded was the player, zombie, background, frame, bullets, health and health classes. There is also waves where if you beat the first level of zombies then you can move to the next. Along with that there are also waves. You can use wasd to move and the mouse to shoot. When the zombies spawn, on the top of the screen they will always walk towards you and point in your direction. The waves differ in speed and health. There is also a health bar so try staying alive! The picture is only the first wave, I don’t know how to add other pictures. But all the zombies and the player I created."}]...
|
Title: The 8x8 shootout by @Yikang | Stardance
De Title: The 8x8 shootout by @Yikang | Stardance
Devlogs:
Devlog 1 First project is the 2D shooter. In this time the classes that were coded was the player, zombie, background, frame, bullets, health and health classes. There is also waves where if you beat the first level of zombies then you can move to the next. Along with that there are also waves. You can use wasd to move and the mouse to shoot. When the zombies spawn, on the top of the screen they will always walk towards you and point in your direction. The waves differ in speed and health. There is also a health bar so try staying alive! The picture is only the first wave, I don’t know how to add other pictures. But all the zombies and the player I created.
Devlog 2 - After the first game in the project, this is now game number 2, it is a soccer penalty shooter where you drag on the ball the shoot into goal. Classes used were a ball class a balltrajectory class where you see where the ball will be able to shoot, a game manager class that controls every thing, then a goal class to show where the goal is inside goal outside miss. 5 goals you win 2 misses your out. Goalie class that tries to stop you and last just a UImanager that handles mostly everything you see on screen. Besides the background and other art. How to play: Place your mouse on the ball and drag to aim, then try to score.
Devlog: Chess Game Design After a long and tough development cycle I finally got the chess board to work! It was like climbing a mountain just getting all the pieces to show up on the board correctly.. The hard work paid off. Everything works as it should: all the pieces are the size and their positions are accurate. Architecture and Class Breakdown My game code uses object-oriented programming. The structure is broken down into two parts: Piece Classes: Classes for each chess piece. Each piece has its movement rules, boundary checks and capture rules. For example Pawns, Knights, Bishops, Rooks, Queens and Kings all have rules. The Board Class: The Board class the most difficult by far. It took a lot of time to get all the pieces to show up in the places. Dealing with Layout The development process had alignment problems. First I had to figure out the correct board size for screen resolutions. It was a headache. If there was any space around the grid it broke the rendering math. That made it hard to calculate coordinates. When the board grid was fixed the piece sizes looked weird. I tried to scale the vector assets. It didn’t work. I decided to take an approach. I took a screenshot of chess pieces cut them into sprites and used those. It worked. Future Plans (next devlog - finishing touches): Next I’m planning on fitting the theme better with using chess puzzles (It just fits the theme more, like a puzzle fits with the other mini games more) Then I want to connect the minigames together like after finishing one level you go to next.
Devlog - After a very long time I have finally got everything to work perfectly, I have connect all of the games so that when you win you move on to the next mine game. I also made it so that the screen when playing the games also changes the game size instead of being a fixed size. Everything is now connected seamlessly! All the games and code: 2D Shooter: Setting up player movement, shooting mechanics, enemy spawning, collision detection, and a basic scoring system. As well as the art and the waves. Chess Puzzle: Coding the rules of chess, each pieces, turn logic, win/loss conditions, and a grid system. Also adding capture animations and the layout of the puzzle. Absolutely the longest and most difficult to code by far. Soccer Shooter (PK / Penalty Kick): Implementing a aiming mechanic, a goalkeeper AI, moving target, smooth UI and ball physics. As well as hitboxes for the goal/goalie and the UI.
Devlog - During this time I added a main screen with button to press depending on which game you want to play. I also had to change some of code that read the files in the code so that java could actually read the code when exporting the files. It ran on my ide but when exporting the art didn’t show up. I also tried to make the project available though website using cheerpj but was a large waste of time as it runs way too slow. But yeah, i think i’m ready to ship! Devlog - Ending screen! There are also cool effects. I also added it so that when you lose a level that you can now restart, instead of having to close the app to play again. I also just made everything looking very polished and made some balance changes as the speed changes when exporting the project.
Devlog - Ending screen! There are also cool effects. I also added it so that when you lose a level that you can now restart, instead of having to close the app to play again. I also just made everything looking very polished and made some balance changes as the speed changes when exporting the project.
Ships:
This is my summer hackclub project with 3 minigames that you can play. A 2d shooter, chess puzzles, and a soccer penalty shooter. Spent a lot of time coding this but i also thought is was really fun. The 2d shooter was a project i did years and years ago on scratch and coding it in java was really cool thing to see. Chess puzzle was also really fun(but also very difficult). As well as the soccer penalty shooter, as I like soccer. Enjoy!...
|
1792968620.7307298
|
1793055020.7307298
|
|
2802
|
My awesome macropad! by @Muhammadjon | Stardance
|
Muhammadjon
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Muhammadjon | Star Title: My awesome macropad! by @Muhammadjon | Stardance...
|
1792551224.9525409
|
1793156024.9525409
|
|
2803
|
Untitled by @yangstyy | Stardance
|
yangstyy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @yangstyy | Stardance
|
1792601274.6365266
|
1793206074.6365266
|
|
2804
|
Untitled by @Oren | Stardance
|
Oren
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Oren | Stardance
|
1792673229.8840184
|
1793278029.8840184
|
|
2805
|
FPEeee by @Duck | Stardance
|
Duck
|
2
|
191.0
|
1850
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T04:30:31Z", "hours": 58.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is an updated version of my physics engine, using a new simulation method called XPBD! It was a bit challenging learning the basics of vector calculus, but it was worth it for the added flexibility of XPBD constraints and integration. I’m also really proud of getting OpenGL rendering working for some of the demos, because making an 3D renderer could be a project in and of itself! (Not this renderer though, it’s pretty barebones.) I’m especially happy with the cloth demo, with the best 3D rendering and (in my opinion) the best showcase of the engine’s features! (Also the least laggy of them all? I know why but it’s still kinda weird, being the most complex demo.) Writing it in C was a probably a bit harder than using a higher level language like C++, but being able to compile the entire project from source in less than two seconds on my machine was a big plus! I hope you enjoy playing with the physics demos! I worked really hard on this project!!", "repo": "https://github.com/duckdood/fpeeee", "demo": "https://duckdood.github.io/physics_demo"}, {"ship_num": 2, "ts": "2026-09-06T04:53:48Z", "hours": 133.0, "multiplier": 16.74, "payout": 1850, "blessing": "neutral", "text": "This is a position-based physics engine made all in C for portability and versatility. It had many challenging moments when making it, such as triangle collisions, spatial partitioning, performance optimization, and more, but I had a lot of fun building it, showing it off to my friends and family, and learning more about physics.", "repo": "https://github.com/duckdood/fpeeee", "demo": "https://duckdood.github.io/physics_demo"}]...
|
[{"post_id": 80800, "ts": "202 [{"post_id": 80800, "ts": "2026-10-18T20:26:33Z", "hours": 1.6025, "text": "Devlog #22 (I just realized that I accidentally did two devlog #15s but it’s too late now) Getting ready for another ship I edited some constraints to be more stable, edited the website to be a bit more clear of where the controls are if your screen is too small to fit them, and had a NIGHTMARE fiddling with ffmpeg to try and replace the video on the README to not be too laggy or low quality but also not too big. I also tried to do some performance optimizations for phones, but I couldn’t figure it out. This is the mp4 version animated WebP that I eventually got ffmpeg to spit out. For some reason animated WebPs don’t work in devlogs."}, {"post_id": 79264, "ts": "2026-10-13T08:10:35Z", "hours": 2.3019, "text": "Devlog #21 MERGING I’ve been rewriting a lot of the physics engine for XPBD (eXtended Position Based Dynamics) since the last ship, but on a separate branch so that if I broke anything too bad it wouldn’t show up on the website, but today I finally merged the xpbd branch into main. Sadly, it is a fair bit slower than the previous verlet integration (at least for my simple demos), but it’s a far more flexible integration and constraint scheme and I think the tradeoff is worth it. (I am a bit disappointed with the performance on the website though, I swear it was faster before I merged it! It’s a lot faster natively!)"}, {"post_id": 78023, "ts": "2026-10-09T07:13:56Z", "hours": 4.0489, "text": "Devlog #20 Another constraint, and another failed side project. Boundary constraint I added a constraint that I named a “boundary constraint”, that confines a particle to being on the specific side of a line e.g. making four lines around the edges of the screen and making sure the particle is on the side which is visible on screen. This is different from a wall because walls have two sides (and also zero thickness) which can cause a particle that’s going super fast to completely pass through to the other side of the wall in a single physics step, whereas with a boundary it will always snap it back to the correct side of the line. (If this was a bad explanation, I’m sorry). Failed lua integration I suppose the word ‘failed’ is a bit harsh in this scenario, I was just dipping my toes into integrating a little lua shell into the demos that would let you spawn particles and stuff programatically, but I decided it wasn’t worth it for small demos that aren’t meant to be super duper flexible anyway because they’re just meant to show off cool features the engine can do. throwing balls very quickly at the wall, which don’t clip through VVV"}, {"post_id": 75992, "ts": "2026-10-01T22:09:53Z", "hours": 10.0394, "text": "Devlog #19 Optimization and Interaction I’ve optimized the triangle collision code to use the spatial partitioning I implemented before for collisions. It goes through each triangle and checks what balls are in its bounding box with the collision grid, and completely skips any balls that aren’t close. This allows for about a thousand balls in a scene (at least on my computer), which is a lot better than the hundred or so you’d get with just bounding box checks and the tens or so you would get with a naive approach. Sadly, this change is only on the XPBD branch for now, meaning it won’t reflect on the website, but you’d still probably have to be spawning balls for a while for that to slow down, depending on the computer. I’ve also added far better interaction to the cloth, using some matrix multiplication and some raycast tests, you can now drag the cloth around with your mouse! This change was on the main branch too, so this is right on the website , right now! I did try to implement a system for having the cloth tear when it was under stress, but it would have required me to rework a lot of stuff and it didn’t quite work out. :("}, {"post_id": 74317, "ts": "2026-09-27T05:22:56Z", "hours": 11.4481, "text": "Devlog #18 Fluid simulation For a couple days I’ve been researching and trying to implement a PBF (position based fluid) fluid simulation, but there are barely any resources on the topic that I’ve been able to find, and the ones I have found are very math oriented with evil cryptic symbols that take a while to wrap my head around. The fluid simulation does work, but it’s much laggier, a lot finickier, and not a lot better (if at all better) than just chucking a couple thousand balls together and having them collide normally."}, {"post_id": 72994, "ts": "2026-09-24T05:51:47Z", "hours": 9.7506, "text": "Devlog #17 OpenGL integration I spend the last couple days integrating OpenGL rendering into a couple of the projects, meaning the graphics will be a lot better and rendered on the GPU instead of being rendered on the CPU, as well as speeding up the demos because even with the added visual complexity, the GPU is just so much faster at rendering! I made these changes of the main branch so that they would reflect on the website sooner, but git’s merge system is actually super good and it took no more than 15 minutes to merge the OpenGL rendering to the XPBD branch. I’ve only migrated over the cloth and fluid demos, but they’re the ones that needed it the most, and it’s not too hard to add it to more demos after I’ve had most of the OpenGL boilerplate implemented."}, {"post_id": 70439, "ts": "2026-09-19T06:17:10Z", "hours": 8.4, "text": "Devlog #16 I migrated the XPBD stuff to 3D and moved all the demos to work with it as well, not much interesting to talk about though. Here’s a demo of it working though"}, {"post_id": 66409, "ts": "2026-09-12T07:11:52Z", "hours": 10.2822, "text": "Devlog #15: Rebuilding because why not A bit before shipping, I heard about another physics method called XPBD (extended position based dynamics) that’s a lot more powerful and flexible, and I decided, after I would ship, I would try to convert my engine to that. I kinda have to remake almost all of the physics stuff I already made, but I can recycle a lot of the older code, just making it fit the new framework, and being a lot more educated about physics simulation stuff than when I started this project, it wasn’t too hard to rewrite some new stuff. Right now I have ported over my ball pit thingy, not a lot to show that’s different from old devlogs, but hey, it’s the inside that counts, right?"}, {"post_id": 62664, "ts": "2026-09-06T04:32:53Z", "hours": 6.1839, "text": "Devlog #15: shipping! Super small devlog, just editing the website and the README and stuff like that, really want to ship now! It just took a while to add messages to all the different demos and I may have tried a little bit of engine stuff but it just didn’t work out."}, {"post_id": 59457, "ts": "2026-09-01T10:01:32Z", "hours": 10.425, "text": "Devlog #14 I added edge detection for 3D triangles and other miscellaneous stuff, like improving the website, adding VSync to the demos, but that stuff’s boring so I’m just going to show off the new demo! It might be the coolest one so far, but it was one of the easiest to make. I’m planning on shipping real soon though, just wanna add a few things to the website and readme!"}, {"post_id": 56613, "ts": "2026-08-28T13:09:26Z", "hours": 10.6511, "text": "Devlog #13 I added triangle-walls which vertices are 3 dynamic spheres, which can collide with other particles and have all 4 particles update with their own velocities! This makes the engine a lot more flexible, so you don’t have to make big grids of spheres if you want to be able to have walls that can move, instead of being static. And it makes rigidbodies (probably) possible! (Press enter to spawn balls) Demo! This devlog is a bit long, sorry! I didn’t want to go too far over 10 hours like a did a couple devlogs ago. 2D 2D is, of course, simpler than 3D, and the length of the function for these walls definitely show that (~40 lines). I used the same algorithm to find the closest position on a line to another position as I used for detecting collisions on the edges of the static 3D walls a while ago. It gives you a lerpable value from from the first point to the second point of the line, and you can use that to find the point you are looking for. Comparing it to the circle you’re checking against, will give the distance and the normal of the collision. You can use that information to move the circle out of the wall, and push the wall away, using the value to lerp between as the ratio to push each of the points that the wall is made of away. 3D This function is a bit more complicated, being about 80 lines long, but a lot of the information in the 2D version is applicable here too. Here, instead of trying to find the closest point, we are trying to find the barycentric coordinates of the point, which is similar to the value to lerp between the two points in 2D, but for 3D (It’s basically just 3 numbers which tell you how close you are to each vertex of a triangle, and can describe any point on the triangle). This involves find the triangle’s area that you are checking against using the cross product, getting the distance of the point inward to the triangle for each edge, and calculating some inverse areas, which magically (not really) give you the barycentric coordinates. We then use these coordinates, as long as the distance to the triangle face using the dot product, to figure out whether the ball is colliding with the face, and if so, moving the ball outside of the triangle and moving the 3 vertices away as well, of course using each barycentric coordinate as a weight for how much to move each individual vertex. I haven’t implemented detections with the edges of the triangles exactly yet though, only the faces, but I will try to implement it soon!"}, {"post_id": 50030, "ts": "2026-08-19T01:48:43Z", "hours": 11.2506, "text": "Devlog #12 I improved the website to include multiple demos, and I made a couple improvements to the performance of the spatial partitioning detection, but I’ve mostly just been doing tinkering and testing with the engine some more."}, {"post_id": 31654, "ts": "2026-07-20T07:22:53Z", "hours": 7.2706, "text": "Devlog #11: Not a huge devlog, I’ve mostly been having fun with this little parachute demo I made! I definitely spent too much time just playing with it. I’ve also been experimenting a bit with multithreading, but it’s not in a stable or performant enough state right now to showcase. mp4 compression will hate this"}, {"post_id": 27421, "ts": "2026-07-12T23:48:38Z", "hours": 6.1297, "text": "Devlog #10: I ported the spatial partitioning to 3D! It’s definitely a lot laggier in the 3D environment, because it needs to check 3x the partitions per ball, but it’s still a lot better than having no spatial partitioning at all. One of the problems I encountered when transitioning to 3D was lag, but not in the expected “It’s going to be laggy when you have a lot of balls” way. For some strange reason, the framerate was still below 60 even when there were no balls in the world! It turned out to be an issue with needing to calloc a big region of memory everytime it would sort the balls into their partitions, but I was able to fix it by keeping the allocation throughout the lifetime of the partition grid. I also fixed it in the 2D version, even though it wasn’t really a problem there, it also wasn’t really a problem to fix either. (In the video you will notice the balls disappearing, the sample I whipped up for the devlog just automatically despawns balls when they leave the partitioning grid. Also some balls fly off when spawning, because sometimes the balls spawn inside one another) I’m getting a bit burnt out from this project though, I might ship after maybe adding multithreading, creating the README, and maybe making some more demos. I’ve been watching some videos on real rigidbody physics, and I want to try that out too!"}, {"post_id": 24090, "ts": "2026-07-07T13:02:59Z", "hours": 25.6289, "text": "Devlog #9: Intro I added spatial partitioning to the engine to speed up collisions when you have a lot of balls in a scene. Partitioning explanation Spatial partitioning is an optimization that divides the world into a grid, so balls only check other balls that are in close cells, instead of every ball checking all others, which is O(n^2). It seems pretty simple, but I tried 4 different ways before getting a good result. Judging by the time logged, I struggled. First Attempt (Dense grid) I first tried a naive implementation, which was making a big grid, with each cell having a list of pointers to balls that are in it. The problem is, each cell needs to have the total amount of balls that could be in it allocated. For the best performance, each grid cell should be the same size as a ball, and for the size I use here, you need the grid dimensions to be in the 100s. with 1000 balls, and with 64 bit pointers, you could have 1000 * 8 * 300 * 300 bytes allocated total, ~720 MB. You can get away with a lot less pointers, but that still wasn’t satisfying, or flexible. Second Attempt (Sparse grid) My second try was a grid, but you only store cells which have balls in them. This doesn’t solve the high number of pointers per cell, but it uses less cells overall. It should’ve been easier, but C doesn’t have any built in hashmaps. The physics code doesn’t use many libraries, and I didn’t want to rely on more, so I had the bright idea to make my own hashmap. It didn’t work and I gave up, and that was the end of the sparse grid. Third Attempt (Resizable arrays) The third attempt was like the first, but I decided to try allocating the memory on the fly, when balls moved around, but it didn’t work out. Working Attempt!! (Sorting) The most successful attempt was a grid, every cell is allocated, and yet, uses the least memory. Instead of storing pointers, each cell only stores two things: An offset and a length. Just indices into the ball array, which sounds easy, but then you realize - the balls are in a random order. To fix this, when updating the grid, you sort the balls into the cell they’re in. You may think that going into the dark cave of sorting is a bad idea, but here, it’s just a counting sort. Then it sets each cell’s fields, and you have your partitions. Detecting Collisions Collisions are easier than constructing the grid, you just check every ball, find its cell, check balls in close cells, then you’re done. Struggles There was a lot of friction with memory errors. To fix them, I learned GDB, and learnt about sanitizers, which detect lots of hard to catch memory errors. One time the program would randomly crash, and it was really hard to fix, but a sanitizer detected an easy out of bounds error when rendering. Not even a physics thing. :( Sorry!! Sorry for the long post, and the time it took me to post it, The devlog guide says to keep it short and post often, but I fell down a rabbit hole with optimizing, and was putting off writing as I knew it would be unwieldy in length. I haven’t implemented partitioning in 3d yet, but it should be easy to transfer over. It’s hard to see the balls in the video, but I want to keep the video smaller. It gets laggy in the video as well, but there are 7000 balls in the scene at the end, and I check collisions 15 times per frame, I am also recording too. Try it out If you read all the way down here, you might want to try the engine. I have a build on my pages , but it’s kinda slow on web. Click to attract P to set where the balls shoot to when spawned Enter to spawn balls Scroll to change spawn speed (at least until I change the demo). On some screens the simulation doesn’t show up until you click fullscreen. Sorry for weird wording, max devlog size is 4k characters."}, {"post_id": 13602, "ts": "2026-06-22T09:10:49Z", "hours": 9.5267, "text": "Devlog #8: I added a function that generates wheels (kinda lame), but I also added a GitHub action that automatically compiles and pushes my commits to my GitHub pages so now theres a web demo also i did just like a ton of testing and playing and stuff which is what pushed it to 9 hours"}, {"post_id": 11197, "ts": "2026-06-18T10:07:28Z", "hours": 12.275, "text": "Devlog 7: Finally added mass to the engine! Before now all the particles had the same mass (just implicitly, so basically all of them had a mass of 1), making the small ones super dense. Took so long because I had to migrate back to 2d in order to make sure the mass was working in 2d (everything was in 3d already so I actually added mass to 3d first), and had to update the 2d rendering for it to be able to render in 3d, but now everything (especially springs), is a lot cooler!"}, {"post_id": 7804, "ts": "2026-06-13T00:51:39Z", "hours": 3.5253, "text": "I added the shape generators back for 3d, now we have ✨ 3D cloth ✨!"}, {"post_id": 7351, "ts": "2026-06-12T08:09:41Z", "hours": 12.0594, "text": "Trying to move to 3D, finally got triangle-sphere collisions working the edges were by far the hardest part, the sphere-face collision actually wasn’t too hard the engine wasn’t built for walls to be able to move, but it can handle it semi fine (I’m just having rotating walls for the cool 3d showcase)"}, {"post_id": 3300, "ts": "2026-06-06T04:57:51Z", "hours": 5.0347, "text": "Added some functions that generate shapes for you, for example, cloth!"}, {"post_id": 2633, "ts": "2026-06-05T08:26:08Z", "hours": 1.5244, "text": "not that big but i migrated to the sdl callback system, so it works on emscripten now (can run in browser) ignore my screen recorder quality"}, {"post_id": 2039, "ts": "2026-06-04T10:12:11Z", "hours": 5.5597, "text": "got circle-circle collision working and with a lot of balls its a bit like a fluid cleaned up main.c as well too"}, {"post_id": 721, "ts": "2026-06-02T09:46:29Z", "hours": 5.7058, "text": "includes double pendulum for clout not actually accurate but looks fine it uses verlet integration and supports springs as well"}]...
|
Title: FPEeee by @Duck | Stardance
Devlogs:
inclu Title: FPEeee by @Duck | Stardance
Devlogs:
includes double pendulum for clout not actually accurate but looks fine it uses verlet integration and supports springs as well
got circle-circle collision working and with a lot of balls its a bit like a fluid cleaned up main.c as well too
not that big but i migrated to the sdl callback system, so it works on emscripten now (can run in browser) ignore my screen recorder quality
Added some functions that generate shapes for you, for example, cloth!
Trying to move to 3D, finally got triangle-sphere collisions working the edges were by far the hardest part, the sphere-face collision actually wasn’t too hard the engine wasn’t built for walls to be able to move, but it can handle it semi fine (I’m just having rotating walls for the cool 3d showcase)
I added the shape generators back for 3d, now we have ✨ 3D cloth ✨!
Devlog 7: Finally added mass to the engine! Before now all the particles had the same mass (just implicitly, so basically all of them had a mass of 1), making the small ones super dense. Took so long because I had to migrate back to 2d in order to make sure the mass was working in 2d (everything was in 3d already so I actually added mass to 3d first), and had to update the 2d rendering for it to be able to render in 3d, but now everything (especially springs), is a lot cooler!
Devlog #8: I added a function that generates wheels (kinda lame), but I also added a GitHub action that automatically compiles and pushes my commits to my GitHub pages so now theres a web demo also i did just like a ton of testing and playing and stuff which is what pushed it to 9 hours
Devlog #9: Intro I added spatial partitioning to the engine to speed up collisions when you have a lot of balls in a scene. Partitioning explanation Spatial partitioning is an optimization that divides the world into a grid, so balls only check other balls that are in close cells, instead of every ball checking all others, which is O(n^2). It seems pretty simple, but I tried 4 different ways before getting a good result. Judging by the time logged, I struggled. First Attempt (Dense grid) I first tried a naive implementation, which was making a big grid, with each cell having a list of pointers to balls that are in it. The problem is, each cell needs to have the total amount of balls that could be in it allocated. For the best performance, each grid cell should be the same size as a ball, and for the size I use here, you need the grid dimensions to be in the 100s. with 1000 balls, and with 64 bit pointers, you could have 1000 * 8 * 300 * 300 bytes allocated total, ~720 MB. You can get away with a lot less pointers, but that still wasn’t satisfying, or flexible. Second Attempt (Sparse grid) My second try was a grid, but you only store cells which have balls in them. This doesn’t solve the high number of pointers per cell, but it uses less cells overall. It should’ve been easier, but C doesn’t have any built in hashmaps. The physics code doesn’t use many libraries, and I didn’t want to rely on more, so I had the bright idea to make my own hashmap. It didn’t work and I gave up, and that was the end of the sparse grid. Third Attempt (Resizable arrays) The third attempt was like the first, but I decided to try allocating the memory on the fly, when balls moved around, but it didn’t work out. Working Attempt!! (Sorting) The most successful attempt was a grid, every cell is allocated, and yet, uses the least memory. Instead of storing pointers, each cell only stores two things: An offset and a length. Just indices into the ball array, which sounds easy, but then you realize - the balls are in a random order. To fix this, when updating the grid, you sort the balls into the cell they’re in. You may think that going into the dark cave of sorting is a bad idea, but here, it’s just a counting sort. Then it sets each cell’s fields, and you have your partitions. Detecting Collisions Collisions are easier than constructing the grid, you just check every ball, find its cell, check balls in close cells, then you’re done. Struggles There was a lot of friction with memory errors. To fix them, I learned GDB, and learnt about sanitizers, which detect lots of hard to catch memory errors. One time the program would randomly crash, and it was really hard to fix, but a sanitizer detected an easy out of bounds error when rendering. Not even a physics thing. :( Sorry!! Sorry for the long post, and the time it took me to post it, The devlog guide says to keep it short and post often, but I fell down a rabbit hole with optimizing, and was putting off writing as I knew it would be unwieldy in length. I haven’t implemented partitioning in 3d yet, but it should be easy to transfer over. It’s hard to see the balls in the video, but I want to keep the video smaller. It gets laggy in the video as well, but there are 7000 balls in the scene at the end, and I check collisions 15 times per frame, I am also recording too. Try it out If you read all the way down here, you might want to try the engine. I have a build on my pages , but it’s kinda slow on web. Click to attract P to set where the balls shoot to when spawned Enter to spawn balls Scroll to change spawn speed (at least until I change the demo). On some screens the simulation doesn’t show up until you click fullscreen. Sorry for weird wording, max devlog size is 4k characters.
Devlog #10: I ported the spatial partitioning to 3D! It’s definitely a lot laggier in the 3D environment, because it needs to check 3x the partitions per ball, but it’s still a lot better than having no spatial partitioning at all. One of the problems I encountered when transitioning to 3D was lag, but not in the expected “It’s going to be laggy when you have a lot of balls” way. For some strange reason, the framerate was still below 60 even when there were no balls in the world! It turned out to be an issue with needing to calloc a big region of memory everytime it would sort the balls into their partitions, but I was able to fix it by keeping the allocation throughout the lifetime of the partition grid. I also fixed it in the 2D version, even though it wasn’t really a problem there, it also wasn’t really a problem to fix either. (In the video you will notice the balls disappearing, the sample I whipped up for the devlog just automatically despawns balls when they leave the partitioning grid. Also some balls fly off when spawning, because sometimes the balls spawn inside one another) I’m getting a bit burnt out from this project though, I might ship after maybe adding multithreading, creating the README, and maybe making some more demos. I’ve been watching some videos on real rigidbody physics, and I want to try that out too!
Devlog #11: Not a huge devlog, I’ve mostly been having fun with this little parachute demo I made! I definitely spent too much time just playing with it. I’ve also been experimenting a bit with multithreading, but it’s not in a stable or performant enough state right now to showcase. mp4 compression will hate this
Devlog #12 I improved the website to include multiple demos, and I made a couple improvements to the performance of the spatial partitioning detection, but I’ve mostly just been doing tinkering and testing with the engine some more.
Devlog #13 I added triangle-walls which vertices are 3 dynamic spheres, which can collide with other particles and have all 4 particles update with their own velocities! This makes the engine a lot more flexible, so you don’t have to make big grids of spheres if you want to be able to have walls that can move, instead of being static. And it makes rigidbodies (probably) possible! (Press enter to spawn balls) Demo! This devlog is a bit long, sorry! I didn’t want to go too far over 10 hours like a did a couple devlogs ago. 2D 2D is, of course, simpler than 3D, and the length of the function for these walls definitely show that (~40 lines). I used the same algorithm to find the closest position on a line to another position as I used for detecting collisions on the edges of the static 3D walls a while ago. It gives you a lerpable value from from the first point to the second point of the line, and you can use that to find the point you are looking for. Comparing it to the circle you’re checking against, will give the distance and the normal of the collision. You can use that information to move the circle out of the wall, and push the wall away, using the value to lerp between as the ratio to push each of the points that the wall is made of away. 3D This function is a bit more complicated, being about 80 lines long, but a lot of the information in the 2D version is applicable here too. Here, instead of trying to find the closest point, we are trying to find the barycentric coordinates of the point, which is similar to the value to lerp between the two points in 2D, but for 3D (It’s basically just 3 numbers which tell you how close you are to each vertex of a triangle, and can describe any point on the triangle). This involves find the triangle’s area that you are checking against using the cross product, getting the distance of the point inward to the triangle for each edge, and calculating some inverse areas, which magically (not really) give you the barycentric coordinates. We then use these coordinates, as long as the distance to the triangle face using the dot product, to figure out whether the ball is colliding with the face, and if so, moving the ball outside of the triangle and moving the 3 vertices away as well, of course using each barycentric coordinate as a weight for how much to move each individual vertex. I haven’t implemented detections with the edges of the triangles exactly yet though, only the faces, but I will try to implement it soon!
Devlog #14 I added edge detection for 3D triangles and other miscellaneous stuff, like improving the website, adding VSync to the demos, but that stuff’s boring so I’m just going to show off the new demo! It might be the coolest one so far, but it was one of the easiest to make. I’m planning on shipping real soon though, just wanna add a few things to the website and readme!
Devlog #15: shipping! Super small devlog, just editing the website and the README and stuff like that, really want to ship now! It just took a while to add messages to all the different demos and I may have tried a little bit of engine stuff but it just didn’t work out.
Devlog #15: Rebuilding because why not A bit before shipping, I heard about another physics method called XPBD (extended position based dynamics) that’s a lot more powerful and flexible, and I decided, after I would ship, I would try to convert my engine to that. I kinda have to remake almost all of the physics stuff I already made, but I can recycle a lot of the older code, just making it fit the new framework, and being a lot more educated about physics simulation stuff than when I started this project, it wasn’t too hard to rewrite some new stuff. Right now I have ported over my ball pit thingy, not a lot to show that’s different from old devlogs, but hey, it’s the inside that counts, right?
Devlog #16 I migrated the XPBD stuff to 3D and moved all the demos to work with it as well, not much interesting to talk about though. Here’s a demo of it working though
Devlog #17 OpenGL integration I spend the last couple days integrating OpenGL rendering into a couple of the projects, meaning the graphics will be a lot better and rendered on the GPU instead of being rendered on the CPU, as well as speeding up the demos because even with the added visual complexity, the GPU is just so much faster at rendering! I made these changes of the main branch so that they would reflect on the website sooner, but git’s merge system is actually super good and it took no more than 15 minutes to merge the OpenGL rendering to the XPBD branch. I’ve only migrated over the cloth and fluid demos, but they’re the ones that needed it the most, and it’s not too hard to add it to more demos after I’ve had most of the OpenGL boilerplate implemented.
Devlog #18 Fluid simulation For a couple days I’ve been researching and trying to implement a PBF (position based fluid) fluid simulation, but there are barely any resources on the topic that I’ve been able to find, and the ones I have found are very math oriented with evil cryptic symbols that take a while to wrap my head around. The fluid simulation does work, but it’s much laggier, a lot finickier, and not a lot better (if at all better) than just chucking a couple thousand balls together and having them collide normally.
Devlog #19 Optimization and Interaction I’ve optimized the triangle collision code to use the spatial partitioning I implemented before for collisions. It goes through each triangle and checks what balls are in its bounding box with the collision grid, and completely skips any balls that aren’t close. This allows for about a thousand balls in a scene (at least on my computer), which is a lot better than the hundred or so you’d get with just bounding box checks and the tens or so you would get with a naive approach. Sadly, this change is only on the XPBD branch for now, meaning it won’t reflect on the website, but you’d still probably have to be spawning balls for a while for that to slow down, depending on the computer. I’ve also added far better interaction to the cloth, using some matrix multiplication and some raycast tests, you can now drag the cloth around with your mouse! This change was on the main branch too, so this is right on the website , right now! I did try to implement a system for having the cloth tear when it was under stress, but it would have required me to rework a lot of stuff and it didn’t quite work out. :(
Devlog #20 Another constraint, and another failed side project. Boundary constraint I added a constraint that I named a “boundary constraint”, that confines a particle to being on the specific side of a line e.g. making four lines around the edges of the screen and making sure the particle is on the side which is visible on screen. This is different from a wall because walls have two sides (and also zero thickness) which can cause a particle that’s going super fast to completely pass through to the other side of the wall in a single physics step, whereas with a boundary it will always snap it back to the correct side of the line. (If this was a bad explanation, I’m sorry). Failed lua integration I suppose the word ‘failed’ is a bit harsh in this scenario, I was just dipping my toes into integrating a little lua shell into the demos that would let you spawn particles and stuff programatically, but I decided it wasn’t worth it for small demos that aren’t meant to be super duper flexible anyway because they’re just meant to show off cool features the engine can do. throwing balls very quickly at the wall, which don’t clip through VVV
Devlog #21 MERGING I’ve been rewriting a lot of the physics engine for XPBD (eXtended Position Based Dynamics) since the last ship, but on a separate branch so that if I broke anything too bad it wouldn’t show up on the website, but today I finally merged the xpbd branch into main. Sadly, it is a fair bit slower than the previous verlet integration (at least for my simple demos), but it’s a far more flexible integration and constraint scheme and I think the tradeoff is worth it. (I am a bit disappointed with the performance on the website though, I swear it was faster before I merged it! It’s a lot faster natively!)
Devlog #22 (I just realized that I accidentally did two devlog #15s but it’s too late now) Getting ready for another ship I edited some constraints to be more stable, edited the website to be a bit more clear of where the controls are if your screen is too small to fit them, and had a NIGHTMARE fiddling with ffmpeg to try and replace the video on the README to not be too laggy or low quality but also not too big. I also tried to do some performance optimizations for phones, but I couldn’t figure it out. This is the mp4 version animated WebP that I eventually got ffmpeg to spit out. For some reason animated WebPs don’t work in devlogs.
Ships:
This is a position-based physics engine made all in C for portability and versatility. It had many challenging moments when making it, such as triangle collisions, spatial partitioning, performance optimization, and more, but I had a lot of fun building it, showing it off to my friends and family, and learning more about physics.
This is an updated version of my physics engine, using a new simulation method called XPBD! It was a bit challenging learning the basics of vector calculus, but it was worth it for the added flexibility of XPBD constraints and integration. I’m also really proud of getting OpenGL rendering working for some of the demos, because making an 3D renderer could be a project in and of itself! (Not this renderer though, it’s pretty barebones.) I’m especially happy with the cloth demo, with the best 3D rendering and (in my opinion) the best showcase of the engine’s features! (Also the least laggy of them all? I know why but it’s still kinda weird, being the most complex demo.) Writing it in C was a probably a bit harder than using a higher level language like C++, but being able to compile the entire project from source in less than two seconds on my machine was a big plus! I hope you enjoy playing with the physics demos! I worked really hard on this project!!...
|
1792994010.0916433
|
1793080410.0916433
|
|
2806
|
Untitled project by @david_negru | Stardance
|
david_negru
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @david_negru | Stardanc Title: Untitled project by @david_negru | Stardance...
|
1792482646.8913512
|
1793087446.8913512
|
|
2807
|
My hackpad by @Kyle | Stardance
|
Kyle
|
0
|
0.64
|
0
|
[]
|
[{"post_id": 1304, "ts": "2026 [{"post_id": 1304, "ts": "2026-06-03T06:41:47Z", "hours": 0.3694, "text": "Routed the pcb, next I’ll work on the case. I’m pretty happy with the pcb and I worked out how to sign it :D"}, {"post_id": 1292, "ts": "2026-06-03T06:03:35Z", "hours": 0.2725, "text": "Created the schematic (this is my first hardware project!), and started on the pcb. I need to do wiring next."}]...
|
Title: My hackpad by @Kyle | Stardance
Devlogs:
C Title: My hackpad by @Kyle | Stardance
Devlogs:
Created the schematic (this is my first hardware project!), and started on the pcb. I need to do wiring next.
Routed the pcb, next I’ll work on the case. I’m pretty happy with the pcb and I worked out how to sign it :D...
|
1792497273.1902792
|
1793102073.1902792
|
|
2808
|
My first slack bot! by @logdog83 | Stardance
|
logdog83
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @logdog83 | Stardanc Title: My first slack bot! by @logdog83 | Stardance...
|
1792554771.0722065
|
1793159571.0722065
|
|
2809
|
My first slack bot! by @Muhammadjon | Stardance
|
Muhammadjon
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Muhammadjon | Stard Title: My first slack bot! by @Muhammadjon | Stardance...
|
1792565526.008416
|
1793170326.008416
|
|
2810
|
My first slack bot! by @roosterdung0 | Stardance
|
roosterdung0
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @roosterdung0 | Star Title: My first slack bot! by @roosterdung0 | Stardance...
|
1792569024.4278688
|
1793173824.4278688
|
|
2811
|
Untitled by @ishowspeed | Stardance
|
ishowspeed
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @ishowspeed | Stardance
|
1792922078.3066955
|
1793786078.3066955
|
|
2812
|
My first slack bot! by @aliaasifmalbari | Stardanc My first slack bot! by @aliaasifmalbari | Stardance...
|
aliaasifmalbari
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @aliaasifmalbari | S Title: My first slack bot! by @aliaasifmalbari | Stardance...
|
1792569115.2056289
|
1793173915.2056289
|
|
2813
|
Butterfly Wall Display by @kdhriti15 | Stardance
|
kdhriti15
|
0
|
0.67
|
0
|
[]
|
[{"post_id": 506, "ts": "2026- [{"post_id": 506, "ts": "2026-06-01T23:57:30Z", "hours": 0.6703, "text": "Wrote Code for the Servos and Touch Module"}]...
|
Title: Butterfly Wall Display by @kdhriti15 | Star Title: Butterfly Wall Display by @kdhriti15 | Stardance
Devlogs:
Wrote Code for the Servos and Touch Module...
|
1792547289.9412513
|
1793152089.9412513
|
|
2814
|
My first slack bot! by @randresuy3 | Stardance
|
randresuy3
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @randresuy3 | Starda Title: My first slack bot! by @randresuy3 | Stardance...
|
1792766907.5393057
|
1793371707.5393057
|
|
2815
|
My awesome macropad! by @Sofi | Stardance
|
Sofi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Sofi | Stardance
|
1792493375.9883642
|
1793098175.9883642
|
|
2816
|
My first slack bot! by @Krys | Stardance
|
Krys
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Krys | Stardance
|
1792529624.4178932
|
1793134424.4178932
|
|
2817
|
Equa-cup by @TheAxoKnight | Stardance
|
TheAxoKnight
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Equa-cup by @TheAxoKnight | Stardance
|
1792766917.1929836
|
1793371717.1929836
|
|
2818
|
Untitled by @Sofi | Stardance
|
Sofi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Sofi | Stardance
|
1792504251.4133666
|
1793109051.4133666
|
|
2819
|
Google Maps reviews analyzer by @Rayan | Stardance
|
Rayan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Google Maps reviews analyzer by @Rayan | St Title: Google Maps reviews analyzer by @Rayan | Stardance...
|
1792637498.885727
|
1793242298.885727
|
|
2820
|
BoardScan by @v40565 | Stardance
|
v40565
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BoardScan by @v40565 | Stardance
|
1792702488.7773235
|
1793307288.7773235
|
|
2821
|
My awesome macropad! by @aaron | Stardance
|
aaron
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @aaron | Stardance
|
1792482899.8773682
|
1793087699.8773682
|
|
2822
|
My first slack bot! by @Aurora-hack | Stardance
|
Aurora-hack
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Aurora-hack | Stard Title: My first slack bot! by @Aurora-hack | Stardance...
|
1792579653.375307
|
1793184453.375307
|
|
2823
|
Bean Study Space by @kawaiio22 | Stardance
|
kawaiio22
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Bean Study Space by @kawaiio22 | Stardance
|
1792479171.673315
|
1793083971.673315
|
|
2824
|
Terrain generator by @kuba_ch101 | Stardance
|
kuba_ch101
|
0
|
0.35
|
0
|
[]
|
[{"post_id": 1092, "ts": "2026 [{"post_id": 1092, "ts": "2026-06-02T22:24:45Z", "hours": 0.3472, "text": "now i can modify mesh resolution"}]...
|
Title: Terrain generator by @kuba_ch101 | Stardanc Title: Terrain generator by @kuba_ch101 | Stardance
Devlogs:
now i can modify mesh resolution...
|
1792637640.151195
|
1793242440.151195
|
|
2825
|
My first slack bot! by @MasterP | Stardance
|
MasterP
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @MasterP | Stardance
|
1792806735.1392581
|
1793411535.1392581
|
|
2826
|
Cognita Study by @cognitayohan | Stardance
|
cognitayohan
|
0
|
0.0
|
0
|
[]
|
[{"post_id": 1286, "ts": "2026 [{"post_id": 1286, "ts": "2026-06-03T05:34:05Z", "hours": 0.0, "text": "Cognita Study Devlog 1 - Updated LaTeX formatting to render math equations properly. Now we can study hard match concepts with proper formatting!! Added AI Video features- now you can generate video/audio summaries for your study materials for free! Much more to come!! Make sure to follow our instagram to continue to support us at: https://www.instagram.com/cognita.study/ Feel free to try out the study app FOR FREE at: https://cognitastudy.me"}]...
|
Title: Cognita Study by @cognitayohan | Stardance
Title: Cognita Study by @cognitayohan | Stardance
Devlogs:
Cognita Study Devlog 1 - Updated LaTeX formatting to render math equations properly. Now we can study hard match concepts with proper formatting!! Added AI Video features- now you can generate video/audio summaries for your study materials for free! Much more to come!! Make sure to follow our instagram to continue to support us at: https://www.instagram.com/cognita.study/ Feel free to try out the study app FOR FREE at: https://cognitastudy.me...
|
1792885874.2227561
|
1793749874.2227561
|
|
2827
|
My awesome macropad! by @Matthieu | Stardance
|
Matthieu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Matthieu | Stardan Title: My awesome macropad! by @Matthieu | Stardance...
|
1792669840.602262
|
1793274640.602262
|
|
2828
|
FLUX CASE by @ANNAHAKI | Stardance
|
ANNAHAKI
|
1
|
8.0
|
25
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T21:34:08Z", "hours": 8.0, "multiplier": 17.3, "payout": 25, "blessing": "neutral", "text": "I MAKED AN INALAMBRIC POWER BANK USING COIL JEJEJEJEJ", "repo": "https://github.com/annaastrs-svg/INALAMBRIC-POWER-BANK", "demo": ""}]...
|
[{"post_id": 7778, "ts": "2026 [{"post_id": 7778, "ts": "2026-06-13T00:05:37Z", "hours": 1.4475, "text": "JUST FINISHED THE INALAMBRIC POWER BANK YEYYYYYYYYY! it uses just 5 components and u can charge ur phone with or without a charger ! it uses Electromagnetic induction cus i use a coil of the inalambric use. ima explain a bit cus i studied a lot for this project, also sorry cus the bad grammar and that stuff, english is my 3rd lenguage :b So in our phone we have a RX coil, we do (buy in this case) a TX coil that gives the electromagnetic energy for our phone to charge up ! this tx use inductancia (inductance theory ) to sebd energy by making an electromagnetic field , and etc cus my brain is cooked of traduction."}, {"post_id": 7608, "ts": "2026-06-12T18:33:03Z", "hours": 1.4847, "text": "If u want an in alambric power bank i have the complete project in github :D I did the pcb (rlly pro one it have a pibble) and the bom :B"}, {"post_id": 7222, "ts": "2026-06-12T01:47:33Z", "hours": 1.6242, "text": "I lit baught all the components again to make it work the mhcd is broken, i need to get another one, i spend 30 min with multimeters and batterys just to see that its broken…. but now i undertsnd totally the complete functionality of the theory of (inductancia alterna (idk how to say it on english)) and all the stuff of electromagnetism and tesla :B"}, {"post_id": 1863, "ts": "2026-06-04T02:25:27Z", "hours": 0.2556, "text": "assembly speed run (i burn the MH-CD i just bought)"}, {"post_id": 1705, "ts": "2026-06-03T21:22:08Z", "hours": 0.6061, "text": "the power bank isnt working :C i think the mhcd module is not a good one, i need to buy a new one so the poject work"}, {"post_id": 1170, "ts": "2026-06-03T00:48:24Z", "hours": 1.4061, "text": "halooo i did a cad for the power bank :B in github is the file !"}, {"post_id": 1121, "ts": "2026-06-02T23:07:00Z", "hours": 1.5639, "text": "I did a inalambric power bank jejjejee"}]...
|
Title: FLUX CASE by @ANNAHAKI | Stardance
Devlogs Title: FLUX CASE by @ANNAHAKI | Stardance
Devlogs:
I did a inalambric power bank jejjejee
halooo i did a cad for the power bank :B in github is the file !
the power bank isnt working :C i think the mhcd module is not a good one, i need to buy a new one so the poject work
assembly speed run (i burn the MH-CD i just bought)
I lit baught all the components again to make it work the mhcd is broken, i need to get another one, i spend 30 min with multimeters and batterys just to see that its broken…. but now i undertsnd totally the complete functionality of the theory of (inductancia alterna (idk how to say it on english)) and all the stuff of electromagnetism and tesla :B
If u want an in alambric power bank i have the complete project in github :D I did the pcb (rlly pro one it have a pibble) and the bom :B
JUST FINISHED THE INALAMBRIC POWER BANK YEYYYYYYYYY! it uses just 5 components and u can charge ur phone with or without a charger ! it uses Electromagnetic induction cus i use a coil of the inalambric use. ima explain a bit cus i studied a lot for this project, also sorry cus the bad grammar and that stuff, english is my 3rd lenguage :b So in our phone we have a RX coil, we do (buy in this case) a TX coil that gives the electromagnetic energy for our phone to charge up ! this tx use inductancia (inductance theory ) to sebd energy by making an electromagnetic field , and etc cus my brain is cooked of traduction.
Ships:
I MAKED AN INALAMBRIC POWER BANK USING COIL JEJEJEJEJ...
|
1792997436.2766807
|
1793083836.2766807
|
|
2829
|
My first slack bot! by @charleswmaus | Stardance
|
charleswmaus
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @charleswmaus | Star Title: My first slack bot! by @charleswmaus | Stardance...
|
1792536489.4225225
|
1793141289.4225225
|
|
2830
|
My first slack bot! by @rojen | Stardance
|
rojen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @rojen | Stardance
|
1792525812.5076952
|
1793130612.5076952
|
|
2831
|
Paralasis by @WizardOfWhimsy | Stardance
|
WizardOfWhimsy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Paralasis by @WizardOfWhimsy | Stardance
|
1792634073.5430176
|
1793238873.5430176
|
|
2832
|
Randominity by @Bitwise | Stardance
|
Bitwise
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Randominity by @Bitwise | Stardance
|
1792547365.3972728
|
1793152165.3972728
|
|
2833
|
Personal Website! by @Eason | Stardance
|
Eason
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Personal Website! by @Eason | Stardance
|
1792482461.593632
|
1793087261.593632
|
|
2834
|
KPlan by @AliciaE | Stardance
|
AliciaE
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: KPlan by @AliciaE | Stardance
|
1792554857.4129608
|
1793159657.4129608
|
|
2835
|
My simple HTML Website by @StarDustShineBright | S My simple HTML Website by @StarDustShineBright | Stardance...
|
StarDustShineBright
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My simple HTML Website by @StarDustShineBri Title: My simple HTML Website by @StarDustShineBright | Stardance...
|
1792680884.8187943
|
1793285684.8187943
|
|
2836
|
My first slack bot! by @ajayvabr | Stardance
|
ajayvabr
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @ajayvabr | Stardanc Title: My first slack bot! by @ajayvabr | Stardance...
|
1792554622.8522584
|
1793159422.8522584
|
|
2837
|
Telescope by @Whitney | Stardance
|
Whitney
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Telescope by @Whitney | Stardance
|
1792698658.0466788
|
1793303458.0466788
|
|
2838
|
give me stardust by @sudo | Stardance
|
sudo
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-02T00:57:27Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I just wanted a few stardust to get some AI credits lol. this is just some junky site I made in 10 minutes", "repo": "https://github.com/Scutoidzz/boring-useless-site", "demo": "https://scutoidzz.github.io/boring-useless-site/"}]...
|
[{"post_id": 481, "ts": "2026- [{"post_id": 481, "ts": "2026-06-01T22:54:57Z", "hours": 0.3281, "text": "I’m a lazy person who wants to get stardust so I’m going to make a lazy site and try to get high votes (/s)"}]...
|
Title: give me stardust by @sudo | Stardance
Devl Title: give me stardust by @sudo | Stardance
Devlogs:
I’m a lazy person who wants to get stardust so I’m going to make a lazy site and try to get high votes (/s)
Ships:
I just wanted a few stardust to get some AI credits lol. this is just some junky site I made in 10 minutes...
|
1792993876.8883746
|
1793080276.8883746
|
|
2839
|
Mr Weather by @Devin | Stardance
|
Devin
|
1
|
1.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T18:22:47Z", "hours": 1.0, "multiplier": 2.05, "payout": 3, "blessing": "neutral", "text": "I made a weather bot with commands that tell you a city’s forecast, weather and can even compare the weather of two cities", "repo": "https://github.com/Melangert/Mr-Weather", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354?_gl=1*6ze08j*_gcl_au*NTg2NTIxMTEuMTc3OTQ5ODgzMA.."}]...
|
[{"post_id": 13357, "ts": "202 [{"post_id": 13357, "ts": "2026-06-21T21:36:24Z", "hours": 0.8903, "text": "Added more commands like weather in a city, forecast, weather in a week and city comparisms"}, {"post_id": 13285, "ts": "2026-06-21T19:05:49Z", "hours": 0.5947, "text": "First ping on my weather bot"}]...
|
Title: Mr Weather by @Devin | Stardance
Devlogs:
Title: Mr Weather by @Devin | Stardance
Devlogs:
First ping on my weather bot
Added more commands like weather in a city, forecast, weather in a week and city comparisms
Ships:
I made a weather bot with commands that tell you a city’s forecast, weather and can even compare the weather of two cities...
|
1792968605.675443
|
1793055005.675443
|
|
2840
|
My awesome macropad! by @Aurora-hack | Stardance
|
Aurora-hack
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Aurora-hack | Star Title: My awesome macropad! by @Aurora-hack | Stardance...
|
1792583636.1497934
|
1793188436.1497934
|
|
2841
|
My personal slack bot! by @JAME | Stardance
|
JAME
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My personal slack bot! by @JAME | Stardance
|
1792741946.6882114
|
1793346746.6882114
|
|
2842
|
LodeStone by @ThePangel | Stardance
|
ThePangel
|
0
|
3.87
|
0
|
[]
|
[{"post_id": 39461, "ts": "202 [{"post_id": 39461, "ts": "2026-08-02T12:55:51Z", "hours": 3.8744, "text": "I’m moving and deleting this project from Macondo to Stardust, so here is what it’s about ! Just recently my district’s fair started, and between all the crowds and the size of the fairgrounds It’s pretty hard to find my friends, especially when we get separated, so with that and me playing a bunch of Minecraft this idea of a Mesh LoRa P2P compass came about. The name is a reference to the lodestone block in Minecraft which lets you set custom compass targets. The device consists of 7 components: Seeed Studio XIAO ESP32 S3 Plus, Seeed Studio Lora32 SX1262, Seeed Studio L76K GNSS Module, GY-9250 BMP085 Module, GC9A01 Round TFT screen, 503040 600mAh Battery, and a Flexible antenna for the gps module. Each node connects to each other individually or in groups, working simultaneously in a mesh. Pairing is done by a gesture password consisting of holds and taps, basically a morse code pin. You pair your devices using the same pin, then they handshake, share keys, and establish a connection. Even if they are not paired, nodes retransmit incoming data packets to other users in the network to increase range. The compass and map are drawn by taking GPS data from both nodes and the GY-9250 compass and accelerometer to calculate the direction the other node is at. To optimize battery life and not saturate the airwaves, my system uses a Supply-demand approach. When the node is still and facing away from the user, it is just listening for either location packets or a request packet. If it receives a location packet, it will update that node’s location in memory. If it receives a request packet, it will send its own location. When the node is pulled up to be viewed, it will send a request packet to other nodes to update their location in memory, and a location packet so other nodes update it’s location. It should ping at a set interval tied to speed using the accelerometer, meaning the more they move the more they send, if they are still it will default to some configurable interval. We could also tune transmition gain based on distance. Interaction with the node will be based on gestures using the GY-9250 accelerometer and gyro to navigate menus similar to a smart watch. We can leverage our LoRa connection to send quick preconfigurable messages or write one using a gesture keyboard or morse code. An SOS function sends a signal to all nodes paired, making the nodes flash red and highlight the SOS’ing node. The PCB is a simple 4 layer PCB that houses all of the off the shelf components. The two outer planes hold traces and GND while the two inner layers are full ground pours, a bunch of vias connect the 4 GNDs to improve RF performance. I will make a 3D printed case for it to be portable and comfortable. I would like this project to be modular and community focused, so I encourage collaboration integrating other microcontrollers, screens, or IMUs all from the same modular firmware."}]...
|
Title: LodeStone by @ThePangel | Stardance
Devlog Title: LodeStone by @ThePangel | Stardance
Devlogs:
I’m moving and deleting this project from Macondo to Stardust, so here is what it’s about ! Just recently my district’s fair started, and between all the crowds and the size of the fairgrounds It’s pretty hard to find my friends, especially when we get separated, so with that and me playing a bunch of Minecraft this idea of a Mesh LoRa P2P compass came about. The name is a reference to the lodestone block in Minecraft which lets you set custom compass targets. The device consists of 7 components: Seeed Studio XIAO ESP32 S3 Plus, Seeed Studio Lora32 SX1262, Seeed Studio L76K GNSS Module, GY-9250 BMP085 Module, GC9A01 Round TFT screen, 503040 600mAh Battery, and a Flexible antenna for the gps module. Each node connects to each other individually or in groups, working simultaneously in a mesh. Pairing is done by a gesture password consisting of holds and taps, basically a morse code pin. You pair your devices using the same pin, then they handshake, share keys, and establish a connection. Even if they are not paired, nodes retransmit incoming data packets to other users in the network to increase range. The compass and map are drawn by taking GPS data from both nodes and the GY-9250 compass and accelerometer to calculate the direction the other node is at. To optimize battery life and not saturate the airwaves, my system uses a Supply-demand approach. When the node is still and facing away from the user, it is just listening for either location packets or a request packet. If it receives a location packet, it will update that node’s location in memory. If it receives a request packet, it will send its own location. When the node is pulled up to be viewed, it will send a request packet to other nodes to update their location in memory, and a location packet so other nodes update it’s location. It should ping at a set interval tied to speed using the accelerometer, meaning the more they move the more they send, if they are still it will default to some configurable interval. We could also tune transmition gain based on distance. Interaction with the node will be based on gestures using the GY-9250 accelerometer and gyro to navigate menus similar to a smart watch. We can leverage our LoRa connection to send quick preconfigurable messages or write one using a gesture keyboard or morse code. An SOS function sends a signal to all nodes paired, making the nodes flash red and highlight the SOS’ing node. The PCB is a simple 4 layer PCB that houses all of the off the shelf components. The two outer planes hold traces and GND while the two inner layers are full ground pours, a bunch of vias connect the 4 GNDs to improve RF performance. I will make a 3D printed case for it to be portable and comfortable. I would like this project to be modular and community focused, so I encourage collaboration integrating other microcontrollers, screens, or IMUs all from the same modular firmware....
|
1792619289.7825317
|
1793224089.7825317
|
|
2843
|
My first slack bot! by @Jacky56 | Stardance
|
Jacky56
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Jacky56 | Stardance
|
1792619431.946374
|
1793224231.946374
|
|
2844
|
StyleLife by @Nelstar | Stardance
|
Nelstar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: StyleLife by @Nelstar | Stardance
|
1792709612.040602
|
1793314412.040602
|
|
2845
|
Untitled by @EthanK | Stardance
|
EthanK
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @EthanK | Stardance
|
1792698762.8383536
|
1793303562.8383536
|
|
2846
|
John Pork by @Vasilakos | Stardance
|
Vasilakos
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T18:03:54Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finished my John Pork Slack Bot in a day and honestly feel quite accomplished. He can do some nice things like tell Quran verses or the weather or even show you some nice food! It wasn’t a really complicated project but still it had some difficulties for example hosting it on Ngrok so it’s downloadable for everyone took some time but in the end with a little bit of troubleshooting help from Google Gemini I got it done. Thanks to @amateur_tech_guy for inspiration on how to make a nice README and hope you all use John Pork for your daily weather forecast or a funny joke!", "repo": "https://github.com/Vasilakos1821/John-Pork-SlackBot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BV0LNMFNZ"}]...
|
[{"post_id": 61462, "ts": "202 [{"post_id": 61462, "ts": "2026-09-04T12:08:29Z", "hours": 1.135, "text": "Finally figured out how to actually make John Pork not only exist as a Slack Bot but actually be downloadable on Slack because I struggled a bit with the redirect URLs and with cloud networking but figured it out in the end (with a little bit of LLM help)."}]...
|
Title: John Pork by @Vasilakos | Stardance
Devlog Title: John Pork by @Vasilakos | Stardance
Devlogs:
Finally figured out how to actually make John Pork not only exist as a Slack Bot but actually be downloadable on Slack because I struggled a bit with the redirect URLs and with cloud networking but figured it out in the end (with a little bit of LLM help).
Ships:
Finished my John Pork Slack Bot in a day and honestly feel quite accomplished. He can do some nice things like tell Quran verses or the weather or even show you some nice food! It wasn’t a really complicated project but still it had some difficulties for example hosting it on Ngrok so it’s downloadable for everyone took some time but in the end with a little bit of troubleshooting help from Google Gemini I got it done. Thanks to @amateur_tech_guy for inspiration on how to make a nice README and hope you all use John Pork for your daily weather forecast or a funny joke!...
|
1792990098.9568934
|
1793076498.9568934
|
|
2847
|
Locally Hosted Drive Alternative by @charleswmaus Locally Hosted Drive Alternative by @charleswmaus | Stardance...
|
charleswmaus
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Locally Hosted Drive Alternative by @charle Title: Locally Hosted Drive Alternative by @charleswmaus | Stardance...
|
1792705847.110975
|
1793310647.110975
|
|
2848
|
My first slack bot! by @SilverCanvas | Stardance
|
SilverCanvas
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @SilverCanvas | Star Title: My first slack bot! by @SilverCanvas | Stardance...
|
1792623273.8120985
|
1793228073.8120985
|
|
2849
|
reusable satellite by @Tony1292 | Stardance
|
Tony1292
|
0
|
29.52
|
0
|
[]
|
[{"post_id": 38929, "ts": "202 [{"post_id": 38929, "ts": "2026-08-01T15:14:19Z", "hours": 2.6786, "text": "I have added a camera system to the satellite and it rotates when it his the sun. It has a gear box that I had laying in my room and disassembled and a toy camera and added to the satellite. Know I just need the rest of the hardware."}, {"post_id": 14523, "ts": "2026-06-23T17:42:20Z", "hours": 1.8, "text": "I made a better recovery system. It is for the most part, the same.But of the instead rubber bands I used springs from a pen."}, {"post_id": 13367, "ts": "2026-06-21T21:59:17Z", "hours": 0.8167, "text": "I made my prototype for the recover system. I will 3D print the the prototype part to make it look cleaner an better. I will also change from tape hinges to actual metal hinges."}, {"post_id": 12695, "ts": "2026-06-20T18:49:13Z", "hours": 0.4336, "text": "I made my live satellite dashboard with lovable.Ai. Know the next step is to make the hardware and wire everything."}, {"post_id": 12173, "ts": "2026-06-19T21:44:48Z", "hours": 1.4422, "text": "Today I assembled the frame for my satellite and I used some screws and some sticks that I had like the next step will be to put the electronics in and make it work. It does not look the cleanest but it looks cool."}, {"post_id": 10954, "ts": "2026-06-17T23:28:03Z", "hours": 3.9822, "text": "I started 3D printing the the parts needed for my project. I just finished three part. I just need to print two more . Next step will be to build the frame."}, {"post_id": 9486, "ts": "2026-06-15T20:46:31Z", "hours": 11.3808, "text": "I was trying to make my base fro the satellite. Because the frame I had was to big. So I looked on Bambu maker world and found this. “Next step is to print the model."}, {"post_id": 2411, "ts": "2026-06-04T21:30:47Z", "hours": 0.4728, "text": "I decided to learn python because lot of people recommended to learn python first, for what i am trying to do with my project. “No idea what i am doing”😅"}, {"post_id": 2332, "ts": "2026-06-04T19:26:05Z", "hours": 0.3475, "text": "Working on my 3D printing file for my project I’m using tinkercad really big and friendly and I really like Taylor cat recommend using it for beginners"}, {"post_id": 2309, "ts": "2026-06-04T18:41:11Z", "hours": 0.94, "text": "I have my frame for my project. Sturdy and decent sized. use to be a nightstand."}, {"post_id": 2222, "ts": "2026-06-04T16:40:41Z", "hours": 0.3097, "text": "Learning code for my project =] I love this community I’ve been learning so much with the people around me."}, {"post_id": 1913, "ts": "2026-06-04T04:23:14Z", "hours": 0.325, "text": "The code is coming out good! with some bug but thanks to the help from hack club and other people in stardance . Thanks everyone for the help."}, {"post_id": 1905, "ts": "2026-06-04T03:59:24Z", "hours": 0.9158, "text": "Just made my schematic! pretty simple but it should be able to send the data from the GY-BMP280 module to a Commander controller type website."}, {"post_id": 1535, "ts": "2026-06-03T16:48:28Z", "hours": 1.3389, "text": "I just finished finding the hardware for my project. I am also going to use a GY-BMP280 sensor. Amazon the goat!"}, {"post_id": 1033, "ts": "2026-06-02T20:28:55Z", "hours": 2.34, "text": "I am working on a reusable satellite that has a modular type of body that can be used many times but also with an easy repair system. Also the satellite can have many uses of types of satellites. This image is from Phonebloks. My project will be this but in satellite form."}]...
|
Title: reusable satellite by @Tony1292 | Stardance Title: reusable satellite by @Tony1292 | Stardance
Devlogs:
I am working on a reusable satellite that has a modular type of body that can be used many times but also with an easy repair system. Also the satellite can have many uses of types of satellites. This image is from Phonebloks. My project will be this but in satellite form.
I just finished finding the hardware for my project. I am also going to use a GY-BMP280 sensor. Amazon the goat!
Just made my schematic! pretty simple but it should be able to send the data from the GY-BMP280 module to a Commander controller type website.
The code is coming out good! with some bug but thanks to the help from hack club and other people in stardance . Thanks everyone for the help.
Learning code for my project =] I love this community I’ve been learning so much with the people around me.
I have my frame for my project. Sturdy and decent sized. use to be a nightstand.
Working on my 3D printing file for my project I’m using tinkercad really big and friendly and I really like Taylor cat recommend using it for beginners
I decided to learn python because lot of people recommended to learn python first, for what i am trying to do with my project. “No idea what i am doing”😅
I was trying to make my base fro the satellite. Because the frame I had was to big. So I looked on Bambu maker world and found this. “Next step is to print the model.
I started 3D printing the the parts needed for my project. I just finished three part. I just need to print two more . Next step will be to build the frame.
Today I assembled the frame for my satellite and I used some screws and some sticks that I had like the next step will be to put the electronics in and make it work. It does not look the cleanest but it looks cool.
I made my live satellite dashboard with lovable.Ai. Know the next step is to make the hardware and wire everything.
I made my prototype for the recover system. I will 3D print the the prototype part to make it look cleaner an better. I will also change from tape hinges to actual metal hinges.
I made a better recovery system. It is for the most part, the same.But of the instead rubber bands I used springs from a pen.
I have added a camera system to the satellite and it rotates when it his the sun. It has a gear box that I had laying in my room and disassembled and a toy camera and added to the satellite. Know I just need the rest of the hardware....
|
1792532866.5156105
|
1793137666.5156105
|
|
2850
|
Stardance Leaderboard Tracker by @mathias | Starda Stardance Leaderboard Tracker by @mathias | Stardance...
|
mathias
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Stardance Leaderboard Tracker by @mathias | Title: Stardance Leaderboard Tracker by @mathias | Stardance...
|
1792727381.7835317
|
1793332181.7835317
|