|
61696
|
Personal Website Framework by @Asta_does_stuff | S Personal Website Framework by @Asta_does_stuff | Stardance...
|
Asta_does_stuff
|
1
|
9.6
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T03:04:43Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My first shipping! I didn’t know that you only get 10 stardust for this mission’s initial shipping… and I’ve put hours in it… Basically! This is my personal website to show off my past projects to anyone, such as university admission team! Complete with page, and section so you can find me on social media faster and easier This is also a website starter that I (or others) can reuse in the future, it’s a frame of html and css that I can just copy and paste for future projects listing Demo link: https://engineering-portofolio-by-asta.netlify.app/ I didn’t use github website hoster because I’ve used netlify before for my other personal website (I stopped working on it because the structure is messy as its my first web project lol) Bugs There’s obviously some bugs along the way, but there’s an unintended bug that after some testing, I come to conclusion to keep it as a feature AI usage decalaration I use AI to find me font and format it to css so I can use it directly, similiarly, I give an AI my in a div structure and told the AI to reformat future I gave", "repo": "https://github.com/aryasatyaardy-cell/Personal-Website", "demo": "https://engineering-portofolio-by-asta.netlify.app/"}]...
|
[{"post_id": 72596, "ts": "202 [{"post_id": 72596, "ts": "2026-09-23T09:43:38Z", "hours": 0.5989, "text": "Added reverse engineering on my second project This week is not my stardance productive week because I’ts mid-term exam week, so I just added a small update for the site as a streak saver lol"}, {"post_id": 70949, "ts": "2026-09-20T02:53:01Z", "hours": 0.6211, "text": "Added 3D models on my second project Added 4 3D models of my old design before the final design is proceeded, also I don’t know why but the iframe 3D models structured automatically in the orders I never design (but I’m keeping it and implementing it on other design lol), it’s like an unintended bug that become a feature"}, {"post_id": 69964, "ts": "2026-09-18T04:13:59Z", "hours": 0.4544, "text": "Stressing out with school Not much progress, just adding some stuff here and there, still stressed with school"}, {"post_id": 68967, "ts": "2026-09-16T04:00:26Z", "hours": 1.1075, "text": "Progress on the second project Oh boy, this one a big project, so I added sort of like a list of content that you can press to auto scroll to a certaid id’d div Adding a button to auto scroll to a certain div for the first time, it works well!"}, {"post_id": 68907, "ts": "2026-09-16T00:41:18Z", "hours": 0.9708, "text": "A bit of progress before the first class start I was bored and the class haven’t start so I did a small progress in making the second project’s mini site"}, {"post_id": 68504, "ts": "2026-09-15T07:21:12Z", "hours": 1.0928, "text": "Adding a specialised individual project web Designing a frame that I can reuse to add more projects in the future, also I added an iframe to show my original project booklet Website Link https://engineering-portofolio-by-asta.netlify.app/"}, {"post_id": 67965, "ts": "2026-09-14T09:11:05Z", "hours": 1.03, "text": "Added “About Me” Page and Compleating the footer I added a new html that direct you to “about me” page, also added my github, instagram, and stardance profile on the footer under “contact me”"}, {"post_id": 67811, "ts": "2026-09-14T02:09:28Z", "hours": 0.6683, "text": "Tidying up 3D model section Just some css magic to pretty-fy the 3d model section"}, {"post_id": 67373, "ts": "2026-09-13T13:44:43Z", "hours": 0.8247, "text": "Added sections (Completed projects, 3D models and footer) Trying the pre-made template I made and it works perfectly, now I can just copy and paste the structure to add a new project I also added an stl preview via sketchfab (it works first time btw) This version isn’t on the trial link yet cus I’ve ran out of upload credit (I think?) cus I can’t upload the updated web"}, {"post_id": 67318, "ts": "2026-09-13T11:59:06Z", "hours": 0.5989, "text": "Added a second list I mirrored the second one to make it more intresting, its still the same content for now, I’ll change it after I go pray"}, {"post_id": 67263, "ts": "2026-09-13T10:15:58Z", "hours": 1.3683, "text": "Remaking my old personal website I made a sustainable structure where I can just copy and paste the structured and its corresponding css to add another project Currently, the “Learn More” button only direct you to my original project booklet and I’m planning to add a mini web to direct user there and then they can view my original booklet Link to my website (work in progress) https://engineering-portofolio-by-asta.netlify.app/ Github link of my codes https://github.com/aryasatyaardy-cell/Personal-Website.git"}]...
|
Title: Personal Website Framework by @Asta_does_st Title: Personal Website Framework by @Asta_does_stuff | Stardance
Devlogs:
Remaking my old personal website I made a sustainable structure where I can just copy and paste the structured and its corresponding css to add another project Currently, the “Learn More” button only direct you to my original project booklet and I’m planning to add a mini web to direct user there and then they can view my original booklet Link to my website (work in progress) https://engineering-portofolio-by-asta.netlify.app/ Github link of my codes https://github.com/aryasatyaardy-cell/Personal-Website.git
Added a second list I mirrored the second one to make it more intresting, its still the same content for now, I’ll change it after I go pray
Added sections (Completed projects, 3D models and footer) Trying the pre-made template I made and it works perfectly, now I can just copy and paste the structure to add a new project I also added an stl preview via sketchfab (it works first time btw) This version isn’t on the trial link yet cus I’ve ran out of upload credit (I think?) cus I can’t upload the updated web
Tidying up 3D model section Just some css magic to pretty-fy the 3d model section
Added “About Me” Page and Compleating the footer I added a new html that direct you to “about me” page, also added my github, instagram, and stardance profile on the footer under “contact me”
Adding a specialised individual project web Designing a frame that I can reuse to add more projects in the future, also I added an iframe to show my original project booklet Website Link https://engineering-portofolio-by-asta.netlify.app/
A bit of progress before the first class start I was bored and the class haven’t start so I did a small progress in making the second project’s mini site
Progress on the second project Oh boy, this one a big project, so I added sort of like a list of content that you can press to auto scroll to a certaid id’d div Adding a button to auto scroll to a certain div for the first time, it works well!
Stressing out with school Not much progress, just adding some stuff here and there, still stressed with school
Added 3D models on my second project Added 4 3D models of my old design before the final design is proceeded, also I don’t know why but the iframe 3D models structured automatically in the orders I never design (but I’m keeping it and implementing it on other design lol), it’s like an unintended bug that become a feature
Added reverse engineering on my second project This week is not my stardance productive week because I’ts mid-term exam week, so I just added a small update for the site as a streak saver lol
Ships:
My first shipping! I didn’t know that you only get 10 stardust for this mission’s initial shipping… and I’ve put hours in it… Basically! This is my personal website to show off my past projects to anyone, such as university admission team! Complete with page, and section so you can find me on social media faster and easier This is also a website starter that I (or others) can reuse in the future, it’s a frame of html and css that I can just copy and paste for future projects listing Demo link: https://engineering-portofolio-by-asta.netlify.app/ I didn’t use github website hoster because I’ve used netlify before for my other personal website (I stopped working on it because the structure is messy as its my first web project lol) Bugs There’s obviously some bugs along the way, but there’s an unintended bug that after some testing, I come to conclusion to keep it as a feature AI usage decalaration I use AI to find me font and format it to css so I can use it directly, similiarly, I give an AI my in a div structure and told the AI to reformat future I gave...
|
1793058459.4942467
|
1793144859.4942467
|
|
19656
|
Anukrama by @aashvik | Stardance
|
aashvik
|
2
|
21.0
|
180
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T02:47:47Z", "hours": 14.0, "multiplier": 8.67, "payout": 119, "blessing": "neutral", "text": "What did you make? Anukrama is a gita chapter 15 chanting game where you get part of a verse and try to chant the rest. I also made an ai that scores your chanting. What was challenging? Getting the ai running in the browser was the hardest part. I had to move the pytorch model to onnx and recreate the audio processing in JavaScript. What are you proud of? Prob getting the entire ai pipeline working in the actual website. It literally took most of my time and I couldn’t get it to work for like an hour :sob-spin: What should people know when testing? The AI is meant to mainly be a gimmick in beta. It’s only based on around 30 recordings per verse because there is absolutely no gita chanting data. You should test without bg noise and actually chant the verse if u want the best results.", "repo": "https://github.com/koditra/Anukrama", "demo": "https://koditra.github.io/Anukrama/"}, {"ship_num": 2, "ts": "2026-07-04T06:22:09Z", "hours": 7.0, "multiplier": 8.95, "payout": 61, "blessing": "neutral", "text": "Anukrama is a nintendo Switch homebrew app that helps people memorize and practice chanting Bhagavad Gita verses. It gives you the previous quarter of a verse as a clue, and you have to chant the next part from memory. Right now it includes all 20 verses of Chapter 15 with audio prompts and easy controller navigation. The biggest challenge was getting the audio system and verse progression working smoothly on the Switch. I also spent a lot of time organizing the verse metadata and making everything load quickly. Thanks for following my journey!", "repo": "https://github.com/koditra/Anukrama", "demo": "https://koditra.github.io/Anukrama/"}]...
|
[{"post_id": 67766, "ts": "202 [{"post_id": 67766, "ts": "2026-09-14T00:35:29Z", "hours": 4.8522, "text": "Final update/devlog !!!! I finally finished integrating the AI pronunciation system into Anukrama. This ended up being way more complicated than I originally thought. The model itself was trained in PyTorch using MFCCs, spectral features, and DTW comparisons against multiple good chanting recordings. The problem was that the .pt model couldn’t just be dropped into a website, so I had to export everything to ONNX and basically rebuild the preprocessing pipeline in JavaScript so the browser could generate the same kind of audio features from a recording. I also changed how I stored the scaler data by putting the normalization values into the .npz files, then wrote the JavaScript to load the model, scaler, reference audio, process the recording, calculate the features, and pass everything through the ONNX model. There were a bunch of stupid issues along the way too, including the ONNX runtime conflicting with a variable in my JS and the scaler data not loading correctly lol. After all of that I added the actual score display to the site, so the recording can go through the whole pipeline and come back as a pronunciation score out of 100. This took way longer than I expected lol, but I finally got it working. This is prob the end of this project!!!!"}, {"post_id": 53354, "ts": "2026-08-23T21:13:09Z", "hours": 3.5311, "text": "AI Pronunciation Model I worked on the AI pronunciation system for Anukrama! I used PyTorch to train models that compare your chanting to good reference recordings and give u a score out of 100. I made models for Verse 1 and Verse 2 using things like MFCCs and DTW. The models are trained, but I need way more data because there isn’t really a big dataset of Bhagavad Gita chanting recordings. I still need to record a lot of the data myself. I haven’t added the AI to the website yet. If u wanna help me record data for the model, pls DM me ( @aashvik )!"}, {"post_id": 47192, "ts": "2026-08-14T22:33:31Z", "hours": 3.0061, "text": "Devlog Update Today I worked on the browser version of Anukrama. i added: A browser demo at game.html GitHub-hosted verse data using the meta , verses , and audio folders Devanagari support in the browser Automatic prompt audio Special handling for Verse 1 since it has no prompt Audio fade-outs when switching verses quickly Fade animations between game states i also updated the landing page with a Try Browser Demo button. i added a short explanation of what the Bhagavad Gita is, including a comparison to the Bible to help people unfamiliar with Hinduism understand it. i might need to fix the landing page css because the buttons look a bit squished also, i learned how to type in markdown recently so tell me if u have any advice! :)"}, {"post_id": 32324, "ts": "2026-07-21T12:51:13Z", "hours": 2.3922, "text": "Final Devlog! Hi! whats up? So basically, I worked on the website and worked on rewriting it in my style because I used way too much AI for the last one, so it seemed vibecoded. I started out with a really basic page and slowly added more css. I chose a paper brown color scheme for the UI bc i think it fits the Bhagavad Gita app idea better. I also spent a while practicing css and finally understand flexbox. here are the things i added: navbar hack club flag that waves around chinmaya mission logo hover animations gameplay section with a youtube video minimalist layout i made the hack club logo wave constantly, then stop and get a little bigger when you hover over it. that was fun. Thats all! I also wanted to thank and give Chinmaya Mission credit for the audio recordings. (They didn’t even want recognition!)"}, {"post_id": 21407, "ts": "2026-07-03T10:20:08Z", "hours": 1.8864, "text": "I made a landing page for the website! I tried to make my own css but it looked kinda ahh so i ended up using a mixture of ChatGPT and Gemini to make the effects look way better. I still changed a bunch of stuff myself and messed around with the layout until it looked how i wanted. I also added my own screenshots to the website so people could actually see what it looks like instead of just reading about it. I spent some time changing little things like the spacing, colors, and animations to make it feel nicer overall. After i finished everything, i used git to upload all of the code to github so i could keep track of my changes and have it all backed up. Thats pretty much everything i worked on for the landing page!"}, {"post_id": 12464, "ts": "2026-06-20T11:03:02Z", "hours": 4.3567, "text": "Today ended up being a much bigger update than I originally planned. The original goal was simply to improve audio playback and make the application a little easier to use, but it gradually turned into a complete overhaul of the project. Earlier versions of Anukrama were entirely terminal-based and focused mainly on functionality rather than presentation. While they worked well enough for testing and practicing verses, they did not really feel like a finished Nintendo Switch application. As I continued working on the project, I decided it was time to build a proper interface. I started by experimenting with a few graphics libraries, but that quickly became frustrating due to dependency problems, linker errors, and build issues that consumed far more development time than expected. After spending a considerable amount of time trying to make those libraries cooperate, I eventually decided to take a different approach and build the rendering system myself using the Switch framebuffer along with FreeType for font rendering. This ended up being a much better solution because it gave me direct control over how text and graphics were displayed. One of the most important improvements from this change was proper Unicode support. Earlier versions struggled with Sanskrit transliteration characters, often displaying missing glyphs, incorrect symbols, or unreadable text. The new rendering system finally allowed me to render Unicode properly, which means verses and prompts can now appear correctly on screen. During the process I also redesigned the entire user interface, added larger text, created menu screens, introduced animated backgrounds, improved readability, added color-coded sections, and included a “Made by Aashvik Goel” credit within the application. Looking back, the difference between the original terminal version and the new interface is much larger than I expected when I first started making changes. The audio system also received significant improvements during this update. The application now supports separate prompt and answer recordings, allowing users to hear a prompt before revealing the complete verse. Implementing this required converting recordings into the correct PCM format, debugging playback issues, testing different audio configurations, and tracking down several recordings that did not behave as expected. While a small number of recordings still need additional work, the overall system is now much more reliable. Alongside the audio improvements, I added multiple study modes to make practice sessions more engaging. There is now a Solo Practice mode as well as a pass-and-play VS Mode where two players can take turns answering verses and earning points. Another major focus was testing on actual hardware rather than relying entirely on emulation. Although Ryujinx was extremely useful throughout development, I regularly installed builds directly onto my Nintendo Switch to verify that rendering, controls, performance, and audio behaved correctly on the real device. This helped uncover issues that would have been easy to miss in an emulator and made the project feel much more like a genuine homebrew application. By the end of this development cycle, Anukrama had gained a completely new rendering engine, proper Unicode support, improved audio playback, multiple study modes, a full menu system, animated visual effects, and a far more polished overall presentation. What originally started as a simple terminal-based study tool has now begun to feel like a complete Switch application designed specifically for practicing Bhagavad Gita verses."}, {"post_id": 9784, "ts": "2026-06-16T07:02:35Z", "hours": 0.3319, "text": "hi again, i finally got a proper shell/menu system working for the app now. right now it’s still really basic and mostly just a text UI, but it’s the first version where everything is structured properly instead of just random test code. you can move up and down with the dpad, press A to select options, and it switches between different states like practice, quiz, and settings. it doesn’t actually do much yet in those modes, but that’s kind of the point of this step. i basically wanted to build a shell first so all the core navigation and input handling is stable before i start adding the real features. before this, everything was just separate test snippets, but now it’s all inside one loop with proper states, so it’s way easier to expand without breaking things. pressing + still quits the app, and i made sure the input system is using the correct libnx setup from the examples, so the controls actually work properly on real hardware instead of randomly failing like before. now that this shell is done, i can actually start building the real parts of the project. the plan is to plug in the verse system into practice mode first, where it shows a prompt and then eventually makes you continue the verse. quiz mode will probably come after that once the structure is solid. Anyways, here is a pic of the shell from an emulator:"}, {"post_id": 9770, "ts": "2026-06-16T06:33:48Z", "hours": 0.6058, "text": "Hi everyone! I just started this project so i can get more comfortable with making my own games/apps, and I rlly wanted to make a switch app! So here’s my plan: I want to make a fully interactive and immersive 2d UI but i think ill make a text shell first so all the features work and ill make the UI later. when i was starting to make the code, I made a screen which said press + to exit. I pressed plus, but the game didn’t quit like it was supposed to. After making a test code to print all buttons pressed, I found out my code wasn’t even receiving any inputs. I had to ask on reddit and I still couldn’t find any answers so i looked in the demo folder of the library I installed and was able to fix my code after reading the proper controller initialization that I should have used. Here is a picture from an emulator of what the output is supposed to look like:"}]...
|
Title: Anukrama by @aashvik | Stardance
Devlogs:
Title: Anukrama by @aashvik | Stardance
Devlogs:
Hi everyone! I just started this project so i can get more comfortable with making my own games/apps, and I rlly wanted to make a switch app! So here’s my plan: I want to make a fully interactive and immersive 2d UI but i think ill make a text shell first so all the features work and ill make the UI later. when i was starting to make the code, I made a screen which said press + to exit. I pressed plus, but the game didn’t quit like it was supposed to. After making a test code to print all buttons pressed, I found out my code wasn’t even receiving any inputs. I had to ask on reddit and I still couldn’t find any answers so i looked in the demo folder of the library I installed and was able to fix my code after reading the proper controller initialization that I should have used. Here is a picture from an emulator of what the output is supposed to look like:
hi again, i finally got a proper shell/menu system working for the app now. right now it’s still really basic and mostly just a text UI, but it’s the first version where everything is structured properly instead of just random test code. you can move up and down with the dpad, press A to select options, and it switches between different states like practice, quiz, and settings. it doesn’t actually do much yet in those modes, but that’s kind of the point of this step. i basically wanted to build a shell first so all the core navigation and input handling is stable before i start adding the real features. before this, everything was just separate test snippets, but now it’s all inside one loop with proper states, so it’s way easier to expand without breaking things. pressing + still quits the app, and i made sure the input system is using the correct libnx setup from the examples, so the controls actually work properly on real hardware instead of randomly failing like before. now that this shell is done, i can actually start building the real parts of the project. the plan is to plug in the verse system into practice mode first, where it shows a prompt and then eventually makes you continue the verse. quiz mode will probably come after that once the structure is solid. Anyways, here is a pic of the shell from an emulator:
Today ended up being a much bigger update than I originally planned. The original goal was simply to improve audio playback and make the application a little easier to use, but it gradually turned into a complete overhaul of the project. Earlier versions of Anukrama were entirely terminal-based and focused mainly on functionality rather than presentation. While they worked well enough for testing and practicing verses, they did not really feel like a finished Nintendo Switch application. As I continued working on the project, I decided it was time to build a proper interface. I started by experimenting with a few graphics libraries, but that quickly became frustrating due to dependency problems, linker errors, and build issues that consumed far more development time than expected. After spending a considerable amount of time trying to make those libraries cooperate, I eventually decided to take a different approach and build the rendering system myself using the Switch framebuffer along with FreeType for font rendering. This ended up being a much better solution because it gave me direct control over how text and graphics were displayed. One of the most important improvements from this change was proper Unicode support. Earlier versions struggled with Sanskrit transliteration characters, often displaying missing glyphs, incorrect symbols, or unreadable text. The new rendering system finally allowed me to render Unicode properly, which means verses and prompts can now appear correctly on screen. During the process I also redesigned the entire user interface, added larger text, created menu screens, introduced animated backgrounds, improved readability, added color-coded sections, and included a “Made by Aashvik Goel” credit within the application. Looking back, the difference between the original terminal version and the new interface is much larger than I expected when I first started making changes. The audio system also received significant improvements during this update. The application now supports separate prompt and answer recordings, allowing users to hear a prompt before revealing the complete verse. Implementing this required converting recordings into the correct PCM format, debugging playback issues, testing different audio configurations, and tracking down several recordings that did not behave as expected. While a small number of recordings still need additional work, the overall system is now much more reliable. Alongside the audio improvements, I added multiple study modes to make practice sessions more engaging. There is now a Solo Practice mode as well as a pass-and-play VS Mode where two players can take turns answering verses and earning points. Another major focus was testing on actual hardware rather than relying entirely on emulation. Although Ryujinx was extremely useful throughout development, I regularly installed builds directly onto my Nintendo Switch to verify that rendering, controls, performance, and audio behaved correctly on the real device. This helped uncover issues that would have been easy to miss in an emulator and made the project feel much more like a genuine homebrew application. By the end of this development cycle, Anukrama had gained a completely new rendering engine, proper Unicode support, improved audio playback, multiple study modes, a full menu system, animated visual effects, and a far more polished overall presentation. What originally started as a simple terminal-based study tool has now begun to feel like a complete Switch application designed specifically for practicing Bhagavad Gita verses.
I made a landing page for the website! I tried to make my own css but it looked kinda ahh so i ended up using a mixture of ChatGPT and Gemini to make the effects look way better. I still changed a bunch of stuff myself and messed around with the layout until it looked how i wanted. I also added my own screenshots to the website so people could actually see what it looks like instead of just reading about it. I spent some time changing little things like the spacing, colors, and animations to make it feel nicer overall. After i finished everything, i used git to upload all of the code to github so i could keep track of my changes and have it all backed up. Thats pretty much everything i worked on for the landing page!
Final Devlog! Hi! whats up? So basically, I worked on the website and worked on rewriting it in my style because I used way too much AI for the last one, so it seemed vibecoded. I started out with a really basic page and slowly added more css. I chose a paper brown color scheme for the UI bc i think it fits the Bhagavad Gita app idea better. I also spent a while practicing css and finally understand flexbox. here are the things i added: navbar hack club flag that waves around chinmaya mission logo hover animations gameplay section with a youtube video minimalist layout i made the hack club logo wave constantly, then stop and get a little bigger when you hover over it. that was fun. Thats all! I also wanted to thank and give Chinmaya Mission credit for the audio recordings. (They didn’t even want recognition!)
Devlog Update Today I worked on the browser version of Anukrama. i added: A browser demo at game.html GitHub-hosted verse data using the meta , verses , and audio folders Devanagari support in the browser Automatic prompt audio Special handling for Verse 1 since it has no prompt Audio fade-outs when switching verses quickly Fade animations between game states i also updated the landing page with a Try Browser Demo button. i added a short explanation of what the Bhagavad Gita is, including a comparison to the Bible to help people unfamiliar with Hinduism understand it. i might need to fix the landing page css because the buttons look a bit squished also, i learned how to type in markdown recently so tell me if u have any advice! :)
AI Pronunciation Model I worked on the AI pronunciation system for Anukrama! I used PyTorch to train models that compare your chanting to good reference recordings and give u a score out of 100. I made models for Verse 1 and Verse 2 using things like MFCCs and DTW. The models are trained, but I need way more data because there isn’t really a big dataset of Bhagavad Gita chanting recordings. I still need to record a lot of the data myself. I haven’t added the AI to the website yet. If u wanna help me record data for the model, pls DM me ( @aashvik )!
Final update/devlog !!!! I finally finished integrating the AI pronunciation system into Anukrama. This ended up being way more complicated than I originally thought. The model itself was trained in PyTorch using MFCCs, spectral features, and DTW comparisons against multiple good chanting recordings. The problem was that the .pt model couldn’t just be dropped into a website, so I had to export everything to ONNX and basically rebuild the preprocessing pipeline in JavaScript so the browser could generate the same kind of audio features from a recording. I also changed how I stored the scaler data by putting the normalization values into the .npz files, then wrote the JavaScript to load the model, scaler, reference audio, process the recording, calculate the features, and pass everything through the ONNX model. There were a bunch of stupid issues along the way too, including the ONNX runtime conflicting with a variable in my JS and the scaler data not loading correctly lol. After all of that I added the actual score display to the site, so the recording can go through the whole pipeline and come back as a pronunciation score out of 100. This took way longer than I expected lol, but I finally got it working. This is prob the end of this project!!!!
Ships:
Anukrama is a nintendo Switch homebrew app that helps people memorize and practice chanting Bhagavad Gita verses. It gives you the previous quarter of a verse as a clue, and you have to chant the next part from memory. Right now it includes all 20 verses of Chapter 15 with audio prompts and easy controller navigation. The biggest challenge was getting the audio system and verse progression working smoothly on the Switch. I also spent a lot of time organizing the verse metadata and making everything load quickly. Thanks for following my journey!
What did you make? Anukrama is a gita chapter 15 chanting game where you get part of a verse and try to chant the rest. I also made an ai that scores your chanting. What was challenging? Getting the ai running in the browser was the hardest part. I had to move the pytorch model to onnx and recreate the audio processing in JavaScript. What are you proud of? Prob getting the entire ai pipeline working in the actual website. It literally took most of my time and I couldn’t get it to work for like an hour :sob-spin: What should people know when testing? The AI is meant to mainly be a gimmick in beta. It’s only based on around 30 recordings per verse because there is absolutely no gita chanting data. You should test without bg noise and actually chant the verse if u want the best results....
|
1793062538.3454356
|
1793148938.3454356
|
|
59515
|
Caelum by @jujharseehra | Stardance
|
jujharseehra
|
1
|
5.88
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T01:30:57Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finished with Caelum! The ML program is running currently, and the Streamlit application should update with the new ML training results soon, but overall, I am proud of my work, as well as the science fair project that begun this project! Will hope to do some scientific simulation with Caelum next year, so look forward to that! See you next year, Stardance!", "repo": "https://github.com/JujharSeehra/Caelum", "demo": "https://github.com/JujharSeehra/Caelum/releases/tag/v1.0.0"}]...
|
[{"post_id": 77956, "ts": "202 [{"post_id": 77956, "ts": "2026-10-08T23:21:01Z", "hours": 0.875, "text": "Been working on many changes. These changes have not only made my simulation more accurate and effective, but also allowed for me to find some critical simulation errors from last time. Also working on a research paper now. Wish me luck!"}, {"post_id": 69862, "ts": "2026-09-17T23:01:39Z", "hours": 0.3336, "text": "Added my last changes to Caelum! Training the ML results, and have already started work on the ML simulation. Time for my ship!"}, {"post_id": 67776, "ts": "2026-09-14T00:53:53Z", "hours": 0.7381, "text": "Been adding many changes to reactor physics! Still need to train another model, but so far, looking good!"}, {"post_id": 65139, "ts": "2026-09-10T02:18:56Z", "hours": 0.8133, "text": "Second Devlog! Been working on getting the Github Repo working, improving the Streamlit issues, and overall making the code more efficient and fixing calculation issues. Planning on publishing my work, so a better Github repo won’t hurt."}, {"post_id": 63943, "ts": "2026-09-08T00:57:33Z", "hours": 3.3189, "text": "Been working on my newest and last stardance project, Caelum! Caelum is a carbon capture simulation that utilizes Python to run physics calculations, and tests the effectiveness and optimizes certain given carbon capture processes. Worked on this project for a science fair, and haven’t let go since!"}]...
|
Title: Caelum by @jujharseehra | Stardance
Devlog Title: Caelum by @jujharseehra | Stardance
Devlogs:
Been working on my newest and last stardance project, Caelum! Caelum is a carbon capture simulation that utilizes Python to run physics calculations, and tests the effectiveness and optimizes certain given carbon capture processes. Worked on this project for a science fair, and haven’t let go since!
Second Devlog! Been working on getting the Github Repo working, improving the Streamlit issues, and overall making the code more efficient and fixing calculation issues. Planning on publishing my work, so a better Github repo won’t hurt.
Been adding many changes to reactor physics! Still need to train another model, but so far, looking good!
Added my last changes to Caelum! Training the ML results, and have already started work on the ML simulation. Time for my ship!
Been working on many changes. These changes have not only made my simulation more accurate and effective, but also allowed for me to find some critical simulation errors from last time. Also working on a research paper now. Wish me luck!
Ships:
Finished with Caelum! The ML program is running currently, and the Streamlit application should update with the new ML training results soon, but overall, I am proud of my work, as well as the science fair project that begun this project! Will hope to do some scientific simulation with Caelum next year, so look forward to that! See you next year, Stardance!...
|
1793008216.4861813
|
1793094616.4861813
|
|
57162
|
Racer by @benny | Stardance
|
benny
|
1
|
7.0
|
47
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T01:28:36Z", "hours": 7.0, "multiplier": 6.37, "payout": 47, "blessing": "neutral", "text": "I made a car racing game that essentially was inspired by F1. The code based is done in python and then in order to deploy it onto the web I used something called pygbag. The entire point of the game is that you have to navigate through the course’s loops and turns in order to beat the computer car in a race. There are a variety of difficulty options for you to select, as well as a settings menu so that you can change your own speed and wall bounciness. I learned a lot about debugging during this process because as I was trying to deploy to to both local host and github pages there were many errors that prevented the game from loading in so I had to try to analyze all the console errors and correct them. I really love the game that I made and I feel like I’ve learned a lot from building this game. I hope you guys enjoy it as well!", "repo": "https://github.com/bangzishu-huang/Racer", "demo": "https://bangzishu-huang.github.io/Racer/"}]...
|
[{"post_id": 70720, "ts": "202 [{"post_id": 70720, "ts": "2026-09-19T17:29:11Z", "hours": 0.6328, "text": "The rest of the time spent on Racer was trying to get it deployed onto my localhost first through pygbag. It took a long time just trying to debug everything because pygbag deployment is harder than hosting python through python’s own application. I had to do a lot of async def through my functions in order to bypass some restrictions and have the game work. Also, I had to make the deploy.yml file in order for github to execute the workflow to deploy my page to github and the actual web."}, {"post_id": 70292, "ts": "2026-09-18T21:44:11Z", "hours": 3.2625, "text": "So throughout the 3 hours I worked on just heavily developing all aspects of the racing game. First I implemented different levels, more specifically 3 levels each with a different speed that the computer car would drive to. Then there is also a settings option where the user can adjust their own speed for their car and also the bouciness of the wall when hit. A lap counter and also a lap timer was added as a HUD at the top left of the screen when you are racing, and also I implemented basically a sort of countdown mechanism to start off each seperate game. The entire game is coming together and the next steps is trying to deploy it through the web with pygbag."}, {"post_id": 64239, "ts": "2026-09-08T14:27:33Z", "hours": 1.5697, "text": "I have been fixing the computer path tracing and adjusting it because a lot of times they go off the loop and cut corners of the race track. The red dots below (left image) show me trying to conduct coordinate testing for the path following of the computer car. Then, after the car path was working for the computer car, I went to make the end screens for when you win or lose in the game. I was also thinking of implementing varios different levels, which I might do in my next session."}, {"post_id": 62630, "ts": "2026-09-06T03:01:52Z", "hours": 1.4433, "text": "Now for the car game I started to add the opponent cars and was working on the components and trying to see how they would actually move. I was also trying to implement a click to move feature for the player car, as well as kind of reducing the bouce when hitting the side of the track."}, {"post_id": 60050, "ts": "2026-09-02T04:57:35Z", "hours": 0.4072, "text": "Today I started a new racing game and start to set up the base environment and the map for the game. This was relatively easy to set up and get started. There were just a some simple debugging in order to fix some few case sensitive errors. Tomorrow, I will probably start working on implementing the race car mechanism and the entire working game."}]...
|
Title: Racer by @benny | Stardance
Devlogs:
Today Title: Racer by @benny | Stardance
Devlogs:
Today I started a new racing game and start to set up the base environment and the map for the game. This was relatively easy to set up and get started. There were just a some simple debugging in order to fix some few case sensitive errors. Tomorrow, I will probably start working on implementing the race car mechanism and the entire working game.
Now for the car game I started to add the opponent cars and was working on the components and trying to see how they would actually move. I was also trying to implement a click to move feature for the player car, as well as kind of reducing the bouce when hitting the side of the track.
I have been fixing the computer path tracing and adjusting it because a lot of times they go off the loop and cut corners of the race track. The red dots below (left image) show me trying to conduct coordinate testing for the path following of the computer car. Then, after the car path was working for the computer car, I went to make the end screens for when you win or lose in the game. I was also thinking of implementing varios different levels, which I might do in my next session.
So throughout the 3 hours I worked on just heavily developing all aspects of the racing game. First I implemented different levels, more specifically 3 levels each with a different speed that the computer car would drive to. Then there is also a settings option where the user can adjust their own speed for their car and also the bouciness of the wall when hit. A lap counter and also a lap timer was added as a HUD at the top left of the screen when you are racing, and also I implemented basically a sort of countdown mechanism to start off each seperate game. The entire game is coming together and the next steps is trying to deploy it through the web with pygbag.
The rest of the time spent on Racer was trying to get it deployed onto my localhost first through pygbag. It took a long time just trying to debug everything because pygbag deployment is harder than hosting python through python’s own application. I had to do a lot of async def through my functions in order to bypass some restrictions and have the game work. Also, I had to make the deploy.yml file in order for github to execute the workflow to deploy my page to github and the actual web.
Ships:
I made a car racing game that essentially was inspired by F1. The code based is done in python and then in order to deploy it onto the web I used something called pygbag. The entire point of the game is that you have to navigate through the course’s loops and turns in order to beat the computer car in a race. There are a variety of difficulty options for you to select, as well as a settings menu so that you can change your own speed and wall bounciness. I learned a lot about debugging during this process because as I was trying to deploy to to both local host and github pages there were many errors that prevented the game from loading in so I had to try to analyze all the console errors and correct them. I really love the game that I made and I feel like I’ve learned a lot from building this game. I hope you guys enjoy it as well!...
|
1793004944.7771628
|
1793091344.7771628
|
|
45810
|
Dunmere - Grave Descent by @Cassetu | Stardance
|
Cassetu
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T01:28:27Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Dunmere - Grave Descent First Person 3D Roguelite dungeon crawler Features Dungeon rooms. 1 Boss fight Shop room. Permanent upgrades (carries over runs) To play Simply go to the itch page, download the windows .exe, and run it. If windows defender stops it, simply click details and ignore. Its not a virus, the source code can also be viewed. I can’t make this any easier for you because the web version is incapable of running the complex 3d models and processing power to run the game. Thanks for trying it out! Disclaimers Because this project uses 3d models that require attribution, please view the credits.md file in the zip provided to see where all the models come from. Source Code: https://github.com/Cassetu/GraveDescent3D Itch Page: https://cassetu.itch.io/dunmere", "repo": "https://github.com/Cassetu/GraveDescent3D", "demo": "https://cassetu.itch.io/dunmere"}]...
|
[{"post_id": 70921, "ts": "202 [{"post_id": 70921, "ts": "2026-09-20T01:22:14Z", "hours": 2.6186, "text": "9-19-26 Forgot to upload a devlog for these hours, imma do it now. Tested out an archway thing to add more wall detail, scrapped it cuz it caused a lot of lag and looked not that great. Adjusted boss cutscene and decorations. I wanted more up and down movement, so i added a room with stairs and a higher ceiling. Enemies don’t really work with the stairs yet."}, {"post_id": 54852, "ts": "2026-08-26T01:02:18Z", "hours": 4.6742, "text": "8-25-26 I almost got a heart attack when my godot crashed, but luckily i was able to somehow reload the changes i made from the disk or smth. I added a new maze room (look at image) its got these columns and is twice as large as my previous largest room. I think i prefer these large rooms to my older more straightforward rooms, because it feels more expansive, and like you’re actually exploring a massive forgotten dungeon. I still plan to change the between room trigger from a Area3D enter to an interaction using the “e” button, the same way the first door works.But i haven’t gotten around to doing it yet. Also my health doesn’t reset properly when you respawn, so you end up at 0 health, while alive, after respawning. I also am planning a system for the game lore, after every bossfight, once you go through the door there, it will fade to one letter. I won’t spoil the story i have, but every bossfight will have one letter at the end that connects to a larger overarching story. I updated the save system so you can exit from the pause menu, the continue button works properly, and the save system works like this: Save at every new room entry bruh i feel like there is more too it but its rly just that. Thanks for reading this! Leave a suggestion to help me out :D"}, {"post_id": 44891, "ts": "2026-08-10T22:53:09Z", "hours": 6.7236, "text": "8-10-26 Added a decoration pass across the dungeon rooms: rugs, banners, bones, roman coins, crates and boxes, plus wall lustres and chandeliers in the boss room. The boss now has a table, throne, and seating. New enemy assets came in too, a scourger and a ghoul (not implemented yet but there) alongside a shader fix so the chaos boss stops looking so shiny, also the beast was looking shiny too so i changed that. HUD got reordered and the damage effect layer is visible instead of hidden cuz i accidentaly forgot to turn it back on while making the ui for consumables. Turned on occlusion culling project wide (i forgot to do that earlier oops) and refreshed the baked room and voxel data to match. Dying now actually saves the removed shards and upgrades before kicking you back to the hub so you don’t keep em. 8-9-26 Built out a full shop room: a shopkeeper NPC you can interact with, a shop menu for buying permanent upgrades and consumables (health potions, vigor draughts), a new HUD panel showing consumable counts with hotkeys, and an altar script that autoplays and loops its clip so the shopkeeper floats around a bit.The shopkeeper is this ghost looking guy. Also fixed barrel hurtboxes and their collision naming in the boss room since the particle system wasn’t working, moved the player’s starting position, and squashed a couple of typos hooray. I still have to fix bugs with my damage effect layer causing my blur and vignette thing to cover the hud, also the enemy ai is a bit scuffed still, and the gui sucks tbh,oh also i darkened the torches"}, {"post_id": 43702, "ts": "2026-08-09T03:28:30Z", "hours": 1.5156, "text": "First Devlog One thing to note, I have been working on this project earlier before starting stardance, so expect an offset in the hours and content made at the beginning. Grave Descent (working title Dunmere) currently has a hub room with an upgrade altar and a dungeon door leading into procedurally picked rooms per depth, capped off by a boss room with an intro cutscene that blends from a scripted camera into the player’s own view. The player has melee sword combat, blocking, rolling, and a basic interaction system, and there are four enemy types built out (a beast, a skeleton gladiator, a monstrosity, and the Chaos boss) each with their own animation and attack states. Progress is tracked through a GameManager autoload handling souls, shards, HP, and unlocked upgrades, which reads and writes to a save file so a run can be continued later. There’s a main menu now too, with new run, continue, and quit, a confirmation prompt before overwriting an existing save, and a live 3D view of the hub room rendering behind the UI instead of a flat background. 8-8-26"}]...
|
Title: Dunmere - Grave Descent by @Cassetu | Stard Title: Dunmere - Grave Descent by @Cassetu | Stardance
Devlogs:
First Devlog One thing to note, I have been working on this project earlier before starting stardance, so expect an offset in the hours and content made at the beginning. Grave Descent (working title Dunmere) currently has a hub room with an upgrade altar and a dungeon door leading into procedurally picked rooms per depth, capped off by a boss room with an intro cutscene that blends from a scripted camera into the player’s own view. The player has melee sword combat, blocking, rolling, and a basic interaction system, and there are four enemy types built out (a beast, a skeleton gladiator, a monstrosity, and the Chaos boss) each with their own animation and attack states. Progress is tracked through a GameManager autoload handling souls, shards, HP, and unlocked upgrades, which reads and writes to a save file so a run can be continued later. There’s a main menu now too, with new run, continue, and quit, a confirmation prompt before overwriting an existing save, and a live 3D view of the hub room rendering behind the UI instead of a flat background. 8-8-26
8-10-26 Added a decoration pass across the dungeon rooms: rugs, banners, bones, roman coins, crates and boxes, plus wall lustres and chandeliers in the boss room. The boss now has a table, throne, and seating. New enemy assets came in too, a scourger and a ghoul (not implemented yet but there) alongside a shader fix so the chaos boss stops looking so shiny, also the beast was looking shiny too so i changed that. HUD got reordered and the damage effect layer is visible instead of hidden cuz i accidentaly forgot to turn it back on while making the ui for consumables. Turned on occlusion culling project wide (i forgot to do that earlier oops) and refreshed the baked room and voxel data to match. Dying now actually saves the removed shards and upgrades before kicking you back to the hub so you don’t keep em. 8-9-26 Built out a full shop room: a shopkeeper NPC you can interact with, a shop menu for buying permanent upgrades and consumables (health potions, vigor draughts), a new HUD panel showing consumable counts with hotkeys, and an altar script that autoplays and loops its clip so the shopkeeper floats around a bit.The shopkeeper is this ghost looking guy. Also fixed barrel hurtboxes and their collision naming in the boss room since the particle system wasn’t working, moved the player’s starting position, and squashed a couple of typos hooray. I still have to fix bugs with my damage effect layer causing my blur and vignette thing to cover the hud, also the enemy ai is a bit scuffed still, and the gui sucks tbh,oh also i darkened the torches
8-25-26 I almost got a heart attack when my godot crashed, but luckily i was able to somehow reload the changes i made from the disk or smth. I added a new maze room (look at image) its got these columns and is twice as large as my previous largest room. I think i prefer these large rooms to my older more straightforward rooms, because it feels more expansive, and like you’re actually exploring a massive forgotten dungeon. I still plan to change the between room trigger from a Area3D enter to an interaction using the “e” button, the same way the first door works.But i haven’t gotten around to doing it yet. Also my health doesn’t reset properly when you respawn, so you end up at 0 health, while alive, after respawning. I also am planning a system for the game lore, after every bossfight, once you go through the door there, it will fade to one letter. I won’t spoil the story i have, but every bossfight will have one letter at the end that connects to a larger overarching story. I updated the save system so you can exit from the pause menu, the continue button works properly, and the save system works like this: Save at every new room entry bruh i feel like there is more too it but its rly just that. Thanks for reading this! Leave a suggestion to help me out :D
9-19-26 Forgot to upload a devlog for these hours, imma do it now. Tested out an archway thing to add more wall detail, scrapped it cuz it caused a lot of lag and looked not that great. Adjusted boss cutscene and decorations. I wanted more up and down movement, so i added a room with stairs and a higher ceiling. Enemies don’t really work with the stairs yet.
Ships:
Dunmere - Grave Descent First Person 3D Roguelite dungeon crawler Features Dungeon rooms. 1 Boss fight Shop room. Permanent upgrades (carries over runs) To play Simply go to the itch page, download the windows .exe, and run it. If windows defender stops it, simply click details and ignore. Its not a virus, the source code can also be viewed. I can’t make this any easier for you because the web version is incapable of running the complex 3d models and processing power to run the game. Thanks for trying it out! Disclaimers Because this project uses 3d models that require attribution, please view the credits.md file in the zip provided to see where all the models come from. Source Code: https://github.com/Cassetu/GraveDescent3D Itch Page: https://cassetu.itch.io/dunmere...
|
1793004787.9991949
|
1793091187.9991949
|
|
11696
|
FlatCraft by @Blxm | Stardance
|
Blxm
|
1
|
115.21
|
1405
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T23:31:01Z", "hours": 113.0, "multiplier": 12.47, "payout": 1405, "blessing": "neutral", "text": "FlatCraft Basic Info FlatCraft is an open source, MIT licensed 2d Minecraft inspired game. It uses LittleJS for the rendering, and vanilla HTML/CSS/JavaScript for the UI. All the rest was written by me. Challenges: One of the biggest challenge was world generation. The idea was to use simplex noise to make terrain, but there was one problem: It’s uncontrolability. I wanted real biomes, but that coudn’t happen because I didn’t know how to control simplex noise. Nor did I know how to make mountains. I solved it by realizing that this is just a silly 2d Minecraft game for a program designed to get teens to make something, not for teens to make some complex minecraft like game, so I decided to bite the bullet and to just make an array for each biome, and have that array contain the y level of the highest block, and use that array to make the terrain. It’s basically like [1,1,2,2,3,3]. Nothing complicated, and if you played this game long enough you’ll see that each biomes are litterally the same. Most Proud of: I’m actually most proud of the custom skins part of flatcraft. It’s really not that complex, but it took a mesruable amount of time to get it working. I had to learn node.js, finally had a use for a server! and used my old chromebook as my server. I made the precaution of adding a ratelimiter just in case someone tried to take it down or whatever, but yeah. That’s what I’m most proud of. What I learned: Making classes in js NodeJS LittleJS engine Stuff that didnt make it into the game: Game music Mobs Credits Art: Me, mostly me, My little brother Inspired by https://www.planetminecraft.com/texture-pack/digs-simple-pack-1-15-100-complete/ , and https://bloxd.io Programming: Me Libraries used: LittleJS", "repo": "https://github.com/BlxCode/FlatCraft", "demo": "https://flatcraft.blxm.me"}]...
|
[{"post_id": 72489, "ts": "202 [{"post_id": 72489, "ts": "2026-09-23T02:15:22Z", "hours": 0.3167, "text": "FIxed bug where jumping wasn’t scaled to your fps Simple really! it’s on the title Changes & Bug Fixes fixed bug where jumping wasn’t scaled to your fps that bug would have made high fps players not able to jump high, and low fps players to jump SUPER high"}, {"post_id": 71071, "ts": "2026-09-20T08:19:33Z", "hours": 1.8978, "text": "Fixed some issues regarding prod (wont get paied for this 😭) ALright, even though i just shipped, there were stuff that were broken, first of all i realized that if you have a expensive 4k 240 hz ahh monitor, the game would get very fast due to the fact that I didn’t introduce deltat time, so i introduced delta time. Bug fixes Fixed bug when you were very fast on a 60hz+ monitor Fixed glitch where the animation state changes between falling and breaking a block while breaking a block while falling"}, {"post_id": 70883, "ts": "2026-09-19T23:01:44Z", "hours": 5.6633, "text": "Sprinting this will be my last ever devlog! New Features: FULL Random world generation: It works like this: Seeds: Seeds are not that important, though they do play a part for terrain generation. Terrain: The terrain is basically just a huge array with preset Y levels depending on the terrain type, ie: mountianus, hilly, flat. Ores: Ores are truly random. It dosn’t depend on the seed. Trees: Trees are also truly random Sprinting: Double press the key in the direction you want to go to sprint that’s it! plz rate it well"}, {"post_id": 69200, "ts": "2026-09-16T16:09:37Z", "hours": 6.2003, "text": "Saving worlds… I hope Honsetly, school has been removing litterally half of the day I would have used to do flatcraft, so… yeah. im also writing this at school cuz i needed to sleep. dont tell anyone lol New Features: Saving It’s quite simple actually. Just saving an object with some world data to local storage. Honestly, that’s it. Flower flower. very cool Terrain generation Terrain generation, no ore generation lol"}, {"post_id": 66474, "ts": "2026-09-12T09:52:21Z", "hours": 5.9692, "text": "Tools Update!!!!111 3 more hard gh issues to go! yay it’s like 2:30 on a friday. not bad, but considering school is back, not good either. Honestly, i swear Idk if i can actually finish this before sep 20th, so if i can’t i’ll actually do 100 pushups. and it WILL be on a devlog. so uhh… yeh. idk why but you can see me do 100 pushups. defenatly not in a row tho my arms are actually twigs bro. ok enough yapping, let’s actually get into this. New Features: Tools!!111 tools. the final implementaiton was quite simple actually. I just added tools to the textures, and added them to the metadata, added a few bits of code for the speeding up of breaking blocks and boom! tools. Changes & Bugfixes: Compleated Metadata Drops now produce 80% less lag (by making sure that only 1 shadow per x coord can exist)"}, {"post_id": 62583, "ts": "2026-09-06T01:30:40Z", "hours": 8.5536, "text": "Lighting & Dropping stuff i’ve been slacking off recently, and I mean it. I’ve coded less, and played more games due to the uhhh looming school season starting again but like… i’ve still managed to make things like lighting, dropping stuff, and shuffeling stuff in ur inventory by using the number keys. Features Lighting At first, this was one of the reasons why I decided to switch to little js, but like their system is not designed for 2d minecraft use, so I had to improvise. The lighting system consists of two basic things. One is the ambient lighting, which basically fills the whole screen with light / filling the whole screen without light, and the second thing is like “light objects” by that, I mean like point lights, which are like round lightbulbs per say, and they emit light. Those would be used for stuff like torches. Q Dropping things with q didn’t exist in the 2 part drops update, cuz i was too lazy to implement that. But now, I added that. It’s simple really, it just creates a new droppped item every time u press q. and if u press q with control, then it drops everything in the hotbar slot hovered, and u can drop things in ur inven by hovering over it. Moving things around in ur inventory with the top number keys I added that cuz im just used to that in uhhh…. bloxd.io so yeah, i just added that. Attack anim press mouse button 0 to attack. currently just attack animation for now Changes & Bug fixes Random tick events for stuff like grass turning into dirt or vice versa *greijodkmgrfd idk, it was in my commits smth to do with promises"}, {"post_id": 58560, "ts": "2026-08-31T00:30:24Z", "hours": 1.4617, "text": "Custom Skins Settings Front End Uhhhh it’s in the title… nothing interesting. https://github.com/users/BlxCode/projects/5 New Features Custom Skins are now FULLY 100% Out! custom skins. How it works: A gallery with a bunch of skins and their ids a textbox for the skin ids reload Changes & Bug Fixes None lol"}, {"post_id": 57793, "ts": "2026-08-30T02:50:18Z", "hours": 8.83, "text": "Inventory Ok so i’ve basically just coded the inventory system. uhhh New Features Inventory System Ok so this is how it works: There is an object that has all the invetory data There is a function that renders it it works like that so u dont render the inventory every frame. that would cause SOO MUCH LAG Place blocks Uhhh… place blocks and it also checks if the block u placed collides with any blocks or players and if it is next to a block Changes & Bug Fixes Fixed some weird crouching behavior that I cant really explain cuz it’s like weird. Dont mind the fact that the game bugged out… it’s cuz i forgot to add metadata to the pine logs and rickroll block thingy"}, {"post_id": 54123, "ts": "2026-08-24T22:58:00Z", "hours": 8.3086, "text": "Drops Part 2 Last devlog, I finished the drop part of drops! This time, I finished the pickup part of drops, and the hold part, though I feel like I do need to tweak the values, I just don’t know by how much. New Features Pick up: The pickup part of drops is basically just an if statement that runs like every frame to see whether or not the player is near enough to a dropped item for them to pick it up. It’s quite simple. Hotbar: I feel like I finished the hotbar, not the inventory system yet, just the hotbar. I finished the “rendering” part, by that I mean like viewing the inventory object and rendering the stuff that is on the hotbar. Changes: Renamed the id of the Inventory div to the Hotbar Readded the FPS counter, and gave it an overhaul The lower arm animation actually plays now"}, {"post_id": 50200, "ts": "2026-08-19T10:30:30Z", "hours": 8.8847, "text": "Drops Part 1 Drops! Though… you can’t pick them up yet… uhhh, and I’m nearing the 10-hour mark, so… yeah. I also completely rewrote the movement code and tweaked the values in collision detection, so that’s like half of the time. Also, it turns out I am not an engineer, as I rewrote my own drops code TWICE in the span of TWO HOURS because of chatgippity roasting me and me roasting myself, respectively. (Also, new dev log format, yay!) New Features Drops (partially) Drops were annoying to implement, partially because I’m a skill issue, and also because I had to learn new things like making classes and stuff like that. Changes & Bug Fixes Collision system revamp The old system was weird and also sometimes inconsistent, so I rewrote the movement system and tweaked the collision system. Overall, a bit of a smaller update if you ask me, and its ONE AND ONLY FEATURE wasn’t complete. Oh well… looks like we’re going to get the next dev log soon."}, {"post_id": 46768, "ts": "2026-08-14T08:07:02Z", "hours": 8.0811, "text": "Block Breaking and Particles! half of the time was spent fixing bugs uhh… ignore that youtube video… New Features: Shadow Particles when touching ground after falling, walking, and after breaking a block Block Breaking Changes & Fixes: Added more things to the block metadata object Fixed collisions not colliding"}, {"post_id": 43802, "ts": "2026-08-09T07:19:22Z", "hours": 0.2828, "text": "Bug Fix: I didn’t include the no falling if you are crouching in the last update so i just quickly added an if statement to include that feature."}, {"post_id": 43193, "ts": "2026-08-08T09:59:34Z", "hours": 1.7314, "text": "Players! Players are finally out. After what? 2 progress updates? Wow, that was harder than I imagined. Especially the physics. I had to think creatively and outside of the box for this. Also, this devlog continues from the last one. Just pretend that the progress updates like didn’t exist or just aren’t canon. Finished Features: Players: Player Physics Player Animations Changes: Slightly adjusted dirt texture Increased label elements’ font size Patched weird css border glitch Deleted unnecessary assets (like the custom cursor that only existed for like 5 minutes, 2 months ago) What’s Next (In order): Crouching, and not falling ✅ Drawing tools (hardest one, btw) ✅ Breaking blocks with tools and fists Custom Skins (it’s literally 90 % complete now, but my server is down due to some real life events so have to wait) ✅ Sandbox world Mobs if i have time ship ps. if you are wondering why the screen recording has some static noise, it’s because i have a small desktop fan running like really close, because it’s kinda hot indoors. I don’t know why it’s making tha t sound, it dosnt make that sound irl to be clear. I think it’s because i accidently turned on my mic and my mic is currently my crappy very quiet laptop mic"}, {"post_id": 41831, "ts": "2026-08-06T09:09:42Z", "hours": 8.1389, "text": "Progress Update #3 I’m too stupid to do physics. I should have made everything with Box2D. I’m currently fiddling with side collisions, as all other collisions (I hope) are done. I’ve also finished jumping and falling physics. Also, I’ve spent another 8 hours, and I want every minute to be for my new 3d printer. Finished Features Jumping My Jumping physics thingy is like the poor and stupid man’s way to do it, but hey… at least it works. It kinda just has a jump multiplyer and it goes down every frame and every frame the player goes up something like 0.05 block units multiplied by the jump multiplier Falling Falling is basically the same as the jumping one. i added sky yes, its a sky :D only a gradient. ill add sun and moon soon prob hopefully idk if there will be night, idk if i can create a night in time. Unfinished Features Side collisions This is stupidlly harder cuz my blocks’ x center is at 0, not 0.5. this means that a block spans from like -0.5 to 0.5. My brain cant handle this… thing."}, {"post_id": 39389, "ts": "2026-08-02T10:30:17Z", "hours": 10.1594, "text": "Progress Update #2: Why, you may ask, do I do progress updates? It’s because only 10 hours MAX can be logged per dev log, and uhh… I think you get the picture. So, without further adieu, this is what I’ve been working on. Unfinished Features: Players (85% Complete) That’s a huge jump from the last time I’ve updated you on the progress on players. Now the thing is, physics is annoying. And I’m not old enough to study calculus at my high school. Which is a shame, as I really like the idea of calculating values based off of differentiating values. I’ve literally just been playing around with the physics at 3 am!??!? Wow! It’s literally 3:30 in the morning. I should go get some sleep. The jumping and crouching are a bit finicky, but I’ll fix them sometime later. Closing Remarks: First of all, a lot of the 10 hours in this progress update have been miscellaneous things like bug fixes or just general tweaks. I’ve also been realizing that this project is big. But the end of the tunnel is still nowhere in sight. Yet, if I can stop sitting around and start sprinting towards, uhh… any direction, there will be light at the end of the tunnel. I hope I can finish this project before school starts. I’ll have to grind like a lot, and especially at night because my siblings are quite brain-rotted, annoying, and loud."}, {"post_id": 33370, "ts": "2026-07-23T07:19:45Z", "hours": 2.5872, "text": "Custom Skins! After a lot of time getting the back-end setup (with some help from ChatGPT, I’d have to admit), custom skins are here! (Granted… players aren’t here yet so you can’t really try them out lol.) New Features New page ( https://blxcode.github.io/FlatCraft/upload-skin/ ) Think of it like skindex but with a worse ui Searching for skins Skin Uploading Changes & Bug-Fixes Grass Retexture Dirt Retexture"}, {"post_id": 32173, "ts": "2026-07-21T04:55:32Z", "hours": 8.2811, "text": "Progress report: I have been grinding this, and I haven’t posted a dev log in a while because I haven’t really finished anything, so this will be a progress report. Finished Features: New dirt, and grass textures The old textures suck, because in between blocks there would be like a small section where there is like no detail, so I added those details and recolored the grass bit of the grass texture because the old one was too “limy.” Added bedrock Self-explanatory; no interesting thing happened that I would want to yap about Updated Game rendering Last devlog, I ported my rendering side of the game to LittleJS, a browser game engine. Why? Because I realized that I wouldn’t have the time and effort to manually do advanced stuff like lighting and particles. Hence, I ported to LittleJS. Now, in the days after the port, I had to fix a lot of things and bugs. Originally, the game would render everything, even if it wasn’t on screen, so I fixed that. I made it so that if you couldn’t see the blocks in the camera, they wouldn’t be rendered. Unfinished Features: Flat Game Mode (90% Done): I decided that tinkering with sandbox mode first would be stupid, as I would still have to make players, inventory system, etc. I feel like I’ve finished everything, but there is something missing. The sky. I still need to make the sky. I don’t know if it should be an image or something else. Players (10% Done): All I have done for players is literally a goffy ahh skin (which I should make better) and a player variable. I think you would be able to piece together what I want for this. Custom skins (60% Done): I want to make custom skins. I have completed the UI, the security part of the server-side (aka my old broken ahh Chromebook) code, and a simple UI for it. All I need to make now is server-side code to store the custom skin and deliver it to the client."}, {"post_id": 22640, "ts": "2026-07-05T06:00:35Z", "hours": 5.6808, "text": "The LittleJS Update Yes, this doesn’t look like much, but it took 5 hours over the span of multiple days and a LOT of trial and error to get to this point! I had to learn so many things, like Promises, async and await, how to make new classes, and LittleJS. But why? Why go through so much trouble? That’s because I’ve realized that I would not, in my current state, be capable of making a full Minecraft clone using only the vanilla HTML Canvas. I chose littleJS because of the promise of fast and lean, and I had already tried it before but failed; I wanted to redeem myself. New Features The rendering part of the game is now done with LittleJS Popups now have minimum width and heights Create new world form now has placeholder text for those who are lazy to type stuff Fixes Renamed Ebony to Cedar because Ebony trees are not pine trees Removed the useless pausing system Removed all of the old rendering system (NEXT UPDATE: Create worlds from seeds 😭 i need help with this)"}, {"post_id": 14909, "ts": "2026-06-24T06:37:35Z", "hours": 4.1328, "text": "The Terrain Preparation Update This is a BIG UI update, and in the next update I’ll add scripting to most of the world menu UI, which has not yet been scripted. New Features: Play Button (shows after the loading screen is finished (in order to get the main menu audio to play)) Main menu music (from opengameart.org) World Menus UI World Creation UI Temporary Gradient Background (To be replaced by game screenshots) Scrollable Credits Fixes Fixed some spelling mistakes in the code"}, {"post_id": 10957, "ts": "2026-06-17T23:33:42Z", "hours": 2.9889, "text": "The Loading Screen Update Added a loading screen which goes to 90% and then waits for the CrazyGames SDK. Removed all NPM dependancies and replaced them with CDNs Added a squeeze in animation when closing Loading screen and Main Menu And much more! (NEXT UPDATE: Create worlds frm seeds with basic terrein 😭 i need help with this)"}, {"post_id": 8555, "ts": "2026-06-14T06:57:09Z", "hours": 1.3439, "text": "The Backdrop Update Added Backdrops to all popups Added a “pausing” system (just disabling keyboard input for now) Added Animations like popup to the main menu elements Added some NPM packages"}, {"post_id": 7631, "ts": "2026-06-12T19:08:43Z", "hours": 2.4183, "text": "main menu, new cursor"}, {"post_id": 5344, "ts": "2026-06-09T02:33:51Z", "hours": 0.4506, "text": "re-done block rendering, adding a function instead of just drawing it onto the canvas, added more textures (gems in block form) and redid dirt texture. Also added movement (only canvas movemnt)"}, {"post_id": 4754, "ts": "2026-06-08T06:28:44Z", "hours": 0.9686, "text": "maple (oak) trees and fps counter"}, {"post_id": 4657, "ts": "2026-06-08T02:00:46Z", "hours": 1.7033, "text": "Inventory UI, Block Creation, some textures"}]...
|
Title: FlatCraft by @Blxm | Stardance
Devlogs:
In Title: FlatCraft by @Blxm | Stardance
Devlogs:
Inventory UI, Block Creation, some textures
maple (oak) trees and fps counter
re-done block rendering, adding a function instead of just drawing it onto the canvas, added more textures (gems in block form) and redid dirt texture. Also added movement (only canvas movemnt)
main menu, new cursor
The Backdrop Update Added Backdrops to all popups Added a “pausing” system (just disabling keyboard input for now) Added Animations like popup to the main menu elements Added some NPM packages
The Loading Screen Update Added a loading screen which goes to 90% and then waits for the CrazyGames SDK. Removed all NPM dependancies and replaced them with CDNs Added a squeeze in animation when closing Loading screen and Main Menu And much more! (NEXT UPDATE: Create worlds frm seeds with basic terrein 😭 i need help with this)
The Terrain Preparation Update This is a BIG UI update, and in the next update I’ll add scripting to most of the world menu UI, which has not yet been scripted. New Features: Play Button (shows after the loading screen is finished (in order to get the main menu audio to play)) Main menu music (from opengameart.org) World Menus UI World Creation UI Temporary Gradient Background (To be replaced by game screenshots) Scrollable Credits Fixes Fixed some spelling mistakes in the code
The LittleJS Update Yes, this doesn’t look like much, but it took 5 hours over the span of multiple days and a LOT of trial and error to get to this point! I had to learn so many things, like Promises, async and await, how to make new classes, and LittleJS. But why? Why go through so much trouble? That’s because I’ve realized that I would not, in my current state, be capable of making a full Minecraft clone using only the vanilla HTML Canvas. I chose littleJS because of the promise of fast and lean, and I had already tried it before but failed; I wanted to redeem myself. New Features The rendering part of the game is now done with LittleJS Popups now have minimum width and heights Create new world form now has placeholder text for those who are lazy to type stuff Fixes Renamed Ebony to Cedar because Ebony trees are not pine trees Removed the useless pausing system Removed all of the old rendering system (NEXT UPDATE: Create worlds from seeds 😭 i need help with this)
Progress report: I have been grinding this, and I haven’t posted a dev log in a while because I haven’t really finished anything, so this will be a progress report. Finished Features: New dirt, and grass textures The old textures suck, because in between blocks there would be like a small section where there is like no detail, so I added those details and recolored the grass bit of the grass texture because the old one was too “limy.” Added bedrock Self-explanatory; no interesting thing happened that I would want to yap about Updated Game rendering Last devlog, I ported my rendering side of the game to LittleJS, a browser game engine. Why? Because I realized that I wouldn’t have the time and effort to manually do advanced stuff like lighting and particles. Hence, I ported to LittleJS. Now, in the days after the port, I had to fix a lot of things and bugs. Originally, the game would render everything, even if it wasn’t on screen, so I fixed that. I made it so that if you couldn’t see the blocks in the camera, they wouldn’t be rendered. Unfinished Features: Flat Game Mode (90% Done): I decided that tinkering with sandbox mode first would be stupid, as I would still have to make players, inventory system, etc. I feel like I’ve finished everything, but there is something missing. The sky. I still need to make the sky. I don’t know if it should be an image or something else. Players (10% Done): All I have done for players is literally a goffy ahh skin (which I should make better) and a player variable. I think you would be able to piece together what I want for this. Custom skins (60% Done): I want to make custom skins. I have completed the UI, the security part of the server-side (aka my old broken ahh Chromebook) code, and a simple UI for it. All I need to make now is server-side code to store the custom skin and deliver it to the client.
Custom Skins! After a lot of time getting the back-end setup (with some help from ChatGPT, I’d have to admit), custom skins are here! (Granted… players aren’t here yet so you can’t really try them out lol.) New Features New page ( https://blxcode.github.io/FlatCraft/upload-skin/ ) Think of it like skindex but with a worse ui Searching for skins Skin Uploading Changes & Bug-Fixes Grass Retexture Dirt Retexture
Progress Update #2: Why, you may ask, do I do progress updates? It’s because only 10 hours MAX can be logged per dev log, and uhh… I think you get the picture. So, without further adieu, this is what I’ve been working on. Unfinished Features: Players (85% Complete) That’s a huge jump from the last time I’ve updated you on the progress on players. Now the thing is, physics is annoying. And I’m not old enough to study calculus at my high school. Which is a shame, as I really like the idea of calculating values based off of differentiating values. I’ve literally just been playing around with the physics at 3 am!??!? Wow! It’s literally 3:30 in the morning. I should go get some sleep. The jumping and crouching are a bit finicky, but I’ll fix them sometime later. Closing Remarks: First of all, a lot of the 10 hours in this progress update have been miscellaneous things like bug fixes or just general tweaks. I’ve also been realizing that this project is big. But the end of the tunnel is still nowhere in sight. Yet, if I can stop sitting around and start sprinting towards, uhh… any direction, there will be light at the end of the tunnel. I hope I can finish this project before school starts. I’ll have to grind like a lot, and especially at night because my siblings are quite brain-rotted, annoying, and loud.
Progress Update #3 I’m too stupid to do physics. I should have made everything with Box2D. I’m currently fiddling with side collisions, as all other collisions (I hope) are done. I’ve also finished jumping and falling physics. Also, I’ve spent another 8 hours, and I want every minute to be for my new 3d printer. Finished Features Jumping My Jumping physics thingy is like the poor and stupid man’s way to do it, but hey… at least it works. It kinda just has a jump multiplyer and it goes down every frame and every frame the player goes up something like 0.05 block units multiplied by the jump multiplier Falling Falling is basically the same as the jumping one. i added sky yes, its a sky :D only a gradient. ill add sun and moon soon prob hopefully idk if there will be night, idk if i can create a night in time. Unfinished Features Side collisions This is stupidlly harder cuz my blocks’ x center is at 0, not 0.5. this means that a block spans from like -0.5 to 0.5. My brain cant handle this… thing.
Players! Players are finally out. After what? 2 progress updates? Wow, that was harder than I imagined. Especially the physics. I had to think creatively and outside of the box for this. Also, this devlog continues from the last one. Just pretend that the progress updates like didn’t exist or just aren’t canon. Finished Features: Players: Player Physics Player Animations Changes: Slightly adjusted dirt texture Increased label elements’ font size Patched weird css border glitch Deleted unnecessary assets (like the custom cursor that only existed for like 5 minutes, 2 months ago) What’s Next (In order): Crouching, and not falling ✅ Drawing tools (hardest one, btw) ✅ Breaking blocks with tools and fists Custom Skins (it’s literally 90 % complete now, but my server is down due to some real life events so have to wait) ✅ Sandbox world Mobs if i have time ship ps. if you are wondering why the screen recording has some static noise, it’s because i have a small desktop fan running like really close, because it’s kinda hot indoors. I don’t know why it’s making tha t sound, it dosnt make that sound irl to be clear. I think it’s because i accidently turned on my mic and my mic is currently my crappy very quiet laptop mic
Bug Fix: I didn’t include the no falling if you are crouching in the last update so i just quickly added an if statement to include that feature.
Block Breaking and Particles! half of the time was spent fixing bugs uhh… ignore that youtube video… New Features: Shadow Particles when touching ground after falling, walking, and after breaking a block Block Breaking Changes & Fixes: Added more things to the block metadata object Fixed collisions not colliding
Drops Part 1 Drops! Though… you can’t pick them up yet… uhhh, and I’m nearing the 10-hour mark, so… yeah. I also completely rewrote the movement code and tweaked the values in collision detection, so that’s like half of the time. Also, it turns out I am not an engineer, as I rewrote my own drops code TWICE in the span of TWO HOURS because of chatgippity roasting me and me roasting myself, respectively. (Also, new dev log format, yay!) New Features Drops (partially) Drops were annoying to implement, partially because I’m a skill issue, and also because I had to learn new things like making classes and stuff like that. Changes & Bug Fixes Collision system revamp The old system was weird and also sometimes inconsistent, so I rewrote the movement system and tweaked the collision system. Overall, a bit of a smaller update if you ask me, and its ONE AND ONLY FEATURE wasn’t complete. Oh well… looks like we’re going to get the next dev log soon.
Drops Part 2 Last devlog, I finished the drop part of drops! This time, I finished the pickup part of drops, and the hold part, though I feel like I do need to tweak the values, I just don’t know by how much. New Features Pick up: The pickup part of drops is basically just an if statement that runs like every frame to see whether or not the player is near enough to a dropped item for them to pick it up. It’s quite simple. Hotbar: I feel like I finished the hotbar, not the inventory system yet, just the hotbar. I finished the “rendering” part, by that I mean like viewing the inventory object and rendering the stuff that is on the hotbar. Changes: Renamed the id of the Inventory div to the Hotbar Readded the FPS counter, and gave it an overhaul The lower arm animation actually plays now
Inventory Ok so i’ve basically just coded the inventory system. uhhh New Features Inventory System Ok so this is how it works: There is an object that has all the invetory data There is a function that renders it it works like that so u dont render the inventory every frame. that would cause SOO MUCH LAG Place blocks Uhhh… place blocks and it also checks if the block u placed collides with any blocks or players and if it is next to a block Changes & Bug Fixes Fixed some weird crouching behavior that I cant really explain cuz it’s like weird. Dont mind the fact that the game bugged out… it’s cuz i forgot to add metadata to the pine logs and rickroll block thingy
Custom Skins Settings Front End Uhhhh it’s in the title… nothing interesting. https://github.com/users/BlxCode/projects/5 New Features Custom Skins are now FULLY 100% Out! custom skins. How it works: A gallery with a bunch of skins and their ids a textbox for the skin ids reload Changes & Bug Fixes None lol
Lighting & Dropping stuff i’ve been slacking off recently, and I mean it. I’ve coded less, and played more games due to the uhhh looming school season starting again but like… i’ve still managed to make things like lighting, dropping stuff, and shuffeling stuff in ur inventory by using the number keys. Features Lighting At first, this was one of the reasons why I decided to switch to little js, but like their system is not designed for 2d minecraft use, so I had to improvise. The lighting system consists of two basic things. One is the ambient lighting, which basically fills the whole screen with light / filling the whole screen without light, and the second thing is like “light objects” by that, I mean like point lights, which are like round lightbulbs per say, and they emit light. Those would be used for stuff like torches. Q Dropping things with q didn’t exist in the 2 part drops update, cuz i was too lazy to implement that. But now, I added that. It’s simple really, it just creates a new droppped item every time u press q. and if u press q with control, then it drops everything in the hotbar slot hovered, and u can drop things in ur inven by hovering over it. Moving things around in ur inventory with the top number keys I added that cuz im just used to that in uhhh…. bloxd.io so yeah, i just added that. Attack anim press mouse button 0 to attack. currently just attack animation for now Changes & Bug fixes Random tick events for stuff like grass turning into dirt or vice versa *greijodkmgrfd idk, it was in my commits smth to do with promises
Tools Update!!!!111 3 more hard gh issues to go! yay it’s like 2:30 on a friday. not bad, but considering school is back, not good either. Honestly, i swear Idk if i can actually finish this before sep 20th, so if i can’t i’ll actually do 100 pushups. and it WILL be on a devlog. so uhh… yeh. idk why but you can see me do 100 pushups. defenatly not in a row tho my arms are actually twigs bro. ok enough yapping, let’s actually get into this. New Features: Tools!!111 tools. the final implementaiton was quite simple actually. I just added tools to the textures, and added them to the metadata, added a few bits of code for the speeding up of breaking blocks and boom! tools. Changes & Bugfixes: Compleated Metadata Drops now produce 80% less lag (by making sure that only 1 shadow per x coord can exist)
Saving worlds… I hope Honsetly, school has been removing litterally half of the day I would have used to do flatcraft, so… yeah. im also writing this at school cuz i needed to sleep. dont tell anyone lol New Features: Saving It’s quite simple actually. Just saving an object with some world data to local storage. Honestly, that’s it. Flower flower. very cool Terrain generation Terrain generation, no ore generation lol
Sprinting this will be my last ever devlog! New Features: FULL Random world generation: It works like this: Seeds: Seeds are not that important, though they do play a part for terrain generation. Terrain: The terrain is basically just a huge array with preset Y levels depending on the terrain type, ie: mountianus, hilly, flat. Ores: Ores are truly random. It dosn’t depend on the seed. Trees: Trees are also truly random Sprinting: Double press the key in the direction you want to go to sprint that’s it! plz rate it well
Fixed some issues regarding prod (wont get paied for this 😭) ALright, even though i just shipped, there were stuff that were broken, first of all i realized that if you have a expensive 4k 240 hz ahh monitor, the game would get very fast due to the fact that I didn’t introduce deltat time, so i introduced delta time. Bug fixes Fixed bug when you were very fast on a 60hz+ monitor Fixed glitch where the animation state changes between falling and breaking a block while breaking a block while falling
FIxed bug where jumping wasn’t scaled to your fps Simple really! it’s on the title Changes & Bug Fixes fixed bug where jumping wasn’t scaled to your fps that bug would have made high fps players not able to jump high, and low fps players to jump SUPER high
Ships:
FlatCraft Basic Info FlatCraft is an open source, MIT licensed 2d Minecraft inspired game. It uses LittleJS for the rendering, and vanilla HTML/CSS/JavaScript for the UI. All the rest was written by me. Challenges: One of the biggest challenge was world generation. The idea was to use simplex noise to make terrain, but there was one problem: It’s uncontrolability. I wanted real biomes, but that coudn’t happen because I didn’t know how to control simplex noise. Nor did I know how to make mountains. I solved it by realizing that this is just a silly 2d Minecraft game for a program designed to get teens to make something, not for teens to make some complex minecraft like game, so I decided to bite the bullet and to just make an array for each biome, and have that array contain the y level of the highest block, and use that array to make the terrain. It’s basically like [1,1,2,2,3,3]. Nothing complicated, and if you played this game long enough you’ll see that each biomes are litterally the same. Most Proud of: I’m actually most proud of the custom skins part of flatcraft. It’s really not that complex, but it took a mesruable amount of time to get it working. I had to learn node.js, finally had a use for a server! and used my old chromebook as my server. I made the precaution of adding a ratelimiter just in case someone tried to take it down or whatever, but yeah. That’s what I’m most proud of. What I learned: Making classes in js NodeJS LittleJS engine Stuff that didnt make it into the game: Game music Mobs Credits Art: Me, mostly me, My little brother Inspired by https://www.planetminecraft.com/texture-pack/digs-simple-pack-1-15-100-complete/ , and https://bloxd.io Programming: Me Libraries used: LittleJS...
|
1793004859.6862261
|
1793091259.6862261
|
|
47344
|
Project FlowMark by @The_Hedgehog | Stardance
|
The_Hedgehog
|
1
|
106.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T22:48:05Z", "hours": 106.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a buoy that can float freely down a river. It has four sensors, pH, conductivity, dissolved organic matter, and turbidity. It constantly uses these sensors to take measurements and sends it to a locally hosted Python Flask server tunneled using Ngrok. After the buoy is collected from the water, the server will analyse the data and find out where the water quality started to worsen, therefore finding out where riverine polution might be. Although the project wasn’t very complicated, I faced many many problems. The most memorable and most fustrating ones: I use a step up module to turn the 4v from my 18650 to 5v for my ESP32 C3 Supermini. But the step up often randomly output over 20v, though it is set for 5v. I later found out that its because a loose connection between my battery and the step up, but the voltage spikes has badly burnt many things in my circuit. The ESP32 C3 Supermini suddenly cannot connect to my computer. I tried holding down boot button, boot and reset, redownload a driver, and trying all the ports on my computer and in Arduino IDE. But it just won’t work. So I changed to a Arduino Nano. But that just made things worse. The Arduino Nano successfully connected to my computer, but it often corrupts recieved UART signals from my cellular module. Later I found out that its because the Arduino Nano’s clock is a bit off for 112500 baud. This made things more complicated because I need to start the UART communication between the Nano and the cellular module at 112500 (since my cellular module is default 112500 when start up), then request the cellular module to turn down to 9600, and then change the Nano UART back to 9600. It did finally work tho. I guess this is the worst nightmare in my project. My project uses a pair of 18650 in parallel, as it can have more power to sustain my buoy for longer. But the cellular module often shut down right after it turns on. It turns out that the celular module can pull up to 2 amps when connecting to the cellular tower and sending messages, which is causing the voltage drop. However, this was weird because the two 18650 cells I had is the Samsung 25R, which has a max discharge of 20 amps. Parallel means that the max discharge become 40 amps, which is wayyyyyyy more than the 2 amps required. So the problem must not be the batteries. Or is it? I suspect that the batteries are fake. They weigh pretty normal, being 44 grams. I checked the imprints on the wrapping, and it did have a legitemate manufacture date code that says someday in 2017 (I forgot which day it was, but it was 2017). And I also took off the battery wrapping, and it did had Samsung factory imprints on the metal. So the battery is good, the cellular module can only take up to 2 amps….. then the problem must be between the cellular module and the battery! And it was. It was the thin jumper wires and breadboard that decreased the voltage when the current increased. Shorter thicker wires solved it. There was actually much more issues, but these are the most memorable ones for me. I am glad that my project turns out to be working, becuase i genuinely thought that it would never work when making it.", "repo": "https://github.com/LukeHuang2026/Project_Flowmark", "demo": ""}]...
|
[{"post_id": 66520, "ts": "202 [{"post_id": 66520, "ts": "2026-09-12T11:13:09Z", "hours": 1.3169, "text": "Today I almsot finished the slides for my presentation for UWEN next week, so I can go there and get some feedback."}, {"post_id": 65872, "ts": "2026-09-11T09:42:46Z", "hours": 3.2531, "text": "Today I finally made my cellular module work, as before it always shut down due to thin wires burning up too much voltage. My free floating buoy is ready for testing!"}, {"post_id": 65294, "ts": "2026-09-10T10:20:11Z", "hours": 3.5017, "text": "Today I tried to power my cellular module with my two 18650 in parallel. It kinda works for a while but then the voltage dips and the module turns itself off. Its most likely the thin wires, and I optimised it as much as I can, but the same thing happens. I will charge my batteries up again and if it still dont’ work I will just skip my MOSFET circuit that turns the module on and off, as this thing still has a bit of thin wires. If it STILL dont’ work I give up. My 18650 can go up to 8 amps max apparenlty, so it should support 16 amps. My module only uses 2 amps, so it should work if there was minimal wires. Hopefully, finger crossed. If this doesn’t work im cooked. But lets not think too much yk things always work out after you charge ur lithium batteries overnight cuz ur table will probably catch on fire and everything will be burnt out and u will never have to worry about it again. srry i don’t have a photo"}, {"post_id": 64716, "ts": "2026-09-09T10:34:13Z", "hours": 1.6753, "text": "Today I planned a presentation about my project for UWEN Annual General Meeting. Hopefully I can get their oppinions on how i should imrpove my solution as they are my stakehoders."}, {"post_id": 64137, "ts": "2026-09-08T10:30:30Z", "hours": 4.2833, "text": "Today I wrote a script for my video about my project so I can enter a competition. But they limit the video to be 5 minutes long, which is basicly 800 words max, but half way through i already have 1.4k words. If there is no limit i feel lik i can write a whole paper about it. But I’ll try to make it as short as possible so I don’t have to get a buzz cut and become real slim shady :D"}, {"post_id": 63449, "ts": "2026-09-07T09:35:38Z", "hours": 2.2, "text": "Today I finished all the debugging and my floating buoy is ready for testing."}, {"post_id": 62811, "ts": "2026-09-06T10:27:23Z", "hours": 10.1672, "text": "Today I did a lot of fixing in my code, but its way too buggy and I still didn’t fix all of them in 10 hours. Here are some bugs that is fixed and some changes: Dynamic memory on Arduino Nano is running out, so I tried to use the U8G2 library for my mini screen instead of the Adafruit library, but its actually using more memory and is more buggy than Adafruit. In the end I discovered that it is my string commands that I am sending to my cellular module that is gobbling up all my memory, so I used F() macro to put them into flash memory. My screen can’t connect after that change. I found out that by rendering a frame the screen library takes up 1024 bytes of dynamic memory, which is over the limit for my Arduino Nano. Arduino UART is recieving corrupted data from my cellular module. After a bit, I figured out that the built in timer of the Arduino Nano is not precise enough for 112500 baud rate, so I lowered it to 9600."}, {"post_id": 62102, "ts": "2026-09-05T10:55:10Z", "hours": 3.4672, "text": "Today I diddid aa bbibit mmomormore wwowwork oon mmy nnenew ccirccircuit anandand eeveeeveryeeveeeveryteeveeeverytheeveeeverythineeveeeveryeeveeeveryteeveeeverytheeveeeverything iis bbasicbbasiclbbasicly ddonddone aand waiwaitiwaiwaiting ffofor ffinffinaffinal cocodcode ttesttestttestittesting, aanand ii aam loloolookiloloolookinloloolooking toto fgo ffofor aa ffifiefielfield ttesttest nnenext weeweek. (ssosorrssosorry mymy kekeybkekeyboarkekeybkekeyboard iis nnot ababsabsoluababsabsoluteababsabsoluababsabsolutely worworkworkiworking sso mme isis nnot ggogoigoing tto ssay mumucmuch)"}, {"post_id": 61437, "ts": "2026-09-04T10:57:23Z", "hours": 8.5006, "text": "Today I restarted my wiring since my esp32 c3 supermini isn’t responding to my code uploads and I had to change to a Arduino Nano. And now the pH sensor doesn’t work and the organic matter sensor doesn’t work either. Hopefully i can find some magical way out tomorrow but now idk what it is because."}, {"post_id": 60730, "ts": "2026-09-03T09:10:57Z", "hours": 2.335, "text": "Another day of extreme unproductiveness. I only tried to debug my cellular module turning on and off by itself, but didn’t really solve it. Module rebooting cycle T_T :"}, {"post_id": 60117, "ts": "2026-09-02T08:56:17Z", "hours": 1.6344, "text": "Today I wished to do more but my productivity is very cooked recently. I planned to add all the final features to my code, but ended up only debugging the OLED mini display. But ok its working so I guess its alr."}, {"post_id": 59456, "ts": "2026-09-01T10:00:14Z", "hours": 1.1514, "text": "Today I did a bit more work on the buttons and screen."}, {"post_id": 58751, "ts": "2026-08-31T09:51:06Z", "hours": 2.6522, "text": "I got a bucket and put some pollutants in there (dirt and DIY-ed dissolved organic matter), to test the sensors (that detects pollution by seeing how much light it absorbs, UV for organic matter and normal light for turbidity) and getting a threshold value that will define what is polluted water and what is not for my water quality buoy. However, I made the dissolved organic matter solution a while ago, and it doesn’t seem to absorb UV anymore. Apparently its because the bacteria ate all the organic matter, or it precipitated out as large clumped molecules. But I can’t be bothered to make some fresh solution so I just made up some values for the organic matter sensor (very scientific approach :D)."}, {"post_id": 57986, "ts": "2026-08-30T10:07:16Z", "hours": 12.6839, "text": "Today I sat in my desk all day at my project. I made all the sensor connection work, power system, soldering stuff (and getting burnt 99999 times), drilling holes, epoxy resin -ing (they should invent a word for this), and coding. It feels like its going to work, but I still need to wait to tomorrow to do a few final changes to my code and test it."}, {"post_id": 56557, "ts": "2026-08-28T11:12:23Z", "hours": 3.3183, "text": "Today I tried to figure out which of my components have been fried by my dc booster accident. Luckily, its just the photodiode (OPT101) that i use to test turbidity. I didn’t believe that it was broken even though it outputted strait 0v with light and without light, since it apparenlty can handle up to 36v. But after lots of testing i think it is indeed broken. I soldered on a new one, but i soldered the pin headers teh wrong way around (this is like the 1 billionth time i did this wrong) so I tried to take the headers off. But i didn’t have any solder wick or anything, so i tried to pull the headers off (which is very very stupid), and i did pull the headers off… along with a big chunk of the PCB. So yeah, no more photodiodes. But fortunately I do have some LDRs and ill use tehm, hope its accurate enough."}, {"post_id": 56388, "ts": "2026-08-28T04:25:21Z", "hours": 3.9839, "text": "I tried to test my circuit that i put inside the casing, but there was some problems with the step up booster to make the 4v from my 2 parallel18650 into 5v. However, two of my step ups randomly jump to 20v for a while and then will jump back to exactly 5v, and after a while 20v again. I tried another step up, and that one won’t go down below 10v. I thought that its probably my circuit drawing too less power causing the booster to be unstable, so i added a 470 ohm resistor to the outputs. It still didn’t work after a while. I was very confused and forgot to pull out the resistor out of the malfunctioning booster that was at 20v…. the parallel 18650s made it even worse. So then I smell something burning. I didn’t know that it was the resistor burning, so I just took the resistor off with my fingers, and I got burnt. D: But later I found out that its actually so dumb. I wasn’t sure if my step ups were working at first so I didn’t fully secure the battery wires into the terminals, so in case something went wrong I can just immediately pull the power source out. However, the bad connection of the wires with the terminal made the step up really unstable, causing it to jump to random high voltages. So I guess by being more carefull I actually ended up worse…..? Ok I see. :D Also most of my circuit was connected to the step up (thats even dumber), and the 20v fried my conductivity module, and I think maybe my sensors too but I still need to check (fingers crossed). T_T very cooked"}, {"post_id": 54941, "ts": "2026-08-26T11:09:43Z", "hours": 2.4514, "text": "I put most of my electronics into my buoy casing. The wires are totally very neat and I totally don’t need a flashlight and tweezers to move teh wires. (its way worse than it looks) Theres still a bunch of parts I need to add. I think the buoy is going to sink because the wires weight too much :P. And i feel like my wires are made out of resistors a whole volt dissapeared in a single section of wire."}, {"post_id": 54365, "ts": "2026-08-25T10:14:25Z", "hours": 1.7508, "text": "I printed the parts for my buoy, some needs reprinting. I installed some working parts, and glued some sensor windows with ab epoxy for waterproof. Theres still lots of work to do!"}, {"post_id": 54029, "ts": "2026-08-24T19:38:16Z", "hours": 5.0172, "text": "I emailed a few councils in my country for some feedback onto my project, since they are part of the stakeholders. They said that I should add confidence level for GPS, CSV file save, adjustable measurement intervals, and official guildeline comparism. I added savable CSV for the data and adjustable intervals, but I didn’t do confidence level for GPS cuz my GPS module doesn’t measure carrier to noise ratio. I didn’t do the official guildeline comparism because I made most of the sensors and the only way to convert the data from the sensors to official units is to use calibration sollutions, which is kinda expensive."}, {"post_id": 52212, "ts": "2026-08-22T09:43:18Z", "hours": 6.2258, "text": "Today I started making the 3D model for the buoy itself. I finished most of it, including the top controls, GPS solar panel, and the space for the electronics."}, {"post_id": 50812, "ts": "2026-08-20T07:15:18Z", "hours": 3.2072, "text": "After more than a total of 20 hours of coding, debugging, restarting, crashes…. The server code is working. :D"}, {"post_id": 50538, "ts": "2026-08-19T18:43:10Z", "hours": 3.0325, "text": "I FINALLY debugged the server analysis system. I made a new more organised and simpified code since my original one is way to over OVER complicated."}, {"post_id": 49853, "ts": "2026-08-18T20:01:59Z", "hours": 1.4833, "text": "I ran the buoy code and debugged it. There was a few code mistakes and a few power source problems, but it was alright. However, the server code on the right seems very buggy, millions of errors. Hopefully its not that bad when I test that later."}, {"post_id": 49470, "ts": "2026-08-18T10:17:32Z", "hours": 3.4214, "text": "I debugged the extremely buggy server data analysis code, with help from deepseek because the arrays are getting a bit messy."}, {"post_id": 48749, "ts": "2026-08-17T08:53:48Z", "hours": 3.2239, "text": "I added another function to my analysis of the data, which can combine the individual sources detected from each of the different water quality sensors into real sources that may be the source for many of the individual sources."}, {"post_id": 48434, "ts": "2026-08-16T19:39:36Z", "hours": 0.5733, "text": "My code is going to be really buggy, so I added some debugging print() for easier debugging to the local server."}, {"post_id": 47999, "ts": "2026-08-16T08:50:29Z", "hours": 2.4289, "text": "I coded most of the analysis programme for the reciever. It can calculate how far down a pollution source affect from GPS data from my buoy, identify turbidity and dissolved organic matter problems, and respond to sudden change in pH or conductivity."}, {"post_id": 47868, "ts": "2026-08-16T03:43:31Z", "hours": 5.3475, "text": "Turns out i forgot to do a huge chunk of the reciever code, which is to analyse and display the data. I finished most, just a bit left!"}, {"post_id": 47405, "ts": "2026-08-15T10:01:26Z", "hours": 1.8936, "text": "Water buoy data sending and reciever server code. Just finishing on the finshing of from what I did before."}]...
|
Title: Project FlowMark by @The_Hedgehog | Stardan Title: Project FlowMark by @The_Hedgehog | Stardance
Devlogs:
Water buoy data sending and reciever server code. Just finishing on the finshing of from what I did before.
Turns out i forgot to do a huge chunk of the reciever code, which is to analyse and display the data. I finished most, just a bit left!
I coded most of the analysis programme for the reciever. It can calculate how far down a pollution source affect from GPS data from my buoy, identify turbidity and dissolved organic matter problems, and respond to sudden change in pH or conductivity.
My code is going to be really buggy, so I added some debugging print() for easier debugging to the local server.
I added another function to my analysis of the data, which can combine the individual sources detected from each of the different water quality sensors into real sources that may be the source for many of the individual sources.
I debugged the extremely buggy server data analysis code, with help from deepseek because the arrays are getting a bit messy.
I ran the buoy code and debugged it. There was a few code mistakes and a few power source problems, but it was alright. However, the server code on the right seems very buggy, millions of errors. Hopefully its not that bad when I test that later.
I FINALLY debugged the server analysis system. I made a new more organised and simpified code since my original one is way to over OVER complicated.
After more than a total of 20 hours of coding, debugging, restarting, crashes…. The server code is working. :D
Today I started making the 3D model for the buoy itself. I finished most of it, including the top controls, GPS solar panel, and the space for the electronics.
I emailed a few councils in my country for some feedback onto my project, since they are part of the stakeholders. They said that I should add confidence level for GPS, CSV file save, adjustable measurement intervals, and official guildeline comparism. I added savable CSV for the data and adjustable intervals, but I didn’t do confidence level for GPS cuz my GPS module doesn’t measure carrier to noise ratio. I didn’t do the official guildeline comparism because I made most of the sensors and the only way to convert the data from the sensors to official units is to use calibration sollutions, which is kinda expensive.
I printed the parts for my buoy, some needs reprinting. I installed some working parts, and glued some sensor windows with ab epoxy for waterproof. Theres still lots of work to do!
I put most of my electronics into my buoy casing. The wires are totally very neat and I totally don’t need a flashlight and tweezers to move teh wires. (its way worse than it looks) Theres still a bunch of parts I need to add. I think the buoy is going to sink because the wires weight too much :P. And i feel like my wires are made out of resistors a whole volt dissapeared in a single section of wire.
I tried to test my circuit that i put inside the casing, but there was some problems with the step up booster to make the 4v from my 2 parallel18650 into 5v. However, two of my step ups randomly jump to 20v for a while and then will jump back to exactly 5v, and after a while 20v again. I tried another step up, and that one won’t go down below 10v. I thought that its probably my circuit drawing too less power causing the booster to be unstable, so i added a 470 ohm resistor to the outputs. It still didn’t work after a while. I was very confused and forgot to pull out the resistor out of the malfunctioning booster that was at 20v…. the parallel 18650s made it even worse. So then I smell something burning. I didn’t know that it was the resistor burning, so I just took the resistor off with my fingers, and I got burnt. D: But later I found out that its actually so dumb. I wasn’t sure if my step ups were working at first so I didn’t fully secure the battery wires into the terminals, so in case something went wrong I can just immediately pull the power source out. However, the bad connection of the wires with the terminal made the step up really unstable, causing it to jump to random high voltages. So I guess by being more carefull I actually ended up worse…..? Ok I see. :D Also most of my circuit was connected to the step up (thats even dumber), and the 20v fried my conductivity module, and I think maybe my sensors too but I still need to check (fingers crossed). T_T very cooked
Today I tried to figure out which of my components have been fried by my dc booster accident. Luckily, its just the photodiode (OPT101) that i use to test turbidity. I didn’t believe that it was broken even though it outputted strait 0v with light and without light, since it apparenlty can handle up to 36v. But after lots of testing i think it is indeed broken. I soldered on a new one, but i soldered the pin headers teh wrong way around (this is like the 1 billionth time i did this wrong) so I tried to take the headers off. But i didn’t have any solder wick or anything, so i tried to pull the headers off (which is very very stupid), and i did pull the headers off… along with a big chunk of the PCB. So yeah, no more photodiodes. But fortunately I do have some LDRs and ill use tehm, hope its accurate enough.
Today I sat in my desk all day at my project. I made all the sensor connection work, power system, soldering stuff (and getting burnt 99999 times), drilling holes, epoxy resin -ing (they should invent a word for this), and coding. It feels like its going to work, but I still need to wait to tomorrow to do a few final changes to my code and test it.
I got a bucket and put some pollutants in there (dirt and DIY-ed dissolved organic matter), to test the sensors (that detects pollution by seeing how much light it absorbs, UV for organic matter and normal light for turbidity) and getting a threshold value that will define what is polluted water and what is not for my water quality buoy. However, I made the dissolved organic matter solution a while ago, and it doesn’t seem to absorb UV anymore. Apparently its because the bacteria ate all the organic matter, or it precipitated out as large clumped molecules. But I can’t be bothered to make some fresh solution so I just made up some values for the organic matter sensor (very scientific approach :D).
Today I did a bit more work on the buttons and screen.
Today I wished to do more but my productivity is very cooked recently. I planned to add all the final features to my code, but ended up only debugging the OLED mini display. But ok its working so I guess its alr.
Another day of extreme unproductiveness. I only tried to debug my cellular module turning on and off by itself, but didn’t really solve it. Module rebooting cycle T_T :
Today I restarted my wiring since my esp32 c3 supermini isn’t responding to my code uploads and I had to change to a Arduino Nano. And now the pH sensor doesn’t work and the organic matter sensor doesn’t work either. Hopefully i can find some magical way out tomorrow but now idk what it is because.
Today I diddid aa bbibit mmomormore wwowwork oon mmy nnenew ccirccircuit anandand eeveeeveryeeveeeveryteeveeeverytheeveeeverythineeveeeveryeeveeeveryteeveeeverytheeveeeverything iis bbasicbbasiclbbasicly ddonddone aand waiwaitiwaiwaiting ffofor ffinffinaffinal cocodcode ttesttestttestittesting, aanand ii aam loloolookiloloolookinloloolooking toto fgo ffofor aa ffifiefielfield ttesttest nnenext weeweek. (ssosorrssosorry mymy kekeybkekeyboarkekeybkekeyboard iis nnot ababsabsoluababsabsoluteababsabsoluababsabsolutely worworkworkiworking sso mme isis nnot ggogoigoing tto ssay mumucmuch)
Today I did a lot of fixing in my code, but its way too buggy and I still didn’t fix all of them in 10 hours. Here are some bugs that is fixed and some changes: Dynamic memory on Arduino Nano is running out, so I tried to use the U8G2 library for my mini screen instead of the Adafruit library, but its actually using more memory and is more buggy than Adafruit. In the end I discovered that it is my string commands that I am sending to my cellular module that is gobbling up all my memory, so I used F() macro to put them into flash memory. My screen can’t connect after that change. I found out that by rendering a frame the screen library takes up 1024 bytes of dynamic memory, which is over the limit for my Arduino Nano. Arduino UART is recieving corrupted data from my cellular module. After a bit, I figured out that the built in timer of the Arduino Nano is not precise enough for 112500 baud rate, so I lowered it to 9600.
Today I finished all the debugging and my floating buoy is ready for testing.
Today I wrote a script for my video about my project so I can enter a competition. But they limit the video to be 5 minutes long, which is basicly 800 words max, but half way through i already have 1.4k words. If there is no limit i feel lik i can write a whole paper about it. But I’ll try to make it as short as possible so I don’t have to get a buzz cut and become real slim shady :D
Today I planned a presentation about my project for UWEN Annual General Meeting. Hopefully I can get their oppinions on how i should imrpove my solution as they are my stakehoders.
Today I tried to power my cellular module with my two 18650 in parallel. It kinda works for a while but then the voltage dips and the module turns itself off. Its most likely the thin wires, and I optimised it as much as I can, but the same thing happens. I will charge my batteries up again and if it still dont’ work I will just skip my MOSFET circuit that turns the module on and off, as this thing still has a bit of thin wires. If it STILL dont’ work I give up. My 18650 can go up to 8 amps max apparenlty, so it should support 16 amps. My module only uses 2 amps, so it should work if there was minimal wires. Hopefully, finger crossed. If this doesn’t work im cooked. But lets not think too much yk things always work out after you charge ur lithium batteries overnight cuz ur table will probably catch on fire and everything will be burnt out and u will never have to worry about it again. srry i don’t have a photo
Today I finally made my cellular module work, as before it always shut down due to thin wires burning up too much voltage. My free floating buoy is ready for testing!
Today I almsot finished the slides for my presentation for UWEN next week, so I can go there and get some feedback.
Ships:
I made a buoy that can float freely down a river. It has four sensors, pH, conductivity, dissolved organic matter, and turbidity. It constantly uses these sensors to take measurements and sends it to a locally hosted Python Flask server tunneled using Ngrok. After the buoy is collected from the water, the server will analyse the data and find out where the water quality started to worsen, therefore finding out where riverine polution might be. Although the project wasn’t very complicated, I faced many many problems. The most memorable and most fustrating ones: I use a step up module to turn the 4v from my 18650 to 5v for my ESP32 C3 Supermini. But the step up often randomly output over 20v, though it is set for 5v. I later found out that its because a loose connection between my battery and the step up, but the voltage spikes has badly burnt many things in my circuit. The ESP32 C3 Supermini suddenly cannot connect to my computer. I tried holding down boot button, boot and reset, redownload a driver, and trying all the ports on my computer and in Arduino IDE. But it just won’t work. So I changed to a Arduino Nano. But that just made things worse. The Arduino Nano successfully connected to my computer, but it often corrupts recieved UART signals from my cellular module. Later I found out that its because the Arduino Nano’s clock is a bit off for 112500 baud. This made things more complicated because I need to start the UART communication between the Nano and the cellular module at 112500 (since my cellular module is default 112500 when start up), then request the cellular module to turn down to 9600, and then change the Nano UART back to 9600. It did finally work tho. I guess this is the worst nightmare in my project. My project uses a pair of 18650 in parallel, as it can have more power to sustain my buoy for longer. But the cellular module often shut down right after it turns on. It turns out that the celular module can pull up to 2 amps when connecting to the cellular tower and sending messages, which is causing the voltage drop. However, this was weird because the two 18650 cells I had is the Samsung 25R, which has a max discharge of 20 amps. Parallel means that the max discharge become 40 amps, which is wayyyyyyy more than the 2 amps required. So the problem must not be the batteries. Or is it? I suspect that the batteries are fake. They weigh pretty normal, being 44 grams. I checked the imprints on the wrapping, and it did have a legitemate manufacture date code that says someday in 2017 (I forgot which day it was, but it was 2017). And I also took off the battery wrapping, and it did had Samsung factory imprints on the metal. So the battery is good, the cellular module can only take up to 2 amps….. then the problem must be between the cellular module and the battery! And it was. It was the thin jumper wires and breadboard that decreased the voltage when the current increased. Shorter thicker wires solved it. There was actually much more issues, but these are the most memorable ones for me. I am glad that my project turns out to be working, becuase i genuinely thought that it would never work when making it....
|
1793004507.518697
|
1793090907.518697
|
|
23040
|
rhythm crossing by @alyah | Stardance
|
alyah
|
1
|
7.32
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T22:10:22Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Rhythm Crossing, an adaptation of the VR and XBox game Beat Sabers. It currently only runs locally, so check out the latest release at https://github.com/lyri3aly/rhythm-crossing/releases/tag/v.1 . It runs by connecting a phone (as the console) to a laptop and utilizing its IMU sensors. This was my first time working with concepts such as using the browser’s DeviceMotionEvent / DeviceOrientationEvent APIs, so everything was very new to me. After a lot trial and error and prayers, the game finally works properly without any (known) bugs and I’m very proud of how it turned out!", "repo": "https://github.com/lyri3aly/rhythm-crossing", "demo": "https://rhythm-crossing.onrender.com/"}]...
|
[{"post_id": 70932, "ts": "202 [{"post_id": 70932, "ts": "2026-09-20T02:07:33Z", "hours": 0.3236, "text": "update: SOOO STARDANCE HATES ME AND RENDER ISN’T ALLOWED EITHER. WILL BE MOVING TO HACK CLUB NEST.. apparently ships require a web-access link, so I’ve FINALLY made the game available on the web. it is deployed through render (my first time using it and it’s on a free plan so I’m not sure how well it will work). to those rating my project: please ignore the info on my ship about releases and use the following link insetad! if it doesn’t work uhh… that’s not supposed to happen… https://rhythm-crossing.onrender.com/ also ignore the laginess at the start of the gameplay in my attached video, the screen recorder was bugging it out but it returns back to the actual resolution in a few seconds!"}, {"post_id": 70865, "ts": "2026-09-19T21:50:44Z", "hours": 6.6031, "text": "for some reason, I recall devlogging things by nothing is showing? guys I might just be schizo… anyway, I made rhythm crossing! this was a project I made with my friends, personally spening 6 hours on! it’s meant to be a replication of beat saber, the vr game where you slice blocks coming towards you in time to the beat. the ui is inspired by animal crossing :)"}]...
|
Title: rhythm crossing by @alyah | Stardance
Devl Title: rhythm crossing by @alyah | Stardance
Devlogs:
for some reason, I recall devlogging things by nothing is showing? guys I might just be schizo… anyway, I made rhythm crossing! this was a project I made with my friends, personally spening 6 hours on! it’s meant to be a replication of beat saber, the vr game where you slice blocks coming towards you in time to the beat. the ui is inspired by animal crossing :)
update: SOOO STARDANCE HATES ME AND RENDER ISN’T ALLOWED EITHER. WILL BE MOVING TO HACK CLUB NEST.. apparently ships require a web-access link, so I’ve FINALLY made the game available on the web. it is deployed through render (my first time using it and it’s on a free plan so I’m not sure how well it will work). to those rating my project: please ignore the info on my ship about releases and use the following link insetad! if it doesn’t work uhh… that’s not supposed to happen… https://rhythm-crossing.onrender.com/ also ignore the laginess at the start of the gameplay in my attached video, the screen recorder was bugging it out but it returns back to the actual resolution in a few seconds!
Ships:
I made Rhythm Crossing, an adaptation of the VR and XBox game Beat Sabers. It currently only runs locally, so check out the latest release at https://github.com/lyri3aly/rhythm-crossing/releases/tag/v.1 . It runs by connecting a phone (as the console) to a laptop and utilizing its IMU sensors. This was my first time working with concepts such as using the browser’s DeviceMotionEvent / DeviceOrientationEvent APIs, so everything was very new to me. After a lot trial and error and prayers, the game finally works properly without any (known) bugs and I’m very proud of how it turned out!...
|
1793004978.463541
|
1793091378.463541
|
|
63808
|
website for my club :0 by @jamallyemin | Stardance
|
jamallyemin
|
1
|
4.9
|
14
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T21:44:55Z", "hours": 3.0, "multiplier": 4.3, "payout": 14, "blessing": "neutral", "text": "built a landing page for my club (Caspian Hack Club) using html, css, and vanilla js. wanted a raw, minimalist dark look with monospace fonts and a dot grid background. the trickiest part was fixing some flexbox/grid layout alignment issues in the footer and getting the interactive project toggle tab to animate smoothly without any libraries. pretty happy with how clean and responsive the design turned out. you can test it by opening the site link, toggling between individual/club projects, and checking out the member links!", "repo": "https://github.com/jamallyemin/CaspianHC", "demo": "https://jamallyemin.github.io/CaspianHC/"}]...
|
[{"post_id": 72252, "ts": "202 [{"post_id": 72252, "ts": "2026-09-22T15:11:29Z", "hours": 1.8964, "text": "hai! just updated the website for my club! added light/dark theme, az/en/ru support, a photo gallery for hardware builds (and the epic crew ofc), plus a devlogs section to log our project progress!"}, {"post_id": 70850, "ts": "2026-09-19T21:22:37Z", "hours": 1.7747, "text": "it’s done now!! there’s more stuff I’d like to add such as gallery, joining to club section, chat and more kewl stuff but I’m kinda lazy, I will do these in the next update and when I add the club members to member list ^_^"}, {"post_id": 70766, "ts": "2026-09-19T18:39:51Z", "hours": 1.1, "text": "hai!! im building a website for my club where we will be able to display our projects (individual and group), show the epic crew and more!! so far I’ve finished designing the logo for my club and the html."}]...
|
Title: website for my club :0 by @jamallyemin | St Title: website for my club :0 by @jamallyemin | Stardance
Devlogs:
hai!! im building a website for my club where we will be able to display our projects (individual and group), show the epic crew and more!! so far I’ve finished designing the logo for my club and the html.
it’s done now!! there’s more stuff I’d like to add such as gallery, joining to club section, chat and more kewl stuff but I’m kinda lazy, I will do these in the next update and when I add the club members to member list ^_^
hai! just updated the website for my club! added light/dark theme, az/en/ru support, a photo gallery for hardware builds (and the epic crew ofc), plus a devlogs section to log our project progress!
Ships:
built a landing page for my club (Caspian Hack Club) using html, css, and vanilla js. wanted a raw, minimalist dark look with monospace fonts and a dot grid background. the trickiest part was fixing some flexbox/grid layout alignment issues in the footer and getting the interactive project toggle tab to animate smoothly without any libraries. pretty happy with how clean and responsive the design turned out. you can test it by opening the site link, toggling between individual/club projects, and checking out the member links!...
|
1793058824.454549
|
1793145224.454549
|
|
63457
|
Shebas site!! =D by @Shebas6 | Stardance
|
Shebas6
|
1
|
3.2
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T21:33:13Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My first big project! :D it was a little bit difficult for a new coder, i’m happy to make this real and i like my ascii cube.", "repo": "https://github.com/miquelsblanchm12-png/Sheebas-personal-websitee", "demo": "https://miquelsblanchm12-png.github.io/Sheebas-personal-websitee/"}]...
|
[{"post_id": 71092, "ts": "202 [{"post_id": 71092, "ts": "2026-09-20T09:03:27Z", "hours": 1.2047, "text": "Devlog 3- Reemakeing the code - I Shiped the project and it terl me that it looked ai generated, so i reewrite the code with help of ai to make it more personal, i think that this pages represents me 100%"}, {"post_id": 70567, "ts": "2026-09-19T11:35:40Z", "hours": 0.4431, "text": "Devlog 2- Ascii Cube :D i’m learnig so much things, in the future i want to make a blog site to write whatever i want!"}, {"post_id": 70273, "ts": "2026-09-18T21:00:56Z", "hours": 1.2114, "text": "Devlog 1- I jjust started to learn how to do my own sites and i love it, sometimes is difficult to find an error, but i like this."}]...
|
Title: Shebas site!! =D by @Shebas6 | Stardance
D Title: Shebas site!! =D by @Shebas6 | Stardance
Devlogs:
Devlog 1- I jjust started to learn how to do my own sites and i love it, sometimes is difficult to find an error, but i like this.
Devlog 2- Ascii Cube :D i’m learnig so much things, in the future i want to make a blog site to write whatever i want!
Devlog 3- Reemakeing the code - I Shiped the project and it terl me that it looked ai generated, so i reewrite the code with help of ai to make it more personal, i think that this pages represents me 100%
Ships:
My first big project! :D it was a little bit difficult for a new coder, i’m happy to make this real and i like my ascii cube....
|
1793058765.316283
|
1793145165.316283
|
|
63659
|
My first slack bot! by @bux1k | Stardance
|
bux1k
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T21:07:28Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created my own slack bot It have these commands: /bxbot-dogpic - Gives a random dog picture /bxbot-joke - Tells a random dad joke /bxbot-ping - Get the bot ping /bxbot-catfact - Get random cat fact AI was used on: Fixing one axios api request", "repo": "https://github.com/bux1k0/slackbot", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 70830, "ts": "202 [{"post_id": 70830, "ts": "2026-09-19T20:48:07Z", "hours": 0.2886, "text": "Currently learned basics of a Slack bot."}]...
|
Title: My first slack bot! by @bux1k | Stardance
Title: My first slack bot! by @bux1k | Stardance
Devlogs:
Currently learned basics of a Slack bot.
Ships:
I created my own slack bot It have these commands: /bxbot-dogpic - Gives a random dog picture /bxbot-joke - Tells a random dad joke /bxbot-ping - Get the bot ping /bxbot-catfact - Get random cat fact AI was used on: Fixing one axios api request...
|
1793058786.644595
|
1793145186.644595
|
|
63544
|
Ziphus by @Qlz | Stardance
|
Qlz
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T20:21:09Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Ziphus is a lightweight browser based encoding and decoding tool for Morse Code, Binary, and Caesar Cipher which supports both directions and customizable cipher shifts a value of your choice. The most challenging part was making each system translate correctly while handling things like capitalization, reverse decoding, and different formats. I’m most proud of turning a simple translator idea into a complete, polished tool with everything processed locally. For testing, try all three protocols, switch between Encode and Decode, test different Caesar shift values, and use the Swap, Copy, and Clear buttons.", "repo": "https://github.com/aqvoz/Ziphus", "demo": "https://aqvoz.github.io/Ziphus/"}]...
|
[{"post_id": 70815, "ts": "202 [{"post_id": 70815, "ts": "2026-09-19T20:15:17Z", "hours": 0.3186, "text": "I spent some time polishing by testing the different translation systems and cleaning up the interface so everything stayed simple and consistent. The processing is also done locally in the browser, so the project doesn’t need a server to translate the text.This become a great tool and i feel like its ready for publishing."}, {"post_id": 70651, "ts": "2026-09-19T14:57:05Z", "hours": 1.1161, "text": "I realized that only being able to encode text made the tool feel incomplete.So this update was focused on building the reverse translation system.Ziphus can now take the different formats it creates and translate them back into readable text.I updated caesar cipher,now you can now customize the number of shifts you want for your cipher. I also added a Direction system so Ziphus can switch between Encode and Decode instead of needing separate tools for each.There are still a few things I want to polish before I call it finished."}, {"post_id": 70480, "ts": "2026-09-19T08:22:46Z", "hours": 0.5408, "text": "The project is finally starting to feel like an actual tool rather than just a UI experiment.One of the things I had to spend more time was case handling. In the cyber shift system, uppercase and lowercase characters need to stay different like A shifts to D, while a shifts to d. It sounds simple, but making sure the transformation preserves the original case is important if the translated text is going to remain consistent.I also had to handle the differences between the three encoding systems: Morse works with symbols like dots and dashes, while Binary converts characters into 8-bit numerical representations. The Cyber-Shift system works differently again by shifting letters through the alphabet while leaving things like spaces and punctuation intact.The current version can translate text into Morse, Binary, and Cyber-Shift, with the processing happening locally in the browser.But I don’t think the project is completely finished yet cuz Ziphus is mainly useful for encoding text. I want to take that one step further and add reverse translation.That would mean someone could paste Morse, Binary, or a shifted message into Ziphus and have it translated back into normal English.I think that’s an important part of making this is to make it useful"}, {"post_id": 70245, "ts": "2026-09-18T19:46:23Z", "hours": 0.6103, "text": "Started building my next project ZIPHUS, a local signal translator and encryption engine for decoding texts. Created the main terminal layout using HTML and styled it with a minimal styling with green/gray using CSS. Added input/output text areas, custom character counters like the , and the protocol selectors for Morse code, 8-bit binary,i still got to complete the caesar shift cipher (+3) and etc."}]...
|
Title: Ziphus by @Qlz | Stardance
Devlogs:
Starte Title: Ziphus by @Qlz | Stardance
Devlogs:
Started building my next project ZIPHUS, a local signal translator and encryption engine for decoding texts. Created the main terminal layout using HTML and styled it with a minimal styling with green/gray using CSS. Added input/output text areas, custom character counters like the , and the protocol selectors for Morse code, 8-bit binary,i still got to complete the caesar shift cipher (+3) and etc.
The project is finally starting to feel like an actual tool rather than just a UI experiment.One of the things I had to spend more time was case handling. In the cyber shift system, uppercase and lowercase characters need to stay different like A shifts to D, while a shifts to d. It sounds simple, but making sure the transformation preserves the original case is important if the translated text is going to remain consistent.I also had to handle the differences between the three encoding systems: Morse works with symbols like dots and dashes, while Binary converts characters into 8-bit numerical representations. The Cyber-Shift system works differently again by shifting letters through the alphabet while leaving things like spaces and punctuation intact.The current version can translate text into Morse, Binary, and Cyber-Shift, with the processing happening locally in the browser.But I don’t think the project is completely finished yet cuz Ziphus is mainly useful for encoding text. I want to take that one step further and add reverse translation.That would mean someone could paste Morse, Binary, or a shifted message into Ziphus and have it translated back into normal English.I think that’s an important part of making this is to make it useful
I realized that only being able to encode text made the tool feel incomplete.So this update was focused on building the reverse translation system.Ziphus can now take the different formats it creates and translate them back into readable text.I updated caesar cipher,now you can now customize the number of shifts you want for your cipher. I also added a Direction system so Ziphus can switch between Encode and Decode instead of needing separate tools for each.There are still a few things I want to polish before I call it finished.
I spent some time polishing by testing the different translation systems and cleaning up the interface so everything stayed simple and consistent. The processing is also done locally in the browser, so the project doesn’t need a server to translate the text.This become a great tool and i feel like its ready for publishing.
Ships:
Ziphus is a lightweight browser based encoding and decoding tool for Morse Code, Binary, and Caesar Cipher which supports both directions and customizable cipher shifts a value of your choice. The most challenging part was making each system translate correctly while handling things like capitalization, reverse decoding, and different formats. I’m most proud of turning a simple translator idea into a complete, polished tool with everything processed locally. For testing, try all three protocols, switch between Encode and Decode, test different Caesar shift values, and use the Swap, Copy, and Clear buttons....
|
1793058775.4580927
|
1793145175.4580927
|
|
63847
|
WhackAStelle by @Sahild | Stardance
|
Sahild
|
1
|
1.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T20:13:16Z", "hours": 1.0, "multiplier": 1.36, "payout": 2, "blessing": "neutral", "text": "a whack a mole game with the moles being @stellenium", "repo": "https://github.com/sahilchess/WhackAStelle", "demo": "https://sahilchess.itch.io/whack-a-stelle"}]...
|
[{"post_id": 70723, "ts": "202 [{"post_id": 70723, "ts": "2026-09-19T17:34:57Z", "hours": 1.4717, "text": "migration from onekey so i am migrating this from onekey"}]...
|
Title: WhackAStelle by @Sahild | Stardance
Devlog Title: WhackAStelle by @Sahild | Stardance
Devlogs:
migration from onekey so i am migrating this from onekey
Ships:
a whack a mole game with the moles being @stellenium...
|
1793058837.781732
|
1793145237.781732
|
|
56480
|
21 Days of Python by @LPcomix123 | Stardance
|
LPcomix123
|
1
|
11.42
|
21
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T20:09:23Z", "hours": 11.0, "multiplier": 1.96, "payout": 21, "blessing": "neutral", "text": "I made Sticky Streaks for the 21 Days of Python challenge. I started with a basic Python project and slowly added more features over the 21 days, including a day counter, coin flip, dice, number guesser, calculator, Magic 8 Ball, slot machine, unit converter and more. The hardest part was probably keeping myself working on it for all 21 days and fixing all the random bugs I came across. I’m really proud that I actually finished it and managed to keep adding things throughout the challenge. If you want to test it, just download the project and run main.py. Have fun :)", "repo": "https://github.com/LPcomix123/21-Days-of-Python", "demo": "https://github.com/LPcomix123/21-Days-of-Python/releases/tag/v1.0.0"}]...
|
[{"post_id": 71421, "ts": "202 [{"post_id": 71421, "ts": "2026-09-20T19:51:47Z", "hours": 0.4164, "text": "I’ve added an executable for windows for the reviewer to the release page Here and updated the Installation guide in the readme Here and finally I have vibe-coded a cool website for the project Here and added a link to my main website Here and finally I have changed the banner, and that’s it! :)"}, {"post_id": 70707, "ts": "2026-09-19T16:58:38Z", "hours": 1.0258, "text": "Days 18-21!!!!! Over the past few days I have added and fixed and polished the last few features and I think the last commit ever to this project will give you an understanding to what I have done over the past few days and how I feel, here it is: Added it so you can exit the calculator easier just by typing \"exit\", added a new log to the about section and added completed text for after the completion date of: 19 of September 2026, removed a feature cause i wont have time to fulfill it and I have removed the under development text cause it's all done!!!!!!!!!!! :) Thank you to everyone who has followed this journey from day 1 to day 21! CYA!!!! :) , there ya go, this is the last devlog to this project and I am really proud of the way I have come and what I have learned over this period and yeah, that is 21 DAYS OF PYTHON , thank you all for following along and bye! :)"}, {"post_id": 69016, "ts": "2026-09-16T07:01:53Z", "hours": 0.5383, "text": "Days 15-17! Over the past few days I have addded a modderate amount of features and those are: a first working version of the calculator, more dev friendly spacing, bug fixes and another few new number guesser session stats. Anddthose were Days 15-17"}, {"post_id": 67526, "ts": "2026-09-13T17:20:38Z", "hours": 0.4069, "text": "Day 14! Finally got to the 2/3 milestone, ok, today I haven’t done too much again, but I have added a working most guesses counter and a buggy fewest guesses counter in the number guesser stats feature, but I have fixed a bug where if you haven’t played a number guesser game before in that session it would error but now it doesn’t. And that’s Day 14! :) p.s. sorry for light mode in images"}, {"post_id": 66221, "ts": "2026-09-11T22:11:54Z", "hours": 1.0608, "text": "Days 11-13! Over the past few days I have added a WORKING magic 8 ball and fixed all the bugs in it, I have added some stats to the number guesser and I have fixed some bugs that have been in the back of my mind"}, {"post_id": 64457, "ts": "2026-09-08T21:08:02Z", "hours": 0.2872, "text": "Day 10! Finally got to double digits, almost half way to the ultimate plushie goal, anyway today I have added: a basic feature under development feature, and I tested and fixed a few bugs, and that’s it really, anyway bye, That’s Day 10!"}, {"post_id": 63838, "ts": "2026-09-07T20:20:05Z", "hours": 1.2444, "text": "Day 7-9! over the past 3 days I have added a new Easter egg, I have fixed a lot of bugs and just other cool stuff, I have mainly over the past 3 days, been sailing and making my pc multi-bootable with 5 Linux distros and windows, then I’m gonna customise my Grub. And that’s Days 7-9!"}, {"post_id": 61769, "ts": "2026-09-04T20:47:28Z", "hours": 1.0753, "text": "Day 6! Well today I have brought back a big hour of development to the project, and today I have accomplished: finalised the countdown and started the number guesser game, I have added difficulty levels to the number guesser: Easy, Medium, Hard, Extreme, and UNLIMITED; and I have made the difficulties actually work, I have added basic exit and checking code, and started range validation! And that’s Day 6!"}, {"post_id": 60782, "ts": "2026-09-03T11:33:47Z", "hours": 0.4056, "text": "Day 5!, Another day of barely anything to do with this project, but in fairness I have got my website running on Hackclub Nest, but Today I have added: emojis to the main menu and I have added Time up text to the Countdown feature, and that’s Day 5"}, {"post_id": 60164, "ts": "2026-09-02T11:27:55Z", "hours": 0.4672, "text": "Day 4! Again today I haven’t done a lot but I have done a cool feature; I have committed the first version of a Countdown timer, and I have fixed all known bugs and given it some flare as well as a small update to an Easter egg but I’m probably going to do some Roblox game dev for the rest of the day, and that’s Day 4! :)"}, {"post_id": 59445, "ts": "2026-09-01T09:26:43Z", "hours": 0.2992, "text": "Day 3! Today I haven’t done as much as usual, but I have done something; I have added the Dice Roller feature and tested and fixed the bugs in it, I gave the Dice Roller some flair by adding emojis, I’m probably gonna spend the rest of today doing some pc config, but that’s Day 3. :)"}, {"post_id": 59116, "ts": "2026-08-31T19:00:18Z", "hours": 2.7858, "text": "Day 2! Today I have fully completed and tested the modular foundation (a day early) and I have added a working day counter out of 21, I have finished laying out the about section and the main menu and I have updated the code behind “feature 5 is currently in development, please check again later” so its a lot simpler, I have also added comments to keep the big chunk of code organised, and FINALLY I have added and tested a coin flip mechanic that has an invalid option fallback similar to the main menu’s one, and I have shown the code to my Dad and he has officially approved!!! 😃"}, {"post_id": 58495, "ts": "2026-08-30T22:21:51Z", "hours": 1.1078, "text": "Day 1! I have coded a startup message and a main menu with a modular “if mode is” architecture for later features, the menu also has an Exit option that displays a goodbye message and quits the program, the program has a nice typewriter typing style and uses a few functions to save time as well as all the options are in a list to save time writing type(“…”) over and over again, I’d say a pretty successful day 1! :)"}]...
|
Title: 21 Days of Python by @LPcomix123 | Stardanc Title: 21 Days of Python by @LPcomix123 | Stardance
Devlogs:
Day 1! I have coded a startup message and a main menu with a modular “if mode is” architecture for later features, the menu also has an Exit option that displays a goodbye message and quits the program, the program has a nice typewriter typing style and uses a few functions to save time as well as all the options are in a list to save time writing type(“…”) over and over again, I’d say a pretty successful day 1! :)
Day 2! Today I have fully completed and tested the modular foundation (a day early) and I have added a working day counter out of 21, I have finished laying out the about section and the main menu and I have updated the code behind “feature 5 is currently in development, please check again later” so its a lot simpler, I have also added comments to keep the big chunk of code organised, and FINALLY I have added and tested a coin flip mechanic that has an invalid option fallback similar to the main menu’s one, and I have shown the code to my Dad and he has officially approved!!! 😃
Day 3! Today I haven’t done as much as usual, but I have done something; I have added the Dice Roller feature and tested and fixed the bugs in it, I gave the Dice Roller some flair by adding emojis, I’m probably gonna spend the rest of today doing some pc config, but that’s Day 3. :)
Day 4! Again today I haven’t done a lot but I have done a cool feature; I have committed the first version of a Countdown timer, and I have fixed all known bugs and given it some flare as well as a small update to an Easter egg but I’m probably going to do some Roblox game dev for the rest of the day, and that’s Day 4! :)
Day 5!, Another day of barely anything to do with this project, but in fairness I have got my website running on Hackclub Nest, but Today I have added: emojis to the main menu and I have added Time up text to the Countdown feature, and that’s Day 5
Day 6! Well today I have brought back a big hour of development to the project, and today I have accomplished: finalised the countdown and started the number guesser game, I have added difficulty levels to the number guesser: Easy, Medium, Hard, Extreme, and UNLIMITED; and I have made the difficulties actually work, I have added basic exit and checking code, and started range validation! And that’s Day 6!
Day 7-9! over the past 3 days I have added a new Easter egg, I have fixed a lot of bugs and just other cool stuff, I have mainly over the past 3 days, been sailing and making my pc multi-bootable with 5 Linux distros and windows, then I’m gonna customise my Grub. And that’s Days 7-9!
Day 10! Finally got to double digits, almost half way to the ultimate plushie goal, anyway today I have added: a basic feature under development feature, and I tested and fixed a few bugs, and that’s it really, anyway bye, That’s Day 10!
Days 11-13! Over the past few days I have added a WORKING magic 8 ball and fixed all the bugs in it, I have added some stats to the number guesser and I have fixed some bugs that have been in the back of my mind
Day 14! Finally got to the 2/3 milestone, ok, today I haven’t done too much again, but I have added a working most guesses counter and a buggy fewest guesses counter in the number guesser stats feature, but I have fixed a bug where if you haven’t played a number guesser game before in that session it would error but now it doesn’t. And that’s Day 14! :) p.s. sorry for light mode in images
Days 15-17! Over the past few days I have addded a modderate amount of features and those are: a first working version of the calculator, more dev friendly spacing, bug fixes and another few new number guesser session stats. Anddthose were Days 15-17
Days 18-21!!!!! Over the past few days I have added and fixed and polished the last few features and I think the last commit ever to this project will give you an understanding to what I have done over the past few days and how I feel, here it is: Added it so you can exit the calculator easier just by typing "exit", added a new log to the about section and added completed text for after the completion date of: 19 of September 2026, removed a feature cause i wont have time to fulfill it and I have removed the under development text cause it's all done!!!!!!!!!!! :) Thank you to everyone who has followed this journey from day 1 to day 21! CYA!!!! :) , there ya go, this is the last devlog to this project and I am really proud of the way I have come and what I have learned over this period and yeah, that is 21 DAYS OF PYTHON , thank you all for following along and bye! :)
I’ve added an executable for windows for the reviewer to the release page Here and updated the Installation guide in the readme Here and finally I have vibe-coded a cool website for the project Here and added a link to my main website Here and finally I have changed the banner, and that’s it! :)
Ships:
I made Sticky Streaks for the 21 Days of Python challenge. I started with a basic Python project and slowly added more features over the 21 days, including a day counter, coin flip, dice, number guesser, calculator, Magic 8 Ball, slot machine, unit converter and more. The hardest part was probably keeping myself working on it for all 21 days and fixing all the random bugs I came across. I’m really proud that I actually finished it and managed to keep adding things throughout the challenge. If you want to test it, just download the project and run main.py. Have fun :)...
|
1793004861.819497
|
1793091261.819497
|
|
63671
|
TON-618 OS by @AryaRanjan | Stardance
|
AryaRanjan
|
1
|
2.85
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T19:46:31Z", "hours": 2.0, "multiplier": 1.37, "payout": 3, "blessing": "neutral", "text": "I have made the webOS2, and note that my WebOS1 was banned so it wont be available to see, but i hope you all like feature if it, i added browser, AI agent (easter, try it), Tasks, System Monitor, and Clipboard like 4-5 real features", "repo": "https://github.com/aryaranjan22/Dusk_OS_V2", "demo": "https://aryaranjan22.github.io/Dusk_OS_V2/"}]...
|
[{"post_id": 71815, "ts": "202 [{"post_id": 71815, "ts": "2026-09-21T16:25:45Z", "hours": 0.3111, "text": "Finished everything and bugs were killed with insecticide, at last it goes for rating with all set up perfectly, vote me good ;D"}, {"post_id": 70852, "ts": "2026-09-19T21:24:27Z", "hours": 0.5369, "text": "Finished Polishing all the Style and UI with Animation and pput up the good LONG…… CSS rather than AI compressed CSS"}, {"post_id": 70786, "ts": "2026-09-19T19:19:01Z", "hours": 1.1761, "text": "Added new feature with tweak to previous banned version and a better compressed or more like reduced CSS so i could debug better first i made it with AI up to 320 line from 3.1K but it wasn’t good so i removed that and made my own compressed form up to like 540-560, this was a lot frustrating but VS Editor’s Aura saved from its quick suggestions and show me problem with little debugs"}, {"post_id": 70499, "ts": "2026-09-19T09:01:16Z", "hours": 0.8492, "text": "Added 4-5 features such as browser, AI agent(Easter), with Gallery, Clipboard to do tasks, used my old webOS1’S code for this whole revised thing and remade it better. I went very hard thinking what to add and all new features, will update README soon"}]...
|
Title: TON-618 OS by @AryaRanjan | Stardance
Devl Title: TON-618 OS by @AryaRanjan | Stardance
Devlogs:
Added 4-5 features such as browser, AI agent(Easter), with Gallery, Clipboard to do tasks, used my old webOS1’S code for this whole revised thing and remade it better. I went very hard thinking what to add and all new features, will update README soon
Added new feature with tweak to previous banned version and a better compressed or more like reduced CSS so i could debug better first i made it with AI up to 320 line from 3.1K but it wasn’t good so i removed that and made my own compressed form up to like 540-560, this was a lot frustrating but VS Editor’s Aura saved from its quick suggestions and show me problem with little debugs
Finished Polishing all the Style and UI with Animation and pput up the good LONG…… CSS rather than AI compressed CSS
Finished everything and bugs were killed with insecticide, at last it goes for rating with all set up perfectly, vote me good ;D
Ships:
I have made the webOS2, and note that my WebOS1 was banned so it wont be available to see, but i hope you all like feature if it, i added browser, AI agent (easter, try it), Tasks, System Monitor, and Clipboard like 4-5 real features...
|
1793058791.4644303
|
1793145191.4644303
|
|
63784
|
TIK TAC TOE by @MuhammadDawood | Stardance
|
MuhammadDawood
|
1
|
2.0
|
5
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T19:36:58Z", "hours": 2.0, "multiplier": 2.33, "payout": 5, "blessing": "neutral", "text": "I have built an Unbeatable Minecraft style TIK TAC TOE that no one can win with. Hope you will try it to become a looser.", "repo": "https://github.com/DAVIDX-004/Unbeatable-TIK-TAK-TOE", "demo": "https://davidx-004.github.io/Unbeatable-TIK-TAK-TOE/"}]...
|
[{"post_id": 70791, "ts": "202 [{"post_id": 70791, "ts": "2026-09-19T19:33:11Z", "hours": 1.7617, "text": "Now the Project is done. If you have the guts try to beat it."}, {"post_id": 70629, "ts": "2026-09-19T14:09:10Z", "hours": 0.34, "text": "I have officially started my second project its my first ever TIC TAK TOE game I am working on its html"}]...
|
Title: TIK TAC TOE by @MuhammadDawood | Stardance
Title: TIK TAC TOE by @MuhammadDawood | Stardance
Devlogs:
I have officially started my second project its my first ever TIC TAK TOE game I am working on its html
Now the Project is done. If you have the guts try to beat it.
Ships:
I have built an Unbeatable Minecraft style TIK TAC TOE that no one can win with. Hope you will try it to become a looser....
|
1793058817.5162566
|
1793145217.5162566
|
|
63866
|
jer bot by @jermybiju | Stardance
|
jermybiju
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T19:19:50Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built “jer bot”, a custom Slack bot for the Stardance Challenge using Node.js and @slack /bolt. It has 6 unique slash commands (ping, help, catfact, roll, coinflip, joke) and fetches real data using Axios. The biggest challenge was deploying it to Render. I ran into an “invalid_auth” error because of a typo in my environment variables, and then a 404 error during submission because my repo was private. Fixed both by correcting the tokens and making the repo public. I’m really proud that it’s now running 24/7 on Render even when my laptop is closed. To test it, just go to the #bot-spam channel in the Hack Club Slack and type /jer-help or /jer-ping. It replies instantly!", "repo": "https://github.com/jermybiju/jer-slack-bot", "demo": "https://jer-slack-bot.onrender.com"}]...
|
[{"post_id": 70780, "ts": "202 [{"post_id": 70780, "ts": "2026-09-19T19:07:41Z", "hours": 1.1767, "text": "Just finished building my custom Slack bot for the Stardance Challenge! Tech Stack: Node.js, @slack /bolt, Axios, and Render for hosting. Features: Added 6 slash commands (/jer-ping, /jer-help, /jer-catfact, /jer-roll, /jer-coinflip, /jer-joke). It uses external APIs for cat facts and jokes. Challenges: Faced an invalid_auth error on Render due to a typo in the environment variables. Fixed it by correcting the tokens. Got a 404 error during submission because the GitHub repo was private. Made it public to fix it. Result: The bot is now live 24/7 on Render and responds to commands instantly. GitHub repo is public and the project is submitted!"}]...
|
Title: jer bot by @jermybiju | Stardance
Devlogs: Title: jer bot by @jermybiju | Stardance
Devlogs:
Just finished building my custom Slack bot for the Stardance Challenge! Tech Stack: Node.js, @slack /bolt, Axios, and Render for hosting. Features: Added 6 slash commands (/jer-ping, /jer-help, /jer-catfact, /jer-roll, /jer-coinflip, /jer-joke). It uses external APIs for cat facts and jokes. Challenges: Faced an invalid_auth error on Render due to a typo in the environment variables. Fixed it by correcting the tokens. Got a 404 error during submission because the GitHub repo was private. Made it public to fix it. Result: The bot is now live 24/7 on Render and responds to commands instantly. GitHub repo is public and the project is submitted!
Ships:
I built “jer bot”, a custom Slack bot for the Stardance Challenge using Node.js and @slack /bolt. It has 6 unique slash commands (ping, help, catfact, roll, coinflip, joke) and fetches real data using Axios. The biggest challenge was deploying it to Render. I ran into an “invalid_auth” error because of a typo in my environment variables, and then a 404 error during submission because my repo was private. Fixed both by correcting the tokens and making the repo public. I’m really proud that it’s now running 24/7 on Render even when my laptop is closed. To test it, just go to the #bot-spam channel in the Hack Club Slack and type /jer-help or /jer-ping. It replies instantly!...
|
1793058847.114424
|
1793145247.114424
|
|
28329
|
The Space Cow by @ismael | Stardance
|
ismael
|
2
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T19:17:38Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I expanded my WarioWare-style game! It now has an intro, 6 minigames, better animations, and hints to make it easier to play. I also calibrated the difficulty because I made some of my friends play it before, and they couldn’t even win .-. Hope you enjoy it! It’s mostly just a silly little game that I originally made to entertain myself, so hopefully it’ll be fun for you too :)", "repo": "https://github.com/ismaelc137/the-Space-Cow", "demo": "https://ismaelc137.itch.io/the-space-cow"}, {"ship_num": 2, "ts": "2026-06-30T04:16:20Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made a short WarioWare like Game, i had barely used a Godot, so i had to relearn a few things. It has 3 minigames, maybe i will put some music and expand it in the future, but for now is functional and i find it quite fun!", "repo": "https://github.com/ismaelc137/the-Space-Cow", "demo": "https://ismaelc137.itch.io/the-space-cow"}]...
|
[{"post_id": 70782, "ts": "202 [{"post_id": 70782, "ts": "2026-09-19T19:12:40Z", "hours": 1.3542, "text": "Finished polishing some graphics and animations. I’m ready to ship. Beware"}, {"post_id": 70377, "ts": "2026-09-19T02:15:25Z", "hours": 3.9592, "text": "Made a cutscene, and two more minigames. One is a Galaga-like game where the cow is in a UFO, pointing a shotgun at aliens. Pretty hardcore stuff. The other is like a Whac-A-Mole, but with flies that are bothering the cow. Right now, I’m just making sprites so that everything feels a little more alive. Anyway, love you guys, etcetera, etcetera"}, {"post_id": 63320, "ts": "2026-09-07T02:27:49Z", "hours": 1.4644, "text": "just made a new minigame where you milk a cow by spamming clicks. Im also making an intro and improving the overall graphics to give the game a cleaner look"}, {"post_id": 18955, "ts": "2026-06-30T04:13:37Z", "hours": 2.0625, "text": "Finish it! just made three minigames, but i’m happy with the result, making this was a lot of fun :)"}, {"post_id": 18806, "ts": "2026-06-30T00:45:12Z", "hours": 2.0228, "text": "Made the two minigames as well as a win screen and a death screen :D"}, {"post_id": 18720, "ts": "2026-06-29T22:06:45Z", "hours": 1.1156, "text": "sup, taking a break from my main project because it’s getting way too big. anyway, here’s the update: i made a cow in a space suit"}]...
|
Title: The Space Cow by @ismael | Stardance
Devlo Title: The Space Cow by @ismael | Stardance
Devlogs:
sup, taking a break from my main project because it’s getting way too big. anyway, here’s the update: i made a cow in a space suit
Made the two minigames as well as a win screen and a death screen :D
Finish it! just made three minigames, but i’m happy with the result, making this was a lot of fun :)
just made a new minigame where you milk a cow by spamming clicks. Im also making an intro and improving the overall graphics to give the game a cleaner look
Made a cutscene, and two more minigames. One is a Galaga-like game where the cow is in a UFO, pointing a shotgun at aliens. Pretty hardcore stuff. The other is like a Whac-A-Mole, but with flies that are bothering the cow. Right now, I’m just making sprites so that everything feels a little more alive. Anyway, love you guys, etcetera, etcetera
Finished polishing some graphics and animations. I’m ready to ship. Beware
Ships:
Made a short WarioWare like Game, i had barely used a Godot, so i had to relearn a few things. It has 3 minigames, maybe i will put some music and expand it in the future, but for now is functional and i find it quite fun!
I expanded my WarioWare-style game! It now has an intro, 6 minigames, better animations, and hints to make it easier to play. I also calibrated the difficulty because I made some of my friends play it before, and they couldn’t even win .-. Hope you enjoy it! It’s mostly just a silly little game that I originally made to entertain myself, so hopefully it’ll be fun for you too :)...
|
1793062518.0276623
|
1793148918.0276623
|
|
63118
|
Slack Git Summaries by @ThatCorley | Stardance
|
ThatCorley
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T18:57:49Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "/git-summaries-repo - Display recent activity from a repo /git-summaries-user - Display recent activity from a GitHub User /git-summaries-ping - Returns ping Spent way too long hosting it on vercel just for it to not work so now hosted on render.com", "repo": "https://github.com/thatcorley/Slack-Bot-Hackclub", "demo": "https://hackclub.enterprise.slack.com/archives/C0C2YCL6SLV"}]...
|
[{"post_id": 70773, "ts": "202 [{"post_id": 70773, "ts": "2026-09-19T18:54:26Z", "hours": 1.9733, "text": "After a long struggle… I have created this god forsaken bot lmao. Added repo activity as well as user activity. Spent way too long trying to host it as dont have access to Nest 🥲"}, {"post_id": 69660, "ts": "2026-09-17T14:58:35Z", "hours": 1.1319, "text": "Added recent GitHub activities that are based on the github link connected to each person’s slack account"}]...
|
Title: Slack Git Summaries by @ThatCorley | Starda Title: Slack Git Summaries by @ThatCorley | Stardance
Devlogs:
Added recent GitHub activities that are based on the github link connected to each person’s slack account
After a long struggle… I have created this god forsaken bot lmao. Added repo activity as well as user activity. Spent way too long trying to host it as dont have access to Nest 🥲
Ships:
/git-summaries-repo - Display recent activity from a repo /git-summaries-user - Display recent activity from a GitHub User /git-summaries-ping - Returns ping Spent way too long hosting it on vercel just for it to not work so now hosted on render.com...
|
1793058717.285439
|
1793145117.285439
|
|
14371
|
Archimedes Cube by @ncHammer | Stardance
|
ncHammer
|
1
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T18:40:08Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The Archimedes Cube is a modular, 3D-printable mechanical puzzle that merges the core mechanics of a traditional Rubik’s cube with an interactive marble maze. The internal mechanism utilizes a custom-designed core and six interlocking center swivels, while the outer layer consists of eight corner and twelve side pieces that slide together in a precise sequence. Rather than using traditional screws for tension, the parts rely on mechanical clasps to lock into place. Once fully assembled, a marble can travel continuously across all six faces of the outer shell via interconnected pathways and custom corner tunnels. Each face of the cube houses a separate maze track panel, and these paths connect at the seams through secondary edge framing pieces, which route the marble around the turning axes without interrupting the rotation of the cube layers.For customization, the center swivels feature interchangeable design slots, allowing builders to color-code faces in green, blue, orange, and red, or slide in personalized tile geometries. The yellow center segment acts as a dedicated marble garage, utilizing concealed internal magnets and a custom maze plug to hold the tracking marble in place when the puzzle is being solved or transported.Developing this project highlighted several mechanical constraints, particularly regarding friction and tolerances. Because fused deposition modeling (FDM) 3D printing layers introduce too much surface friction for a functional rotational mechanism, every single internal contact face requires manual sanding prior to assembly to prevent binding. Additionally, the assembly sequence must be exact; forcing a corner or edge piece into the final assembly slot easily shears the internal alignment channels. Instead, the mechanical loop must be completed by installing a center swivel piece last to properly distribute tension across the tracks. Finally, attaching the maze panels requires precise application of liquid superglue directly to the center swivels, ensuring no adhesive bleeds into the rotational seams, which would permanently lock the moving layers.", "repo": "https://github.com/noahcraig029-code/ArchimedesCube", "demo": "https://www.thingiverse.com/thing:7411782"}]...
|
[{"post_id": 70757, "ts": "202 [{"post_id": 70757, "ts": "2026-09-19T18:23:48Z", "hours": 2.4667, "text": "I’m finally finished! It’s 100% printed, assembled, and fully functional! I mainly used superglue to put it all together, and I’ve been messing around with it for hours. I hope y’all give it a chance and enjoy it! Happy cubing!"}, {"post_id": 46539, "ts": "2026-08-13T20:44:34Z", "hours": 2.6453, "text": "I’ve revamped the edge design for the marble maze, making a smoother tunnel that lines up perfectly with the panels fitting along the main cube pieces. The originals were a straight 90 degree angle, and the marble got stuck. The new model is a 45 degree curve that lets the marble flow from one face to another!"}, {"post_id": 37193, "ts": "2026-07-29T18:43:57Z", "hours": 5.0642, "text": "Bored of a regular Rubik’s Cube? I have a monstrosity for you then! The Archimedes Cube is a 5 cubed inch Rubik’s cube with a marble maze engraved onto the face. It has over 50 individually designed parts created on Onshape. I just finished designing and piecing a final assembly together that can be used to see what the project will look like when it’s fully completed! I’m planning on shipping it soon, so make sure you check it out when it’s done!"}, {"post_id": 29126, "ts": "2026-07-15T19:54:21Z", "hours": 0.8961, "text": "If you like puzzles check this project out! I’ve finally managed to create a cohesive printing guide, as well as a construction README that’s available once the Onshape doc is opened. I’m working on creating a 3D reference model inside the project so you don’t get lost during assembly. I’m also working on my own physical assembly, magnets and all! My next step is to complete building the cube in real life, as well as on Onshape."}, {"post_id": 28946, "ts": "2026-07-15T15:45:27Z", "hours": 1.1611, "text": "I’ve finally finished modeling all pieces for the cube and mazes! The last step I need to complete is to write and include a printing and construction guide. Shown below is the assembly PRINTING COLLECTION, which has everything you need to create your own Archimedes Cube at home, provided you have a 3D printer. Colors are not required, but heavily recommended. The Onshape link is included in the project, I hope you guys enjoy it! Any suggestions for cubit designs or alternate maze creations are welcome!"}]...
|
Title: Archimedes Cube by @ncHammer | Stardance
D Title: Archimedes Cube by @ncHammer | Stardance
Devlogs:
I’ve finally finished modeling all pieces for the cube and mazes! The last step I need to complete is to write and include a printing and construction guide. Shown below is the assembly PRINTING COLLECTION, which has everything you need to create your own Archimedes Cube at home, provided you have a 3D printer. Colors are not required, but heavily recommended. The Onshape link is included in the project, I hope you guys enjoy it! Any suggestions for cubit designs or alternate maze creations are welcome!
If you like puzzles check this project out! I’ve finally managed to create a cohesive printing guide, as well as a construction README that’s available once the Onshape doc is opened. I’m working on creating a 3D reference model inside the project so you don’t get lost during assembly. I’m also working on my own physical assembly, magnets and all! My next step is to complete building the cube in real life, as well as on Onshape.
Bored of a regular Rubik’s Cube? I have a monstrosity for you then! The Archimedes Cube is a 5 cubed inch Rubik’s cube with a marble maze engraved onto the face. It has over 50 individually designed parts created on Onshape. I just finished designing and piecing a final assembly together that can be used to see what the project will look like when it’s fully completed! I’m planning on shipping it soon, so make sure you check it out when it’s done!
I’ve revamped the edge design for the marble maze, making a smoother tunnel that lines up perfectly with the panels fitting along the main cube pieces. The originals were a straight 90 degree angle, and the marble got stuck. The new model is a 45 degree curve that lets the marble flow from one face to another!
I’m finally finished! It’s 100% printed, assembled, and fully functional! I mainly used superglue to put it all together, and I’ve been messing around with it for hours. I hope y’all give it a chance and enjoy it! Happy cubing!
Ships:
The Archimedes Cube is a modular, 3D-printable mechanical puzzle that merges the core mechanics of a traditional Rubik’s cube with an interactive marble maze. The internal mechanism utilizes a custom-designed core and six interlocking center swivels, while the outer layer consists of eight corner and twelve side pieces that slide together in a precise sequence. Rather than using traditional screws for tension, the parts rely on mechanical clasps to lock into place. Once fully assembled, a marble can travel continuously across all six faces of the outer shell via interconnected pathways and custom corner tunnels. Each face of the cube houses a separate maze track panel, and these paths connect at the seams through secondary edge framing pieces, which route the marble around the turning axes without interrupting the rotation of the cube layers.For customization, the center swivels feature interchangeable design slots, allowing builders to color-code faces in green, blue, orange, and red, or slide in personalized tile geometries. The yellow center segment acts as a dedicated marble garage, utilizing concealed internal magnets and a custom maze plug to hold the tracking marble in place when the puzzle is being solved or transported.Developing this project highlighted several mechanical constraints, particularly regarding friction and tolerances. Because fused deposition modeling (FDM) 3D printing layers introduce too much surface friction for a functional rotational mechanism, every single internal contact face requires manual sanding prior to assembly to prevent binding. Additionally, the assembly sequence must be exact; forcing a corner or edge piece into the final assembly slot easily shears the internal alignment channels. Instead, the mechanical loop must be completed by installing a center swivel piece last to properly distribute tension across the tracks. Finally, attaching the maze panels requires precise application of liquid superglue directly to the center swivels, ensuring no adhesive bleeds into the rotational seams, which would permanently lock the moving layers....
|
1793008086.039538
|
1793094486.039538
|
|
58973
|
VOID - SIGNAL by @PYROMANIAC | Stardance
|
PYROMANIAC
|
1
|
28.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T18:36:35Z", "hours": 28.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "VOID//SIGNAL — Final Devlog After way too many hours of coding, debugging, testing, breaking things, fixing them, and occasionally staring at the compiler wondering what I did to deserve this, I finally finished VOID//SIGNAL . What started as a simple idea turned into a much bigger project than I expected. I wanted to make a small sci-fi game about a robot trying to survive on a damaged ship, collect resources, solve problems, and eventually find a way home. Somewhere along the way, that turned into crafting, weapons, enemies, puzzles, multiple areas, hazards, salvage, terminals, dialogue, and an unhealthy amount of C++. So… what did I actually make? VOID//SIGNAL is a small sci-fi survival/exploration game built in C++ with raylib . You play as a robot whose crewship has been destroyed, leaving you stranded on a damaged ship. Your goal is to explore the different sections of the ship, recover useful resources, repair systems, deal with hazards and corrupted drones, solve puzzles, and eventually work your way toward escaping. The game has several different areas to explore, each with its own problems and objectives. There are also different resources to collect, crafting systems, weapons, salvage, environmental hazards, and interactive systems that make the ship feel less like a collection of rooms and more like something that is actively falling apart around you. I also wanted the game to have its own visual identity without relying heavily on external assets. A lot of the visuals are drawn directly through raylib, including the rooms, interfaces, effects, lights, and other environmental details. Basically, I wanted to see how far I could push a relatively simple setup and turn it into an actual game. What was challenging? Probably the hardest part wasn’t making one individual feature. It was making all of the features work together without destroying each other . At first, adding something new was pretty straightforward. Then the project got bigger. Suddenly, adding a crafting system meant thinking about inventory and resources. Adding weapons meant connecting those resources to another system. Adding enemies meant dealing with combat and waves. Adding rooms meant making sure objectives and interactions worked correctly in each area. And then C++ would occasionally remind me that I had become too confident. There were definitely moments where I would fix one error, compile the game, discover another error, fix that one, compile again, and somehow create a completely different problem. The crafting system was one of the bigger challenges because I ended up separating it into two different systems: the robot’s own crafting system and the dedicated weapons table. I wanted the two systems to feel different instead of having one giant menu that tried to do everything. The enemy wave system was another challenge because it had to work alongside the rest of the gameplay instead of just spawning enemies randomly and calling it a day. And then there were all the smaller things that nobody really notices when they work correctly: interactions, room transitions, objectives, UI, hazards, resource tracking, puzzles, game states, and making sure the player can’t accidentally break the entire game by pressing something at the wrong time. What am I most proud of? Honestly, the biggest thing I’m proud of is that I actually finished it . It’s very easy to start a game project and keep adding ideas forever. At some point, I had to stop thinking about what else I could add and actually make everything I already had work together. I’m also proud of how much of the game was made from scratch. I didn’t start with a giant game engine or a huge collection of assets. I built the systems myself and used raylib to handle the actual rendering and game functionality. I’m especially happy with how the different mechanics ended up connecting. Exploration leads", "repo": "https://github.com/PYROMANIAC404/void-signal", "demo": "https://github.com/PYROMANIAC404/void-signal/releases"}]...
|
[{"post_id": 70760, "ts": "202 [{"post_id": 70760, "ts": "2026-09-19T18:33:01Z", "hours": 2.9461, "text": "Today I finally finished VOID//SIGNAL, which honestly feels pretty crazy considering how much the project grew from the original idea.I spent a lot of time polishing the game and tying the different systems together, including the crafting, weapons, salvage, enemy waves, puzzles, and exploration and a lot of the game’s mechanics are starting to come together.First, I separated the two crafting systems. The robot has its own crafting system for general resources and upgrades, while weapons have a dedicated system through the weapons table. This gives each system a clearer purpose and makes the weapons table feel like an actual part of the gameplay.From there, I worked on weapon crafting and the enemy wave system to make combat more engaging. This also ties into the salvage system, since collecting resources now has a more direct purpose beyond just picking things up.I also started improving how salvage looks in the game. Instead of having resources randomly sitting around, I want them to feel more like actual loot crates that you discover while exploring the ship.Of course, none of this came without a few C++ errors along the way (i hate my life). A decent part of the session was basically fixing one thing, testing it, accidentally breaking something else, and then fixing that too.Overall, VOID//SIGNAL is starting to feel much more like the game I originally imagined. There’s still plenty to build, but the systems are beginning to connect instead of feeling like separate features."}, {"post_id": 69801, "ts": "2026-09-17T20:14:38Z", "hours": 8.4786, "text": "FINALLY made my very first game sprite (it was hell) its basicaly an electrical arc for an environmental hazard damage umm. made the salvage loot like like an actual crate instead of a rectangular blob , gave him a wrench as a starting tool , added more mini games thinking about a sytem where u combine parts to upgrade ur weaponary"}, {"post_id": 68123, "ts": "2026-09-14T15:40:14Z", "hours": 6.5892, "text": "new game mechanic plus , level , so i added this thingy where when u stand in steam it slowly drains ur energy and corrodes the players body , there smol mini game where press SPACE to fix the pipes and fix the steam leakage , also a wire puzzle where u have to match the correct wires, to unlock the door past the steam yay!!!"}, {"post_id": 66115, "ts": "2026-09-11T18:40:35Z", "hours": 3.5806, "text": "gave him a independence (yay! guns :D) 1.pistol 2.shotgun 3.pulse rifle , he can use the core of a spare reactor to charge up his shots at the cost of some energy also im planning on and upgrade system where u can mod ur weapons by salvaging parts from ur enemies , the water treatment plant lvl got a big softlocked but fixed it somehow heheh . pls dont judge the artstyle im working on it after i finish the game mechanics , ill try my best"}, {"post_id": 64851, "ts": "2026-09-09T15:24:27Z", "hours": 4.4808, "text": "devlog 2 , yay!!! 07 can now walk , added 5 levels , added terminals where u play a puzzle and unlock doors, current issues: somehow the movements of 07 are bugging (will fix) also hes going out of bounds T-T , for the next devlog imma make like a water treatment plant where im planning on a new mechanic based on corrsion of metal surfaces, also a new new reactor room , the games assets need to be reworked also"}, {"post_id": 62975, "ts": "2026-09-06T15:26:48Z", "hours": 1.9953, "text": "#devlog 1 #hi! im working a puzzle game callled void signal where u go around as a tiny repair/cleaning? robot called -07 and is tasked with finding the last signal left by the crewship he was on which as sadly destroyed by a black hole so on day 1 i made the start screen and made the background animation with stars twinkl and the black hole rotate? i think"}]...
|
Title: VOID - SIGNAL by @PYROMANIAC | Stardance
D Title: VOID - SIGNAL by @PYROMANIAC | Stardance
Devlogs:
#devlog 1 #hi! im working a puzzle game callled void signal where u go around as a tiny repair/cleaning? robot called -07 and is tasked with finding the last signal left by the crewship he was on which as sadly destroyed by a black hole so on day 1 i made the start screen and made the background animation with stars twinkl and the black hole rotate? i think
devlog 2 , yay!!! 07 can now walk , added 5 levels , added terminals where u play a puzzle and unlock doors, current issues: somehow the movements of 07 are bugging (will fix) also hes going out of bounds T-T , for the next devlog imma make like a water treatment plant where im planning on a new mechanic based on corrsion of metal surfaces, also a new new reactor room , the games assets need to be reworked also
gave him a independence (yay! guns :D) 1.pistol 2.shotgun 3.pulse rifle , he can use the core of a spare reactor to charge up his shots at the cost of some energy also im planning on and upgrade system where u can mod ur weapons by salvaging parts from ur enemies , the water treatment plant lvl got a big softlocked but fixed it somehow heheh . pls dont judge the artstyle im working on it after i finish the game mechanics , ill try my best
new game mechanic plus , level , so i added this thingy where when u stand in steam it slowly drains ur energy and corrodes the players body , there smol mini game where press SPACE to fix the pipes and fix the steam leakage , also a wire puzzle where u have to match the correct wires, to unlock the door past the steam yay!!!
FINALLY made my very first game sprite (it was hell) its basicaly an electrical arc for an environmental hazard damage umm. made the salvage loot like like an actual crate instead of a rectangular blob , gave him a wrench as a starting tool , added more mini games thinking about a sytem where u combine parts to upgrade ur weaponary
Today I finally finished VOID//SIGNAL, which honestly feels pretty crazy considering how much the project grew from the original idea.I spent a lot of time polishing the game and tying the different systems together, including the crafting, weapons, salvage, enemy waves, puzzles, and exploration and a lot of the game’s mechanics are starting to come together.First, I separated the two crafting systems. The robot has its own crafting system for general resources and upgrades, while weapons have a dedicated system through the weapons table. This gives each system a clearer purpose and makes the weapons table feel like an actual part of the gameplay.From there, I worked on weapon crafting and the enemy wave system to make combat more engaging. This also ties into the salvage system, since collecting resources now has a more direct purpose beyond just picking things up.I also started improving how salvage looks in the game. Instead of having resources randomly sitting around, I want them to feel more like actual loot crates that you discover while exploring the ship.Of course, none of this came without a few C++ errors along the way (i hate my life). A decent part of the session was basically fixing one thing, testing it, accidentally breaking something else, and then fixing that too.Overall, VOID//SIGNAL is starting to feel much more like the game I originally imagined. There’s still plenty to build, but the systems are beginning to connect instead of feeling like separate features.
Ships:
VOID//SIGNAL — Final Devlog After way too many hours of coding, debugging, testing, breaking things, fixing them, and occasionally staring at the compiler wondering what I did to deserve this, I finally finished VOID//SIGNAL . What started as a simple idea turned into a much bigger project than I expected. I wanted to make a small sci-fi game about a robot trying to survive on a damaged ship, collect resources, solve problems, and eventually find a way home. Somewhere along the way, that turned into crafting, weapons, enemies, puzzles, multiple areas, hazards, salvage, terminals, dialogue, and an unhealthy amount of C++. So… what did I actually make? VOID//SIGNAL is a small sci-fi survival/exploration game built in C++ with raylib . You play as a robot whose crewship has been destroyed, leaving you stranded on a damaged ship. Your goal is to explore the different sections of the ship, recover useful resources, repair systems, deal with hazards and corrupted drones, solve puzzles, and eventually work your way toward escaping. The game has several different areas to explore, each with its own problems and objectives. There are also different resources to collect, crafting systems, weapons, salvage, environmental hazards, and interactive systems that make the ship feel less like a collection of rooms and more like something that is actively falling apart around you. I also wanted the game to have its own visual identity without relying heavily on external assets. A lot of the visuals are drawn directly through raylib, including the rooms, interfaces, effects, lights, and other environmental details. Basically, I wanted to see how far I could push a relatively simple setup and turn it into an actual game. What was challenging? Probably the hardest part wasn’t making one individual feature. It was making all of the features work together without destroying each other . At first, adding something new was pretty straightforward. Then the project got bigger. Suddenly, adding a crafting system meant thinking about inventory and resources. Adding weapons meant connecting those resources to another system. Adding enemies meant dealing with combat and waves. Adding rooms meant making sure objectives and interactions worked correctly in each area. And then C++ would occasionally remind me that I had become too confident. There were definitely moments where I would fix one error, compile the game, discover another error, fix that one, compile again, and somehow create a completely different problem. The crafting system was one of the bigger challenges because I ended up separating it into two different systems: the robot’s own crafting system and the dedicated weapons table. I wanted the two systems to feel different instead of having one giant menu that tried to do everything. The enemy wave system was another challenge because it had to work alongside the rest of the gameplay instead of just spawning enemies randomly and calling it a day. And then there were all the smaller things that nobody really notices when they work correctly: interactions, room transitions, objectives, UI, hazards, resource tracking, puzzles, game states, and making sure the player can’t accidentally break the entire game by pressing something at the wrong time. What am I most proud of? Honestly, the biggest thing I’m proud of is that I actually finished it . It’s very easy to start a game project and keep adding ideas forever. At some point, I had to stop thinking about what else I could add and actually make everything I already had work together. I’m also proud of how much of the game was made from scratch. I didn’t start with a giant game engine or a huge collection of assets. I built the systems myself and used raylib to handle the actual rendering and game functionality. I’m especially happy with how the different mechanics ended up connecting. Exploration leads...
|
1792958079.720077
|
1793822079.720077
|
|
18567
|
SecureVault by @F3rro_32 | Stardance
|
F3rro_32
|
2
|
39.0
|
367
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T18:11:39Z", "hours": 4.0, "multiplier": 12.33, "payout": 49, "blessing": "neutral", "text": "Just improved some things, mostly advices from other users.", "repo": "https://github.com/eLandoAD/Rila", "demo": "https://securevault.alessio.hackclub.app/"}, {"ship_num": 2, "ts": "2026-07-15T09:49:13Z", "hours": 35.0, "multiplier": 9.05, "payout": 318, "blessing": "neutral", "text": "SecureVault, zero knowledge, end-to-end encrypted cloud storage. Your files and their names are encrypted in the browser before they ever reach the server, which only ever stores ciphertext it can’t read.", "repo": "https://github.com/eLandoAD/Rila", "demo": "https://securevault.alessio.hackclub.app/"}]...
|
[{"post_id": 70745, "ts": "202 [{"post_id": 70745, "ts": "2026-09-19T18:11:08Z", "hours": 3.2156, "text": "devlog Hey guys, how’s going? I’m pretty well, I have loads of things to do, but there’s always time for my biggest passion, coding. Yesterday I turned on a strinct CSP (content security policy) for this project, so today the pricing section looked like the one in the first screen. The Popular badge had no pill behind it, it was just the word, with the card’s border running straight through it. The higlighted card’s border was white, instead of indigo. Also the Get Pro was the same flat grey as the two buttons next to it. It looked like a CSS mistake, but actually it wasn’t. “It worked on my machine” ng serve rendered it correctly. Same commit, same browser. That is the part that cost me the most time: I kept hunting for a rule that only existed in production. So I stopped reading CSS and read the live page instead: --color-primary → \"\" (empty) badge background → rgba(0, 0, 0, 0) (transparent) card border → rgb(255, 255, 255) --color-primary wasn’t defined at all. And when a custom property is undefined, background-color: var(--color-primary) computes to transparent , while border-color: var(--color-primary) falls back to currentColor , which on that section is white. One missing variable, and every symptom follows from it, including the ones that look unrelated. Where the variable went Angular’s production build enables inlineCritical . It inlines the critical CSS and defers the rest of the stylesheet like this: <link rel= \"stylesheet\" href= \"styles-XXXX.css\" media= \"print\" onload= \"this.media='all'\" > That onload is an inline event handler , and script-src 'self' blocks inline handlers. So the handler never ran, the stylesheet stayed at media=\"print\" , and it was never applied. For a whole day the site had been running on nothing but the inlined critical CSS, and the theme tokens live in the file that never loaded. ng serve doesn’t run inlineCritical . That’s the entire reason it only happened in production. The fix is one flag in angular.json : \"optimization\" : { \"styles\" : { \"minify\" : true , \"inlineCritical\" : false } } The stylesheet now ships as a plain blocking <link> . One render-blocking request, ~20 KB gzipped, and the CSP stays exactly as strict as it was."}, {"post_id": 32224, "ts": "2026-07-21T08:07:59Z", "hours": 0.7983, "text": "I don’t know why, but the db crashed, so the backend wasn’t working and many of you couldn’t test out the app. I just fixed this problem, and added in docker compose the restart clause, so things like this won’t happen again. Sorry for the problem"}, {"post_id": 28809, "ts": "2026-07-15T09:41:17Z", "hours": 1.2811, "text": "Finished the project. I used a seo checker to improve the seo, at least, what I can actually improve. I then focused on writing the md files. The readme and the security.md, that displays all infos about how crypto works and in general terms, security. I hope you like the project."}, {"post_id": 28422, "ts": "2026-07-14T17:36:22Z", "hours": 6.4156, "text": "Hey guys, here I am again. Lately I focused a lot on improving both the website and the overall user experience. The first thing I did was completely redesign the landing page. I switched everything to a dark theme, added a new hero section with a background image and gradient overlay, and converted every section into dark cards to make the design feel much more consistent. I also reworked the pricing section Finally, I added smooth navigation between sections using anchor links. I also redesigned the navigation bar. On desktop and tablets it stays at the top as expected, while on mobile it moves to the bottom of the screen for easier access. During this process I removed the old hamburger menu. The file manager received one of the biggest UI updates. On mobile there’s now a bottom navigation bar with a floating upload button in the center. The Files page no longer uses a traditional table; instead, files are displayed as modern cards with encryption badges and a cleaner action menu that groups all available operations together. I also fixed some spacing issues on the login page caused by the fixed navbar. Besides the UI, I spent some time improving the website from a technical perspective. I configured gzip compression, hid unnecessary server information, fixed some SEO issues like duplicated headings, and added both a robots.txt file and a sitemap. Another important feature I implemented is the new Settings page. It now includes profile information, security settings, storage usage, and account management. I decided to keep the interface honest: only features that are actually supported by the backend are available, while future ones are clearly disabled. I also implemented permanent account deletion, both on the backend and frontend, making sure all related data is safely removed before the user is deleted. I added a lot, I hope everything works as I expect. See ya"}, {"post_id": 25831, "ts": "2026-07-10T09:45:28Z", "hours": 3.4414, "text": "Okay guys, big news: I was finally able to get an SMTP server from a friend of mine, so now email verification and password recovery are working. I’m pretty satisfied; I really wanted this app to work as well as possible, and with email support, it feels even more complete. Stay tuned, because it won’t be long before it’s ready."}, {"post_id": 24603, "ts": "2026-07-08T09:57:29Z", "hours": 0.7383, "text": "Hey guys, I know this isn’t a proper devlog, but I wanted to show you this new tool I used yesterday, called graphify. Basically you take an AI, and you install graphify on it. It will create this graph, that represents the project. I find it really useful for my actual process, reviewing. As you can see, I just need to start from the biggest Node, which is the “center” of the project, and then link every other Node. The nice thing is that you can also ask questions, and the AI will respond also taking in consideration the graph, so the response will be more accurate. I strongly advice this tool for reviewing the code and improving the “style” of the code. I hope you like it"}, {"post_id": 24026, "ts": "2026-07-07T09:39:58Z", "hours": 4.4797, "text": "Hi guys Lately I did much work. First of all, security audit fixes. I bound internal ports to localhost; moved JWT secret to a real random value in .env; hardened rate limiting (to avoid spoofing); set file uploading limit to 40MB and switched uploads/downloads to streaming so files aren’t loaded whole into RAM. Sharing rework (the main piece). Before, each user had one master DEK that encrypted all their files, and sharing sent that master DEK to the server in cleartext, so the server could decrypt shared files, and sharing one file handed over the key to every file. Now the master DEK only wraps other keys. Each file has its own random DEK (encrypting its content and name), stored wrapped by the master DEK. Each user has an RSA keypair: the public key is stored in cleartext, the private key is wrapped by the master DEK (so password reset and recovery keep working without extra code). To share, the sender fetches the recipient’s public key and RSA-encrypts only that file’s DEK; the recipient decrypts it with their private key. The server never sees a key in cleartext, and the recipient gets access to only that one file. Public links work the same way, carrying the DEK for each file in the URL fragment (never sent to the server), with a revoke action. To clean the code I also made an interfaces refactor. Moved all TypeScript interfaces into core/interfaces/, one per file (I), updated imports, removed the old model files. I’m quite done, I still have to review some graphical aspects and improve some things in the code, but I think I’ll be done this week."}, {"post_id": 21523, "ts": "2026-07-03T15:14:16Z", "hours": 0.6814, "text": "Okay guys, big problem. I realized I haven’t solved my problem with sharing files. I actually made things worse. Now each user has one DEK that is used for encryption of all their files. Two issues: the server is able to read the key (it decrypts shared files, thus E2EE is not provided), and when you give a person access to one file, you give the person access to all files. The solution I need to implement: the master DEK will not be used for encrypting the files anymore, but will become a wrapping key, each file will have its own DEK which encrypts data in this particular file, and this DEK will be wrapped by the master DEK. Each user should also have a key pair for RSA encryption: the public part of the key will be in cleartext, while the private part will be wrapped by the master DEK. When a user shares a file, they encrypt only the DEK of this file with the recipient’s public RSA key, the recipient decrypts it with the private RSA key, and the server does not see any key in cleartext. Wrapping the private key with the master DEK (not the password) means it’s recovered for free via the recovery key and survives password resets, so the existing login/recovery code stays untouched. I hope to be able to fix this problem in reasonable time. I’ll stay in touch for further clarification and devlogs P.S. in the screen you can see the DEK, proof for my thesis."}, {"post_id": 21487, "ts": "2026-07-03T13:52:44Z", "hours": 1.5675, "text": "Still improving the application. I want everything to be the best as possible. I fixed some minor bugs in fronted, mostly with the crypto service. I had some problems with the sharing of files, I realized I was also sharing the DEK of the user, which is really a problem since the receiver could, from that moment, decrypt every sender file. After fixing it I improved some things in the backend, like the process of uploading and downloading files. Another important thing I fixed is the preview. The problem is that before I was opening the file directly in RAM, which, as I explained in some prev devlog, is a problem, since I have only 2 gb of ram. The important thing is that I was able to fix it, by opening it on disk."}, {"post_id": 20927, "ts": "2026-07-02T17:28:01Z", "hours": 3.2586, "text": "Still working for improving the app. I’m slowly changing simple details, and fixing bugs, like rate limiting for api, uploading dimensions and so on. As you can see from the screens, I also added the “fake” email inbox, that allows to verify the email. This was a solution I came up yesterday, to avoid using an SMTP server. I hope you find it reasonable."}, {"post_id": 19956, "ts": "2026-07-01T12:38:11Z", "hours": 3.2114, "text": "Still improving the website and checking security. I hope everything works well and is secure. I’m now focusing on fixing small bugs, and improving UI. Something I still have to figure out, is how to manage SMTP. I don’t know if I’ll just skip this part and open a link in the browser, that works like the mail. Idk In the meanwhile I’m also addressing some memory issues, since the container given by Nest is just 2 GB in ram, so I have to optimize everything, to make the app work correctly. A thing I found really useful in this project is committing with claude. Many times I don’t know what to write, and many commits are too vague, so Claude is really helpful for this task."}, {"post_id": 18321, "ts": "2026-06-29T12:57:25Z", "hours": 5.4161, "text": "I’m slowly compelting this project. I uploaded everything on #Nest, very useful. I still have to find a solution for the SMTP service, but I’m sure I’ll find something. I’m currently fixing some graphical isseus, for example I fixed the responsivety of the application, mostly the lateral navbar. Before the release, I want to fix some other problems and things I don’t like. Additionaly I want to test everything and be sure that the encryption is secure and working correctly."}, {"post_id": 9105, "ts": "2026-06-15T07:01:04Z", "hours": 4.8314, "text": "I’m currently working on secureVault, a E2E platform which allows people to store securely files and organize them in folder. Additionaly there’s the possibility to share files. It follows a lot of directives to mantain everything crypted. I had already started this project, so it isn’t fully logged. Stay tuned."}]...
|
Title: SecureVault by @F3rro_32 | Stardance
Devlo Title: SecureVault by @F3rro_32 | Stardance
Devlogs:
I’m currently working on secureVault, a E2E platform which allows people to store securely files and organize them in folder. Additionaly there’s the possibility to share files. It follows a lot of directives to mantain everything crypted. I had already started this project, so it isn’t fully logged. Stay tuned.
I’m slowly compelting this project. I uploaded everything on #Nest, very useful. I still have to find a solution for the SMTP service, but I’m sure I’ll find something. I’m currently fixing some graphical isseus, for example I fixed the responsivety of the application, mostly the lateral navbar. Before the release, I want to fix some other problems and things I don’t like. Additionaly I want to test everything and be sure that the encryption is secure and working correctly.
Still improving the website and checking security. I hope everything works well and is secure. I’m now focusing on fixing small bugs, and improving UI. Something I still have to figure out, is how to manage SMTP. I don’t know if I’ll just skip this part and open a link in the browser, that works like the mail. Idk In the meanwhile I’m also addressing some memory issues, since the container given by Nest is just 2 GB in ram, so I have to optimize everything, to make the app work correctly. A thing I found really useful in this project is committing with claude. Many times I don’t know what to write, and many commits are too vague, so Claude is really helpful for this task.
Still working for improving the app. I’m slowly changing simple details, and fixing bugs, like rate limiting for api, uploading dimensions and so on. As you can see from the screens, I also added the “fake” email inbox, that allows to verify the email. This was a solution I came up yesterday, to avoid using an SMTP server. I hope you find it reasonable.
Still improving the application. I want everything to be the best as possible. I fixed some minor bugs in fronted, mostly with the crypto service. I had some problems with the sharing of files, I realized I was also sharing the DEK of the user, which is really a problem since the receiver could, from that moment, decrypt every sender file. After fixing it I improved some things in the backend, like the process of uploading and downloading files. Another important thing I fixed is the preview. The problem is that before I was opening the file directly in RAM, which, as I explained in some prev devlog, is a problem, since I have only 2 gb of ram. The important thing is that I was able to fix it, by opening it on disk.
Okay guys, big problem. I realized I haven’t solved my problem with sharing files. I actually made things worse. Now each user has one DEK that is used for encryption of all their files. Two issues: the server is able to read the key (it decrypts shared files, thus E2EE is not provided), and when you give a person access to one file, you give the person access to all files. The solution I need to implement: the master DEK will not be used for encrypting the files anymore, but will become a wrapping key, each file will have its own DEK which encrypts data in this particular file, and this DEK will be wrapped by the master DEK. Each user should also have a key pair for RSA encryption: the public part of the key will be in cleartext, while the private part will be wrapped by the master DEK. When a user shares a file, they encrypt only the DEK of this file with the recipient’s public RSA key, the recipient decrypts it with the private RSA key, and the server does not see any key in cleartext. Wrapping the private key with the master DEK (not the password) means it’s recovered for free via the recovery key and survives password resets, so the existing login/recovery code stays untouched. I hope to be able to fix this problem in reasonable time. I’ll stay in touch for further clarification and devlogs P.S. in the screen you can see the DEK, proof for my thesis.
Hi guys Lately I did much work. First of all, security audit fixes. I bound internal ports to localhost; moved JWT secret to a real random value in .env; hardened rate limiting (to avoid spoofing); set file uploading limit to 40MB and switched uploads/downloads to streaming so files aren’t loaded whole into RAM. Sharing rework (the main piece). Before, each user had one master DEK that encrypted all their files, and sharing sent that master DEK to the server in cleartext, so the server could decrypt shared files, and sharing one file handed over the key to every file. Now the master DEK only wraps other keys. Each file has its own random DEK (encrypting its content and name), stored wrapped by the master DEK. Each user has an RSA keypair: the public key is stored in cleartext, the private key is wrapped by the master DEK (so password reset and recovery keep working without extra code). To share, the sender fetches the recipient’s public key and RSA-encrypts only that file’s DEK; the recipient decrypts it with their private key. The server never sees a key in cleartext, and the recipient gets access to only that one file. Public links work the same way, carrying the DEK for each file in the URL fragment (never sent to the server), with a revoke action. To clean the code I also made an interfaces refactor. Moved all TypeScript interfaces into core/interfaces/, one per file (I), updated imports, removed the old model files. I’m quite done, I still have to review some graphical aspects and improve some things in the code, but I think I’ll be done this week.
Hey guys, I know this isn’t a proper devlog, but I wanted to show you this new tool I used yesterday, called graphify. Basically you take an AI, and you install graphify on it. It will create this graph, that represents the project. I find it really useful for my actual process, reviewing. As you can see, I just need to start from the biggest Node, which is the “center” of the project, and then link every other Node. The nice thing is that you can also ask questions, and the AI will respond also taking in consideration the graph, so the response will be more accurate. I strongly advice this tool for reviewing the code and improving the “style” of the code. I hope you like it
Okay guys, big news: I was finally able to get an SMTP server from a friend of mine, so now email verification and password recovery are working. I’m pretty satisfied; I really wanted this app to work as well as possible, and with email support, it feels even more complete. Stay tuned, because it won’t be long before it’s ready.
Hey guys, here I am again. Lately I focused a lot on improving both the website and the overall user experience. The first thing I did was completely redesign the landing page. I switched everything to a dark theme, added a new hero section with a background image and gradient overlay, and converted every section into dark cards to make the design feel much more consistent. I also reworked the pricing section Finally, I added smooth navigation between sections using anchor links. I also redesigned the navigation bar. On desktop and tablets it stays at the top as expected, while on mobile it moves to the bottom of the screen for easier access. During this process I removed the old hamburger menu. The file manager received one of the biggest UI updates. On mobile there’s now a bottom navigation bar with a floating upload button in the center. The Files page no longer uses a traditional table; instead, files are displayed as modern cards with encryption badges and a cleaner action menu that groups all available operations together. I also fixed some spacing issues on the login page caused by the fixed navbar. Besides the UI, I spent some time improving the website from a technical perspective. I configured gzip compression, hid unnecessary server information, fixed some SEO issues like duplicated headings, and added both a robots.txt file and a sitemap. Another important feature I implemented is the new Settings page. It now includes profile information, security settings, storage usage, and account management. I decided to keep the interface honest: only features that are actually supported by the backend are available, while future ones are clearly disabled. I also implemented permanent account deletion, both on the backend and frontend, making sure all related data is safely removed before the user is deleted. I added a lot, I hope everything works as I expect. See ya
Finished the project. I used a seo checker to improve the seo, at least, what I can actually improve. I then focused on writing the md files. The readme and the security.md, that displays all infos about how crypto works and in general terms, security. I hope you like the project.
I don’t know why, but the db crashed, so the backend wasn’t working and many of you couldn’t test out the app. I just fixed this problem, and added in docker compose the restart clause, so things like this won’t happen again. Sorry for the problem
devlog Hey guys, how’s going? I’m pretty well, I have loads of things to do, but there’s always time for my biggest passion, coding. Yesterday I turned on a strinct CSP (content security policy) for this project, so today the pricing section looked like the one in the first screen. The Popular badge had no pill behind it, it was just the word, with the card’s border running straight through it. The higlighted card’s border was white, instead of indigo. Also the Get Pro was the same flat grey as the two buttons next to it. It looked like a CSS mistake, but actually it wasn’t. “It worked on my machine” ng serve rendered it correctly. Same commit, same browser. That is the part that cost me the most time: I kept hunting for a rule that only existed in production. So I stopped reading CSS and read the live page instead: --color-primary → "" (empty) badge background → rgba(0, 0, 0, 0) (transparent) card border → rgb(255, 255, 255) --color-primary wasn’t defined at all. And when a custom property is undefined, background-color: var(--color-primary) computes to transparent , while border-color: var(--color-primary) falls back to currentColor , which on that section is white. One missing variable, and every symptom follows from it, including the ones that look unrelated. Where the variable went Angular’s production build enables inlineCritical . It inlines the critical CSS and defers the rest of the stylesheet like this: <link rel= "stylesheet" href= "styles-XXXX.css" media= "print" onload= "this.media='all'" > That onload is an inline event handler , and script-src 'self' blocks inline handlers. So the handler never ran, the stylesheet stayed at media="print" , and it was never applied. For a whole day the site had been running on nothing but the inlined critical CSS, and the theme tokens live in the file that never loaded. ng serve doesn’t run inlineCritical . That’s the entire reason it only happened in production. The fix is one flag in angular.json : "optimization" : { "styles" : { "minify" : true , "inlineCritical" : false } } The stylesheet now ships as a plain blocking <link> . One render-blocking request, ~20 KB gzipped, and the CSP stays exactly as strict as it was.
Ships:
SecureVault, zero knowledge, end-to-end encrypted cloud storage. Your files and their names are encrypted in the browser before they ever reach the server, which only ever stores ciphertext it can’t read.
Just improved some things, mostly advices from other users....
|
1792986715.2186632
|
1793073115.2186632
|
|
53416
|
DuckDNS + Cloudflare Client by @vaito | Stardance
|
vaito
|
1
|
14.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T17:47:54Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a simple DuckDNS client mixed with some feature of Cloudflare. It allows you to: Update your DuckDNS record (IP4 and IP6) Use the updated IP from DuckDNS to update your Cloudflare DNS record. Also, this is implemented with Rust, which also the first time I use Rust. So this code is not considered as a well optimized code 😿", "repo": "https://git.vaito.dev/vaito/duckdns-client", "demo": "https://crates.io/crates/duckdns-client"}]...
|
[{"post_id": 70731, "ts": "202 [{"post_id": 70731, "ts": "2026-09-19T17:41:11Z", "hours": 3.1617, "text": "Quite a lots update and here is the summaries: I added the --filter with regex and exact equal mode for filtering domains I do some stuff to get ready for publishing to crates.io. I create a CICD pipeline for automating publish to crates.io and docker registry. Now you can use both method to use my app"}, {"post_id": 69651, "ts": "2026-09-17T14:39:03Z", "hours": 4.9475, "text": "I have removed the PTR update feature since I misunderstood how it work Also, some bugs related to batch update are fixed"}, {"post_id": 55100, "ts": "2026-08-26T15:39:20Z", "hours": 1.825, "text": "I have done the base for the Cloudflare client"}, {"post_id": 53175, "ts": "2026-08-23T16:47:05Z", "hours": 4.1144, "text": "The reason for 4-hr devlog is I forgot to create the Stardance project ;-; Btw, this is the first project I code using Rust I made this for auto updating the DuckDNS record and Cloudflare DNS record (especially PTR record) I have done the DuckDNS client and moving to Cloudflare side"}]...
|
Title: DuckDNS + Cloudflare Client by @vaito | Sta Title: DuckDNS + Cloudflare Client by @vaito | Stardance
Devlogs:
The reason for 4-hr devlog is I forgot to create the Stardance project ;-; Btw, this is the first project I code using Rust I made this for auto updating the DuckDNS record and Cloudflare DNS record (especially PTR record) I have done the DuckDNS client and moving to Cloudflare side
I have done the base for the Cloudflare client
I have removed the PTR update feature since I misunderstood how it work Also, some bugs related to batch update are fixed
Quite a lots update and here is the summaries: I added the --filter with regex and exact equal mode for filtering domains I do some stuff to get ready for publishing to crates.io. I create a CICD pipeline for automating publish to crates.io and docker registry. Now you can use both method to use my app
Ships:
This is a simple DuckDNS client mixed with some feature of Cloudflare. It allows you to: Update your DuckDNS record (IP4 and IP6) Use the updated IP from DuckDNS to update your Cloudflare DNS record. Also, this is implemented with Rust, which also the first time I use Rust. So this code is not considered as a well optimized code 😿...
|
1793008082.5665429
|
1793094482.5665429
|
|
42904
|
My own site! by @Alan_X | Stardance
|
Alan_X
|
2
|
16.0
|
57
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T17:37:36Z", "hours": 9.0, "multiplier": 6.24, "payout": 57, "blessing": "neutral", "text": "Who are you? This is the question I want to cancel from your minds when you explore my site. The main aim is not to build a resume, but to feel closer to a stardancer you never met!", "repo": "https://github.com/onanaalan69-ctrl/Alan-personal-page", "demo": "https://alan-personal-page.vercel.app"}, {"ship_num": 2, "ts": "2026-08-18T06:38:26Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website to present myself, so that anyone going through it is able to know me better. It is made up of 3 distinct pages, each englobing a topic of my life I want to share. The most challenging part was for sure the CSS. Every beginner will agree with me there are some tags whose name are not 100% comprehensible, especially when you see their function after (here I think of the flex boxes, display and align function). Also, hosting a site was quite new to me. I remember having 14+ 404 errors with two different hosting apps, just because one of my pages was not named index. I spent hours trying to figure it out ! I am very proud of the website style. It perfectly represents me. The colours, the spiderman logo, the story telling and the content. All these hours of coding were worth seeing this creation of mine. To navigate throughout the site is pretty easy. Click on the vercel link and use the nav bar to go through the different sections.", "repo": "https://github.com/onanaalan69-ctrl/Alan-personal-page", "demo": "https://alan-personal-page.vercel.app"}]...
|
[{"post_id": 70722, "ts": "202 [{"post_id": 70722, "ts": "2026-09-19T17:31:58Z", "hours": 1.9069, "text": "There are different ways to know someone: you can know their name or their stats. But the best way is the one in which you can create a conversation with the person you know Today, I introduced a page that we must all consider when building something to present. I read a bunch of personal sites, but I can bearly have a conversation out of their projects with the people. Their center of interest is what can immediately pull a conversation, so I considered adding the preference.html page to be able to engage a conversation. I also mainly corrected the typos on my pages, and adjusted the README.md to fit the recent updates"}, {"post_id": 58804, "ts": "2026-08-31T12:00:37Z", "hours": 7.3, "text": "It’s more than just a website…it’s the easiest way someone can know me online After the first ship of this project, I decided to share the link to my website to some of my friends and people I met at the summer academy. One of my friends came to me and asked who I am ? This question was to tell me that the site did not tell who I was enough. In addition to that, I did not have any landing page, which is quite submerging. So I worked on the landing page to make it as a better introduction to the site than just diving in, and made the site more personal, so that someone could know me through this. I also: Introduced an animation to make the color theme of the home page change. The colors are variable and random according to a selection of mine, I updated the information in the “What’s up” page to fit my current situation, I corrected the typos in all the pages and introduced recent photographies in the “Project” page. As always, constructive feedback is always welcomed."}, {"post_id": 49300, "ts": "2026-08-18T01:18:06Z", "hours": 1.9869, "text": "Final Devlog before 1st ship For this last modification before the ship, I added another section that I named facts. It is all about why I joined the hack club and stardance community, and with what I learned, what I will do with that knowledge. I also updated the images unable to open on the browser and corrected grammatical and writting mistakes in the entire site. Most importantly, I completely changed my README.md, so as to be appropriate for shiping. I’m impatient to ship my first project, but I will do it when I wake at 6 in the morning. Wish me Good luck guys."}, {"post_id": 45998, "ts": "2026-08-12T20:54:46Z", "hours": 3.1411, "text": "#Devlog 3 The new pages I promised to share with you are already available guys! Checkout the Demo link. If I had to say something about the experience I will say it was very long to adjust my code into separate page - because before I had a single page for .css, .html and .js - But it’s so satisfying right now. Also I had to change my demo link. The one I had in vercel was just loading a 404, - and I did not even no why - so I changed to a github deployment. Notify me if during this demo testing you do not have access to the page. It’ll be quite unfortunate because I did put all of my love and experience into that."}, {"post_id": 45032, "ts": "2026-08-11T05:51:30Z", "hours": 1.3931, "text": "Brand New Section! Devlog #2 I shared my website with some of my friends, and they told me I should add a section specifically talking about my projects. So, it is what I am actually cooking. I also decided to add a section named “What’s up” that I will continuously update: I will try to keep the update tech-related and my encounters in the hackclub. I will share with you the latest updates I soon as I finish my summer academy this evening. Stay tuned"}, {"post_id": 40407, "ts": "2026-08-03T21:39:19Z", "hours": 0.7197, "text": "My personal web page. This activity is really a self-introspection, as we have to gather all we know on ourselves (which is not always that easy by the way) to create a page for anyone reading it to know you better. The first thing I thought of was the background to be my favorite color, and the profile picture my favotite hero. By this I i’m sure anyone can protray the type of person I’m from the value of my hero( hardwork, resilience, accountable, charismatic etc.) and the general traits of those having green as favorite color(calm, friendly, sociable, confident etc.). Then I expressed my artistic designs with the color choices. I see these choices that we may make subconsiouly the best way to know about someone"}]...
|
Title: My own site! by @Alan_X | Stardance
Devlog Title: My own site! by @Alan_X | Stardance
Devlogs:
My personal web page. This activity is really a self-introspection, as we have to gather all we know on ourselves (which is not always that easy by the way) to create a page for anyone reading it to know you better. The first thing I thought of was the background to be my favorite color, and the profile picture my favotite hero. By this I i’m sure anyone can protray the type of person I’m from the value of my hero( hardwork, resilience, accountable, charismatic etc.) and the general traits of those having green as favorite color(calm, friendly, sociable, confident etc.). Then I expressed my artistic designs with the color choices. I see these choices that we may make subconsiouly the best way to know about someone
Brand New Section! Devlog #2 I shared my website with some of my friends, and they told me I should add a section specifically talking about my projects. So, it is what I am actually cooking. I also decided to add a section named “What’s up” that I will continuously update: I will try to keep the update tech-related and my encounters in the hackclub. I will share with you the latest updates I soon as I finish my summer academy this evening. Stay tuned
#Devlog 3 The new pages I promised to share with you are already available guys! Checkout the Demo link. If I had to say something about the experience I will say it was very long to adjust my code into separate page - because before I had a single page for .css, .html and .js - But it’s so satisfying right now. Also I had to change my demo link. The one I had in vercel was just loading a 404, - and I did not even no why - so I changed to a github deployment. Notify me if during this demo testing you do not have access to the page. It’ll be quite unfortunate because I did put all of my love and experience into that.
Final Devlog before 1st ship For this last modification before the ship, I added another section that I named facts. It is all about why I joined the hack club and stardance community, and with what I learned, what I will do with that knowledge. I also updated the images unable to open on the browser and corrected grammatical and writting mistakes in the entire site. Most importantly, I completely changed my README.md, so as to be appropriate for shiping. I’m impatient to ship my first project, but I will do it when I wake at 6 in the morning. Wish me Good luck guys.
It’s more than just a website…it’s the easiest way someone can know me online After the first ship of this project, I decided to share the link to my website to some of my friends and people I met at the summer academy. One of my friends came to me and asked who I am ? This question was to tell me that the site did not tell who I was enough. In addition to that, I did not have any landing page, which is quite submerging. So I worked on the landing page to make it as a better introduction to the site than just diving in, and made the site more personal, so that someone could know me through this. I also: Introduced an animation to make the color theme of the home page change. The colors are variable and random according to a selection of mine, I updated the information in the “What’s up” page to fit my current situation, I corrected the typos in all the pages and introduced recent photographies in the “Project” page. As always, constructive feedback is always welcomed.
There are different ways to know someone: you can know their name or their stats. But the best way is the one in which you can create a conversation with the person you know Today, I introduced a page that we must all consider when building something to present. I read a bunch of personal sites, but I can bearly have a conversation out of their projects with the people. Their center of interest is what can immediately pull a conversation, so I considered adding the preference.html page to be able to engage a conversation. I also mainly corrected the typos on my pages, and adjusted the README.md to fit the recent updates
Ships:
I made a website to present myself, so that anyone going through it is able to know me better. It is made up of 3 distinct pages, each englobing a topic of my life I want to share. The most challenging part was for sure the CSS. Every beginner will agree with me there are some tags whose name are not 100% comprehensible, especially when you see their function after (here I think of the flex boxes, display and align function). Also, hosting a site was quite new to me. I remember having 14+ 404 errors with two different hosting apps, just because one of my pages was not named index. I spent hours trying to figure it out ! I am very proud of the website style. It perfectly represents me. The colours, the spiderman logo, the story telling and the content. All these hours of coding were worth seeing this creation of mine. To navigate throughout the site is pretty easy. Click on the vercel link and use the nav bar to go through the different sections.
Who are you? This is the question I want to cancel from your minds when you explore my site. The main aim is not to build a resume, but to feel closer to a stardancer you never met!...
|
1792986863.5904868
|
1793073263.5904868
|
|
62513
|
ASTRA by @MIREYA | Stardance
|
MIREYA
|
1
|
4.95
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T16:51:17Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "WHAT I MADE: I built ASTRA, a space customization website that helps users redesign their rooms based on their own preferences and budget. It doesn’t just throw random suggestions. It uses a weighted algorithm that scores designs on space, aesthetics, budget, and function, and shows the best 10 matches.The math behind it is Fibonacci Spirals and Golden Angle (137.5°) for perfect, natural-looking room layouts.WHAT PEOPLE SHOULD KNOW ABOUT TESTING IT: Test it by entering different room sizes, budgets, and styles. The recommendations will actually change based on YOUR weights, not just trends. Try giving high weight to budget vs. aesthetics and see the Top 10 list completely change. That’s the personalization.WHAT WAS CHALLENGING: Making math work for design. Translating Golden Angle and Fibonacci into a scoring system that feels natural, not robotic. And balancing 4 different user inputs into one fair compatibility score without bias.WHAT I’M PROUD OF: I made decision-making faster and more personal. Users focus on their own interest instead of relying on generic suggestions, and the whole system is backed by real mathematics found in nature.", "repo": "https://github.com/Mireya-examclarity/ASTRA-2", "demo": "https://mireya-examclarity.github.io/ASTRA-2/"}]...
|
[{"post_id": 81799, "ts": "202 [{"post_id": 81799, "ts": "2026-10-22T15:59:08Z", "hours": 0.5472, "text": "I finished one of my previous projects I’ve been working on (ASTRA). Now I removed flask.Pages doesn’t support Flask, so I moved all my DESIGNS dict and scoring logic to frontend JS (IN HTML).Also fixed that bug where Pastel Dream decor was a set {} not list []{ Brackets were giving me a tough time 😆} . Added radar chart and wishlist with localStorage. Now it actually deploys( as it should!!). I have also added fibonacci golden angle logic - golden as placement efficiency bonus. It’s not full spiral visualization yet but scoring now includes golden ratio factor in final weighted formula. That’s all I did today(! !)"}, {"post_id": 71675, "ts": "2026-09-21T09:08:15Z", "hours": 0.3994, "text": "I first built ASTRA on Streamlit. It worked locally, but once deployed, it kept sleeping. Every time someone opened the link after a while, it would show a sleeping screen and take forever to wake up. I realized a space design app can’t sleep when the user needs it, so I fixed it by rebuilding the entire app in Flask and deploying it through GitHub.Then when I tried to run Flask locally, I hit another wall - jinja2.exceptions.TemplateSyntaxError. Jinja couldn’t recognize my HTML syntax because I had used : inside {{ }} for my icons. I fixed that by moving the logic out of Jinja and into a clean JavaScript function.So I fixed two big things - I stopped the sleeping problem by leaving Streamlit for Flask, and I fixed the Jinja syntax clash that was breaking my localhost. I really hope this will work!!!."}, {"post_id": 69280, "ts": "2026-09-16T18:39:47Z", "hours": 2.0069, "text": "I actually worked on ExamClarity but it got saved on ASTRA but anyway I have added some more features in ExamClarity from my previous code."}, {"post_id": 68759, "ts": "2026-09-15T18:08:34Z", "hours": 1.6142, "text": "Just finished on ASTRA !. It took some real time to deploy this one.I was having some issues about the files in VS code but in the end I was able to revive it. ASTRA came out to be a little weird but its alright I’ll look into it later.Take a picture and see if it works yo!."}]...
|
Title: ASTRA by @MIREYA | Stardance
Devlogs:
Just Title: ASTRA by @MIREYA | Stardance
Devlogs:
Just finished on ASTRA !. It took some real time to deploy this one.I was having some issues about the files in VS code but in the end I was able to revive it. ASTRA came out to be a little weird but its alright I’ll look into it later.Take a picture and see if it works yo!.
I actually worked on ExamClarity but it got saved on ASTRA but anyway I have added some more features in ExamClarity from my previous code.
I first built ASTRA on Streamlit. It worked locally, but once deployed, it kept sleeping. Every time someone opened the link after a while, it would show a sleeping screen and take forever to wake up. I realized a space design app can’t sleep when the user needs it, so I fixed it by rebuilding the entire app in Flask and deploying it through GitHub.Then when I tried to run Flask locally, I hit another wall - jinja2.exceptions.TemplateSyntaxError. Jinja couldn’t recognize my HTML syntax because I had used : inside {{ }} for my icons. I fixed that by moving the logic out of Jinja and into a clean JavaScript function.So I fixed two big things - I stopped the sleeping problem by leaving Streamlit for Flask, and I fixed the Jinja syntax clash that was breaking my localhost. I really hope this will work!!!.
I finished one of my previous projects I’ve been working on (ASTRA). Now I removed flask.Pages doesn’t support Flask, so I moved all my DESIGNS dict and scoring logic to frontend JS (IN HTML).Also fixed that bug where Pastel Dream decor was a set {} not list []{ Brackets were giving me a tough time 😆} . Added radar chart and wishlist with localStorage. Now it actually deploys( as it should!!). I have also added fibonacci golden angle logic - golden as placement efficiency bonus. It’s not full spiral visualization yet but scoring now includes golden ratio factor in final weighted formula. That’s all I did today(! !)
Ships:
WHAT I MADE: I built ASTRA, a space customization website that helps users redesign their rooms based on their own preferences and budget. It doesn’t just throw random suggestions. It uses a weighted algorithm that scores designs on space, aesthetics, budget, and function, and shows the best 10 matches.The math behind it is Fibonacci Spirals and Golden Angle (137.5°) for perfect, natural-looking room layouts.WHAT PEOPLE SHOULD KNOW ABOUT TESTING IT: Test it by entering different room sizes, budgets, and styles. The recommendations will actually change based on YOUR weights, not just trends. Try giving high weight to budget vs. aesthetics and see the Top 10 list completely change. That’s the personalization.WHAT WAS CHALLENGING: Making math work for design. Translating Golden Angle and Fibonacci into a scoring system that feels natural, not robotic. And balancing 4 different user inputs into one fair compatibility score without bias.WHAT I’M PROUD OF: I made decision-making faster and more personal. Users focus on their own interest instead of relying on generic suggestions, and the whole system is backed by real mathematics found in nature....
|
1793058620.9889817
|
1793145020.9889817
|
|
62468
|
My OS by @folk0297 | Stardance
|
folk0297
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T16:43:38Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a browser-based Web OS using HTML, CSS and JavaScript. It lookslike a simple desktop interface and includes features like a search bar,draggable windows, Notes, Calculator, Timer, Todo List and a two-playerPing Pong game. I also added local storage so some data (like notes and todo items) stays saved even after refreshing the page. The trickiest part was managing the window system and getting all the apps to work together. I also struggled with some JavaScript bugs (like function scoping and event listeners) and making the UI feel smooth and responsive on different screen sizes. Handling local storage and the game logic for Ping Pong took some time too. I’m proud that I was able to build everything on my own, from scratch. Getting the draggable windows, local storage and the game working was satisfying. I also like how the final project looks and feels - it’s simple but clean and actually works, and it taught me a lot about web development and problem solving.", "repo": "https://github.com/folks0297/My-OS", "demo": "https://folks0297.github.io/My-OS/"}]...
|
[{"post_id": 70695, "ts": "202 [{"post_id": 70695, "ts": "2026-09-19T16:29:40Z", "hours": 0.2711, "text": "DEVLOG# 3 i did some changes and added one of my favourite game title screen as a background and it look so firee🔥🔥!! i was planning on changing its background as it was looking pale but now its good"}, {"post_id": 70676, "ts": "2026-09-19T15:57:14Z", "hours": 1.9044, "text": "DEVLOG#2 added some most of the apps. a mini ping pong game too working pretty fine , its a double player game so you can play it with your friends , one control with W and S and other player control with arrow keys . beside that also added calculator ,notes timer an about section too is there :)"}, {"post_id": 70397, "ts": "2026-09-19T03:16:13Z", "hours": 3.4731, "text": "DEVLOG #1 of project no. 4 , so i am making a simple and clean my own OS and bro! this is so coool , for now i have added a working search bar and whatever you search will open in a new tab , i have also made the layout for my apps below it but they not functional yet . maybe i will make custom app pixel logos to make it look more aethetic"}]...
|
Title: My OS by @folk0297 | Stardance
Devlogs:
DE Title: My OS by @folk0297 | Stardance
Devlogs:
DEVLOG #1 of project no. 4 , so i am making a simple and clean my own OS and bro! this is so coool , for now i have added a working search bar and whatever you search will open in a new tab , i have also made the layout for my apps below it but they not functional yet . maybe i will make custom app pixel logos to make it look more aethetic
DEVLOG#2 added some most of the apps. a mini ping pong game too working pretty fine , its a double player game so you can play it with your friends , one control with W and S and other player control with arrow keys . beside that also added calculator ,notes timer an about section too is there :)
DEVLOG# 3 i did some changes and added one of my favourite game title screen as a background and it look so firee🔥🔥!! i was planning on changing its background as it was looking pale but now its good
Ships:
I built a browser-based Web OS using HTML, CSS and JavaScript. It lookslike a simple desktop interface and includes features like a search bar,draggable windows, Notes, Calculator, Timer, Todo List and a two-playerPing Pong game. I also added local storage so some data (like notes and todo items) stays saved even after refreshing the page. The trickiest part was managing the window system and getting all the apps to work together. I also struggled with some JavaScript bugs (like function scoping and event listeners) and making the UI feel smooth and responsive on different screen sizes. Handling local storage and the game logic for Ping Pong took some time too. I’m proud that I was able to build everything on my own, from scratch. Getting the draggable windows, local storage and the game working was satisfying. I also like how the final project looks and feels - it’s simple but clean and actually works, and it taught me a lot about web development and problem solving....
|
1793058610.937533
|
1793145010.937533
|
|
37997
|
AvatarLegacy by @FishyMC | Stardance
|
FishyMC
|
1
|
25.36
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T16:40:59Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "THERE IS SOMEONE OUT THERE WHO LOVES AVATAR THE LAST AIRBENDER AND THEY’RE GONNA LOVE THIS PROJECT IT’S FINALLY TIME TO SHIP!!! After ONE YEAR of planning this minecraft server I have FINALLY gotten it almost completely complete with EVEN MORE things to add into the game, such as sky bison, and I can’t wait to create a media team to invite even MORE people to the server so what are YOU waiting for, come test out my project!", "repo": "https://github.com/FishyMCDev/AL", "demo": "https://fishymcdev.github.io/websiterq/"}]...
|
[{"post_id": 82236, "ts": "202 [{"post_id": 82236, "ts": "2026-10-24T11:06:20Z", "hours": 1.0569, "text": "Added the .jar with more bending moves into the releases folder for github, shipped again!"}, {"post_id": 79056, "ts": "2026-10-12T14:55:36Z", "hours": 11.3025, "text": "Update README.md, and work on a ProjectKorra rework I am now using display entities to fix up new moves for the plugin. It now looks much cooler, you can see more at the YT vid. I also am going to fix the readme.md to be able to ship my project. https://youtu.be/O5RkZdJmaKE?si=d5pz1IFUT3K-N1ri Also now there is a new website for avatarlegacy (bought the domain), at….. https://avatarlegacy.net !!!!"}, {"post_id": 69766, "ts": "2026-09-17T19:05:09Z", "hours": 6.23, "text": "I’M GENUINELY THE GOAT After like 1x10^210393923092300132 years of debugging i’ve fixed the issue with /avatar scores, and now it displays players and THEIR SCORES. I’ve also fixed skilltree detection, and nation cores. Now, nation cores will only work above sea level and that’s amazing, and it auto removes them from the place you placed it at if it breaks any rules Subelement traits are harder to get AIRBENDING STAFF IN MINECRAFT!!! There’s now a STAFF which you can glide and RIDE in minecraft!!! It also has a secret recipe, which is amazing I still ahve to update the wiki at https://alwiki.wisp.uno , but otherwise i’m LOCKED IN"}, {"post_id": 54521, "ts": "2026-08-25T15:29:41Z", "hours": 4.5844, "text": "Final Release Fail So my final release failed, however, I got a lot of things done. Expected release was yesterday, and I did finish lots of the plugin and other stuff for AvatarLegacy. However, on the day of release the permissions and performance screwed up and we had to stop the server. However, we have a new deadline for saturday, with these targets: Missing Stuff [-] Permissions [-] Fixing EnderDragon spawn location [-] Reset of world [-] Removal of OreObfuscator + AntiXray [-] AntiXray resourcepack [-] Moderator perms [-] Staff ranks + monthly sub rune [-] One last skilltree config + make an image And our shop released! 50$+ of funds from the community! https://avatarlegacy.tebex.io https://avatarlegacy.wisp.uno"}, {"post_id": 45037, "ts": "2026-08-11T06:17:23Z", "hours": 2.4381, "text": "AvatarLegacy v.2 So basically in this commit I added lots of new features such as: Adding Skill-Trees A skilltree webeditor so that I don’t have to configure YAML Subelement trait chances Subelement runes The idea of finding runes and special items in chests, this is how it works: Instead of auto setting chest loot for unopened chests, the event for setting loot runs when the chest is opened at a high priority and it then uses the chance given from the configuration, and places/doesn’t place special items in the chest. The /train command was also added, so that the avatar can be trained by other element masters. It takes 90 seconds and requires being close to each other. Other updates were commit-ed on git :D"}]...
|
Title: AvatarLegacy by @FishyMC | Stardance
Devlo Title: AvatarLegacy by @FishyMC | Stardance
Devlogs:
AvatarLegacy v.2 So basically in this commit I added lots of new features such as: Adding Skill-Trees A skilltree webeditor so that I don’t have to configure YAML Subelement trait chances Subelement runes The idea of finding runes and special items in chests, this is how it works: Instead of auto setting chest loot for unopened chests, the event for setting loot runs when the chest is opened at a high priority and it then uses the chance given from the configuration, and places/doesn’t place special items in the chest. The /train command was also added, so that the avatar can be trained by other element masters. It takes 90 seconds and requires being close to each other. Other updates were commit-ed on git :D
Final Release Fail So my final release failed, however, I got a lot of things done. Expected release was yesterday, and I did finish lots of the plugin and other stuff for AvatarLegacy. However, on the day of release the permissions and performance screwed up and we had to stop the server. However, we have a new deadline for saturday, with these targets: Missing Stuff [-] Permissions [-] Fixing EnderDragon spawn location [-] Reset of world [-] Removal of OreObfuscator + AntiXray [-] AntiXray resourcepack [-] Moderator perms [-] Staff ranks + monthly sub rune [-] One last skilltree config + make an image And our shop released! 50$+ of funds from the community! https://avatarlegacy.tebex.io https://avatarlegacy.wisp.uno
I’M GENUINELY THE GOAT After like 1x10^210393923092300132 years of debugging i’ve fixed the issue with /avatar scores, and now it displays players and THEIR SCORES. I’ve also fixed skilltree detection, and nation cores. Now, nation cores will only work above sea level and that’s amazing, and it auto removes them from the place you placed it at if it breaks any rules Subelement traits are harder to get AIRBENDING STAFF IN MINECRAFT!!! There’s now a STAFF which you can glide and RIDE in minecraft!!! It also has a secret recipe, which is amazing I still ahve to update the wiki at https://alwiki.wisp.uno , but otherwise i’m LOCKED IN
Update README.md, and work on a ProjectKorra rework I am now using display entities to fix up new moves for the plugin. It now looks much cooler, you can see more at the YT vid. I also am going to fix the readme.md to be able to ship my project. https://youtu.be/O5RkZdJmaKE?si=d5pz1IFUT3K-N1ri Also now there is a new website for avatarlegacy (bought the domain), at….. https://avatarlegacy.net !!!!
Added the .jar with more bending moves into the releases folder for github, shipped again!
Ships:
THERE IS SOMEONE OUT THERE WHO LOVES AVATAR THE LAST AIRBENDER AND THEY’RE GONNA LOVE THIS PROJECT IT’S FINALLY TIME TO SHIP!!! After ONE YEAR of planning this minecraft server I have FINALLY gotten it almost completely complete with EVEN MORE things to add into the game, such as sky bison, and I can’t wait to create a media team to invite even MORE people to the server so what are YOU waiting for, come test out my project!...
|
1793004602.676639
|
1793091002.676639
|
|
35169
|
My own site! by @Midhunesh | Stardance
|
Midhunesh
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T16:26:57Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Website that tells the Life of Dr. A.P.J Abdul Kalam also known as the missile man of India. I was very interested to make this project since it was my fist ever website to make. CSS was bit challenging for me but I overcame the challenge with the help of Internet and AI. I used AI to just know the basics of CSS and HTML. I needed to know the basics of them, so I used the AI platform. I am proud of myself because I made a Website which gives information about the Life of Dr. A.P.J Abdul Kalam Sir who inspired me a lot. Also, I am really proud of making an amazing CSS which made my website cool. This website includes every mission as per the guidelines and I think that it is worth to test because it is my first ever website. I believe in myself and I believe in my website. Thank you!", "repo": "https://github.com/midhuneshbraj123/My-Website", "demo": "https://midhuneshbraj123.github.io/My-Website/"}]...
|
[{"post_id": 69707, "ts": "202 [{"post_id": 69707, "ts": "2026-09-17T16:51:08Z", "hours": 0.3128, "text": "Devlog Number 5: I have completed making both the content of the website and the style of the website. It was really hard to figure out how to do the style.css but I learned the basics from some online resources and videos. Now, my website looks really cool after combining the HTML and the style. My first website is ready to DEPLOY!!!"}, {"post_id": 68693, "ts": "2026-09-15T15:34:17Z", "hours": 0.6069, "text": "Devlog Number 4: I learned how to add images and i added images for the previous sub topics which I have completed. Now I am uploading images after completion of the paragraph…"}, {"post_id": 68659, "ts": "2026-09-15T14:22:00Z", "hours": 0.2639, "text": "Devlog Number 3: I have been adding more informations about Abdul Kalam Sir and trying to know more about him. I am adding extra sections and paragraphs to segregate each phase of his life…"}, {"post_id": 68652, "ts": "2026-09-15T13:57:58Z", "hours": 0.3325, "text": "Devlog Number 2: It is my first time making a website and I am adding extra details to make it attractive. I have added extra sections and paragraphs mentioning the life of A.P.J Abdul Kalam Sir. Sub heading for each paragraph is given and images should be added soon."}, {"post_id": 68144, "ts": "2026-09-14T16:12:45Z", "hours": 0.9808, "text": "There are many personalities who inspire the younger generation to get out of their comfort zone and explore many things. One of the Personalities are A.P.J Abdul Kalam Sir. He was a famous scientist, popularly known as the Missile Man of India. He inspired many youths and I am one of them. Since he is one of my inspirations, I decided to make a website that shows the life that he has lived…"}]...
|
Title: My own site! by @Midhunesh | Stardance
Dev Title: My own site! by @Midhunesh | Stardance
Devlogs:
There are many personalities who inspire the younger generation to get out of their comfort zone and explore many things. One of the Personalities are A.P.J Abdul Kalam Sir. He was a famous scientist, popularly known as the Missile Man of India. He inspired many youths and I am one of them. Since he is one of my inspirations, I decided to make a website that shows the life that he has lived…
Devlog Number 2: It is my first time making a website and I am adding extra details to make it attractive. I have added extra sections and paragraphs mentioning the life of A.P.J Abdul Kalam Sir. Sub heading for each paragraph is given and images should be added soon.
Devlog Number 3: I have been adding more informations about Abdul Kalam Sir and trying to know more about him. I am adding extra sections and paragraphs to segregate each phase of his life…
Devlog Number 4: I learned how to add images and i added images for the previous sub topics which I have completed. Now I am uploading images after completion of the paragraph…
Devlog Number 5: I have completed making both the content of the website and the style of the website. It was really hard to figure out how to do the style.css but I learned the basics from some online resources and videos. Now, my website looks really cool after combining the HTML and the style. My first website is ready to DEPLOY!!!
Ships:
I made a Website that tells the Life of Dr. A.P.J Abdul Kalam also known as the missile man of India. I was very interested to make this project since it was my fist ever website to make. CSS was bit challenging for me but I overcame the challenge with the help of Internet and AI. I used AI to just know the basics of CSS and HTML. I needed to know the basics of them, so I used the AI platform. I am proud of myself because I made a Website which gives information about the Life of Dr. A.P.J Abdul Kalam Sir who inspired me a lot. Also, I am really proud of making an amazing CSS which made my website cool. This website includes every mission as per the guidelines and I think that it is worth to test because it is my first ever website. I believe in myself and I believe in my website. Thank you!...
|
1793004459.1007595
|
1793090859.1007595
|
|
55508
|
Bento YSWS Website by @JacobNavaratne | Stardance
|
JacobNavaratne
|
1
|
3.0
|
18
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T16:23:13Z", "hours": 3.0, "multiplier": 5.19, "payout": 18, "blessing": "neutral", "text": "WELCOME TO BENTO YSWS WEBSITE! This is a YSWS website for Hack Club Bento. It is a static website co-created with @freddie , sponsored by the Clubs Team. The website has a logo, designed using the anchor guide, sadly not recorded with lapse, so no time was logged there. The website includes a main page, explaining the different requirements, the prizes and the bonuses. It also has a leaders zone for leaders to get access to our presentation (WIP), and our guide document. To explain certain features not tracked inside of this star dance project - @freddie implemented the following: adjustments to the leaders zone page, which copies over the original requirements page and prizes there, with adjustments made to the main page updated sections on the main site for different prizes for individuals, notes on separated requirements between clubs and individuals etc etc the /submit system using ferry was fully implemented by Freddie the countdown system on the main page You can see most of what I did based off the commit history, shared across the team. FYI - the example area is not completed yet, we do know this. And while you are at it - go join #bento!!!", "repo": "https://github.com/hackclub/bento", "demo": "https://bento.hackclub.com/"}]...
|
[{"post_id": 63118, "ts": "202 [{"post_id": 63118, "ts": "2026-09-06T18:58:58Z", "hours": 0.5544, "text": "Leaders Zone - v1! So I created a version of the leaders zone very quickly for a quick version mockup! My session started off with taking the style.css of the home page, duplicating it to leaders.css and examples.css - and adding 2 tags to leader-zone.html and example.html to make them have fancy coming soon pages! Once I committed that, I got to work, and copied over the #top section of the main page to leaders! I set the height of the top section to 50vh, then moved the logo, removed the slack link, deleted two buttons, edited the button to be a return to home page, moved the button, edited the text and the sizing of the text to be more fitting for a leaders zone, and tested it all! Once saved, I created a new section from scratch, but used the existing css #requirements, because I copied over the CSS file - remember! This is fine, but way too big so that will be something to fix next time! I then went over to https://vibes.hackclub.com/ to get some inspiration on what a leaders zone page should have, then created two div sections, which I think were called ‘leaders-content’ (note to self - need to style those in the future), added some basic text, then another bit for our presentation, and copied over the button. With this button I had immense pain, because I forgot an = sign…… But its fixed and currently just opens https://canva.com/ because I haven’t made the guide yet….. I added some paragraph text and thats it!"}, {"post_id": 56727, "ts": "2026-08-28T16:28:27Z", "hours": 2.8744, "text": "v1 - So finally we have v1 of the Bento YSWS website! I created the pages, with some gradients to split the site up into different sections! After scrolling down you see all the different pieces of info, the main requirements, the bonus things you can do and a basic FAQ! It has credits to our sponsor, Jared, and the other organiser, Freddie! I also made the logo using the guide from anchor.hackclub.com and got some feedback from others, like making the flag be able to move (this was an AI implemented feature). I also added a blank leaders zone page, and a button to open the clubs platform workshop page. There is another ‘disabled’ button for individuals submitting their projects - but we are not live yet, so that is why it is disabled. For things @freddie implemented - he cleaned up some wording, added more ‘checklists’ to help Hack Clubbers go through the process of signing up to the workshop as a leader, or member or even as an individuals. He also added the basic HTML head, and a ‘coming soon’ part to the leaders zone! Not only this, he adjusted some of the FAQ and added a link to our slack channel. The reason I am noting what @freddie has done - is so that reviewers can distinguish between the changes / parts that I have made, and changes that Freddie have made. Quick Fire round: Links to users on slack in the footer, checklists to help hack clubbers create their projects, a font from google fonts (pretty cool font if you ask me), icons styled for different sections of the site, no javascript. FYI - the screenshots attached are of the site BEFORE Freddie’s changes."}]...
|
Title: Bento YSWS Website by @JacobNavaratne | Sta Title: Bento YSWS Website by @JacobNavaratne | Stardance
Devlogs:
v1 - So finally we have v1 of the Bento YSWS website! I created the pages, with some gradients to split the site up into different sections! After scrolling down you see all the different pieces of info, the main requirements, the bonus things you can do and a basic FAQ! It has credits to our sponsor, Jared, and the other organiser, Freddie! I also made the logo using the guide from anchor.hackclub.com and got some feedback from others, like making the flag be able to move (this was an AI implemented feature). I also added a blank leaders zone page, and a button to open the clubs platform workshop page. There is another ‘disabled’ button for individuals submitting their projects - but we are not live yet, so that is why it is disabled. For things @freddie implemented - he cleaned up some wording, added more ‘checklists’ to help Hack Clubbers go through the process of signing up to the workshop as a leader, or member or even as an individuals. He also added the basic HTML head, and a ‘coming soon’ part to the leaders zone! Not only this, he adjusted some of the FAQ and added a link to our slack channel. The reason I am noting what @freddie has done - is so that reviewers can distinguish between the changes / parts that I have made, and changes that Freddie have made. Quick Fire round: Links to users on slack in the footer, checklists to help hack clubbers create their projects, a font from google fonts (pretty cool font if you ask me), icons styled for different sections of the site, no javascript. FYI - the screenshots attached are of the site BEFORE Freddie’s changes.
Leaders Zone - v1! So I created a version of the leaders zone very quickly for a quick version mockup! My session started off with taking the style.css of the home page, duplicating it to leaders.css and examples.css - and adding 2 tags to leader-zone.html and example.html to make them have fancy coming soon pages! Once I committed that, I got to work, and copied over the #top section of the main page to leaders! I set the height of the top section to 50vh, then moved the logo, removed the slack link, deleted two buttons, edited the button to be a return to home page, moved the button, edited the text and the sizing of the text to be more fitting for a leaders zone, and tested it all! Once saved, I created a new section from scratch, but used the existing css #requirements, because I copied over the CSS file - remember! This is fine, but way too big so that will be something to fix next time! I then went over to https://vibes.hackclub.com/ to get some inspiration on what a leaders zone page should have, then created two div sections, which I think were called ‘leaders-content’ (note to self - need to style those in the future), added some basic text, then another bit for our presentation, and copied over the button. With this button I had immense pain, because I forgot an = sign…… But its fixed and currently just opens https://canva.com/ because I haven’t made the guide yet….. I added some paragraph text and thats it!
Ships:
WELCOME TO BENTO YSWS WEBSITE! This is a YSWS website for Hack Club Bento. It is a static website co-created with @freddie , sponsored by the Clubs Team. The website has a logo, designed using the anchor guide, sadly not recorded with lapse, so no time was logged there. The website includes a main page, explaining the different requirements, the prizes and the bonuses. It also has a leaders zone for leaders to get access to our presentation (WIP), and our guide document. To explain certain features not tracked inside of this star dance project - @freddie implemented the following: adjustments to the leaders zone page, which copies over the original requirements page and prizes there, with adjustments made to the main page updated sections on the main site for different prizes for individuals, notes on separated requirements between clubs and individuals etc etc the /submit system using ferry was fully implemented by Freddie the countdown system on the main page You can see most of what I did based off the commit history, shared across the team. FYI - the example area is not completed yet, we do know this. And while you are at it - go join #bento!!!...
|
1793004476.6593802
|
1793090876.6593802
|
|
63822
|
Research Connect by @overwatch886 | Stardance
|
overwatch886
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T16:16:25Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built Research Connect, a web site to help students and academic researcher gather the opinion of other students in their research work while simultaneously rewarding the users for it. I built this as part of an MLH Build-a-thon and I must say that the project was 100% built with AI due to time constraints on that day. Still though the links to check it out and try it out are attached already.", "repo": "https://github.com/Overwatch886/research-connect-ng", "demo": "https://research-connect-ng.vercel.app/"}]...
|
[{"post_id": 70681, "ts": "202 [{"post_id": 70681, "ts": "2026-09-19T16:10:38Z", "hours": 4.905, "text": "Yesterday, I started and eventually completed Research Connect as part of a MLH Build-athon I participated in. The platform was built to help researchers gather insights by posting surveys on the platform and students take them to get rewarded for doing so. I built this because I noticed most students and researchers find it hard to get the opinion of other students for their various projects and research. Disclaimer: This Project was heavily Vibe coded due to the time constraining nature of the build-a-thon. Still posting it though."}]...
|
Title: Research Connect by @overwatch886 | Stardan Title: Research Connect by @overwatch886 | Stardance
Devlogs:
Yesterday, I started and eventually completed Research Connect as part of a MLH Build-athon I participated in. The platform was built to help researchers gather insights by posting surveys on the platform and students take them to get rewarded for doing so. I built this because I noticed most students and researchers find it hard to get the opinion of other students for their various projects and research. Disclaimer: This Project was heavily Vibe coded due to the time constraining nature of the build-a-thon. Still posting it though.
Ships:
I built Research Connect, a web site to help students and academic researcher gather the opinion of other students in their research work while simultaneously rewarding the users for it. I built this as part of an MLH Build-a-thon and I must say that the project was 100% built with AI due to time constraints on that day. Still though the links to check it out and try it out are attached already....
|
1793058831.2919664
|
1793145231.2919664
|
|
30424
|
My own site! by @defnlwy | Stardance
|
defnlwy
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T15:22:57Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hi! I tried to create my own website I used claude ai for debugging at some parts. I hope you guys like the project", "repo": "https://github.com/DefneMelisUngor/webme", "demo": "https://loquacious-druid-ba0acb.netlify.app"}]...
|
[{"post_id": 46476, "ts": "202 [{"post_id": 46476, "ts": "2026-08-13T18:29:25Z", "hours": 0.3478, "text": "I hope this will be the last devlog before i ship this project and this is the last contact me part"}, {"post_id": 32339, "ts": "2026-07-21T13:24:18Z", "hours": 0.3792, "text": "What do you think about this now page maybe it can be fancier"}, {"post_id": 31344, "ts": "2026-07-19T17:37:22Z", "hours": 0.4628, "text": "this looks better ig"}, {"post_id": 31309, "ts": "2026-07-19T16:35:33Z", "hours": 1.0928, "text": "I’ve add posters of the movies that i liked"}]...
|
Title: My own site! by @defnlwy | Stardance
Devlo Title: My own site! by @defnlwy | Stardance
Devlogs:
I’ve add posters of the movies that i liked
this looks better ig
What do you think about this now page maybe it can be fancier
I hope this will be the last devlog before i ship this project and this is the last contact me part
Ships:
Hi! I tried to create my own website I used claude ai for debugging at some parts. I hope you guys like the project...
|
1793004706.158915
|
1793091106.158915
|
|
6839
|
Swerve Drive by @joshua_r | Stardance
|
joshua_r
|
2
|
79.0
|
379
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T14:57:23Z", "hours": 1.0, "multiplier": 5.0, "payout": 5, "blessing": "neutral", "text": "3D printed coaxial swerve drive! This was heavily inspired by FRC swerves and it really fun to make. Designing and everything hardware related was honestly pretty easy, but wiring was a pain. Each brushless motor driver needed 3 pwm pins on the same hardware timer and on nucleos, some of the pins serve multiple uses, creating some problems for me. Also there were a lot of times that things that seemed like software issues were actually wiring issues, like when the adafruit motor shield stopped working because its i2c connection was tied to pins A4 and A5. Overall, this was the most technologically advanced project I have ever made, partly because I was using a new microcontroller (stm32 nucleo) but also because I had to understand the math involved in driving a swerve correctly. Not to mention I was also running 4 brushless motors and 4 separate PIDs. It was really fun to build and I would definitely do it again given the opportunity. Maybe even a differential swerve next time? RESHIP FOR NEW HARDWARE MUTLIPLIER: Public video link is the video of project button.", "repo": "https://github.com/Joshuar9202/Swerve-Drive-Arduino", "demo": ""}, {"ship_num": 2, "ts": "2026-07-06T16:35:33Z", "hours": 78.0, "multiplier": 5.0, "payout": 374, "blessing": "neutral", "text": "3D printed coaxial swerve drive! This was heavily inspired by FRC swerves and it really fun to make. Designing and everything hardware related was honestly pretty easy, but wiring was a pain. Each brushless motor driver needed 3 pwm pins on the same hardware timer and on nucleos, some of the pins serve multiple uses, creating some problems for me. Also there were a lot of times that things that seemed like software issues were actually wiring issues, like when the adafruit motor shield stopped working because its i2c connection was tied to pins A4 and A5. Overall, this was the most technologically advanced project I have ever made, partly because I was using a new microcontroller (stm32 nucleo) but also because I had to understand the math involved in driving a swerve correctly. Not to mention I was also running 4 brushless motors and 4 separate PIDs. It was really fun to build and I would definitely do it again given the opportunity. Maybe even a differential swerve next time?", "repo": "https://github.com/Joshuar9202/Swerve-Drive-Arduino", "demo": ""}]...
|
[{"post_id": 70649, "ts": "202 [{"post_id": 70649, "ts": "2026-09-19T14:53:46Z", "hours": 0.9042, "text": "Finally hardware projects are getting payout multipliers like software projects! Thus, I will be reshipping my project so that I can get multiplier. (Also opensauce was awesome sauce! Only real changes made to the project were encoder offsets and tuning things at opensauce because of reassembly at the venue. Also got into a rev reel!)"}, {"post_id": 22493, "ts": "2026-07-05T00:00:05Z", "hours": 11.3317, "text": "Done! 🎉 I finished making all the things for the github like the wiring diagram and demo video. Fixed all issues with field relative control, my original math was incorrect. Also one of the modules wasn’t rotating correctly but it turns out it was just the magnet came loose. Will be submitting to Outpost soon! Demo video link: https://www.youtube.com/watch?v=bPC4PA_9ZH0"}, {"post_id": 19694, "ts": "2026-07-01T02:39:11Z", "hours": 5.0708, "text": "First Movements Tested full motion for the first time woohoo! 🎉🎊 Things surprisingly worked alright, the kinematics for the rotation while strafing is still a bit off but translation by itself works great. Also the wheels have very little traction so I’ll have to increase that somehow. Additionally, field centric control on the joystick works really well, so up on the joystick means up in real life relative to the start heading and regardless of the rotation of the robot. Things Left to Do on Hardware Add traction to the wheels Things Left to Do on Software Fix swerve kinematics for rotation"}, {"post_id": 18892, "ts": "2026-06-30T02:50:31Z", "hours": 11.6183, "text": "Integration Pain I got all the subsystems working separately but the extremely fun part of integrating them all together was the first time I truly understood why engineers hate integration. There were a plethora of pin conflicts underlying the hardware since many of the pins on the nucleo serve multiple purposes. One example of this was the adafruit motor shield’s i2c bus interfering with the front left drive motor’s FOC math since PB8 and PB9 are connected to the sda and scl pins on the Arduino headers of the nucleo. As you can see from the extremely janky wiring in the photo, just connecting the shield so it gets power on the other side of headers and manually connecting the shield to a separate i2c bus using jumper wires, I was able to finally make all the subsystems work together. This was just one example of the many problems that arose, hence why there are almost 12 hours being logged in this post, but this project is finally on the last stretch. I did also make a lot of other progress like confirming the swerve kinematics work along with the flysky controller for inputs :) Things Left to Do on Hardware Cut off the sda and scl pins on the motor shield and solder a jumper wire to the new i2c bus Things Left to Do on Software Tune the pid for FR, BR, and BL turn motors Integrate offsets into the steering angle for the motors Integrate the MPU6050 readings for field oriented swerve control"}, {"post_id": 15434, "ts": "2026-06-25T02:36:01Z", "hours": 3.0789, "text": "Side Quest The adafruit motor shield v2 that I am using to control the n20 motors suddenly stopped working today. After a long struggle, I managed to trace it back to the A4 and A5 pins being attached to the nucelo alongside the dedicated SDA and SCL pins. Since SDA and SCL are tied to A4 and A5 on normal arduinos but seemingly not on nucelos, simply removing those pins fixed all issues. A very unsatisfying end to a 3 hour struggle :( I did mange to test out the front left module, and spent some time tuning the azimuth pid. Things Left to Do on Hardware Wire management Things Left to Do on Software Test the rest of the hardware (FR, BR, and BL modules, radio communication, and gyro). Program the rest of the swerveKinematics.cpp file Program mpu6050 gyro Program in controls from the inputs from the flysky controller"}, {"post_id": 14820, "ts": "2026-06-24T02:09:04Z", "hours": 3.2439, "text": "Finished Wiring As you can tell by this extremely beautiful cable management and totally not messy arrangement of wires, I should have probably made a pcb for this (Maybe I will later). Things Left to Do on Hardware Wire management Things Left to Do on Software Test all hardware individually to isolate any potential wiring issues Program the rest of the swerveKinematics.cpp file Program in controls from the inputs from the flysky controller"}, {"post_id": 14094, "ts": "2026-06-23T02:30:21Z", "hours": 6.4664, "text": "Swerve Drivebase update Cut out bellypan out of scrap board because creating large panels isn’t really suited for 3d printing and I can drill new holes into this material easily for mounting electronics. Mounted the majority of the electronics as well. On the software side I got radio communication working and created a new .h and .cpp file for implementing radio control into the main program. Things Left to Do on Hardware Attach radio receiver and battery Wire all components together Resolder the wires on one of the n20 motors (bad connection the first time lol). Things Left to Do on Software Program the rest of the swerveKinematics.cpp file Program in controls from the inputs from the flysky controller"}, {"post_id": 12296, "ts": "2026-06-20T02:02:20Z", "hours": 8.5414, "text": "Finished Drive Base Got all the modules built and attached. Some modules are a little bit stiff so if that hinders the motors I’ll need to change some clearances, but I think its minimal enough to where it won’t matter. Things Left to Do on Hardware Build and attach bellypan for electronics Mount electronics to bellypan Wire everything up Things Left to Do on Software Test radio communication from fs-ia6B receiver to nucleo Program commands in based on controller input Program swerve kinematics in using the custom angle control and drive control functions already created"}, {"post_id": 10917, "ts": "2026-06-17T21:51:43Z", "hours": 7.2928, "text": "Swerve azimuth control Got PID working for one module, though it probably still needs to be tuned. Also I need to figure out the logic for wrapping around since the encoder measures values from 0-1023 which I have mapped to 0 to 360, but after 360 it goes back to 0 which complicates the logic a bit. I also need to implement the logic for the swerve just switching the wheel rotation direction rather than rotate the entire module 180 degrees whenever it can. Realistically, the module should only ever rotate a max of 90 degrees from one input to the next"}, {"post_id": 8164, "ts": "2026-06-13T16:37:44Z", "hours": 8.9011, "text": "Tested all hardware for the swerve drive. The latest version of SimpleFOC (2.4.0) doesn’t work for some reason but the previous version (2.3.5) works perfectly fine. The as5600 encoders work great and track the rotation of the module nicely. I also made a few design changes to make assembly easier which includes changing the design of the encoder column support and the design of the standoffs."}, {"post_id": 5328, "ts": "2026-06-09T01:59:37Z", "hours": 3.0031, "text": "Swerve module v1 assembled! The gears mesh nicely and the entire system has a lot less friction than I thought it would :) Things needed to do in terms of design: Design support for the shaft that holds the central drive gear column since right now its cantilevered. Redesign standoffs because the current design breaks too easily Design encoder for brushless drive motor so FOC can be used"}, {"post_id": 4618, "ts": "2026-06-08T00:12:06Z", "hours": 3.3511, "text": "Finished soldering wires to the motors and header pins to the encoders. Got stm32 nucleo 64 f411re working with platformio ready for programming along with the motor shield to control everything!"}, {"post_id": 3587, "ts": "2026-06-06T16:15:48Z", "hours": 1.9147, "text": "finished building one module in real life!"}, {"post_id": 2479, "ts": "2026-06-05T00:05:00Z", "hours": 1.3253, "text": "Added drive column for drive gear train which is coaxial to the encoder column which has the magnet for the as5600 to track the module’s rotation. Done with the drive module for now, moving on to the motor mounts!"}, {"post_id": 2227, "ts": "2026-06-04T16:44:41Z", "hours": 2.6103, "text": "CAD for a single module done including gear relations. No motors yet"}]...
|
Title: Swerve Drive by @joshua_r | Stardance
Devl Title: Swerve Drive by @joshua_r | Stardance
Devlogs:
CAD for a single module done including gear relations. No motors yet
Added drive column for drive gear train which is coaxial to the encoder column which has the magnet for the as5600 to track the module’s rotation. Done with the drive module for now, moving on to the motor mounts!
finished building one module in real life!
Finished soldering wires to the motors and header pins to the encoders. Got stm32 nucleo 64 f411re working with platformio ready for programming along with the motor shield to control everything!
Swerve module v1 assembled! The gears mesh nicely and the entire system has a lot less friction than I thought it would :) Things needed to do in terms of design: Design support for the shaft that holds the central drive gear column since right now its cantilevered. Redesign standoffs because the current design breaks too easily Design encoder for brushless drive motor so FOC can be used
Tested all hardware for the swerve drive. The latest version of SimpleFOC (2.4.0) doesn’t work for some reason but the previous version (2.3.5) works perfectly fine. The as5600 encoders work great and track the rotation of the module nicely. I also made a few design changes to make assembly easier which includes changing the design of the encoder column support and the design of the standoffs.
Swerve azimuth control Got PID working for one module, though it probably still needs to be tuned. Also I need to figure out the logic for wrapping around since the encoder measures values from 0-1023 which I have mapped to 0 to 360, but after 360 it goes back to 0 which complicates the logic a bit. I also need to implement the logic for the swerve just switching the wheel rotation direction rather than rotate the entire module 180 degrees whenever it can. Realistically, the module should only ever rotate a max of 90 degrees from one input to the next
Finished Drive Base Got all the modules built and attached. Some modules are a little bit stiff so if that hinders the motors I’ll need to change some clearances, but I think its minimal enough to where it won’t matter. Things Left to Do on Hardware Build and attach bellypan for electronics Mount electronics to bellypan Wire everything up Things Left to Do on Software Test radio communication from fs-ia6B receiver to nucleo Program commands in based on controller input Program swerve kinematics in using the custom angle control and drive control functions already created
Swerve Drivebase update Cut out bellypan out of scrap board because creating large panels isn’t really suited for 3d printing and I can drill new holes into this material easily for mounting electronics. Mounted the majority of the electronics as well. On the software side I got radio communication working and created a new .h and .cpp file for implementing radio control into the main program. Things Left to Do on Hardware Attach radio receiver and battery Wire all components together Resolder the wires on one of the n20 motors (bad connection the first time lol). Things Left to Do on Software Program the rest of the swerveKinematics.cpp file Program in controls from the inputs from the flysky controller
Finished Wiring As you can tell by this extremely beautiful cable management and totally not messy arrangement of wires, I should have probably made a pcb for this (Maybe I will later). Things Left to Do on Hardware Wire management Things Left to Do on Software Test all hardware individually to isolate any potential wiring issues Program the rest of the swerveKinematics.cpp file Program in controls from the inputs from the flysky controller
Side Quest The adafruit motor shield v2 that I am using to control the n20 motors suddenly stopped working today. After a long struggle, I managed to trace it back to the A4 and A5 pins being attached to the nucelo alongside the dedicated SDA and SCL pins. Since SDA and SCL are tied to A4 and A5 on normal arduinos but seemingly not on nucelos, simply removing those pins fixed all issues. A very unsatisfying end to a 3 hour struggle :( I did mange to test out the front left module, and spent some time tuning the azimuth pid. Things Left to Do on Hardware Wire management Things Left to Do on Software Test the rest of the hardware (FR, BR, and BL modules, radio communication, and gyro). Program the rest of the swerveKinematics.cpp file Program mpu6050 gyro Program in controls from the inputs from the flysky controller
Integration Pain I got all the subsystems working separately but the extremely fun part of integrating them all together was the first time I truly understood why engineers hate integration. There were a plethora of pin conflicts underlying the hardware since many of the pins on the nucleo serve multiple purposes. One example of this was the adafruit motor shield’s i2c bus interfering with the front left drive motor’s FOC math since PB8 and PB9 are connected to the sda and scl pins on the Arduino headers of the nucleo. As you can see from the extremely janky wiring in the photo, just connecting the shield so it gets power on the other side of headers and manually connecting the shield to a separate i2c bus using jumper wires, I was able to finally make all the subsystems work together. This was just one example of the many problems that arose, hence why there are almost 12 hours being logged in this post, but this project is finally on the last stretch. I did also make a lot of other progress like confirming the swerve kinematics work along with the flysky controller for inputs :) Things Left to Do on Hardware Cut off the sda and scl pins on the motor shield and solder a jumper wire to the new i2c bus Things Left to Do on Software Tune the pid for FR, BR, and BL turn motors Integrate offsets into the steering angle for the motors Integrate the MPU6050 readings for field oriented swerve control
First Movements Tested full motion for the first time woohoo! 🎉🎊 Things surprisingly worked alright, the kinematics for the rotation while strafing is still a bit off but translation by itself works great. Also the wheels have very little traction so I’ll have to increase that somehow. Additionally, field centric control on the joystick works really well, so up on the joystick means up in real life relative to the start heading and regardless of the rotation of the robot. Things Left to Do on Hardware Add traction to the wheels Things Left to Do on Software Fix swerve kinematics for rotation
Done! 🎉 I finished making all the things for the github like the wiring diagram and demo video. Fixed all issues with field relative control, my original math was incorrect. Also one of the modules wasn’t rotating correctly but it turns out it was just the magnet came loose. Will be submitting to Outpost soon! Demo video link: https://www.youtube.com/watch?v=bPC4PA_9ZH0
Finally hardware projects are getting payout multipliers like software projects! Thus, I will be reshipping my project so that I can get multiplier. (Also opensauce was awesome sauce! Only real changes made to the project were encoder offsets and tuning things at opensauce because of reassembly at the venue. Also got into a rev reel!)
Ships:
3D printed coaxial swerve drive! This was heavily inspired by FRC swerves and it really fun to make. Designing and everything hardware related was honestly pretty easy, but wiring was a pain. Each brushless motor driver needed 3 pwm pins on the same hardware timer and on nucleos, some of the pins serve multiple uses, creating some problems for me. Also there were a lot of times that things that seemed like software issues were actually wiring issues, like when the adafruit motor shield stopped working because its i2c connection was tied to pins A4 and A5. Overall, this was the most technologically advanced project I have ever made, partly because I was using a new microcontroller (stm32 nucleo) but also because I had to understand the math involved in driving a swerve correctly. Not to mention I was also running 4 brushless motors and 4 separate PIDs. It was really fun to build and I would definitely do it again given the opportunity. Maybe even a differential swerve next time?
3D printed coaxial swerve drive! This was heavily inspired by FRC swerves and it really fun to make. Designing and everything hardware related was honestly pretty easy, but wiring was a pain. Each brushless motor driver needed 3 pwm pins on the same hardware timer and on nucleos, some of the pins serve multiple uses, creating some problems for me. Also there were a lot of times that things that seemed like software issues were actually wiring issues, like when the adafruit motor shield stopped working because its i2c connection was tied to pins A4 and A5. Overall, this was the most technologically advanced project I have ever made, partly because I was using a new microcontroller (stm32 nucleo) but also because I had to understand the math involved in driving a swerve correctly. Not to mention I was also running 4 brushless motors and 4 separate PIDs. It was really fun to build and I would definitely do it again given the opportunity. Maybe even a differential swerve next time? RESHIP FOR NEW HARDWARE MUTLIPLIER: Public video link is the video of project button....
|
1792990061.9122665
|
1793076461.9122665
|
|
57342
|
Hackadash by @Chicken502 | Stardance
|
Chicken502
|
1
|
13.0
|
86
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T14:32:11Z", "hours": 13.0, "multiplier": 6.35, "payout": 86, "blessing": "neutral", "text": "Hackadash is a CLI dashboard to display hackatime stats. This app is using data received from the official Hackatime dashboard, so all it needs is a API key, which the app can find automatically from your .wakatime.cfg file, or you can enter it manually. After setup is done, you can view your stats from hackatime! This project was a lot of fun to make, and I had a lot of things to learn to make this project come to life. I had no idea how to use a pyproject.toml file or what a .cfg file even was. I also had a lot of issues with the Textual formatting.", "repo": "https://github.com/Chiken502/Hackadash", "demo": "https://pypi.org/project/Hackadash/"}]...
|
[{"post_id": 70634, "ts": "202 [{"post_id": 70634, "ts": "2026-09-19T14:20:30Z", "hours": 0.7558, "text": "Final Touches Final Touches for Hackadash, including some formatting, an asciinema demo recording. Also just created a github release (although I don’t know if I did it right) but now everything is ready to ship! Edit: I just added the project to PyPI so go check it out at https://pypi.org/project/Hackadash/"}, {"post_id": 69301, "ts": "2026-09-16T19:26:57Z", "hours": 1.3056, "text": "Time Range Switching and README updates Got time switching in, so now you can see your total time for total, last 7 days or the current day. I also took some time today to add to the README file, including some new images and some better instructions on how to use the app, and what features there are. As I said in the last devlog, I only have one more feature I need to add before shipping ! Hopefully I can get that done in the next couple of days!"}, {"post_id": 68379, "ts": "2026-09-15T01:06:09Z", "hours": 1.8381, "text": "Styling! I’m just going to start off by saying I hate styling these boxes. Anyway, hackadash now shows top projects, and top languages, as well as total time in a big font. Everything is separated into related boxes. In the future I hope to make this a little bit more uniform, but other than that I have one more feature to add before this project is ready to ship!"}, {"post_id": 64506, "ts": "2026-09-08T23:14:03Z", "hours": 3.5275, "text": "API Calls Added in some data from the Hackatime API, using bearer auth. I ran into a lot of trouble getting the API’s to accept some data, as the API’s use different keywords for the current user. For example one use ‘current’ to indicate the current user by the API key, and one uses ‘my’. Once all that was working It was taking a bit to load the UI as the the http requests had to finish first, so I did a little research and found out about textual workers, that fixed the problem right up. All in all a lot got done today."}, {"post_id": 61559, "ts": "2026-09-04T15:15:31Z", "hours": 2.2225, "text": "Setup Functionality! Added functionality for the setup screen. It can now search for the wakatime.cfg file in your home directory, or you can input your api key manually. I then learned how to make a settings.cfg file to store everything in it. I also then made it so it changed the the new dashboard screen, which isn’t designed yet. Can’t wait to continue this project, but I also need to work on/finish my other project WordChains, this weekend."}, {"post_id": 61142, "ts": "2026-09-03T22:14:03Z", "hours": 2.07, "text": "Formatting & Creating Setup Screen I’m just going to say this should not have take as long as it did. Anyway I was working on creating the setup screen of my hackatime dashboard app using textual . When the app first opens this is the screen you will see. You can then either choose to use you wakatime config file, you manually entering your Hackatime API key, so later we can use it to fetch some stats to display on the dashboard. Where I ran into a lot of issues is the formating. Getting the text to go at the top of these boxes, and the buttons at the bottom, but still have everything centered in the boxes. In the end the solution was to use multiple containers under the hood to get everything into the right spot."}, {"post_id": 60584, "ts": "2026-09-03T01:10:59Z", "hours": 1.7764, "text": "Hackadash: Setting up basics Its my first time creating a project like this so there was a lot of research involed into pyproject.toml files and .gitignore files. I finally got some stuff working, and now I get to work on the fun stuff the app! I’m planning for this app to be a small dash board for Hacktime stats using Textual . So far I just have some place holder stuff in and no logic. I did do some drawings of what this might look like, but we will see how well I can bring them to life."}]...
|
Title: Hackadash by @Chicken502 | Stardance
Devlo Title: Hackadash by @Chicken502 | Stardance
Devlogs:
Hackadash: Setting up basics Its my first time creating a project like this so there was a lot of research involed into pyproject.toml files and .gitignore files. I finally got some stuff working, and now I get to work on the fun stuff the app! I’m planning for this app to be a small dash board for Hacktime stats using Textual . So far I just have some place holder stuff in and no logic. I did do some drawings of what this might look like, but we will see how well I can bring them to life.
Formatting & Creating Setup Screen I’m just going to say this should not have take as long as it did. Anyway I was working on creating the setup screen of my hackatime dashboard app using textual . When the app first opens this is the screen you will see. You can then either choose to use you wakatime config file, you manually entering your Hackatime API key, so later we can use it to fetch some stats to display on the dashboard. Where I ran into a lot of issues is the formating. Getting the text to go at the top of these boxes, and the buttons at the bottom, but still have everything centered in the boxes. In the end the solution was to use multiple containers under the hood to get everything into the right spot.
Setup Functionality! Added functionality for the setup screen. It can now search for the wakatime.cfg file in your home directory, or you can input your api key manually. I then learned how to make a settings.cfg file to store everything in it. I also then made it so it changed the the new dashboard screen, which isn’t designed yet. Can’t wait to continue this project, but I also need to work on/finish my other project WordChains, this weekend.
API Calls Added in some data from the Hackatime API, using bearer auth. I ran into a lot of trouble getting the API’s to accept some data, as the API’s use different keywords for the current user. For example one use ‘current’ to indicate the current user by the API key, and one uses ‘my’. Once all that was working It was taking a bit to load the UI as the the http requests had to finish first, so I did a little research and found out about textual workers, that fixed the problem right up. All in all a lot got done today.
Styling! I’m just going to start off by saying I hate styling these boxes. Anyway, hackadash now shows top projects, and top languages, as well as total time in a big font. Everything is separated into related boxes. In the future I hope to make this a little bit more uniform, but other than that I have one more feature to add before this project is ready to ship!
Time Range Switching and README updates Got time switching in, so now you can see your total time for total, last 7 days or the current day. I also took some time today to add to the README file, including some new images and some better instructions on how to use the app, and what features there are. As I said in the last devlog, I only have one more feature I need to add before shipping ! Hopefully I can get that done in the next couple of days!
Final Touches Final Touches for Hackadash, including some formatting, an asciinema demo recording. Also just created a github release (although I don’t know if I did it right) but now everything is ready to ship! Edit: I just added the project to PyPI so go check it out at https://pypi.org/project/Hackadash/
Ships:
Hackadash is a CLI dashboard to display hackatime stats. This app is using data received from the official Hackatime dashboard, so all it needs is a API key, which the app can find automatically from your .wakatime.cfg file, or you can enter it manually. After setup is done, you can view your stats from hackatime! This project was a lot of fun to make, and I had a lot of things to learn to make this project come to life. I had no idea how to use a pyproject.toml file or what a .cfg file even was. I also had a lot of issues with the Textual formatting....
|
1793004965.2284603
|
1793091365.2284603
|
|
25547
|
olivOS by @opu314 | Stardance
|
opu314
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T14:09:06Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What I Made 🐰: olivOS, a bunny-themed webOS that reflects my passions, interests, and life Features 😲: Topbar with live clock 🕐 Bottom bar with desktop icons to select on first click, and open on the second Draggable (click and hold on the Handle text), closable (click on Close), and overlapping windows (click 🖲 a window to bring it forward!) Easter Egg 🐣: text that changes colour when you hover over it! Try to find it 😄 Multiple Apps 🖥: Welcome: intro to olivOS About me: introduction about me! Blog 📝: entries about my experiences, with a sidebar for selection Fun Facts: random fun fact generator:) Find out more information by reading my project’s README, on github: https://github.com/OliviaSYS/olivOS !! Try My Project 👉: https://oliviasys.github.io/olivOS/ !! Challenges 🎢(this project was not as simple as I thought, but it was quite fun to build!): I’m not an expert at CSS and JS, so I sometimes made mistakes in my code, forcing me to do some debugging at the end of each programming session. I didn’t know that you had to have a “border-style” attribute in order for the borders to appear, so I spent a lot of time trying to fix this, until I decided to use the simpler “border” attribute and figured it out! variable names for js array confused with variable names for css id. some classes that I had at the beginning, when some js functions didn’t exist, were not removed afterwards after following the tutorial, I had to spend a lot of time cleaning up my code because I was not sure which parts to delete during the process:(. however, I read over my code slowly and realized that I didn’t need specific functions for each window, only the general one:))) finally, the guide had a lot of css styles embedded in html tags, so I found it a bit hard for me to follow it because I wanted different css. What I’m Proud of ✨: learning how to make a webOS after 8 hours of working hard and coding! 🎉 discovering how to load content programmatically making my own personal themes using CSS, as well as my personal fun fact generator app! :))) Credits: Hack Club JamHacks Tutorial!! Btw thank you StarDance and Hack Club for this amazing opportunity!", "repo": "https://github.com/OliviaSYS/olivOS", "demo": "https://oliviasys.github.io/olivOS/"}]...
|
[{"post_id": 70541, "ts": "202 [{"post_id": 70541, "ts": "2026-09-19T10:26:01Z", "hours": 0.595, "text": "Finished README.md! Read the image below or go directly to my project github: https://github.com/OliviaSYS/olivOS"}, {"post_id": 70513, "ts": "2026-09-19T09:36:53Z", "hours": 2.8794, "text": "Major Updates: Added a blog (following the “Create Your First App” part of the JamHacks WebOS guide) ~ added some css transitions for the left sidebar for personalization! Hoping to add a posting feature in the future:) Created a div for the bottom bar, to store all the desktop app icons! Minor Updates: Again, changed/added a LOT of css! Ex. my “generate a fun fact” button, borders (initially, i had all the border-weight, border-style, border-color attributes separate, but i combined them into one border attribute to make my code cleaner!) topbar colours/margins/padding webOS wallpaper and lots of font-size/color for text! Debugging: too many to list! involved the wrong css in script.js: confusion between my array blogContent and my variable blogContent for query selecting “#blogContent” (now changed to blogcontent to prevent this error). This caused the “handle” of my blog window to break:((( Anyways, olivOS should be completed or WebOS 1! Gonna ship soon:)))"}, {"post_id": 69969, "ts": "2026-09-18T04:30:51Z", "hours": 1.5267, "text": "Finally, I decided to add some (kind of random) css in order to make sure my code worked. For example, I added padding, position, colors, and align indicators to various elements. An issue I struggled with was: —–flex-direction: column, which was supposed to be the case for my windows, but I discovered that I had a duplicate: —–.window { —––flex-direction: row; —–} which was my bug! I realized that there was a significant number of bugs in my code - i put the —–“selected” class manually when i wasn’t supposed to, i forgot a dot/period before —–”/images…” and i also had —–dragElement(element.id) instead of —–dragElement(screen). Now, my handle actually works, and it flashes turquoise when it is selected!"}, {"post_id": 69471, "ts": "2026-09-17T03:57:38Z", "hours": 0.9003, "text": "I added a fun facts window as my first personalized/advanced app! This used the normal style of a fun fact generator - a button and text. When I customize all my css, I’m hoping to add a border for the fun fact container in order for the size to be constant. Btw, I previously had all my fun facts in an html list, but then in order for it to be a random generator, I moved the strings to a javascript array and had to make sure my code wasn’t (displayfunfact is an id): —–displayfunfact.textContent, but: —–displayfunfact.innerHTML. That way my and tags would work! In the end, this worked out well:)"}, {"post_id": 68962, "ts": "2026-09-16T03:49:42Z", "hours": 0.5867, "text": "After following the guide, I realized that I had many bugs inside my code-it was really disorganized! I took some time to fix it by putting all of the app icons inside a “#desktopapps” div, as well as the windows inside “#windows”. In addition, I fixed some of my js, which originally had specific open and close operations for my “welcome window”. However, I now generalized those functions for all types of windows instead. <:~:> now it works a lot better! :))"}, {"post_id": 68499, "ts": "2026-09-15T07:06:16Z", "hours": 1.3689, "text": "Completed Pt.I, II, and III of the guide! However, I didn’t really focus on the aesthetics (css) aspect of my WebOS; instead writing mostly HTML and some JS for closing and opening windows, and also the clock, which you can see in the top right corner. I’m finally starting this project:)"}]...
|
Title: olivOS by @opu314 | Stardance
Devlogs:
Com Title: olivOS by @opu314 | Stardance
Devlogs:
Completed Pt.I, II, and III of the guide! However, I didn’t really focus on the aesthetics (css) aspect of my WebOS; instead writing mostly HTML and some JS for closing and opening windows, and also the clock, which you can see in the top right corner. I’m finally starting this project:)
After following the guide, I realized that I had many bugs inside my code-it was really disorganized! I took some time to fix it by putting all of the app icons inside a “#desktopapps” div, as well as the windows inside “#windows”. In addition, I fixed some of my js, which originally had specific open and close operations for my “welcome window”. However, I now generalized those functions for all types of windows instead. <:~:> now it works a lot better! :))
I added a fun facts window as my first personalized/advanced app! This used the normal style of a fun fact generator - a button and text. When I customize all my css, I’m hoping to add a border for the fun fact container in order for the size to be constant. Btw, I previously had all my fun facts in an html list, but then in order for it to be a random generator, I moved the strings to a javascript array and had to make sure my code wasn’t (displayfunfact is an id): —–displayfunfact.textContent, but: —–displayfunfact.innerHTML. That way my and tags would work! In the end, this worked out well:)
Finally, I decided to add some (kind of random) css in order to make sure my code worked. For example, I added padding, position, colors, and align indicators to various elements. An issue I struggled with was: —–flex-direction: column, which was supposed to be the case for my windows, but I discovered that I had a duplicate: —–.window { —––flex-direction: row; —–} which was my bug! I realized that there was a significant number of bugs in my code - i put the —–“selected” class manually when i wasn’t supposed to, i forgot a dot/period before —–”/images…” and i also had —–dragElement(element.id) instead of —–dragElement(screen). Now, my handle actually works, and it flashes turquoise when it is selected!
Major Updates: Added a blog (following the “Create Your First App” part of the JamHacks WebOS guide) ~ added some css transitions for the left sidebar for personalization! Hoping to add a posting feature in the future:) Created a div for the bottom bar, to store all the desktop app icons! Minor Updates: Again, changed/added a LOT of css! Ex. my “generate a fun fact” button, borders (initially, i had all the border-weight, border-style, border-color attributes separate, but i combined them into one border attribute to make my code cleaner!) topbar colours/margins/padding webOS wallpaper and lots of font-size/color for text! Debugging: too many to list! involved the wrong css in script.js: confusion between my array blogContent and my variable blogContent for query selecting “#blogContent” (now changed to blogcontent to prevent this error). This caused the “handle” of my blog window to break:((( Anyways, olivOS should be completed or WebOS 1! Gonna ship soon:)))
Finished README.md! Read the image below or go directly to my project github: https://github.com/OliviaSYS/olivOS
Ships:
What I Made 🐰: olivOS, a bunny-themed webOS that reflects my passions, interests, and life Features 😲: Topbar with live clock 🕐 Bottom bar with desktop icons to select on first click, and open on the second Draggable (click and hold on the Handle text), closable (click on Close), and overlapping windows (click 🖲 a window to bring it forward!) Easter Egg 🐣: text that changes colour when you hover over it! Try to find it 😄 Multiple Apps 🖥: Welcome: intro to olivOS About me: introduction about me! Blog 📝: entries about my experiences, with a sidebar for selection Fun Facts: random fun fact generator:) Find out more information by reading my project’s README, on github: https://github.com/OliviaSYS/olivOS !! Try My Project 👉: https://oliviasys.github.io/olivOS/ !! Challenges 🎢(this project was not as simple as I thought, but it was quite fun to build!): I’m not an expert at CSS and JS, so I sometimes made mistakes in my code, forcing me to do some debugging at the end of each programming session. I didn’t know that you had to have a “border-style” attribute in order for the borders to appear, so I spent a lot of time trying to fix this, until I decided to use the simpler “border” attribute and figured it out! variable names for js array confused with variable names for css id. some classes that I had at the beginning, when some js functions didn’t exist, were not removed afterwards after following the tutorial, I had to spend a lot of time cleaning up my code because I was not sure which parts to delete during the process:(. however, I read over my code slowly and realized that I didn’t need specific functions for each window, only the general one:))) finally, the guide had a lot of css styles embedded in html tags, so I found it a bit hard for me to follow it because I wanted different css. What I’m Proud of ✨: learning how to make a webOS after 8 hours of working hard and coding! 🎉 discovering how to load content programmatically making my own personal themes using CSS, as well as my personal fun fact generator app! :))) Credits: Hack Club JamHacks Tutorial!! Btw thank you StarDance and Hack Club for this amazing opportunity!...
|
1793051670.75659
|
1793138070.75659
|
|
34953
|
Ultimate Mob Farms by @OffsetMonkey538 | Stardance
|
OffsetMonkey538
|
1
|
144.43
|
2678
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T13:59:43Z", "hours": 125.0, "multiplier": 18.99, "payout": 2678, "blessing": "neutral", "text": "This is a Minecraft mod for making mob farms, something similar to for example Mob Grinding Utils. It features item and xp collection, entity movement, spawner relocation and crafting, single block mob farms and some other stuff. Honestly, I’m quite proud just over the fact that I finally did finish this project (or at least got it to the point of being comfortable releasing it publically) and it’s hard to choose any specific features, but here I go… I do really like how the particle effects for the soul fan turned out, they’re quite satisfying imo. This is kind of unrelated to the mod, but I’m also proud of having helped out with the development of RRV, the recipe viewer mod I added compat with. While adding support for it in this mod, I noticed some bugs and crashes and stuff, which I PRed fixes for. It’s a bigger project with many complex things, so coming up with a list of all the things I found hard or took a lot of time and explaining all of them would probably go over whatever character limit this text box has lol. One thing that was a big PITA was the compact mob farm inventory. The original implementation I wrote was just… completely wrong, so I had to rewrite it. Then later I realized I overlooked like the most important part of the item transfer api (transactions, which are used for rolling back changes and stuff) so I had to rewrite it again, and then after that I rewrote quite a bit of it one more time because, after the last rewrite, I had accidentally made it possible for other blocks to insert into the inventory, which isn’t something I wanted as that seems quite OP. Another thing that comes to mind is figuring out the code for the soul fan’s range based on upgrades and strength at a given distance. The problem was that the coordinate you have to increase/decrease depends on the orientation of the block, so as an example, the depth upgrade would need to increase the Y pos when the block is placed pointing up and decrease it when pointing down, the X pos when facing north/south and the Z pos when facing east/west. For pushing the entities, I had to find the coordinates of the middle of the face the block is pointing, and add/subtract the correct coordinate to get the range in the depth direction, and then find the distance between each entity currently in range and the fan in just that plane for calculating the strength. For people testing out the project, I definitely do recommend also installing the Reliable Recipe Viewer (RRV) and Item Description mods", "repo": "https://git.offsetmonkey538.top/OffsetMods538/Ultimate-Mob-Farms", "demo": "https://modrinth.com/mod/ultimate-mob-farms"}]...
|
[{"post_id": 82652, "ts": "202 [{"post_id": 82652, "ts": "2026-10-25T15:00:05Z", "hours": 5.1919, "text": "Set up empty pages for all the blocks and items, fought quite a bit with astro/typescript to get the PageTitle override to correctly display the icons. Turns out astro’s optimized Image stuff doesn’t support animated images, no matter how much you try to force it to, so I ended up having to use the basic img tag"}, {"post_id": 80728, "ts": "2026-10-18T17:03:06Z", "hours": 1.5967, "text": "Started working on setting up a docs page for the mod. Mainly want it for explaining the data driven configuration, but having full pages to give more detailed explanations of the different features is also probably a nice touch. Made a new icon for the mod as well, it’s pretty much the same but higher res because the 256x256 one looked weird on the docs page. The docs are done using Starlight like all my other docs pages (see those here ) and lives at https://ultimate-mob-farms.docs.cursedmods.com/ and on the docs/master branch in the repo Currently it’s just the landing page, but it’ll have more stuff soon enough"}, {"post_id": 79375, "ts": "2026-10-13T18:29:39Z", "hours": 3.9611, "text": "Added an RRV screen showing what items can be acquired from the Compact Mob Farm. Shows the entity, the items it drops and the required tier upgrade level. Hoping this also helps with confusion on how stuff works"}, {"post_id": 76204, "ts": "2026-10-02T17:34:45Z", "hours": 2.1567, "text": "Added a progress bar to the Compact Mob Farm GUI that hopefully makes it much easier to understand when it’ll damage the entity and it doesn’t look like it’s just doing nothing lol, especially with the 30 second default time"}, {"post_id": 75664, "ts": "2026-09-30T17:54:02Z", "hours": 6.5264, "text": "Waow that’s quite a bit of stardust 😅 Quite happy with this project and the ratings it got on the first ship :D (except the one that accused my devlogs of being written by ai… My writing is not that bad, right? ) I noticed in the shipwrights’ review video that how upgrades work is not very obvious, they were trying to put a tier upgrade into a soul fan, which only accepts width, height and depth upgrades. It was mentioned in ratings that stuff is a bit hard to figure out in the beginning as well. So to fix that, I added some silhouettes of the supported upgrades shown in the slots and also a hover tooltip saying what’s supported. Oh and i’ve also added 26.3 support now"}, {"post_id": 70575, "ts": "2026-09-19T11:52:49Z", "hours": 7.4719, "text": "School starting with september really hit my productivity on this mod like a truck I am realizing the deadline for stardance is getting real close, so I think this is probably the point where I’ll have to ship it. There are still some TODOs in the code and bugs that need to be squashed and porting to 26.3 (which released like this week, thanks mojang ) and so I haven’t been comfortable marking the latest release as 1.0.0 yet or making announcements elsewhere, but the mod is now perfectly usable and I like where it is. Changes since last devblog: 26.2 support Injecting some items into vanilla loot chests Advancements 26.2 wasn’t actually as painful as I thought it’d be, which was a nice surprise. Adding advancements was a bit more of a pain with 26.2 support though as I needed custom criteria for some of the advancements (one for putting a soul gem in the compact mob farm and another for using a soul gem on a spawner) and Mojang, in their infinite wisdom, decided to move a bunch of advancement stuff around in 26.2."}, {"post_id": 62252, "ts": "2026-09-05T15:04:19Z", "hours": 6.3956, "text": "Getting closer and closer to the actual release… could this be the last devblog before that? Still not quite 100% about if the required kills for each mob are balanced, but it’s probably good enough. Definitely better than everything being 10 kills tho. Felt very off-balance when withers, which are hard to spawn and hard to kill, and pigs, which are just everywhere, required the same amount of kills to capture. Notable changes: Show soul capturing recipe in rrv when checking usages of spawn eggs Show tooltip with entity name when hovering entity in soul capturing rrv recipe Add item descriptions Fix being able to insert items into the compact mob farm inventory Make amount of kills required for capturing an entity different per entity. Update compact mob farm recipe (now uses soul spikes in the middle instead of stone bricks) Store soul gem colors as hex strings in entity tiers config. Much more understandable and easier to manually change the overrides config or whatever Make built-in packs use the mod icon using a mixin instead of copying the icon into the packs. This shaves like 80kb off the final jar which is quite a bit of unnecessary duplicate crap Remove some log spam that was for debugging"}, {"post_id": 59802, "ts": "2026-09-01T19:04:17Z", "hours": 2.5989, "text": "checking the recipe for a specific soul gem now only shows that specific entity instead of all soul capturing recipes soul capturing recipe now shows up before the duplication recipe soul gems can now be searched by the name of the entity they contain fix compact mob farm gui not rendering vanilla background overlay allow filling soul gem when held in the main hand fix dedicated server crashing Running in a dedicated server would crash because there are quite a few places where I referenced client-only classes in places that the jvm will load on the dedicated server as well. Mostly in the different block entity classes, where I had a clientTick method that had ClientLevel as one of it’s parameters. Even though that method would never get called on the dedicated server, java still wants it to exist when loading the class because it’s part of a method’s definition. My current solution is very very awful… I moved those things into methods in the client initializer and… well… yeah… it just looks and is awful: https://git.offsetmonkey538.top/OffsetMods538/Ultimate-Mob-Farms/src/commit/0.0.7/modded/src/main/java/top/offsetmonkey538/ultimatemobfarms/modded/UltimateMobFarmsModdedClient.java#L65 The real, foolproof solution would be using the split sources feature of loom, which creates a second source set and makes the main source set unable to access client classes. Only problem is that it’d be a bit annoying to fully get set up in my multiloader-version gradle system and would most definitely need many changes on MonkeyLib538 as well and I just am not up for doing that atm."}, {"post_id": 58874, "ts": "2026-08-31T13:27:24Z", "hours": 8.6083, "text": "Fixed compact mob farm inventory not working correctly and being incompatible with other mods’ item movement stuff. The whole point of the transfer API on both fabric and neoforge is the transaction system, where each change must store a snapshot that can be returned to if needed; Turns out ignoring the TransactionContext and not saving any snapshots is a bad idea 😅 I’ve tested and it’s compatible with create fly (see screenshot where a compact mob farm with a blaze is being used to feed a blaze burner for a steam engine) and most probably other mods as well. Added Reliable Recipe Viewer integration that explains soul capturing"}, {"post_id": 54946, "ts": "2026-08-26T11:20:57Z", "hours": 7.2406, "text": "Bunch of refactoring, bug fixes, balancing, etc. Release notes can be seen on the forgejo release or on modrinth, I’m not gonna copy paste em here (this is version 0.0.5 right now) It is now actually reviewed on Modrinth, took two weeks for that to happen (Gosh I remember when review times were like less than 24 hours ). I’m still keeping it unlisted until I get a 1.0.0 release out, but if anyone wants to check it out and share feedback or anything, then it’s right over here: https://modrinth.com/mod/ultimate-mob-farms Before a v1, I still need better rrv and item descriptions integration, some more balancing changes, advancements, quite a few bugfixes and probably some other stuff I’m forgetting at the moment."}, {"post_id": 50153, "ts": "2026-08-19T08:08:41Z", "hours": 2.3531, "text": "Made soul fans placed at different locations use a different starting frame offset, so they don’t all look the same (see before and after videos). The way this is implemented is a bit interesting… There’s no easy “use this model but offset any texture’s animation by 1 frame” as afaik the frame index is global per texture. What Minecraft does allow is each block state variant actually being an array of variants that the game will choose between using afaik a hash derived from the block position. This is used in vanilla for things like stone and deepslate, which have mirrored and rotated variants so caves look less repetitive or whatever. As each texture has a global frame index, I am duplicating the soul fan texture and just changing the order of the frames in the accompanying animation metadata file and creating separate models which point to the different textures and then those models are used as variants in the blockstate. What’s even more fun is I am using datagen for duplicating the texture and creating the animation metadata files, which definitely isn’t concerning at all. This also required me to make a pull request to fabric api because the FabricCodecDataProvider assumes all files it generates are .json files, but animation metadata is .mcmeta. (The PR isn’t yet merged so I resorted to…. injecting a mixin into fabric api, definitely not cursed at all I swear)"}, {"post_id": 49673, "ts": "2026-08-18T15:46:30Z", "hours": 4.43, "text": "Added particle effects for soul fan. Figuring out where to spawn em was quite fun actually, though I did have to add a custom particle (reuses the vanilla “small gust” texture) because turns out most particles won’t obey the velocity you give them and just do their own thing, which was a bit annoying."}, {"post_id": 49138, "ts": "2026-08-17T19:28:11Z", "hours": 3.7422, "text": "Added range upgrades for the fan and collector blocks. It was a bit challenging figuring out actually extending the bounding box in the correct directions based on the block is facing, but I did get it working"}, {"post_id": 48767, "ts": "2026-08-17T09:17:16Z", "hours": 4.6397, "text": "Implemented functionality of the soul fan, getting the strength to scale based on distance was a bit of a pain cause i needed to get the position of the center of the face that the fan’s pointing in and only calculate the distance to the entity based on the correct axis cause otherwise giving it a larger range would make the farther to the side entities get pushed less and uhh yeah, took quite a bit of experimenting with stuff to get it to work correctly"}, {"post_id": 47706, "ts": "2026-08-15T19:55:20Z", "hours": 0.9575, "text": "Spent the last hour and a half faffing about with my loader abstraction in monkeylib (stardance only recorded an hour cause that’s technically a separate project) for creative tabs. All that just cause I really wanted the RRV stack group for the filled soul gems to show up next to the empty soul gem, instead of at the end of the list where it did previously"}, {"post_id": 47530, "ts": "2026-08-15T14:35:38Z", "hours": 3.0928, "text": "Spent a bunch of time on cleaning up some code and abstracting some things out of collector block classes to make it easier to add functionality of the soul fan later on, speaking of which! the soul fan is a block that exists in game now"}, {"post_id": 46880, "ts": "2026-08-14T12:46:12Z", "hours": 0.2881, "text": "Spent some time thinking about what I’m gonna do for the block that moves mobs around. I think I’ve decided on going with a basic “fan” type block and now started working on what it could look like. I’m imagining the souls kinda like escaping from the soul sand and also particles spawning and moving in the direction it’s pushing. As always I’m pretty bad at drawing textures, so the beginning here looks a bit crude, but it’s definitely a start. It’d be really nice if aseprite had a wakatime plugin…"}, {"post_id": 46845, "ts": "2026-08-14T11:27:58Z", "hours": 3.8683, "text": "Added the experience collector block, which obviously picks up xp orbs and turns em into bottles of enchanting. Kind of got so focused I forgot about making more detailed devlogs 😅"}, {"post_id": 46238, "ts": "2026-08-13T10:39:10Z", "hours": 3.695, "text": "Made the soul spikes actually deal extra fall damage when fell on. Current fall damage multiplier is at 5, not sure if that is too much or too little. The damage is done by a FakePlayer, so the mob will also drop loot that only drops from player kills, including experience orbs. (Seems like I need to add an XP Collector block in the future to deal with those). Oh and also did some boilerplate-ish things to soul spikes like adding a recipe, translation, etc Turns out minecraft decides that the block you fall on is the one that’s 0.2 blocks below you…. The model of the soul spikes (which i don’t really wanna change anymore) has the base at 3 pixels high, which makes it… 0.1875 block high 😮💨 Nothing that can’t be solved with a mixin to Entity#getOnPosLegacy that changes the BlockPos it returns if the the block above the “correct” block is soul spikes"}, {"post_id": 45189, "ts": "2026-08-11T14:44:28Z", "hours": 0.2731, "text": "Made an okay-ish texture for the soul spikes block (many of em at once looks kinda noisy but oh well, it’ll do. Hopefully it’ll be locked up in a farm killing chamber room anyway). Had to change the UV mapping again because for whatever reasons, minecraft decides to render a sliver of the neighboring pixel as well which looks super bad with two very contrasty colors next to each other. Solution was to move the blue parts to the bottom of the texture where there was room to have it separated by a row of blank pixels."}, {"post_id": 45107, "ts": "2026-08-11T11:51:36Z", "hours": 0.7186, "text": "Finished UV mapping the spikes…. this literally took like over an hour haha, sadly time spent in blockbench doesn’t count as it doesn’t have a plugin for wakatime or whatever :/ (the 43min this devlog logs was actually setting up oxipng to automatically run on every commit to optimize the png files) Next i guess will be to make an actual texture for it, yay. Here’s the super very interesting texture that currently just has all the different mapped sides in different colors"}, {"post_id": 44754, "ts": "2026-08-10T18:48:32Z", "hours": 2.0067, "text": "Started working on the soul spikes. First made a model for it, not sure if it’ll look good once I make a texture for the actual spikes part of it as well"}, {"post_id": 41521, "ts": "2026-08-05T19:39:30Z", "hours": 1.7181, "text": "Been doing some boring things like writing a description and making an icon and some miscellaneous fixes and whatnot as I actually think I want to get this in a state where I could send it in for review on modrinth. Otherwise if I sent it in once I was actually finished with the project, it probably wouldn’t get reviewed before stardance ends and then i’d have to tell people to download the mod from my git releases and that wouldn’t automatically tell em where to get dependencies and whatnot so yeah, want to get it in the queue asap. Here’s the icon I came up with btw"}, {"post_id": 40668, "ts": "2026-08-04T11:02:42Z", "hours": 2.4575, "text": "Added a texture and recipe to item collector, made it possible to disable it using redstone, made the sample collector only pick up items every 10 ticks."}, {"post_id": 39730, "ts": "2026-08-02T21:36:20Z", "hours": 1.855, "text": "Shift-right-clicking an item collector with an empty hand now shows its range. Drawing lines of particles between the correct corners for the outline took a bit of trial and error, also added a screenshot where it doesn’t look quite correct Also I’m not sure if the video from the previous devlog got uploaded correctly (my browser at least isn’t able to play it) so here it is again"}, {"post_id": 39564, "ts": "2026-08-02T16:40:59Z", "hours": 2.9042, "text": "Made item collector spawn a line of particles when picking up items Oh and also added compatibility to item collector with container blocks from other mods that use the fabric or neoforge transfer api instead of vanilla containers, more loader specific stuff, yay!"}, {"post_id": 38906, "ts": "2026-08-01T14:21:22Z", "hours": 1.0933, "text": "Implemented basic functionality of the item collector. Currently has a range of 2 blocks that it will pick things up from and put em straight into a connected inventory"}, {"post_id": 38761, "ts": "2026-08-01T10:08:52Z", "hours": 3.6756, "text": "Started work on adding the item collector, currently just got done with adding the block itself with some boilerplate stuff and a model. As the name suggests, it’ll be for picking up items in some range of it. Not quite sure if I want it to be a range all around the block, or maybe going outwards from the direction it’s facing? Also not yet quite sure if I want it to just put stuff into an internal inventory and require a hopper or something modded to pull out of it, or if it should act like a hopper pushing things out from the side it’s attached on"}, {"post_id": 37603, "ts": "2026-07-30T13:35:05Z", "hours": 1.1933, "text": "Received new textures and spent some time messing around in the mcmeta file for the animation timing. Looks quite good now. Also made the empty soul gem use the same texture, just with a soul light blue colors."}, {"post_id": 37190, "ts": "2026-07-29T18:31:37Z", "hours": 5.0456, "text": "Past while has been spent on fighting with gradle to extend my overly complicated setup ( monkeylogic, my gradle convention plugin ) and make it even more complicated allow adding dependencies from modrinth to projects. After that I could easily add RRV (Reliable Recipe Viewer) as a dependency and now lastly add integration with it. Currently I’ve got integration to the point of showing the custom duplication recipe, which is great"}, {"post_id": 35160, "ts": "2026-07-26T12:28:59Z", "hours": 2.7197, "text": "Finally fixed the soul gem duplication recipe, which was a bit of a pain to deal with… I initially went down a dumb rabbit hole of overcomplicating the matcher system when turns out having multiple of the same item in the recipe can easily be solved by storing a count for each ingredient instead of having multiple entries for them 😝"}, {"post_id": 34287, "ts": "2026-07-24T21:18:42Z", "hours": 2.5044, "text": "Made spawners craftable, made interacting with spawners using a filled soul gem set the entity in the spawner. Still not quite sure what to call the “filled” soul gem. One idea i had was to call it just a soul gem and call the not filled one an “Empty Soul Gem”, which is honestly a pretty good idea, but I’m not sure what to do when it’s in the process of being filled. Technically at that point it’s not empty , but maybe it’d be fine to call it that"}, {"post_id": 32839, "ts": "2026-07-22T07:47:33Z", "hours": 3.5317, "text": "Lots of fun stuff between this and the last devlog: Creative tab for filled soul gems now only contains supported ones (had to make creative tabs refresh when data is reloaded cause datapacks can change what’s supported) Removed the old SampleTakerItem and FilledSampleTakerItem classes and moved most logic to custom components or mixins. Soul gems can be filled by holding them in the off hand when killing the target entity ( https://imgur.com/a/Lz6PjZs ) Some optimizations"}, {"post_id": 32407, "ts": "2026-07-21T16:00:26Z", "hours": 1.9203, "text": "Optimized the EntityTiers lookup (which I mentioned I messed up last devlog) by using a map instead of a list, and it’s also now storing a reference to the Identifier instead of EntityType, so there’s less work converting between them for the packet codec (has to be sent as an Identifier (or, well, string) over the network) and also when doing some of the lookups (like from the tint provider, which has just the id by itself) Not sure what to put as the screenshot it requires me to add…. I guess have some prototypes of the new soul gem texture a person’s working on (the final shape will probably not be a perfectly round pearl)"}, {"post_id": 32271, "ts": "2026-07-21T10:39:38Z", "hours": 3.1261, "text": "Made “filled” soul gems have colors based on the entity they contain! (and also switched to a different (and probably even worse lmao) texture) The colors are the same as what spawn eggs used to have, thankfully the minecraft wiki has a list of what they all were before that was removed. Sadly I can’t steal the entity colors from vanilla anymore as that was removed in 1.21.5, so I had to add color fields to the entity tiers config and that messed with a lot of stuff and is a bit of a hit on performance when it’s not looping over stuff in weird ways as it’s a list of entries when it really should probably be a map… I’ll fix that i guess Also I know this texture is ass and someone a bit more talented in drawing is cooking up a new one which I’ll probably be able to show off in a few days. Question is… do I want the current one to show up when the vanilla programmer art pack is enabled or is that too embarrassing to show off?"}, {"post_id": 31810, "ts": "2026-07-20T14:25:41Z", "hours": 0.9456, "text": "Added recipes, translations, etc for soul essence and gem, removed spirit bottle, added recipe for spawner, made spawners drop with silk touch. Thanks to neoforge there have to be separate mixins for fabric and neo for disabling the xp drop when a spawner is broken with silk touch (would lead to infinite xp otherwise lol)…. if only neoforge was just fabric"}, {"post_id": 31751, "ts": "2026-07-20T12:04:50Z", "hours": 1.2917, "text": "Made soul essence drop from mobs killed on soul sand/soil. Also spawns fun particles! https://imgur.com/a/Qt5XxUI"}, {"post_id": 31695, "ts": "2026-07-20T09:44:19Z", "hours": 0.3378, "text": "So I’ve been doing some brainstorming and writing things down on paper (like a caveman) and have at least redesigned some of the features that already exist. Instead of a bottle of spirits that you get by right clicking a spawner, there’s going to be Soul Essence that you get by killing a mob while they’re standing on soul sand/soil. Instead of the Sample taker, there’s gonna be a soul gem crafted from a diamond and 4 soul essence that will be filled by holding it in your offhand while killing x amount of the target mob. Also thought of some recipes that I’m not gonna explain here rn. Sadly (or thankfully) I haven’t found a wakatime plugin for Aseprite, so nobody will know just how many hours I spent on the absolute trash textures I made for the soul gem and soul essence (I promise they’ll be better at some point maybe idk if I can do any better 😭 ). Soul essence just looks off somehow, and the soul gem looks like a duck spawn egg 😭 😭 😭 😭"}, {"post_id": 31122, "ts": "2026-07-19T08:32:28Z", "hours": 6.5108, "text": "It is now working on NeoForge as well! Getting the inventory to work with the neoforge transfer api was a bit of a pain, but I managed to get it to work! (Don’t mind the debug upgrades in the screenshot, they make it easier to test but dont have textures) Next up is uhh… some brainstorming and rethinking how the whole mod works and thinking about what’s in scope for this and what’s not: One thing I definitely want to add is a crafting recipe for spawners and making the sample takers (which will probably be renamed to something relating to souls and gems) usable as spawn eggs on spawners. I’m not quite sure if upgradeable spawners should be a part of this though as there’s already apotheosis for neoforge (and a port in the works for fabric) that does that and probably other mods as well. I also really wanted to add things for moving and killing mobs in the world, for which there are also already mods like Dark Utilities (got quite inspired by that) which afaik also is updated to the latest version and is for both fabric and neoforge…. Though it seems to have more random things unrelated to mob farming, and maybe it’d be fine if I really differentiate from it and other similar mods with the theme of this? Yeahhh this’ll need quite a bit more thinking."}, {"post_id": 28545, "ts": "2026-07-14T21:20:48Z", "hours": 2.0633, "text": "Finished getting everything out of :loader:fabric and into :modded that makes sense to move. The fabric subproject now only has 4 files, two of which are just the entrypoints that invoke the common initializer and the other two are using fabric api specific things and can’t be moved out without a lot of headache!"}, {"post_id": 28177, "ts": "2026-07-14T09:44:23Z", "hours": 0.2531, "text": "(the 15m were spent working on getting MenuProvider stuff out from fabric specific code and into the common modded subproject, butttt I’m making a post cause I wanna share…) Some funny screenshots from when I was porting from 1.21.1 to 26.1 (rendering changes here are a pain lol)"}, {"post_id": 28170, "ts": "2026-07-14T09:24:59Z", "hours": 17.9675, "text": "Just realized this is probably something I could submit to stardance as well 😅 Basically the initial idea was to have a mob farm contained in a single block. You craft a sample taker and have to click on 10 separate instances of an entity to get a filled sample of that entity. Then you put that into a Compact Mob Farm, turn it on, maybe give it some upgrades and a sword, and it’ll start farming the drops of the entity you took samples of. Here are some screenshots of what stuff looks like"}]...
|
Title: Ultimate Mob Farms by @OffsetMonkey538 | St Title: Ultimate Mob Farms by @OffsetMonkey538 | Stardance
Devlogs:
Just realized this is probably something I could submit to stardance as well 😅 Basically the initial idea was to have a mob farm contained in a single block. You craft a sample taker and have to click on 10 separate instances of an entity to get a filled sample of that entity. Then you put that into a Compact Mob Farm, turn it on, maybe give it some upgrades and a sword, and it’ll start farming the drops of the entity you took samples of. Here are some screenshots of what stuff looks like
(the 15m were spent working on getting MenuProvider stuff out from fabric specific code and into the common modded subproject, butttt I’m making a post cause I wanna share…) Some funny screenshots from when I was porting from 1.21.1 to 26.1 (rendering changes here are a pain lol)
Finished getting everything out of :loader:fabric and into :modded that makes sense to move. The fabric subproject now only has 4 files, two of which are just the entrypoints that invoke the common initializer and the other two are using fabric api specific things and can’t be moved out without a lot of headache!
It is now working on NeoForge as well! Getting the inventory to work with the neoforge transfer api was a bit of a pain, but I managed to get it to work! (Don’t mind the debug upgrades in the screenshot, they make it easier to test but dont have textures) Next up is uhh… some brainstorming and rethinking how the whole mod works and thinking about what’s in scope for this and what’s not: One thing I definitely want to add is a crafting recipe for spawners and making the sample takers (which will probably be renamed to something relating to souls and gems) usable as spawn eggs on spawners. I’m not quite sure if upgradeable spawners should be a part of this though as there’s already apotheosis for neoforge (and a port in the works for fabric) that does that and probably other mods as well. I also really wanted to add things for moving and killing mobs in the world, for which there are also already mods like Dark Utilities (got quite inspired by that) which afaik also is updated to the latest version and is for both fabric and neoforge…. Though it seems to have more random things unrelated to mob farming, and maybe it’d be fine if I really differentiate from it and other similar mods with the theme of this? Yeahhh this’ll need quite a bit more thinking.
So I’ve been doing some brainstorming and writing things down on paper (like a caveman) and have at least redesigned some of the features that already exist. Instead of a bottle of spirits that you get by right clicking a spawner, there’s going to be Soul Essence that you get by killing a mob while they’re standing on soul sand/soil. Instead of the Sample taker, there’s gonna be a soul gem crafted from a diamond and 4 soul essence that will be filled by holding it in your offhand while killing x amount of the target mob. Also thought of some recipes that I’m not gonna explain here rn. Sadly (or thankfully) I haven’t found a wakatime plugin for Aseprite, so nobody will know just how many hours I spent on the absolute trash textures I made for the soul gem and soul essence (I promise they’ll be better at some point maybe idk if I can do any better 😭 ). Soul essence just looks off somehow, and the soul gem looks like a duck spawn egg 😭 😭 😭 😭
Made soul essence drop from mobs killed on soul sand/soil. Also spawns fun particles! https://imgur.com/a/Qt5XxUI
Added recipes, translations, etc for soul essence and gem, removed spirit bottle, added recipe for spawner, made spawners drop with silk touch. Thanks to neoforge there have to be separate mixins for fabric and neo for disabling the xp drop when a spawner is broken with silk touch (would lead to infinite xp otherwise lol)…. if only neoforge was just fabric
Made “filled” soul gems have colors based on the entity they contain! (and also switched to a different (and probably even worse lmao) texture) The colors are the same as what spawn eggs used to have, thankfully the minecraft wiki has a list of what they all were before that was removed. Sadly I can’t steal the entity colors from vanilla anymore as that was removed in 1.21.5, so I had to add color fields to the entity tiers config and that messed with a lot of stuff and is a bit of a hit on performance when it’s not looping over stuff in weird ways as it’s a list of entries when it really should probably be a map… I’ll fix that i guess Also I know this texture is ass and someone a bit more talented in drawing is cooking up a new one which I’ll probably be able to show off in a few days. Question is… do I want the current one to show up when the vanilla programmer art pack is enabled or is that too embarrassing to show off?
Optimized the EntityTiers lookup (which I mentioned I messed up last devlog) by using a map instead of a list, and it’s also now storing a reference to the Identifier instead of EntityType, so there’s less work converting between them for the packet codec (has to be sent as an Identifier (or, well, string) over the network) and also when doing some of the lookups (like from the tint provider, which has just the id by itself) Not sure what to put as the screenshot it requires me to add…. I guess have some prototypes of the new soul gem texture a person’s working on (the final shape will probably not be a perfectly round pearl)
Lots of fun stuff between this and the last devlog: Creative tab for filled soul gems now only contains supported ones (had to make creative tabs refresh when data is reloaded cause datapacks can change what’s supported) Removed the old SampleTakerItem and FilledSampleTakerItem classes and moved most logic to custom components or mixins. Soul gems can be filled by holding them in the off hand when killing the target entity ( https://imgur.com/a/Lz6PjZs ) Some optimizations
Made spawners craftable, made interacting with spawners using a filled soul gem set the entity in the spawner. Still not quite sure what to call the “filled” soul gem. One idea i had was to call it just a soul gem and call the not filled one an “Empty Soul Gem”, which is honestly a pretty good idea, but I’m not sure what to do when it’s in the process of being filled. Technically at that point it’s not empty , but maybe it’d be fine to call it that
Finally fixed the soul gem duplication recipe, which was a bit of a pain to deal with… I initially went down a dumb rabbit hole of overcomplicating the matcher system when turns out having multiple of the same item in the recipe can easily be solved by storing a count for each ingredient instead of having multiple entries for them 😝
Past while has been spent on fighting with gradle to extend my overly complicated setup ( monkeylogic, my gradle convention plugin ) and make it even more complicated allow adding dependencies from modrinth to projects. After that I could easily add RRV (Reliable Recipe Viewer) as a dependency and now lastly add integration with it. Currently I’ve got integration to the point of showing the custom duplication recipe, which is great
Received new textures and spent some time messing around in the mcmeta file for the animation timing. Looks quite good now. Also made the empty soul gem use the same texture, just with a soul light blue colors.
Started work on adding the item collector, currently just got done with adding the block itself with some boilerplate stuff and a model. As the name suggests, it’ll be for picking up items in some range of it. Not quite sure if I want it to be a range all around the block, or maybe going outwards from the direction it’s facing? Also not yet quite sure if I want it to just put stuff into an internal inventory and require a hopper or something modded to pull out of it, or if it should act like a hopper pushing things out from the side it’s attached on
Implemented basic functionality of the item collector. Currently has a range of 2 blocks that it will pick things up from and put em straight into a connected inventory
Made item collector spawn a line of particles when picking up items Oh and also added compatibility to item collector with container blocks from other mods that use the fabric or neoforge transfer api instead of vanilla containers, more loader specific stuff, yay!
Shift-right-clicking an item collector with an empty hand now shows its range. Drawing lines of particles between the correct corners for the outline took a bit of trial and error, also added a screenshot where it doesn’t look quite correct Also I’m not sure if the video from the previous devlog got uploaded correctly (my browser at least isn’t able to play it) so here it is again
Added a texture and recipe to item collector, made it possible to disable it using redstone, made the sample collector only pick up items every 10 ticks.
Been doing some boring things like writing a description and making an icon and some miscellaneous fixes and whatnot as I actually think I want to get this in a state where I could send it in for review on modrinth. Otherwise if I sent it in once I was actually finished with the project, it probably wouldn’t get reviewed before stardance ends and then i’d have to tell people to download the mod from my git releases and that wouldn’t automatically tell em where to get dependencies and whatnot so yeah, want to get it in the queue asap. Here’s the icon I came up with btw
Started working on the soul spikes. First made a model for it, not sure if it’ll look good once I make a texture for the actual spikes part of it as well
Finished UV mapping the spikes…. this literally took like over an hour haha, sadly time spent in blockbench doesn’t count as it doesn’t have a plugin for wakatime or whatever :/ (the 43min this devlog logs was actually setting up oxipng to automatically run on every commit to optimize the png files) Next i guess will be to make an actual texture for it, yay. Here’s the super very interesting texture that currently just has all the different mapped sides in different colors
Made an okay-ish texture for the soul spikes block (many of em at once looks kinda noisy but oh well, it’ll do. Hopefully it’ll be locked up in a farm killing chamber room anyway). Had to change the UV mapping again because for whatever reasons, minecraft decides to render a sliver of the neighboring pixel as well which looks super bad with two very contrasty colors next to each other. Solution was to move the blue parts to the bottom of the texture where there was room to have it separated by a row of blank pixels.
Made the soul spikes actually deal extra fall damage when fell on. Current fall damage multiplier is at 5, not sure if that is too much or too little. The damage is done by a FakePlayer, so the mob will also drop loot that only drops from player kills, including experience orbs. (Seems like I need to add an XP Collector block in the future to deal with those). Oh and also did some boilerplate-ish things to soul spikes like adding a recipe, translation, etc Turns out minecraft decides that the block you fall on is the one that’s 0.2 blocks below you…. The model of the soul spikes (which i don’t really wanna change anymore) has the base at 3 pixels high, which makes it… 0.1875 block high 😮💨 Nothing that can’t be solved with a mixin to Entity#getOnPosLegacy that changes the BlockPos it returns if the the block above the “correct” block is soul spikes
Added the experience collector block, which obviously picks up xp orbs and turns em into bottles of enchanting. Kind of got so focused I forgot about making more detailed devlogs 😅
Spent some time thinking about what I’m gonna do for the block that moves mobs around. I think I’ve decided on going with a basic “fan” type block and now started working on what it could look like. I’m imagining the souls kinda like escaping from the soul sand and also particles spawning and moving in the direction it’s pushing. As always I’m pretty bad at drawing textures, so the beginning here looks a bit crude, but it’s definitely a start. It’d be really nice if aseprite had a wakatime plugin…
Spent a bunch of time on cleaning up some code and abstracting some things out of collector block classes to make it easier to add functionality of the soul fan later on, speaking of which! the soul fan is a block that exists in game now
Spent the last hour and a half faffing about with my loader abstraction in monkeylib (stardance only recorded an hour cause that’s technically a separate project) for creative tabs. All that just cause I really wanted the RRV stack group for the filled soul gems to show up next to the empty soul gem, instead of at the end of the list where it did previously
Implemented functionality of the soul fan, getting the strength to scale based on distance was a bit of a pain cause i needed to get the position of the center of the face that the fan’s pointing in and only calculate the distance to the entity based on the correct axis cause otherwise giving it a larger range would make the farther to the side entities get pushed less and uhh yeah, took quite a bit of experimenting with stuff to get it to work correctly
Added range upgrades for the fan and collector blocks. It was a bit challenging figuring out actually extending the bounding box in the correct directions based on the block is facing, but I did get it working
Added particle effects for soul fan. Figuring out where to spawn em was quite fun actually, though I did have to add a custom particle (reuses the vanilla “small gust” texture) because turns out most particles won’t obey the velocity you give them and just do their own thing, which was a bit annoying.
Made soul fans placed at different locations use a different starting frame offset, so they don’t all look the same (see before and after videos). The way this is implemented is a bit interesting… There’s no easy “use this model but offset any texture’s animation by 1 frame” as afaik the frame index is global per texture. What Minecraft does allow is each block state variant actually being an array of variants that the game will choose between using afaik a hash derived from the block position. This is used in vanilla for things like stone and deepslate, which have mirrored and rotated variants so caves look less repetitive or whatever. As each texture has a global frame index, I am duplicating the soul fan texture and just changing the order of the frames in the accompanying animation metadata file and creating separate models which point to the different textures and then those models are used as variants in the blockstate. What’s even more fun is I am using datagen for duplicating the texture and creating the animation metadata files, which definitely isn’t concerning at all. This also required me to make a pull request to fabric api because the FabricCodecDataProvider assumes all files it generates are .json files, but animation metadata is .mcmeta. (The PR isn’t yet merged so I resorted to…. injecting a mixin into fabric api, definitely not cursed at all I swear)
Bunch of refactoring, bug fixes, balancing, etc. Release notes can be seen on the forgejo release or on modrinth, I’m not gonna copy paste em here (this is version 0.0.5 right now) It is now actually reviewed on Modrinth, took two weeks for that to happen (Gosh I remember when review times were like less than 24 hours ). I’m still keeping it unlisted until I get a 1.0.0 release out, but if anyone wants to check it out and share feedback or anything, then it’s right over here: https://modrinth.com/mod/ultimate-mob-farms Before a v1, I still need better rrv and item descriptions integration, some more balancing changes, advancements, quite a few bugfixes and probably some other stuff I’m forgetting at the moment.
Fixed compact mob farm inventory not working correctly and being incompatible with other mods’ item movement stuff. The whole point of the transfer API on both fabric and neoforge is the transaction system, where each change must store a snapshot that can be returned to if needed; Turns out ignoring the TransactionContext and not saving any snapshots is a bad idea 😅 I’ve tested and it’s compatible with create fly (see screenshot where a compact mob farm with a blaze is being used to feed a blaze burner for a steam engine) and most probably other mods as well. Added Reliable Recipe Viewer integration that explains soul capturing
checking the recipe for a specific soul gem now only shows that specific entity instead of all soul capturing recipes soul capturing recipe now shows up before the duplication recipe soul gems can now be searched by the name of the entity they contain fix compact mob farm gui not rendering vanilla background overlay allow filling soul gem when held in the main hand fix dedicated server crashing Running in a dedicated server would crash because there are quite a few places where I referenced client-only classes in places that the jvm will load on the dedicated server as well. Mostly in the different block entity classes, where I had a clientTick method that had ClientLevel as one of it’s parameters. Even though that method would never get called on the dedicated server, java still wants it to exist when loading the class because it’s part of a method’s definition. My current solution is very very awful… I moved those things into methods in the client initializer and… well… yeah… it just looks and is awful: https://git.offsetmonkey538.top/OffsetMods538/Ultimate-Mob-Farms/src/commit/0.0.7/modded/src/main/java/top/offsetmonkey538/ultimatemobfarms/modded/UltimateMobFarmsModdedClient.java#L65 The real, foolproof solution would be using the split sources feature of loom, which creates a second source set and makes the main source set unable to access client classes. Only problem is that it’d be a bit annoying to fully get set up in my multiloader-version gradle system and would most definitely need many changes on MonkeyLib538 as well and I just am not up for doing that atm.
Getting closer and closer to the actual release… could this be the last devblog before that? Still not quite 100% about if the required kills for each mob are balanced, but it’s probably good enough. Definitely better than everything being 10 kills tho. Felt very off-balance when withers, which are hard to spawn and hard to kill, and pigs, which are just everywhere, required the same amount of kills to capture. Notable changes: Show soul capturing recipe in rrv when checking usages of spawn eggs Show tooltip with entity name when hovering entity in soul capturing rrv recipe Add item descriptions Fix being able to insert items into the compact mob farm inventory Make amount of kills required for capturing an entity different per entity. Update compact mob farm recipe (now uses soul spikes in the middle instead of stone bricks) Store soul gem colors as hex strings in entity tiers config. Much more understandable and easier to manually change the overrides config or whatever Make built-in packs use the mod icon using a mixin instead of copying the icon into the packs. This shaves like 80kb off the final jar which is quite a bit of unnecessary duplicate crap Remove some log spam that was for debugging
School starting with september really hit my productivity on this mod like a truck I am realizing the deadline for stardance is getting real close, so I think this is probably the point where I’ll have to ship it. There are still some TODOs in the code and bugs that need to be squashed and porting to 26.3 (which released like this week, thanks mojang ) and so I haven’t been comfortable marking the latest release as 1.0.0 yet or making announcements elsewhere, but the mod is now perfectly usable and I like where it is. Changes since last devblog: 26.2 support Injecting some items into vanilla loot chests Advancements 26.2 wasn’t actually as painful as I thought it’d be, which was a nice surprise. Adding advancements was a bit more of a pain with 26.2 support though as I needed custom criteria for some of the advancements (one for putting a soul gem in the compact mob farm and another for using a soul gem on a spawner) and Mojang, in their infinite wisdom, decided to move a bunch of advancement stuff around in 26.2.
Waow that’s quite a bit of stardust 😅 Quite happy with this project and the ratings it got on the first ship :D (except the one that accused my devlogs of being written by ai… My writing is not that bad, right? ) I noticed in the shipwrights’ review video that how upgrades work is not very obvious, they were trying to put a tier upgrade into a soul fan, which only accepts width, height and depth upgrades. It was mentioned in ratings that stuff is a bit hard to figure out in the beginning as well. So to fix that, I added some silhouettes of the supported upgrades shown in the slots and also a hover tooltip saying what’s supported. Oh and i’ve also added 26.3 support now
Added a progress bar to the Compact Mob Farm GUI that hopefully makes it much easier to understand when it’ll damage the entity and it doesn’t look like it’s just doing nothing lol, especially with the 30 second default time
Added an RRV screen showing what items can be acquired from the Compact Mob Farm. Shows the entity, the items it drops and the required tier upgrade level. Hoping this also helps with confusion on how stuff works
Started working on setting up a docs page for the mod. Mainly want it for explaining the data driven configuration, but having full pages to give more detailed explanations of the different features is also probably a nice touch. Made a new icon for the mod as well, it’s pretty much the same but higher res because the 256x256 one looked weird on the docs page. The docs are done using Starlight like all my other docs pages (see those here ) and lives at https://ultimate-mob-farms.docs.cursedmods.com/ and on the docs/master branch in the repo Currently it’s just the landing page, but it’ll have more stuff soon enough
Set up empty pages for all the blocks and items, fought quite a bit with astro/typescript to get the PageTitle override to correctly display the icons. Turns out astro’s optimized Image stuff doesn’t support animated images, no matter how much you try to force it to, so I ended up having to use the basic img tag
Ships:
This is a Minecraft mod for making mob farms, something similar to for example Mob Grinding Utils. It features item and xp collection, entity movement, spawner relocation and crafting, single block mob farms and some other stuff. Honestly, I’m quite proud just over the fact that I finally did finish this project (or at least got it to the point of being comfortable releasing it publically) and it’s hard to choose any specific features, but here I go… I do really like how the particle effects for the soul fan turned out, they’re quite satisfying imo. This is kind of unrelated to the mod, but I’m also proud of having helped out with the development of RRV, the recipe viewer mod I added compat with. While adding support for it in this mod, I noticed some bugs and crashes and stuff, which I PRed fixes for. It’s a bigger project with many complex things, so coming up with a list of all the things I found hard or took a lot of time and explaining all of them would probably go over whatever character limit this text box has lol. One thing that was a big PITA was the compact mob farm inventory. The original implementation I wrote was just… completely wrong, so I had to rewrite it. Then later I realized I overlooked like the most important part of the item transfer api (transactions, which are used for rolling back changes and stuff) so I had to rewrite it again, and then after that I rewrote quite a bit of it one more time because, after the last rewrite, I had accidentally made it possible for other blocks to insert into the inventory, which isn’t something I wanted as that seems quite OP. Another thing that comes to mind is figuring out the code for the soul fan’s range based on upgrades and strength at a given distance. The problem was that the coordinate you have to increase/decrease depends on the orientation of the block, so as an example, the depth upgrade would need to increase the Y pos when the block is placed pointing up and decrease it when pointing down, the X pos when facing north/south and the Z pos when facing east/west. For pushing the entities, I had to find the coordinates of the middle of the face the block is pointing, and add/subtract the correct coordinate to get the range in the depth direction, and then find the distance between each entity currently in range and the fan in just that plane for calculating the strength. For people testing out the project, I definitely do recommend also installing the Reliable Recipe Viewer (RRV) and Item Description mods...
|
1793004599.9761665
|
1793090999.9761665
|
|
48736
|
Wifi and blutooth jammer by @Txseen | Stardance
|
Txseen
|
1
|
2.27
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T13:56:10Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i had made a bluetooth and wifi jammer", "repo": "https://github.com/EmenstaNougat/ESP32-BlueJammer", "demo": ""}]...
|
[{"post_id": 80692, "ts": "202 [{"post_id": 80692, "ts": "2026-10-18T15:13:21Z", "hours": 1.2714, "text": "another circuit diagram"}, {"post_id": 69652, "ts": "2026-09-17T14:39:07Z", "hours": 0.3006, "text": "circuit diagram of jammer"}, {"post_id": 69621, "ts": "2026-09-17T13:08:18Z", "hours": 0.3008, "text": "jammeer coodes"}]...
|
Title: Wifi and blutooth jammer by @Txseen | Stard Title: Wifi and blutooth jammer by @Txseen | Stardance
Devlogs:
jammeer coodes
circuit diagram of jammer
another circuit diagram
Ships:
i had made a bluetooth and wifi jammer...
|
1793004633.2912464
|
1793091033.2912464
|
|
63430
|
My Personal Site by @waffles888 | Stardance
|
waffles888
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T13:48:35Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This personal site had its challenges as I would forgot little things such as ensuring that the CSS file was referenced or that once I had published it on GitHub that everything had broken such as images and CSS just due to the way that file paths work. Overall im really proud with how the website turned out", "repo": "https://github.com/waffles-888/My-Personal-site", "demo": "https://waffles-888.github.io/My-Personal-site/index.html"}]...
|
[{"post_id": 70354, "ts": "202 [{"post_id": 70354, "ts": "2026-09-19T01:00:04Z", "hours": 0.4731, "text": "Devlog 3 - About me This is the final page that I have made for my website its very simple but its still a nice looking page and overall looks pretty clean in my opinion. It has a nice box around the text as well as a bootstrap button with a SVG of GitHubs logo on there. I used the CSS I had made for the box around the about me and went back to the home page to also add it around the text there to make it look overall nicer."}, {"post_id": 70345, "ts": "2026-09-19T00:25:52Z", "hours": 0.9931, "text": "Devlog 2 - Projects This page was a little harder to make over the home page as I was struggling to align the cards of the projects in a way that I liked, it lead me to loop around trying different things until I finally got it to look the way I wanted it. I also went back the home page and added an image carousel which also has images of each project that was on the projects page."}, {"post_id": 70326, "ts": "2026-09-18T23:03:03Z", "hours": 1.3417, "text": "Devlog 1 - Homepage I have a fair bit of experience in making websites so making this was simpler that my other projects. I highly recommend to anyone attempting to make a website to use bootstrap as that making development at lot simpler while getting the look that you want."}]...
|
Title: My Personal Site by @waffles888 | Stardance Title: My Personal Site by @waffles888 | Stardance
Devlogs:
Devlog 1 - Homepage I have a fair bit of experience in making websites so making this was simpler that my other projects. I highly recommend to anyone attempting to make a website to use bootstrap as that making development at lot simpler while getting the look that you want.
Devlog 2 - Projects This page was a little harder to make over the home page as I was struggling to align the cards of the projects in a way that I liked, it lead me to loop around trying different things until I finally got it to look the way I wanted it. I also went back the home page and added an image carousel which also has images of each project that was on the projects page.
Devlog 3 - About me This is the final page that I have made for my website its very simple but its still a nice looking page and overall looks pretty clean in my opinion. It has a nice box around the text as well as a bootstrap button with a SVG of GitHubs logo on there. I used the CSS I had made for the box around the about me and went back to the home page to also add it around the text there to make it look overall nicer.
Ships:
This personal site had its challenges as I would forgot little things such as ensuring that the CSS file was referenced or that once I had published it on GitHub that everything had broken such as images and CSS just due to the way that file paths work. Overall im really proud with how the website turned out...
|
1793058760.4642541
|
1793145160.4642541
|
|
57535
|
Atom Simulator by @Rezz | Stardance
|
Rezz
|
1
|
67.08
|
1350
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T13:44:19Z", "hours": 65.0, "multiplier": 17.4, "payout": 1350, "blessing": "neutral", "text": "ATOM SIMULATOR!! Simulate an atom by adding subatomic particles manually or selecting elements directly from the periodic table and learn about every ground state isotope humanity has ever discovered! When I was starting this project I wanted to make something that I could show to others and be proud of it and this is what I have made! You can add any amount of subatomic particles and see the details of the isotope you have created. (Trust me there are many surprising combinations which actually exist). There are 3588 isotopes which exist in ground state and all are in the database of this project. This is a great opportunity to learn about the properties of every isotope in a fun and interactive way! What I built: :> The main canvas with the simulation of the atom. :> The element panel shows the information of the element you have created. :> The isotope panel gives you all the information about the current isotope you created and also visually highlights invalid isotopes, :> The control buttons let you ADD/REMOVE subatomic particles with full control. :> The periodic table with all the elements with proper buttons to jump to elements. :> Proper animation of the atom in the canvas. How I made it easy to use: :>Deployed it to GitHub pages so that anyone can easily access it without having to clone the repository. :> +10/-10 button help users to jump between atoms easily as well as see a satisfying animation. :> Added the ability to type in the desired number of subatomic particles for even more accessibility. :> The periodic table lets people jump to any desired element they want, so they do not have to struggle to reach any desired element. :> Made it so that the periodic table pops up with one click and disappears instantly when the user clicks an element or outside the table for a smooth and fast user experience. :> Colour coded each element in the periodic table depending on their types. :> If the user creates an invalid isotope, the isotope panels visually highlight it so that the user does not get confused. Technicalities A lot of things have been used in this project I have listed the things I learnt below: HTML5 Canvas Canvas Drawing Canvas Coordinate Systems requestAnimationFrame() Graphics / Animation Loops Mathematical Animation Polar / Circular Positioning Trigonometry in Programming Canvas Transformations 2.5D / Depth Illusion Painter’s Algorithm / Draw Order Dynamic Geometry State-Driven Graphics Data-Driven Application Design Managing Dynamic Object Collections Animation State Interpolated Animation Dynamic Numbers of Animated Objects Dynamic Shell Allocation UI State I am currently learning web development and these are my early steps. This is my first time using canvas so I gave it my best. The project may look very long in itself but it would have been way longer if you add the time spent reading documentation and watching videos about canvas Api. Since I started in stardance I have gone from not even knowing html syntax to here and I plan to further improve my understanding of canvas by making a game next. So, wish me luck. Please read the README for detailed explanation of my project!", "repo": "https://github.com/KartikeyaMishra-Ark/Atom-Simulation", "demo": "https://kartikeyamishra-ark.github.io/Atom-Simulation/"}]...
|
[{"post_id": 70719, "ts": "202 [{"post_id": 70719, "ts": "2026-09-19T17:27:55Z", "hours": 2.0822, "text": "Complete UI change!! The shipwrights told me my theme was very generic and looked very AI generated so I changed it into the theme of star charts used by astronomers in 17th-18th centuries. Renamed the periodic table to the atlas and over all made everything look like a diagram made on parchment. Also added a trail to the electrons to make it look a little bit more unique. My project is based on the Bohr model which was based on astronomy of that time which emerged from these star charts so I decided to use this theme to have a little personality and originality. Thanks for reading!!"}, {"post_id": 70545, "ts": "2026-09-19T10:33:05Z", "hours": 0.8514, "text": "Final Devlog is here guys after so many hours!! I have redone the UI to look less generic and a little more unique. The canvas is now having invisible borders so it blends in with the background. Added a header. Added red colour in case of invalid isotope and moved status to the to for better user experience. Also set the cap to 118 on both electrons and protons. Fixed the plus 10 button so it goes up to 118 instead of stopping if there is less than 10 electrons left to 118. That will be all I will ship this and other features will come in future updates like exit animations and ion panel. There is a lot more I could do but I have refined everything I made in this and that will be all for now as adding new things will create an unrefined product. I have set the default atom to chromium-24 just because it is not too small and not too big to help the users go lower and upward pretty quick. It was a long run and genuinely tough project. The amount of documentation I had to read was unreal. Thanks for reading!!!!!!!!!!!!!!"}, {"post_id": 70489, "ts": "2026-09-19T08:45:53Z", "hours": 5.8706, "text": "I have completed the animation now. The other electrons now move slowly into their new positions and make space for the incoming electron. I also made it so that it is fluid for +10 electrons as well. I also am moving towards my final UI so everything is black now instead of blue and I plan on making it more space like. Now comes the part where I tell you my struggles. I spent a lot of time trying to perfect the animation. To do this I had to make changes in a lot of my functions and I finally was at the end of my struggles after about 3 hours of work and there was just one bug I was unable to fix which was that whenever I spam added electrons they would go into one place and then teleport into their dedicated locations. To fix that I made a lot of changes. The problem was that the canvas was not giving new space assignment to the electron when it was being spam added and foolish me without committing decided to fix it and broke everything. I managed to break it so bad that program broke when adding a new shell. And because I had made so many changes I was not gonna spend another 3 hours fixing them one by one so I had no choice but to delete everything since the last commit which was my last devlog. and then I had to remake it from there. Lesson learnt. Thanks for reading!!!"}, {"post_id": 69615, "ts": "2026-09-17T12:54:50Z", "hours": 3.5044, "text": "I have finally added an animation to the addition of the electrons!! You can see in the video I have made it so that every added electron comes from outside the canvas and takes its place in the orbit. It is far from perfect right now but it’s the first step. The biggest problem in this was making sure it came in at the proper angle so it feels smooth and injects itself properly. I am thinking of animating the other electrons to slowly move and make space for the new electron so it doesn’t look like a flicker every electron added. The nucleus is still the same I am leaving it alone I will fix it in the end it’s too much for me. Also did a lot of CSS changes in the periodic table and the isotope panel and the control buttons. I am trying to make it look like an instrument more Than a button so hopefully it can happen. The next move is refining this animation and once it’s done I will redo the entire CSS to a space, science, observatory theme. Thanks for reading!!"}, {"post_id": 69163, "ts": "2026-09-16T14:35:00Z", "hours": 5.3294, "text": "This is making me give up guys. I cannot fix this nucleus this just isn’t working. I have been spending so many hours on this I used to do so much more daily but I just rage quit when I can’t fix this. You can see in the video is is still working in a sequence I cannot fix it. I did fix the flicker which happens every time a particle is added so it is very smooth now. also I added rotation to the shells by adjusting my already existing drawshell function. I made some changes in css though they are not noticable in the video as I removed most of them because the light theme didn’t suit the project. I am trying to make the theme more space and science like more like an observatory. I really wanna start on animations but I am holding it off for everything else to start working first. Thanks for reading!!"}, {"post_id": 68152, "ts": "2026-09-14T16:32:40Z", "hours": 6.3133, "text": "I am so freaking done with this!! I have been sitting here for so many hours trying to fix the nucleus and for some reason it is never working. I have created multiple new functions deleted those, changed those and one time is became a spiral pattern. Then I tried to randomise it and it became like a random splash. then the neutrons disappeared. then the count got messed up so every ten neutrons added get on screen. Then neutrons did not show up until we reached 24 of them. I tried every different way I could think of solving this but this is not working. At last I thought I should just go back to my old configuration because it was good enough but now it became like this and is overlapping into the first shell. I guess I deleted my old function where I had set its parameter to not overlap the inner shell but here we are. Also I found a way to make the periodic table work properly. It now pops up on screen so the user doesn’t have to scroll and disappears with th user input or if the user clicks the background. I will make it transparent in the future. Also I hope I can fix this nucleus this is so not it. Thanks for reading."}, {"post_id": 67356, "ts": "2026-09-13T13:10:52Z", "hours": 4.5983, "text": "COMPLETE CSS OVERHAUL. I have redone the entire CSS to make it look WAYYY better and you can see the results. I am adopting a dark theme. I do want it to look more like space but I will see to it later. I added a toggle function for the periodic table. It looks kind of useless now but what I wanna do is make it appear on the screen instead of appearing below so that the use can select without having to scroll. Also the nucleus must be catching your eye. I tried to randomise it but for some reason it is randomising every frame so I have to figure out how to fix it. I am pretty sure it is a very simple fix that I am wasting so much time on. Also changed the colour of the shell, electrons and nucleus and gave the particles a little glow for dramatic effect. Also gave the elements in the periodic table colours according to their categories like Alkali metals, noble gases etc. Next I am going to fix the nucleus. Make the periodic table appear on screen and try to make the UI look better. I am also thing of any features I can add. Thanks for reading!!"}, {"post_id": 66047, "ts": "2026-09-11T16:36:57Z", "hours": 8.6878, "text": "Sorry for so long undevlogged hours. First time I got a warning. I really procrastinate on devlogs. There are many changes I made, the first being the addition of radioactive/stable status, half-life, decay mode, spin/parity, and atomic mass into the isotope tab. My vision is that I want people to explore the isotopes when they play around manually with the subatomic particles. This increased my database for isotopes to 45k lines, hopefully the person who told me it’s ok to use AI for data collection was true. And for enhanced UX I added +10 and -10 buttons as well as the ability to type the number of electrons in. And the biggest and the most obvious update was the periodic table. I spent so long figuring it out. At first I tried doing the entire thing in CSS, but thankfully the array of elements with so many seemingly useless information I created at the start helped out and I was able to assign each of them groups and periods to look like a periodic table through JavaScript, but La and Ac were acting up because they kept going down to the f block. I moved them up but it still looks not as good. I then added each element on the table to be clickable and the user would instantly move to the desired element and be able to test what isotopes it has and also all their properties. Also I removed the configuration because I am making the Bohr model visible so it’s inaccurate to have the Aufbau configuration. I am 1000% going to do frequent devlogs please forgive me for my past 3 devlogs. Also I made sure the most commonly used isotope is there by default on the isotope panel when the periodic table is clicked. I think I will look how to make the UI better first as the periodic table being on the bottom feels so weird and bad UI because the user needs to scroll to see the change. I’ll think for a fix. Thanks for reading!!!!!"}, {"post_id": 63762, "ts": "2026-09-07T18:39:18Z", "hours": 8.0033, "text": "Now this is a big one! I have spent hours trying different ways to add isotopes to this. I thought I would add some common isotopes and not let the user make any other atom. Then I ditched it and tried to just say not in data. Then I tried to reduce the number of elements then I thought that how many isotopes can I actually add? So Iooked up on how many isotopes exist of all known elements I found a study of NUBASE in 2022 with 3588 ground state isotopes in their website. It had a lot of detail. I have used clause to parse it into a json file and it has 25k lines. I have asked the shipwrights and they said it’s fine so I did it. So now I have each possible ground state isotope and its basic properties in my project so I just linked it to javascript and then decided I wanted an entire window dedicated to isotopes and as my project had been bad for so long so I redid the html and finally touched css. Didn’t take me too long it has become very easy to create basic cards after my last project. Then I created a few functions for the isotopes which basically act as a validator which I made previously for protons. Also I deleted a lot of my code. So as seen in the video, Isotopes are divided into stable, radioactive and invalid. Any isotope which my database doesn’t have does not exist in ground state which is way bigger of a scale I was thinking about so I am proud of it. Also the name and symbol have been changed as well. the css looks very bad as I just did it very fast so that it at least looks like it is real. Next is redoing the nucleus to increase the randomisation and maybe I am thinking of redoing the isotopes window and the UI. Mostly thinking of working on UI now but idk what I do tomorrow. Thanks for reading!!"}, {"post_id": 62851, "ts": "2026-09-06T11:40:28Z", "hours": 6.7181, "text": "Very long devlog here. I have added a lot of stuff and have failed to add a lot of stuff too. The first task at my hand was making the nucleus into individual particles.The problem I ran into was when there were less than 14 nuclear particles they were too far away from each other. So I made a few if statements for better alignment in lower atomic number elements. Then I added colours for identification I will change them in the future. After adding colour I saw that the protons and neutrons aren’t mixing and are forming rings instead and so far I cannot fix it. Next thing I added was electronic configuration. I have used Aufbau’s principle for the electronic configuration which is kinda inaccurate as my model doesn’t use it but I added it because I can. Also I have not added all the exceptions like chromium. The next step was adding ions and isotopes. I spent so much time adding isotopes and failed terribly but the ions have been working out. Currently they are also inaccurate because I have yet to add a block for impossible structures and also the names just add ion instead of saying oxide or chloride. There is a type section currently because I first added just anion neutral and cation detector but then decided I want all ions and isotopes as well. The most amount of time spent this time is for sure the failure of my isotopes addition. Also I have been tweaking the tilts to make them look better. My devlog makes it look simple but it took so much freaking trial and error to do all this I am seriously burned out now. But it’s too fun for me to stop. Thanks for reading!!"}, {"post_id": 62205, "ts": "2026-09-05T13:55:38Z", "hours": 2.9883, "text": "I have now added buttons for user to add and remove subatomic particles. The neutrons are kind of useless because I have currently linked it to the periodic table I added to the code (yes I added all the elements as mentioned in previous devlogs). So the atomic mass is hardcoded for every element but in the future I will switch back to mass number when I add isotopes to the this. And now the most obvious change. I have added a tilt to all the electron paths and the shells so that I can have a 3d effect. I looked up on how to make this 3d and decided it was wayyy too out of my league, though what I am doing is already out of it, but I decided I will try a 2.5d style and this is as far as I have gotten. I have also made it so that the outer shells move faster than inner ones for better effect. It looks kinda ugly as I have neglected css but I am waiting for a general structure to be finished before I do that. I have to say that canvas is very complicated. And I am having to use a lot of loops and I am having difficulty understanding my own code. I hope by moving forwards I can get more comfortable with all this. Thanks for reading!!"}, {"post_id": 62052, "ts": "2026-09-05T08:52:41Z", "hours": 2.5119, "text": "I have added functions to calculate the mass number and the charge on each configuration. Then I have added the properties of each element in the periodic table into the code and made a div so that it can be seen in the web page. In the video below I am changing the number of electrons and protons to showcase it working I am yet to add an input on the screen. Also for each element I have added its atomic number, symbol, name, atomic mass, period, group and category. I believe it will prove useful in the future when I add a proper description. I am also going to add isotopes in the future. It was very boring to copy all the elements from he periodic table though. Thanks for reading!! edit: I just noticed a bug. I am not changing the number of neutrons so the mass number is wrong in every case. As I set the detection of each element by the number of protons I didn’t realise it. Sorry for the error"}, {"post_id": 61724, "ts": "2026-09-04T19:24:00Z", "hours": 2.265, "text": "The visual difference in this update may not look a lot but the code has changed a lot. Previously all of the stuff was just hardcoded values and now I have turned them all into proper dynamic values. I have given it a configuration to accommodate all 118 elements properly. Also made it so that the increasing number of shells reduces the spacing so the shells don’t clip out of bounds. Also having lesser shells spreads them out more so it looks zoomed in. All seems to work fine now. Almost all hardcoded values are turned into functions so I am going to try to add a way so the user can directly add an electron to the system. I am yet to touch the protons it’s still just balls revolving in a certain configuration, far from my vision. Thanks for reading!!"}, {"post_id": 61588, "ts": "2026-09-04T16:00:47Z", "hours": 4.2703, "text": "So I redid all the code of the javascript. I created different functions for the shells, nucleus and the electrons. After that I made a loop for the electrons so that they spawn in the shell structure of 2,8,8 and don’t overlap and another loop inside that to make sure that they all are revolving around the nucleus in their own shells. Then I made a loop for the shells with the same calculation of the radius so that they form properly along the revolving electrons. And damn was all of that hard to understand and create. In my previous projects I had not worked much with loops so I had to learn all about them and damn does this project use a lot of maths. It’s lowkey kind of fun playing with numbers and seeing varying results on screen. I think I will have to ditch these functions in the future because my end goal is to get all the 118 elements in there but this is an important learning step for me. Thanks for reading!!"}, {"post_id": 61336, "ts": "2026-09-04T06:26:06Z", "hours": 0.7969, "text": "Finally figured out how to move the electron along the path. Had to use Sine and Cosines to designate the movement. One problem which came up was that the new frame was not erasing the previous position of the electron so I did a clearRect so erase the previous frame but it currently is clearing everything including the shell and the nucleus. I am going to re write everything into separate functions to fix it."}, {"post_id": 61172, "ts": "2026-09-03T23:32:27Z", "hours": 1.9469, "text": "This project is kind of ambitious for me as it is a complicated one, but as a science. student I have always wanted to build something like this. I just spent a couple of hours experimenting and learning about canvas. First time using it. I really love that I have to use maths, physics and chemistry to make a project. The vision I have with this project is having a way to add electrons and protons and neutrons to make different elements and their isotopes. I will try to get then entire periodic table. And as my previous projects I don’t know how I will do it. I will learn as I build. This is very fun so far and I hope it doesn’t take as long as the last one. Thanks for reading!!"}]...
|
Title: Atom Simulator by @Rezz | Stardance
Devlog Title: Atom Simulator by @Rezz | Stardance
Devlogs:
This project is kind of ambitious for me as it is a complicated one, but as a science. student I have always wanted to build something like this. I just spent a couple of hours experimenting and learning about canvas. First time using it. I really love that I have to use maths, physics and chemistry to make a project. The vision I have with this project is having a way to add electrons and protons and neutrons to make different elements and their isotopes. I will try to get then entire periodic table. And as my previous projects I don’t know how I will do it. I will learn as I build. This is very fun so far and I hope it doesn’t take as long as the last one. Thanks for reading!!
Finally figured out how to move the electron along the path. Had to use Sine and Cosines to designate the movement. One problem which came up was that the new frame was not erasing the previous position of the electron so I did a clearRect so erase the previous frame but it currently is clearing everything including the shell and the nucleus. I am going to re write everything into separate functions to fix it.
So I redid all the code of the javascript. I created different functions for the shells, nucleus and the electrons. After that I made a loop for the electrons so that they spawn in the shell structure of 2,8,8 and don’t overlap and another loop inside that to make sure that they all are revolving around the nucleus in their own shells. Then I made a loop for the shells with the same calculation of the radius so that they form properly along the revolving electrons. And damn was all of that hard to understand and create. In my previous projects I had not worked much with loops so I had to learn all about them and damn does this project use a lot of maths. It’s lowkey kind of fun playing with numbers and seeing varying results on screen. I think I will have to ditch these functions in the future because my end goal is to get all the 118 elements in there but this is an important learning step for me. Thanks for reading!!
The visual difference in this update may not look a lot but the code has changed a lot. Previously all of the stuff was just hardcoded values and now I have turned them all into proper dynamic values. I have given it a configuration to accommodate all 118 elements properly. Also made it so that the increasing number of shells reduces the spacing so the shells don’t clip out of bounds. Also having lesser shells spreads them out more so it looks zoomed in. All seems to work fine now. Almost all hardcoded values are turned into functions so I am going to try to add a way so the user can directly add an electron to the system. I am yet to touch the protons it’s still just balls revolving in a certain configuration, far from my vision. Thanks for reading!!
I have added functions to calculate the mass number and the charge on each configuration. Then I have added the properties of each element in the periodic table into the code and made a div so that it can be seen in the web page. In the video below I am changing the number of electrons and protons to showcase it working I am yet to add an input on the screen. Also for each element I have added its atomic number, symbol, name, atomic mass, period, group and category. I believe it will prove useful in the future when I add a proper description. I am also going to add isotopes in the future. It was very boring to copy all the elements from he periodic table though. Thanks for reading!! edit: I just noticed a bug. I am not changing the number of neutrons so the mass number is wrong in every case. As I set the detection of each element by the number of protons I didn’t realise it. Sorry for the error
I have now added buttons for user to add and remove subatomic particles. The neutrons are kind of useless because I have currently linked it to the periodic table I added to the code (yes I added all the elements as mentioned in previous devlogs). So the atomic mass is hardcoded for every element but in the future I will switch back to mass number when I add isotopes to the this. And now the most obvious change. I have added a tilt to all the electron paths and the shells so that I can have a 3d effect. I looked up on how to make this 3d and decided it was wayyy too out of my league, though what I am doing is already out of it, but I decided I will try a 2.5d style and this is as far as I have gotten. I have also made it so that the outer shells move faster than inner ones for better effect. It looks kinda ugly as I have neglected css but I am waiting for a general structure to be finished before I do that. I have to say that canvas is very complicated. And I am having to use a lot of loops and I am having difficulty understanding my own code. I hope by moving forwards I can get more comfortable with all this. Thanks for reading!!
Very long devlog here. I have added a lot of stuff and have failed to add a lot of stuff too. The first task at my hand was making the nucleus into individual particles.The problem I ran into was when there were less than 14 nuclear particles they were too far away from each other. So I made a few if statements for better alignment in lower atomic number elements. Then I added colours for identification I will change them in the future. After adding colour I saw that the protons and neutrons aren’t mixing and are forming rings instead and so far I cannot fix it. Next thing I added was electronic configuration. I have used Aufbau’s principle for the electronic configuration which is kinda inaccurate as my model doesn’t use it but I added it because I can. Also I have not added all the exceptions like chromium. The next step was adding ions and isotopes. I spent so much time adding isotopes and failed terribly but the ions have been working out. Currently they are also inaccurate because I have yet to add a block for impossible structures and also the names just add ion instead of saying oxide or chloride. There is a type section currently because I first added just anion neutral and cation detector but then decided I want all ions and isotopes as well. The most amount of time spent this time is for sure the failure of my isotopes addition. Also I have been tweaking the tilts to make them look better. My devlog makes it look simple but it took so much freaking trial and error to do all this I am seriously burned out now. But it’s too fun for me to stop. Thanks for reading!!
Now this is a big one! I have spent hours trying different ways to add isotopes to this. I thought I would add some common isotopes and not let the user make any other atom. Then I ditched it and tried to just say not in data. Then I tried to reduce the number of elements then I thought that how many isotopes can I actually add? So Iooked up on how many isotopes exist of all known elements I found a study of NUBASE in 2022 with 3588 ground state isotopes in their website. It had a lot of detail. I have used clause to parse it into a json file and it has 25k lines. I have asked the shipwrights and they said it’s fine so I did it. So now I have each possible ground state isotope and its basic properties in my project so I just linked it to javascript and then decided I wanted an entire window dedicated to isotopes and as my project had been bad for so long so I redid the html and finally touched css. Didn’t take me too long it has become very easy to create basic cards after my last project. Then I created a few functions for the isotopes which basically act as a validator which I made previously for protons. Also I deleted a lot of my code. So as seen in the video, Isotopes are divided into stable, radioactive and invalid. Any isotope which my database doesn’t have does not exist in ground state which is way bigger of a scale I was thinking about so I am proud of it. Also the name and symbol have been changed as well. the css looks very bad as I just did it very fast so that it at least looks like it is real. Next is redoing the nucleus to increase the randomisation and maybe I am thinking of redoing the isotopes window and the UI. Mostly thinking of working on UI now but idk what I do tomorrow. Thanks for reading!!
Sorry for so long undevlogged hours. First time I got a warning. I really procrastinate on devlogs. There are many changes I made, the first being the addition of radioactive/stable status, half-life, decay mode, spin/parity, and atomic mass into the isotope tab. My vision is that I want people to explore the isotopes when they play around manually with the subatomic particles. This increased my database for isotopes to 45k lines, hopefully the person who told me it’s ok to use AI for data collection was true. And for enhanced UX I added +10 and -10 buttons as well as the ability to type the number of electrons in. And the biggest and the most obvious update was the periodic table. I spent so long figuring it out. At first I tried doing the entire thing in CSS, but thankfully the array of elements with so many seemingly useless information I created at the start helped out and I was able to assign each of them groups and periods to look like a periodic table through JavaScript, but La and Ac were acting up because they kept going down to the f block. I moved them up but it still looks not as good. I then added each element on the table to be clickable and the user would instantly move to the desired element and be able to test what isotopes it has and also all their properties. Also I removed the configuration because I am making the Bohr model visible so it’s inaccurate to have the Aufbau configuration. I am 1000% going to do frequent devlogs please forgive me for my past 3 devlogs. Also I made sure the most commonly used isotope is there by default on the isotope panel when the periodic table is clicked. I think I will look how to make the UI better first as the periodic table being on the bottom feels so weird and bad UI because the user needs to scroll to see the change. I’ll think for a fix. Thanks for reading!!!!!
COMPLETE CSS OVERHAUL. I have redone the entire CSS to make it look WAYYY better and you can see the results. I am adopting a dark theme. I do want it to look more like space but I will see to it later. I added a toggle function for the periodic table. It looks kind of useless now but what I wanna do is make it appear on the screen instead of appearing below so that the use can select without having to scroll. Also the nucleus must be catching your eye. I tried to randomise it but for some reason it is randomising every frame so I have to figure out how to fix it. I am pretty sure it is a very simple fix that I am wasting so much time on. Also changed the colour of the shell, electrons and nucleus and gave the particles a little glow for dramatic effect. Also gave the elements in the periodic table colours according to their categories like Alkali metals, noble gases etc. Next I am going to fix the nucleus. Make the periodic table appear on screen and try to make the UI look better. I am also thing of any features I can add. Thanks for reading!!
I am so freaking done with this!! I have been sitting here for so many hours trying to fix the nucleus and for some reason it is never working. I have created multiple new functions deleted those, changed those and one time is became a spiral pattern. Then I tried to randomise it and it became like a random splash. then the neutrons disappeared. then the count got messed up so every ten neutrons added get on screen. Then neutrons did not show up until we reached 24 of them. I tried every different way I could think of solving this but this is not working. At last I thought I should just go back to my old configuration because it was good enough but now it became like this and is overlapping into the first shell. I guess I deleted my old function where I had set its parameter to not overlap the inner shell but here we are. Also I found a way to make the periodic table work properly. It now pops up on screen so the user doesn’t have to scroll and disappears with th user input or if the user clicks the background. I will make it transparent in the future. Also I hope I can fix this nucleus this is so not it. Thanks for reading.
This is making me give up guys. I cannot fix this nucleus this just isn’t working. I have been spending so many hours on this I used to do so much more daily but I just rage quit when I can’t fix this. You can see in the video is is still working in a sequence I cannot fix it. I did fix the flicker which happens every time a particle is added so it is very smooth now. also I added rotation to the shells by adjusting my already existing drawshell function. I made some changes in css though they are not noticable in the video as I removed most of them because the light theme didn’t suit the project. I am trying to make the theme more space and science like more like an observatory. I really wanna start on animations but I am holding it off for everything else to start working first. Thanks for reading!!
I have finally added an animation to the addition of the electrons!! You can see in the video I have made it so that every added electron comes from outside the canvas and takes its place in the orbit. It is far from perfect right now but it’s the first step. The biggest problem in this was making sure it came in at the proper angle so it feels smooth and injects itself properly. I am thinking of animating the other electrons to slowly move and make space for the new electron so it doesn’t look like a flicker every electron added. The nucleus is still the same I am leaving it alone I will fix it in the end it’s too much for me. Also did a lot of CSS changes in the periodic table and the isotope panel and the control buttons. I am trying to make it look like an instrument more Than a button so hopefully it can happen. The next move is refining this animation and once it’s done I will redo the entire CSS to a space, science, observatory theme. Thanks for reading!!
I have completed the animation now. The other electrons now move slowly into their new positions and make space for the incoming electron. I also made it so that it is fluid for +10 electrons as well. I also am moving towards my final UI so everything is black now instead of blue and I plan on making it more space like. Now comes the part where I tell you my struggles. I spent a lot of time trying to perfect the animation. To do this I had to make changes in a lot of my functions and I finally was at the end of my struggles after about 3 hours of work and there was just one bug I was unable to fix which was that whenever I spam added electrons they would go into one place and then teleport into their dedicated locations. To fix that I made a lot of changes. The problem was that the canvas was not giving new space assignment to the electron when it was being spam added and foolish me without committing decided to fix it and broke everything. I managed to break it so bad that program broke when adding a new shell. And because I had made so many changes I was not gonna spend another 3 hours fixing them one by one so I had no choice but to delete everything since the last commit which was my last devlog. and then I had to remake it from there. Lesson learnt. Thanks for reading!!!
Final Devlog is here guys after so many hours!! I have redone the UI to look less generic and a little more unique. The canvas is now having invisible borders so it blends in with the background. Added a header. Added red colour in case of invalid isotope and moved status to the to for better user experience. Also set the cap to 118 on both electrons and protons. Fixed the plus 10 button so it goes up to 118 instead of stopping if there is less than 10 electrons left to 118. That will be all I will ship this and other features will come in future updates like exit animations and ion panel. There is a lot more I could do but I have refined everything I made in this and that will be all for now as adding new things will create an unrefined product. I have set the default atom to chromium-24 just because it is not too small and not too big to help the users go lower and upward pretty quick. It was a long run and genuinely tough project. The amount of documentation I had to read was unreal. Thanks for reading!!!!!!!!!!!!!!
Complete UI change!! The shipwrights told me my theme was very generic and looked very AI generated so I changed it into the theme of star charts used by astronomers in 17th-18th centuries. Renamed the periodic table to the atlas and over all made everything look like a diagram made on parchment. Also added a trail to the electrons to make it look a little bit more unique. My project is based on the Bohr model which was based on astronomy of that time which emerged from these star charts so I decided to use this theme to have a little personality and originality. Thanks for reading!!
Ships:
ATOM SIMULATOR!! Simulate an atom by adding subatomic particles manually or selecting elements directly from the periodic table and learn about every ground state isotope humanity has ever discovered! When I was starting this project I wanted to make something that I could show to others and be proud of it and this is what I have made! You can add any amount of subatomic particles and see the details of the isotope you have created. (Trust me there are many surprising combinations which actually exist). There are 3588 isotopes which exist in ground state and all are in the database of this project. This is a great opportunity to learn about the properties of every isotope in a fun and interactive way! What I built: :> The main canvas with the simulation of the atom. :> The element panel shows the information of the element you have created. :> The isotope panel gives you all the information about the current isotope you created and also visually highlights invalid isotopes, :> The control buttons let you ADD/REMOVE subatomic particles with full control. :> The periodic table with all the elements with proper buttons to jump to elements. :> Proper animation of the atom in the canvas. How I made it easy to use: :>Deployed it to GitHub pages so that anyone can easily access it without having to clone the repository. :> +10/-10 button help users to jump between atoms easily as well as see a satisfying animation. :> Added the ability to type in the desired number of subatomic particles for even more accessibility. :> The periodic table lets people jump to any desired element they want, so they do not have to struggle to reach any desired element. :> Made it so that the periodic table pops up with one click and disappears instantly when the user clicks an element or outside the table for a smooth and fast user experience. :> Colour coded each element in the periodic table depending on their types. :> If the user creates an invalid isotope, the isotope panels visually highlight it so that the user does not get confused. Technicalities A lot of things have been used in this project I have listed the things I learnt below: HTML5 Canvas Canvas Drawing Canvas Coordinate Systems requestAnimationFrame() Graphics / Animation Loops Mathematical Animation Polar / Circular Positioning Trigonometry in Programming Canvas Transformations 2.5D / Depth Illusion Painter’s Algorithm / Draw Order Dynamic Geometry State-Driven Graphics Data-Driven Application Design Managing Dynamic Object Collections Animation State Interpolated Animation Dynamic Numbers of Animated Objects Dynamic Shell Allocation UI State I am currently learning web development and these are my early steps. This is my first time using canvas so I gave it my best. The project may look very long in itself but it would have been way longer if you add the time spent reading documentation and watching videos about canvas Api. Since I started in stardance I have gone from not even knowing html syntax to here and I plan to further improve my understanding of canvas by making a game next. So, wish me luck. Please read the README for detailed explanation of my project!...
|
1793004986.1143143
|
1793091386.1143143
|
|
927
|
Squirrel by @Koei | Stardance
|
Koei
|
3
|
104.0
|
1915
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T13:34:37Z", "hours": 29.0, "multiplier": 17.36, "payout": 598, "blessing": "neutral", "text": "v1.0.0 Squirrel is a clipboard manager for Windows and X11 Linux that is meant to be simple and intuitive. This major release overhauls the data storage schema to be more efficient, faster, and reliable. There are significant performance improvements. This release also adds configurability to Squirrel, allowing basic but much needed customization, and polishes up the overall app. Check the README for more information.", "repo": "https://github.com/Koei32/squirrel", "demo": "https://github.com/Koei32/squirrel/releases/latest"}, {"ship_num": 2, "ts": "2026-07-26T14:30:06Z", "hours": 30.0, "multiplier": 13.88, "payout": 499, "blessing": "neutral", "text": "v0.3.0 Squirrel is a clipboard manager that is meant to be simple and intuitive. 2 new features in this version, namely pinning and image support. There are performance improvements as well as slight visual tweaks. Read the README for more info.", "repo": "https://github.com/Koei32/squirrel", "demo": "https://github.com/Koei32/squirrel/releases/latest"}, {"ship_num": 3, "ts": "2026-06-23T16:48:48Z", "hours": 45.0, "multiplier": 18.23, "payout": 818, "blessing": "neutral", "text": "v0.1.0 Squirrel is a clipboard manager that is meant to be simple and intuitive. It remembers all the text you copy allowing you to paste whatever into wherever. You can also quickly search through your history. Squirrel is meant to be cross-platform, but for this release, Linux support on Wayland is very iffy (X11 is fine for the most part). I would highly recommend using Windows for testing this ship, sorry for the inconvenience. Expect potentially better support next ship.", "repo": "https://github.com/Koei32/squirrel", "demo": "https://github.com/Koei32/squirrel/releases/latest"}]...
|
[{"post_id": 63114, "ts": "202 [{"post_id": 63114, "ts": "2026-09-06T18:50:53Z", "hours": 4.0806, "text": "v1.0.0 It’s official. Squirrel is now v1. devlog time is adding logging, updating readme, fixing some small tidbits and polishing up some areas of the app. Squirrel now prints pretty logs to console when running in development mode and writes logs to a file if running in release. Project status i realistically can not get a GUI settings panel done due to me needing to divert my attention to more important life stuff. this right here is probably going to be the extent of work done on Squirrel in stardance. i definitely do plan on working on this in the long term. for example, im not entirely happy and satisfied with the current UI, and global hotkey still does not work on wayland. but right now, more pressing issues are at hand and i cannot give it my all on this project. that said, i do believe that Squirrel is in a very usable 1.0 state, which was my goal. i might push minor updates if the reviews call for fixes/improvements, but definitely no major features. thanks for reading if you made it here."}, {"post_id": 54719, "ts": "2026-08-25T19:56:34Z", "hours": 3.9647, "text": "History persistence configuration now works. setting it to false means history is not retained between sessions. comes with true as default. pinned entries always persist. attachment shows the behavior when persistence is off. Implementation i ended up deciding not to do the in memory database method for this since it was a bit too much added complexity which could be avoided by just adding an additional is_persistent column to the db. im not the happiest about how i’ve implemented this right now but im willing to take that hit right now if it means i dont have to deal with databases. Next all of the config options are now implemented. we are very close to v1.0. expect progress to be rather slow from here on out. i’ve had to divert my attention towards other things and haven’t been able to spend a lot of time working on my projects. maybe i will work on a settings panel. depends on how much work it requires. it’s a maybe. i may just ship it as it stands right now."}, {"post_id": 51853, "ts": "2026-08-21T18:35:09Z", "hours": 0.8633, "text": "Item expiry and pin-preservation expired items are now automatically deleted on program startup. an entry is considered expired when the current time is more than its expires_at value. when pinned, the expires_at attribute is nulled, meaning this entry will never expire. the “Clear all” shortcut Ctrl+Shift+Del now respects pinned entries. it clears everything but leaves pinned entries untouched. Next the ephemeral db shenanigans. also, i have decided that Squirrel needs a settings panel in the frontend for easier config modification. that may or may not happen but it is tempting to do it."}, {"post_id": 51243, "ts": "2026-08-20T19:36:27Z", "hours": 5.9658, "text": "(i genuinely have no idea what to show in the devlog attachment, nothing’s changed visually. so have this stupid ass screenshot.) Massive refactor, breaking changes now that i’ve given myself the liberty to rethink and redesign Squirrel’s data models and storage in a breaking fashion for v1, we have managed to make a good amount of improvements across the board. database schema has been modified to better suit current needs and make it possible to implement the features I desire for v1. it has been a very satisfying refactor. What’s new: use UNIX microsecond timestamp for event ids instead of relying on sqlite autoincrement. this allows us to immediately send a captured event to the frontend without having to await a db write to obtain the event id. this also eliminates the timestamp column for events since the id is also the timestamp. a dedicated BLOB column for image entries to store raw image bytes instead of b64 encoded strings. this makes images weigh about ~33% lighter. decent perf boost. new expires_at column to store when an entry expires. pinned entries have an expiry of NULL . provides the base to actually implement expiring entries. get rid of ClipboardEventNotice since we no longer do the notify frontend -> write to db -> send data to frontend dance. it is now simply send whole event to frontend -> write to db . we enjoy simplifications. (!) as it stands now, old data (if it exists) would immediately be wiped when launching Squirrel v1. i could write some migration code but we’ll see. maybe clipboard data isn’t important enough to bother with migration. Next: actually implement entry expiration: should be trivial, just delete expired entries on launch. ephemeral/persistent toggle: this one is a bit tricky, and will involve some in memory database shenanigans. more details in the devlog when i implement this."}, {"post_id": 47102, "ts": "2026-08-14T19:04:13Z", "hours": 0.8614, "text": "Ignore programs you can specify programs in which Squirrel should not listen to clipboard events. this is useful when you’re working in a program wherein you need to use copy and paste a bunch. ignoring that program would keep your Squirrel history clean. also useful to ignore a program that you regularly copy secrets from. example of notepad being ignored:"}, {"post_id": 46488, "ts": "2026-08-13T18:43:57Z", "hours": 3.6642, "text": "devlog attachment obligation: here is me pasting some files i copied a couple minutes ago after i copied stuff on top of that. that out of the way, devlog. Several things app theme is now configurable from config, so you are not stuck with the system theme if you want to change it. cleanup across the backend; comments, TODOs, error handling, and stuff of the sort. performance enhancement in the clipboard event emitter loop. bugfix in the same loop where the thread panicked if you copied something while the app was launching. merged the config branch. the remaining config options would be better to implement in their own branches. dependabot updates"}, {"post_id": 46172, "ts": "2026-08-13T06:19:26Z", "hours": 3.2672, "text": "Configuration (wip) Squirrel now has a configuration file. squirrel.toml is created in the config directory of your OS (i.e. %appdata%/Squirrel on windows and /home/username/.config/Squirrel on linux), finally allowing some amount of customization support. right now, only the types and the max_image_size config options work. types allows you to choose which kind of clipboard items are captured/ignored. max_image_size is self explanatory. attached is the full config file. the remaining options require a bit of work to implement."}, {"post_id": 44184, "ts": "2026-08-09T19:34:47Z", "hours": 0.5053, "text": "Turns out, copy and paste support for files was a one line diff. also, Squirrel is now v0.4.0, yippee. anyways, moving swiftly on. Planning for a v1.0 Squirrel is now in a state where we have most of the major features i wanted it to have: support for essential clipboard data types, pinning and search. however, it is not quite in a v1.0 state. there are a bunch of things i want to add to polish up the program and make it feel sort of “complete”, which is mainly focusing on some basic configuration ability. since sensible defaults are hard to figure out, i’d rather let the user break things instead of being stuck with my arbitrary decisions. thus, i present the current planned feature list for v1: Configuration : enabling basic behavior customization through a config file (TOML most likely) Program exceptions : dont capture clipboard data on certain programs Auto delete/never store : ability to specify a “shelf life” for items, or whether to store them persistently at all. Disable specific types : ability to pick which kind of clipboard events to capture, i.e. only text or text and images, etc. Configurable image size threshold : currently locked to 5mb, this would allow to specify a custom value. (?) Custom data storage format : still torn on this, but there may be performance to be gained by moving to a data store more geared for our purposes. this list ofcourse, might change. implementing these features would make Squirrel much more flexible, and make it v1 worthy."}, {"post_id": 43522, "ts": "2026-08-08T20:50:19Z", "hours": 5.0344, "text": "Rudimentary file support we now have the most basic kind of file support there could be. which is just storing the path to the file. we then provide a link to the file in the frontend, clicking on which reveals the file in your explorer. we also now have tiny little icons on the entries which indicate the entry type. all icons thanks to https://lucide.dev/ files ofcourse, need a bit more work. right now, you cant really do much except revealing in explorer. i will work on adding copy and paste support for files next, as well as maybe improve the overall performance a bit."}, {"post_id": 40907, "ts": "2026-08-04T18:49:27Z", "hours": 0.4922, "text": "Acting on feedback a shipwright recommended i change my banner to include a screenshot of the program. so we now have a shiny new banner that should look good everywhere on the site. this required me to figure out what dimensions the banner is shown at across the site. i’ve attached a rough template for banners. fitting everything inside the marked areas should make sure your banner isn’t cut off anywhere that matters. one reviewer rightfully couldn’t figure out how to quick paste items. this is a miss on my part because i didn’t really have a list of shortcuts anywhere and kind of just mentioned them in passing in the README. that has been rectified by adding a Shortcuts section to the readme."}, {"post_id": 35201, "ts": "2026-07-26T13:57:06Z", "hours": 0.8461, "text": "Set for ship release is made, README updated. should be good to go."}, {"post_id": 33659, "ts": "2026-07-23T19:06:47Z", "hours": 0.9039, "text": "Basic image cache we now cache the last 32 images, fetching from the backend when required and updating the cache. made the image re-rendering issue instantly better. attached is the demo video i forgot to upload in the second to last devlog showing images in action. Performance images are a difficult thing to handle, especially when dealing with the system clipboard. i’ve made Squirrel as performant as i could to the best of my abilities, which is to say, it’s not the best. it isn’t as rich as i would like it to be, so i might return to this feature to improve it in the future. one restriction i’ve put on images to control some of the chaos is limiting the size to 5 megabytes, meaning any image above 5 megs isn’t registered. i could push that to 10, which is still practically instant. but Squirrel is intended to be a quick clipboard, and not dropbox. so this is my cheaty little escape. maybe i’ll relax the limit in the future if 5mb is really restrictive. Next? i’ll probably bump the minor version and ship (i wouldn’t dare a v1.0 currently). i’d say pinning and image support is enough to warrant a second ship. beyond that though, stands file(s) support, so a lot of decision making on how i want it to work to have a good balance of performance and usefulness. a bit of a lengthy devlog this one, and i appreciate if you read all that. but i wanted to clear up some things for myself and just have a frame of reference where Squirrel stands right now after returning from a development break."}, {"post_id": 33376, "ts": "2026-07-23T08:11:18Z", "hours": 0.3458, "text": "Image branch is merged yay, yippee even. next i need to implement a frontend cache to store the last X entries’ contents, particularly for images. the way it works right now, every time the images are re-rendered (due to being filtered by search, for example), content is fetched from the backend. this ofcourse, is less than ideal. but shouldnt be a lot of trouble to fix."}, {"post_id": 32539, "ts": "2026-07-21T19:47:15Z", "hours": 4.9058, "text": "Bunch of things Image Improvements some performance enhancements with images. made the clipboard image data fetching happen in Tauri’s dedicated thread pool, effectively parallelizing the operation. this made image copying a lot faster. image support should be merged into master soon enough. Lazy loading we now have lazy loading for images. image data isn’t loaded until it is scrolled into view. makes startup quick. CI enabled Dependabot updates and optimized the lint workflows for PRs. previously, all of the project was lint+checked on PR when changing anything. now it only checks the part that’s changed (i.e. frontend or backend)"}, {"post_id": 31397, "ts": "2026-07-19T18:47:59Z", "hours": 4.4964, "text": "Progress on images we finally have some form of working image support in Squirrel. This required even more sweeping refactoring changes to the codebase, which was a bit painful and im sure the new code isn’t the best quality either and will bite me later, but we’ll deal with it when we deal with it. getting images is a bit slow however, as right now we’re storing the image as base64 encoded PNGs. i plan to use the SQLite blob type to just store the raw bytes and pass that back and forth to improve the performance a bit (maybe some sort of caching as well?). there are also other areas where that are to be improved but i wanted to get a somewhat working prototype as fast as i can. explaining the silence i’ve been distracted by some life stuff, making me neglect my projects a bit. i also got distracted by the ESP32, fun little device. that is where the 9 days went. but, expect me to work semi-regularly again. thanks for reading."}, {"post_id": 26042, "ts": "2026-07-10T16:57:23Z", "hours": 3.0411, "text": "Lots of refactoring (apologies for the uneventful devlog attachment, i have nothing interesting to show except just code) to make it a bit more manageable when adding image support, a bunch of refactoring and reorganizing has been done in the backend. like i’ve previously mentioned, the codebase leaned too hard into only supporting text events. this fixes that. today’s changes also make the internal communication a bit more efficient. there are a couple more places where performance can be improved. and we will need every bit of performance we can get when dealing with image data. Changelog (shoutout @Hridya for stardance utils, just discovered this) 5b3f285 refactor: move clipboard structures into separate file b3ab1c8 perf: only get required data from db when copying an item 69dc003 refactor: modify data types to enable addition of image support Release CI (wip) currently writing the Release workflow for Squirrel. i have to figure out how to upload the artifacts to a github release with proper versioning and all that. the strategy is to run the workflow whenever something is pushed to the release branch. that is all for today."}, {"post_id": 25496, "ts": "2026-07-09T20:07:22Z", "hours": 0.7936, "text": "Version bump and docs bumped the minor version. Squirrel is officially v0.2.0, yippi. plus, updated the README, adding more explanation about the Wayland issue. also showcased the pin feature. i’ll try to whip up a release workflow to add to my CI tomorrow. I’m debating whether i should ship v0.2.0. the only major change from 0.1.0 is the addition of pinning. i might wait until i have image support and ship later, or i might change my mind, im unsure."}, {"post_id": 24896, "ts": "2026-07-08T19:03:24Z", "hours": 1.2706, "text": "Closed 1 (one) issue moved the global launch hotkey logic from the frontend to the backend. it didn’t behave well in certain situations, failing to activate and bringing up the Squirrel window. Starting work on images we’re experimenting with images. the current functionality is very much caveman and needs a lot of attention to make it actually usable. i’ve decided to stick with clipboard_rs for now, we’ll see how that pans out."}, {"post_id": 24277, "ts": "2026-07-07T18:55:23Z", "hours": 4.1067, "text": "Sadness so i just found out that Tauri’s global shortcut plugin does not yet support Wayland, which is sad to discover this deep into development. but, there is an active PR addressing this issue , which is nice. what this means for Squirrel is that proper Wayland support will unfortunately have to wait until this is merged. the joys of using a not-yet-completely-matured framework i suppose. though it does make me feel a bit guilty for calling Squirrel “cross-platform”. in other news (changelog): Squirrel now has a --silent launch flag that makes it start with the window hidden. useful when the app is set to launch on system startup. Squirrel now makes sure there is only one instance of it running. The shortcut Ctrl+Shift+Del will clear history permanently. (i forgot about clear history functionality in the first ship even though the code for it existed, there just wasnt a button in the frontend to call it)"}, {"post_id": 22186, "ts": "2026-07-04T14:50:25Z", "hours": 4.1014, "text": "CI dipped my toes into github workflows, messed around, an got check&lint workflows working on pull requests. will make a release workflow some time later. this change however, was only a part of this devlog’s time. Bad decisions catching up turns out, using clipboard_rs might’ve been the subpar choice for interfacing with the system clipboard. while clipboard_rs provides a easy way to listen to clipboard changes and get text from it, fetching raw clipboard data is buggy and inconvenient. when i sat down to work on image support, i was immediately brick-walled by how messy it is to just get raw data first. it would’ve been simple if i was building for just one target os but considering both windows and linux, it’s less than ideal. on top of this, the documentation for the crate is very lackluster. all this to say, i am very much debating migrating my clipboard stuff to using arboard . arboard doesnt provide direct functionality to listen to clipboard changes so i will have to implement that myself. but, it does have first class support for wayland. a very enticing choice, but we will see."}, {"post_id": 18315, "ts": "2026-06-29T12:51:11Z", "hours": 2.7625, "text": "Navigation improvements slight refactoring and bugfixes for frontend navigation. the navigation was kinda wonky before this and sometimes wouldn’t highlight the entry that was actually selected in the background. most of this devlog’s work was to make it so that what you see is what you get. also, a touch of color has been added to pinned entries (tentative)."}, {"post_id": 17064, "ts": "2026-06-27T18:22:53Z", "hours": 2.5814, "text": "Pins we now have basic entry pinning support. this was a bit less difficult than i thought it was going to be. but now you can pin an item and it always stays at the top of the list (unless you’re searching). anyways, that is one item ticked off the todo list. apart from that, i had to do some minor backend refactoring and reorganizing so that it is easier to build more upon. next? image and/or file copy support. this is one monumental task. i think the way we’ll approach this is by storing the entire file if it’s smaller than, say 5mb, and if it is larger, we just store the path to the file. we dont want to store the user’s 5gb video file they just copied. for images, i think the play is to generate a low quality thumbnail of the image to display in the app. for files, if it is a text file, we can show just the first 5 or so lines with a link to the file, other wise we’ll just give a link. until now, the code i’ve written sadly relies too much on the fact that every event is a text copy as we ignore everything else. it’s going to be a rather painstaking experience refactoring the codebase. the challenge is going to be keeping Squirrel quick and responsive while supporting all of this additional functionality."}, {"post_id": 14387, "ts": "2026-06-23T14:34:01Z", "hours": 2.1467, "text": "even more bugfixes ofcourse critical bugs pop up when im trying to release. the system tray icon wouldnt show up when running the single-file executable on any platform. that is now fixed. plus a couple more things have been done to make Squirrel behave like a good cross platform app, like storing the data in the OS’s appdata directory. there are some more things i would like to do but i think the app is in a releasable state and i’ve wanted to ship it for a while. I’ve set up the GitHub release and all the relevant instructions in the README. might be last devlog before ship #1."}, {"post_id": 11396, "ts": "2026-06-18T17:34:03Z", "hours": 1.2267, "text": "more polish and minor fixes more readme refining, linux support clarity, and installation instructions. also, i completely forgot about the tray icon actually needing an image icon, so until now it was just blank. anyways, we now have an icon. next, we put out releases on github and ship, hopefully. unfortunately we have to wait until tomorrow for linux builds."}, {"post_id": 10100, "ts": "2026-06-16T18:11:51Z", "hours": 1.3953, "text": "readme and polishing preparing to ship, writing docs, recording demos and stuff. there are a couple other things i want to sort out but i might ship in a few days."}, {"post_id": 9339, "ts": "2026-06-15T17:46:59Z", "hours": 2.4394, "text": "Dark theme! just glorious there isn’t a theme toggle button yet, it just goes off of your system’s theme for now. now that the colors are roughly standardized across the ui, tweaking the contrast and palette is a much more pleasant experience."}, {"post_id": 8830, "ts": "2026-06-14T18:02:58Z", "hours": 0.6531, "text": "wip dark theme support i want squirrel to use whatever theme the system is set to. currently it’s forced light mode but dark mode is something i’d be crucified for not adding. unfortunately, I in my infinite wisdom didn’t have the foresight to have consistent colors across even the light theme itself. there’s just random #aaa , #666 , etc colors everywhere where i went with what looked good. so work needs to be done to standardize the colors with css variables. then just modify the variables for dark theme accordingly. yes, i’m aware this is standard practice."}, {"post_id": 8047, "ts": "2026-06-13T12:50:39Z", "hours": 1.6972, "text": "Ticked a couple of items off the todo list: Squirrel now loads the history on launch. doing this was easier than i expected, but it’s a very naive way to do it (literally just send all of the history on launch). we also now have a logo. im no graphic designer by any means so this is the best i could do. shows in the titlebar and when your history is empty. check the project banner for a larger version if you feel like it. i might change the logo in the future, i just wanted an icon. todo pinning items test on linux"}, {"post_id": 7571, "ts": "2026-06-12T17:36:06Z", "hours": 1.2175, "text": "nothing significant. just docs and comments and cleanup. slowly making progress planning wise into loading the history at launch. the idea is to use a custom Tauri IPC Channel for incrementally streaming data to the frontend on app start. channels are supposedly faster for this and are meant for continuous messages like this in comparison to events. from the Tauri docs: Channels are designed to be fast and deliver ordered data. They are used internally for streaming operations such as download progress, child process output and WebSocket messages. i may implement a lazy loading system if i feel like it. i have nothing interesting to show so have a squirrel again"}, {"post_id": 6978, "ts": "2026-06-11T18:27:06Z", "hours": 4.3067, "text": "Item search i’ve wanted to add this for a long time but it needed a lot of refactoring in the frontend so i put it off for later. it is now later. we have instant search. press / or any of the non shortcut keys to start searching. frontend logic has had a big refactor making navigation and other operations more predictable and less wonky. it took a bit of battling with the specifics of Svelte’s each loop and bind:this directive but it was worth it. there is still some cleanup that can be done, the code is not idiomatic by a long shot, but im happy we have a very essential feature complete. changelog: add search fix broken arrow navigation and copy/delete operations applying to wrong entries. make window size a bit bigger by default (might change later) make copy icon turn into a green checkmark so that there is some visual feedback on copying make the database file always save at the executable’s location. todo ! still need to test linux ! load history on launch app icon and branding"}, {"post_id": 6358, "ts": "2026-06-10T18:17:34Z", "hours": 5.3111, "text": "Frontend improvements we now have buttons on the clipboard entries so you can also use the mouse to perform the basic functions like copy, delete, etc. (pins wip). there have also been a bunch of UI improvements and tweaks in general. deleting feels instant. navigation is fixed (for the most part). Backend slight optimization in the pasting operation, plus a couple of fixes and doc comments."}, {"post_id": 5833, "ts": "2026-06-09T19:30:37Z", "hours": 0.4139, "text": "custom scroll bar that is it, enjoy."}, {"post_id": 5013, "ts": "2026-06-08T17:39:05Z", "hours": 2.1789, "text": "UI tweaks as i mentioned before, im in the process of simplifying the UI. i hid the native titlebar and made a custom one. also tweaked the shape of the window to feel more like a clipboard. that is all that’s changed significantly this devlog. development will probably slow down a little bit in the coming days because i have irl stuff to deal with."}, {"post_id": 4379, "ts": "2026-06-07T18:13:01Z", "hours": 4.3942, "text": "more backend there isnt any significant change in the frontend but there’s a ton of backend refactoring and bugfixes. performance should be slightly better now with large copy/pastes. changelog: associate IDs with clipboard events so that we only have to pass IDs between the frontend and backend instead of the whole content. make paste operation more efficient ignore clipboard events caused by Squirrel itself (a bit hacky to achieve this but good enough) Quit button in tray icon menu so Squirrel can actually be closed (there was no way to close it before except killing it) make the shortcut to bring up Squirrel work in almost all situations refactor AppState + some other things more cleanup and comments anyways, attached image is the tentative color palette i might implement. i have no idea how to do this and which colors to use where or if it would even look good so i might just ditch it in the future. we’ll see. todo still have to test on linux and load history on app launch. probably will work on that next."}, {"post_id": 3711, "ts": "2026-06-06T19:20:52Z", "hours": 3.0414, "text": "we got shortcuts we now have Ctrl+Shift+V as the shortcut to bring up Squirrel. (i know it’s used for “Paste as plain text” in some programs and used for “Paste in place” in photoshop but whatever). once up, you can select items from your history using arrow keys. pressing Return pastes the selected item into your last window. we’re having some issues with permissions but i’ll look into it. i’m now slowly simplifying the UI to be geared more towards improving user ergonomics and make it something that is not cluttered and easy to use. apart from this, i’ve cleaned up the code a bit removing stray debug prints and random commented code, it was getting out of hand. will write proper doc comments soon. todo i have to make the app load the user’s past clipboard history on startup lmao i totally forgot i have to start testing on linux, urgently. i feel i should make devlogs more often. even if nothing’s changed in the actual project, detailing plans helps me keep track of things personally. that’s pretty much it, stay tuned. edit: please ignore the VC_UNDEFINED keys in the input overlay in the attached video, it’s Enigo inputs not translating well."}, {"post_id": 2305, "ts": "2026-06-04T18:30:06Z", "hours": 4.1042, "text": "a bunch of backend improvements: store timestamps for copy events more efficient message passing between frontend and backend Clear History functionality system tray (!) (pls ignore the missing icon in the tray, we don’t have an icon for the app yet) slightly better UI on the topic of UI, i’m getting around to deciding a color palette for the app. i will probably work more on the UI for a bit before switching gears to add more functionality (like image support). if i decide i want to ship early, v0.1 will probably go without image support and just get a lot of polish with text only functionality."}, {"post_id": 1590, "ts": "2026-06-03T18:26:51Z", "hours": 3.9078, "text": "frontend improvements! spent some time battling css for this relatively simple UI but it’s atleast somewhat pleasant to look at. will work on either image support or making it the app run in the background next."}, {"post_id": 922, "ts": "2026-06-02T17:41:08Z", "hours": 4.1017, "text": "nothing much has changed visually, but we now have a database to store the user’s clipboard actions. plus some refactoring changes and a bunch of minor improvements here and there. i have nothing to show for it except code so instead have an image of a squirrel"}, {"post_id": 261, "ts": "2026-06-01T13:38:29Z", "hours": 2.5611, "text": "init. figuring out Tauri’s emit/invoke mechanism and capturing clipboard copy events. slow start. we’ll do the color palette and icon and all the frontend pleasantries at a later date."}]...
|
Title: Squirrel by @Koei | Stardance
Devlogs:
ini Title: Squirrel by @Koei | Stardance
Devlogs:
init. figuring out Tauri’s emit/invoke mechanism and capturing clipboard copy events. slow start. we’ll do the color palette and icon and all the frontend pleasantries at a later date.
nothing much has changed visually, but we now have a database to store the user’s clipboard actions. plus some refactoring changes and a bunch of minor improvements here and there. i have nothing to show for it except code so instead have an image of a squirrel
frontend improvements! spent some time battling css for this relatively simple UI but it’s atleast somewhat pleasant to look at. will work on either image support or making it the app run in the background next.
a bunch of backend improvements: store timestamps for copy events more efficient message passing between frontend and backend Clear History functionality system tray (!) (pls ignore the missing icon in the tray, we don’t have an icon for the app yet) slightly better UI on the topic of UI, i’m getting around to deciding a color palette for the app. i will probably work more on the UI for a bit before switching gears to add more functionality (like image support). if i decide i want to ship early, v0.1 will probably go without image support and just get a lot of polish with text only functionality.
we got shortcuts we now have Ctrl+Shift+V as the shortcut to bring up Squirrel. (i know it’s used for “Paste as plain text” in some programs and used for “Paste in place” in photoshop but whatever). once up, you can select items from your history using arrow keys. pressing Return pastes the selected item into your last window. we’re having some issues with permissions but i’ll look into it. i’m now slowly simplifying the UI to be geared more towards improving user ergonomics and make it something that is not cluttered and easy to use. apart from this, i’ve cleaned up the code a bit removing stray debug prints and random commented code, it was getting out of hand. will write proper doc comments soon. todo i have to make the app load the user’s past clipboard history on startup lmao i totally forgot i have to start testing on linux, urgently. i feel i should make devlogs more often. even if nothing’s changed in the actual project, detailing plans helps me keep track of things personally. that’s pretty much it, stay tuned. edit: please ignore the VC_UNDEFINED keys in the input overlay in the attached video, it’s Enigo inputs not translating well.
more backend there isnt any significant change in the frontend but there’s a ton of backend refactoring and bugfixes. performance should be slightly better now with large copy/pastes. changelog: associate IDs with clipboard events so that we only have to pass IDs between the frontend and backend instead of the whole content. make paste operation more efficient ignore clipboard events caused by Squirrel itself (a bit hacky to achieve this but good enough) Quit button in tray icon menu so Squirrel can actually be closed (there was no way to close it before except killing it) make the shortcut to bring up Squirrel work in almost all situations refactor AppState + some other things more cleanup and comments anyways, attached image is the tentative color palette i might implement. i have no idea how to do this and which colors to use where or if it would even look good so i might just ditch it in the future. we’ll see. todo still have to test on linux and load history on app launch. probably will work on that next.
UI tweaks as i mentioned before, im in the process of simplifying the UI. i hid the native titlebar and made a custom one. also tweaked the shape of the window to feel more like a clipboard. that is all that’s changed significantly this devlog. development will probably slow down a little bit in the coming days because i have irl stuff to deal with.
custom scroll bar that is it, enjoy.
Frontend improvements we now have buttons on the clipboard entries so you can also use the mouse to perform the basic functions like copy, delete, etc. (pins wip). there have also been a bunch of UI improvements and tweaks in general. deleting feels instant. navigation is fixed (for the most part). Backend slight optimization in the pasting operation, plus a couple of fixes and doc comments.
Item search i’ve wanted to add this for a long time but it needed a lot of refactoring in the frontend so i put it off for later. it is now later. we have instant search. press / or any of the non shortcut keys to start searching. frontend logic has had a big refactor making navigation and other operations more predictable and less wonky. it took a bit of battling with the specifics of Svelte’s each loop and bind:this directive but it was worth it. there is still some cleanup that can be done, the code is not idiomatic by a long shot, but im happy we have a very essential feature complete. changelog: add search fix broken arrow navigation and copy/delete operations applying to wrong entries. make window size a bit bigger by default (might change later) make copy icon turn into a green checkmark so that there is some visual feedback on copying make the database file always save at the executable’s location. todo ! still need to test linux ! load history on launch app icon and branding
nothing significant. just docs and comments and cleanup. slowly making progress planning wise into loading the history at launch. the idea is to use a custom Tauri IPC Channel for incrementally streaming data to the frontend on app start. channels are supposedly faster for this and are meant for continuous messages like this in comparison to events. from the Tauri docs: Channels are designed to be fast and deliver ordered data. They are used internally for streaming operations such as download progress, child process output and WebSocket messages. i may implement a lazy loading system if i feel like it. i have nothing interesting to show so have a squirrel again
Ticked a couple of items off the todo list: Squirrel now loads the history on launch. doing this was easier than i expected, but it’s a very naive way to do it (literally just send all of the history on launch). we also now have a logo. im no graphic designer by any means so this is the best i could do. shows in the titlebar and when your history is empty. check the project banner for a larger version if you feel like it. i might change the logo in the future, i just wanted an icon. todo pinning items test on linux
wip dark theme support i want squirrel to use whatever theme the system is set to. currently it’s forced light mode but dark mode is something i’d be crucified for not adding. unfortunately, I in my infinite wisdom didn’t have the foresight to have consistent colors across even the light theme itself. there’s just random #aaa , #666 , etc colors everywhere where i went with what looked good. so work needs to be done to standardize the colors with css variables. then just modify the variables for dark theme accordingly. yes, i’m aware this is standard practice.
Dark theme! just glorious there isn’t a theme toggle button yet, it just goes off of your system’s theme for now. now that the colors are roughly standardized across the ui, tweaking the contrast and palette is a much more pleasant experience.
readme and polishing preparing to ship, writing docs, recording demos and stuff. there are a couple other things i want to sort out but i might ship in a few days.
more polish and minor fixes more readme refining, linux support clarity, and installation instructions. also, i completely forgot about the tray icon actually needing an image icon, so until now it was just blank. anyways, we now have an icon. next, we put out releases on github and ship, hopefully. unfortunately we have to wait until tomorrow for linux builds.
even more bugfixes ofcourse critical bugs pop up when im trying to release. the system tray icon wouldnt show up when running the single-file executable on any platform. that is now fixed. plus a couple more things have been done to make Squirrel behave like a good cross platform app, like storing the data in the OS’s appdata directory. there are some more things i would like to do but i think the app is in a releasable state and i’ve wanted to ship it for a while. I’ve set up the GitHub release and all the relevant instructions in the README. might be last devlog before ship #1.
Pins we now have basic entry pinning support. this was a bit less difficult than i thought it was going to be. but now you can pin an item and it always stays at the top of the list (unless you’re searching). anyways, that is one item ticked off the todo list. apart from that, i had to do some minor backend refactoring and reorganizing so that it is easier to build more upon. next? image and/or file copy support. this is one monumental task. i think the way we’ll approach this is by storing the entire file if it’s smaller than, say 5mb, and if it is larger, we just store the path to the file. we dont want to store the user’s 5gb video file they just copied. for images, i think the play is to generate a low quality thumbnail of the image to display in the app. for files, if it is a text file, we can show just the first 5 or so lines with a link to the file, other wise we’ll just give a link. until now, the code i’ve written sadly relies too much on the fact that every event is a text copy as we ignore everything else. it’s going to be a rather painstaking experience refactoring the codebase. the challenge is going to be keeping Squirrel quick and responsive while supporting all of this additional functionality.
Navigation improvements slight refactoring and bugfixes for frontend navigation. the navigation was kinda wonky before this and sometimes wouldn’t highlight the entry that was actually selected in the background. most of this devlog’s work was to make it so that what you see is what you get. also, a touch of color has been added to pinned entries (tentative).
CI dipped my toes into github workflows, messed around, an got check&lint workflows working on pull requests. will make a release workflow some time later. this change however, was only a part of this devlog’s time. Bad decisions catching up turns out, using clipboard_rs might’ve been the subpar choice for interfacing with the system clipboard. while clipboard_rs provides a easy way to listen to clipboard changes and get text from it, fetching raw clipboard data is buggy and inconvenient. when i sat down to work on image support, i was immediately brick-walled by how messy it is to just get raw data first. it would’ve been simple if i was building for just one target os but considering both windows and linux, it’s less than ideal. on top of this, the documentation for the crate is very lackluster. all this to say, i am very much debating migrating my clipboard stuff to using arboard . arboard doesnt provide direct functionality to listen to clipboard changes so i will have to implement that myself. but, it does have first class support for wayland. a very enticing choice, but we will see.
Sadness so i just found out that Tauri’s global shortcut plugin does not yet support Wayland, which is sad to discover this deep into development. but, there is an active PR addressing this issue , which is nice. what this means for Squirrel is that proper Wayland support will unfortunately have to wait until this is merged. the joys of using a not-yet-completely-matured framework i suppose. though it does make me feel a bit guilty for calling Squirrel “cross-platform”. in other news (changelog): Squirrel now has a --silent launch flag that makes it start with the window hidden. useful when the app is set to launch on system startup. Squirrel now makes sure there is only one instance of it running. The shortcut Ctrl+Shift+Del will clear history permanently. (i forgot about clear history functionality in the first ship even though the code for it existed, there just wasnt a button in the frontend to call it)
Closed 1 (one) issue moved the global launch hotkey logic from the frontend to the backend. it didn’t behave well in certain situations, failing to activate and bringing up the Squirrel window. Starting work on images we’re experimenting with images. the current functionality is very much caveman and needs a lot of attention to make it actually usable. i’ve decided to stick with clipboard_rs for now, we’ll see how that pans out.
Version bump and docs bumped the minor version. Squirrel is officially v0.2.0, yippi. plus, updated the README, adding more explanation about the Wayland issue. also showcased the pin feature. i’ll try to whip up a release workflow to add to my CI tomorrow. I’m debating whether i should ship v0.2.0. the only major change from 0.1.0 is the addition of pinning. i might wait until i have image support and ship later, or i might change my mind, im unsure.
Lots of refactoring (apologies for the uneventful devlog attachment, i have nothing interesting to show except just code) to make it a bit more manageable when adding image support, a bunch of refactoring and reorganizing has been done in the backend. like i’ve previously mentioned, the codebase leaned too hard into only supporting text events. this fixes that. today’s changes also make the internal communication a bit more efficient. there are a couple more places where performance can be improved. and we will need every bit of performance we can get when dealing with image data. Changelog (shoutout @Hridya for stardance utils, just discovered this) 5b3f285 refactor: move clipboard structures into separate file b3ab1c8 perf: only get required data from db when copying an item 69dc003 refactor: modify data types to enable addition of image support Release CI (wip) currently writing the Release workflow for Squirrel. i have to figure out how to upload the artifacts to a github release with proper versioning and all that. the strategy is to run the workflow whenever something is pushed to the release branch. that is all for today.
Progress on images we finally have some form of working image support in Squirrel. This required even more sweeping refactoring changes to the codebase, which was a bit painful and im sure the new code isn’t the best quality either and will bite me later, but we’ll deal with it when we deal with it. getting images is a bit slow however, as right now we’re storing the image as base64 encoded PNGs. i plan to use the SQLite blob type to just store the raw bytes and pass that back and forth to improve the performance a bit (maybe some sort of caching as well?). there are also other areas where that are to be improved but i wanted to get a somewhat working prototype as fast as i can. explaining the silence i’ve been distracted by some life stuff, making me neglect my projects a bit. i also got distracted by the ESP32, fun little device. that is where the 9 days went. but, expect me to work semi-regularly again. thanks for reading.
Bunch of things Image Improvements some performance enhancements with images. made the clipboard image data fetching happen in Tauri’s dedicated thread pool, effectively parallelizing the operation. this made image copying a lot faster. image support should be merged into master soon enough. Lazy loading we now have lazy loading for images. image data isn’t loaded until it is scrolled into view. makes startup quick. CI enabled Dependabot updates and optimized the lint workflows for PRs. previously, all of the project was lint+checked on PR when changing anything. now it only checks the part that’s changed (i.e. frontend or backend)
Image branch is merged yay, yippee even. next i need to implement a frontend cache to store the last X entries’ contents, particularly for images. the way it works right now, every time the images are re-rendered (due to being filtered by search, for example), content is fetched from the backend. this ofcourse, is less than ideal. but shouldnt be a lot of trouble to fix.
Basic image cache we now cache the last 32 images, fetching from the backend when required and updating the cache. made the image re-rendering issue instantly better. attached is the demo video i forgot to upload in the second to last devlog showing images in action. Performance images are a difficult thing to handle, especially when dealing with the system clipboard. i’ve made Squirrel as performant as i could to the best of my abilities, which is to say, it’s not the best. it isn’t as rich as i would like it to be, so i might return to this feature to improve it in the future. one restriction i’ve put on images to control some of the chaos is limiting the size to 5 megabytes, meaning any image above 5 megs isn’t registered. i could push that to 10, which is still practically instant. but Squirrel is intended to be a quick clipboard, and not dropbox. so this is my cheaty little escape. maybe i’ll relax the limit in the future if 5mb is really restrictive. Next? i’ll probably bump the minor version and ship (i wouldn’t dare a v1.0 currently). i’d say pinning and image support is enough to warrant a second ship. beyond that though, stands file(s) support, so a lot of decision making on how i want it to work to have a good balance of performance and usefulness. a bit of a lengthy devlog this one, and i appreciate if you read all that. but i wanted to clear up some things for myself and just have a frame of reference where Squirrel stands right now after returning from a development break.
Set for ship release is made, README updated. should be good to go.
Acting on feedback a shipwright recommended i change my banner to include a screenshot of the program. so we now have a shiny new banner that should look good everywhere on the site. this required me to figure out what dimensions the banner is shown at across the site. i’ve attached a rough template for banners. fitting everything inside the marked areas should make sure your banner isn’t cut off anywhere that matters. one reviewer rightfully couldn’t figure out how to quick paste items. this is a miss on my part because i didn’t really have a list of shortcuts anywhere and kind of just mentioned them in passing in the README. that has been rectified by adding a Shortcuts section to the readme.
Rudimentary file support we now have the most basic kind of file support there could be. which is just storing the path to the file. we then provide a link to the file in the frontend, clicking on which reveals the file in your explorer. we also now have tiny little icons on the entries which indicate the entry type. all icons thanks to https://lucide.dev/ files ofcourse, need a bit more work. right now, you cant really do much except revealing in explorer. i will work on adding copy and paste support for files next, as well as maybe improve the overall performance a bit.
Turns out, copy and paste support for files was a one line diff. also, Squirrel is now v0.4.0, yippee. anyways, moving swiftly on. Planning for a v1.0 Squirrel is now in a state where we have most of the major features i wanted it to have: support for essential clipboard data types, pinning and search. however, it is not quite in a v1.0 state. there are a bunch of things i want to add to polish up the program and make it feel sort of “complete”, which is mainly focusing on some basic configuration ability. since sensible defaults are hard to figure out, i’d rather let the user break things instead of being stuck with my arbitrary decisions. thus, i present the current planned feature list for v1: Configuration : enabling basic behavior customization through a config file (TOML most likely) Program exceptions : dont capture clipboard data on certain programs Auto delete/never store : ability to specify a “shelf life” for items, or whether to store them persistently at all. Disable specific types : ability to pick which kind of clipboard events to capture, i.e. only text or text and images, etc. Configurable image size threshold : currently locked to 5mb, this would allow to specify a custom value. (?) Custom data storage format : still torn on this, but there may be performance to be gained by moving to a data store more geared for our purposes. this list ofcourse, might change. implementing these features would make Squirrel much more flexible, and make it v1 worthy.
Configuration (wip) Squirrel now has a configuration file. squirrel.toml is created in the config directory of your OS (i.e. %appdata%/Squirrel on windows and /home/username/.config/Squirrel on linux), finally allowing some amount of customization support. right now, only the types and the max_image_size config options work. types allows you to choose which kind of clipboard items are captured/ignored. max_image_size is self explanatory. attached is the full config file. the remaining options require a bit of work to implement.
devlog attachment obligation: here is me pasting some files i copied a couple minutes ago after i copied stuff on top of that. that out of the way, devlog. Several things app theme is now configurable from config, so you are not stuck with the system theme if you want to change it. cleanup across the backend; comments, TODOs, error handling, and stuff of the sort. performance enhancement in the clipboard event emitter loop. bugfix in the same loop where the thread panicked if you copied something while the app was launching. merged the config branch. the remaining config options would be better to implement in their own branches. dependabot updates
Ignore programs you can specify programs in which Squirrel should not listen to clipboard events. this is useful when you’re working in a program wherein you need to use copy and paste a bunch. ignoring that program would keep your Squirrel history clean. also useful to ignore a program that you regularly copy secrets from. example of notepad being ignored:
(i genuinely have no idea what to show in the devlog attachment, nothing’s changed visually. so have this stupid ass screenshot.) Massive refactor, breaking changes now that i’ve given myself the liberty to rethink and redesign Squirrel’s data models and storage in a breaking fashion for v1, we have managed to make a good amount of improvements across the board. database schema has been modified to better suit current needs and make it possible to implement the features I desire for v1. it has been a very satisfying refactor. What’s new: use UNIX microsecond timestamp for event ids instead of relying on sqlite autoincrement. this allows us to immediately send a captured event to the frontend without having to await a db write to obtain the event id. this also eliminates the timestamp column for events since the id is also the timestamp. a dedicated BLOB column for image entries to store raw image bytes instead of b64 encoded strings. this makes images weigh about ~33% lighter. decent perf boost. new expires_at column to store when an entry expires. pinned entries have an expiry of NULL . provides the base to actually implement expiring entries. get rid of ClipboardEventNotice since we no longer do the notify frontend -> write to db -> send data to frontend dance. it is now simply send whole event to frontend -> write to db . we enjoy simplifications. (!) as it stands now, old data (if it exists) would immediately be wiped when launching Squirrel v1. i could write some migration code but we’ll see. maybe clipboard data isn’t important enough to bother with migration. Next: actually implement entry expiration: should be trivial, just delete expired entries on launch. ephemeral/persistent toggle: this one is a bit tricky, and will involve some in memory database shenanigans. more details in the devlog when i implement this.
Item expiry and pin-preservation expired items are now automatically deleted on program startup. an entry is considered expired when the current time is more than its expires_at value. when pinned, the expires_at attribute is nulled, meaning this entry will never expire. the “Clear all” shortcut Ctrl+Shift+Del now respects pinned entries. it clears everything but leaves pinned entries untouched. Next the ephemeral db shenanigans. also, i have decided that Squirrel needs a settings panel in the frontend for easier config modification. that may or may not happen but it is tempting to do it.
History persistence configuration now works. setting it to false means history is not retained between sessions. comes with true as default. pinned entries always persist. attachment shows the behavior when persistence is off. Implementation i ended up deciding not to do the in memory database method for this since it was a bit too much added complexity which could be avoided by just adding an additional is_persistent column to the db. im not the happiest about how i’ve implemented this right now but im willing to take that hit right now if it means i dont have to deal with databases. Next all of the config options are now implemented. we are very close to v1.0. expect progress to be rather slow from here on out. i’ve had to divert my attention towards other things and haven’t been able to spend a lot of time working on my projects. maybe i will work on a settings panel. depends on how much work it requires. it’s a maybe. i may just ship it as it stands right now.
v1.0.0 It’s official. Squirrel is now v1. devlog time is adding logging, updating readme, fixing some small tidbits and polishing up some areas of the app. Squirrel now prints pretty logs to console when running in development mode and writes logs to a file if running in release. Project status i realistically can not get a GUI settings panel done due to me needing to divert my attention to more important life stuff. this right here is probably going to be the extent of work done on Squirrel in stardance. i definitely do plan on working on this in the long term. for example, im not entirely happy and satisfied with the current UI, and global hotkey still does not work on wayland. but right now, more pressing issues are at hand and i cannot give it my all on this project. that said, i do believe that Squirrel is in a very usable 1.0 state, which was my goal. i might push minor updates if the reviews call for fixes/improvements, but definitely no major features. thanks for reading if you made it here.
Ships:
v0.1.0 Squirrel is a clipboard manager that is meant to be simple and intuitive. It remembers all the text you copy allowing you to paste whatever into wherever. You can also quickly search through your history. Squirrel is meant to be cross-platform, but for this release, Linux support on Wayland is very iffy (X11 is fine for the most part). I would highly recommend using Windows for testing this ship, sorry for the inconvenience. Expect potentially better support next ship.
v0.3.0 Squirrel is a clipboard manager that is meant to be simple and intuitive. 2 new features in this version, namely pinning and image support. There are performance improvements as well as slight visual tweaks. Read the README for more info.
v1.0.0 Squirrel is a clipboard manager for Windows and X11 Linux that is meant to be simple and intuitive. This major release overhauls the data storage schema to be more efficient, faster, and reliable. There are significant performance improvements. This release also adds configurability to Squirrel, allowing basic but much needed customization, and polishes up the overall app. Check the README for more information....
|
1792986543.9706123
|
1793072943.9706123
|
|
15290
|
Undertale OS by @ThaoVi | Stardance
|
ThaoVi
|
2
|
29.0
|
190
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T13:02:50Z", "hours": 15.0, "multiplier": 12.46, "payout": 190, "blessing": "neutral", "text": "WebOS I made an Undertale themed WebOs presenting me, with some other apps such as countdowns! This is the very first Stardance project i did, and also very first html project overall (including webos1) Features A top-bar with a live clock and a healthbar Draggable windows Closable windows Applications TrueNotes (personal) A personnal app where I put thoughts about true crime stories I enjoyed :D The design is centered around Undertale’s field of flowers, with each footstep being a story; I wanted to make it more original than the side bar I had in WebOS 1. To do app A very basic to do app. Countdown app A simple countdown app where you can set countdowns and a new window appears for each countdown. They are editable and deleteable :D You can also change the precision shown on each windows (in case seeing seconds stresses you out) Skeletale (personal) An undertale - anatomy based “autobiography” of me, it’s part of my WebOs 1 and I haven’t really updated it since. Future plans Undertale music player An intro page (WIP) where you can chose your character and background image. Make the notes apps more interactive by making the user add their own notes Undertale references The close button is a heart and it breaks when you hover on it to close the window! The field in TrueNotes are the yellow flowers from undertale. The health bar is also a reference from undertale. The fonts! They are from https://github.com/hujgup/Undertale-CSS", "repo": "https://github.com/TVDVT/webOS", "demo": "https://tvdvt.github.io/webOS/"}, {"ship_num": 2, "ts": "2026-06-27T15:46:19Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I just finished my first WebOS. It has a top bar, welcome window and two apps. All the windows are draggable and closable, and both of the apps are representative of me :D One is about the true crimes I enjoy and the other one is a presentation of me through a skeleton. I had zero experience in website coding until I started the project, I am very proud of the result!", "repo": "https://github.com/TVDVT/webOS", "demo": "https://tvdvt.github.io/webOS/"}]...
|
[{"post_id": 70359, "ts": "202 [{"post_id": 70359, "ts": "2026-09-19T01:17:40Z", "hours": 4.2636, "text": "Pre-ship adjustments I’m shipping it, finally! I tried to make the user experience better by making the design more coherent (grayscale), although I am planning to add a lot more undertale references. I also changed my footprints color to contrast more with the yellow background. The countdown looks a little better, i removed some overlapping gaps that made everything look awkward but it’s better now!"}, {"post_id": 60796, "ts": "2026-09-03T12:03:37Z", "hours": 3.7294, "text": "i COMPLETELY changed the design of my OS to be full on undertale I found an amazing undertale css pack by chance and loved it so much so i went from wow blue aesthetic to undertale yay. I still have some customization to do I changed the close button to a heart and when you hover on it it becomes a broken heart im really proud of that I’m also almost done with the to do app the tasks are just not overflowing the way I want them to new ideas: music player to play undertale songs map to make wallpaper change based on map location have a preload screen that makes you choose your location and choose character"}, {"post_id": 57001, "ts": "2026-08-29T02:14:47Z", "hours": 2.5986, "text": "countdown working! I made it look a little better but I’m not completely satisfied yet. You can now edit and delete countdowns, change precision and some other stuff but now I want to work on making windows pinnable :^ I also want make a todo list app, I’m really thinking of making this OS my study compagnion haha but idk if its too basic for this mission. But anyways ill do it for myself not the stardust hee hee haw haw"}, {"post_id": 48918, "ts": "2026-08-17T14:13:01Z", "hours": 2.3319, "text": "Countdown app I added a countdown app/widget for some motivation so you can have something to look forward to! The CSS is definitely lacking so I will work on it once im done with JS. It was a bit hard to convert every input and change precision but I figured it out thanks to W3S. I still need to: Show a list of the cooldowns in the main window and make them editable and deleteable Make the new window closeable & pinnable Make the time input optionnal Make an icon for the app Find a way to save changes? (maybe)"}, {"post_id": 48335, "ts": "2026-08-16T17:26:05Z", "hours": 0.7083, "text": "First feature done My notes app is now cooler: Footprints instead of a text based sidebar Links open in new tab Upon first opening of the app, only footprints show on a grassy field Animations on footprints and sidebar after clicking the first footprint Things to add after finishing other features: More notes content A way to go back to the grassy field To work on next More animations Gamify Skeletale app"}, {"post_id": 47085, "ts": "2026-08-14T18:36:15Z", "hours": 1.0469, "text": "Devlog My side bar is now a menu? I made it so that content will only show after clicking on the footsteps (not yet but that’s the goal). For that, I need to write a new function in Java Script and add a blue grassy background to match with the cloudy background. My animations are now smoother as I added transitions and larger margins so that the icons getting bigger don’t impede on the other ones. I also added hover text so that we can know which story is selected when hovering on each footstep."}, {"post_id": 43615, "ts": "2026-08-08T23:50:59Z", "hours": 0.5525, "text": "WebOS 2 It’s been a month since I didn’t work on this so I forgot how to code a little. Looking at my old code is helping me remember the coding though. First new feature (Working on this) As my first new feature, I am revamping my True Notes app side bar . I want to change to to footsteps I can click on. As of now, I only imported the image and made the footprints appear for each entry. I have yet to make them as a path, center them and just have a better general layout. Second new feature I want to have hover animations. Eg if I hover on the footprints they get bigger, hovering on an app would change the top bar of the window header, etc. Third feature I haven’t really thought about it yet, either I’ll make my Skeletale app more interactive by changing back and next buttons to directly clicking on the skeleton either I will make a new app"}, {"post_id": 16967, "ts": "2026-06-27T15:30:36Z", "hours": 1.0411, "text": "Done!"}, {"post_id": 16632, "ts": "2026-06-27T01:42:50Z", "hours": 3.1203, "text": "Almost done with my second app My second app is an anatomical map of myself inspired by Undertale (not really, it’s just a pixelized skeleton). I just really like anatomy in general so I thought this would represent me well. I assigned a part of myself to many bones, the text is just placeholder right now, I will develop on it later. -I added back and next buttons for navigation to make it simpler than a side bar, It also takes less space I finished my first app a while ago but I do want to change the layout in WebOS 2 (have some art & a better side bar) Right now my goals for tomorrow are to: Put the back&next buttons inside the window Hide the skeleton image on the first tab of the app Zoom on each bone for each body part or have a heart cursor that goes in each body part like in Undertale Finish the content"}, {"post_id": 14671, "ts": "2026-06-23T21:10:04Z", "hours": 2.6467, "text": "I finished part 4, it took me a while to get it to work so I will focus on the aesthetic after i finish part 5. My notes app will show my thoughts about some true crime stories. My next app is going to be Undertale related I hope."}, {"post_id": 11551, "ts": "2026-06-18T20:54:43Z", "hours": 2.9986, "text": "Added a Notes App, but I’m not sure what its exact purpose will be"}, {"post_id": 10908, "ts": "2026-06-17T21:40:50Z", "hours": 1.8064, "text": "I’m done with part 3! Now I have: A pretty header A pretty background A CSS file with my window and window header designs that I will be able to use for my next windows. Draggable windows that can close (but will completely disappear, so I have to make a “minimize” button to be able to open it later) An open button that’s not very useful and doesn’t really work."}, {"post_id": 9556, "ts": "2026-06-15T22:40:55Z", "hours": 1.3453, "text": "Working on part 3"}, {"post_id": 6827, "ts": "2026-06-11T13:35:07Z", "hours": 0.6017, "text": "I just learned about dividers! The welcome still looks a bit awkward but it’s gonna be fine."}, {"post_id": 6805, "ts": "2026-06-11T12:41:43Z", "hours": 0.3239, "text": "First 15 minutes"}]...
|
Title: Undertale OS by @ThaoVi | Stardance
Devlog Title: Undertale OS by @ThaoVi | Stardance
Devlogs:
First 15 minutes
I just learned about dividers! The welcome still looks a bit awkward but it’s gonna be fine.
Working on part 3
I’m done with part 3! Now I have: A pretty header A pretty background A CSS file with my window and window header designs that I will be able to use for my next windows. Draggable windows that can close (but will completely disappear, so I have to make a “minimize” button to be able to open it later) An open button that’s not very useful and doesn’t really work.
Added a Notes App, but I’m not sure what its exact purpose will be
I finished part 4, it took me a while to get it to work so I will focus on the aesthetic after i finish part 5. My notes app will show my thoughts about some true crime stories. My next app is going to be Undertale related I hope.
Almost done with my second app My second app is an anatomical map of myself inspired by Undertale (not really, it’s just a pixelized skeleton). I just really like anatomy in general so I thought this would represent me well. I assigned a part of myself to many bones, the text is just placeholder right now, I will develop on it later. -I added back and next buttons for navigation to make it simpler than a side bar, It also takes less space I finished my first app a while ago but I do want to change the layout in WebOS 2 (have some art & a better side bar) Right now my goals for tomorrow are to: Put the back&next buttons inside the window Hide the skeleton image on the first tab of the app Zoom on each bone for each body part or have a heart cursor that goes in each body part like in Undertale Finish the content
Done!
WebOS 2 It’s been a month since I didn’t work on this so I forgot how to code a little. Looking at my old code is helping me remember the coding though. First new feature (Working on this) As my first new feature, I am revamping my True Notes app side bar . I want to change to to footsteps I can click on. As of now, I only imported the image and made the footprints appear for each entry. I have yet to make them as a path, center them and just have a better general layout. Second new feature I want to have hover animations. Eg if I hover on the footprints they get bigger, hovering on an app would change the top bar of the window header, etc. Third feature I haven’t really thought about it yet, either I’ll make my Skeletale app more interactive by changing back and next buttons to directly clicking on the skeleton either I will make a new app
Devlog My side bar is now a menu? I made it so that content will only show after clicking on the footsteps (not yet but that’s the goal). For that, I need to write a new function in Java Script and add a blue grassy background to match with the cloudy background. My animations are now smoother as I added transitions and larger margins so that the icons getting bigger don’t impede on the other ones. I also added hover text so that we can know which story is selected when hovering on each footstep.
First feature done My notes app is now cooler: Footprints instead of a text based sidebar Links open in new tab Upon first opening of the app, only footprints show on a grassy field Animations on footprints and sidebar after clicking the first footprint Things to add after finishing other features: More notes content A way to go back to the grassy field To work on next More animations Gamify Skeletale app
Countdown app I added a countdown app/widget for some motivation so you can have something to look forward to! The CSS is definitely lacking so I will work on it once im done with JS. It was a bit hard to convert every input and change precision but I figured it out thanks to W3S. I still need to: Show a list of the cooldowns in the main window and make them editable and deleteable Make the new window closeable & pinnable Make the time input optionnal Make an icon for the app Find a way to save changes? (maybe)
countdown working! I made it look a little better but I’m not completely satisfied yet. You can now edit and delete countdowns, change precision and some other stuff but now I want to work on making windows pinnable :^ I also want make a todo list app, I’m really thinking of making this OS my study compagnion haha but idk if its too basic for this mission. But anyways ill do it for myself not the stardust hee hee haw haw
i COMPLETELY changed the design of my OS to be full on undertale I found an amazing undertale css pack by chance and loved it so much so i went from wow blue aesthetic to undertale yay. I still have some customization to do I changed the close button to a heart and when you hover on it it becomes a broken heart im really proud of that I’m also almost done with the to do app the tasks are just not overflowing the way I want them to new ideas: music player to play undertale songs map to make wallpaper change based on map location have a preload screen that makes you choose your location and choose character
Pre-ship adjustments I’m shipping it, finally! I tried to make the user experience better by making the design more coherent (grayscale), although I am planning to add a lot more undertale references. I also changed my footprints color to contrast more with the yellow background. The countdown looks a little better, i removed some overlapping gaps that made everything look awkward but it’s better now!
Ships:
I just finished my first WebOS. It has a top bar, welcome window and two apps. All the windows are draggable and closable, and both of the apps are representative of me :D One is about the true crimes I enjoy and the other one is a presentation of me through a skeleton. I had zero experience in website coding until I started the project, I am very proud of the result!
WebOS I made an Undertale themed WebOs presenting me, with some other apps such as countdowns! This is the very first Stardance project i did, and also very first html project overall (including webos1) Features A top-bar with a live clock and a healthbar Draggable windows Closable windows Applications TrueNotes (personal) A personnal app where I put thoughts about true crime stories I enjoyed :D The design is centered around Undertale’s field of flowers, with each footstep being a story; I wanted to make it more original than the side bar I had in WebOS 1. To do app A very basic to do app. Countdown app A simple countdown app where you can set countdowns and a new window appears for each countdown. They are editable and deleteable :D You can also change the precision shown on each windows (in case seeing seconds stresses you out) Skeletale (personal) An undertale - anatomy based “autobiography” of me, it’s part of my WebOs 1 and I haven’t really updated it since. Future plans Undertale music player An intro page (WIP) where you can chose your character and background image. Make the notes apps more interactive by making the user add their own notes Undertale references The close button is a heart and it breaks when you hover on it to close the window! The field in TrueNotes are the yellow flowers from undertale. The health bar is also a reference from undertale. The fonts! They are from https://github.com/hujgup/Undertale-CSS...
|
1792983064.3846154
|
1793069464.3846154
|
|
17319
|
SituationBoard by @nouxinf | Stardance
|
nouxinf
|
1
|
25.0
|
276
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T12:42:35Z", "hours": 25.0, "multiplier": 11.2, "payout": 276, "blessing": "neutral", "text": "I just finished making SituationBoard a browser new tab page with widgets that can be customised and arranged to your liking. Its a big QoL improvement because it means instead of having to go to several websites to get bits of info, you can see them all on one page you can bookmark or set as a new tab page in your browser. Current widgets included are: Cat picture Oil price Clock Weather XKCD comic It runs in express and some of the widgets use an external API that needs a backend route. Its designed to be contributed to by others, I wrote a guide in the README on how to add new widgets. There’s a light and dark mode too. Hope you enjoy it!", "repo": "https://github.com/nouxinf/situationboard", "demo": "https://situationboard.nouxinf.net/"}]...
|
[{"post_id": 70550, "ts": "202 [{"post_id": 70550, "ts": "2026-09-19T10:59:06Z", "hours": 0.6653, "text": "Devlog 8 of Situationboard In this devlog I put the website on my VPS at https://situationboard.nouxinf.net/ and wrote a README. The readme contains some info on the project, screenshots, and instructions on how to add a new widget to the site for contributors."}, {"post_id": 70233, "ts": "2026-09-18T19:18:21Z", "hours": 1.0689, "text": "Devlog 7 of Situationboard In this devlog I added a dark mode that saves your preferences but also loads them from your system settings. I made a bunch of CSS tweaks at the same time to make it look a bit nicer too."}, {"post_id": 70175, "ts": "2026-09-18T16:54:18Z", "hours": 1.1975, "text": "Devlog 6 of Situationboard In this devlog I added a MacOS style menu bar at the top for some buttons. The SB icon and the Situationboard spans just refresh the page, the attribution button opens a dialog with credits to open source libraries and images used (APIs are credited separately in the add widgets screen). The about screen also has info. Next up is just dark mode, some docs + readme then I’m ready to ship"}, {"post_id": 69245, "ts": "2026-09-16T17:33:32Z", "hours": 2.3942, "text": "Devlog 5 of Situationboard In this devlog I added an XKCD widget, which fetches the latest XKCD comic through a proxy on the backend, and you can navigate through comics with the previous, next, random and custom number buttons. You can also click on the image to zoom in on the comic and the caption. What I’m adding next is dark mode and an attribution screen to give credit to all sources used."}, {"post_id": 68165, "ts": "2026-09-14T17:09:37Z", "hours": 1.7006, "text": "Devlog 4 of Situationboard In this devlog I finished the weather widget. I added icons that I reused from an earlier stardance project, weatherstation that map to WMO codes, and it shows a forecast with min-max temperatures for the next 7 days. Next up I’ll do an xkcd widget and dark mode"}, {"post_id": 67217, "ts": "2026-09-13T08:29:05Z", "hours": 7.3411, "text": "Devlog 3 of Situationboard Things I added: A live time widget A description window for each widget that uses a markdown renderer A customisable weather widget (currently only shows temperature and location but will be updated with week-ahead forecast) Things I might add soon: dark mode xkcd widget?"}, {"post_id": 11390, "ts": "2026-06-18T17:15:06Z", "hours": 3.125, "text": "Devlog 2 of Situationboard Things I’ve worked on since the last devlog: A simple favicon - just “SB” in the Inter font that’s used across the site An Oil Price widget. It originally used data from oilpriceapi.com however I realised that they didn’t provide a permanent free tier, so I switched to the US government’s (of course) EIA (Energy Information Administration) which updates less frequently (half a week or so?). Loading animation for catpic widget from Wikimedia Commons Next up I’ll probably work on a description button in the Add Widgets dialog as it already has a widgets.json entry, its just unused."}, {"post_id": 9344, "ts": "2026-06-15T17:58:45Z", "hours": 7.1142, "text": "Devlog #1 of SituationBoard After finishing the hackpad project, I was trying to find new project ideas to do, so I asked my dad for a QoL improvement that could be made. He mentioned wanting a “portal” to have loads of different information widgets on one screen, as for a lot of things you need to go across different websites. Coincidentally, the Frictionless mission was running, whose “mission” you could say was exactly that - to make something that improves quality of life. The name “SituationBoard” is a play on those “monitor the situation” dashboards that government officials or OSINT people use. The data on here as you can probably see by the screenshot is probably not of as high importance [citation needed]. I decided to make this in express.js, and plain HTML to keep it minimal. The backend will handle most widgets that need APIs, as those wih API keys shouldn’t be sent on the frontend because the keys will be leaked. The first widget added is a random cat picture from a service called Cat-as-a-Service (cataas.com). This didn’t require the backend as cataas doesnt take credentials so it was a good first widget. Next up I’ll write more widgets like weather, prices of various commodities like oil and holiday calendars, and add more features, potentially styling the website up along the way."}]...
|
Title: SituationBoard by @nouxinf | Stardance
Dev Title: SituationBoard by @nouxinf | Stardance
Devlogs:
Devlog #1 of SituationBoard After finishing the hackpad project, I was trying to find new project ideas to do, so I asked my dad for a QoL improvement that could be made. He mentioned wanting a “portal” to have loads of different information widgets on one screen, as for a lot of things you need to go across different websites. Coincidentally, the Frictionless mission was running, whose “mission” you could say was exactly that - to make something that improves quality of life. The name “SituationBoard” is a play on those “monitor the situation” dashboards that government officials or OSINT people use. The data on here as you can probably see by the screenshot is probably not of as high importance [citation needed]. I decided to make this in express.js, and plain HTML to keep it minimal. The backend will handle most widgets that need APIs, as those wih API keys shouldn’t be sent on the frontend because the keys will be leaked. The first widget added is a random cat picture from a service called Cat-as-a-Service (cataas.com). This didn’t require the backend as cataas doesnt take credentials so it was a good first widget. Next up I’ll write more widgets like weather, prices of various commodities like oil and holiday calendars, and add more features, potentially styling the website up along the way.
Devlog 2 of Situationboard Things I’ve worked on since the last devlog: A simple favicon - just “SB” in the Inter font that’s used across the site An Oil Price widget. It originally used data from oilpriceapi.com however I realised that they didn’t provide a permanent free tier, so I switched to the US government’s (of course) EIA (Energy Information Administration) which updates less frequently (half a week or so?). Loading animation for catpic widget from Wikimedia Commons Next up I’ll probably work on a description button in the Add Widgets dialog as it already has a widgets.json entry, its just unused.
Devlog 3 of Situationboard Things I added: A live time widget A description window for each widget that uses a markdown renderer A customisable weather widget (currently only shows temperature and location but will be updated with week-ahead forecast) Things I might add soon: dark mode xkcd widget?
Devlog 4 of Situationboard In this devlog I finished the weather widget. I added icons that I reused from an earlier stardance project, weatherstation that map to WMO codes, and it shows a forecast with min-max temperatures for the next 7 days. Next up I’ll do an xkcd widget and dark mode
Devlog 5 of Situationboard In this devlog I added an XKCD widget, which fetches the latest XKCD comic through a proxy on the backend, and you can navigate through comics with the previous, next, random and custom number buttons. You can also click on the image to zoom in on the comic and the caption. What I’m adding next is dark mode and an attribution screen to give credit to all sources used.
Devlog 6 of Situationboard In this devlog I added a MacOS style menu bar at the top for some buttons. The SB icon and the Situationboard spans just refresh the page, the attribution button opens a dialog with credits to open source libraries and images used (APIs are credited separately in the add widgets screen). The about screen also has info. Next up is just dark mode, some docs + readme then I’m ready to ship
Devlog 7 of Situationboard In this devlog I added a dark mode that saves your preferences but also loads them from your system settings. I made a bunch of CSS tweaks at the same time to make it look a bit nicer too.
Devlog 8 of Situationboard In this devlog I put the website on my VPS at https://situationboard.nouxinf.net/ and wrote a README. The readme contains some info on the project, screenshots, and instructions on how to add a new widget to the site for contributors.
Ships:
I just finished making SituationBoard a browser new tab page with widgets that can be customised and arranged to your liking. Its a big QoL improvement because it means instead of having to go to several websites to get bits of info, you can see them all on one page you can bookmark or set as a new tab page in your browser. Current widgets included are: Cat picture Oil price Clock Weather XKCD comic It runs in express and some of the widgets use an external API that needs a backend route. Its designed to be contributed to by others, I wrote a guide in the README on how to add new widgets. There’s a light and dark mode too. Hope you enjoy it!...
|
1793004636.1626835
|
1793091036.1626835
|
|
40114
|
WARIO EMPIRE by @lordvader25 | Stardance
|
lordvader25
|
2
|
37.0
|
109
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T12:39:38Z", "hours": 21.0, "multiplier": 5.29, "payout": 109, "blessing": "neutral", "text": "Folks, The empire creation of Warioware, is over….its completed, we have done it..AS A COMMUNITY OF AT LEAST 50, WE HAVE DONE IT BOYS. The journey, was amazing..seeing new people, figuring out game developing, it was beautiful…hope you all like it..hope we can meet again and form a community..i don’t mind if i even get 125 stardust, i js need a plushie for my sister, if you guys are generous and rate me a bit high, i will be obliged, anyways…its done, go enjoy it folks..LESSSS GOOOOOO", "repo": "https://github.com/lordvader-25/mynewwariogame", "demo": "https://lordvader-25.itch.io/wario-ware-minigame-collections"}, {"ship_num": 2, "ts": "2026-08-26T19:09:39Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Warioware, well wouldn’t even call it that because I made it completely different, as a beginner to Game Development and this type of serious coding, I feel like “HOLYYY COW, I MADE A GAME MOM, I DID IT, I’M ONE STEP CLOSER TO BECOMING SPIDER MAN.” - but in all seriousness, the game was amazing to build, and I am, js Happy…", "repo": "https://github.com/lordvader-25/mynewwariogame", "demo": "https://lordvader-25.itch.io/wario-ware-minigame-collections"}]...
|
[{"post_id": 70592, "ts": "202 [{"post_id": 70592, "ts": "2026-09-19T12:34:39Z", "hours": 0.3139, "text": "devlog 24: guys, we have officially exported the game to ITCHI.IO..CAN U BELIEVE IT, 2ND SHIP HERE I COME"}, {"post_id": 70223, "ts": "2026-09-18T18:56:08Z", "hours": 1.3756, "text": "Devlog 23 - LADIES AND GENTLEMEN, I HAVE THE GREATEST ANNOUNCEMENT IN MY HISTORY OF THIS EMPIRE, WE HAVE…(drumrolls please)….HAVE OFFICIALLY COMPLETED OUR GAME, ITS TIME TO SHIP IT NOW BOYZZZZZZ"}, {"post_id": 69256, "ts": "2026-09-16T18:04:55Z", "hours": 1.4186, "text": "devlog 22 - The level is looking pretty good as far now folks, LETS SEE WHERE WE WILL HEAD TO DUDES, HOPE WE CAN FINISH IT IN A FEW DAYS..i will also add stars and a time limit of around 15 to 20 seconds..we will see how it turns out..till then, Peace Gentlemen and Ladies…"}, {"post_id": 67537, "ts": "2026-09-13T17:39:53Z", "hours": 6.1883, "text": "devlog 21 - WE R BACK DUDES, AFTER A LONG TIME, WITH SOME WORK DONE IN OUR BACK…. WE HAVE STARTED ON THE CREATION OF OUR MINIGAME FLIPPIN 4…LESSS GOOO dudes…WE WILL BE CREATING A PLATFORM MOVING GAME, THEN SHIPPING TIME LESS GO"}, {"post_id": 63085, "ts": "2026-09-06T17:55:56Z", "hours": 2.0464, "text": "devlog 20: BOYS AND GIRLS, WE HAVE DONE IT..WE HAVE OFFICIALLY DONE IT, OUR MINIGAME 3 IS FINALLY COMPLETE WOOOOOOOOOOO🎊🎊🎊🎊🎊🎊🎊🎊🎊🎊"}, {"post_id": 62406, "ts": "2026-09-05T19:02:00Z", "hours": 1.9803, "text": "Devlog 18: WE HAVE FINALLY DONE THE CODING PART, WE JUST NOW NEED TO ADD A TIMER..AND OUR MINIGAME 3 IS OVER DUDE..LESSS GOOOOOOOOO, btw, for minigame 4..u guys need to give me some ideas, im confused what to do on it."}, {"post_id": 61687, "ts": "2026-09-04T18:34:56Z", "hours": 1.0317, "text": "Devlog 18: Finally the animations r getting together boys…OUR EMPIRE IS SLOWLY BEING BUILT ONCE AGAIN, LETSSS GOOOOOOO"}, {"post_id": 61025, "ts": "2026-09-03T18:41:33Z", "hours": 3.1169, "text": "Devlog 17: yea..so, I BASICALLY SOMEHOW LOST HALF OF MY PROJECT, I HAD TO CREATE HALF OF IT BACK..IT TOOK ME 6 HOURS DUDE, 6 AND I FLIPPIN HAVE MY EXAMS IN 18 DAYS…oh god, yea im cooked guys..btw, wish me luck for both (this and my exams)"}, {"post_id": 59796, "ts": "2026-09-01T18:46:06Z", "hours": 0.6278, "text": "DEVLOG 16: The code is starting to take its shape finally, i had to debug it a lot..I MEAN A LOT GENTLEMEN…so, i js hope by tmrw this minigame is complete so that maybe..we can focus on…“STORY MODE”"}, {"post_id": 59066, "ts": "2026-08-31T17:49:02Z", "hours": 1.3569, "text": "Devlog 15: YOOO GENTLEMEN, WASS GOOD?, so update, we have officially started creating minigame 3…the game is bout to be real fun, well i suppose it is..created the base outline first, writing the code right now..hopefully it turns out great..and usable lol..well CYA LATER HONEYPIES"}, {"post_id": 57489, "ts": "2026-08-29T17:27:53Z", "hours": 1.12, "text": "Devlog 14 - boys, after shipping our project, WE HAVE MADE OUR FINISHING TOUCHES, ADDED THE BORDERS, AN EXIT SCREEN AN ENDING SCENE AS WELL AS UPDATED OUR EXITS IN BOTH LEVEL 1 AND LEVEL 2 OF minigame 1..i mean, hope my project finally gets accepted..PEACE"}, {"post_id": 55188, "ts": "2026-08-26T18:10:21Z", "hours": 2.6533, "text": "Devlog 13 - IM BACK, THE GOATS BACK BOYSSS, and i have..COMPLETED MY FLIPPIN GAME DUDE, ITS DONE..READY TO SHIP, EVERYTHING CREATED NOW…my journey’s over now…its over, BUT WE DID IT GUYS, WE DID IT TOGETHER..THANK YOU FOR ALL THE LOVE AND SUPPORT🎊🎊🎊🎊, until then..gentleman-signing off"}, {"post_id": 51842, "ts": "2026-08-21T18:24:11Z", "hours": 1.0528, "text": "devlog 12 - BOYS, Announcement time people, WE HAVE OFFICIALLY MADE OUR MINIGAME 2 LAYOUT AND THIS GAME BOUT TO BE REAL HARD (atleast for me that is💀💀😭😭😭😭), i have barely made 2 entities and im losing lol 😭😭😭😭, btw..i wont be able to upload devlogs for a few days cuz of burnout..so, STAY TUNED FOR ME NEXT DEVLOG (probably like next week or smthn idk, well…oh yea btw, shout out to username - rajveer0123n and tanixsh, real good coders out there)"}, {"post_id": 50962, "ts": "2026-08-20T13:04:30Z", "hours": 2.2092, "text": "devlog 11 - BOYS I AM BACKKKK, AND I HAVE A WHOLE LOT OF AN UPDATE, FIRST OF ALL..WE FLIPPIN CREATED LEVEL 4 WITH A FLIPPIN ENTITY (the dragon)..AND ALSO, WE FLIPPIN CREATED OUR FIRST PIXEL ART AND IMPLEMENTED IT IN OUR LEVEL 2 TO MAKE IT HARDER LESSSSSS GOOOOOOO DUDEEESSSS…WE EVEN CREATED A NEW WINNING SCREEN FOR LEVEL 4..Minigame 2 only left AND THEN SHIPPING TIMEEEEE..LESSSSS GOOOOOOO🎊🎊🎊🎊🎊🎊🎊🎊"}, {"post_id": 48304, "ts": "2026-08-16T16:41:35Z", "hours": 1.7792, "text": "devlog 10 - I HAVE FINALLLYYY COMPLETED LEVEL FLIPPINN 3…..IT TOOK ME LIKE 3 HOURS TO GET THE CODING TO FINALLY WORK….btw, ive implemented some ideas you guys told me to…so did that..btw, next level..we will have some like NPC characters we gotta avoid..then minigame 2…I MEAN IM STILL SO HAPPY AND STOKED THAT I COMPLETED LEVEL 3🎊🎊🎊🎊🎊🎊🎊🎊"}, {"post_id": 47665, "ts": "2026-08-15T18:29:31Z", "hours": 0.8408, "text": "Devlog 9 - We HAVE FINALLYYYY STARTEDDD ON LEVEL 3…PEOPLE LETSSSS GOOOOOOOOOOO, btw..i need some ideas tbh. Should i add a bit of enemies in level 4 that u have to avoid, if u touch them..u lose or smthn?…(btw, dont judge be, this is my first time developing a game let alone a pixelated one…), so..HOPE I GET TO SEE SOME IDEASSSSS"}, {"post_id": 47082, "ts": "2026-08-14T18:32:14Z", "hours": 1.9978, "text": "Devlog 8 - PEOPLEEE, I AMM BACKKKKK..IVE FINALLY CREATED THE LOSING SCREEN AND IVE MADE IT CONNECT TO THE MINIGAME 2, SO IF UR UNABLE TO COMPLETE IT UNDER 10 SECONDS, U LOSE..LETTSSSS GOOOOO BOYSSSSSSS, WOOOOOOOOOOOOOOOOOOOO🎊🎊🎊🎊🎊🎊"}, {"post_id": 44729, "ts": "2026-08-10T17:44:30Z", "hours": 0.4031, "text": "Devlog 7 - YOU PEOPLE CANNOT FEEL THE AMOUNT OF EXCITEMENT AND HAPPINESS IM GETTING..I FINALLY MADE MY LEVEL 2 CONNECT TO THE WINNING SCREEN.. btw, wanted to ask for an idea. should i create a timer on level 2 so that i could also use a losing screen..like if u aren’t able to collect the stars under 10 seconds, u lose. how’s the idea people?"}, {"post_id": 44698, "ts": "2026-08-10T17:15:21Z", "hours": 0.3469, "text": "devlog 6 - Guys im js sleepy tbh, its like 11 pm in my area..im sleep deprived…and my PROJECT ISNT WORKING..ehh, who cares tho, ill complete level 2 for u people…LOCK IN PEEPS"}, {"post_id": 44118, "ts": "2026-08-09T17:53:43Z", "hours": 0.7311, "text": "log - 5, finally started creating LEVEL 2 of my minigame 1, lets see how it turns out, keep u peeps updated..(btw, any ideas on how to improve it, if yup, tell me cuz i need help😭😭)"}, {"post_id": 43377, "ts": "2026-08-08T16:04:46Z", "hours": 0.5, "text": "devlog 4 - MY MINIGAME_1 FINALLY WORKS AFTER 2 HOURS OF ASKING, (ps - minigame_2 waiting for me like a boss), added a bit of texture, thinking of extending minigame_1 level 1 to a level 2 aswell, gimme some ideas guys"}, {"post_id": 43317, "ts": "2026-08-08T14:48:21Z", "hours": 1.4572, "text": "devlog 3 - FINALLY working on the code to actually collect the stars in our minigame 1, ehh pretty boring till now..hope it turns out a bit bettah…"}, {"post_id": 42796, "ts": "2026-08-07T18:10:25Z", "hours": 1.0092, "text": "Finally this piece is coming together FOR GODSAKE, been working at it for around 2 hours and 30 mins (or 1 hour and 40 mins officially), tell me hows it gng"}, {"post_id": 42561, "ts": "2026-08-07T11:44:26Z", "hours": 0.6669, "text": "Yo people, #log 1, js started on this, hows it?"}]...
|
Title: WARIO EMPIRE by @lordvader25 | Stardance
D Title: WARIO EMPIRE by @lordvader25 | Stardance
Devlogs:
Yo people, #log 1, js started on this, hows it?
Finally this piece is coming together FOR GODSAKE, been working at it for around 2 hours and 30 mins (or 1 hour and 40 mins officially), tell me hows it gng
devlog 3 - FINALLY working on the code to actually collect the stars in our minigame 1, ehh pretty boring till now..hope it turns out a bit bettah…
devlog 4 - MY MINIGAME_1 FINALLY WORKS AFTER 2 HOURS OF ASKING, (ps - minigame_2 waiting for me like a boss), added a bit of texture, thinking of extending minigame_1 level 1 to a level 2 aswell, gimme some ideas guys
log - 5, finally started creating LEVEL 2 of my minigame 1, lets see how it turns out, keep u peeps updated..(btw, any ideas on how to improve it, if yup, tell me cuz i need help😭😭)
devlog 6 - Guys im js sleepy tbh, its like 11 pm in my area..im sleep deprived…and my PROJECT ISNT WORKING..ehh, who cares tho, ill complete level 2 for u people…LOCK IN PEEPS
Devlog 7 - YOU PEOPLE CANNOT FEEL THE AMOUNT OF EXCITEMENT AND HAPPINESS IM GETTING..I FINALLY MADE MY LEVEL 2 CONNECT TO THE WINNING SCREEN.. btw, wanted to ask for an idea. should i create a timer on level 2 so that i could also use a losing screen..like if u aren’t able to collect the stars under 10 seconds, u lose. how’s the idea people?
Devlog 8 - PEOPLEEE, I AMM BACKKKKK..IVE FINALLY CREATED THE LOSING SCREEN AND IVE MADE IT CONNECT TO THE MINIGAME 2, SO IF UR UNABLE TO COMPLETE IT UNDER 10 SECONDS, U LOSE..LETTSSSS GOOOOO BOYSSSSSSS, WOOOOOOOOOOOOOOOOOOOO🎊🎊🎊🎊🎊🎊
Devlog 9 - We HAVE FINALLYYYY STARTEDDD ON LEVEL 3…PEOPLE LETSSSS GOOOOOOOOOOO, btw..i need some ideas tbh. Should i add a bit of enemies in level 4 that u have to avoid, if u touch them..u lose or smthn?…(btw, dont judge be, this is my first time developing a game let alone a pixelated one…), so..HOPE I GET TO SEE SOME IDEASSSSS
devlog 10 - I HAVE FINALLLYYY COMPLETED LEVEL FLIPPINN 3…..IT TOOK ME LIKE 3 HOURS TO GET THE CODING TO FINALLY WORK….btw, ive implemented some ideas you guys told me to…so did that..btw, next level..we will have some like NPC characters we gotta avoid..then minigame 2…I MEAN IM STILL SO HAPPY AND STOKED THAT I COMPLETED LEVEL 3🎊🎊🎊🎊🎊🎊🎊🎊
devlog 11 - BOYS I AM BACKKKK, AND I HAVE A WHOLE LOT OF AN UPDATE, FIRST OF ALL..WE FLIPPIN CREATED LEVEL 4 WITH A FLIPPIN ENTITY (the dragon)..AND ALSO, WE FLIPPIN CREATED OUR FIRST PIXEL ART AND IMPLEMENTED IT IN OUR LEVEL 2 TO MAKE IT HARDER LESSSSSS GOOOOOOO DUDEEESSSS…WE EVEN CREATED A NEW WINNING SCREEN FOR LEVEL 4..Minigame 2 only left AND THEN SHIPPING TIMEEEEE..LESSSSS GOOOOOOO🎊🎊🎊🎊🎊🎊🎊🎊
devlog 12 - BOYS, Announcement time people, WE HAVE OFFICIALLY MADE OUR MINIGAME 2 LAYOUT AND THIS GAME BOUT TO BE REAL HARD (atleast for me that is💀💀😭😭😭😭), i have barely made 2 entities and im losing lol 😭😭😭😭, btw..i wont be able to upload devlogs for a few days cuz of burnout..so, STAY TUNED FOR ME NEXT DEVLOG (probably like next week or smthn idk, well…oh yea btw, shout out to username - rajveer0123n and tanixsh, real good coders out there)
Devlog 13 - IM BACK, THE GOATS BACK BOYSSS, and i have..COMPLETED MY FLIPPIN GAME DUDE, ITS DONE..READY TO SHIP, EVERYTHING CREATED NOW…my journey’s over now…its over, BUT WE DID IT GUYS, WE DID IT TOGETHER..THANK YOU FOR ALL THE LOVE AND SUPPORT🎊🎊🎊🎊, until then..gentleman-signing off
Devlog 14 - boys, after shipping our project, WE HAVE MADE OUR FINISHING TOUCHES, ADDED THE BORDERS, AN EXIT SCREEN AN ENDING SCENE AS WELL AS UPDATED OUR EXITS IN BOTH LEVEL 1 AND LEVEL 2 OF minigame 1..i mean, hope my project finally gets accepted..PEACE
Devlog 15: YOOO GENTLEMEN, WASS GOOD?, so update, we have officially started creating minigame 3…the game is bout to be real fun, well i suppose it is..created the base outline first, writing the code right now..hopefully it turns out great..and usable lol..well CYA LATER HONEYPIES
DEVLOG 16: The code is starting to take its shape finally, i had to debug it a lot..I MEAN A LOT GENTLEMEN…so, i js hope by tmrw this minigame is complete so that maybe..we can focus on…“STORY MODE”
Devlog 17: yea..so, I BASICALLY SOMEHOW LOST HALF OF MY PROJECT, I HAD TO CREATE HALF OF IT BACK..IT TOOK ME 6 HOURS DUDE, 6 AND I FLIPPIN HAVE MY EXAMS IN 18 DAYS…oh god, yea im cooked guys..btw, wish me luck for both (this and my exams)
Devlog 18: Finally the animations r getting together boys…OUR EMPIRE IS SLOWLY BEING BUILT ONCE AGAIN, LETSSS GOOOOOOO
Devlog 18: WE HAVE FINALLY DONE THE CODING PART, WE JUST NOW NEED TO ADD A TIMER..AND OUR MINIGAME 3 IS OVER DUDE..LESSS GOOOOOOOOO, btw, for minigame 4..u guys need to give me some ideas, im confused what to do on it.
devlog 20: BOYS AND GIRLS, WE HAVE DONE IT..WE HAVE OFFICIALLY DONE IT, OUR MINIGAME 3 IS FINALLY COMPLETE WOOOOOOOOOOO🎊🎊🎊🎊🎊🎊🎊🎊🎊🎊
devlog 21 - WE R BACK DUDES, AFTER A LONG TIME, WITH SOME WORK DONE IN OUR BACK…. WE HAVE STARTED ON THE CREATION OF OUR MINIGAME FLIPPIN 4…LESSS GOOO dudes…WE WILL BE CREATING A PLATFORM MOVING GAME, THEN SHIPPING TIME LESS GO
devlog 22 - The level is looking pretty good as far now folks, LETS SEE WHERE WE WILL HEAD TO DUDES, HOPE WE CAN FINISH IT IN A FEW DAYS..i will also add stars and a time limit of around 15 to 20 seconds..we will see how it turns out..till then, Peace Gentlemen and Ladies…
Devlog 23 - LADIES AND GENTLEMEN, I HAVE THE GREATEST ANNOUNCEMENT IN MY HISTORY OF THIS EMPIRE, WE HAVE…(drumrolls please)….HAVE OFFICIALLY COMPLETED OUR GAME, ITS TIME TO SHIP IT NOW BOYZZZZZZ
devlog 24: guys, we have officially exported the game to ITCHI.IO..CAN U BELIEVE IT, 2ND SHIP HERE I COME
Ships:
I made a Warioware, well wouldn’t even call it that because I made it completely different, as a beginner to Game Development and this type of serious coding, I feel like “HOLYYY COW, I MADE A GAME MOM, I DID IT, I’M ONE STEP CLOSER TO BECOMING SPIDER MAN.” - but in all seriousness, the game was amazing to build, and I am, js Happy…
Folks, The empire creation of Warioware, is over….its completed, we have done it..AS A COMMUNITY OF AT LEAST 50, WE HAVE DONE IT BOYS. The journey, was amazing..seeing new people, figuring out game developing, it was beautiful…hope you all like it..hope we can meet again and form a community..i don’t mind if i even get 125 stardust, i js need a plushie for my sister, if you guys are generous and rate me a bit high, i will be obliged, anyways…its done, go enjoy it folks..LESSSS GOOOOOO...
|
1792982904.992683
|
1793069304.992683
|
|
41645
|
ScriptCanvas by @M-Mrk | Stardance
|
M-Mrk
|
1
|
73.0
|
1445
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T12:25:53Z", "hours": 73.0, "multiplier": 19.83, "payout": 1445, "blessing": "neutral", "text": "I made a web app where you can make simple scripts to create interesting outputs. Its really fun to see what patterns and stuff you can create from very simple logic! The web app is statically hosted on github pages and does not need any server. It is build on a very performant stack. The main UI thread dispatches a request to a web worker which on a separate thread executes optimized rust WASM. That WASM compiles the script to an AST and then evaluates it a bunch of times across all the needed scopes. Finally the web worker can message the main UI thread back. This separation is needed to not freeze the UI during script evaluation, but because there is a memory separation it was very annoying to work with. I used a vanilla-ish stack with no web framework, but with TS. I learned a lot about CSS and TS/JS. Using a framework would have probably sped up development but I wanted to first really understand what a framework would need to do under the hood before moving to that. All in all I am very proud of this project! Hopefully others find the concept as interesting as I do!", "repo": "https://github.com/M-Mrk/ScriptCanvas", "demo": "https://m-mrk.github.io/ScriptCanvas/"}]...
|
[{"post_id": 70586, "ts": "202 [{"post_id": 70586, "ts": "2026-09-19T12:16:31Z", "hours": 7.545, "text": "Final touches Spelling mistakes I fixed a lot of spelling mistakes in the tutorial and help box sections. I think I should keep writing tutorials and docs to times before 1 am. Plot I also added a new output the plot ! The script gets a x value and returns the matching y value. Those pairs then get displayed on a plot using graph.js. During this addition I also reworked the core rust 🦀 engine a bit so now stuff that should be output independent, like creating a Rhai engine or compiling a Rhai script to an AST, is in its own file. Then I added the rust logic and it just returns an array of X and Y value pairs when done. Adding the UI and lifecycle stuff for the plot was rather easy because I kept everything pretty modular with easy expansion in mind. However styling the plot was rather complicated and I now have a enormous JavaScript Object detailing all the small bits and pieces to make the plot look alright! Repo PixelMatrix was always a temporary name as it is only really fitting for the grid output, so I renamed this project to ScriptCanvas. I think this is more fitting because it does use scripts and it also draws those on canvas elements! I also added a README to the repo. As testing on chrome and firefox also looked good I think I am ready to ship !"}, {"post_id": 65338, "ts": "2026-09-10T12:44:05Z", "hours": 7.6142, "text": "Help, Docs and a Tutorial Help menu and Docs I added a Help modal under the “?” button. It has some actions like opening the tutorial again and features some docs. There are docs on the specific output explaining what the output expects and listing all available variables in scope of the output. So for Grid it explains how the script will be evaluated over all pixels in a grid and the script returns an RGB value setting that pixels color. Then it lists all the variables, like ‘x’ the x-coordinate of the pixel. Tutorial I also added a short tutorial which explains how to get a running script under Grid. I hope it explains all the concepts step by step and that it is understandable. Originally it was more of a tour of the UI and explained all the buttons, but I think that most of that is pretty self explanatory and the new tutorial is better at explaining how to actually use this. Next up I will add 1 more output before shipping!"}, {"post_id": 62520, "ts": "2026-09-05T22:45:09Z", "hours": 8.4306, "text": "Coming to an end I am kind off getting frustrated with this project, I cant handle this stack anymore , I yearn for hardware again. I am aiming to finish this in the next 2 weeks! Well any ways here is what I did: Output stretching Until now the grid output was always a square, so if you had a non-square resolution it would be stretched to one. Now it actually gets the shape of the resolution and it uses the most of the usable space it can. I also added a option to return to the original method. Blur Initially I had some problems with drawing pixels to the canvas. I drew rectangles to the canvas but some image smoothing settings were adding anti-aliasing and similar stuff making the pixels look weird. I fixed that by just creating raw image data, but it was a cool effect for some situations, like generating a gradient. So I added a option to toggle this image smoothing of the browser. Sadly as it is browser based I’d probably has very different results on different browsers. Small UI I did a bunch of css fixes to make the ui more resizable and trigger a bunch of stuff on resizing. Then I added a tabbar and reduced the layout. In the normal layout the editor and output are side by side and when the screen is too small only one is shown and you can switch with the tabbar. It also moves the top bar actions into a setting pop up. Tip box Some features might not be self explanatory, so I added this small tip tool when hovering above stuff for some time. To not be stuck on this for too much longer I scrapped the idea of the landing page and I will instead add a tutorial."}, {"post_id": 55286, "ts": "2026-08-27T00:47:28Z", "hours": 8.4031, "text": "Layouting, resizing and a console Console I finally got everything working together. This means that you can now use print() and debug() in the script and it’ll output to the console ! It’ll tell you what was printed and at what pixel, e.g. [x:2|y:4] => here! . I’ve attached a diagram of why some parts of this project are really painful to work with. Its largely due to the amount of wrappers needed, because of the memory and thread separation of the web worker/wasm. Reworking this was really not fun and just doing it better the 1. time would’ve saved me a lot of time. The console won’t be in use all the time and not everyone will use it so I also wanted to limit the space it takes. I firstly reduced the standard space it gets down to 5% of the view height and then made it drag resizable. You can press and hold on the drag handle of the console and stretch it out over the output and editor. This way you can decide how much screen space you want to sacrifice. I used the pointer API so in theory this should work with all kinds of stuff from fingers to pens. In the end the console was way more css intensive then I thought as it needs some and css tomfoolery in order to scroll without blowing up the DOM. Performance increases I learned about Abstract Syntax Trees and made the wasm precompile the script to an AST before rerunning it a bunch of times with different scopes. This was another substantial performance increase decreasing the per pixel time form 0.04ms down to 0.004ms. Wow was the wasm unoptimized Error highlighting I finally added error highlighting. The line with an error now gets highlighted in the editor. During adding this feature with the Monaco editor I also accidently bumped my bundled js to 500kb . This was due to it importing a bunch of syntax stuff for different languages. Thankfully changing one Monaco.something to monaco.something resolved this QoL errors get cleared when rerunning script add resolution to script scope UI I noticed that you couldn’t resize the app to something smaller. You could however make it smaller and then reload. Meaning that it was able to come up with a good layout but something was greedy and holding on to its space. Width wise this was easy to fix by adding a dynamic sizing flag to the editor and some min-width: 0 s to some elements, but height wise i couldn’t get it to work. Turns out even with dynamic sizing the editor is still not the biggest fan of being resized so I had to add a ResizeObserver and call the editors layout method to make it reconsider its size Next up I will now implement a better UI for smaller screens, but first I need to declutter my css and html to make it more maintainable . Other additions/fixes"}, {"post_id": 52430, "ts": "2026-08-22T15:34:18Z", "hours": 9.8981, "text": "Continuing on improving the ui and some refactors Number input styling Those now also have better tui like styling. I added sqaure brackets [] to the ends, the hover background highlighting and a blinking underscore if you focus on it. Though am unsure whether it is clear enough that you are supposed to enter text into them. If you’ve got any improvement ideas let me know. Loading indicator When something is loading I can add the loading class which displays the typical tui animation spinner before it. The one made up of brail dots ⠧ Central Icon I felt that the run button could be unnoticed so I added an icon to the middle of screen. It also shows the loading to make it more clear that the script is actually being run. Error pop up Instead of just having some red text in the console I add a real error pop up with a blinking dashed red outline. Performance increase I spent some time thinking about doing a bunch of stuff to make my wasm multi threaded and async, which included using nightly features, a service worker shim to change http headers, etc. Because I felt that the script running was way too slow and I wanted better performance and the ability to easily cancel the running wasm. Currently the wasm is blocking and goes over each pixel one by one. But before I implemented that I did some other performance changes, like only creating 1 shared rhai engine for all pixels. Before every pixel created its own rhai engine. This change was way more substantial than I thought, as it took the per pixel time from 0.5ms down to 0.04ms . This means 255*255 pixel or 65k pixel don’t take 12s but 2s. This is such a change that I think implementing all the async and multi threading would just be a waste of time, so I’ll stash that idea for now. console I also styled the console part and added all the ui logic. I want to give the user the option to use a print function in there script for debugging purposes. Then in the console it’ll show on which pixel the debug comes from and what it says. But as the image can get pretty big and the user might print once or more per pixel, just adding some Nodes to a console div would probably blow up everything. So at first I experimented with a canvas. The canvas overlays on the console div and then behind it is a big spacer which allows for scrolling, some code would then change what the canvas shows based on where the back is scrolled to. After I had gotten it to display some logs nicely, I realized that this way doesn’t allow the user to highlight and copy the logs, which is probably something someone might want to do. So I switched the canvas out with a normal div. Instead of drawing the logs to a canvas the logs do get added as nodes, but only the visible ones and the scrolling changes which are shown. This way the user can interact with them like normal text and the DOM doesn’t have to render 1k+ nodes. This seems to work really good, the only problem was getting the scrolling to work while the log nodes occupy the same space, but with some css trickery and EventListeners I can pass any scrolling done on the logs through to the background scrolling element. Refactoring I am still working on the wasm part of allowing the user to use print(). While implementing that i had to change what it outputs and refactored the rust project structure. When I then got to the part where the browsers main ui thread interacts with the web worker which runs the wasm, I realized how badly that part was written, with so many loose interfaces and strings. So I am currently still refactoring that and trying not to loose my mind. Still not a big fan of and"}, {"post_id": 48552, "ts": "2026-08-17T00:09:58Z", "hours": 9.9247, "text": "New UI plans and some QoL features Features Auto clamp 🗜️ It can be really frustrating if the output exceeds 255 and everything errors out. So I added a auto clamp checkbox, which just clamps the output to the expected range of 0 to 255. Hot reload I also added a check box for hot reloading. When you stop typing, the script will automatically run. No need to press the run button. Probably a bit annoying on larger resolutions so you can disable it. New UI I also started building the real UI. Initially I just did the layout: top bar with global settings middle part with editor and output console output, where print calls and errors will go. The output part also has a tool bar with output specific settings. An explanation of the app will go on the index and it will have a link to /app where the actual stuff is. This way I don’t have to give any screen space up for an introduction when not needed. Currently the index is just a redirect. Initially I wanted to go with a windows 8 panel style UI, so nothing rounded and only big rectangular tiles. But during experimenting I made the tile only as big as its text and when the background color got highlighted it reminded me of a TUI button. So from that point on I decided to try and style my entire site like that. I think I can pull this TUI look off, but the current styling is definitely not finished. I do however already like the checkboxes, which are styled like [ ] and [*], and the dropdown select. The select was way harder to do as you can’t really style the vanilla element, as it depends on os and browser styling. So you have to create your own. I would say I learned a lot new things about css. Especially stuff like ::before and ::after are super handy for the look I am going for."}, {"post_id": 42180, "ts": "2026-08-06T19:57:02Z", "hours": 10.0303, "text": "DEMO HERE and as soon as github gets itself back together I can also push the newest changes to it! Refactor, refactor and some more refactoring Actual new features I added options to the top. You can switch the output type and script language. But seeing as there currently is only 1 language (Rhai) and 1 output type (Grid) they are kinda pointless. I also added output specific options, for Grid it is currently just the resolution. Also I added a spinner to the run button to indicate that the script is running but that didn’t work until a refactor/feature mentioned later. Refactors The rest of the time was all spent on refactoring. But I do think it was worth it and it is now way easier to add new features. Modularity I introduced a state system where each output type has its own module. Each output only exposes a common interface with a init, deinit and pipeline method. This way other parts, don’t need to deal with what output is set. Each output also deals with its specific settings and UI itself. -> I fully switched from to . I was kind of fed up with the loosey goosey attitude of javascript where nothing is really defined. Typescript doesn’t fix that entirely but does help to find a lot more bugs when writing the code and not at runtime. Vite As does need some sort of bundler/builder I set up vite for the project. This also means I can make the repo more source files only. Before I had the compiled wasm also in the repo, but now it gets compiled together with vite’s build process in the github action. Probably vite also has some other performance benefits. Web Worker As I mentioned before I added a spinner to when the script was being run to show that something is actually happening, but the that wasn’t showing. Because I had everything running off of the main thread calling the WASM blocked everything else even the UI and the browser would ask whether to close the page. The solution is to move it to a web worker, which runs in a separate thread. This was probably the most difficult thing, because it required major changes and it is a bit more complicated because of WASM. When a WASM function returns something, it normally uses a pointer to shared memory, so that there is no unnecessary cloning, but because the WASM runs in the memory of the web worker the main thread can’t access it. So I had to work around that."}, {"post_id": 39133, "ts": "2026-08-01T21:00:01Z", "hours": 5.4594, "text": "FOR CURRENT DEMO CLICK HERE Rhai support I got rhai to work. It took a bit to figure out how to expect the script to return an array of 3 u8’s, but after figuring out that all rhai numbers are i64 and then figuring out how to downsize that to u8 it works! Later I then added the current coordinates into the scope and a rand function to generate noise. Monaco A bare textarea element for script input is pretty bad so I switched to the monaco editor. Its the same one VSCode uses so most of us should be pretty familar with it and its keybinds. It took some time to figure out how to load monaco from CDN and not build locally. I also had some cosmetic bugs with the minimap, so I just disabled it as the scripts should be rather short and its not that useful anyways. Using localstorage the script now also persist between sessions. Anti-Aliasing As you can see the output isn’t clear but has these weird white lines. These do go away after running the script multiple times. This due to the browser doing some post processing like anti-aliasing on the drawn rectangles and it adds some semi-transparent pixels to the edges. This is especially bad if you pass use decimal values as coordinates to draw to the canvas, which I am doing to fit my pixels on there. I tried multiple methods to disable this post-processing for drawing filled rectangles, but nothing worked. The solution is to use a hidden canvas, draw the output at native resolution to it and then transfer the image from that canvas to the real one. The putImage function does allow me to disable post processing and adjust the destination size. Now it works and the bare minimum is here . As always you can test it here ! It automatically runs off of the latest commit."}, {"post_id": 38401, "ts": "2026-07-31T19:09:15Z", "hours": 5.5975, "text": "Idea I really like experimenting with random functions and math relations and then displaying them. So I want to make this website where you can write a script to run on every pixel and then display the result. Originally this was just rust code creating ppm pictures, but a web app is more accessible. Implementation I am still not the biggest JS fan and more comfortable with rust, so I will use WASM to make rust run in the browser. This also has some performance benefits and I can easily add scripting languages Canvas The first step was to have something I can draw pixels to with JS. I went with a canvas and drawing filled rects to it. WASM Rust to WASM seems to have a very mature pipeline and its very easy. You just write normal rust code and all functions, types, etc you want to expose to JS you can use #[wasm_bindgen] from the wasm-bindgen crate. Then after installing wasm-pack you can run wasm-pack build --target web to compile the rust to wasm. It also automatically generates the JS glue and TS headers. In JS you just have to import a init function and the exposed wasm functions you want to use. The browser does the rest! Everything will run locally in the browser, which also means we can use githubs free static hosting , which I already setup with a github action, check it out here ! Currently I have only got a bare minimum UI and no language support. Next on my list is adding Rhai support (scripting language similar to rust) and getting that to actually output some pixels."}]...
|
Title: ScriptCanvas by @M-Mrk | Stardance
Devlogs Title: ScriptCanvas by @M-Mrk | Stardance
Devlogs:
Idea I really like experimenting with random functions and math relations and then displaying them. So I want to make this website where you can write a script to run on every pixel and then display the result. Originally this was just rust code creating ppm pictures, but a web app is more accessible. Implementation I am still not the biggest JS fan and more comfortable with rust, so I will use WASM to make rust run in the browser. This also has some performance benefits and I can easily add scripting languages Canvas The first step was to have something I can draw pixels to with JS. I went with a canvas and drawing filled rects to it. WASM Rust to WASM seems to have a very mature pipeline and its very easy. You just write normal rust code and all functions, types, etc you want to expose to JS you can use #[wasm_bindgen] from the wasm-bindgen crate. Then after installing wasm-pack you can run wasm-pack build --target web to compile the rust to wasm. It also automatically generates the JS glue and TS headers. In JS you just have to import a init function and the exposed wasm functions you want to use. The browser does the rest! Everything will run locally in the browser, which also means we can use githubs free static hosting , which I already setup with a github action, check it out here ! Currently I have only got a bare minimum UI and no language support. Next on my list is adding Rhai support (scripting language similar to rust) and getting that to actually output some pixels.
FOR CURRENT DEMO CLICK HERE Rhai support I got rhai to work. It took a bit to figure out how to expect the script to return an array of 3 u8’s, but after figuring out that all rhai numbers are i64 and then figuring out how to downsize that to u8 it works! Later I then added the current coordinates into the scope and a rand function to generate noise. Monaco A bare textarea element for script input is pretty bad so I switched to the monaco editor. Its the same one VSCode uses so most of us should be pretty familar with it and its keybinds. It took some time to figure out how to load monaco from CDN and not build locally. I also had some cosmetic bugs with the minimap, so I just disabled it as the scripts should be rather short and its not that useful anyways. Using localstorage the script now also persist between sessions. Anti-Aliasing As you can see the output isn’t clear but has these weird white lines. These do go away after running the script multiple times. This due to the browser doing some post processing like anti-aliasing on the drawn rectangles and it adds some semi-transparent pixels to the edges. This is especially bad if you pass use decimal values as coordinates to draw to the canvas, which I am doing to fit my pixels on there. I tried multiple methods to disable this post-processing for drawing filled rectangles, but nothing worked. The solution is to use a hidden canvas, draw the output at native resolution to it and then transfer the image from that canvas to the real one. The putImage function does allow me to disable post processing and adjust the destination size. Now it works and the bare minimum is here . As always you can test it here ! It automatically runs off of the latest commit.
DEMO HERE and as soon as github gets itself back together I can also push the newest changes to it! Refactor, refactor and some more refactoring Actual new features I added options to the top. You can switch the output type and script language. But seeing as there currently is only 1 language (Rhai) and 1 output type (Grid) they are kinda pointless. I also added output specific options, for Grid it is currently just the resolution. Also I added a spinner to the run button to indicate that the script is running but that didn’t work until a refactor/feature mentioned later. Refactors The rest of the time was all spent on refactoring. But I do think it was worth it and it is now way easier to add new features. Modularity I introduced a state system where each output type has its own module. Each output only exposes a common interface with a init, deinit and pipeline method. This way other parts, don’t need to deal with what output is set. Each output also deals with its specific settings and UI itself. -> I fully switched from to . I was kind of fed up with the loosey goosey attitude of javascript where nothing is really defined. Typescript doesn’t fix that entirely but does help to find a lot more bugs when writing the code and not at runtime. Vite As does need some sort of bundler/builder I set up vite for the project. This also means I can make the repo more source files only. Before I had the compiled wasm also in the repo, but now it gets compiled together with vite’s build process in the github action. Probably vite also has some other performance benefits. Web Worker As I mentioned before I added a spinner to when the script was being run to show that something is actually happening, but the that wasn’t showing. Because I had everything running off of the main thread calling the WASM blocked everything else even the UI and the browser would ask whether to close the page. The solution is to move it to a web worker, which runs in a separate thread. This was probably the most difficult thing, because it required major changes and it is a bit more complicated because of WASM. When a WASM function returns something, it normally uses a pointer to shared memory, so that there is no unnecessary cloning, but because the WASM runs in the memory of the web worker the main thread can’t access it. So I had to work around that.
New UI plans and some QoL features Features Auto clamp 🗜️ It can be really frustrating if the output exceeds 255 and everything errors out. So I added a auto clamp checkbox, which just clamps the output to the expected range of 0 to 255. Hot reload I also added a check box for hot reloading. When you stop typing, the script will automatically run. No need to press the run button. Probably a bit annoying on larger resolutions so you can disable it. New UI I also started building the real UI. Initially I just did the layout: top bar with global settings middle part with editor and output console output, where print calls and errors will go. The output part also has a tool bar with output specific settings. An explanation of the app will go on the index and it will have a link to /app where the actual stuff is. This way I don’t have to give any screen space up for an introduction when not needed. Currently the index is just a redirect. Initially I wanted to go with a windows 8 panel style UI, so nothing rounded and only big rectangular tiles. But during experimenting I made the tile only as big as its text and when the background color got highlighted it reminded me of a TUI button. So from that point on I decided to try and style my entire site like that. I think I can pull this TUI look off, but the current styling is definitely not finished. I do however already like the checkboxes, which are styled like [ ] and [*], and the dropdown select. The select was way harder to do as you can’t really style the vanilla element, as it depends on os and browser styling. So you have to create your own. I would say I learned a lot new things about css. Especially stuff like ::before and ::after are super handy for the look I am going for.
Continuing on improving the ui and some refactors Number input styling Those now also have better tui like styling. I added sqaure brackets [] to the ends, the hover background highlighting and a blinking underscore if you focus on it. Though am unsure whether it is clear enough that you are supposed to enter text into them. If you’ve got any improvement ideas let me know. Loading indicator When something is loading I can add the loading class which displays the typical tui animation spinner before it. The one made up of brail dots ⠧ Central Icon I felt that the run button could be unnoticed so I added an icon to the middle of screen. It also shows the loading to make it more clear that the script is actually being run. Error pop up Instead of just having some red text in the console I add a real error pop up with a blinking dashed red outline. Performance increase I spent some time thinking about doing a bunch of stuff to make my wasm multi threaded and async, which included using nightly features, a service worker shim to change http headers, etc. Because I felt that the script running was way too slow and I wanted better performance and the ability to easily cancel the running wasm. Currently the wasm is blocking and goes over each pixel one by one. But before I implemented that I did some other performance changes, like only creating 1 shared rhai engine for all pixels. Before every pixel created its own rhai engine. This change was way more substantial than I thought, as it took the per pixel time from 0.5ms down to 0.04ms . This means 255*255 pixel or 65k pixel don’t take 12s but 2s. This is such a change that I think implementing all the async and multi threading would just be a waste of time, so I’ll stash that idea for now. console I also styled the console part and added all the ui logic. I want to give the user the option to use a print function in there script for debugging purposes. Then in the console it’ll show on which pixel the debug comes from and what it says. But as the image can get pretty big and the user might print once or more per pixel, just adding some Nodes to a console div would probably blow up everything. So at first I experimented with a canvas. The canvas overlays on the console div and then behind it is a big spacer which allows for scrolling, some code would then change what the canvas shows based on where the back is scrolled to. After I had gotten it to display some logs nicely, I realized that this way doesn’t allow the user to highlight and copy the logs, which is probably something someone might want to do. So I switched the canvas out with a normal div. Instead of drawing the logs to a canvas the logs do get added as nodes, but only the visible ones and the scrolling changes which are shown. This way the user can interact with them like normal text and the DOM doesn’t have to render 1k+ nodes. This seems to work really good, the only problem was getting the scrolling to work while the log nodes occupy the same space, but with some css trickery and EventListeners I can pass any scrolling done on the logs through to the background scrolling element. Refactoring I am still working on the wasm part of allowing the user to use print(). While implementing that i had to change what it outputs and refactored the rust project structure. When I then got to the part where the browsers main ui thread interacts with the web worker which runs the wasm, I realized how badly that part was written, with so many loose interfaces and strings. So I am currently still refactoring that and trying not to loose my mind. Still not a big fan of and
Layouting, resizing and a console Console I finally got everything working together. This means that you can now use print() and debug() in the script and it’ll output to the console ! It’ll tell you what was printed and at what pixel, e.g. [x:2|y:4] => here! . I’ve attached a diagram of why some parts of this project are really painful to work with. Its largely due to the amount of wrappers needed, because of the memory and thread separation of the web worker/wasm. Reworking this was really not fun and just doing it better the 1. time would’ve saved me a lot of time. The console won’t be in use all the time and not everyone will use it so I also wanted to limit the space it takes. I firstly reduced the standard space it gets down to 5% of the view height and then made it drag resizable. You can press and hold on the drag handle of the console and stretch it out over the output and editor. This way you can decide how much screen space you want to sacrifice. I used the pointer API so in theory this should work with all kinds of stuff from fingers to pens. In the end the console was way more css intensive then I thought as it needs some and css tomfoolery in order to scroll without blowing up the DOM. Performance increases I learned about Abstract Syntax Trees and made the wasm precompile the script to an AST before rerunning it a bunch of times with different scopes. This was another substantial performance increase decreasing the per pixel time form 0.04ms down to 0.004ms. Wow was the wasm unoptimized Error highlighting I finally added error highlighting. The line with an error now gets highlighted in the editor. During adding this feature with the Monaco editor I also accidently bumped my bundled js to 500kb . This was due to it importing a bunch of syntax stuff for different languages. Thankfully changing one Monaco.something to monaco.something resolved this QoL errors get cleared when rerunning script add resolution to script scope UI I noticed that you couldn’t resize the app to something smaller. You could however make it smaller and then reload. Meaning that it was able to come up with a good layout but something was greedy and holding on to its space. Width wise this was easy to fix by adding a dynamic sizing flag to the editor and some min-width: 0 s to some elements, but height wise i couldn’t get it to work. Turns out even with dynamic sizing the editor is still not the biggest fan of being resized so I had to add a ResizeObserver and call the editors layout method to make it reconsider its size Next up I will now implement a better UI for smaller screens, but first I need to declutter my css and html to make it more maintainable . Other additions/fixes
Coming to an end I am kind off getting frustrated with this project, I cant handle this stack anymore , I yearn for hardware again. I am aiming to finish this in the next 2 weeks! Well any ways here is what I did: Output stretching Until now the grid output was always a square, so if you had a non-square resolution it would be stretched to one. Now it actually gets the shape of the resolution and it uses the most of the usable space it can. I also added a option to return to the original method. Blur Initially I had some problems with drawing pixels to the canvas. I drew rectangles to the canvas but some image smoothing settings were adding anti-aliasing and similar stuff making the pixels look weird. I fixed that by just creating raw image data, but it was a cool effect for some situations, like generating a gradient. So I added a option to toggle this image smoothing of the browser. Sadly as it is browser based I’d probably has very different results on different browsers. Small UI I did a bunch of css fixes to make the ui more resizable and trigger a bunch of stuff on resizing. Then I added a tabbar and reduced the layout. In the normal layout the editor and output are side by side and when the screen is too small only one is shown and you can switch with the tabbar. It also moves the top bar actions into a setting pop up. Tip box Some features might not be self explanatory, so I added this small tip tool when hovering above stuff for some time. To not be stuck on this for too much longer I scrapped the idea of the landing page and I will instead add a tutorial.
Help, Docs and a Tutorial Help menu and Docs I added a Help modal under the “?” button. It has some actions like opening the tutorial again and features some docs. There are docs on the specific output explaining what the output expects and listing all available variables in scope of the output. So for Grid it explains how the script will be evaluated over all pixels in a grid and the script returns an RGB value setting that pixels color. Then it lists all the variables, like ‘x’ the x-coordinate of the pixel. Tutorial I also added a short tutorial which explains how to get a running script under Grid. I hope it explains all the concepts step by step and that it is understandable. Originally it was more of a tour of the UI and explained all the buttons, but I think that most of that is pretty self explanatory and the new tutorial is better at explaining how to actually use this. Next up I will add 1 more output before shipping!
Final touches Spelling mistakes I fixed a lot of spelling mistakes in the tutorial and help box sections. I think I should keep writing tutorials and docs to times before 1 am. Plot I also added a new output the plot ! The script gets a x value and returns the matching y value. Those pairs then get displayed on a plot using graph.js. During this addition I also reworked the core rust 🦀 engine a bit so now stuff that should be output independent, like creating a Rhai engine or compiling a Rhai script to an AST, is in its own file. Then I added the rust logic and it just returns an array of X and Y value pairs when done. Adding the UI and lifecycle stuff for the plot was rather easy because I kept everything pretty modular with easy expansion in mind. However styling the plot was rather complicated and I now have a enormous JavaScript Object detailing all the small bits and pieces to make the plot look alright! Repo PixelMatrix was always a temporary name as it is only really fitting for the grid output, so I renamed this project to ScriptCanvas. I think this is more fitting because it does use scripts and it also draws those on canvas elements! I also added a README to the repo. As testing on chrome and firefox also looked good I think I am ready to ship !
Ships:
I made a web app where you can make simple scripts to create interesting outputs. Its really fun to see what patterns and stuff you can create from very simple logic! The web app is statically hosted on github pages and does not need any server. It is build on a very performant stack. The main UI thread dispatches a request to a web worker which on a separate thread executes optimized rust WASM. That WASM compiles the script to an AST and then evaluates it a bunch of times across all the needed scopes. Finally the web worker can message the main UI thread back. This separation is needed to not freeze the UI during script evaluation, but because there is a memory separation it was very annoying to work with. I used a vanilla-ish stack with no web framework, but with TS. I learned a lot about CSS and TS/JS. Using a framework would have probably sped up development but I wanted to first really understand what a framework would need to do under the hood before moving to that. All in all I am very proud of this project! Hopefully others find the concept as interesting as I do!...
|
1793001138.7825122
|
1793087538.7825122
|
|
62772
|
Cipher-Deck by @Amad-Hussain-Dev | Stardance
|
Amad-Hussain-Dev
|
1
|
4.08
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T11:56:42Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Cipher Deck is a Retro Esque game for fellow Developers, Hackers and CS Enthusiasts. The core objective is to hack into the mainframe system of a company by solving logic gate puzzles, ciphers and syntax errors in code. Each module is designed to be fun, interactive and entertaining.", "repo": "https://github.com/dev-amad/CIPHER-DECK", "demo": "https://cipher-deck-lyart.vercel.app/"}]...
|
[{"post_id": 71033, "ts": "202 [{"post_id": 71033, "ts": "2026-09-20T07:22:46Z", "hours": 0.5328, "text": "small update in the code files for better structuring completed and pushed to github!"}, {"post_id": 70673, "ts": "2026-09-19T15:53:14Z", "hours": 0.4836, "text": "Fresh file push completed"}, {"post_id": 70658, "ts": "2026-09-19T15:19:25Z", "hours": 0.4672, "text": "Rewriting Code Files"}, {"post_id": 70633, "ts": "2026-09-19T14:17:26Z", "hours": 0.5914, "text": "Added a DevLog and updated the README file so that people get how the development journey for the project worked and to introduce some originality and creativity so that hopefully more people try the game out. also added my future goals for improving the game so that people know whats coming in the future!"}, {"post_id": 70172, "ts": "2026-09-18T16:51:13Z", "hours": 0.3619, "text": "App uploaded to Github and deployed!!!"}, {"post_id": 70053, "ts": "2026-09-18T11:14:40Z", "hours": 0.5231, "text": "Debugging Cipher Decrypt Issues with UI display of puzzle"}, {"post_id": 70003, "ts": "2026-09-18T08:04:59Z", "hours": 0.6425, "text": "Starting Work on Basic Skeleton Code"}]...
|
Title: Cipher-Deck by @Amad-Hussain-Dev | Stardanc Title: Cipher-Deck by @Amad-Hussain-Dev | Stardance
Devlogs:
Starting Work on Basic Skeleton Code
Debugging Cipher Decrypt Issues with UI display of puzzle
App uploaded to Github and deployed!!!
Added a DevLog and updated the README file so that people get how the development journey for the project worked and to introduce some originality and creativity so that hopefully more people try the game out. also added my future goals for improving the game so that people know whats coming in the future!
Rewriting Code Files
Fresh file push completed
small update in the code files for better structuring completed and pushed to github!
Ships:
Cipher Deck is a Retro Esque game for fellow Developers, Hackers and CS Enthusiasts. The core objective is to hack into the mainframe system of a company by solving logic gate puzzles, ciphers and syntax errors in code. Each module is designed to be fun, interactive and entertaining....
|
1793058655.7954366
|
1793145055.7954366
|
|
63451
|
Lifeline by @Jay-can-code | Stardance
|
Jay-can-code
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T11:45:09Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "LIFELINE is a resource finder that makes it easier to find help with things like food, housing, education, jobs, transportation, and more. Instead of having to search through a bunch of different websites, you can find resources in one place! (its currently only for my local area, but it’ll definitely branch out a lot more in the future)", "repo": "https://github.com/Jay-at-GSMST/Lifeline-Project", "demo": "https://jay-at-gsmst.github.io/Lifeline_Project/"}]...
|
[{"post_id": 70349, "ts": "202 [{"post_id": 70349, "ts": "2026-09-19T00:46:08Z", "hours": 2.1425, "text": "Im keeping it extremely bland and simple for the moment, because I need to do more research for other locations than just my county. I have the structural base of the website, it just needs to have more resources for people to use now!"}, {"post_id": 70127, "ts": "2026-09-18T14:52:01Z", "hours": 0.7022, "text": "you can’t really see the change in action, but I made it so that each button changes that mid section’s information. I just needa actually implement good information in each of those designated sections now!"}, {"post_id": 70106, "ts": "2026-09-18T14:06:37Z", "hours": 0.5089, "text": "Sooooooo its getting extremely hard to find jobs, and its getting me scared because im a senior in high school and I have college coming up faster than I’d like. Me and my friends are worried we wont be able to find the resources we need to help us get through our next phase of life, so I figured I’d build a site where people can find those resources and share some with others! I’ve just made the main page so far, but for the most part this is a project that I really think could help a lot of us who are going into our college years, or starting to live on our own!"}]...
|
Title: Lifeline by @Jay-can-code | Stardance
Devl Title: Lifeline by @Jay-can-code | Stardance
Devlogs:
Sooooooo its getting extremely hard to find jobs, and its getting me scared because im a senior in high school and I have college coming up faster than I’d like. Me and my friends are worried we wont be able to find the resources we need to help us get through our next phase of life, so I figured I’d build a site where people can find those resources and share some with others! I’ve just made the main page so far, but for the most part this is a project that I really think could help a lot of us who are going into our college years, or starting to live on our own!
you can’t really see the change in action, but I made it so that each button changes that mid section’s information. I just needa actually implement good information in each of those designated sections now!
Im keeping it extremely bland and simple for the moment, because I need to do more research for other locations than just my county. I have the structural base of the website, it just needs to have more resources for people to use now!
Ships:
LIFELINE is a resource finder that makes it easier to find help with things like food, housing, education, jobs, transportation, and more. Instead of having to search through a bunch of different websites, you can find resources in one place! (its currently only for my local area, but it’ll definitely branch out a lot more in the future)...
|
1793058763.3362548
|
1793145163.3362548
|
|
4906
|
spot-electricity-display by @viivi | Stardance
|
viivi
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T11:25:22Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "spot-electricity-display It’s a small ESP-8266 project for displaying the current spot electricity price. I used Arduino IDE for coding the code to fetch and update the data displayed on the screen. I also 3D modelled a case for it with Tinkercad but I haven’t tried to actually print or build it because I don’t have a 3D printer or materials for it. The first photo is an edited demonstration photo how it could look like (perspectives failed). The second photo shows what I actually have. I made this because it could make life easier. Instead of opening an app it would be much easier to check this to see the price. It wasn’t easy to make this because I felt like everything was against me. Libraries weren’t the easiest to use, the screen tweaked all the time and there isn’t many guides for this specific board because it’s quite rare.", "repo": "https://github.com/ViLP357/spot-electricity-display", "demo": ""}]...
|
[{"post_id": 70552, "ts": "202 [{"post_id": 70552, "ts": "2026-09-19T11:11:43Z", "hours": 0.4169, "text": "#4 devlog I guessed it rght, on the next day it worked again. One possible reason it didn’t work then was that the text wasn’t set to white, though it should be white as default. I finished readme and filmed a short demo video."}, {"post_id": 55666, "ts": "2026-08-27T17:01:57Z", "hours": 1.4514, "text": "#3 devlog Today I… tried to add timing for API requests, and I think it works but now my oled screen won’t display anything. There’s 50/50 chance it works tomorrow with exact same code :(. Finished 3D modelling by making a back plate for the case. Wrote something to the README"}, {"post_id": 33636, "ts": "2026-07-23T18:27:06Z", "hours": 2.0792, "text": "#2 devlog Coding Lot of time, no progress. I spent quite a long time trying to make buttons on my board work with my code. I couldn’t make them work :) . Instead of buttons I might make text change with specific a frequence. 3D-modelling I started making box case for simple electronics (the board and battery case). I used Tinkercad for modelling. I had used Tinkercad before but it’s been long time since I used it last time. I really liked that Tinkercad has ready models of electronics even though it didn’t have the ones I’m using. That’s why I had to use components as close as possible to my actual components."}, {"post_id": 9143, "ts": "2026-06-15T09:47:02Z", "hours": 0.9778, "text": "#1 devlog, days 1-2 This project has now officially started. Git and github are set up and the core feature works! Currently the arduino (it’s actually Wemos, not arduino) is able to show current price. I use free API to get spot electricity price (it’s price in Finland). https://api.spot-hinta.fi/JustNow The board I use is Lolin D1 mini Pro V2.0.0 My plan for this project: make the screen display current spot electricity price design and maybe build box/casing for electronics add leds to indicate how cheap or expensive electricity is now add buttons for scrolling future prices"}]...
|
Title: spot-electricity-display by @viivi | Starda Title: spot-electricity-display by @viivi | Stardance
Devlogs:
#1 devlog, days 1-2 This project has now officially started. Git and github are set up and the core feature works! Currently the arduino (it’s actually Wemos, not arduino) is able to show current price. I use free API to get spot electricity price (it’s price in Finland). https://api.spot-hinta.fi/JustNow The board I use is Lolin D1 mini Pro V2.0.0 My plan for this project: make the screen display current spot electricity price design and maybe build box/casing for electronics add leds to indicate how cheap or expensive electricity is now add buttons for scrolling future prices
#2 devlog Coding Lot of time, no progress. I spent quite a long time trying to make buttons on my board work with my code. I couldn’t make them work :) . Instead of buttons I might make text change with specific a frequence. 3D-modelling I started making box case for simple electronics (the board and battery case). I used Tinkercad for modelling. I had used Tinkercad before but it’s been long time since I used it last time. I really liked that Tinkercad has ready models of electronics even though it didn’t have the ones I’m using. That’s why I had to use components as close as possible to my actual components.
#3 devlog Today I… tried to add timing for API requests, and I think it works but now my oled screen won’t display anything. There’s 50/50 chance it works tomorrow with exact same code :(. Finished 3D modelling by making a back plate for the case. Wrote something to the README
#4 devlog I guessed it rght, on the next day it worked again. One possible reason it didn’t work then was that the text wasn’t set to white, though it should be white as default. I finished readme and filmed a short demo video.
Ships:
spot-electricity-display It’s a small ESP-8266 project for displaying the current spot electricity price. I used Arduino IDE for coding the code to fetch and update the data displayed on the screen. I also 3D modelled a case for it with Tinkercad but I haven’t tried to actually print or build it because I don’t have a 3D printer or materials for it. The first photo is an edited demonstration photo how it could look like (perspectives failed). The second photo shows what I actually have. I made this because it could make life easier. Instead of opening an app it would be much easier to check this to see the price. It wasn’t easy to make this because I felt like everything was against me. Libraries weren’t the easiest to use, the screen tweaked all the time and there isn’t many guides for this specific board because it’s quite rare....
|
1793004560.3871546
|
1793090960.3871546
|
|
50862
|
polaris-os by @kai_lmao | Stardance
|
kai_lmao
|
5
|
30.0
|
273
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T11:23:19Z", "hours": 7.0, "multiplier": 9.93, "payout": 69, "blessing": "neutral", "text": "hey everyone! After reading your reviews on my last ship, I spent time restructuring my code and adding some new features to make the OS feel much more like a real desktop. Here is what’s new: Local storage persistence: Polaris OS finally remembers your preferences! your custom accent colors and notepad entries now save automatically, so you won’t lose them when you reload the page. Achievements system: i added 5 brand-new unlockable achievements to find while exploring the OS (and yes, your progress saves via local storage too!). New dictionary app: look up any word instantly using the Openmuse API. you can use the new dictionary app, or just type define [word] straight into the terminal. Settings app & UI polish: built a dedicated Settings app to manage the OS. i also added a volume slider for the media player (which has new songs!), and hover-name overlays for taskbar apps. Performance & visual upgrades: designed a brand new, cooler loading animation, fixed the stretched confetti hitbox bug, and optimized the NASA APOD widget so high-res space images no longer lag the entire website. let me know what you think of the new apps and if you manage to unlock all the achievements!", "repo": "https://github.com/KaiTheGreat-123/polaris-os", "demo": "https://kaithegreat-123.github.io/polaris-os/"}, {"ship_num": 2, "ts": "2026-09-11T12:27:41Z", "hours": 8.0, "multiplier": 11.4, "payout": 93, "blessing": "neutral", "text": "hey guys! i’m back with more big updates for polaris! since my last ship, i’ve been juggling my exams but still managed to add some really fun new features to make the OS feel even more alive and interactive. heres a list of every single new change i added since and the issues i had with adding them: Apps Music app: the music app was pretty fun to add and made polaris less boring, but i kept running into issues with adding the ui over the default ui (the white blob which did not match polaris at all) Gallery app: the gallery app is another addition, with a few pictures related to polaris. the difficult part was adding the transitions between changing the pictures, and loading the pictures without taking hours Terminal app: the terminal app is something i took inspiration from other webos’s, and it was actually hard to add and i also kept running into a issue where i could not type in the app at all, but i fixed it all and got it working! Other changes Dynamic wallpaper: i got a few people say that the wallpaper looked a little boring, so i added stars that float around the entire wallpaper and react with your cursor! TicTacToe bot: this one was a great learning experience but just as hard, took me a while to figure out what i was doing but i finally got there in the end and built a working bot to play against! Desktop widgets: i added 2 widgets, the analog time and the NASA APOD. the analog time was pretty straight forward, but the NASA APOD was a little hard, especially with adding a fallback because any video APOD just broke the widget. For the smaller changes i just changed the logos of a few apps to look consistent, cleaned up my github repo and changed the tab title. im getting pretty close to reaching where i want polaris to be. feel free to try out all the changes! hope you enjoy them :)", "repo": "https://github.com/KaiTheGreat-123/polaris-os", "demo": "https://kaithegreat-123.github.io/polaris-os/"}, {"ship_num": 3, "ts": "2026-09-03T18:31:36Z", "hours": 7.0, "multiplier": 10.36, "payout": 75, "blessing": "neutral", "text": "hey everyone! i’m back with more updates to Polaris, my web-based space-themed OS! since my last ship, i’ve made many changes to make it feel even more like a real, immersive desktop experience right in your browser. the biggest new tool is the weather app! you can just type in your desired city and it instantly fetches the real time temperature and weather conditions using an api. the live clock on the taskbar also got an update as clicking it now smoothly slides up an interactive calendar, complete with arrows so you can actually navigate through different months! it also removes the need to have its own app in the taskbar, and feels more like windows. i also completely revamped the ui and aesthetics! everything now has a glowing purple drop shadows around the edges of the windows (kinda like underglow on a car!). the taskbar icons now smoothly scale up when you hover over them to indicate that they are selected, and clicking them makes the apps fade into existence instead of just snapping in. i also merged the welcome and links pages into one big info window to keep the desktop clean. to make the whole OS feel alive, i built a brand new animated star filling loading screen, plus i added global sound effects! there’s a satisfying startup sound when the OS finishes booting, and click sounds whenever you open apps or navigate the UI. (there’s also a fun hidden easter egg on the desktop background that triggers star confetti if you click the text!) my goal is still to turn this into a single tab with everything simple a person could need in one place. i will continue working on this project, polishing the animations, and ofc adding more apps! feel free to drag the glowing windows around, check your local weather, and play around with the confetti! i hope you like my work :)", "repo": "https://github.com/KaiTheGreat-123/polaris-os", "demo": "https://kaithegreat-123.github.io/polaris-os/"}, {"ship_num": 4, "ts": "2026-08-30T12:08:21Z", "hours": 4.0, "multiplier": 9.08, "payout": 36, "blessing": "neutral", "text": "hey everyone! i built Polaris, a web-based OS based on a space theme! it feels just like a real OS experience right here in your browser! the whole thing is built by me completely from scratch, using HTML, CSS and JavaScript. it just started out as a simple introductory project, but once i started adding more things to it, it slowly turned into a whole operating system! the first app i added was the note taker, which was a simple tool to add temporary notes and reminders inside. after that, i added more apps like the calculator, timer, and tic-tac-toe (more coming soon)! all of these apps can run at the exact same time, and you can drag them all around the screen. the taskbar at the bottom gives you easy access to open any of the available apps, complete with icons that highlight when you tap them and a live clock. feel free to check out all the apps, drag the windows around, and see if you can beat your friends at tic-tac-toe! i plan on turning into a single tab with everything simple a person could need, so instead of opening multiple apps, anyone can just open one single tab and have all the simple tools they need in one place! i will continue working on this project as time passes, and i plan to add animations to everything, add an apps window, and ofc more apps! i hope you like my work :)", "repo": "https://github.com/KaiTheGreat-123/polaris-os", "demo": "https://kaithegreat-123.github.io/polaris-os/"}, {"ship_num": 5, "ts": "2026-08-25T14:31:38Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a webOS that is themed after the Polaris star! it took me a few hours to get this far, and i am going to spend a few hours every weekend progressing it further by adding more apps, and giving it more functionality in general. a new feature i built is a taskbar on the bottom with the ability to open windows and applications, and see time from there instead of a top bar which was mentioned in the guide, so i could get a more windows/macOS feel to the webOS which is more familiar.", "repo": "https://github.com/KaiTheGreat-123/polaris-os", "demo": "https://kaithegreat-123.github.io/polaris-os/"}]...
|
[{"post_id": 70546, "ts": "202 [{"post_id": 70546, "ts": "2026-09-19T10:41:45Z", "hours": 0.7503, "text": "a few smaller changes before i ship again, there was an issue where the clickable box on the text for confetti was stretched across the entire screen, so i fixed that. Another issue that was there is that when the nasa apod was a very high res image, it made the entire website very laggy so i changed that to display url instead of the hdurl and lastly i added localstorage so polaris actually remembers a lot of the options like your notes and accent color changes that you change!"}, {"post_id": 70044, "ts": "2026-09-18T11:02:53Z", "hours": 1.4322, "text": "achievements! while thinking of ideas to add, i saw my friend unlock achievements and i thought why not add that to Polaris too? i added 5 new achievements and they even save after you reload the page! i am planning on adding localstorage to the other apps too, like settings and notepad. i also noticed that sometimes when the nasa apod is an extremely detailed of high definition image, the widget lags a lot when opening and closing. i need to find a way to fix that."}, {"post_id": 67895, "ts": "2026-09-14T06:15:19Z", "hours": 2.3103, "text": "hey guys! i have made more changes to polaris os today. firstly i added a new app! its a dictionary app and you can look up any word you like by typing it in the app, or by typing “define [word]” in the terminal. i tried to use dictionaryapi but realised its not very reliable, so the current api im using for this app is openmuse. secondly i added a new loading animation! i felt the loading star in the start felt a little boring, so i added more elements on all 4 sides of the screen so it looks way cooler! and a small change but i also added more songs into the playlist of the media player."}, {"post_id": 66404, "ts": "2026-09-12T06:51:47Z", "hours": 2.4981, "text": "back with more updates! after shipping, i checked all the reviews and got to work implementing them! i first took some help with ai to restructure and reorganize my code since it was starting to get messy and hard to read and make new changes, then i started working on new apps! currently im working on adding the settings app! i spent around 2 hours on it, and i will add more to it and polish it up soon. i also added a volume slider for the music app, and added a name overlay for the apps on the taskbar which took about 30 minutes to do. please do let me know if theres any more changes or additions i can make to improve polaris!"}, {"post_id": 65846, "ts": "2026-09-11T08:11:54Z", "hours": 4.9044, "text": "many more changes! as im getting closer to the 10 hours that count per ship im going to ship once again after this devlog, but heres a list of all the changes i made since the last devlog: Added a gallery app! now you can see different pictures related to polaris and on how to find it. (it also was taking a while to load everytime, so i made it load pictures in advance, and a error message so the user knows whats going on just incase it dosnt load) Added widgets! there are now two new widgets, the nasa apod widget and the analog clock widget. they open by default, but you can collapse them out of view if they look too distracting! (the nasa apod also had an issue where if it was a video it broke, so i made it fallback to the previous day in that case) Added a playlist to the media app so now the user can see the list of all the songs and play them from there too. Added a dynamic wallpaper, theres now stars in the wallpaper that move around and react to your cursor! (i couldnt animate the wallpaper or find a better one, so i added a layer on the wallpaper with the stars moving around to make everything feel more dynamic) Added a terminal app with simple commands! you can now open apps and more using the terminal app. Neatened up the files in github too! with multiple songs and icons the github repo started to look very very messy so i made new folders and cleaned it up!"}, {"post_id": 64266, "ts": "2026-09-08T15:22:24Z", "hours": 3.2197, "text": "i more big features to polaris! its not a lot of changes, but the features i added were difficult for me to implement cause i kept making errors, but here are all the changes i made: Added a music player app! plays a set of songs that i uploaded Added a bot to tictactoe! it was way harder than i thought, but with a bit of help i managed to get it working. players now have the option to play against someone else or against a bot. Changed the logos off a bunch of the apps to look more consistent its a bit difficult to make progress while juggling exams, but i will be making a lot more changes soon!"}, {"post_id": 60878, "ts": "2026-09-03T15:00:41Z", "hours": 0.495, "text": "A small devlog before i ship my project again but heres what i added: Added boot up, button clicking and calendar opening sound effects! (if the boot up sound does not play for you, it means that a browser security setting disabled it)"}, {"post_id": 60378, "ts": "2026-09-02T17:51:01Z", "hours": 2.6942, "text": "More changes! not as many as the last one, but here are all the changes i made: Added a boot up and loading screen! Added a weather app! type the place you want the weather of and it will show it to you! Added the feature where you can scroll thru months instead of the calendar being stuck on just the current month Added a purple hue around the windows to add more depth Changed the style of the taskbar a little bit Moved “PolarisOS” out of the taskbar and put it on the desktop instead to fill in empty space"}, {"post_id": 59402, "ts": "2026-09-01T06:31:13Z", "hours": 2.8233, "text": "After shipping my project i checked out all the ratings, and ive made a couple of changes to Polaris. Many people pointed out that it took multiple clicks to open apps, so i fixed that issue. now apps open with just one click, and they have a hover animation (when you hover over the app icon it becomes bigger) Fixed the project link not working Added animations for the windows opening and closing Added a higher resolution background Added an easter egg (hint:-click on polaris!) Added milliseconds to the timer Moved the calendar out of the taskbar and hidden away, it opens when you click on the time in the taskbar (like in windows) Merged the welcome window and links window into one information app for better organization in the taskbar Neatened up the app borders and size on the taskbar to be more visible going to start working on more apps now!"}, {"post_id": 58647, "ts": "2026-08-31T04:14:49Z", "hours": 1.2575, "text": "Calendar! polaris now has a calendar so you can check all the dates of the month! it also highlights the current date aswell. i also removed the name of the apps from the taskbar as it was starting to get cramped, and for my next task i am going to add animations to everything and make it look nicer!"}, {"post_id": 58035, "ts": "2026-08-30T11:47:25Z", "hours": 1.0839, "text": "Tic-Tac-Toe! i added yet another app, the tic-tac-toe app! polaris felt a bit boring with only utility apps in it, so i added the new app to add a bit more fun! i themed it after space too, with players being the earth and the moon. it adds more color and vibrance to polaris too!"}, {"post_id": 57320, "ts": "2026-08-29T13:08:40Z", "hours": 1.0147, "text": "added a timer! continuing on my quest of adding more apps to polaris, the newest addition is the timer. it can starts counting up and when you start it and pauses whenever you want it to, and it also is themed to match the rest of the website."}, {"post_id": 56847, "ts": "2026-08-28T19:56:49Z", "hours": 1.2189, "text": "i made a calculator! i am now adding more apps to polaris and i have started with adding a calculator which does all the simple functions, and i also neatened up the taskbar a bit by changing icon positions and adding borders around them to create uniformity!"}, {"post_id": 54963, "ts": "2026-08-26T12:16:01Z", "hours": 0.6406, "text": "i added the note taker app! now it has the ability to actually take notes, and it can be opened by double clicking and highlighted by single clicking. i also made it transparent using the blur feature and i think it goes pretty well with the rest of the OS!"}, {"post_id": 54463, "ts": "2026-08-25T14:06:52Z", "hours": 0.3336, "text": "started working on an app to implement into my web os! it does look a little whacky right now, but i will be fixing it soon and adding functionality to it."}, {"post_id": 52331, "ts": "2026-08-22T13:16:45Z", "hours": 2.1931, "text": "i added draggable windows which also open and close! i used a little bit of help from ai as i was getting confused, but i added a little bar on the top which acts as a drag box, and also has the close button on it! i also added buttons on the taskbar on the bottom so a closed window can be opened back up again! i also added the time to the taskbar, and neatened up my code a bit so its easier to understand and nicer to look at. i am proud of the progress i made!"}, {"post_id": 50953, "ts": "2026-08-20T12:53:48Z", "hours": 1.5386, "text": "Started working on my very own web-based OS! i am theming it after the star polaris, and currently it looks decent (i hope), i still have to go further and continue making it more functional and nicer, but so far i am happy with how it looks! feel free to give me ideas on how to make it look ever nicer :)"}]...
|
Title: polaris-os by @kai_lmao | Stardance
Devlog Title: polaris-os by @kai_lmao | Stardance
Devlogs:
Started working on my very own web-based OS! i am theming it after the star polaris, and currently it looks decent (i hope), i still have to go further and continue making it more functional and nicer, but so far i am happy with how it looks! feel free to give me ideas on how to make it look ever nicer :)
i added draggable windows which also open and close! i used a little bit of help from ai as i was getting confused, but i added a little bar on the top which acts as a drag box, and also has the close button on it! i also added buttons on the taskbar on the bottom so a closed window can be opened back up again! i also added the time to the taskbar, and neatened up my code a bit so its easier to understand and nicer to look at. i am proud of the progress i made!
started working on an app to implement into my web os! it does look a little whacky right now, but i will be fixing it soon and adding functionality to it.
i added the note taker app! now it has the ability to actually take notes, and it can be opened by double clicking and highlighted by single clicking. i also made it transparent using the blur feature and i think it goes pretty well with the rest of the OS!
i made a calculator! i am now adding more apps to polaris and i have started with adding a calculator which does all the simple functions, and i also neatened up the taskbar a bit by changing icon positions and adding borders around them to create uniformity!
added a timer! continuing on my quest of adding more apps to polaris, the newest addition is the timer. it can starts counting up and when you start it and pauses whenever you want it to, and it also is themed to match the rest of the website.
Tic-Tac-Toe! i added yet another app, the tic-tac-toe app! polaris felt a bit boring with only utility apps in it, so i added the new app to add a bit more fun! i themed it after space too, with players being the earth and the moon. it adds more color and vibrance to polaris too!
Calendar! polaris now has a calendar so you can check all the dates of the month! it also highlights the current date aswell. i also removed the name of the apps from the taskbar as it was starting to get cramped, and for my next task i am going to add animations to everything and make it look nicer!
After shipping my project i checked out all the ratings, and ive made a couple of changes to Polaris. Many people pointed out that it took multiple clicks to open apps, so i fixed that issue. now apps open with just one click, and they have a hover animation (when you hover over the app icon it becomes bigger) Fixed the project link not working Added animations for the windows opening and closing Added a higher resolution background Added an easter egg (hint:-click on polaris!) Added milliseconds to the timer Moved the calendar out of the taskbar and hidden away, it opens when you click on the time in the taskbar (like in windows) Merged the welcome window and links window into one information app for better organization in the taskbar Neatened up the app borders and size on the taskbar to be more visible going to start working on more apps now!
More changes! not as many as the last one, but here are all the changes i made: Added a boot up and loading screen! Added a weather app! type the place you want the weather of and it will show it to you! Added the feature where you can scroll thru months instead of the calendar being stuck on just the current month Added a purple hue around the windows to add more depth Changed the style of the taskbar a little bit Moved “PolarisOS” out of the taskbar and put it on the desktop instead to fill in empty space
A small devlog before i ship my project again but heres what i added: Added boot up, button clicking and calendar opening sound effects! (if the boot up sound does not play for you, it means that a browser security setting disabled it)
i more big features to polaris! its not a lot of changes, but the features i added were difficult for me to implement cause i kept making errors, but here are all the changes i made: Added a music player app! plays a set of songs that i uploaded Added a bot to tictactoe! it was way harder than i thought, but with a bit of help i managed to get it working. players now have the option to play against someone else or against a bot. Changed the logos off a bunch of the apps to look more consistent its a bit difficult to make progress while juggling exams, but i will be making a lot more changes soon!
many more changes! as im getting closer to the 10 hours that count per ship im going to ship once again after this devlog, but heres a list of all the changes i made since the last devlog: Added a gallery app! now you can see different pictures related to polaris and on how to find it. (it also was taking a while to load everytime, so i made it load pictures in advance, and a error message so the user knows whats going on just incase it dosnt load) Added widgets! there are now two new widgets, the nasa apod widget and the analog clock widget. they open by default, but you can collapse them out of view if they look too distracting! (the nasa apod also had an issue where if it was a video it broke, so i made it fallback to the previous day in that case) Added a playlist to the media app so now the user can see the list of all the songs and play them from there too. Added a dynamic wallpaper, theres now stars in the wallpaper that move around and react to your cursor! (i couldnt animate the wallpaper or find a better one, so i added a layer on the wallpaper with the stars moving around to make everything feel more dynamic) Added a terminal app with simple commands! you can now open apps and more using the terminal app. Neatened up the files in github too! with multiple songs and icons the github repo started to look very very messy so i made new folders and cleaned it up!
back with more updates! after shipping, i checked all the reviews and got to work implementing them! i first took some help with ai to restructure and reorganize my code since it was starting to get messy and hard to read and make new changes, then i started working on new apps! currently im working on adding the settings app! i spent around 2 hours on it, and i will add more to it and polish it up soon. i also added a volume slider for the music app, and added a name overlay for the apps on the taskbar which took about 30 minutes to do. please do let me know if theres any more changes or additions i can make to improve polaris!
hey guys! i have made more changes to polaris os today. firstly i added a new app! its a dictionary app and you can look up any word you like by typing it in the app, or by typing “define [word]” in the terminal. i tried to use dictionaryapi but realised its not very reliable, so the current api im using for this app is openmuse. secondly i added a new loading animation! i felt the loading star in the start felt a little boring, so i added more elements on all 4 sides of the screen so it looks way cooler! and a small change but i also added more songs into the playlist of the media player.
achievements! while thinking of ideas to add, i saw my friend unlock achievements and i thought why not add that to Polaris too? i added 5 new achievements and they even save after you reload the page! i am planning on adding localstorage to the other apps too, like settings and notepad. i also noticed that sometimes when the nasa apod is an extremely detailed of high definition image, the widget lags a lot when opening and closing. i need to find a way to fix that.
a few smaller changes before i ship again, there was an issue where the clickable box on the text for confetti was stretched across the entire screen, so i fixed that. Another issue that was there is that when the nasa apod was a very high res image, it made the entire website very laggy so i changed that to display url instead of the hdurl and lastly i added localstorage so polaris actually remembers a lot of the options like your notes and accent color changes that you change!
Ships:
i made a webOS that is themed after the Polaris star! it took me a few hours to get this far, and i am going to spend a few hours every weekend progressing it further by adding more apps, and giving it more functionality in general. a new feature i built is a taskbar on the bottom with the ability to open windows and applications, and see time from there instead of a top bar which was mentioned in the guide, so i could get a more windows/macOS feel to the webOS which is more familiar.
hey everyone! i built Polaris, a web-based OS based on a space theme! it feels just like a real OS experience right here in your browser! the whole thing is built by me completely from scratch, using HTML, CSS and JavaScript. it just started out as a simple introductory project, but once i started adding more things to it, it slowly turned into a whole operating system! the first app i added was the note taker, which was a simple tool to add temporary notes and reminders inside. after that, i added more apps like the calculator, timer, and tic-tac-toe (more coming soon)! all of these apps can run at the exact same time, and you can drag them all around the screen. the taskbar at the bottom gives you easy access to open any of the available apps, complete with icons that highlight when you tap them and a live clock. feel free to check out all the apps, drag the windows around, and see if you can beat your friends at tic-tac-toe! i plan on turning into a single tab with everything simple a person could need, so instead of opening multiple apps, anyone can just open one single tab and have all the simple tools they need in one place! i will continue working on this project as time passes, and i plan to add animations to everything, add an apps window, and ofc more apps! i hope you like my work :)
hey everyone! i’m back with more updates to Polaris, my web-based space-themed OS! since my last ship, i’ve made many changes to make it feel even more like a real, immersive desktop experience right in your browser. the biggest new tool is the weather app! you can just type in your desired city and it instantly fetches the real time temperature and weather conditions using an api. the live clock on the taskbar also got an update as clicking it now smoothly slides up an interactive calendar, complete with arrows so you can actually navigate through different months! it also removes the need to have its own app in the taskbar, and feels more like windows. i also completely revamped the ui and aesthetics! everything now has a glowing purple drop shadows around the edges of the windows (kinda like underglow on a car!). the taskbar icons now smoothly scale up when you hover over them to indicate that they are selected, and clicking them makes the apps fade into existence instead of just snapping in. i also merged the welcome and links pages into one big info window to keep the desktop clean. to make the whole OS feel alive, i built a brand new animated star filling loading screen, plus i added global sound effects! there’s a satisfying startup sound when the OS finishes booting, and click sounds whenever you open apps or navigate the UI. (there’s also a fun hidden easter egg on the desktop background that triggers star confetti if you click the text!) my goal is still to turn this into a single tab with everything simple a person could need in one place. i will continue working on this project, polishing the animations, and ofc adding more apps! feel free to drag the glowing windows around, check your local weather, and play around with the confetti! i hope you like my work :)
hey guys! i’m back with more big updates for polaris! since my last ship, i’ve been juggling my exams but still managed to add some really fun new features to make the OS feel even more alive and interactive. heres a list of every single new change i added since and the issues i had with adding them: Apps Music app: the music app was pretty fun to add and made polaris less boring, but i kept running into issues with adding the ui over the default ui (the white blob which did not match polaris at all) Gallery app: the gallery app is another addition, with a few pictures related to polaris. the difficult part was adding the transitions between changing the pictures, and loading the pictures without taking hours Terminal app: the terminal app is something i took inspiration from other webos’s, and it was actually hard to add and i also kept running into a issue where i could not type in the app at all, but i fixed it all and got it working! Other changes Dynamic wallpaper: i got a few people say that the wallpaper looked a little boring, so i added stars that float around the entire wallpaper and react with your cursor! TicTacToe bot: this one was a great learning experience but just as hard, took me a while to figure out what i was doing but i finally got there in the end and built a working bot to play against! Desktop widgets: i added 2 widgets, the analog time and the NASA APOD. the analog time was pretty straight forward, but the NASA APOD was a little hard, especially with adding a fallback because any video APOD just broke the widget. For the smaller changes i just changed the logos of a few apps to look consistent, cleaned up my github repo and changed the tab title. im getting pretty close to reaching where i want polaris to be. feel free to try out all the changes! hope you enjoy them :)
hey everyone! After reading your reviews on my last ship, I spent time restructuring my code and adding some new features to make the OS feel much more like a real desktop. Here is what’s new: Local storage persistence: Polaris OS finally remembers your preferences! your custom accent colors and notepad entries now save automatically, so you won’t lose them when you reload the page. Achievements system: i added 5 brand-new unlockable achievements to find while exploring the OS (and yes, your progress saves via local storage too!). New dictionary app: look up any word instantly using the Openmuse API. you can use the new dictionary app, or just type define [word] straight into the terminal. Settings app & UI polish: built a dedicated Settings app to manage the OS. i also added a volume slider for the media player (which has new songs!), and hover-name overlays for taskbar apps. Performance & visual upgrades: designed a brand new, cooler loading animation, fixed the stretched confetti hitbox bug, and optimized the NASA APOD widget so high-res space images no longer lag the entire website. let me know what you think of the new apps and if you manage to unlock all the achievements!...
|
1792972196.7061112
|
1793058596.7061112
|
|
54069
|
My personal site :) by @Abis-Aman | Stardance
|
Abis-Aman
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T10:50:10Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "this is my first every that is made with my taste i am thinking that my web eventhough all in one web it has all the requirmants like my web is has the home about and projects that all and the when clicked the page moves to the destination with a smooth glid", "repo": "https://github.com/AbisAman-Dev/My-Personal-Site", "demo": "https://abisaman-dev.github.io/My-Personal-Site/"}]...
|
[{"post_id": 70547, "ts": "202 [{"post_id": 70547, "ts": "2026-09-19T10:47:47Z", "hours": 0.8708, "text": "**Dev log:**so after 2 hours of codding i thought of ending the project as i would only have this lap for two days"}, {"post_id": 70192, "ts": "2026-09-18T17:43:57Z", "hours": 1.1756, "text": "#Devlog-1 so i started doing the html and now only the css part is left and some little html"}]...
|
Title: My personal site :) by @Abis-Aman | Stardan Title: My personal site :) by @Abis-Aman | Stardance
Devlogs:
#Devlog-1 so i started doing the html and now only the css part is left and some little html
**Dev log:**so after 2 hours of codding i thought of ending the project as i would only have this lap for two days
Ships:
this is my first every that is made with my taste i am thinking that my web eventhough all in one web it has all the requirmants like my web is has the home about and projects that all and the when clicked the page moves to the destination with a smooth glid...
|
1793008149.0976737
|
1793094549.0976737
|
|
23919
|
Caveman OS by @colgation | Stardance
|
colgation
|
3
|
19.0
|
110
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T10:17:54Z", "hours": 3.0, "multiplier": 8.67, "payout": 29, "blessing": "neutral", "text": "I made an easter egg hunting game, disguised as a WebOS. A few achievements are easy to get, but some require deep thinking. If you get stuck, don’t worry! I’ve gone through the process of making a Youtube video and detailed instructions in the README on how to get each easter egg. Alongside this, I used three.js to create my very own 3d mammoth. Check it out at https://194500-cpu.github.io/CavemanOS/", "repo": "https://github.com/194500-cpu/CavemanOS", "demo": "https://194500-cpu.github.io/CavemanOS/"}, {"ship_num": 2, "ts": "2026-07-19T09:22:51Z", "hours": 6.0, "multiplier": 14.63, "payout": 81, "blessing": "neutral", "text": "Caveman Web OS is an Easter egg hunting game disguised as a prehistoric computer operating system. At first, it looks like a simple WebOS with draggable windows and applications. However, different buttons, messages and interactions can reveal hidden achievements. Players can use the Easter Egg Tracker to see what they have discovered and receive clues about secrets they have not found yet. In case anyone is struggling, here is a video of me completing all the achievements: https://www.youtube.com/watch?v=Ed1CFRDi-0Q Live Website https://194500-cpu.github.io/CavemanOS/ Features Draggable application windows Desktop-style navigation bar and dock Live date and time display Campfire messaging app Realtime messages using Supabase Easter Egg Tracker Hidden achievements Caveman AI called Bob Random dialogue and hints from Bob Secret phrases and puzzle-based interactions Special ending screens Achievement visuals that change after discovery Custom prehistoric interface and artwork *Sweet Alert 2 for beautiful alerts How It Works The WebOS interface is made from HTML elements styled as movable application windows. Challenges Making Windows Draggable I had to calculate the movement of the mouse and update each window’s position while preventing windows from being dragged completely outside the screen. Window Layering When multiple applications are open, the selected window needs to move in front of the others. I implemented this by increasing each selected window’s z-index. Realtime Campfire Messages I connected the project to Supabase so messages could be saved and displayed to different visitors. I also used Supabase realtime updates so new messages could appear without manually refreshing the page. Designing Easter Eggs The achievements needed to be hidden but still possible to discover. I tried to create clues that gradually lead players toward an answer instead of revealing the solution immediately. Deploying With GitHub Pages I learned how GitHub Pages serves the project from the docs folder. I also encountered Git merge conflicts while moving files and learned how local development can behave differently from a deployed website. What I Learned During this project, I learned more about: JavaScript event listeners DOM manipulation Functions and application state Asynchronous JavaScript Supabase databases Realtime database subscriptions CSS positioning CSS transitions Draggable interfaces z-index and window layering Responsive layouts Git commits Merge conflicts GitHub Pages deployment Debugging differences between local and deployed websites Future Improvements", "repo": "https://github.com/194500-cpu/CavemanOS", "demo": "https://194500-cpu.github.io/CavemanOS/"}, {"ship_num": 3, "ts": "2026-06-26T07:06:38Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a easter egg hunter hidden as a WebOS. It has visible tracker for achievments, a connected “Campfire” app that uses a database to store messages, and included closable and draggable windows. Interested? Check it out!", "repo": "https://github.com/194500-cpu/CavemanOS", "demo": "https://194500-cpu.github.io/CavemanOS/"}]...
|
[{"post_id": 70531, "ts": "202 [{"post_id": 70531, "ts": "2026-09-19T10:15:19Z", "hours": 0.2575, "text": "Final changes, made a video to showcase achievements as well as notes in the README. I also polished some text and spellchecked with a dictionary ;)."}, {"post_id": 68771, "ts": "2026-09-15T18:43:39Z", "hours": 0.2833, "text": "Looking to ship soon, today I fixed some bugs like sweet alert glitching out, made the alert only dissappear if ok is pressed."}, {"post_id": 61888, "ts": "2026-09-05T01:45:25Z", "hours": 0.7886, "text": "New easter egg to make mammoth RGB!"}, {"post_id": 60475, "ts": "2026-09-02T20:27:05Z", "hours": 0.4058, "text": "Each hour, Bob has something different to say. For example if it is 12 ’o clock, he might say: LUNCH TIME Alongside this, I have added a QOL change, so pressing enter key will now send a message in the Campfire App!"}, {"post_id": 60458, "ts": "2026-09-02T19:57:10Z", "hours": 1.0381, "text": "Made a 3d Wireframe Mammoth that tracks your mouse with its head! It took ages to set up Three js and create the shape, so don’t be scared by its simplicity!"}, {"post_id": 31130, "ts": "2026-07-19T09:05:06Z", "hours": 0.3431, "text": "I added SweetAlert 2, meaning all of the alerts on my website will be delivered in stylish fashion!"}, {"post_id": 31124, "ts": "2026-07-19T08:42:15Z", "hours": 0.2725, "text": "WOW git was much more confusing than I thought. I really took me a while to find out how to push my changes, as I was constantly met with an error that my branches were out of sync. I tried all sort of stuff, but it turns out my folder name being wrong was the problem."}, {"post_id": 31106, "ts": "2026-07-19T07:33:16Z", "hours": 1.2628, "text": "Today, I made a secret cutscene for one of my achievements. It can be found through clues given by “Bob” in my AI assistant app (Abysmal Intelligence.) Here’s a preview:"}, {"post_id": 27424, "ts": "2026-07-12T23:52:31Z", "hours": 0.6711, "text": "I would not give him that."}, {"post_id": 27395, "ts": "2026-07-12T22:34:22Z", "hours": 2.9828, "text": "Bug fixing! Lots of easter eggs coming up and a ui revamp! Also lets be civil in the campfire…"}, {"post_id": 16131, "ts": "2026-06-26T07:03:56Z", "hours": 0.6164, "text": "Final improvements!"}, {"post_id": 16103, "ts": "2026-06-26T05:55:20Z", "hours": 1.6675, "text": "Connected my Campfire app to a database, so now it can store stuff. COMMUNICATION!"}, {"post_id": 14946, "ts": "2026-06-24T08:59:52Z", "hours": 0.5161, "text": "Any suggestions on making easter eggs? As always, have a wonderful day :)"}, {"post_id": 14934, "ts": "2026-06-24T08:26:44Z", "hours": 1.0069, "text": "Fixed Z-indexing and cleaned up my code to be more neat"}, {"post_id": 14920, "ts": "2026-06-24T07:00:55Z", "hours": 0.6353, "text": "if (element.offsetLeft + element.offsetWidth - currentX < window.innerWidth && element.offsetLeft - currentX > 0 && element.offsetTop - currentY > 0 && element.offsetTop + element.offsetHeight - currentY < innerHeight) { element.style.top = (element.offsetTop - currentY) + “px”; element.style.left = (element.offsetLeft - currentX) + “px”; } TLDR: The window cannot be moved outside of the screen. (this prevents windows from becoming unclosable)"}, {"post_id": 14822, "ts": "2026-06-24T02:15:36Z", "hours": 0.6667, "text": "Variables are storing text input"}, {"post_id": 14732, "ts": "2026-06-23T22:53:11Z", "hours": 0.2619, "text": "Welcome screen is done! Plan to decorate it, but I think now I can just start making secrets."}, {"post_id": 14719, "ts": "2026-06-23T22:31:53Z", "hours": 0.6644, "text": "Welcome screen (in progress), lots of JS fixes, layout fixes and cool website!"}, {"post_id": 14289, "ts": "2026-06-23T10:51:11Z", "hours": 1.0186, "text": "Some bug fixing needed for hide/show feature, but still very cool to have a closable and draggable window!"}, {"post_id": 14038, "ts": "2026-06-23T00:40:14Z", "hours": 1.8167, "text": "What could this icon be used for? It took me like 10 minutes to make (shoutout vectorpea)."}, {"post_id": 13607, "ts": "2026-06-22T09:40:09Z", "hours": 0.3728, "text": "Added time to my website - First lines of JavaScript!"}, {"post_id": 13596, "ts": "2026-06-22T08:48:41Z", "hours": 0.3236, "text": "I really want someone to give me suggestions, no really any feature you think would be fun to have :) Many thanks and happy coding. Also quick update, the wallpaper has been changed."}, {"post_id": 13588, "ts": "2026-06-22T08:09:18Z", "hours": 0.4236, "text": "Started development!!! (btw is this image copyright xd)"}]...
|
Title: Caveman OS by @colgation | Stardance
Devlo Title: Caveman OS by @colgation | Stardance
Devlogs:
Started development!!! (btw is this image copyright xd)
I really want someone to give me suggestions, no really any feature you think would be fun to have :) Many thanks and happy coding. Also quick update, the wallpaper has been changed.
Added time to my website - First lines of JavaScript!
What could this icon be used for? It took me like 10 minutes to make (shoutout vectorpea).
Some bug fixing needed for hide/show feature, but still very cool to have a closable and draggable window!
Welcome screen (in progress), lots of JS fixes, layout fixes and cool website!
Welcome screen is done! Plan to decorate it, but I think now I can just start making secrets.
Variables are storing text input
if (element.offsetLeft + element.offsetWidth - currentX < window.innerWidth && element.offsetLeft - currentX > 0 && element.offsetTop - currentY > 0 && element.offsetTop + element.offsetHeight - currentY < innerHeight) { element.style.top = (element.offsetTop - currentY) + “px”; element.style.left = (element.offsetLeft - currentX) + “px”; } TLDR: The window cannot be moved outside of the screen. (this prevents windows from becoming unclosable)
Fixed Z-indexing and cleaned up my code to be more neat
Any suggestions on making easter eggs? As always, have a wonderful day :)
Connected my Campfire app to a database, so now it can store stuff. COMMUNICATION!
Final improvements!
Bug fixing! Lots of easter eggs coming up and a ui revamp! Also lets be civil in the campfire…
I would not give him that.
Today, I made a secret cutscene for one of my achievements. It can be found through clues given by “Bob” in my AI assistant app (Abysmal Intelligence.) Here’s a preview:
WOW git was much more confusing than I thought. I really took me a while to find out how to push my changes, as I was constantly met with an error that my branches were out of sync. I tried all sort of stuff, but it turns out my folder name being wrong was the problem.
I added SweetAlert 2, meaning all of the alerts on my website will be delivered in stylish fashion!
Made a 3d Wireframe Mammoth that tracks your mouse with its head! It took ages to set up Three js and create the shape, so don’t be scared by its simplicity!
Each hour, Bob has something different to say. For example if it is 12 ’o clock, he might say: LUNCH TIME Alongside this, I have added a QOL change, so pressing enter key will now send a message in the Campfire App!
New easter egg to make mammoth RGB!
Looking to ship soon, today I fixed some bugs like sweet alert glitching out, made the alert only dissappear if ok is pressed.
Final changes, made a video to showcase achievements as well as notes in the README. I also polished some text and spellchecked with a dictionary ;).
Ships:
I made a easter egg hunter hidden as a WebOS. It has visible tracker for achievments, a connected “Campfire” app that uses a database to store messages, and included closable and draggable windows. Interested? Check it out!
Caveman Web OS is an Easter egg hunting game disguised as a prehistoric computer operating system. At first, it looks like a simple WebOS with draggable windows and applications. However, different buttons, messages and interactions can reveal hidden achievements. Players can use the Easter Egg Tracker to see what they have discovered and receive clues about secrets they have not found yet. In case anyone is struggling, here is a video of me completing all the achievements: https://www.youtube.com/watch?v=Ed1CFRDi-0Q Live Website https://194500-cpu.github.io/CavemanOS/ Features Draggable application windows Desktop-style navigation bar and dock Live date and time display Campfire messaging app Realtime messages using Supabase Easter Egg Tracker Hidden achievements Caveman AI called Bob Random dialogue and hints from Bob Secret phrases and puzzle-based interactions Special ending screens Achievement visuals that change after discovery Custom prehistoric interface and artwork *Sweet Alert 2 for beautiful alerts How It Works The WebOS interface is made from HTML elements styled as movable application windows. Challenges Making Windows Draggable I had to calculate the movement of the mouse and update each window’s position while preventing windows from being dragged completely outside the screen. Window Layering When multiple applications are open, the selected window needs to move in front of the others. I implemented this by increasing each selected window’s z-index. Realtime Campfire Messages I connected the project to Supabase so messages could be saved and displayed to different visitors. I also used Supabase realtime updates so new messages could appear without manually refreshing the page. Designing Easter Eggs The achievements needed to be hidden but still possible to discover. I tried to create clues that gradually lead players toward an answer instead of revealing the solution immediately. Deploying With GitHub Pages I learned how GitHub Pages serves the project from the docs folder. I also encountered Git merge conflicts while moving files and learned how local development can behave differently from a deployed website. What I Learned During this project, I learned more about: JavaScript event listeners DOM manipulation Functions and application state Asynchronous JavaScript Supabase databases Realtime database subscriptions CSS positioning CSS transitions Draggable interfaces z-index and window layering Responsive layouts Git commits Merge conflicts GitHub Pages deployment Debugging differences between local and deployed websites Future Improvements
I made an easter egg hunting game, disguised as a WebOS. A few achievements are easy to get, but some require deep thinking. If you get stuck, don’t worry! I’ve gone through the process of making a Youtube video and detailed instructions in the README on how to get each easter egg. Alongside this, I used three.js to create my very own 3d mammoth. Check it out at https://194500-cpu.github.io/CavemanOS/...
|
1792979521.4829404
|
1793065921.4829404
|
|
55648
|
DIY Desk Audio Amplifier with Tone Control & D DIY Desk Audio Amplifier with Tone Control & Dual Input by @jeremyngai | Stardance...
|
jeremyngai
|
1
|
14.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T10:04:24Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a desk audio amplifier I designed and built to quickly switch between 2 audio sources and apply custom analogue Baxandall EQ to audio without software dependency. It is capable of delivering a maximum of 2x5W output compatible with 4 ohm and 8 ohm speakers. I was frustrated when switching speaker input between my pc and my piano keyboard because I had to move my pc off my desk just to unplug the audio cable from the chassis and plug it back in after my piano practice multiple times a day. That time, I was using my PAM8403 module with the audio cable directly soldered onboard. So, the audio cable cannot be unplugged on the module end. A while after that, I decided to make another amplifier board upgraded with removable audio jack connector onboard to make my life easier. However, just as I thought it would finally be over, the module came faulty.. Total waste of time. This is why I came up with this over-engineered audio amplifier that lets me switch 2 audio sources with just a switch and lets me control EQ without software. Power Input The build is powered with 5V input via USB Type-C and through a toggle switch to control power. It also works with PD negotiation with a pull-down resistor on CC lines. Audio Input Allows 2 distinct audio sources to be quickly switched with a DPDT toggle switch without unplugging/replugging audio jacks. It is compatible with TRRS and TRS connectors Audio Tone Control The build uses a passive 2 channel Baxandall tone control circuit to alter bass and treble frequencies before reaching the main amplifier module. This introduces an insertion loss of around 20dB. Bass Turnover Frequency ( f c ): ~72Hz Treble Turnover Frequency ( f c ): ~7.2kHz Amplification The amplifier system is powered by the HT8696 Class D/AB stereo ready-made module capable of outputting ~10W at 5V with anti-clipping capability to reduce buzzing issues.", "repo": "https://github.com/Jeremy-Ngai-Sew-Poh/DIY-Audio-Tone-Amplifier", "demo": ""}]...
|
[{"post_id": 66320, "ts": "202 [{"post_id": 66320, "ts": "2026-09-12T02:40:10Z", "hours": 3.1667, "text": "Yesterday, all my parts have arrived!! Soldering them one by one took me 3 hours. The PCB turns out perfect as expected and the slide potentiometer is just as smooth. It didn’t work at first… However a reflow saved both my time and money spent lol. Overall it worked great, the baxandall tone control works and it is so fascinating to be building one myself. However at first the tone control didn’t work because of a mismatch of ground plane of the aux input and common ground. So i shorted the aux ground directly to the common ground. I made 3 shorts on the best location for EMI, and the buzzing noise is completely gone (at least to my ears)! The soft underglow also turned out greattt. So ill be vibing and booming with my new audio amplifier 24/7, and as i vibe, ill continue with my github repo. stay tuned then!"}, {"post_id": 61999, "ts": "2026-09-05T06:30:13Z", "hours": 0.9333, "text": "While waiting for all my parts to arrive, i worked on the github repository bill of materials. once all parts arrive, ill solder them!!"}, {"post_id": 60159, "ts": "2026-09-02T10:52:29Z", "hours": 3.0358, "text": "Last few days, i worked on the PCB layout, i kept it at a size of 90x90 to fit on my desk, and also there’s a warm white backlight on the bottom so it gives vibee i dont really know how will it look like but i have good feeling about it! anyways i ordered the pcb on JLCPCB and ill be very excited for it haha, then i can solder everything and hopefully it works.. if not, uhh…."}, {"post_id": 57341, "ts": "2026-08-29T13:50:58Z", "hours": 6.6906, "text": "Today is the first progress of my diy custom audio amp. i completed my schematics and pcb layout. Im basically using a ht8696 audio amplifier module alongside with baxandoll tone control circuit, also made it togglable whether to apply tone or not. Im surprized by today’s progress its really quick without realising, im excited to move on to the pcb wiring tomorrow. today’s task definitely motivated me alot and i plan to order my pcb in a few days!!"}]...
|
Title: DIY Desk Audio Amplifier with Tone Control Title: DIY Desk Audio Amplifier with Tone Control & Dual Input by @jeremyngai | Stardance
Devlogs:
Today is the first progress of my diy custom audio amp. i completed my schematics and pcb layout. Im basically using a ht8696 audio amplifier module alongside with baxandoll tone control circuit, also made it togglable whether to apply tone or not. Im surprized by today’s progress its really quick without realising, im excited to move on to the pcb wiring tomorrow. today’s task definitely motivated me alot and i plan to order my pcb in a few days!!
Last few days, i worked on the PCB layout, i kept it at a size of 90x90 to fit on my desk, and also there’s a warm white backlight on the bottom so it gives vibee i dont really know how will it look like but i have good feeling about it! anyways i ordered the pcb on JLCPCB and ill be very excited for it haha, then i can solder everything and hopefully it works.. if not, uhh….
While waiting for all my parts to arrive, i worked on the github repository bill of materials. once all parts arrive, ill solder them!!
Yesterday, all my parts have arrived!! Soldering them one by one took me 3 hours. The PCB turns out perfect as expected and the slide potentiometer is just as smooth. It didn’t work at first… However a reflow saved both my time and money spent lol. Overall it worked great, the baxandall tone control works and it is so fascinating to be building one myself. However at first the tone control didn’t work because of a mismatch of ground plane of the aux input and common ground. So i shorted the aux ground directly to the common ground. I made 3 shorts on the best location for EMI, and the buzzing noise is completely gone (at least to my ears)! The soft underglow also turned out greattt. So ill be vibing and booming with my new audio amplifier 24/7, and as i vibe, ill continue with my github repo. stay tuned then!
Ships:
This is a desk audio amplifier I designed and built to quickly switch between 2 audio sources and apply custom analogue Baxandall EQ to audio without software dependency. It is capable of delivering a maximum of 2x5W output compatible with 4 ohm and 8 ohm speakers. I was frustrated when switching speaker input between my pc and my piano keyboard because I had to move my pc off my desk just to unplug the audio cable from the chassis and plug it back in after my piano practice multiple times a day. That time, I was using my PAM8403 module with the audio cable directly soldered onboard. So, the audio cable cannot be unplugged on the module end. A while after that, I decided to make another amplifier board upgraded with removable audio jack connector onboard to make my life easier. However, just as I thought it would finally be over, the module came faulty.. Total waste of time. This is why I came up with this over-engineered audio amplifier that lets me switch 2 audio sources with just a switch and lets me control EQ without software. Power Input The build is powered with 5V input via USB Type-C and through a toggle switch to control power. It also works with PD negotiation with a pull-down resistor on CC lines. Audio Input Allows 2 distinct audio sources to be quickly switched with a DPDT toggle switch without unplugging/replugging audio jacks. It is compatible with TRRS and TRS connectors Audio Tone Control The build uses a passive 2 channel Baxandall tone control circuit to alter bass and treble frequencies before reaching the main amplifier module. This introduces an insertion loss of around 20dB. Bass Turnover Frequency ( f c ): ~72Hz Treble Turnover Frequency ( f c ): ~7.2kHz Amplification The amplifier system is powered by the HT8696 Class D/AB stereo ready-made module capable of outputting ~10W at 5V with anti-clipping capability to reduce buzzing issues....
|
1793004758.5609484
|
1793091158.5609484
|