|
67263
|
FoldCheck by @bigkhanfsnewnew | Stardance
|
bigkhanfsnewnew
|
0
|
20.82
|
0
|
[]
|
[{"post_id": 80399, "ts": "202 [{"post_id": 80399, "ts": "2026-10-17T14:55:08Z", "hours": 6.3419, "text": "Devlog 7: Since Devlog 6, I’ve made a lot of progress in expanding FoldCheck’s biological information and making the Region Explorer much more detailed. I started by integrating more data from UniProt, allowing users to explore annotated functional regions of a protein, including their names, residue positions, lengths and biological roles. One major addition was the ability to investigate protein interactions, where FoldCheck retrieves information about interaction partners, their functions, UniProt accessions and available experimental evidence. I also added supporting research references, including PubMed publications, and developed a system that connects biological findings to the protein being explored. A challenge I faced was making this information work dynamically across different proteins, rather than hardcoding information specifically for p53. I also had to fix several issues involving matching interaction partners, retrieving the correct biological information and preventing empty or repetitive sections from appearing. FoldCheck can now provide much more detailed explanations of functional regions and protein interactions, helping users understand not just the 3D structure, but also the biological evidence behind it. Next, I’m working on a dedicated PAE analysis page to help users investigate uncertainty in the relative positions of different parts of a protein! I know I said PAE last time but I got distracted.. MB!"}, {"post_id": 78095, "ts": "2026-10-09T15:33:57Z", "hours": 4.6989, "text": "Devlog 6: since Devlog 5, I’ve made a lot of progress into turning FoldCheck into a more advanced and detailed tool. I’ve started by extracting the pLDDT confidence scores for p53 and linking them, so they display in the details panel on the right, adding confidence classifications and explanations of what different confidence meanings. I also expanded the information to include amino acid properties, chemical composition and the function of the region. another major addition was the Atom Explorer, which provides information about individual atoms, including their chemical elements, bonds and roles, within a selected part. a challenge i faced was building a search system, where typing a specific residue/atom actually finds it for you in the Mol*, takes you to it and clearly highlights it for you. i devloped a 3-level autocomplete system that suggests amino acids, real residue positions and actual atom names (for example: ARG 158 CA) extracted from the loaded structure. Along the way, several bugs were encountered, like atom extraction and resetting selections. I also added a Reset View button and improved how the panel responds to selections. Foldcheck now allows users to explore p53 from the whole-protein level down to individual atoms while connecting the 3d structure to scientific explanations and confidence data. Next step, PAE!"}, {"post_id": 76747, "ts": "2026-10-04T14:00:10Z", "hours": 2.4967, "text": "Devlog 5: FoldCheck can finally interact with real AlphaFold structures. Today I worked on connecting FoldCheck’s interface to the actual molecular structure inside Mol*.I first changed the 3D viewer so it can load a real AlphaFold prediction for p53 (UniProt P04637) while keeping the original 1CRN structure as the homepage demo. The bigger challenge was getting clicks inside Mol* back into React. After working through Mol*’s interaction events, FoldCheck can now detect which part of the protein I click and identify the real residue, for example MET 384, PHE 270 or SER 269 on Chain A.I then connected that data to the FoldCheck workspace, so the Selection Details panel updates automatically when a different residue is selected. I also found an important UX problem while testing: clicking individual atoms can expose Mol* labels like CG [idx 1946] | LEU 252 | A, which aren’t beginner-friendly at all. I’m going to replace these raw labels with structured information and build a dedicated The Basics section that explains the scientific concepts used throughout FoldCheck. Next Ill be extracting the actual pLDDT confidence value for the selected residue and turning the selection panel into an actual evidence based analysis"}, {"post_id": 76406, "ts": "2026-10-03T13:17:13Z", "hours": 1.9114, "text": "FoldCheck has real 3D proteins now. Today I started building the actual interactive side of FoldCheck. I installed Mol* into the project and created a separate React component for the molecular viewer. I then connected that component to FoldCheck and built the first version of the 3D protein workspace. There were a few problems getting Mol* working with the project, mainly incorrect import paths and getting the package to work properly with Vite. After debugging those, I managed to load 1CRN, a real protein structure from the Protein Data Bank, directly inside FoldCheck. The structure is now fully interactive, I can rotate it, zoom in and explore it in 3D. The current Mol* controls are only temporary. I also decided that the finished FoldCheck won’t just be one massive scrolling page. Searching for a protein will eventually open a dedicated analysis workspace with separate sections for the 3D structure, confidence, PAE, geometry and experimental comparison. Next I’m going to turn this basic viewer into that proper workspace and start connecting FoldCheck to real AlphaFold prediction data."}, {"post_id": 76183, "ts": "2026-10-02T16:48:03Z", "hours": 1.2936, "text": "Today I worked on one of the parts of FoldCheck I’ve been looking forward to building which is the opening cinematic. I wanted someone opening FoldCheck to understand why protein structure matters before being thrown straight into scientific data, so the intro now follows the story from the human body → cell → amino acids → folded protein → AlphaFold prediction → uncertainty → FoldCheck. The first few scenes use detailed scientific-style visuals with animated labels and transitions, and I built the whole sequence to automatically move between stages while still letting users skip it or replay it later. I also added progress indicators, subtle movement, responsive layouts and a final FoldCheck scene that introduces the different types of evidence the project will eventually bring together. I also learnt a slightly painful lesson about CSS today 😭. While rebuilding the cinematic styling I accidentally wiped the original homepage styles, which turned the entire landing page into basically raw HTML. After a lot of debugging, I reconstructed the stylesheet section by section, fixed several syntax issues, and finally got both the cinematic and the original homepage working together again with no errors. The cinematic isn’t completely finished yet. Some labels still need to be positioned more accurately, and the AlphaFold and uncertainty scenes currently use temporary protein graphics that I want to replace with much better molecular visuals. But the full journey now works from beginning to end, and FoldCheck finally has the opening story I imagined when I planned the project .Next: polish those last cinematic visuals, then start the big part which is loading real AlphaFold protein data and building the interactive 3D analysis workspace."}, {"post_id": 76137, "ts": "2026-10-02T13:42:53Z", "hours": 2.48, "text": "DEVLOG 2: Most of this session went into turning the rough interface from my first devlog into the actual visual direction I had in mind for the project. I built out the main landing experience with a much more deliberate scientific/workstation style. The hero now introduces the main idea behind FoldCheck that a protein prediction is only the beginning of an investigation and I added an animated molecular visual with orbiting elements, a scanning effect and subtle movement to make the page feel alive without turning it into a generic science website. I also built the protein exploration section, including the search interface and example proteins, and added a section explaining the main idea behind the project. Eventually I want every interesting region to be something you can actually investigate and understand. A surprisingly large amount of time went into CSS 😭. I worked on the typography, spacing, dark interface, responsive behaviour, animations, buttons, search components and all the smaller details that make the different sections feel like one product rather than separate pieces. I also cleaned up the React structure and fixed some mismatches between my JSX and CSS that were stopping parts of the design from displaying properly. The interface is still only the shell though. The next part I’m working on is an opening cinematic that goes from the human body → cell → amino-acid sequence → folded protein → AlphaFold prediction, which should explain why FoldCheck exists before someone starts using it. After that comes the part I’m most excited about: an interactive 3D molecular viewer."}, {"post_id": 76010, "ts": "2026-10-02T01:10:09Z", "hours": 1.5992, "text": "Devlog FC 1: New project!! And this one might be slightly crazy I started FoldCheck today. The idea came from something I found really interesting while looking into AlphaFold (an AI that predicts how proteins look): a predicted protein can look incredibly convincing in 3D, but that doesn’t necessarily mean every part of the prediction has the same level of confidence/is biologically accurate. That gave me the idea for FoldCheck. Instead of just showing someone a cool-looking protein model or giving it some random “accuracy score”, I want to build a tool where you can actually investigate the prediction. My goal is to eventually combine things like pLDDT, PAE, structural checks and experimental structures, then let you click into suspicious regions and understand why they deserve attention.A lot of today was honestly figuring out how I could turn that idea into something I can actually build. I planned out the main features and the science I’ll need, then set up the React project and started the website itself. I built the navigation, introduction, protein search area, example proteins and started designing the dark scientific interface. I also spent way longer than expected getting Hackatime working because it originally thought FoldCheck was my other project!. I eventually figured out how to give this workspace its own FoldCheck project, and seeing it finally appear separately was strangely satisfying. There’s still a lot left. Right now I’ve basically built the foundation. Next I want to get a real protein into the site, retrieve actual AlphaFold data, display the structure in interactive 3D and start analysing real pLDDT confidence values. This is definitely the hardest project I’ve attempted so far, which is also why I’m really excited about it. Hopefully the difference between this first screenshot and the finished FoldCheck is crazy!"}]...
|
Title: FoldCheck by @bigkhanfsnewnew | Stardance
Title: FoldCheck by @bigkhanfsnewnew | Stardance
Devlogs:
Devlog FC 1: New project!! And this one might be slightly crazy I started FoldCheck today. The idea came from something I found really interesting while looking into AlphaFold (an AI that predicts how proteins look): a predicted protein can look incredibly convincing in 3D, but that doesn’t necessarily mean every part of the prediction has the same level of confidence/is biologically accurate. That gave me the idea for FoldCheck. Instead of just showing someone a cool-looking protein model or giving it some random “accuracy score”, I want to build a tool where you can actually investigate the prediction. My goal is to eventually combine things like pLDDT, PAE, structural checks and experimental structures, then let you click into suspicious regions and understand why they deserve attention.A lot of today was honestly figuring out how I could turn that idea into something I can actually build. I planned out the main features and the science I’ll need, then set up the React project and started the website itself. I built the navigation, introduction, protein search area, example proteins and started designing the dark scientific interface. I also spent way longer than expected getting Hackatime working because it originally thought FoldCheck was my other project!. I eventually figured out how to give this workspace its own FoldCheck project, and seeing it finally appear separately was strangely satisfying. There’s still a lot left. Right now I’ve basically built the foundation. Next I want to get a real protein into the site, retrieve actual AlphaFold data, display the structure in interactive 3D and start analysing real pLDDT confidence values. This is definitely the hardest project I’ve attempted so far, which is also why I’m really excited about it. Hopefully the difference between this first screenshot and the finished FoldCheck is crazy!
DEVLOG 2: Most of this session went into turning the rough interface from my first devlog into the actual visual direction I had in mind for the project. I built out the main landing experience with a much more deliberate scientific/workstation style. The hero now introduces the main idea behind FoldCheck that a protein prediction is only the beginning of an investigation and I added an animated molecular visual with orbiting elements, a scanning effect and subtle movement to make the page feel alive without turning it into a generic science website. I also built the protein exploration section, including the search interface and example proteins, and added a section explaining the main idea behind the project. Eventually I want every interesting region to be something you can actually investigate and understand. A surprisingly large amount of time went into CSS 😭. I worked on the typography, spacing, dark interface, responsive behaviour, animations, buttons, search components and all the smaller details that make the different sections feel like one product rather than separate pieces. I also cleaned up the React structure and fixed some mismatches between my JSX and CSS that were stopping parts of the design from displaying properly. The interface is still only the shell though. The next part I’m working on is an opening cinematic that goes from the human body → cell → amino-acid sequence → folded protein → AlphaFold prediction, which should explain why FoldCheck exists before someone starts using it. After that comes the part I’m most excited about: an interactive 3D molecular viewer.
Today I worked on one of the parts of FoldCheck I’ve been looking forward to building which is the opening cinematic. I wanted someone opening FoldCheck to understand why protein structure matters before being thrown straight into scientific data, so the intro now follows the story from the human body → cell → amino acids → folded protein → AlphaFold prediction → uncertainty → FoldCheck. The first few scenes use detailed scientific-style visuals with animated labels and transitions, and I built the whole sequence to automatically move between stages while still letting users skip it or replay it later. I also added progress indicators, subtle movement, responsive layouts and a final FoldCheck scene that introduces the different types of evidence the project will eventually bring together. I also learnt a slightly painful lesson about CSS today 😭. While rebuilding the cinematic styling I accidentally wiped the original homepage styles, which turned the entire landing page into basically raw HTML. After a lot of debugging, I reconstructed the stylesheet section by section, fixed several syntax issues, and finally got both the cinematic and the original homepage working together again with no errors. The cinematic isn’t completely finished yet. Some labels still need to be positioned more accurately, and the AlphaFold and uncertainty scenes currently use temporary protein graphics that I want to replace with much better molecular visuals. But the full journey now works from beginning to end, and FoldCheck finally has the opening story I imagined when I planned the project .Next: polish those last cinematic visuals, then start the big part which is loading real AlphaFold protein data and building the interactive 3D analysis workspace.
FoldCheck has real 3D proteins now. Today I started building the actual interactive side of FoldCheck. I installed Mol* into the project and created a separate React component for the molecular viewer. I then connected that component to FoldCheck and built the first version of the 3D protein workspace. There were a few problems getting Mol* working with the project, mainly incorrect import paths and getting the package to work properly with Vite. After debugging those, I managed to load 1CRN, a real protein structure from the Protein Data Bank, directly inside FoldCheck. The structure is now fully interactive, I can rotate it, zoom in and explore it in 3D. The current Mol* controls are only temporary. I also decided that the finished FoldCheck won’t just be one massive scrolling page. Searching for a protein will eventually open a dedicated analysis workspace with separate sections for the 3D structure, confidence, PAE, geometry and experimental comparison. Next I’m going to turn this basic viewer into that proper workspace and start connecting FoldCheck to real AlphaFold prediction data.
Devlog 5: FoldCheck can finally interact with real AlphaFold structures. Today I worked on connecting FoldCheck’s interface to the actual molecular structure inside Mol*.I first changed the 3D viewer so it can load a real AlphaFold prediction for p53 (UniProt P04637) while keeping the original 1CRN structure as the homepage demo. The bigger challenge was getting clicks inside Mol* back into React. After working through Mol*’s interaction events, FoldCheck can now detect which part of the protein I click and identify the real residue, for example MET 384, PHE 270 or SER 269 on Chain A.I then connected that data to the FoldCheck workspace, so the Selection Details panel updates automatically when a different residue is selected. I also found an important UX problem while testing: clicking individual atoms can expose Mol* labels like CG [idx 1946] | LEU 252 | A, which aren’t beginner-friendly at all. I’m going to replace these raw labels with structured information and build a dedicated The Basics section that explains the scientific concepts used throughout FoldCheck. Next Ill be extracting the actual pLDDT confidence value for the selected residue and turning the selection panel into an actual evidence based analysis
Devlog 6: since Devlog 5, I’ve made a lot of progress into turning FoldCheck into a more advanced and detailed tool. I’ve started by extracting the pLDDT confidence scores for p53 and linking them, so they display in the details panel on the right, adding confidence classifications and explanations of what different confidence meanings. I also expanded the information to include amino acid properties, chemical composition and the function of the region. another major addition was the Atom Explorer, which provides information about individual atoms, including their chemical elements, bonds and roles, within a selected part. a challenge i faced was building a search system, where typing a specific residue/atom actually finds it for you in the Mol*, takes you to it and clearly highlights it for you. i devloped a 3-level autocomplete system that suggests amino acids, real residue positions and actual atom names (for example: ARG 158 CA) extracted from the loaded structure. Along the way, several bugs were encountered, like atom extraction and resetting selections. I also added a Reset View button and improved how the panel responds to selections. Foldcheck now allows users to explore p53 from the whole-protein level down to individual atoms while connecting the 3d structure to scientific explanations and confidence data. Next step, PAE!
Devlog 7: Since Devlog 6, I’ve made a lot of progress in expanding FoldCheck’s biological information and making the Region Explorer much more detailed. I started by integrating more data from UniProt, allowing users to explore annotated functional regions of a protein, including their names, residue positions, lengths and biological roles. One major addition was the ability to investigate protein interactions, where FoldCheck retrieves information about interaction partners, their functions, UniProt accessions and available experimental evidence. I also added supporting research references, including PubMed publications, and developed a system that connects biological findings to the protein being explored. A challenge I faced was making this information work dynamically across different proteins, rather than hardcoding information specifically for p53. I also had to fix several issues involving matching interaction partners, retrieving the correct biological information and preventing empty or repetitive sections from appearing. FoldCheck can now provide much more detailed explanations of functional regions and protein interactions, helping users understand not just the 3D structure, but also the biological evidence behind it. Next, I’m working on a dedicated PAE analysis page to help users investigate uncertainty in the relative positions of different parts of a protein! I know I said PAE last time but I got distracted.. MB!...
|
1793108989.764822
|
1793713789.764822
|
|
31717
|
SlateLite by @FencingLefty3 | Stardance
|
FencingLefty3
|
2
|
27.0
|
41
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T15:08:51Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Slate Ship 2 Slate is ready for ship 2! After adding a new UI overhaul, and rolling 30 day productivity score, Slate is ready for release.", "repo": "https://github.com/FencingLefty3/SlateLite", "demo": "https://fencinglefty3.github.io/SlateLite/"}, {"ship_num": 2, "ts": "2026-08-09T20:00:00Z", "hours": 12.0, "multiplier": 3.26, "payout": 41, "blessing": "neutral", "text": "‘Slate Lite is a lightweight note/task taking application I built for quick offline jotting or reminders. It works across all platforms as a PWA or in the browser.’", "repo": "https://github.com/FencingLefty3/SlateLite", "demo": "https://fencinglefty3.github.io/SlateLite/"}]...
|
[{"post_id": 80398, "ts": "202 [{"post_id": 80398, "ts": "2026-10-17T14:53:29Z", "hours": 2.3353, "text": "Final Dev Log before ship 2. Finished rolling 30 day productivity score. New UI for productivity score, mobile and desktop."}, {"post_id": 78360, "ts": "2026-10-10T15:38:54Z", "hours": 2.2467, "text": "Working on the Elo system and some UI improvements. Fixed date select not showing on iOS. Added Index Elo score to side bar and toggle in settings page. Need to: Finish 30 day rotating Elo/ index math. Ship 2"}, {"post_id": 74168, "ts": "2026-09-26T20:25:41Z", "hours": 1.1286, "text": "Back at it with some more work during this rainy weekend; New Stuff, Fixed date selector not working on iOS. Fixed search returning 404 and now functioning as intended. settings for theme and Elo. Other general UI improvements. On the docket, finishing Elo system, task sync, Ship 2."}, {"post_id": 73747, "ts": "2026-09-25T20:43:41Z", "hours": 9.0233, "text": "Been working slowly a couple minutes every other day for the past couple weeks. Didn’t think there was enough for a post. (I also didn’t realize how long it’s been.) What’s new? Desktop UI is redone for vertical sidebar. Created point (tasks) completable. Changed tags to include text for easier identification. Added new settings page. Added theme selection. What’s Next, Completing flagship feature; Elo. Some sync functionality. Ship 2."}, {"post_id": 42995, "ts": "2026-08-08T00:45:48Z", "hours": 0.7817, "text": "Slate lite Log 5 Gist: A lightweight notes and task app. Added: task editing readme Future: Data Export/Backup. Settings/themes."}, {"post_id": 42862, "ts": "2026-08-07T20:22:23Z", "hours": 4.0806, "text": "Slate lite Log 4 Gist: A lightweight notes and task app. Added: Updates html for better UI. Added tag filters and collapsible bar for mobile. Added tags to tasks and updated task creator UI. Future: Data Export/Backup. Editing of tasks. Settings/themes."}, {"post_id": 40454, "ts": "2026-08-03T23:43:43Z", "hours": 0.4261, "text": "Slate lite Log 3 Gist: A lightweight notes and task app. Added: Updates SW for more offline compatibility and update responsiveness. Fixed proper UI not showing and descriptions and dates not appearing on point and line cards. Future: Data Export/Backup. Editing of tasks. Settings/themes."}, {"post_id": 40422, "ts": "2026-08-03T22:22:20Z", "hours": 3.8183, "text": "Slate lite Log 2 Gist: A lightweight notes and task app. Added: Progressive web app so It can be used on all platforms, including iPhone. Some offline capabilities. Future: Data Export."}, {"post_id": 24190, "ts": "2026-07-07T16:22:58Z", "hours": 3.375, "text": "Slate lite Log 1 Gist: A lightweight notes and task app. Added: Html & css files for main page. JavaScript for creating and saving tasks/notes. database.js file for saving using dexie/IndexedDB Creating and deleting Writes & Lists (Notes & Tasks) Future: Create systems for Progressive web app so It can be used on all platforms, including iphone."}]...
|
Title: SlateLite by @FencingLefty3 | Stardance
De Title: SlateLite by @FencingLefty3 | Stardance
Devlogs:
Slate lite Log 1 Gist: A lightweight notes and task app. Added: Html & css files for main page. JavaScript for creating and saving tasks/notes. database.js file for saving using dexie/IndexedDB Creating and deleting Writes & Lists (Notes & Tasks) Future: Create systems for Progressive web app so It can be used on all platforms, including iphone.
Slate lite Log 2 Gist: A lightweight notes and task app. Added: Progressive web app so It can be used on all platforms, including iPhone. Some offline capabilities. Future: Data Export.
Slate lite Log 3 Gist: A lightweight notes and task app. Added: Updates SW for more offline compatibility and update responsiveness. Fixed proper UI not showing and descriptions and dates not appearing on point and line cards. Future: Data Export/Backup. Editing of tasks. Settings/themes.
Slate lite Log 4 Gist: A lightweight notes and task app. Added: Updates html for better UI. Added tag filters and collapsible bar for mobile. Added tags to tasks and updated task creator UI. Future: Data Export/Backup. Editing of tasks. Settings/themes.
Slate lite Log 5 Gist: A lightweight notes and task app. Added: task editing readme Future: Data Export/Backup. Settings/themes.
Been working slowly a couple minutes every other day for the past couple weeks. Didn’t think there was enough for a post. (I also didn’t realize how long it’s been.) What’s new? Desktop UI is redone for vertical sidebar. Created point (tasks) completable. Changed tags to include text for easier identification. Added new settings page. Added theme selection. What’s Next, Completing flagship feature; Elo. Some sync functionality. Ship 2.
Back at it with some more work during this rainy weekend; New Stuff, Fixed date selector not working on iOS. Fixed search returning 404 and now functioning as intended. settings for theme and Elo. Other general UI improvements. On the docket, finishing Elo system, task sync, Ship 2.
Working on the Elo system and some UI improvements. Fixed date select not showing on iOS. Added Index Elo score to side bar and toggle in settings page. Need to: Finish 30 day rotating Elo/ index math. Ship 2
Final Dev Log before ship 2. Finished rolling 30 day productivity score. New UI for productivity score, mobile and desktop.
Ships:
‘Slate Lite is a lightweight note/task taking application I built for quick offline jotting or reminders. It works across all platforms as a PWA or in the browser.’
Slate Ship 2 Slate is ready for ship 2! After adding a new UI overhaul, and rolling 30 day productivity score, Slate is ready for release....
|
1793127020.621496
|
1793213420.621496
|
|
1974
|
Daileap 3.0 by @LeaHCim | Stardance
|
LeaHCim
|
0
|
44.18
|
0
|
[]
|
[{"post_id": 80393, "ts": "202 [{"post_id": 80393, "ts": "2026-10-17T14:30:41Z", "hours": 6.82, "text": "This was so hard and I still dont really have it! So I just want to make these gems that you can collect. And I want them to bob up and down randomly. Turns out after 6 hours of trying around there is no good solution. Ok I am really picky, but under my constraints there really wasnt anything. So then began the game of “If first you dont success, lower your expectations till you do” And now I almost got it. But if you dont know whats not really working in the animation you probably wont notice it so. I just wont tell you"}, {"post_id": 77923, "ts": "2026-10-08T19:40:09Z", "hours": 6.7644, "text": "On the surface I added a few more textures to work with. Which are great thanks Craftpix! But there was a major overhaul in the backend and I did some levels which I am gonna show in the next devlog when I will have some more done."}, {"post_id": 75308, "ts": "2026-09-29T18:12:22Z", "hours": 1.5397, "text": "Thanks too all the trouble I had in the last devlog! I now didnt have too many issues implementing a debug game window. Its soo useful"}, {"post_id": 74658, "ts": "2026-09-27T21:42:46Z", "hours": 3.26, "text": "Git and Godot arent friends. Whoever said that you just have to tick the “git” mark on godot. Well f you. I just took 3 hrs of my time to fix sth that shouldnt need fixing just cause git cant understand everything godot does and the other way around. I spend many attempts trying to make “mkdirs” work. I think they do now. But maybe shenanigans will come back. I do not look forward to this. Basically nth about the game changed in this Devlog. I am sorry. I will just have to create my own Repository System for Godot. jk! PS. Because there is nothing new to show. Here is a screenshot of the demo running again:("}, {"post_id": 74581, "ts": "2026-09-27T17:46:29Z", "hours": 1.4928, "text": "Improvements and Fixes: I fixed some stuff on the saving, now it wont duplicate some files accidentally. Also notice the layer icon on the bottom right. This now makes it easier what you are actually editing when painting the map!"}, {"post_id": 73557, "ts": "2026-09-25T12:06:42Z", "hours": 4.8614, "text": "Today I made a pipette function. It was easier then expected, except actually showing the item when one has been picked. The scrolling was hard. But unfortunately I cant really show that with a screenshot, so I also made a level. And I must say, the editor seems to work pretty good.:)"}, {"post_id": 73280, "ts": "2026-09-24T18:57:52Z", "hours": 1.4497, "text": "DELETE! now you can delete level chunks and also some more settings"}, {"post_id": 72875, "ts": "2026-09-23T22:24:59Z", "hours": 8.6072, "text": "I implemented rotation! And also a bunch of backend thats just a pain. I had to redo the whole saving and loading system. Its more reliable now and its not as ugly. Also there is a indicator when the file isnt unsaved!"}, {"post_id": 71960, "ts": "2026-09-21T21:13:57Z", "hours": 6.4528, "text": "I did a lot of stuff in the backend. I cant really explain but I will try. The Items you can see on the left are building blocks. And I had to make a general resource that accounts for all the variants and sources and place styles etc. I managed it after like 5 hours. Anyway now you are finaly able to place blocks!"}, {"post_id": 66925, "ts": "2026-09-12T21:59:58Z", "hours": 2.9272, "text": "I am working hard on the level editor. I am making this way to good. But I feel if I dont make it properly I wont be motivated to make levels. So a lot of this time I spend figuring out what I did last a few months ago. I really should write that down… Anyways now I can select building blocks on the right!"}]...
|
Title: Daileap 3.0 by @LeaHCim | Stardance
Devlog Title: Daileap 3.0 by @LeaHCim | Stardance
Devlogs:
I am working hard on the level editor. I am making this way to good. But I feel if I dont make it properly I wont be motivated to make levels. So a lot of this time I spend figuring out what I did last a few months ago. I really should write that down… Anyways now I can select building blocks on the right!
I did a lot of stuff in the backend. I cant really explain but I will try. The Items you can see on the left are building blocks. And I had to make a general resource that accounts for all the variants and sources and place styles etc. I managed it after like 5 hours. Anyway now you are finaly able to place blocks!
I implemented rotation! And also a bunch of backend thats just a pain. I had to redo the whole saving and loading system. Its more reliable now and its not as ugly. Also there is a indicator when the file isnt unsaved!
DELETE! now you can delete level chunks and also some more settings
Today I made a pipette function. It was easier then expected, except actually showing the item when one has been picked. The scrolling was hard. But unfortunately I cant really show that with a screenshot, so I also made a level. And I must say, the editor seems to work pretty good.:)
Improvements and Fixes: I fixed some stuff on the saving, now it wont duplicate some files accidentally. Also notice the layer icon on the bottom right. This now makes it easier what you are actually editing when painting the map!
Git and Godot arent friends. Whoever said that you just have to tick the “git” mark on godot. Well f you. I just took 3 hrs of my time to fix sth that shouldnt need fixing just cause git cant understand everything godot does and the other way around. I spend many attempts trying to make “mkdirs” work. I think they do now. But maybe shenanigans will come back. I do not look forward to this. Basically nth about the game changed in this Devlog. I am sorry. I will just have to create my own Repository System for Godot. jk! PS. Because there is nothing new to show. Here is a screenshot of the demo running again:(
Thanks too all the trouble I had in the last devlog! I now didnt have too many issues implementing a debug game window. Its soo useful
On the surface I added a few more textures to work with. Which are great thanks Craftpix! But there was a major overhaul in the backend and I did some levels which I am gonna show in the next devlog when I will have some more done.
This was so hard and I still dont really have it! So I just want to make these gems that you can collect. And I want them to bob up and down randomly. Turns out after 6 hours of trying around there is no good solution. Ok I am really picky, but under my constraints there really wasnt anything. So then began the game of “If first you dont success, lower your expectations till you do” And now I almost got it. But if you dont know whats not really working in the animation you probably wont notice it so. I just wont tell you...
|
1792756273.3982334
|
1793361073.3982334
|
|
68411
|
My own site! by @Saad58 | Stardance
|
Saad58
|
1
|
1.35
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T14:06:57Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I Create my portfolio site where people can see what i create. Also inspect my profiles by visiting site.", "repo": "https://github.com/MSDataHub58/WebDevelopment5", "demo": "https://msdatahub58.github.io/WebDevelopment5/"}]...
|
[{"post_id": 80392, "ts": "202 [{"post_id": 80392, "ts": "2026-10-17T14:30:21Z", "hours": 0.3506, "text": "hey guys it’s my first site."}, {"post_id": 80381, "ts": "2026-10-17T13:49:48Z", "hours": 0.9964, "text": "I was working on building my own portfolio site where people can see what i made."}]...
|
Title: My own site! by @Saad58 | Stardance
Devlog Title: My own site! by @Saad58 | Stardance
Devlogs:
I was working on building my own portfolio site where people can see what i made.
hey guys it’s my first site.
Ships:
I Create my portfolio site where people can see what i create. Also inspect my profiles by visiting site....
|
1793155854.430054
|
1793242254.430054
|
|
69966
|
CubeMoveAI by @amitkamalmudududla | Stardance
|
amitkamalmudududla
|
0
|
11.41
|
0
|
[]
|
[{"post_id": 80389, "ts": "202 [{"post_id": 80389, "ts": "2026-10-17T14:11:08Z", "hours": 11.4097, "text": "I completed the manual data collection I needed during the summer (using MediaPipe). I also finished coding and training the AI model (using PyTorch). I am currently testing the model; here is a demo video:"}]...
|
Title: CubeMoveAI by @amitkamalmudududla | Stardan Title: CubeMoveAI by @amitkamalmudududla | Stardance
Devlogs:
I completed the manual data collection I needed during the summer (using MediaPipe). I also finished coding and training the AI model (using PyTorch). I am currently testing the model; here is a demo video:...
|
1792957895.596404
|
1793562695.596404
|
|
69617
|
OpennMind by @RudranshShukla | Stardance
|
RudranshShukla
|
0
|
9.96
|
0
|
[]
|
[{"post_id": 80385, "ts": "202 [{"post_id": 80385, "ts": "2026-10-17T14:04:54Z", "hours": 1.3981, "text": "Launched the waitlist page guys! https://opennmind.com"}, {"post_id": 80108, "ts": "2026-10-16T08:06:02Z", "hours": 8.5656, "text": "Worked on the waitlist page, it’s a beauty! (the image added is just the footer section)"}]...
|
Title: OpennMind by @RudranshShukla | Stardance
D Title: OpennMind by @RudranshShukla | Stardance
Devlogs:
Worked on the waitlist page, it’s a beauty! (the image added is just the footer section)
Launched the waitlist page guys! https://opennmind.com...
|
1792857247.6908314
|
1793462047.6908314
|
|
70187
|
ichi warioware game by @rigid_valmeo | Stardance
|
rigid_valmeo
|
0
|
1.39
|
0
|
[]
|
[{"post_id": 80383, "ts": "202 [{"post_id": 80383, "ts": "2026-10-17T13:57:39Z", "hours": 1.3939, "text": "Making my warioware rn"}]...
|
Title: ichi warioware game by @rigid_valmeo | Star Title: ichi warioware game by @rigid_valmeo | Stardance
Devlogs:
Making my warioware rn...
|
1792961242.3129616
|
1793825242.3129616
|
|
53025
|
Hand Tracker by @javin_wittig | Stardance
|
javin_wittig
|
1
|
16.19
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T13:21:54Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a real-time Hand Tracker using a Raspberry Pi 4, two servo motors, and MediaPipe! It tracks my hand movement live through a camera and mimics it using a physical paper hand mounted on two servos. The biggest challenge: Running MediaPipe directly on the Pi 4 overheated it fast. To fix this, I now run MediaPipe on my PC. Now, the Pi streams the video feed to my PC, which calculates the coordinates and sends them back to the Rasperry PI,which then controls the two servos to mimic my hands movement. What I’m proud of: Solving the overheating issue using network streaming and seeing the mechanical hand follow my movements live! I also built a website: https://javinwittig.github.io/hand_tracker_website/ I made 3 Github Repos, one for the Rasperry PI, one for the backend on my PC, where MediaPipe is running and another for the website, which I hosted using Github Pages", "repo": "https://github.com/javinwittig/hand_tracker", "demo": ""}]...
|
[{"post_id": 80382, "ts": "202 [{"post_id": 80382, "ts": "2026-10-17T13:54:39Z", "hours": 1.1889, "text": "3D modeling my handtracker"}, {"post_id": 69620, "ts": "2026-09-17T13:05:18Z", "hours": 0.8253, "text": "Building a Website for my project in HTML and hosting it on Github Pages"}, {"post_id": 65233, "ts": "2026-09-10T07:07:23Z", "hours": 6.1083, "text": "Im finally ready to ship everything"}, {"post_id": 52585, "ts": "2026-08-22T19:34:19Z", "hours": 7.7164, "text": "I’m building a laser turret with a Raspberry Pi, two servo motors, a laser pointer, and a camera that tracks my hand movement live and steers the laser accordingly. The Pi is already set up (Python/VS Code), but since local MediaPipe tracking overheats the Pi 4 too much, I’ve decided to offload the tracking to my PC with an RTX 5070 — the Pi just streams the camera feed to the PC, which sends back target coordinates for the Pi to steer the servos. I’m also keeping a local website with a live video stream"}]...
|
Title: Hand Tracker by @javin_wittig | Stardance
Title: Hand Tracker by @javin_wittig | Stardance
Devlogs:
I’m building a laser turret with a Raspberry Pi, two servo motors, a laser pointer, and a camera that tracks my hand movement live and steers the laser accordingly. The Pi is already set up (Python/VS Code), but since local MediaPipe tracking overheats the Pi 4 too much, I’ve decided to offload the tracking to my PC with an RTX 5070 — the Pi just streams the camera feed to the PC, which sends back target coordinates for the Pi to steer the servos. I’m also keeping a local website with a live video stream
Im finally ready to ship everything
Building a Website for my project in HTML and hosting it on Github Pages
3D modeling my handtracker
Ships:
I built a real-time Hand Tracker using a Raspberry Pi 4, two servo motors, and MediaPipe! It tracks my hand movement live through a camera and mimics it using a physical paper hand mounted on two servos. The biggest challenge: Running MediaPipe directly on the Pi 4 overheated it fast. To fix this, I now run MediaPipe on my PC. Now, the Pi streams the video feed to my PC, which calculates the coordinates and sends them back to the Rasperry PI,which then controls the two servos to mimic my hands movement. What I’m proud of: Solving the overheating issue using network streaming and seeing the mechanical hand follow my movements live! I also built a website: https://javinwittig.github.io/hand_tracker_website/ I made 3 Github Repos, one for the Rasperry PI, one for the backend on my PC, where MediaPipe is running and another for the website, which I hosted using Github Pages...
|
1793152345.1545503
|
1793238745.1545503
|
|
56843
|
B2 BomboPad by @tryingmybest | Stardance
|
tryingmybest
|
0
|
16.07
|
0
|
[]
|
[{"post_id": 80375, "ts": "202 [{"post_id": 80375, "ts": "2026-10-17T13:34:48Z", "hours": 0.5503, "text": "worked on the firmware, cant figure what the problem is somehow my encoder is typing d and that seems to be the only thing working"}, {"post_id": 78166, "ts": "2026-10-09T20:46:25Z", "hours": 1.5014, "text": "worked on completing soldering, then assembly and firmware uploading, facing some problems there, will debug later, oh so near yet so far was facing some mind boggling problems for firmware i hope it can be fixed……"}, {"post_id": 78141, "ts": "2026-10-09T18:42:21Z", "hours": 2.1039, "text": "build 1: first ever pcb soldering, very delicate and intricate but fun, soldered all keys, and rotary encoders also the diodes on the cpb, seeduino xiao left, that will be soldered next and then firmware loaded onto it and then assembly and we will completed our hackpaddddddd!"}, {"post_id": 64825, "ts": "2026-09-09T14:36:20Z", "hours": 1.1703, "text": "finally completed the project, added firmware, uploaded it all on github. Has been a brilliant last week learning about pcb designing, CAD, going through multiple iterations, thinking about the designs for the macropad and here we are, done with it. i am sure i did a lot of mistakes on the way, but i am happy with what i have learn throughout this project. A lot learnt!"}, {"post_id": 64310, "ts": "2026-09-08T16:27:59Z", "hours": 1.9194, "text": "Oh its so pleasant to see the macropad final in shape. After numerous iterations, numerous changes I am finally done and happy with how my macropad looks. Yes initially I thought to make it a basic macropad, and then I thought i should make it look like a rocket ship, and now I have finally ended with it looking like the B2 Bomber. Completed the bottom and top case for the macropad, I hope my dimensions and calculations are current and everything fits, only the firmware part remains and I estimate the project could be done by tomorrow. Amazing feeling, designing it myself… 11 hours in the project and i have reached this…. A LOT TO LEARN!!"}, {"post_id": 63740, "ts": "2026-09-07T18:08:36Z", "hours": 1.7272, "text": "Started a good CAD task today, completed 80% of the bottom case, added a nose cone that took 4 iterations but i am still not sure about how it looks, tried to add some curvature to the wings as well. First time taking up an ambitious CAD project that I had to design myself with not much help. Will probably add thrusters and work on the top case tomorrow! A lot to learn!"}, {"post_id": 63081, "ts": "2026-09-06T17:50:34Z", "hours": 0.3186, "text": "Least time worked today, only around 20 minutes. Got to keep the streak going but there was lack of time to work, just initialized a github repo today and uploaded all files. By tomorrow, we should start working much more, atleast 1-2 hours a day. more on CAD tomorrow. A lot to learn!"}, {"post_id": 62405, "ts": "2026-09-05T19:01:01Z", "hours": 0.6844, "text": "As the preliminary PCB design is done, today was the day to import our 3d model to OnShape and start CADing, didnt have much time today so got only some basic CAD done trying to create the case for the SpacePad. Still unsure about the design I want to go for and might keep tweaking a bit tmrw. A lot to learn!"}, {"post_id": 61672, "ts": "2026-09-04T18:20:54Z", "hours": 1.7786, "text": "Today I tried out a different layout for my SpacePad, mainly changing the position of the Xiao board to place it at the bottom instead of the top to give a good enough space for the usb cable and making it look like a part of my Rocket Ship design. After that I rerouted all the connections of the SpacePad and then added 3d models of all the components and keycap to give the SpacePad it’s look! A lot to learn!"}, {"post_id": 60837, "ts": "2026-09-03T13:46:20Z", "hours": 1.5472, "text": "After completing the schematics of my project yesterday, I worked on decifing the final layout and connections of the pcb. At the start I was looking at some resources to understanding how to route and design a layout for a pcb, and then tried to build the same on my own. I am looking at a probable rocket/spaceship design on my hackpad, and tomorrow is the day I will be starting CAD or graphic design of my pcb. A lot to learn!"}, {"post_id": 60343, "ts": "2026-09-02T16:55:32Z", "hours": 1.2286, "text": "As the instructions from the guide were completed, i started working on the v2 of my macropad design. Completed the schematics of the design, i am going with a 3x2 keys matrix and 2 rotary encoders. I am using the matrix connections instead of directly connecting each one to a pin. I also spent a lot of time figuring how to do the schematics for my custom design because its my first time designing a pcb, Joe Scotto’s tutorial is brilliant in doing so, i literally loved it. There’s definitely a lot more to learn and I will start routing tomorrow building the final pcb and then we start CADing."}, {"post_id": 59132, "ts": "2026-08-31T19:17:11Z", "hours": 1.5372, "text": "I am working on creating my own macropad usking Kicad and Onshape I used the guide to work on creating my first ever hardware project, used Kicad for the schematics and pcb creation, installed the libraries added components routed and connected those, then on onshape worked on designing the case for our micropad with reference to hackpad guide will be adding my own touch in the next devlog"}]...
|
Title: B2 BomboPad by @tryingmybest | Stardance
D Title: B2 BomboPad by @tryingmybest | Stardance
Devlogs:
I am working on creating my own macropad usking Kicad and Onshape I used the guide to work on creating my first ever hardware project, used Kicad for the schematics and pcb creation, installed the libraries added components routed and connected those, then on onshape worked on designing the case for our micropad with reference to hackpad guide will be adding my own touch in the next devlog
As the instructions from the guide were completed, i started working on the v2 of my macropad design. Completed the schematics of the design, i am going with a 3x2 keys matrix and 2 rotary encoders. I am using the matrix connections instead of directly connecting each one to a pin. I also spent a lot of time figuring how to do the schematics for my custom design because its my first time designing a pcb, Joe Scotto’s tutorial is brilliant in doing so, i literally loved it. There’s definitely a lot more to learn and I will start routing tomorrow building the final pcb and then we start CADing.
After completing the schematics of my project yesterday, I worked on decifing the final layout and connections of the pcb. At the start I was looking at some resources to understanding how to route and design a layout for a pcb, and then tried to build the same on my own. I am looking at a probable rocket/spaceship design on my hackpad, and tomorrow is the day I will be starting CAD or graphic design of my pcb. A lot to learn!
Today I tried out a different layout for my SpacePad, mainly changing the position of the Xiao board to place it at the bottom instead of the top to give a good enough space for the usb cable and making it look like a part of my Rocket Ship design. After that I rerouted all the connections of the SpacePad and then added 3d models of all the components and keycap to give the SpacePad it’s look! A lot to learn!
As the preliminary PCB design is done, today was the day to import our 3d model to OnShape and start CADing, didnt have much time today so got only some basic CAD done trying to create the case for the SpacePad. Still unsure about the design I want to go for and might keep tweaking a bit tmrw. A lot to learn!
Least time worked today, only around 20 minutes. Got to keep the streak going but there was lack of time to work, just initialized a github repo today and uploaded all files. By tomorrow, we should start working much more, atleast 1-2 hours a day. more on CAD tomorrow. A lot to learn!
Started a good CAD task today, completed 80% of the bottom case, added a nose cone that took 4 iterations but i am still not sure about how it looks, tried to add some curvature to the wings as well. First time taking up an ambitious CAD project that I had to design myself with not much help. Will probably add thrusters and work on the top case tomorrow! A lot to learn!
Oh its so pleasant to see the macropad final in shape. After numerous iterations, numerous changes I am finally done and happy with how my macropad looks. Yes initially I thought to make it a basic macropad, and then I thought i should make it look like a rocket ship, and now I have finally ended with it looking like the B2 Bomber. Completed the bottom and top case for the macropad, I hope my dimensions and calculations are current and everything fits, only the firmware part remains and I estimate the project could be done by tomorrow. Amazing feeling, designing it myself… 11 hours in the project and i have reached this…. A LOT TO LEARN!!
finally completed the project, added firmware, uploaded it all on github. Has been a brilliant last week learning about pcb designing, CAD, going through multiple iterations, thinking about the designs for the macropad and here we are, done with it. i am sure i did a lot of mistakes on the way, but i am happy with what i have learn throughout this project. A lot learnt!
build 1: first ever pcb soldering, very delicate and intricate but fun, soldered all keys, and rotary encoders also the diodes on the cpb, seeduino xiao left, that will be soldered next and then firmware loaded onto it and then assembly and we will completed our hackpaddddddd!
worked on completing soldering, then assembly and firmware uploading, facing some problems there, will debug later, oh so near yet so far was facing some mind boggling problems for firmware i hope it can be fixed……
worked on the firmware, cant figure what the problem is somehow my encoder is typing d and that seems to be the only thing working...
|
1792680717.5143988
|
1793285517.5143988
|
|
56727
|
NexOS by @NexnReal | Stardance
|
NexnReal
|
2
|
50.0
|
27
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T13:31:47Z", "hours": 6.0, "multiplier": 4.23, "payout": 27, "blessing": "neutral", "text": "NexOS is a lightweight OS that work in your Browser. Easy to use and saves everything in LocalStorage. Made with Vite React, Tailwind and Zustand, also Motion. It have a Launcher, Dock, and a working and stable Filesystem. New Apps added: Web Browser Music Player Weather Topbar: Now smaller, but wide enough, fits everything, now displays temperature and country iso Wallpapers: updated again, now much more clear and less blurry Weather: Uses free APIs, so everything is secure, shows country name, region, lat, lon, and other details related.", "repo": "https://github.com/NexnBased/NexOS", "demo": "https://nexos1-alpha.vercel.app/"}, {"ship_num": 2, "ts": "2026-10-13T18:02:23Z", "hours": 44.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "NexOS is a lightweight OS that work in your Browser. Easy to use and saves everything in LocalStorage. Made with Vite React, Tailwind and Zustand, also Motion. It have a Launcher, Dock, and a working and stable Filesystem.", "repo": "https://github.com/NexnBased/NexOS", "demo": "https://nexos1-alpha.vercel.app/"}]...
|
[{"post_id": 80373, "ts": "202 [{"post_id": 80373, "ts": "2026-10-17T13:27:28Z", "hours": 2.54, "text": "Devlog 13 Weather Added weather app Shows: location , temperature (F/C) , region , lat+lon , and few more Displays Highest and Longer temperature as well Search allows to get weather of any city Display City name Topbar A bit longer now Shows weather and country name More wider Settings Updated wallpapers city name hidden for obvious reasons in the screenshots"}, {"post_id": 80299, "ts": "2026-10-17T05:47:22Z", "hours": 2.8133, "text": "Devlog 12 Music Player Added 10 songs Next & previous Shows basic details about the song Top Bar Smaller Floating Blurred More space in Desktop AppLauncher Redesigned Search"}, {"post_id": 79720, "ts": "2026-10-15T06:37:13Z", "hours": 1.1172, "text": "Devlog 11 Browser made with iframe loads every site that allow to be shown in iframe Home button, Search button, Refresh Button loads wikipedia by default Minor changes"}, {"post_id": 79368, "ts": "2026-10-13T17:59:08Z", "hours": 0.4639, "text": "Devlog 10: Updated README.md Anyway idk if this is useful, check it out"}, {"post_id": 79346, "ts": "2026-10-13T16:01:20Z", "hours": 0.7286, "text": "Devlog 10 Finished ran all tests, all passed did linting formatted with prettier all DONE. I guess. Idk what else to add so im done for now."}, {"post_id": 79278, "ts": "2026-10-13T09:29:56Z", "hours": 2.6936, "text": "Devlog 9 Added Settings change Desktop icon change Wallpaper toggle welcome app off or on when loading set any image (custom url) as wallpaper Reset File system (back to default/init) Desktop Icons Horizontal now Markdown Reader: Reads Raw/Rendered .MD files, opens MD files need improvements Image Viewer: Opens any image in the filesystem support zoom display resolution easy to use Minor bug fixes & improvements"}, {"post_id": 79094, "ts": "2026-10-12T17:13:09Z", "hours": 3.2286, "text": "Phase 8 Took a long long break, about 22 days. Added Terminal type help to see all commands works well idk what to add im actually sleepy rn so yeah uh so it works like a console input at the bottom display autoscroll when new outputs appear Minor Bug fixes + Added new Test"}, {"post_id": 71690, "ts": "2026-09-21T10:00:40Z", "hours": 5.1008, "text": "Devlog 7 Spent about 5 hours today, mostly fixes, major changes, and new app Text Editor: Dedicated Text editor that can open certain files from Files app. View and Edit the files easily instead of just previewing it !! was unable to design it properly because of issues with backdrop blur so had to use solid zinc background color Unified Filesystem Future-proofed it so that it can be used in Files.tsx and upcoming Terminal.tsx Fixed minor bugs Changed create, restore, delete logic Files Added an Empty Trash button Can restore files now Open in text editor button Few bug fixes Tests Added vitest Added tests for FileSystemStore and WindowStore 14 tests and 2 test files, all passed (commit: Phase 6) EDIT: Additional - commit Linting: migrated from Oxlint to Eslint Formatted with prettier Redesigned Text editor I think i forgot other things, i guess you can read the repo to understand them, also i forgot to use prettier to format all files"}, {"post_id": 70562, "ts": "2026-09-19T11:29:47Z", "hours": 5.8033, "text": "Devlog 6 Just like devlog 5, took most time making changes, fixing issues, adding new features Calendar App A tiny app, non-resizable, calendar app, without mantine/dates, uses Dayjs instead New: resizable boolean to prevent specific windows from being resized minHeight and minWidth now limit window resizing maxHeight and maxWidth now set a resize limit Changes: Changed the look and feel of Context Menu Removed all menus from Topbar Removed mantine entirely, postcss as well Set a boundary, windows cant go outside Desktop Changed Icons Dock now shows up when windows are minimized -!! There might be few more changes ive forgot to mention"}, {"post_id": 69734, "ts": "2026-09-17T17:46:40Z", "hours": 7.5342, "text": "Devlog 5 Took 7 hours, most time spent on fixing major and minor bugs, Files app n logic was lowkey hard Files Virtual FileSystem delete, create, edit, move, update files or folders allow making any file: image, audio, video, text, code, anything saves the whole filesystem and every single thing in it inside localStorage Files App allow creating file or folder easy sidebar to navigate search all major folders listed in sidebar Changes in existing Apps and windows Modification Made the window background to match the controls Used zinc 900 for Toolbar and all other main sections Made buttons more colorful and all Overall looks good in my opinion Matches the accent color Still need a lil bit more improvement and theming"}, {"post_id": 67140, "ts": "2026-09-13T06:21:38Z", "hours": 1.2022, "text": "Devlog 4 Added AppLauncher Launches apps Search Hotkeys Shows all apps"}, {"post_id": 66736, "ts": "2026-09-12T17:05:57Z", "hours": 6.2447, "text": "Devlog 3 FYI: Dont mind the icons, ill change them soon Apps Notes: stores in localstorage, upto 10 notes Calculator: just a basic calculator Desktop + Desktop Icons: Added shortcuts with icons to launch apps Not interactive for now Window + WindowManager: Added Maximize, Minimize, Focus and few more Dock: Has an indicator A lil bit animated Only launches, doesn’t minimize TopBar: Removed blur / transparency cuz had to move bg to Desktop"}, {"post_id": 66364, "ts": "2026-09-12T04:56:33Z", "hours": 4.2822, "text": "Devlog 2 Took a long break cuz of school and all Top bar Fixed few issues Had to remove blur on the bar Removed search button Added APIs to fetch your IP and display Also displays City and Country Added calendar (mantine/dates) Window, WindowManager & Desktop Added blur to windows Thats all i guess Need improvement Welcome.tsx Added the welcome window Look basic, gotta customize it"}, {"post_id": 58838, "ts": "2026-08-31T12:49:14Z", "hours": 6.7931, "text": "Devlog 1 Been working on this for days, havent finished the top bar yet Top Bar NexOS: About NexOS, link to repo n credits Search: Lists all apps, kinda like hyprlauncher but MAYBE i cant make it just like that Calendar & Clock: yeah im not making seperate apps for that, the topbar contains both Quick settings panel: Basic stuff in it Notification panel, opens when QS is opened Thats all for now"}]...
|
Title: NexOS by @NexnReal | Stardance
Devlogs:
De Title: NexOS by @NexnReal | Stardance
Devlogs:
Devlog 1 Been working on this for days, havent finished the top bar yet Top Bar NexOS: About NexOS, link to repo n credits Search: Lists all apps, kinda like hyprlauncher but MAYBE i cant make it just like that Calendar & Clock: yeah im not making seperate apps for that, the topbar contains both Quick settings panel: Basic stuff in it Notification panel, opens when QS is opened Thats all for now
Devlog 2 Took a long break cuz of school and all Top bar Fixed few issues Had to remove blur on the bar Removed search button Added APIs to fetch your IP and display Also displays City and Country Added calendar (mantine/dates) Window, WindowManager & Desktop Added blur to windows Thats all i guess Need improvement Welcome.tsx Added the welcome window Look basic, gotta customize it
Devlog 3 FYI: Dont mind the icons, ill change them soon Apps Notes: stores in localstorage, upto 10 notes Calculator: just a basic calculator Desktop + Desktop Icons: Added shortcuts with icons to launch apps Not interactive for now Window + WindowManager: Added Maximize, Minimize, Focus and few more Dock: Has an indicator A lil bit animated Only launches, doesn’t minimize TopBar: Removed blur / transparency cuz had to move bg to Desktop
Devlog 4 Added AppLauncher Launches apps Search Hotkeys Shows all apps
Devlog 5 Took 7 hours, most time spent on fixing major and minor bugs, Files app n logic was lowkey hard Files Virtual FileSystem delete, create, edit, move, update files or folders allow making any file: image, audio, video, text, code, anything saves the whole filesystem and every single thing in it inside localStorage Files App allow creating file or folder easy sidebar to navigate search all major folders listed in sidebar Changes in existing Apps and windows Modification Made the window background to match the controls Used zinc 900 for Toolbar and all other main sections Made buttons more colorful and all Overall looks good in my opinion Matches the accent color Still need a lil bit more improvement and theming
Devlog 6 Just like devlog 5, took most time making changes, fixing issues, adding new features Calendar App A tiny app, non-resizable, calendar app, without mantine/dates, uses Dayjs instead New: resizable boolean to prevent specific windows from being resized minHeight and minWidth now limit window resizing maxHeight and maxWidth now set a resize limit Changes: Changed the look and feel of Context Menu Removed all menus from Topbar Removed mantine entirely, postcss as well Set a boundary, windows cant go outside Desktop Changed Icons Dock now shows up when windows are minimized -!! There might be few more changes ive forgot to mention
Devlog 7 Spent about 5 hours today, mostly fixes, major changes, and new app Text Editor: Dedicated Text editor that can open certain files from Files app. View and Edit the files easily instead of just previewing it !! was unable to design it properly because of issues with backdrop blur so had to use solid zinc background color Unified Filesystem Future-proofed it so that it can be used in Files.tsx and upcoming Terminal.tsx Fixed minor bugs Changed create, restore, delete logic Files Added an Empty Trash button Can restore files now Open in text editor button Few bug fixes Tests Added vitest Added tests for FileSystemStore and WindowStore 14 tests and 2 test files, all passed (commit: Phase 6) EDIT: Additional - commit Linting: migrated from Oxlint to Eslint Formatted with prettier Redesigned Text editor I think i forgot other things, i guess you can read the repo to understand them, also i forgot to use prettier to format all files
Phase 8 Took a long long break, about 22 days. Added Terminal type help to see all commands works well idk what to add im actually sleepy rn so yeah uh so it works like a console input at the bottom display autoscroll when new outputs appear Minor Bug fixes + Added new Test
Devlog 9 Added Settings change Desktop icon change Wallpaper toggle welcome app off or on when loading set any image (custom url) as wallpaper Reset File system (back to default/init) Desktop Icons Horizontal now Markdown Reader: Reads Raw/Rendered .MD files, opens MD files need improvements Image Viewer: Opens any image in the filesystem support zoom display resolution easy to use Minor bug fixes & improvements
Devlog 10 Finished ran all tests, all passed did linting formatted with prettier all DONE. I guess. Idk what else to add so im done for now.
Devlog 10: Updated README.md Anyway idk if this is useful, check it out
Devlog 11 Browser made with iframe loads every site that allow to be shown in iframe Home button, Search button, Refresh Button loads wikipedia by default Minor changes
Devlog 12 Music Player Added 10 songs Next & previous Shows basic details about the song Top Bar Smaller Floating Blurred More space in Desktop AppLauncher Redesigned Search
Devlog 13 Weather Added weather app Shows: location , temperature (F/C) , region , lat+lon , and few more Displays Highest and Longer temperature as well Search allows to get weather of any city Display City name Topbar A bit longer now Shows weather and country name More wider Settings Updated wallpapers city name hidden for obvious reasons in the screenshots
Ships:
NexOS is a lightweight OS that work in your Browser. Easy to use and saves everything in LocalStorage. Made with Vite React, Tailwind and Zustand, also Motion. It have a Launcher, Dock, and a working and stable Filesystem.
NexOS is a lightweight OS that work in your Browser. Easy to use and saves everything in LocalStorage. Made with Vite React, Tailwind and Zustand, also Motion. It have a Launcher, Dock, and a working and stable Filesystem. New Apps added: Web Browser Music Player Weather Topbar: Now smaller, but wide enough, fits everything, now displays temperature and country iso Wallpapers: updated again, now much more clear and less blurry Weather: Uses free APIs, so everything is secure, shows country name, region, lat, lon, and other details related....
|
1793198969.454889
|
1793285369.454889
|
|
63423
|
Article Of The Day by @Visott | Stardance
|
Visott
|
1
|
15.0
|
159
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T13:01:52Z", "hours": 15.0, "multiplier": 10.87, "payout": 159, "blessing": "neutral", "text": "Article Of The Day V1.0 This website generates one random article a day! You can re-roll for another article if you don’t like the current one. You can also select different topics based on your interests. Features: Custom Coffee Bean Cursor Satisfying Buttons Topic/Category Selectors Randomly Generated Article Implementing RSS feeds in order to parse the articles onto the site was quiet challenging, but I learned a lot about Javascript, RSS Parser, and RSS Feeds in the process. This website works on all devices; just click on the link and you should be good to go! Link", "repo": "https://github.com/VITNT/Article-of-The-Day", "demo": "https://article-of-the-day.vercel.app/"}]...
|
[{"post_id": 80367, "ts": "202 [{"post_id": 80367, "ts": "2026-10-17T12:49:58Z", "hours": 2.1789, "text": "Devlog 4 The README is complete! I’ve rewritten some of the JS to simplify it, and I’ve added some more sources to the backend. There is also a source code button now that links to the project’s github repo."}, {"post_id": 79293, "ts": "2026-10-13T11:07:23Z", "hours": 8.0583, "text": "Devlog 3 I have expanded support from Wikipedia to more sources like Wired, BBC, The Verge, etc… It took a while because I had to learn how to use npm and the rss-parser library. Bugs 🐛 Confused between which variable to use for selecting the articles (i.e. sources vs feed vs article in article.js) Changes I added rss links for each source Drafted a README file Learned how to use async functions to reduce load times Learned how to use Vercel CLI to test backend api code. Learned type module for Javascript. Also learned that I need to use `` instead of “” when using/embedding variables like response.status . Also spent a lot of time trying to make the category feature work where users can which categories they want for the random articles. Choosing which CSS selectors to use so that the category buttons have the proper hover and active transitions Future Plans Add a link to the project’s github. More sources/categories!"}, {"post_id": 72642, "ts": "2026-09-23T12:38:21Z", "hours": 1.1822, "text": "Devlog #2 I added an open article button which opens the random article on click. I learned how to implement this through Javascript by using article.content_urls.desktop.page; to get the article url and then open the article on click using window.open(url, \"_blank\"); , and an event listener on the open article button. I also added the current date at the top of the title using date.toLocaleDateString . I styled the buttons to slightly glow on hover and sink into the screen (inset box-shadow) on click."}, {"post_id": 72209, "ts": "2026-09-22T13:35:29Z", "hours": 3.1767, "text": "Devlog #1 I started with Astro but after learning astro for about 1 hour, I realized that it was overkill for what I was trying to do. So instead I swapped to HTML, CSS, and JS (although, I’ll probably try programming it in Astro when I get the html/css/js version to work). I spent around 15 minutes looking for colors, fonts, and a custom cursor icon for the site. I settled with the cute coffee bean icon which you can see in the image! The rest of the time was spent adding the styles to styles.css, setting up the HTML to work with the Javascript code, and implementing API fetch functions. The Javascript kinda works, but I haven’t linked it with the button yet, so it only loads the article on page refresh. Also, the JS only works with Wikipedia API for now, but more sites are going to be added very soon."}]...
|
Title: Article Of The Day by @Visott | Stardance
Title: Article Of The Day by @Visott | Stardance
Devlogs:
Devlog #1 I started with Astro but after learning astro for about 1 hour, I realized that it was overkill for what I was trying to do. So instead I swapped to HTML, CSS, and JS (although, I’ll probably try programming it in Astro when I get the html/css/js version to work). I spent around 15 minutes looking for colors, fonts, and a custom cursor icon for the site. I settled with the cute coffee bean icon which you can see in the image! The rest of the time was spent adding the styles to styles.css, setting up the HTML to work with the Javascript code, and implementing API fetch functions. The Javascript kinda works, but I haven’t linked it with the button yet, so it only loads the article on page refresh. Also, the JS only works with Wikipedia API for now, but more sites are going to be added very soon.
Devlog #2 I added an open article button which opens the random article on click. I learned how to implement this through Javascript by using article.content_urls.desktop.page; to get the article url and then open the article on click using window.open(url, "_blank"); , and an event listener on the open article button. I also added the current date at the top of the title using date.toLocaleDateString . I styled the buttons to slightly glow on hover and sink into the screen (inset box-shadow) on click.
Devlog 3 I have expanded support from Wikipedia to more sources like Wired, BBC, The Verge, etc… It took a while because I had to learn how to use npm and the rss-parser library. Bugs 🐛 Confused between which variable to use for selecting the articles (i.e. sources vs feed vs article in article.js) Changes I added rss links for each source Drafted a README file Learned how to use async functions to reduce load times Learned how to use Vercel CLI to test backend api code. Learned type module for Javascript. Also learned that I need to use `` instead of “” when using/embedding variables like response.status . Also spent a lot of time trying to make the category feature work where users can which categories they want for the random articles. Choosing which CSS selectors to use so that the category buttons have the proper hover and active transitions Future Plans Add a link to the project’s github. More sources/categories!
Devlog 4 The README is complete! I’ve rewritten some of the JS to simplify it, and I’ve added some more sources to the backend. There is also a source code button now that links to the project’s github repo.
Ships:
Article Of The Day V1.0 This website generates one random article a day! You can re-roll for another article if you don’t like the current one. You can also select different topics based on your interests. Features: Custom Coffee Bean Cursor Satisfying Buttons Topic/Category Selectors Randomly Generated Article Implementing RSS feeds in order to parse the articles onto the site was quiet challenging, but I learned a lot about Javascript, RSS Parser, and RSS Feeds in the process. This website works on all devices; just click on the link and you should be good to go! Link...
|
1793155780.8289363
|
1793242180.8289363
|
|
64767
|
Universal Error Lookup by @sharc | Stardance
|
sharc
|
1
|
11.64
|
72
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-30T13:53:01Z", "hours": 7.0, "multiplier": 9.67, "payout": 72, "blessing": "neutral", "text": "Universal Error Lookup What did I make? I made a Universal Error Code Lookup , a web app for developers, which speeds up debugging by turning tedious searches into a single, simple step. It checks http API databases, built-in OS error codes and can query Google Gemini for obscure errors. It also caches results for increased speed. Additionally, the web app allows for users so submit and vote on solutions and even provides deeplinks for easy web searches. What should people know so they can test my project? HTTP error codes like 404 or 401 will query the API. Low-level OS error codes will use your system’s own error info to return results. Entering other error codes will query Google Gemini. Also, try out submitting and voting on solutions and test out the search deeplinks !! What was challenging? Orchestrating lookups and handling their errors. The APIs constantly stopped working with no clear reason. Therefore I organised a fallback structure to handle this and to reduce number of AI API calls. Handling DBs safely . I had to constantly change my code to ensure database security and to provide all the necessary results. What am I proud of? I learned new skills. This is the first web application I created myself from scratch. Additionally, this is my first time querying APIs. I created a genuinely useful tool. Even when this was still in development, I was using this to help me determine error solutions. Frictionless info Problem Being Solved: Deciphering and debugging error codes is tedious. QoL Improvments: Multi-Tier Lookup in One Click User Submissions and Voting Pre-filtered deep-links", "repo": "https://github.com/aSharcc/universal_error_lookup", "demo": "https://error-code-lookup-server.hackclub.app/"}]...
|
[{"post_id": 80364, "ts": "202 [{"post_id": 80364, "ts": "2026-10-17T12:45:27Z", "hours": 2.2375, "text": "Devlog 14/10/2026 to 17/10/2026 What I’ve done Changed AI output handling Added Title field Handled Markdown output using markdown2 and Markup Sanitised output using nh3 Specified allowed tags, attributes and url schemes to prevent attribute injection in links Changed AI input handling Limited input length Lowered temperature to make it less creative Gave clear system instructions Refactored prompt design using explicit tags Updated HTML Removed nested tags in tags; incorrect HTML Updated error flashing to display clearly Included title field Moved some constants to .env Updated database queries to handle empty outputs/NONE outputs Added input truncation Updated sql schematic to include title field What’s next? Continue to act on user feedback Look into changing AI models for reliability Update live version Add page icon"}, {"post_id": 79656, "ts": "2026-10-14T22:51:01Z", "hours": 2.0664, "text": "Devlog 12/10/2026 to 14/10/2026 What I’ve done QOL FEATURES ADDED AS REQUESTED Added search history for easy recall Added a share button for easy sharing and collaboration Other Fixed sessions (cookies): This means that you can now only vote once on each user solution, also it makes the search history work What’s next? Again, this project is now finished for now. I am eager to hear any possible improvements or feature suggestions"}, {"post_id": 77281, "ts": "2026-10-06T12:40:30Z", "hours": 0.3322, "text": "FOR SHIP REVIEWER I included these in my ship but I’m going to send them again because it doesn’t seem like its been read before returning QOL Improvments from my project Speedy Error Lookup: User only needs to input the details once and can access many different resources to help solve their issue; Google, Reddit, StackOverflow, AI and User Submitted Solutions User Submitted Solutions : Solutions can be submitted by many users so you can view many different solutions from real people, and these are sorted by votes, naturally filtering them. Local Result Caching: Caches user lookups to eliminate the need for repeated API calls and therefore makes searching near instant for the end user. Devlog - 01/10/2026 to 06/10/2026 What I’ve Done Moved Website to Nest for 24/7 uptime Updated Readme to have a better order Added Images to readme Added live website link to readme What’s next? This Project is Finished as of now, I might revisit it in the future."}, {"post_id": 75544, "ts": "2026-09-30T12:19:57Z", "hours": 2.1811, "text": "Devlog - 25/09/2026 to 30/09/2026 What I’ve Done Added CSS Edited redirect links Edited DB management Added requirements.txt Added README Added pagination for community solutions Added sorting by votes for community solutions Fixed AI lookups What’s next? Setup public website"}, {"post_id": 73324, "ts": "2026-09-24T21:26:28Z", "hours": 5.2769, "text": "Inital Devlog - Universal Error Lookup What I’ve done Multi-Source Fetching - API (httpstatuses.io/), OS system errors (os.sterror), fallback AI (gemini) Crafted Search Links - Search links to Google; normal search, Reddit search and StackOverflow search. Database Caching - SQLite database with indexed tables (searches and solutions) to store past queries and reduce API use. Community Solutions and Voting - Users can submit solutions and up/downvote entries, using sessions to track past votes. What’s Next? UI improvments - Update CSS Sanitise user submitted solutions UX Update - Convert to fetch to avoid need for page reloads"}]...
|
Title: Universal Error Lookup by @sharc | Stardanc Title: Universal Error Lookup by @sharc | Stardance
Devlogs:
Inital Devlog - Universal Error Lookup What I’ve done Multi-Source Fetching - API (httpstatuses.io/), OS system errors (os.sterror), fallback AI (gemini) Crafted Search Links - Search links to Google; normal search, Reddit search and StackOverflow search. Database Caching - SQLite database with indexed tables (searches and solutions) to store past queries and reduce API use. Community Solutions and Voting - Users can submit solutions and up/downvote entries, using sessions to track past votes. What’s Next? UI improvments - Update CSS Sanitise user submitted solutions UX Update - Convert to fetch to avoid need for page reloads
Devlog - 25/09/2026 to 30/09/2026 What I’ve Done Added CSS Edited redirect links Edited DB management Added requirements.txt Added README Added pagination for community solutions Added sorting by votes for community solutions Fixed AI lookups What’s next? Setup public website
FOR SHIP REVIEWER I included these in my ship but I’m going to send them again because it doesn’t seem like its been read before returning QOL Improvments from my project Speedy Error Lookup: User only needs to input the details once and can access many different resources to help solve their issue; Google, Reddit, StackOverflow, AI and User Submitted Solutions User Submitted Solutions : Solutions can be submitted by many users so you can view many different solutions from real people, and these are sorted by votes, naturally filtering them. Local Result Caching: Caches user lookups to eliminate the need for repeated API calls and therefore makes searching near instant for the end user. Devlog - 01/10/2026 to 06/10/2026 What I’ve Done Moved Website to Nest for 24/7 uptime Updated Readme to have a better order Added Images to readme Added live website link to readme What’s next? This Project is Finished as of now, I might revisit it in the future.
Devlog 12/10/2026 to 14/10/2026 What I’ve done QOL FEATURES ADDED AS REQUESTED Added search history for easy recall Added a share button for easy sharing and collaboration Other Fixed sessions (cookies): This means that you can now only vote once on each user solution, also it makes the search history work What’s next? Again, this project is now finished for now. I am eager to hear any possible improvements or feature suggestions
Devlog 14/10/2026 to 17/10/2026 What I’ve done Changed AI output handling Added Title field Handled Markdown output using markdown2 and Markup Sanitised output using nh3 Specified allowed tags, attributes and url schemes to prevent attribute injection in links Changed AI input handling Limited input length Lowered temperature to make it less creative Gave clear system instructions Refactored prompt design using explicit tags Updated HTML Removed nested tags in tags; incorrect HTML Updated error flashing to display clearly Included title field Moved some constants to .env Updated database queries to handle empty outputs/NONE outputs Added input truncation Updated sql schematic to include title field What’s next? Continue to act on user feedback Look into changing AI models for reliability Update live version Add page icon
Ships:
Universal Error Lookup What did I make? I made a Universal Error Code Lookup , a web app for developers, which speeds up debugging by turning tedious searches into a single, simple step. It checks http API databases, built-in OS error codes and can query Google Gemini for obscure errors. It also caches results for increased speed. Additionally, the web app allows for users so submit and vote on solutions and even provides deeplinks for easy web searches. What should people know so they can test my project? HTTP error codes like 404 or 401 will query the API. Low-level OS error codes will use your system’s own error info to return results. Entering other error codes will query Google Gemini. Also, try out submitting and voting on solutions and test out the search deeplinks !! What was challenging? Orchestrating lookups and handling their errors. The APIs constantly stopped working with no clear reason. Therefore I organised a fallback structure to handle this and to reduce number of AI API calls. Handling DBs safely . I had to constantly change my code to ensure database security and to provide all the necessary results. What am I proud of? I learned new skills. This is the first web application I created myself from scratch. Additionally, this is my first time querying APIs. I created a genuinely useful tool. Even when this was still in development, I was using this to help me determine error solutions. Frictionless info Problem Being Solved: Deciphering and debugging error codes is tedious. QoL Improvments: Multi-Tier Lookup in One Click User Submissions and Voting Pre-filtered deep-links...
|
1793213643.6994448
|
1793300043.6994448
|
|
20759
|
ez-SDR by @lupc65779 | Stardance
|
lupc65779
|
1
|
163.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T15:44:56Z", "hours": 163.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built ez-SDR , an open source software defined radio application written entirely in Rust (one of the relatively few fully Rust-based SDR desktop applications). ez-SDR has three main tabs: Radio: A general-purpose radio receiver with AM, FM, SSB, CW, and other modulation modes, real-time spectrum and waterfall displays, and stereo FM with RDS support. ADS-B: An aircraft tracking system with an interactive map showing aircraft positions, altitudes, speeds, headings, and flight trails. It includes native decoders for both 1090 MHz ADS-B, used worldwide, and the freedom frequency (978 MHz) Meteor Decoding: A satellite image decoder capable of decoding imagery transmitted by the Russian Meteor-M2-3 and M2-4 weather satellites. It supports both live reception and decoding previously recorded radio signals (saved as CS8 or CF32 files), with image previews and PNG exports. (A moment of silence for the deprecated NOAA satellites) Another major feature is the architecture itself. I beheaded it. (The project.) The actual GUI is separated from the radio processing backend allowing it to run as a headless daemon. It exposes HTTP and WebSocket API’s, making it possible to interact with the backend without using the GUI. Getting everything working was… interesting. Building the decoding pipelines, integrating them into a responsive desktop interface (making it snappy and fast took several tens of hours), debugging signal processing issues, and literally running through cornfields with an antenna in my hand were some of the biggest challenges I ran into. The project went through several major redesigns, from the initial Rust implementation to separating the backend from the UI, briefly experimenting with Electron, and eventually returning to the native Rust interface. After over 160 hours of logged work , I’m excited to finally ship ez-SDR! The source code and Linux builds are available on GitHub, with a Windows build planned for the near future.", "repo": "https://github.com/Lupc9102/ez-sdr", "demo": "https://drive.google.com/file/d/1CAk3eGq8M2QFzbwPgKeuX1w_fwFsIhUG/view?usp=sharing"}]...
|
[{"post_id": 80362, "ts": "202 [{"post_id": 80362, "ts": "2026-10-17T12:36:53Z", "hours": 10.9075, "text": "Major reliability and release readiness improvements for EZ-SDR -stronger ADS-B/UAT decoding -safer settings, cleaner daemon and browser lifecycles -better audio and integrations - finally stable data paths -packaging fixes -removal of immense amounts of bloat PS heres an image of LRPT decoding in action"}, {"post_id": 78367, "ts": "2026-10-10T16:02:57Z", "hours": 10.4897, "text": "Getting ready to ship it so here I am trying to patch some final bugs in the Meteor Satellite Lrpt decoding pipeline"}, {"post_id": 77103, "ts": "2026-10-05T17:15:36Z", "hours": 15.5006, "text": "Going for a final round of fixes on the ads-b pipeline before marking it as finished 6.1 sol xhigh audited it and its not looking too good (holy f 11k words)"}, {"post_id": 74071, "ts": "2026-09-26T16:52:51Z", "hours": 8.1261, "text": "Rust UI is back, also ported a couple of features from sdr++, The screenshot contains an actual signal (unlike the mockups in past devblogs), more precisely a local music radio station received through ez-sdr with a rtl sdr v4 dongle"}, {"post_id": 72598, "ts": "2026-09-23T09:47:02Z", "hours": 13.9953, "text": "a TON of bug hunting and im going back to the old rust ui because it turns out the electron app wasnt my brightest idea"}, {"post_id": 57242, "ts": "2026-08-29T10:50:29Z", "hours": 9.9469, "text": "Couldnt patch the ads-b map view inside the rust gui app so i took a U turn with the porject and went all in for an Electron App as the gui for the ez-sdr daemon. mockup waterfall"}, {"post_id": 44519, "ts": "2026-08-10T10:22:10Z", "hours": 8.3333, "text": "Not much to be written, just some painful and slow progress with decoding meteor imagery."}, {"post_id": 28507, "ts": "2026-07-14T20:02:26Z", "hours": 6.0031, "text": "Should I even be happy? I finally tested ez-sdr’s satellite decoding with a real recording I took yesterday on an Meteor M2-4 88* pass, and it’s… not great, especially compared to SatDump’s decode. (Ez-sdr is the first image, SatDump is the second image.) What troubles me the most is that I literally stole SatDump’s homework equation by equation and rewrote it in Rust, and it still looks like shite lol. Its for sure progress and im happy with that lol"}, {"post_id": 27542, "ts": "2026-07-13T06:10:40Z", "hours": 9.3789, "text": "Considering that the last two LRPT satellites that still transmit are Meteor m2-3 and Meteor m2-4 i did efforts to make decoding them as fast as possible , especially cf32, cs16 and cs8 decoding. Now i didnt really get to test the upgrades.. because i didnt get to FINISH the upgrades but i DID finish the web ui remote from the last devlog. (I am posting this devlog WITHOUT a finished feature because im getting close to the 10 hour cap) Also ive went outside, touched grass and snatched a good cs32 from meteor m2-4 so i actually have what to test the decoding on."}, {"post_id": 25907, "ts": "2026-07-10T12:18:29Z", "hours": 10.7172, "text": "I cut its head off. Fully decoupled Ez-sdr from Ez-gui (the Rust UI), effectively turning Ez-sdr into a headless project. This allows Ez-sdr to be coupled to multiple channels: The original Rust UI WebUI (Almost done, in development) Discord (in development) This decoupling also exposes an API, allowing you to integrate and use Ez-sdr functionalities on the go within your own applications and projects."}, {"post_id": 25177, "ts": "2026-07-09T07:11:47Z", "hours": 28.3117, "text": "Yet another from-scratch redesign because lately most of the app started feeling bloated and hard to use for beginners (which defeats the entire purpose of ez -sdr, which is meant to be easy . Therefore i moved most of the unnecessary stuff in advanced and other tabs. Also patched a lot of bugs."}, {"post_id": 20817, "ts": "2026-07-02T15:02:41Z", "hours": 25.5669, "text": "Full UI redesign + a ton of new features: The ADSB tab now includes a map, plane labels, and a 3D view mode. Added a Discord gateway that sends notifications and images of detected planes, satellite passes, and more. Overhauled the AI Assistant tab. Added a reasoning effort dropdown to the AI assistant. Granted the AI the ability to perform web searches. Added well-documented checklists and tutorials for beginners setting up their SDR kits, including an antenna angle and length calculator, recommended environments, cabling tips, and driver recommendations. Added UI presets: users can select their experience level on the first boot, and the app automatically customizes the interface accordingly (beginners rely more on the AI assistant and auto-tuning, while experts manage everything manually with optional AI assistance). Added premade themes and in depth ui customization."}, {"post_id": 17812, "ts": "2026-06-28T19:00:19Z", "hours": 5.7533, "text": "I know how hard is it to get started with software defined radios. I went through the hassle of being a complete beginner and having to deal with sketchy blogs and UIs of apps older than most of us participating in this hackaton, and so I tried to build an all-in-one SDR app with most of the cool things you can get from the average RTL-SDR kit: plane tracking, listening to ATC and some other cool frequencies, satellite signal capturing, decoding and tracking, and many more in one unified app interface. I originally intended to do ALL this in Python, but it was way too slow and crashed during DSP, so I had to rewrite it fully in Rust. Problem is that I don’t really know Rust (and basically anything lower level than Python) so props on kimi k2.6 who handled the whole rewrite flawlessly. There’s still many things to improve on this, and, more importantly.. a ton of testing and trial and error"}]...
|
Title: ez-SDR by @lupc65779 | Stardance
Devlogs:
Title: ez-SDR by @lupc65779 | Stardance
Devlogs:
I know how hard is it to get started with software defined radios. I went through the hassle of being a complete beginner and having to deal with sketchy blogs and UIs of apps older than most of us participating in this hackaton, and so I tried to build an all-in-one SDR app with most of the cool things you can get from the average RTL-SDR kit: plane tracking, listening to ATC and some other cool frequencies, satellite signal capturing, decoding and tracking, and many more in one unified app interface. I originally intended to do ALL this in Python, but it was way too slow and crashed during DSP, so I had to rewrite it fully in Rust. Problem is that I don’t really know Rust (and basically anything lower level than Python) so props on kimi k2.6 who handled the whole rewrite flawlessly. There’s still many things to improve on this, and, more importantly.. a ton of testing and trial and error
Full UI redesign + a ton of new features: The ADSB tab now includes a map, plane labels, and a 3D view mode. Added a Discord gateway that sends notifications and images of detected planes, satellite passes, and more. Overhauled the AI Assistant tab. Added a reasoning effort dropdown to the AI assistant. Granted the AI the ability to perform web searches. Added well-documented checklists and tutorials for beginners setting up their SDR kits, including an antenna angle and length calculator, recommended environments, cabling tips, and driver recommendations. Added UI presets: users can select their experience level on the first boot, and the app automatically customizes the interface accordingly (beginners rely more on the AI assistant and auto-tuning, while experts manage everything manually with optional AI assistance). Added premade themes and in depth ui customization.
Yet another from-scratch redesign because lately most of the app started feeling bloated and hard to use for beginners (which defeats the entire purpose of ez -sdr, which is meant to be easy . Therefore i moved most of the unnecessary stuff in advanced and other tabs. Also patched a lot of bugs.
I cut its head off. Fully decoupled Ez-sdr from Ez-gui (the Rust UI), effectively turning Ez-sdr into a headless project. This allows Ez-sdr to be coupled to multiple channels: The original Rust UI WebUI (Almost done, in development) Discord (in development) This decoupling also exposes an API, allowing you to integrate and use Ez-sdr functionalities on the go within your own applications and projects.
Considering that the last two LRPT satellites that still transmit are Meteor m2-3 and Meteor m2-4 i did efforts to make decoding them as fast as possible , especially cf32, cs16 and cs8 decoding. Now i didnt really get to test the upgrades.. because i didnt get to FINISH the upgrades but i DID finish the web ui remote from the last devlog. (I am posting this devlog WITHOUT a finished feature because im getting close to the 10 hour cap) Also ive went outside, touched grass and snatched a good cs32 from meteor m2-4 so i actually have what to test the decoding on.
Should I even be happy? I finally tested ez-sdr’s satellite decoding with a real recording I took yesterday on an Meteor M2-4 88* pass, and it’s… not great, especially compared to SatDump’s decode. (Ez-sdr is the first image, SatDump is the second image.) What troubles me the most is that I literally stole SatDump’s homework equation by equation and rewrote it in Rust, and it still looks like shite lol. Its for sure progress and im happy with that lol
Not much to be written, just some painful and slow progress with decoding meteor imagery.
Couldnt patch the ads-b map view inside the rust gui app so i took a U turn with the porject and went all in for an Electron App as the gui for the ez-sdr daemon. mockup waterfall
a TON of bug hunting and im going back to the old rust ui because it turns out the electron app wasnt my brightest idea
Rust UI is back, also ported a couple of features from sdr++, The screenshot contains an actual signal (unlike the mockups in past devblogs), more precisely a local music radio station received through ez-sdr with a rtl sdr v4 dongle
Going for a final round of fixes on the ads-b pipeline before marking it as finished 6.1 sol xhigh audited it and its not looking too good (holy f 11k words)
Getting ready to ship it so here I am trying to patch some final bugs in the Meteor Satellite Lrpt decoding pipeline
Major reliability and release readiness improvements for EZ-SDR -stronger ADS-B/UAT decoding -safer settings, cleaner daemon and browser lifecycles -better audio and integrations - finally stable data paths -packaging fixes -removal of immense amounts of bloat PS heres an image of LRPT decoding in action
Ships:
I built ez-SDR , an open source software defined radio application written entirely in Rust (one of the relatively few fully Rust-based SDR desktop applications). ez-SDR has three main tabs: Radio: A general-purpose radio receiver with AM, FM, SSB, CW, and other modulation modes, real-time spectrum and waterfall displays, and stereo FM with RDS support. ADS-B: An aircraft tracking system with an interactive map showing aircraft positions, altitudes, speeds, headings, and flight trails. It includes native decoders for both 1090 MHz ADS-B, used worldwide, and the freedom frequency (978 MHz) Meteor Decoding: A satellite image decoder capable of decoding imagery transmitted by the Russian Meteor-M2-3 and M2-4 weather satellites. It supports both live reception and decoding previously recorded radio signals (saved as CS8 or CF32 files), with image previews and PNG exports. (A moment of silence for the deprecated NOAA satellites) Another major feature is the architecture itself. I beheaded it. (The project.) The actual GUI is separated from the radio processing backend allowing it to run as a headless daemon. It exposes HTTP and WebSocket API’s, making it possible to interact with the backend without using the GUI. Getting everything working was… interesting. Building the decoding pipelines, integrating them into a responsive desktop interface (making it snappy and fast took several tens of hours), debugging signal processing issues, and literally running through cornfields with an antenna in my hand were some of the biggest challenges I ran into. The project went through several major redesigns, from the initial Rust implementation to separating the backend from the UI, briefly experimenting with Electron, and eventually returning to the native Rust interface. After over 160 hours of logged work , I’m excited to finally ship ez-SDR! The source code and Linux builds are available on GitHub, with a Windows build planned for the near future....
|
1793198865.8374343
|
1793285265.8374343
|
|
70177
|
BUNK by @SHREX | Stardance
|
SHREX
|
0
|
1.2
|
0
|
[]
|
[{"post_id": 80359, "ts": "202 [{"post_id": 80359, "ts": "2026-10-17T12:30:56Z", "hours": 1.1986, "text": "DEVLOG- 1: Start working on this project name “BUNK” a terminal based banking simulator, Making this just for fun and learning more things currently create a menu and start working on Create Account now."}]...
|
Title: BUNK by @SHREX | Stardance
Devlogs:
DEVLOG Title: BUNK by @SHREX | Stardance
Devlogs:
DEVLOG- 1: Start working on this project name “BUNK” a terminal based banking simulator, Making this just for fun and learning more things currently create a menu and start working on Create Account now....
|
1792961232.1017473
|
1793566032.1017473
|
|
69167
|
BLARE by @sohon | Stardance
|
sohon
|
0
|
1.59
|
0
|
[]
|
[{"post_id": 80358, "ts": "202 [{"post_id": 80358, "ts": "2026-10-17T12:22:34Z", "hours": 1.5886, "text": "Cat clock!!! i made the PCB for the clock. It was sooooo hard at first because its my first time doing this. But now i’ve gotten the hang of it. It also feels hard doing the CAD but hopefully everything will turn out good!!!"}]...
|
Title: BLARE by @sohon | Stardance
Devlogs:
Cat c Title: BLARE by @sohon | Stardance
Devlogs:
Cat clock!!! i made the PCB for the clock. It was sooooo hard at first because its my first time doing this. But now i’ve gotten the hang of it. It also feels hard doing the CAD but hopefully everything will turn out good!!!...
|
1793130670.702491
|
1793735470.702491
|
|
36348
|
Chess Bot by @GunRattler28 | Stardance
|
GunRattler28
|
1
|
143.67
|
2096
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T06:00:32Z", "hours": 127.0, "multiplier": 16.58, "payout": 2096, "blessing": "neutral", "text": "I’m finally shipping the chess bot! So excited to see what people think of it :) . Before you try my project I highly suggest reading the README (on my github page https://github.com/GunRattler28/Chess-Bot ). It has a full list of all controls which will help you understand how to play. Anways, can’t wait to see what you guys think of it!", "repo": "https://github.com/GunRattler28/Chess-Bot", "demo": "https://github.com/GunRattler28/Chess-Bot/releases"}]...
|
[{"post_id": 80354, "ts": "202 [{"post_id": 80354, "ts": "2026-10-17T11:49:41Z", "hours": 0.8044, "text": "So, I’ve actually decided to work on making my bot playable on a website since that was one of the main things people said they would have wanted last ship and stardance is ending soon. But thats not why I’m posting. I’m posting because I spent the last 40 minutes rooting out a bug that caused my premoves to not be played. My first step was playing the release version that can be downloaded to see if the bug was there as well. Luckily it wasn’t so I went to my current commit on my main branch and kepy undoing commits (and saving them with git stash ) until the bug was gone. I then found that the bug only became a thing after I merged my commenting branch. Because of this I did the same thing of undoing commits and saving them on the commenting branch til I found the commit that caused the bug. I then went through all the changes until I found the problem. Then I fixed the bug, merged the fix to main then merged main into my other branches so that they would have the bug fix as well. I’ve already done some research and have found that pygbag seems to fit my needs for turning my pygame program into a website pretty well. Due to this I will probably use pygbag to get a website version of my chess bot up and running! Attached is a screenshot of the commit that caused the bug. Before the commit is on the left and after the commit is on the right. Try to find what caused the bug! If you can’t check the comments of the post as I am gonna say what the problem was there. I also attached a photo of how my git tree looks now and… it looks sooo messy lol."}, {"post_id": 79553, "ts": "2026-10-14T16:01:16Z", "hours": 2.835, "text": "I started getting bored of just commenting my code so I created a new branch in which I am trying to make my bot be able to play other bots. After some research, I found that the engine needs to be able to take in moves in the form of algebraic notation (a type of shorthand notation for moves. for example: Be4). Because of this I read a Wikipedia page on algebraic notation and made a function to convert between it and the parameters my makeMove() takes, that being: startRow , startColumn , endRow and endColumn . I have done this by first checking if the move is a castle (notated by O-O or O-O-O) then forming the full start and end coordinates by hardcoding the column values and finding the row based off the colour that is castling. Then I find what piece is moving (shown by the first letter) and if there is a promotion (shown by ‘=’ sign). Algebraic also has characters to show captures (x), checkmates (#) and checks (+), however the engine does not need these and so they are removed in 3 separate while loops. At this point I am left with just the end coordinates and maybe a combination of start coordinates. To find the full start coordinates (as they are all I am missing) I loop through the specific bitboard for the piece and whenever I find a square where there is a piece, I check whether it matches with the start coordinates I have, and if it does whether it can legally reach the end square. If it can then that is my piece and I return its start coordinates and the end coordinates it moves to (which is given in the input string). Currently, this function lives inside a random file in my project folder but my next step will be to properly integrate it into the rest of the code."}, {"post_id": 78191, "ts": "2026-10-09T22:40:08Z", "hours": 7.2036, "text": "Yup! I did what I said I would last time, and finished commenting ALL of logic.py . I don’t think I can describe how long this took and how annoying it was to have to go through 750+ lines of code and add comments explaining things. And then I realise that there’s just random stuff that I don’t even need. Anyway, I’m pretty satisfied that I managed to comment so much. This is definitely the largest file and so I’m happy I’ve gotten it out of the way. There’s not really much I can’t say like explaining and stuff because all I’ve done for the last 5 hours is explain stuff. Anyway once I’ve commented everything, I’ll probably make another devlog and then go and work on something else."}, {"post_id": 72816, "ts": "2026-09-23T19:46:37Z", "hours": 5.8231, "text": "Thanks for all the positive feedback and constructive criticism on my ship! Working to improve where people said and I am starting by trying to add comments to my code to explain what is happening. So far I’ve fully commented 3 / 7 files and am around 30% through commenting logic.py which contains most of the complicated code. Its taking a while but I really hope that this will help people understand what I am doing and that they will like my project more because of this. Next I am going to continue adding comments to logic.py and will probably have to make a devlog after just that since the file is pretty big and has slightly complicated stuff in it. Once again thanks to all the people who rated the project or gave feedback!"}, {"post_id": 71494, "ts": "2026-09-20T22:33:25Z", "hours": 2.5339, "text": "I’ve made a few small changes that help slightly speed the bot up. I stopped checking whether I have surpassed the time limit every move I search and instead every 2048 moves I search. This is better as it removes thousands of unnecessary library calls which each add a small amount of time to how long each move takes to search. Since computers are very fast 2048 doesn’t actually take long at all but it massively reduces the amount of times the pygame library is called. I also changed my move ordering to sort manually instead of with in a lambda function since this lambda functions are more inefficient. I am next going to ship the project!!!"}, {"post_id": 69354, "ts": "2026-09-16T21:16:32Z", "hours": 3.3497, "text": "Premoves finished! My premoves are now fully implemented and the branch is merged. Making the move with middle click removes that specific premove. Middle clicking a random square clears all premoves and arrows. I also added principal variation search (pvs) which is just searching moves that aren’t the previous best move with a tight move score boundary then researching them normally if they are better than expected. I am probably going to ship soon and so will start polishing the project up now."}, {"post_id": 63850, "ts": "2026-09-07T20:35:48Z", "hours": 6.9336, "text": "Way better premoves. I’ve updated my premove system to store multiple premoves. I did this by storing eaach premove as a tuple of ( startRow , startColumn , endRow , endColumn ). These tuples contain all the data I need to know and can be easily appended into an array. To clear a premove you can either do the same move again which removes that specific premove or tap the middle mouse button anywhere which clears all premoves and arrows. I also render a translucent version of the piece that I’ve moved to its premove destination and remove the texture for where it was originally. This helps you keep track of what your premoves are actually doing. I do this by drawing the board normally then looping through each move in the premoves array and drawing that piece at its correct destination in reduced alpha. Next I am going to try to improve my bot further so that I can push to a depth of around 10 during midgame."}, {"post_id": 59871, "ts": "2026-09-01T21:01:21Z", "hours": 5.3678, "text": "I’ve added FEN strings! FEN strings (Forsyth-Edwards Notation) are a way to store positions of chess games. They are used by many chess engines to allow players to start from different positions or midway through games. Adding these wasn’t too difficult as the strings are formatted in a nice way. I simply split up the FEN string into its 6 parts and set my variables to the value in the FEN string. To test if it worked I inputted the FEN string 4kb1r/p2n1ppp/4q3/4p1B1/4P3/1Q6/PPP2PPP/2KR4 w k - 1 16 which gives the position of the famous opera game directly before the queen sacrifice. I then set the bot colour to white and was glad to see that it immediately found the best move (the queen sacrifice). I also added premoves so that I can choose my move in advance. I did this by just storing the move I make when it is the bot’s turn and playing it as soon as the bot plays. However I can only premove 1 move ahead. Next I will try to allow the user to premove multiple moves ahead."}, {"post_id": 52243, "ts": "2026-08-22T10:35:52Z", "hours": 2.8078, "text": "Quiescent search is amazing! After adding it my bot instantly became better. A quiescent search just means that when evaluating a board state to a certain depth even if you reach that depth you need to evaluate until a quiet move (a move that isn’t a capture). This means that even if the bot reaches the max depth in the middle of a piece trade it won’t just think the move is amazing since all it can see it won a piece. Since I added the bot, when tested against other bots it has made 0 blunders! In fact it beat Li, a bot rated 2000 on chess.com ! I’m really proud of this and think it is really cool to say that my bot has beaten a 2000 rated bot. However, it only beat the bot once and so it could just be lucky. I was going to test it in 2 more games against the same bot but found myself getting bored of manually inputting moves into chess.com and my bot to get them to play each other. Therefore, I’m planning on making my bot able to play other bots on its own. To do this I will need to download the other bots and make my bot give properly formatted inputs and outputs."}, {"post_id": 51300, "ts": "2026-08-20T21:17:05Z", "hours": 3.5539, "text": "Massive improvements in depth! I added 2 changes: null move pruning and late move reduction. Null move pruning is when the bot ‘passes its turn’, when searching for the best move. The bot then evaluates the board at a reduced depth after letting the opponent play twice in a row. If it is still in a winning position then that means it is winning by a lot. This means that it can prune this branch since the opponent wouldn’t let the game get to this state and would make a better decision earlier in the tree. Since the opponent wouldn’t let the game get to this it means that further analysis isn’t necessary. Late move reduction works on the basis that I have good move ordering, which I just worked on so I would hope I do. Late move reduction means that I search the later moves at a reduced depth since the best moves are at the start and so later moves are likely bad. If they turn out to be good after the reduced evaluation depth then they are researched at the full depth. This helps reduce the amount of moves which need to be evaluated by a lot. Together null move pruning and late move reduction have taken my depth from around 6 - 7 in midgame to around depth 7 - 10 in midgame! In endgame this is even more. When I tested it in endgame it got to a depth of 13! My next change is something called quiescent search which will boost the bot’s elo by massive amounts as it should mostly stop the bot from making blunders."}, {"post_id": 50191, "ts": "2026-08-19T10:05:52Z", "hours": 1.9161, "text": "Move ordering improved! I’ve merged my SCRUM-29/move-ordering branch with main and now have my improved move ordering in main. This has let me go from a depth of 5 to almost always a depth of at least 6. I then merged main into SCRUM-42/improve-maintainability so that I could add comments to the code I added from the move ordering branch. Next I am going to add some comments explaining what things do."}, {"post_id": 48364, "ts": "2026-08-16T17:56:17Z", "hours": 4.4589, "text": "I’ve massively improved my organisation! I’m now properly utilising branches which is allowing me to work on multiple changes at the same time. Currently I am working on 2 branches. One is about improving my maintainability by adding comments so that other people can understand what I am doing and why. This also has the added benefit of me being able to make some small improvements and bug fixes as I am reading through all of my code. The second branch is about move ordering which is super important as it makes my alpha beta pruning more effective. Working on these changes on branches is useful because it not only keeps it organised and easy to see what each commit is for but also means that if I decide I don’t want the change anymore it is easy to remove as it isn’t mixed in with all the other changes. To help with this I’ve also created a Jira board which helps me keep my ideas organised. My branches are called SCRUM-NUMBER/NAME . The scrum number is given to me by Jira. As well as improving my organisation I also further improved my zobrist hashing by replacing using modulo on the hash to get the index of the transposition with using an and gate between my hash and the table size - 1 (which is just all 1s and a single 0 on the left most digit since the table size is a power of 2). I also stored my castle rights as a single 4 digit binary digit where each digit represents whether a certain rook has castling rights or not. My logic with this was since the point of bitboards is 12 integer is better than 64 integers, a single 4 digit integer is better than a dictionary of 4 values but I am not actually sure if this is true or not. On the maintainability branch so far I have added comments to all of main.py . On the move ordering branch I have improved my sorting from just sorting by most valuable capture and least valuable attacker which is only good for captures to also scoring promotions very highly. I also instantly push the previous best move to the front of the queue and score moves which cutoff branches in alpha beta pruning highly as well. Next I will try to add comments to one of my other files and improve my move ordering by not using lambda functions."}, {"post_id": 47220, "ts": "2026-08-15T00:10:15Z", "hours": 4.5128, "text": "I’ve improved my endgame condition. When testing the bot I found that during endgame it would sometimes move its king to the corners of the board. I realised that this was because it saw a queen on the board and due to the poor endgame condition it thought this meant that it wasn’t endgame and instead used the early / mid game position bonus table which rewards staying safe in the corners. However in endgame moving the king to the corner isn’t good as it makes checkmates easier for the opponent and means that the king isn’t used to help checkmate the opponent, which is crucial in certain endgames such as a king and queen against just a king. In situations like this the king is necessary in achieving a checkmate. I changed it to being if there is less than (2 black queens and 2 white queens and less than 16 pieces) or if there is less than 5 pieces not including pawns. This is more accurate and ensures the king actually helps win and tries to stop a checkmate on itself. I also improved my zobrist hashing by fully incrementing it. Previously I incremented it for everything except castling and en passant however now these are implemented as well. I also noticed that the bot would walk its king towards the centre of the board during the opening which puzzled me until I read through my code and realised its because I set totalPieces to 0, asked if it was endgame, and afterwards set totalPieces to the true value. This was pretty difficult to find as I couldn’t see it by just seeing if it thought it was endgame at the end of a move. This makes sure I can actually get my hashes in O(1) time. Next I am going to try and make my arrows darker when over each other."}, {"post_id": 46626, "ts": "2026-08-14T00:35:40Z", "hours": 3.7133, "text": "I’ve added a better endgame condition! Now endgame is determined if (there are no queens and less than 16 pieces on the board) or if there is less than 8 pieces on the board. This is better because it means when pawns promote the king doesn’t run to the corners or use the other position bonus table. I also improved my bot’s 3 fold repetition check when searching for moves by using a dictionary with hashes as keys and number of times they have appeared as values. This lets me check if I have been in the position 3 times before in O(1) instead of O(n) . I also improved my makeMove() and previousMove() functions by checking if its the bot searching for moves and if it is then only storing the key information instead of everything. To help simplify previousMove() I instead created a seperate function called unmakeMove() (clearly related to makeMove() ) to undo moves when the bot is searching. I also changed the time the bot has to move from 3 seconds to 1.5 seconds so that it feels snappier. Probably cos I have 0 patience when I want to test if the bot works :). Next I am going to try and make my bot faster by improving the move ordering so that alpha beta pruning can be more effective."}, {"post_id": 46469, "ts": "2026-08-13T18:10:03Z", "hours": 6.67, "text": "Iterative deepening! The bot now searches depths in an ascending order instead of descending. This is only possible thanks to my transposition tables but means that I can give the bot a time limit. Once the time limit is reached it just return the best move of the highest depth its fully searched. This means that I can search to different depths in different positions whilst making sure I always play within the time limit. This is good as it means I can have a high depth during the opening and endgame whilst having a medium depth during mid game instead of having a medium depth everywhere to ensure moves at midgame don’t take too long. Midgame usually has a lower depth due to the high number or possible moves that can be played. I can also easily change the time limit with just a single variable. This means I can get my bot to play faster but also worse or take longer but play better. I added incremental evaluation. This means that for each move, instead of looping through all 12 bitboards and recalculating the evaluation score from scratch I instead update it from the current evaluation score. So when I move a piece I subtract its old it’s material value and then add the material value if it still exists. The same happens for the position bonuses. This takes my time complexity from O(n) to O(1) which is a massive upgrade. These changes lets my depth in early game and endgame almost always stay at 7 whilst during midgame hover between depth 6 and depth 7. Currently I determine if I am in endgame if both queens are gone and the total amount of pieces is below 16 however I feel that this isn’t a good measure and I should improve this. Next I will try to improve efficiency by improving my move ordering so that the alpha beta pruning is more efficient."}, {"post_id": 45212, "ts": "2026-08-11T15:18:18Z", "hours": 7.8964, "text": "Transposition tables! I’ve added zobrist hashing so that I can create a dictionary that contains all of the board states I have already evaluated. Since many different moves can lead to the same position it means that I can save computing power by just getting the score of that board state instead of having to re-evaluate the board again. Zobrist hashes are just a way to represent the board in hash. This is useful as I can use them as the keys in my dictionary and quickly see if the current board state has been evaluated yet. I also fixed a bug that let the bot play illegal moves as there wasn’t a legality check after the aspiration window failed. An abort flag was also added that is set to True when the user undos or redos a move. This lets me instantly stop that thread’s search for the best move ensuring it doesn’t use unneccessary computing power. Next I am going to try and implement iterative deepening so that I can force the bot to move within a certain amount of time. This would let me make the bot play different ‘time controls’ by altering how long it has to think about what move it should play. I tested it against some bots from chess.com and it managed to beat Wally (a 1800 bot) but lost to Li (a 2000 bot)"}, {"post_id": 43276, "ts": "2026-08-08T13:19:50Z", "hours": 9.4272, "text": "Improved efficiency! I’ve improved the efficiency of the bot by sorting the possible moves better. This is useful as it means when the alpha beta pruning goes over everything it searches the best trees first. This means that it can prune more branches. I also removed some random integer conversions on my bitboards as they did nothing, since the bitboards are already integers. I also removed a restriction that didn’t let the player do anything on the bot’s turn. Now the player can draw during the bot’s turn. I also went across all of my code and changed it to use (row, column) instead of (column, row). This helps keep things cleaner. I then also changed the bot calculations from from using the fullyLegalMoves() function to the movementLegalMoves function(). fullyLegalMoves() just makes sure that the king isnt in check after the move. If it is then it undoes the move. By insteading doing this in my bot.py it means I can just not undo the move and immediately remove that move. This means that I don’t need to undo the move more times than needed. This is very helful as undoing a move takes up computing power. I also completely replaced the piece names with integers as this would be slightly better and I could use bit operations with integers. As well as this I also added a timer that shows how long the bot took to make its move. By adding all of these changes the bot reduced its time on the first move as white from ~4 seconds (with depth 4) to 3 seconds (with depth 5). This shows that it is much more efficient as, time taken increases exponentially as depth increases. As well as this 3 seconds is the earliest the bot can move and so the true speed is likely much less."}, {"post_id": 40993, "ts": "2026-08-04T21:24:23Z", "hours": 1.4964, "text": "Better arrows! I don’t remember where but there is one place where drawing arrows in a knights movement creates an L shaped arrow instead of just a normal arrow. I love this and so implemented it into my program. I also added aspiration windows. Aspiration windows work on the basis that moves don’t usually swing the score by a lot. This means that when going down paths we can set the lower and upper bounds to previous score ± window size. This helps prune more paths. If we find that the score is actually higher than we expect we search again but without the aspiration window. This helps remove lots of the obviously bad paths which makes the program much more efficient. Next I am going to add zobrist hashing so that I can use transposition tables."}, {"post_id": 40821, "ts": "2026-08-04T16:15:52Z", "hours": 2.5794, "text": "Colour randomisation! The colour you play as is chosen at random at the start of the game. The board is also automatically rotated so that you are at the bottom and the bot is at the top. This also helps to show which colour you are playing as. I also show the last move by making the starting square #97C997 and the ending square #8DCE8D. I did this as when I asked I watched someone play it I noticed that they would often undo the move, to see what the bot just did, then redo the move again. This helps make everything feel more polished. I like the ending square colour ( #8DCE8D ) but I’m not sure if I like the starting square colour ( #97C997 ). These colours are very easy to change though and so I can quickly edit them to test out different colours. I also realised that when I eventually ship the project most people who download it won’t have the font I use ( dynapuff ) installed. I tested it out to see what it is like without it and found that it crashed. To fix this, I implemented a try - except statement which sees if dynapuff exists on the user’s computer. If it does then it uses dynapuff which is how it is supposed to be played but if they don’t have the font it uses arial instead. Due to the strange spacing of dynapuff I used double spaces between the words on the game over messages, but when using arial the double spaces look quite strange. I also tweaked some of the position bonus values to further encourage castling. Next I am going to try to add a file to reward moves which keep keep the king safe."}, {"post_id": 40296, "ts": "2026-08-03T18:45:17Z", "hours": 10.2542, "text": "I’ve added position bonuses! I created a new file which rewards moves which place certain pieces in certain areas. For example pawns are rewarded for controlling the centre and pushing to the 7th rank (so that they can promote). The bot now tries to control squares and this means it now has proper openings. I also completely updated the file structure to split the responsibilities more clearly. I also updated main.py and logic.py and made them classes. Making logic.py a class means that I can use it for both the player actions and bot actions without them interfering. This also makes my previousMove() much cleaner as it means when the bot uses it, it doesn’t interfere with when the player uses it. Due to the new file structure it means that I can easily change the weights of each of the different modules to change how the bot plays easily. Later I will add a slider or at least a setting that lets the player control these modules. As well as this I also changed it so that drawing the same arrow again removes the arrow. Next I am going to try add another module that rewards moves which keep the king safe."}, {"post_id": 37668, "ts": "2026-07-30T15:47:33Z", "hours": 7.4286, "text": "I’ve added a bot! The main point of this was to link the new file I made ( bot.py ) to main.py . The bot currently just chooses moves based off of what would result in the best material difference between white (player) and black (bot). It calculates these moves with a depth of 4. Since the main point wasn’t to actually make a bot in one go the bot isn’t very good currently. However I still added alpha beta pruning. Alpha beta pruning works by storing the best guaranteed outcome for you (alpha) and the best guaranteed outcome for the opponent (beta). Whenever it finds a path where the opponent can force a move that is worse than the alpha, it immediately stops going down that path. The same happens for beta. I also removed some duplicated code in main.py and fixed the undo and redo move logic as I forgot to check if it still worked properly after switching from tkinter to pygame. Currently you can only tap the buttons and but can’t hold to go back multiple moves. Undoing and redoing moves with a bot was a bit confusing for me and so I decided to make it so that when undoing and redoing there is 3 seconds before the bot moves. During these 3 seconds you can go forwards or backwards to reset the timer. I used threading so that the bot starts to calculate what move it would make at the same time as the 3 seconds are passing. This means that if you decide to stay on the turn you don’t need to wait as long. I also blurred the background of the the promotion GUI so that it is grabs the players attention. Next I am going to try and add a better bot by assigning each possible move a score that is based off of the squares it controls, offensive and defensive opportunities and potentials for forks (when 2 pieces are being attacked by 1 piece so only one piece can move out of danger)."}, {"post_id": 36896, "ts": "2026-07-29T08:41:59Z", "hours": 1.9431, "text": "I’ve split my file into 5 now. There is moveGeneration.py which calculates all the legal moves, moveExecution.py which actually moves the pieces, updateBoard.py which updates the board, gui.py which handles graphics (like arrows, promotion page and clicks) and main.py which says what functions should happen when an input is given and has a while loop for while the game is running (as is needed by pygame). Splitting the file makes it much easier to debug, keep track and add features instead of just having one ~1000 line file where everything is jumbled up. Next I am going to start work on the actual bot."}, {"post_id": 36538, "ts": "2026-07-28T18:38:30Z", "hours": 1.1517, "text": "Insufficient material and 50 move rule! These were the last things I needed to add before step 1 was complete. Now the next step is to actually add the bot! I’ve got everything I need down for a game of chess before 2 players. I added insufficient material by creating a new insufficientMaterial() . Inside the function are some if statements that determine whether winning is still possible (not assisted by opponent going into the corner). I also added the 50 move rule by checking moves since last pawn advancement or capture and if it exceeds 50 then end the game. I also made it so that once the game ends you can go undo moves and continue playing instead of just having the game end. Next I am going to try to clean up my code, split the code into multiple files and optimise it."}, {"post_id": 36025, "ts": "2026-07-27T20:54:24Z", "hours": 1.3014, "text": "En passant has been added. I find if it is legal by making sure the pawn capturing is on its fifth rank and the pawn being captured is moved 2 forward. Thats all I need for en passant (also only available for the first go it is there). I also made my program more efficient by ensuring I only rely on an array for finding what piece is on an index and drawing. Everything else uses bitboards which helps me fully utilise bitboards. I now have 2 things left: 50 move rule and Insufficient Material. Both of these end in a draw and are the last things I need for my program to have all the rules of chess! Next I will add the 50 move rule"}, {"post_id": 34600, "ts": "2026-07-25T13:43:51Z", "hours": 2.65, "text": "I was so unimpressed by how my old arrows looked I just completely switched libraries! I now use pygame instead of tkinter. It offers much more graphical customisability and now I can draw arrows (and other shapes) with true transparency instead of just stipples. One of the main downsides of pygame is that it constantly redraws each frame. This takes computing power and drains battery. To stop this I created a redraw boolean which tells my script when to redraw. This means instead of redrawing every single frame I redraw whenever something actually changes. Due to pygame I also customised the arrows so that the tails are rounded. This means that multiple arrows from the same point looks much cleaner. I also get true translucency instead of stipples and I added an icon!"}, {"post_id": 34132, "ts": "2026-07-24T17:06:08Z", "hours": 4.1839, "text": "Need to get your strategies into something you can see? Lines let you do just that. Right clicking and dragging draws a line that follows your cursor around. Right clicking again places the line. The lines are automatically centred so that they snap to the centre of the squares. If you line starts and ends at the same place it creates a circle instead. I also spent lots of time making sure my bitboards are used properly as when I created the array last time I used it for more than I intended and lost most of the arrays of bitboards. I also noticed that the promotion GUI wasn’t properly centred and so fixed that. I don’t really like the lines as they use stipples instead of a solid colour and overall don’t look nice but tkinter doesn’t offer transparency apart from stipples and doesn’t allow lots of customisation of the arrows. Next I will likely try to add en passant."}, {"post_id": 33646, "ts": "2026-07-23T18:39:22Z", "hours": 4.0794, "text": "Finally, promotions! This was the last major part of chess that I didn’t have. I added it by finding the row of the piece when I move something. I hardcoded it so that it knows when the pawn is at the last row. When at the last row, it runs a choosePromotion() function. That function then creates a frame inside of my window. I then loop for each of the choices of the pieces I can choose. For each of these pieces I create a button with the piece (in the correct colour) in the centre. The frame waits until I pick a choice before adding a 1 on that piece’s bitboard at the correct location and removes the 1 on the pawn bitboard. Thats all I need to do to register a promotion! The rest of the time I spent optimising my code and realising that I didn’t have to use just a bitboard or an array, I could use both. Knowing that, I removed my getPiece() function and instead used an array to find the piece at a row and column. This is more efficient as arrays have a lookup time of O(1) whereas the getPiece() function has a lookup time of O(n) in the worst case. This is because my getPiece() function worked by cycling through each bitboard to find what piece was at a certain coordinate. This meant that I could also remove my totalPieces bitboard since this was only used in the getPiece() function to avoid cycling through all 12 bitboards if there was nothing there. Overall I’m really happy with how everything is going as I have all I really need for a proper game of 2 player chess. Next I am going to try and add the small things I am still missing such as En passant and the 50 move rule."}, {"post_id": 33388, "ts": "2026-07-23T09:22:55Z", "hours": 1.5583, "text": "Stalemates and three-fold repetition have now been added. Stalemates are calculated if legalMoves(turnColour) returns none but the king is not in check. I find if there is three-fold repetition by storing a hash of the board every move. This is stored in a dictionary as dictionaries are much better than arrays for lookups. After each move I see if that board state is in the dictionary. If it is I increase its value by 1. If not I set its value to 1. I then see how many times its reached that board state and if it is 3 times I end the game and show bright red text saying ‘Three-fold Repetition! Nobody wins!’. The hash includes piece positions, turn colour and castling rights as these are 3 of the 4 criteria that FIDE use. The fourth is en passant however that has not been added yet. Next I will add pawn promotions as this is the last major thing I don’t have."}, {"post_id": 33184, "ts": "2026-07-22T21:11:59Z", "hours": 2.3886, "text": "Castling! I’ve actually added castling this time. The castling also works with undo / redo move so that it undoes and redoes the move correctly. I’m starting to think my python file is getting a bit big now so I also created a few helper functions to help reduce code duplication. Its 572 lines currently. Luckily I am quite close to finishing the actual board and getting everything ready for a 2 person game of chess. This was my first goal so that the bot just becomes one of the players. Once I’m ready for a 2 person game of chess I’ll try to create another python file for the bot. This will help me keep track of what is doing what. Next I am going to add pawn promotion as that’s one of the biggest things that I don’t have yet. It is essential in late game and so is one of my priorities."}, {"post_id": 32902, "ts": "2026-07-22T11:18:43Z", "hours": 2.9108, "text": "Ever misclick and sell the game? Well not anymore! You can now undo moves by tapping the left arrow on the keybord and also redo those same moves if you change your mind by tapping the right arrow ! I did this by adding a saveMove() function which I run after every move I make. This saves the details of the last move to the moveHistory array: Piece Moved Start Position End Position Piece Captured (Just “” if None) Turn Colour Moves so far In my undoMove() function I remove the last move done and add it to an array called redoHistory . I then set all the details to the last entry in moveHistory . I do the same in my redoMove() function excpet I use the last entry in redoHistory instead. I’ve allowed undos after checkmate so that you can look for what went wrong and try other moves that might’ve stopped it. I also added sound! You’ll be able to see / hear all of this if the video uploads instead of just a screenshot. Next I am going to add castling (for real this time)."}, {"post_id": 32585, "ts": "2026-07-21T21:11:56Z", "hours": 2.6961, "text": "The game can now end! I have added a check to see if it is checkmate. When it is checkmate bright red text appears on the screen that says “Checkmate! WINNER wins!” (it says the colour which won not WINNER). I have also changed it so that when a player is in check they are forced to make a move that stops them from being in check. The only circles that come up are ones which would block the check to make it a bit easier for players. I’ve also made it so that my new function blockCheck() takes the calculations made by calculateLegalMoves() and uses it to display and allow only legal moves. As well as this anywhere that used to call calculateLegalMoves() now calls blockCheck instead. By making sure each function does 1 task it makes debugging easier ( not that anything would ever go wrong… ). Next I am going to try and add castling as this is a crucial mechanic that is used often."}, {"post_id": 32399, "ts": "2026-07-21T15:39:28Z", "hours": 2.8764, "text": "I’ve added better red and green overlays that are translucent so that you can see through them an easily know what piece you are taking. But most importantly, I’ve added check detection. I created a few new functions to do this. The first function I created was the isSquareAttacked(row, column, atkColour) function. It works by cycling through the bitboards and checking if they are atkColour or not. If they are find the type of piece and those pieces could attack the king. I think this will be helpful when I start to actually make the bot. I also created a simple findKing(colour) function to see where the king is so that I can parse that information into the isSquareAttacked() function. I then get a boolean. If it is true (the king is in check) I add the red overlay to the king so that the player easily knows they are in check but I don’t actually force them to block the attack yet. I think the overlay should be different but am not sure what to make it (gimme some ideas). I also created a slidingMoves() function as in my calculateLegalMoves() function I had ~40 lines of almost fully repeated code. Next I am going to force the player to block the check and end the game if it is checkmate."}, {"post_id": 32072, "ts": "2026-07-20T23:45:34Z", "hours": 0.9622, "text": "Finally took the time to change the piece textures so that black has an actual piece colour and you don’t get confused about whose pieces are whose"}, {"post_id": 31762, "ts": "2026-07-20T12:27:13Z", "hours": 3.4017, "text": "I’ve added dots to show where you can move when you click on a piece. If the position you want to move the piece to the dot is green but if it has an enemy piece the dot is red. Sadly, tkinter (the library I’m using) doesn’t support transparency. Because of this the dot takes up some of piece you want to capture. I can fix this by instead of drawing a circle drawing a translucent image… but tbh i rly cba. I will eventually do it to make it look better and actually add black pieces but i want to focus on getting things to actually work for now. The reason why this took me so long to implement is because as I was making the function to draw the dots I found that it was doing something very similar to my validMove() function but it was MUCH more efficient. In the old function I went through every square on the board and looked if the piece selected could get there. This is very inefficient and would build up quickly when I call the function 1000s of times per second (when I eventually add the bot). In my new function I look at the selected piece and have an array of each of the places it can move relative to its position. I then add the dots to those places if they are able to move there. This ended up with me just completely removing the old function and knowing its a valid move if there is a dot there. Next I am going to add something to see if the king is in check and maybe add some text when it is checkmate."}, {"post_id": 31082, "ts": "2026-07-19T06:07:07Z", "hours": 2.55, "text": "I’ve implemented bitboards instead of an array to store my board. At first I didn’t understand why bitboards were so good but after an amazing youtube video ( here ) I understand them and love them. I use them by having a 64 bit long integer (wow thats long) that represents the 8 by 8 board. Each bit can either be a 0 or 1 and represent whether there is a piece there or not. But you might think then how do you know what type of piece each 1 is? Thats why I use 12 bitboards (technically theres 1 more I added for extra efficiency but I don’t need that). Each of these 12 bitboards represents a type of piece in a specific colour (for example: white pawns and black pawns have 2 different bitboards). Then when I want to move pieces I create a position integer which is just 63 zeroes and a single 1 where the piece should be. I then invert this and use an AND statement so that all of the results for the AND are true where there are pieces apart from where I set the 1 at the start (though it is now a 0)."}, {"post_id": 30753, "ts": "2026-07-18T16:10:19Z", "hours": 3.6586, "text": "Added move legality. You can now mostly only make legal moves however I have not added something to checks if the king is in check. I made sure the move was legal by taking the startRow startColumn and endRow endColumn. I then look at what piece is being moved and ensure it is ok. If it isn’t nothing happens when you try to click and you have to make another move. I made sure that the correct colour moves as well. I also haven’t added pawn promotions, castling or en passant (tbh im not 100% certain on the rules of en passant). I couldn’t add castling as I don’t have a move history so would have no way of knowing if the king or rook have moved before. I’m now working on converting my current way of storing the board (a 2D array) into bitboards. After some research I found that bitboards are more than 5 times more efficient than arrays!"}, {"post_id": 30312, "ts": "2026-07-17T19:23:30Z", "hours": 2.0086, "text": "I can now move pieces! But there is no legality check yet. I also added a green outline if you select a piece. It works by listening for a click. Then when it gets a click it takes mouseX and mouseY and divides by positionSize to find which row and column it is on. It then checks against the board to see what is on that position. If it is a piece then it creates an outline and sets that as the active square. If it is empty AND active square has a value, it moves the piece."}, {"post_id": 30018, "ts": "2026-07-17T08:18:30Z", "hours": 1.4367, "text": "I’ve finally decided to actually making a chess bot and stick to it! So far I’ve set up the chess board for just visuals. Everything right now is purely visual. I am using python and the tkinter library."}]...
|
Title: Chess Bot by @GunRattler28 | Stardance
Dev Title: Chess Bot by @GunRattler28 | Stardance
Devlogs:
I’ve finally decided to actually making a chess bot and stick to it! So far I’ve set up the chess board for just visuals. Everything right now is purely visual. I am using python and the tkinter library.
I can now move pieces! But there is no legality check yet. I also added a green outline if you select a piece. It works by listening for a click. Then when it gets a click it takes mouseX and mouseY and divides by positionSize to find which row and column it is on. It then checks against the board to see what is on that position. If it is a piece then it creates an outline and sets that as the active square. If it is empty AND active square has a value, it moves the piece.
Added move legality. You can now mostly only make legal moves however I have not added something to checks if the king is in check. I made sure the move was legal by taking the startRow startColumn and endRow endColumn. I then look at what piece is being moved and ensure it is ok. If it isn’t nothing happens when you try to click and you have to make another move. I made sure that the correct colour moves as well. I also haven’t added pawn promotions, castling or en passant (tbh im not 100% certain on the rules of en passant). I couldn’t add castling as I don’t have a move history so would have no way of knowing if the king or rook have moved before. I’m now working on converting my current way of storing the board (a 2D array) into bitboards. After some research I found that bitboards are more than 5 times more efficient than arrays!
I’ve implemented bitboards instead of an array to store my board. At first I didn’t understand why bitboards were so good but after an amazing youtube video ( here ) I understand them and love them. I use them by having a 64 bit long integer (wow thats long) that represents the 8 by 8 board. Each bit can either be a 0 or 1 and represent whether there is a piece there or not. But you might think then how do you know what type of piece each 1 is? Thats why I use 12 bitboards (technically theres 1 more I added for extra efficiency but I don’t need that). Each of these 12 bitboards represents a type of piece in a specific colour (for example: white pawns and black pawns have 2 different bitboards). Then when I want to move pieces I create a position integer which is just 63 zeroes and a single 1 where the piece should be. I then invert this and use an AND statement so that all of the results for the AND are true where there are pieces apart from where I set the 1 at the start (though it is now a 0).
I’ve added dots to show where you can move when you click on a piece. If the position you want to move the piece to the dot is green but if it has an enemy piece the dot is red. Sadly, tkinter (the library I’m using) doesn’t support transparency. Because of this the dot takes up some of piece you want to capture. I can fix this by instead of drawing a circle drawing a translucent image… but tbh i rly cba. I will eventually do it to make it look better and actually add black pieces but i want to focus on getting things to actually work for now. The reason why this took me so long to implement is because as I was making the function to draw the dots I found that it was doing something very similar to my validMove() function but it was MUCH more efficient. In the old function I went through every square on the board and looked if the piece selected could get there. This is very inefficient and would build up quickly when I call the function 1000s of times per second (when I eventually add the bot). In my new function I look at the selected piece and have an array of each of the places it can move relative to its position. I then add the dots to those places if they are able to move there. This ended up with me just completely removing the old function and knowing its a valid move if there is a dot there. Next I am going to add something to see if the king is in check and maybe add some text when it is checkmate.
Finally took the time to change the piece textures so that black has an actual piece colour and you don’t get confused about whose pieces are whose
I’ve added better red and green overlays that are translucent so that you can see through them an easily know what piece you are taking. But most importantly, I’ve added check detection. I created a few new functions to do this. The first function I created was the isSquareAttacked(row, column, atkColour) function. It works by cycling through the bitboards and checking if they are atkColour or not. If they are find the type of piece and those pieces could attack the king. I think this will be helpful when I start to actually make the bot. I also created a simple findKing(colour) function to see where the king is so that I can parse that information into the isSquareAttacked() function. I then get a boolean. If it is true (the king is in check) I add the red overlay to the king so that the player easily knows they are in check but I don’t actually force them to block the attack yet. I think the overlay should be different but am not sure what to make it (gimme some ideas). I also created a slidingMoves() function as in my calculateLegalMoves() function I had ~40 lines of almost fully repeated code. Next I am going to force the player to block the check and end the game if it is checkmate.
The game can now end! I have added a check to see if it is checkmate. When it is checkmate bright red text appears on the screen that says “Checkmate! WINNER wins!” (it says the colour which won not WINNER). I have also changed it so that when a player is in check they are forced to make a move that stops them from being in check. The only circles that come up are ones which would block the check to make it a bit easier for players. I’ve also made it so that my new function blockCheck() takes the calculations made by calculateLegalMoves() and uses it to display and allow only legal moves. As well as this anywhere that used to call calculateLegalMoves() now calls blockCheck instead. By making sure each function does 1 task it makes debugging easier ( not that anything would ever go wrong… ). Next I am going to try and add castling as this is a crucial mechanic that is used often.
Ever misclick and sell the game? Well not anymore! You can now undo moves by tapping the left arrow on the keybord and also redo those same moves if you change your mind by tapping the right arrow ! I did this by adding a saveMove() function which I run after every move I make. This saves the details of the last move to the moveHistory array: Piece Moved Start Position End Position Piece Captured (Just “” if None) Turn Colour Moves so far In my undoMove() function I remove the last move done and add it to an array called redoHistory . I then set all the details to the last entry in moveHistory . I do the same in my redoMove() function excpet I use the last entry in redoHistory instead. I’ve allowed undos after checkmate so that you can look for what went wrong and try other moves that might’ve stopped it. I also added sound! You’ll be able to see / hear all of this if the video uploads instead of just a screenshot. Next I am going to add castling (for real this time).
Castling! I’ve actually added castling this time. The castling also works with undo / redo move so that it undoes and redoes the move correctly. I’m starting to think my python file is getting a bit big now so I also created a few helper functions to help reduce code duplication. Its 572 lines currently. Luckily I am quite close to finishing the actual board and getting everything ready for a 2 person game of chess. This was my first goal so that the bot just becomes one of the players. Once I’m ready for a 2 person game of chess I’ll try to create another python file for the bot. This will help me keep track of what is doing what. Next I am going to add pawn promotion as that’s one of the biggest things that I don’t have yet. It is essential in late game and so is one of my priorities.
Stalemates and three-fold repetition have now been added. Stalemates are calculated if legalMoves(turnColour) returns none but the king is not in check. I find if there is three-fold repetition by storing a hash of the board every move. This is stored in a dictionary as dictionaries are much better than arrays for lookups. After each move I see if that board state is in the dictionary. If it is I increase its value by 1. If not I set its value to 1. I then see how many times its reached that board state and if it is 3 times I end the game and show bright red text saying ‘Three-fold Repetition! Nobody wins!’. The hash includes piece positions, turn colour and castling rights as these are 3 of the 4 criteria that FIDE use. The fourth is en passant however that has not been added yet. Next I will add pawn promotions as this is the last major thing I don’t have.
Finally, promotions! This was the last major part of chess that I didn’t have. I added it by finding the row of the piece when I move something. I hardcoded it so that it knows when the pawn is at the last row. When at the last row, it runs a choosePromotion() function. That function then creates a frame inside of my window. I then loop for each of the choices of the pieces I can choose. For each of these pieces I create a button with the piece (in the correct colour) in the centre. The frame waits until I pick a choice before adding a 1 on that piece’s bitboard at the correct location and removes the 1 on the pawn bitboard. Thats all I need to do to register a promotion! The rest of the time I spent optimising my code and realising that I didn’t have to use just a bitboard or an array, I could use both. Knowing that, I removed my getPiece() function and instead used an array to find the piece at a row and column. This is more efficient as arrays have a lookup time of O(1) whereas the getPiece() function has a lookup time of O(n) in the worst case. This is because my getPiece() function worked by cycling through each bitboard to find what piece was at a certain coordinate. This meant that I could also remove my totalPieces bitboard since this was only used in the getPiece() function to avoid cycling through all 12 bitboards if there was nothing there. Overall I’m really happy with how everything is going as I have all I really need for a proper game of 2 player chess. Next I am going to try and add the small things I am still missing such as En passant and the 50 move rule.
Need to get your strategies into something you can see? Lines let you do just that. Right clicking and dragging draws a line that follows your cursor around. Right clicking again places the line. The lines are automatically centred so that they snap to the centre of the squares. If you line starts and ends at the same place it creates a circle instead. I also spent lots of time making sure my bitboards are used properly as when I created the array last time I used it for more than I intended and lost most of the arrays of bitboards. I also noticed that the promotion GUI wasn’t properly centred and so fixed that. I don’t really like the lines as they use stipples instead of a solid colour and overall don’t look nice but tkinter doesn’t offer transparency apart from stipples and doesn’t allow lots of customisation of the arrows. Next I will likely try to add en passant.
I was so unimpressed by how my old arrows looked I just completely switched libraries! I now use pygame instead of tkinter. It offers much more graphical customisability and now I can draw arrows (and other shapes) with true transparency instead of just stipples. One of the main downsides of pygame is that it constantly redraws each frame. This takes computing power and drains battery. To stop this I created a redraw boolean which tells my script when to redraw. This means instead of redrawing every single frame I redraw whenever something actually changes. Due to pygame I also customised the arrows so that the tails are rounded. This means that multiple arrows from the same point looks much cleaner. I also get true translucency instead of stipples and I added an icon!
En passant has been added. I find if it is legal by making sure the pawn capturing is on its fifth rank and the pawn being captured is moved 2 forward. Thats all I need for en passant (also only available for the first go it is there). I also made my program more efficient by ensuring I only rely on an array for finding what piece is on an index and drawing. Everything else uses bitboards which helps me fully utilise bitboards. I now have 2 things left: 50 move rule and Insufficient Material. Both of these end in a draw and are the last things I need for my program to have all the rules of chess! Next I will add the 50 move rule
Insufficient material and 50 move rule! These were the last things I needed to add before step 1 was complete. Now the next step is to actually add the bot! I’ve got everything I need down for a game of chess before 2 players. I added insufficient material by creating a new insufficientMaterial() . Inside the function are some if statements that determine whether winning is still possible (not assisted by opponent going into the corner). I also added the 50 move rule by checking moves since last pawn advancement or capture and if it exceeds 50 then end the game. I also made it so that once the game ends you can go undo moves and continue playing instead of just having the game end. Next I am going to try to clean up my code, split the code into multiple files and optimise it.
I’ve split my file into 5 now. There is moveGeneration.py which calculates all the legal moves, moveExecution.py which actually moves the pieces, updateBoard.py which updates the board, gui.py which handles graphics (like arrows, promotion page and clicks) and main.py which says what functions should happen when an input is given and has a while loop for while the game is running (as is needed by pygame). Splitting the file makes it much easier to debug, keep track and add features instead of just having one ~1000 line file where everything is jumbled up. Next I am going to start work on the actual bot.
I’ve added a bot! The main point of this was to link the new file I made ( bot.py ) to main.py . The bot currently just chooses moves based off of what would result in the best material difference between white (player) and black (bot). It calculates these moves with a depth of 4. Since the main point wasn’t to actually make a bot in one go the bot isn’t very good currently. However I still added alpha beta pruning. Alpha beta pruning works by storing the best guaranteed outcome for you (alpha) and the best guaranteed outcome for the opponent (beta). Whenever it finds a path where the opponent can force a move that is worse than the alpha, it immediately stops going down that path. The same happens for beta. I also removed some duplicated code in main.py and fixed the undo and redo move logic as I forgot to check if it still worked properly after switching from tkinter to pygame. Currently you can only tap the buttons and but can’t hold to go back multiple moves. Undoing and redoing moves with a bot was a bit confusing for me and so I decided to make it so that when undoing and redoing there is 3 seconds before the bot moves. During these 3 seconds you can go forwards or backwards to reset the timer. I used threading so that the bot starts to calculate what move it would make at the same time as the 3 seconds are passing. This means that if you decide to stay on the turn you don’t need to wait as long. I also blurred the background of the the promotion GUI so that it is grabs the players attention. Next I am going to try and add a better bot by assigning each possible move a score that is based off of the squares it controls, offensive and defensive opportunities and potentials for forks (when 2 pieces are being attacked by 1 piece so only one piece can move out of danger).
I’ve added position bonuses! I created a new file which rewards moves which place certain pieces in certain areas. For example pawns are rewarded for controlling the centre and pushing to the 7th rank (so that they can promote). The bot now tries to control squares and this means it now has proper openings. I also completely updated the file structure to split the responsibilities more clearly. I also updated main.py and logic.py and made them classes. Making logic.py a class means that I can use it for both the player actions and bot actions without them interfering. This also makes my previousMove() much cleaner as it means when the bot uses it, it doesn’t interfere with when the player uses it. Due to the new file structure it means that I can easily change the weights of each of the different modules to change how the bot plays easily. Later I will add a slider or at least a setting that lets the player control these modules. As well as this I also changed it so that drawing the same arrow again removes the arrow. Next I am going to try add another module that rewards moves which keep the king safe.
Colour randomisation! The colour you play as is chosen at random at the start of the game. The board is also automatically rotated so that you are at the bottom and the bot is at the top. This also helps to show which colour you are playing as. I also show the last move by making the starting square #97C997 and the ending square #8DCE8D. I did this as when I asked I watched someone play it I noticed that they would often undo the move, to see what the bot just did, then redo the move again. This helps make everything feel more polished. I like the ending square colour ( #8DCE8D ) but I’m not sure if I like the starting square colour ( #97C997 ). These colours are very easy to change though and so I can quickly edit them to test out different colours. I also realised that when I eventually ship the project most people who download it won’t have the font I use ( dynapuff ) installed. I tested it out to see what it is like without it and found that it crashed. To fix this, I implemented a try - except statement which sees if dynapuff exists on the user’s computer. If it does then it uses dynapuff which is how it is supposed to be played but if they don’t have the font it uses arial instead. Due to the strange spacing of dynapuff I used double spaces between the words on the game over messages, but when using arial the double spaces look quite strange. I also tweaked some of the position bonus values to further encourage castling. Next I am going to try to add a file to reward moves which keep keep the king safe.
Better arrows! I don’t remember where but there is one place where drawing arrows in a knights movement creates an L shaped arrow instead of just a normal arrow. I love this and so implemented it into my program. I also added aspiration windows. Aspiration windows work on the basis that moves don’t usually swing the score by a lot. This means that when going down paths we can set the lower and upper bounds to previous score ± window size. This helps prune more paths. If we find that the score is actually higher than we expect we search again but without the aspiration window. This helps remove lots of the obviously bad paths which makes the program much more efficient. Next I am going to add zobrist hashing so that I can use transposition tables.
Improved efficiency! I’ve improved the efficiency of the bot by sorting the possible moves better. This is useful as it means when the alpha beta pruning goes over everything it searches the best trees first. This means that it can prune more branches. I also removed some random integer conversions on my bitboards as they did nothing, since the bitboards are already integers. I also removed a restriction that didn’t let the player do anything on the bot’s turn. Now the player can draw during the bot’s turn. I also went across all of my code and changed it to use (row, column) instead of (column, row). This helps keep things cleaner. I then also changed the bot calculations from from using the fullyLegalMoves() function to the movementLegalMoves function(). fullyLegalMoves() just makes sure that the king isnt in check after the move. If it is then it undoes the move. By insteading doing this in my bot.py it means I can just not undo the move and immediately remove that move. This means that I don’t need to undo the move more times than needed. This is very helful as undoing a move takes up computing power. I also completely replaced the piece names with integers as this would be slightly better and I could use bit operations with integers. As well as this I also added a timer that shows how long the bot took to make its move. By adding all of these changes the bot reduced its time on the first move as white from ~4 seconds (with depth 4) to 3 seconds (with depth 5). This shows that it is much more efficient as, time taken increases exponentially as depth increases. As well as this 3 seconds is the earliest the bot can move and so the true speed is likely much less.
Transposition tables! I’ve added zobrist hashing so that I can create a dictionary that contains all of the board states I have already evaluated. Since many different moves can lead to the same position it means that I can save computing power by just getting the score of that board state instead of having to re-evaluate the board again. Zobrist hashes are just a way to represent the board in hash. This is useful as I can use them as the keys in my dictionary and quickly see if the current board state has been evaluated yet. I also fixed a bug that let the bot play illegal moves as there wasn’t a legality check after the aspiration window failed. An abort flag was also added that is set to True when the user undos or redos a move. This lets me instantly stop that thread’s search for the best move ensuring it doesn’t use unneccessary computing power. Next I am going to try and implement iterative deepening so that I can force the bot to move within a certain amount of time. This would let me make the bot play different ‘time controls’ by altering how long it has to think about what move it should play. I tested it against some bots from chess.com and it managed to beat Wally (a 1800 bot) but lost to Li (a 2000 bot)
Iterative deepening! The bot now searches depths in an ascending order instead of descending. This is only possible thanks to my transposition tables but means that I can give the bot a time limit. Once the time limit is reached it just return the best move of the highest depth its fully searched. This means that I can search to different depths in different positions whilst making sure I always play within the time limit. This is good as it means I can have a high depth during the opening and endgame whilst having a medium depth during mid game instead of having a medium depth everywhere to ensure moves at midgame don’t take too long. Midgame usually has a lower depth due to the high number or possible moves that can be played. I can also easily change the time limit with just a single variable. This means I can get my bot to play faster but also worse or take longer but play better. I added incremental evaluation. This means that for each move, instead of looping through all 12 bitboards and recalculating the evaluation score from scratch I instead update it from the current evaluation score. So when I move a piece I subtract its old it’s material value and then add the material value if it still exists. The same happens for the position bonuses. This takes my time complexity from O(n) to O(1) which is a massive upgrade. These changes lets my depth in early game and endgame almost always stay at 7 whilst during midgame hover between depth 6 and depth 7. Currently I determine if I am in endgame if both queens are gone and the total amount of pieces is below 16 however I feel that this isn’t a good measure and I should improve this. Next I will try to improve efficiency by improving my move ordering so that the alpha beta pruning is more efficient.
I’ve added a better endgame condition! Now endgame is determined if (there are no queens and less than 16 pieces on the board) or if there is less than 8 pieces on the board. This is better because it means when pawns promote the king doesn’t run to the corners or use the other position bonus table. I also improved my bot’s 3 fold repetition check when searching for moves by using a dictionary with hashes as keys and number of times they have appeared as values. This lets me check if I have been in the position 3 times before in O(1) instead of O(n) . I also improved my makeMove() and previousMove() functions by checking if its the bot searching for moves and if it is then only storing the key information instead of everything. To help simplify previousMove() I instead created a seperate function called unmakeMove() (clearly related to makeMove() ) to undo moves when the bot is searching. I also changed the time the bot has to move from 3 seconds to 1.5 seconds so that it feels snappier. Probably cos I have 0 patience when I want to test if the bot works :). Next I am going to try and make my bot faster by improving the move ordering so that alpha beta pruning can be more effective.
I’ve improved my endgame condition. When testing the bot I found that during endgame it would sometimes move its king to the corners of the board. I realised that this was because it saw a queen on the board and due to the poor endgame condition it thought this meant that it wasn’t endgame and instead used the early / mid game position bonus table which rewards staying safe in the corners. However in endgame moving the king to the corner isn’t good as it makes checkmates easier for the opponent and means that the king isn’t used to help checkmate the opponent, which is crucial in certain endgames such as a king and queen against just a king. In situations like this the king is necessary in achieving a checkmate. I changed it to being if there is less than (2 black queens and 2 white queens and less than 16 pieces) or if there is less than 5 pieces not including pawns. This is more accurate and ensures the king actually helps win and tries to stop a checkmate on itself. I also improved my zobrist hashing by fully incrementing it. Previously I incremented it for everything except castling and en passant however now these are implemented as well. I also noticed that the bot would walk its king towards the centre of the board during the opening which puzzled me until I read through my code and realised its because I set totalPieces to 0, asked if it was endgame, and afterwards set totalPieces to the true value. This was pretty difficult to find as I couldn’t see it by just seeing if it thought it was endgame at the end of a move. This makes sure I can actually get my hashes in O(1) time. Next I am going to try and make my arrows darker when over each other.
I’ve massively improved my organisation! I’m now properly utilising branches which is allowing me to work on multiple changes at the same time. Currently I am working on 2 branches. One is about improving my maintainability by adding comments so that other people can understand what I am doing and why. This also has the added benefit of me being able to make some small improvements and bug fixes as I am reading through all of my code. The second branch is about move ordering which is super important as it makes my alpha beta pruning more effective. Working on these changes on branches is useful because it not only keeps it organised and easy to see what each commit is for but also means that if I decide I don’t want the change anymore it is easy to remove as it isn’t mixed in with all the other changes. To help with this I’ve also created a Jira board which helps me keep my ideas organised. My branches are called SCRUM-NUMBER/NAME . The scrum number is given to me by Jira. As well as improving my organisation I also further improved my zobrist hashing by replacing using modulo on the hash to get the index of the transposition with using an and gate between my hash and the table size - 1 (which is just all 1s and a single 0 on the left most digit since the table size is a power of 2). I also stored my castle rights as a single 4 digit binary digit where each digit represents whether a certain rook has castling rights or not. My logic with this was since the point of bitboards is 12 integer is better than 64 integers, a single 4 digit integer is better than a dictionary of 4 values but I am not actually sure if this is true or not. On the maintainability branch so far I have added comments to all of main.py . On the move ordering branch I have improved my sorting from just sorting by most valuable capture and least valuable attacker which is only good for captures to also scoring promotions very highly. I also instantly push the previous best move to the front of the queue and score moves which cutoff branches in alpha beta pruning highly as well. Next I will try to add comments to one of my other files and improve my move ordering by not using lambda functions.
Move ordering improved! I’ve merged my SCRUM-29/move-ordering branch with main and now have my improved move ordering in main. This has let me go from a depth of 5 to almost always a depth of at least 6. I then merged main into SCRUM-42/improve-maintainability so that I could add comments to the code I added from the move ordering branch. Next I am going to add some comments explaining what things do.
Massive improvements in depth! I added 2 changes: null move pruning and late move reduction. Null move pruning is when the bot ‘passes its turn’, when searching for the best move. The bot then evaluates the board at a reduced depth after letting the opponent play twice in a row. If it is still in a winning position then that means it is winning by a lot. This means that it can prune this branch since the opponent wouldn’t let the game get to this state and would make a better decision earlier in the tree. Since the opponent wouldn’t let the game get to this it means that further analysis isn’t necessary. Late move reduction works on the basis that I have good move ordering, which I just worked on so I would hope I do. Late move reduction means that I search the later moves at a reduced depth since the best moves are at the start and so later moves are likely bad. If they turn out to be good after the reduced evaluation depth then they are researched at the full depth. This helps reduce the amount of moves which need to be evaluated by a lot. Together null move pruning and late move reduction have taken my depth from around 6 - 7 in midgame to around depth 7 - 10 in midgame! In endgame this is even more. When I tested it in endgame it got to a depth of 13! My next change is something called quiescent search which will boost the bot’s elo by massive amounts as it should mostly stop the bot from making blunders.
Quiescent search is amazing! After adding it my bot instantly became better. A quiescent search just means that when evaluating a board state to a certain depth even if you reach that depth you need to evaluate until a quiet move (a move that isn’t a capture). This means that even if the bot reaches the max depth in the middle of a piece trade it won’t just think the move is amazing since all it can see it won a piece. Since I added the bot, when tested against other bots it has made 0 blunders! In fact it beat Li, a bot rated 2000 on chess.com ! I’m really proud of this and think it is really cool to say that my bot has beaten a 2000 rated bot. However, it only beat the bot once and so it could just be lucky. I was going to test it in 2 more games against the same bot but found myself getting bored of manually inputting moves into chess.com and my bot to get them to play each other. Therefore, I’m planning on making my bot able to play other bots on its own. To do this I will need to download the other bots and make my bot give properly formatted inputs and outputs.
I’ve added FEN strings! FEN strings (Forsyth-Edwards Notation) are a way to store positions of chess games. They are used by many chess engines to allow players to start from different positions or midway through games. Adding these wasn’t too difficult as the strings are formatted in a nice way. I simply split up the FEN string into its 6 parts and set my variables to the value in the FEN string. To test if it worked I inputted the FEN string 4kb1r/p2n1ppp/4q3/4p1B1/4P3/1Q6/PPP2PPP/2KR4 w k - 1 16 which gives the position of the famous opera game directly before the queen sacrifice. I then set the bot colour to white and was glad to see that it immediately found the best move (the queen sacrifice). I also added premoves so that I can choose my move in advance. I did this by just storing the move I make when it is the bot’s turn and playing it as soon as the bot plays. However I can only premove 1 move ahead. Next I will try to allow the user to premove multiple moves ahead.
Way better premoves. I’ve updated my premove system to store multiple premoves. I did this by storing eaach premove as a tuple of ( startRow , startColumn , endRow , endColumn ). These tuples contain all the data I need to know and can be easily appended into an array. To clear a premove you can either do the same move again which removes that specific premove or tap the middle mouse button anywhere which clears all premoves and arrows. I also render a translucent version of the piece that I’ve moved to its premove destination and remove the texture for where it was originally. This helps you keep track of what your premoves are actually doing. I do this by drawing the board normally then looping through each move in the premoves array and drawing that piece at its correct destination in reduced alpha. Next I am going to try to improve my bot further so that I can push to a depth of around 10 during midgame.
Premoves finished! My premoves are now fully implemented and the branch is merged. Making the move with middle click removes that specific premove. Middle clicking a random square clears all premoves and arrows. I also added principal variation search (pvs) which is just searching moves that aren’t the previous best move with a tight move score boundary then researching them normally if they are better than expected. I am probably going to ship soon and so will start polishing the project up now.
I’ve made a few small changes that help slightly speed the bot up. I stopped checking whether I have surpassed the time limit every move I search and instead every 2048 moves I search. This is better as it removes thousands of unnecessary library calls which each add a small amount of time to how long each move takes to search. Since computers are very fast 2048 doesn’t actually take long at all but it massively reduces the amount of times the pygame library is called. I also changed my move ordering to sort manually instead of with in a lambda function since this lambda functions are more inefficient. I am next going to ship the project!!!
Thanks for all the positive feedback and constructive criticism on my ship! Working to improve where people said and I am starting by trying to add comments to my code to explain what is happening. So far I’ve fully commented 3 / 7 files and am around 30% through commenting logic.py which contains most of the complicated code. Its taking a while but I really hope that this will help people understand what I am doing and that they will like my project more because of this. Next I am going to continue adding comments to logic.py and will probably have to make a devlog after just that since the file is pretty big and has slightly complicated stuff in it. Once again thanks to all the people who rated the project or gave feedback!
Yup! I did what I said I would last time, and finished commenting ALL of logic.py . I don’t think I can describe how long this took and how annoying it was to have to go through 750+ lines of code and add comments explaining things. And then I realise that there’s just random stuff that I don’t even need. Anyway, I’m pretty satisfied that I managed to comment so much. This is definitely the largest file and so I’m happy I’ve gotten it out of the way. There’s not really much I can’t say like explaining and stuff because all I’ve done for the last 5 hours is explain stuff. Anyway once I’ve commented everything, I’ll probably make another devlog and then go and work on something else.
I started getting bored of just commenting my code so I created a new branch in which I am trying to make my bot be able to play other bots. After some research, I found that the engine needs to be able to take in moves in the form of algebraic notation (a type of shorthand notation for moves. for example: Be4). Because of this I read a Wikipedia page on algebraic notation and made a function to convert between it and the parameters my makeMove() takes, that being: startRow , startColumn , endRow and endColumn . I have done this by first checking if the move is a castle (notated by O-O or O-O-O) then forming the full start and end coordinates by hardcoding the column values and finding the row based off the colour that is castling. Then I find what piece is moving (shown by the first letter) and if there is a promotion (shown by ‘=’ sign). Algebraic also has characters to show captures (x), checkmates (#) and checks (+), however the engine does not need these and so they are removed in 3 separate while loops. At this point I am left with just the end coordinates and maybe a combination of start coordinates. To find the full start coordinates (as they are all I am missing) I loop through the specific bitboard for the piece and whenever I find a square where there is a piece, I check whether it matches with the start coordinates I have, and if it does whether it can legally reach the end square. If it can then that is my piece and I return its start coordinates and the end coordinates it moves to (which is given in the input string). Currently, this function lives inside a random file in my project folder but my next step will be to properly integrate it into the rest of the code.
So, I’ve actually decided to work on making my bot playable on a website since that was one of the main things people said they would have wanted last ship and stardance is ending soon. But thats not why I’m posting. I’m posting because I spent the last 40 minutes rooting out a bug that caused my premoves to not be played. My first step was playing the release version that can be downloaded to see if the bug was there as well. Luckily it wasn’t so I went to my current commit on my main branch and kepy undoing commits (and saving them with git stash ) until the bug was gone. I then found that the bug only became a thing after I merged my commenting branch. Because of this I did the same thing of undoing commits and saving them on the commenting branch til I found the commit that caused the bug. I then went through all the changes until I found the problem. Then I fixed the bug, merged the fix to main then merged main into my other branches so that they would have the bug fix as well. I’ve already done some research and have found that pygbag seems to fit my needs for turning my pygame program into a website pretty well. Due to this I will probably use pygbag to get a website version of my chess bot up and running! Attached is a screenshot of the commit that caused the bug. Before the commit is on the left and after the commit is on the right. Try to find what caused the bug! If you can’t check the comments of the post as I am gonna say what the problem was there. I also attached a photo of how my git tree looks now and… it looks sooo messy lol.
Ships:
I’m finally shipping the chess bot! So excited to see what people think of it :) . Before you try my project I highly suggest reading the README (on my github page https://github.com/GunRattler28/Chess-Bot ). It has a full list of all controls which will help you understand how to play. Anways, can’t wait to see what you guys think of it!...
|
1792856898.3795884
|
1793720898.3795884
|
|
70140
|
heck_tab by @Its_Abhinav_Jangid | Stardance
|
Its_Abhinav_Jangid
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T05:59:38Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built HackerTab, a custom new-tab page designed for bug bounty hunters and security researchers. The default Chrome new tab is pretty useless if you spend your day reading writeups, checking Shodan, and tracking HackerOne reports, so I made something that actually fits that workflow. It’s a React app with a dark navy, cyan theme (inspired by HackTricks) that replaces your browser’s new tab with: A security writeup feed that pulls from Pentester Land, PortSwigger Research, InfoSec Writeups, and Intigriti Bug Bytes, so you see fresh bug bounty content every time you open a tab A HackerOne report tracker where you can connect your H1 API token. It tracks triage states, severity, bounty earnings, and dupes across programs(so you don’t have to check the website anxiously everytime :) Multi-engine search with Google, DuckDuckGo, Shodan, and GitHub. You can tab-switch between them and get live autocomplete suggestions A bookmarks sidebar (type “bm url” in the search bar to save one instantly) A scratchpad drawer for quick notes, IPs, payloads, auto-saves on every keystroke Network latency ping, clock, and a bunch of keyboard shortcuts to navigate everything without touching the mouse The whole thing is keyboard-driven(press ? to see all shortcuts). Press / to search, N for notes, R to flip between feed and reports, B to bookmark, comma for settings. Everything saves to localStorage. The HackerOne API integration was the biggest headache. Their API doesn’t send CORS headers, so you can’t just fetch from a browser tab. I had to build support for multiple CORS proxy providers (corsproxy.io, cors.sh), custom Cloudflare Worker proxies, and a direct mode for browser extensions with host permissions. Getting all those paths to work reliably with proper error handling and user-friendly setup in settings took a lot of iteration. Mobile responsiveness was also tricky. This is naturally a desktop-first tool (it’s a new tab page), but I wanted it to still be usable on mobile. Added a minimal mobile mode that strips out verbose text and tips, shrinks stat cards, and cleans up the layout so it doesn’t feel cramped on a phone screen. The search bar honestly feels really good to use. Tab to cycle engines, arrow keys for suggestions, bm prefix to instantly bookmark. It flows naturally. And the HackerOne tracker view makes it genuinely useful, not just a static page. Also proud that the whole thing works with zero backend. Everything runs client-side with localStorage persistence. You can deploy it anywhere static files are served. How to test it: Visit the deployed site (link in repo) Try the search bar, press / to focus, type something, use Tab to switch between Google/DuckDuckGo/Shodan/GitHub Press N to open the scratchpad, type some notes Press B to add a bookmark Click the reports tab (or press R) to see the HackerOne tracker, you can import a CSV or log reports manually Press comma to open settings and play with accent colors, toggle features on/off, try the color picker Press ? to see all keyboard shortcuts No login required. Everything persists in your browser’s localStorage. Stack: React 19, plain CSS (no UI library), Lucide icons, deployed on Vercel Repo: https://github.com/Its-Abhinav-Jangid/new_tab", "repo": "https://github.com/Its-Abhinav-Jangid/new_tab", "demo": "https://new-tab-sepia.vercel.app/"}]...
|
[{"post_id": 80351, "ts": "202 [{"post_id": 80351, "ts": "2026-10-17T11:12:12Z", "hours": 0.3597, "text": "Added hackerone api support for fetching reports (still dupes 🥲)"}, {"post_id": 80346, "ts": "2026-10-17T10:29:09Z", "hours": 0.87, "text": "Keyboard shortcuts ~!"}, {"post_id": 80324, "ts": "2026-10-17T09:27:15Z", "hours": 0.4822, "text": "Mobile responsiveness~!"}, {"post_id": 80317, "ts": "2026-10-17T08:44:01Z", "hours": 0.6078, "text": "Almost there!"}, {"post_id": 80315, "ts": "2026-10-17T08:02:12Z", "hours": 1.0719, "text": "New ui(inspired from hacktricks) and customization options added with new feed sources(still working on them)"}, {"post_id": 80301, "ts": "2026-10-17T06:12:14Z", "hours": 0.3328, "text": "First working ui complete it’s just the beginning"}]...
|
Title: heck_tab by @Its_Abhinav_Jangid | Stardance Title: heck_tab by @Its_Abhinav_Jangid | Stardance
Devlogs:
First working ui complete it’s just the beginning
New ui(inspired from hacktricks) and customization options added with new feed sources(still working on them)
Almost there!
Mobile responsiveness~!
Keyboard shortcuts ~!
Added hackerone api support for fetching reports (still dupes 🥲)
Ships:
I built HackerTab, a custom new-tab page designed for bug bounty hunters and security researchers. The default Chrome new tab is pretty useless if you spend your day reading writeups, checking Shodan, and tracking HackerOne reports, so I made something that actually fits that workflow. It’s a React app with a dark navy, cyan theme (inspired by HackTricks) that replaces your browser’s new tab with: A security writeup feed that pulls from Pentester Land, PortSwigger Research, InfoSec Writeups, and Intigriti Bug Bytes, so you see fresh bug bounty content every time you open a tab A HackerOne report tracker where you can connect your H1 API token. It tracks triage states, severity, bounty earnings, and dupes across programs(so you don’t have to check the website anxiously everytime :) Multi-engine search with Google, DuckDuckGo, Shodan, and GitHub. You can tab-switch between them and get live autocomplete suggestions A bookmarks sidebar (type “bm url” in the search bar to save one instantly) A scratchpad drawer for quick notes, IPs, payloads, auto-saves on every keystroke Network latency ping, clock, and a bunch of keyboard shortcuts to navigate everything without touching the mouse The whole thing is keyboard-driven(press ? to see all shortcuts). Press / to search, N for notes, R to flip between feed and reports, B to bookmark, comma for settings. Everything saves to localStorage. The HackerOne API integration was the biggest headache. Their API doesn’t send CORS headers, so you can’t just fetch from a browser tab. I had to build support for multiple CORS proxy providers (corsproxy.io, cors.sh), custom Cloudflare Worker proxies, and a direct mode for browser extensions with host permissions. Getting all those paths to work reliably with proper error handling and user-friendly setup in settings took a lot of iteration. Mobile responsiveness was also tricky. This is naturally a desktop-first tool (it’s a new tab page), but I wanted it to still be usable on mobile. Added a minimal mobile mode that strips out verbose text and tips, shrinks stat cards, and cleans up the layout so it doesn’t feel cramped on a phone screen. The search bar honestly feels really good to use. Tab to cycle engines, arrow keys for suggestions, bm prefix to instantly bookmark. It flows naturally. And the HackerOne tracker view makes it genuinely useful, not just a static page. Also proud that the whole thing works with zero backend. Everything runs client-side with localStorage persistence. You can deploy it anywhere static files are served. How to test it: Visit the deployed site (link in repo) Try the search bar, press / to focus, type something, use Tab to switch between Google/DuckDuckGo/Shodan/GitHub Press N to open the scratchpad, type some notes Press B to add a bookmark Click the reports tab (or press R) to see the HackerOne tracker, you can import a CSV or log reports manually Press comma to open settings and play with accent colors, toggle features on/off, try the color picker Press ? to see all keyboard shortcuts No login required. Everything persists in your browser’s localStorage. Stack: React 19, plain CSS (no UI library), Lucide icons, deployed on Vercel Repo: https://github.com/Its-Abhinav-Jangid/new_tab...
|
1793199140.4938061
|
1793285540.4938061
|
|
70137
|
clock by @threatsentinels | Stardance
|
threatsentinels
|
0
|
1.89
|
0
|
[]
|
[{"post_id": 80347, "ts": "202 [{"post_id": 80347, "ts": "2026-10-17T10:43:12Z", "hours": 1.8911, "text": "devlog 1 I have finished working on the pcb and CAD . Now going to write the firmware for it ."}]...
|
Title: clock by @threatsentinels | Stardance
Devl Title: clock by @threatsentinels | Stardance
Devlogs:
devlog 1 I have finished working on the pcb and CAD . Now going to write the firmware for it ....
|
1792958098.7799172
|
1793562898.7799172
|
|
12767
|
Efficient long range UAV by @tejaswa | Stardance
|
tejaswa
|
0
|
54.41
|
0
|
[]
|
[{"post_id": 80345, "ts": "202 [{"post_id": 80345, "ts": "2026-10-17T10:18:52Z", "hours": 4.2042, "text": "Airplane Im finally learning to properly land this airplane, i did several FBWA runs with this aircraft trying to get my approach right and landing right too I absolutely suck at both of these things, atp im surprised ik how to build the most stable aircraft but idk how to fly the said stable aircraft We cant 100% blame my lack of skill tho cuz if yall notice we can see that the glide ratio is a bit steep, I didnt expect that from this aircraft but due to the autonomous electronics increasing the weight it might be cuz that Since the old wing mount broke and also i wanted to design a new one with 2 servos so i can get flaps with aileron going, which will hopefully reduce my approach speed and angle The efficiency of this aircraft is pretty solid ngl, it cruises at around 5-6A which is very good imo, with this pack i can get around 15-20mins I also made a 4s2p pack for this aircraft using the cells i got from hackclub, i have only bench tested those, the voltage sag is kinda concerning so im not sure if i should fly with them or not Anyways enjoy the flight and do star the repo if yall like the project so far"}, {"post_id": 76674, "ts": "2026-10-04T10:00:29Z", "hours": 0.5447, "text": "Drop mechanism done Gonna test this servo drop mech on this aircraft too, hopefully it works Unfortunately yall have to wait with me till i go back home"}, {"post_id": 75562, "ts": "2026-09-30T13:23:47Z", "hours": 0.6833, "text": "Attained total hands off autonomy successfully (Ignore the wonky video my mum was trying her best) Man this is the best day in my life. For starters ill start from yesterday, after coming home i realised i dont have much pitch stablity cuz the elevator was hitting the carbon spar, so i ditched conventional tail and made a Vtail instead. After i set it up in arduplane the next step was to go out and test it, And oh boy testing i did. I flew first in FBW A (stablize) And it flew fkin beaut, at 30m altitude i set it to Auto mode, I had preprogrammed 4 waypoints and then RTL in the fc. It flew absolutely perfectly (except for the fact that the winds was WAY too high i could NOT fly it but the fc could) So after it finished i tried bringing it home in FBW A mode (worst idea ever ) The wind literally yeeted it in other direction and i switched on RTL, unfortunately it was wraps The plane crashed in a gravel making facility (idk bro) And i was surprised to find out that ABSOLUTELY NOTHING BROKE!!!!!?!!?! THAT HAS TO BE SOME SORT OF MIRACLE BRO Like literally the only thing broken was that ONE SINGULAR SOLDER JOIN CAME LOOSE DIDNT EEN BREAK IT JS CAME LOOSE So after it crashed we panicked and rushed to the facility, the security was super helpful and i had telemetry link with it so i was able to find it in no time This project was excruciating but absolutely worth it in the end, I will be flying it in more beautiful locations later The image in the end is the aftermath of the flight (literally spotless)"}, {"post_id": 75475, "ts": "2026-09-30T06:09:22Z", "hours": 1.2, "text": "Beautiful flight Js look at the way it flies bro i can NOT its way too smooth This was my first time actually flying with a flight computer and god damm was it a good experience, everything was so easy and i wasnt scared of flying it too far as i had setup RTL earlier Unfortunately the bad news is that i had 3 flights with this plane, and in the final flight i was tryna autotune it and mid flight the motor came off the mount and fell in the ground (yes it was 70m above the ground when it happened) thankfully the goated pixhawk was able to save the plane, also i had full control over it so i was able to land the plane safely After further inspection i figured out that the motor heat had melted the PLA mount and made the countersink screws act like wedges in wood and it js came clean off 😭 I did NOT expect that bro. Since then i have asked for a bump and also i made the mount much thicker and in todays flight i will be ziptying the motor on Apart form that i also changed the tail for standard configuration to a V tail, currently the elevator hits the carbon boom which reduces the throw, thsi Vtail is much sturdy and cleaner lets hope for the best in todays flight"}, {"post_id": 74852, "ts": "2026-09-28T13:24:02Z", "hours": 2.1761, "text": "Okay so good news and bad news Bad news being that my 1.5m span UAV unfortunately crashed, i took it out to fly yesterday and due to wings being way too high i couldnt control it and it crashed. Good news being that my 1m span ultra stick DID fly, This is a similar UAV i started designing thats much lighter and more capable. Enjoy the flight video, Unfortunately due to me being a shit pilot i tried to turn it towards me to get a nice shot but the turn radius was too low and it was going straight towards the power lines so i panicked and crashed it, That broke the motor mount so ill print like 5-6 of them and go to fly tmr with the pixhawk"}, {"post_id": 60808, "ts": "2026-09-03T12:49:56Z", "hours": 3.6678, "text": "I have finished the plane This took way more than 2 hours btw, it was js such a hassle i forgot to record Anyways the 2 hours that ARE in this post are the hours i spent analyzing the crash of the flying wing, I have zero idea why it crased, but it just rolled right and hit the ground nose down every chance it got. I went on reddit asking about this they told me its cuz flying wings are fiddly (i dont have much exp w them either), and need to be perfect to fly So i js moved on from that and finished the build of the full plane I did factory reset the flight computer this time to get everything reset, and this is a note to self for future When configuring channel 14 RSSI for Flysky TX, Remember to turn on allow_aux_reverse in RC_OPTIONS parameter for it to work The plane is done and build (will build the fuselage later incase it crashes), Im js waiting for good weather, Im here till 7th of this month, hopefully we get a window in that time or else its wraps for me"}, {"post_id": 56661, "ts": "2026-08-28T14:47:47Z", "hours": 1.6117, "text": "Took the plane out anyway So today i did 3 VERY short flights 2 of those were successful so ill only count 2 First flight the plane started oscillating in the pitch so i ended it short, Also cuz i ran out of ground to fly as due to heavy rainfall the fields i fly usually on are FULL of water After this flight i committed a bit more to the second launch, got the plane in the air (I think AP did it) The tail was oscillating but it wasn’t unflappable, I had to crash the aircraft in the tree because it was heading beyond my line of sight and there was a LOT of water beyond that tree Thankfully the aircraft received no damage in todays flight, everything was so soft the aircraft didn’t even register any of these crashes as a crash, It went good overall I reduced the servo throws by moving the wires down a notch realized that my surfaces are not symmetric so i accounted for that checked everything chucked it in my room and it feels fine for now Something i dont understand is why in 2nd flight did the aircraft pitch left 80 degrees for no reason and it didn’t even stabilize itself, might need to look at the logs for a few more hours to figure that out"}, {"post_id": 56447, "ts": "2026-08-28T06:38:45Z", "hours": 0.4478, "text": "Fuh me The EXACT DAY i finished my build it has NOT stopped raining at all the airfield is completely damp and my aircraft isnt waterproof. I have limited amount of holidays and this weather is NOT helping me, mum says if i am not able to finish it i can come back again and try then, I still have 4 days to go hopefully weather clears out and im able to ATLEAST take out the flying wing"}, {"post_id": 53167, "ts": "2026-08-23T16:40:04Z", "hours": 0.9608, "text": "FINISHED THE BUILD OF THE STEPPING STONE FLYING WING This is the flying wing i normally take out to fly and have fun, Ive had like 60% success rate with this model (without wingtip washout), Mostly because flying wings are hard to fly and i dont know how to fly Good thing about flight computers is that they DO know how to fly so this would be a lil bit easier Ive added 2.5 degrees of wingtip washout on this aircraft, also ran CFD sims on the entire wing profiile and saw that the stall characteristics are like a self stablizing feedback loop I have done all the wiring and flying wing setup in the pixhawk, i just need to go fly to use the autotune mode to get the PID right for this model One thing that is bad with this model is that the elevon throw when its going down is WAY less than compared to that when its going up so i hope that might not fk up the plane Ive ran several indoor tests with the motor on and off, it does stall if not thrown properly but most of the time the launch is butter, lets hope its that way tmr too"}, {"post_id": 52354, "ts": "2026-08-22T13:49:05Z", "hours": 1.3542, "text": "IM HOME Today as soon as i reached home i unboxed my telemetry radio and started working on my flying wing Ill use this aircraft as a stepping stone to learn AP and its modes and if i crash hopefully the damage isnt that much Logging time for builds irl is super hectic bruh i gotta figure out a better way to do this"}, {"post_id": 34720, "ts": "2026-07-25T17:46:15Z", "hours": 1.6575, "text": "This will be my last devlog before leaving my home I wont be home for a month or more now so unfortunately progress on this project will be paused. :( Today i configured my transmitter such that if the aircraft goes beyond range of rx, it automatically comes back home. This was a huge challenge as i didnt have those fancy transmitters with a screen to configure stuff, i have a flysky i4x that comes with JUST the sticks no configuration. Fortunately, buying a flysky transmitter saved me As flysky ibus or sbus protocol transmits the RSSI of radio signal as a pwm signal on its channel 14, To be honest i discovered that while calibrating my radio in mission planner, i was surprised and overjoyed to find that this is actually possible with my transmitter. After finding out and a bit of tinkering later i was able to map RTL on channel 14 and reverse the channel aswell (so it turns on if transmitter disconnects). Honestly this was top 10 flysky respect moments for me. I will be working tirelessly on my game now so be sure to follow that project aswell. I also wanna take a moment to thank EVERYONE who has shown me so much love and support since the beginning of this project, And also to hackclub who were able to provide be with the electronics i could only dream to afford."}, {"post_id": 34131, "ts": "2026-07-24T17:00:44Z", "hours": 1.5714, "text": "I have assembled the airframe , everything is quiet sturdy and under the estimate weight limit, i setup the flight firmware for this specific aircraft, and tuned the rates. Unfortunately due to heavy rainfall near my area and the wing almost entirely being covered with paper, i cant go risk flying it. Also it gets worse as i will not be home for a month or less . I will be disassembling the aircraft which is quiet easy to do due to my smart design choices. I have ordered the XPS sheets that were included in my grant, theyll reach when im not at home so making the fuselage has to wait, but that gives me PLENTY of time to design the fuselage in CAD and make it as clean and robust as possible. On a positive note i took my 450g flying wing out to fly today, it flew quiet well, unfortunately i did manage to crash it as it didnt have a flight computer and these things are quiet hard to fly. Thanks to stardance tho i do have autonomous flight electronics (which costs $180 btw), i can make an autonomous flying wing that will be able to do long range endurance with help of 4 extra cells i have lying around. So thatll prolly be my next project after i come back home . With that i will thanks stardance once again for getting me all these electronics"}, {"post_id": 33414, "ts": "2026-07-23T10:40:33Z", "hours": 4.5925, "text": "This battery is not human bro. This took me way too long to make, the most problematic part was to figure out how to get all the cells together without exploding the pack with extreme heat. I didnt have a spot welder, all i had was nickel strips some cells and a dream, so i used my regular soldering iron and started experimenting on how to solder these packs In the end i found that “spot soldering” worked best for me, i hope im the first one who invented this, but u basically take not that hot of a soldering iron, and then u sand the surface place the strip and dab the soldering iron on the connection to join them together, do this like 4 times for a single joint and u have quiet solid joints While making the connections i did mess up and bit and there was some sparking not enough to burn my house thankfully About the pack, its a 4s4p pack, my first time using 4s configuration, and i am NOT comfortable with the amount of power it delivers, its way too scary gng Im gonna lock the throttle at 70% cuz i know damm well shit can go wrong real fast with these packs. I did some test runs with this on my flying wing and this rc plane, using the pixhawk power module at 50% throttle i saw 11A consumption with PLENTY of power, and on my 3s lipo pack it consumed 21A at 100% so we can safely say its not bottlenecking. Its currently 12000mah, i do have 4 more cells i bought so i can push it to 15000, but ill prolyy do it later cuz this scares me way too much Im not kidding the sound the motor makes while using this pack is way too wild, i HOPE autopilot can handle everything n nothing goes wrong, that being said i will NOT do the maiden with this, instead ill use my 1500mah 3s lipo for that."}, {"post_id": 32877, "ts": "2026-07-22T10:05:34Z", "hours": 1.2, "text": "today i disassembled the aircraft cuz im not gonna be able to fly it anyways rn due to rain Made everything under the wing a LOT cleaner, hid the mess under a sheet of paper, it doesnt look That good, but it looks plenty good rn I am setup and tinkered in the firmware a bit more, idk why i have this fear of maiden launches that stops me from actually flying my models, i really need to get over that Currently I have started working on my game too due to this rain, but ill soon go out for a fuselage less maiden. Pray for me that it goes well."}, {"post_id": 32306, "ts": "2026-07-21T12:07:36Z", "hours": 2.3986, "text": "Ok so i have assembled the avionics, and routed everything in aircraft, as i expected everything does look insanely ugly now Thats okay since i will be making a fuselage later which will hopefully look nice Currently i have ailerons elevator and rudder working fine with differential thrust in action, I do need a proper place to mount the battery aswell, along with a proper place for pixhawk, its just hanging there with double sided tape rn. I really wish i had a better looking fuselage this looks insanely ugly rn, hopefully after i confirm it flies then ill work on the fuselage. My batteries are dead and it JUST rained so i cant go out today, maybe tomorrow i can go for a maiden"}, {"post_id": 31655, "ts": "2026-07-20T07:24:27Z", "hours": 2.3506, "text": "Okay so my back doesnt hurt today I worked on the wing and installed the ESCs, tested the motors using pixhawk and they both respond properly I do have a little concern as the ESCs are getting slightly warm, i did remove the rubber like i did on my older ESC, that doesnt seem to make it any better, the ready to sky esc i used earlier didnt have this heating problem, idk whats going on, i hope it js doesnt end bad The good news is that i installed servos and their linkages to the alerons, i will have a flaperon configuration for nice low effort flaps. Today the aircrafts weight is 560gs without the battery, so im assuming this will be around 750-800 grams with the 1500 3s lipo Istg i hate soldering these thick wires, its js so tedious"}, {"post_id": 31144, "ts": "2026-07-19T09:51:19Z", "hours": 2.3053, "text": "Istg my back is GONE atp so i covered the entire wing in paper turns out yesterday the weight was so high due to wet glue all over the wing, once it dried. So i js covered the entire wing in paper, and its quiet sturdy, Also i fixed the servos inside the wing aswell, it looks very flush, but im sure all that is going to go down the drain once i start installing the esc. This is an insanely tedious job, im just dreading the fuselage part idk how im gonna mke that The support ive been receiving is INSANE it really motivates me to work on it more so thnx yall LOOK AT MY BACK THO GOD DAMM IM FKIN CROOKED"}, {"post_id": 30818, "ts": "2026-07-18T19:00:51Z", "hours": 3.4661, "text": "May lord have mercy on my back damm But the wing is 80% dont, along with the elevator, i have designed everything in most modular and easy t transport as possible. I didnt use my construction method all the way on the wing as it was adding a ton on unnecessary weight on the wing, and the center part does not even need to be that structurally strong so i just let it be exposed, and honestly it looks way better. ALSO MORE ELECTRONICS ARRIVED , today my battery, ESC, and the receiver arrived, i was finally able to see the pixhawk control the servos, for some reason ESCs do get warm when i try to use them but i hope itll be fine. tomorrow the thing im most dreading about, the fuselage and wiring the servos through the wing i will be doing, its most tedious job ever but we gotta do what we gotta do. Im quiet proud how sturdy the frame is tho, the way i made it its absolutely perfect, and it looks like a kit istg. i love working on this project. OH and again HUGE shout out to stardance for getting me all this electronics i will never forget this favor from y’all ever, this is genuinely a core memory of mine now"}, {"post_id": 30253, "ts": "2026-07-17T17:57:35Z", "hours": 2.1783, "text": "Okay dang my back hurts But REAR STABS ARE READY, They are made as perfect, modular and easy to transport as possible. I centered the servos and installed them after lining the entire wing using my custom build process The carbon fiber tube is slid on on site and then clamped to the rear assembly using zipties, this is a little wasteful, but you can also use screws and bolts if youre rich enough. Im quiet proud of the lining job, this rear assembly is one of my best pieces of work ive ever manufactured, I cant wait to see this baby fly Unfortunately no updates on into the cosmos today cuz i was way too excited to work on this project. Oh and shoutout and a huge thanks to hackclub this would NOT have been able to be possible if not for them."}, {"post_id": 30078, "ts": "2026-07-17T11:34:58Z", "hours": 2.7569, "text": "MORE ELECTRONICS ARRIVED TODAY I have made the rear assembly with a beautiful and modular connector that uses zipties to hold onto the carbon spar (i will also add ductape for more rigidity) And i designed the mount of how the BLDC motors are going to hold on the wingspar. ALSO THE SERVOS ARRIVED YAYAYAYAYA, I can finally finish the rear assembly with electronics and all. Unfortunately my gluegun exploded (literally) So i have been set back by a bit but i think im good Heres a graphic for more accurate depiction of how it looked when the gluegun exploded"}, {"post_id": 29338, "ts": "2026-07-16T06:49:45Z", "hours": 1.125, "text": "Ok so i just designed and cut out the rear elevator It looks queit decent, i used 6mm old circular dowels tgat were laying around the house to make it more sturdier, the elevator came out perfect im quiet satisfied by it. Also shout out to this foam, its holds its shape quiet well and its not soft like my old one. Im js waiting for my electronics to arrive, its gonna be christmas soon when all the electroncis do arrive Oh and i will be using the rounded wingtips for everything in aricraft to increase endurance as much as i can. At speeds this aircraft will be running on, i dont expect the vortex to touch the trailing edge of the wing so yeah thats good"}, {"post_id": 28843, "ts": "2026-07-15T11:23:42Z", "hours": 0.9167, "text": "OKAY SO MY DAD GOT ME EPS BLOCKS FINALLY I cut out the airfoil profile twice (i had one 50cm section laying around already) now i finally have the wing structure ready, now after this ima be designing the modular part for the wing that lets it detach and attach to the 10mm carbon fiber tube that i ordered. Cant estimate the RTF weight of the aircraft yet, but without battries im trying to hit around 550g, things are looking pretty decent now EXCEPT THE FACT THAT I ALMOST BURNT MY CLOTHES. Bro i gotta make a better hot wire cutter instead of doing it by hand, i accidentally left the wire touching my pants and i made a lil hole in them. its cool tho FOLLOW ME FOR MORE COOL DEVLOGS"}, {"post_id": 28769, "ts": "2026-07-15T07:44:15Z", "hours": 2.2525, "text": "Ok so i measured and the 2m wing wont fit in my car, really sorry for that, But I will be making the wing 1.5m long, this will reduce the endurance a bit but i wont be sending it to intercity missions just yet so 1.5m will be fine. Also im switching to Clark Y airfoil as its more famous and has a lot of reading material online, the build process has started, i have bought the electronics i need im js waiting for them to arrive now. I cant wait to get my hands on the pixhawk and then take it to fly"}, {"post_id": 27590, "ts": "2026-07-13T09:37:41Z", "hours": 0.3839, "text": "This might be the best day of my life, i got the funding approved for my project got 180 in my HCB, now i can finally start building the project, I have ordered the pixhawk board i just need other electronics and materials. Tomorrow ill be going out to buy 30mm EPS sheets from my local vendor, and then ill start posting time lapses of me building the wing"}, {"post_id": 27046, "ts": "2026-07-12T07:26:53Z", "hours": 0.8683, "text": "Made the wiring diagram in figma and added where the electronics are going to be placed around the aircraft."}, {"post_id": 14908, "ts": "2026-06-24T06:31:56Z", "hours": 1.4833, "text": "Made a real life inspired Aleron servo link for this project. I had printed the old servo links out, they worked fine but the problem was they relied on adhesive to work, and on my aircraft i had used transparent tape over paper as reinforcement so it had 0 hold to it, hence i decided to model a real life inspired servo link with ziptie like behavior, this one doesn’t rely on glue but on the strength of your control surface to hold on, so this ones a lot better and a lot cleaner, the only downside is that it requires a bit of support material to print but that’s okay as aesthetically it looks a lot better, i might make a version that doesn’t require support material if you don’t care about aesthetics so lmk abt that. also this versions step and 3mf file is aslo available on the github"}, {"post_id": 11729, "ts": "2026-06-19T03:13:42Z", "hours": 0.9683, "text": "Made the templates for airofoil, servo horns, motor mount, and the rib template in cad aswell, the rib and airfoil templates have to be traced on cardboard, cut out and have their edges sanded to work properly, motor mounts should be printed twice and there are already way more servo horns than you might need. Even printed these out on my Anycubic Kobra 2 neo to speed up the build process as soon as i get eligible for building"}, {"post_id": 10456, "ts": "2026-06-17T05:54:07Z", "hours": 0.5508, "text": "What if life-saving supplies could reach places of distress without roads, traffic, or human pilots? This project presents a long-endurance autonomous UAV designed to deliver payloads upto 300g using an energy-efficient airframe, autonomous flight planning, and low-cost hardware and really low cost maintenance, most parts of this build are easy to find and the build processes that are used in this aircraft are personally developed worked and tested in real life by me personally. Built from the ground up as a practical engineering platform, the aircraft demonstrates how modern autonomous systems can make aerial logistics more accessible, affordable, and adaptable for real-world challenges. The build uses cheap/easily available parts, and every dime serves a purpose in this project, ive linked the github (currently unfinished) on my project page aswell, please check it out and if yall like it then drop a like aswell. in the images attached, i have made out a flight plan for how it would go in real life, ive ran CFD sims on the aircraft and made a wing profile of 45cm out of thermocol of the SD7037 airfoil to test its stall characteristics to have a better idea about the cruise speed estimation, this testing was done by me sitting in a car with this airfoil outside the window and strapping a MPU gyro to read the angle readings and telling my dad to speed up or slow down."}, {"post_id": 10058, "ts": "2026-06-16T17:10:42Z", "hours": 1.3239, "text": "Currently dont have a pixhawk board, but thought learning to plan a mission wont be that hard, installed mission planner, and now am trying to get a hang of things in this, ill have a servo attached to the AUX port of the pixhawk and ill plan it so the plane reaches X m/s amount of gps speed before dropping the payload and then before X-C m ill drop the payload so that the landing of the payload is as precise as possible here C is the drag coefficient, ill also have to take into account the paracute ill be making out of old plastic bags and how much they will reduce the speed."}, {"post_id": 9807, "ts": "2026-06-16T07:43:35Z", "hours": 1.2044, "text": "Made some realistic changes like adding 2 motors instead of one, estimate weight is around 1.7kgs and ill be using 12 inch fiber props in this build, the battery will be made up of either 3000 or 5000 cells if i manage to get my hands on them, the rear stab LOOKS small but its enough for this build providing 1 vbar ratio, this with differential thrust the aircraft will have insane yaw authority, which can be increased to even more by just moving the thrust motors a little outward on the wing, i have added the pixhawk ESC and my motor models to the document aswell"}, {"post_id": 9361, "ts": "2026-06-15T18:17:24Z", "hours": 1.7128, "text": "Changed the entire design from a flying wing to a conventional UAV type design 2m wingspan and 18cm chord length with a SD7037 airfoil payload capacity of around 500g, there’s a dedicated space for the payload, the entire aircraft will be built out of lightweight pharmocol carbon spars and my own special building techniques that uses trash to reinforce the aircraft. Ive ran CFD sims on this aircraft aswell and im satisfied by the results for now"}, {"post_id": 9193, "ts": "2026-06-15T13:10:54Z", "hours": 0.2917, "text": "Starting out as a flying wing UAV design, uses efficent flying wing type airfoils and will have max payload capacity of around 500g, this aircraft will be mostly responsible for delivering medicines to remote areas without stopping, it’ll use a bomb dropping type mechanism with a parachute strapped to the package. Main aim of this project is to finish everything in as cheap as but as perfect as possible, in india expensive tech doesnt work out, so im making something that people can actually use"}]...
|
Title: Efficient long range UAV by @tejaswa | Star Title: Efficient long range UAV by @tejaswa | Stardance
Devlogs:
Starting out as a flying wing UAV design, uses efficent flying wing type airfoils and will have max payload capacity of around 500g, this aircraft will be mostly responsible for delivering medicines to remote areas without stopping, it’ll use a bomb dropping type mechanism with a parachute strapped to the package. Main aim of this project is to finish everything in as cheap as but as perfect as possible, in india expensive tech doesnt work out, so im making something that people can actually use
Changed the entire design from a flying wing to a conventional UAV type design 2m wingspan and 18cm chord length with a SD7037 airfoil payload capacity of around 500g, there’s a dedicated space for the payload, the entire aircraft will be built out of lightweight pharmocol carbon spars and my own special building techniques that uses trash to reinforce the aircraft. Ive ran CFD sims on this aircraft aswell and im satisfied by the results for now
Made some realistic changes like adding 2 motors instead of one, estimate weight is around 1.7kgs and ill be using 12 inch fiber props in this build, the battery will be made up of either 3000 or 5000 cells if i manage to get my hands on them, the rear stab LOOKS small but its enough for this build providing 1 vbar ratio, this with differential thrust the aircraft will have insane yaw authority, which can be increased to even more by just moving the thrust motors a little outward on the wing, i have added the pixhawk ESC and my motor models to the document aswell
Currently dont have a pixhawk board, but thought learning to plan a mission wont be that hard, installed mission planner, and now am trying to get a hang of things in this, ill have a servo attached to the AUX port of the pixhawk and ill plan it so the plane reaches X m/s amount of gps speed before dropping the payload and then before X-C m ill drop the payload so that the landing of the payload is as precise as possible here C is the drag coefficient, ill also have to take into account the paracute ill be making out of old plastic bags and how much they will reduce the speed.
What if life-saving supplies could reach places of distress without roads, traffic, or human pilots? This project presents a long-endurance autonomous UAV designed to deliver payloads upto 300g using an energy-efficient airframe, autonomous flight planning, and low-cost hardware and really low cost maintenance, most parts of this build are easy to find and the build processes that are used in this aircraft are personally developed worked and tested in real life by me personally. Built from the ground up as a practical engineering platform, the aircraft demonstrates how modern autonomous systems can make aerial logistics more accessible, affordable, and adaptable for real-world challenges. The build uses cheap/easily available parts, and every dime serves a purpose in this project, ive linked the github (currently unfinished) on my project page aswell, please check it out and if yall like it then drop a like aswell. in the images attached, i have made out a flight plan for how it would go in real life, ive ran CFD sims on the aircraft and made a wing profile of 45cm out of thermocol of the SD7037 airfoil to test its stall characteristics to have a better idea about the cruise speed estimation, this testing was done by me sitting in a car with this airfoil outside the window and strapping a MPU gyro to read the angle readings and telling my dad to speed up or slow down.
Made the templates for airofoil, servo horns, motor mount, and the rib template in cad aswell, the rib and airfoil templates have to be traced on cardboard, cut out and have their edges sanded to work properly, motor mounts should be printed twice and there are already way more servo horns than you might need. Even printed these out on my Anycubic Kobra 2 neo to speed up the build process as soon as i get eligible for building
Made a real life inspired Aleron servo link for this project. I had printed the old servo links out, they worked fine but the problem was they relied on adhesive to work, and on my aircraft i had used transparent tape over paper as reinforcement so it had 0 hold to it, hence i decided to model a real life inspired servo link with ziptie like behavior, this one doesn’t rely on glue but on the strength of your control surface to hold on, so this ones a lot better and a lot cleaner, the only downside is that it requires a bit of support material to print but that’s okay as aesthetically it looks a lot better, i might make a version that doesn’t require support material if you don’t care about aesthetics so lmk abt that. also this versions step and 3mf file is aslo available on the github
Made the wiring diagram in figma and added where the electronics are going to be placed around the aircraft.
This might be the best day of my life, i got the funding approved for my project got 180 in my HCB, now i can finally start building the project, I have ordered the pixhawk board i just need other electronics and materials. Tomorrow ill be going out to buy 30mm EPS sheets from my local vendor, and then ill start posting time lapses of me building the wing
Ok so i measured and the 2m wing wont fit in my car, really sorry for that, But I will be making the wing 1.5m long, this will reduce the endurance a bit but i wont be sending it to intercity missions just yet so 1.5m will be fine. Also im switching to Clark Y airfoil as its more famous and has a lot of reading material online, the build process has started, i have bought the electronics i need im js waiting for them to arrive now. I cant wait to get my hands on the pixhawk and then take it to fly
OKAY SO MY DAD GOT ME EPS BLOCKS FINALLY I cut out the airfoil profile twice (i had one 50cm section laying around already) now i finally have the wing structure ready, now after this ima be designing the modular part for the wing that lets it detach and attach to the 10mm carbon fiber tube that i ordered. Cant estimate the RTF weight of the aircraft yet, but without battries im trying to hit around 550g, things are looking pretty decent now EXCEPT THE FACT THAT I ALMOST BURNT MY CLOTHES. Bro i gotta make a better hot wire cutter instead of doing it by hand, i accidentally left the wire touching my pants and i made a lil hole in them. its cool tho FOLLOW ME FOR MORE COOL DEVLOGS
Ok so i just designed and cut out the rear elevator It looks queit decent, i used 6mm old circular dowels tgat were laying around the house to make it more sturdier, the elevator came out perfect im quiet satisfied by it. Also shout out to this foam, its holds its shape quiet well and its not soft like my old one. Im js waiting for my electronics to arrive, its gonna be christmas soon when all the electroncis do arrive Oh and i will be using the rounded wingtips for everything in aricraft to increase endurance as much as i can. At speeds this aircraft will be running on, i dont expect the vortex to touch the trailing edge of the wing so yeah thats good
MORE ELECTRONICS ARRIVED TODAY I have made the rear assembly with a beautiful and modular connector that uses zipties to hold onto the carbon spar (i will also add ductape for more rigidity) And i designed the mount of how the BLDC motors are going to hold on the wingspar. ALSO THE SERVOS ARRIVED YAYAYAYAYA, I can finally finish the rear assembly with electronics and all. Unfortunately my gluegun exploded (literally) So i have been set back by a bit but i think im good Heres a graphic for more accurate depiction of how it looked when the gluegun exploded
Okay dang my back hurts But REAR STABS ARE READY, They are made as perfect, modular and easy to transport as possible. I centered the servos and installed them after lining the entire wing using my custom build process The carbon fiber tube is slid on on site and then clamped to the rear assembly using zipties, this is a little wasteful, but you can also use screws and bolts if youre rich enough. Im quiet proud of the lining job, this rear assembly is one of my best pieces of work ive ever manufactured, I cant wait to see this baby fly Unfortunately no updates on into the cosmos today cuz i was way too excited to work on this project. Oh and shoutout and a huge thanks to hackclub this would NOT have been able to be possible if not for them.
May lord have mercy on my back damm But the wing is 80% dont, along with the elevator, i have designed everything in most modular and easy t transport as possible. I didnt use my construction method all the way on the wing as it was adding a ton on unnecessary weight on the wing, and the center part does not even need to be that structurally strong so i just let it be exposed, and honestly it looks way better. ALSO MORE ELECTRONICS ARRIVED , today my battery, ESC, and the receiver arrived, i was finally able to see the pixhawk control the servos, for some reason ESCs do get warm when i try to use them but i hope itll be fine. tomorrow the thing im most dreading about, the fuselage and wiring the servos through the wing i will be doing, its most tedious job ever but we gotta do what we gotta do. Im quiet proud how sturdy the frame is tho, the way i made it its absolutely perfect, and it looks like a kit istg. i love working on this project. OH and again HUGE shout out to stardance for getting me all this electronics i will never forget this favor from y’all ever, this is genuinely a core memory of mine now
Istg my back is GONE atp so i covered the entire wing in paper turns out yesterday the weight was so high due to wet glue all over the wing, once it dried. So i js covered the entire wing in paper, and its quiet sturdy, Also i fixed the servos inside the wing aswell, it looks very flush, but im sure all that is going to go down the drain once i start installing the esc. This is an insanely tedious job, im just dreading the fuselage part idk how im gonna mke that The support ive been receiving is INSANE it really motivates me to work on it more so thnx yall LOOK AT MY BACK THO GOD DAMM IM FKIN CROOKED
Okay so my back doesnt hurt today I worked on the wing and installed the ESCs, tested the motors using pixhawk and they both respond properly I do have a little concern as the ESCs are getting slightly warm, i did remove the rubber like i did on my older ESC, that doesnt seem to make it any better, the ready to sky esc i used earlier didnt have this heating problem, idk whats going on, i hope it js doesnt end bad The good news is that i installed servos and their linkages to the alerons, i will have a flaperon configuration for nice low effort flaps. Today the aircrafts weight is 560gs without the battery, so im assuming this will be around 750-800 grams with the 1500 3s lipo Istg i hate soldering these thick wires, its js so tedious
Ok so i have assembled the avionics, and routed everything in aircraft, as i expected everything does look insanely ugly now Thats okay since i will be making a fuselage later which will hopefully look nice Currently i have ailerons elevator and rudder working fine with differential thrust in action, I do need a proper place to mount the battery aswell, along with a proper place for pixhawk, its just hanging there with double sided tape rn. I really wish i had a better looking fuselage this looks insanely ugly rn, hopefully after i confirm it flies then ill work on the fuselage. My batteries are dead and it JUST rained so i cant go out today, maybe tomorrow i can go for a maiden
today i disassembled the aircraft cuz im not gonna be able to fly it anyways rn due to rain Made everything under the wing a LOT cleaner, hid the mess under a sheet of paper, it doesnt look That good, but it looks plenty good rn I am setup and tinkered in the firmware a bit more, idk why i have this fear of maiden launches that stops me from actually flying my models, i really need to get over that Currently I have started working on my game too due to this rain, but ill soon go out for a fuselage less maiden. Pray for me that it goes well.
This battery is not human bro. This took me way too long to make, the most problematic part was to figure out how to get all the cells together without exploding the pack with extreme heat. I didnt have a spot welder, all i had was nickel strips some cells and a dream, so i used my regular soldering iron and started experimenting on how to solder these packs In the end i found that “spot soldering” worked best for me, i hope im the first one who invented this, but u basically take not that hot of a soldering iron, and then u sand the surface place the strip and dab the soldering iron on the connection to join them together, do this like 4 times for a single joint and u have quiet solid joints While making the connections i did mess up and bit and there was some sparking not enough to burn my house thankfully About the pack, its a 4s4p pack, my first time using 4s configuration, and i am NOT comfortable with the amount of power it delivers, its way too scary gng Im gonna lock the throttle at 70% cuz i know damm well shit can go wrong real fast with these packs. I did some test runs with this on my flying wing and this rc plane, using the pixhawk power module at 50% throttle i saw 11A consumption with PLENTY of power, and on my 3s lipo pack it consumed 21A at 100% so we can safely say its not bottlenecking. Its currently 12000mah, i do have 4 more cells i bought so i can push it to 15000, but ill prolyy do it later cuz this scares me way too much Im not kidding the sound the motor makes while using this pack is way too wild, i HOPE autopilot can handle everything n nothing goes wrong, that being said i will NOT do the maiden with this, instead ill use my 1500mah 3s lipo for that.
I have assembled the airframe , everything is quiet sturdy and under the estimate weight limit, i setup the flight firmware for this specific aircraft, and tuned the rates. Unfortunately due to heavy rainfall near my area and the wing almost entirely being covered with paper, i cant go risk flying it. Also it gets worse as i will not be home for a month or less . I will be disassembling the aircraft which is quiet easy to do due to my smart design choices. I have ordered the XPS sheets that were included in my grant, theyll reach when im not at home so making the fuselage has to wait, but that gives me PLENTY of time to design the fuselage in CAD and make it as clean and robust as possible. On a positive note i took my 450g flying wing out to fly today, it flew quiet well, unfortunately i did manage to crash it as it didnt have a flight computer and these things are quiet hard to fly. Thanks to stardance tho i do have autonomous flight electronics (which costs $180 btw), i can make an autonomous flying wing that will be able to do long range endurance with help of 4 extra cells i have lying around. So thatll prolly be my next project after i come back home . With that i will thanks stardance once again for getting me all these electronics
This will be my last devlog before leaving my home I wont be home for a month or more now so unfortunately progress on this project will be paused. :( Today i configured my transmitter such that if the aircraft goes beyond range of rx, it automatically comes back home. This was a huge challenge as i didnt have those fancy transmitters with a screen to configure stuff, i have a flysky i4x that comes with JUST the sticks no configuration. Fortunately, buying a flysky transmitter saved me As flysky ibus or sbus protocol transmits the RSSI of radio signal as a pwm signal on its channel 14, To be honest i discovered that while calibrating my radio in mission planner, i was surprised and overjoyed to find that this is actually possible with my transmitter. After finding out and a bit of tinkering later i was able to map RTL on channel 14 and reverse the channel aswell (so it turns on if transmitter disconnects). Honestly this was top 10 flysky respect moments for me. I will be working tirelessly on my game now so be sure to follow that project aswell. I also wanna take a moment to thank EVERYONE who has shown me so much love and support since the beginning of this project, And also to hackclub who were able to provide be with the electronics i could only dream to afford.
IM HOME Today as soon as i reached home i unboxed my telemetry radio and started working on my flying wing Ill use this aircraft as a stepping stone to learn AP and its modes and if i crash hopefully the damage isnt that much Logging time for builds irl is super hectic bruh i gotta figure out a better way to do this
FINISHED THE BUILD OF THE STEPPING STONE FLYING WING This is the flying wing i normally take out to fly and have fun, Ive had like 60% success rate with this model (without wingtip washout), Mostly because flying wings are hard to fly and i dont know how to fly Good thing about flight computers is that they DO know how to fly so this would be a lil bit easier Ive added 2.5 degrees of wingtip washout on this aircraft, also ran CFD sims on the entire wing profiile and saw that the stall characteristics are like a self stablizing feedback loop I have done all the wiring and flying wing setup in the pixhawk, i just need to go fly to use the autotune mode to get the PID right for this model One thing that is bad with this model is that the elevon throw when its going down is WAY less than compared to that when its going up so i hope that might not fk up the plane Ive ran several indoor tests with the motor on and off, it does stall if not thrown properly but most of the time the launch is butter, lets hope its that way tmr too
Fuh me The EXACT DAY i finished my build it has NOT stopped raining at all the airfield is completely damp and my aircraft isnt waterproof. I have limited amount of holidays and this weather is NOT helping me, mum says if i am not able to finish it i can come back again and try then, I still have 4 days to go hopefully weather clears out and im able to ATLEAST take out the flying wing
Took the plane out anyway So today i did 3 VERY short flights 2 of those were successful so ill only count 2 First flight the plane started oscillating in the pitch so i ended it short, Also cuz i ran out of ground to fly as due to heavy rainfall the fields i fly usually on are FULL of water After this flight i committed a bit more to the second launch, got the plane in the air (I think AP did it) The tail was oscillating but it wasn’t unflappable, I had to crash the aircraft in the tree because it was heading beyond my line of sight and there was a LOT of water beyond that tree Thankfully the aircraft received no damage in todays flight, everything was so soft the aircraft didn’t even register any of these crashes as a crash, It went good overall I reduced the servo throws by moving the wires down a notch realized that my surfaces are not symmetric so i accounted for that checked everything chucked it in my room and it feels fine for now Something i dont understand is why in 2nd flight did the aircraft pitch left 80 degrees for no reason and it didn’t even stabilize itself, might need to look at the logs for a few more hours to figure that out
I have finished the plane This took way more than 2 hours btw, it was js such a hassle i forgot to record Anyways the 2 hours that ARE in this post are the hours i spent analyzing the crash of the flying wing, I have zero idea why it crased, but it just rolled right and hit the ground nose down every chance it got. I went on reddit asking about this they told me its cuz flying wings are fiddly (i dont have much exp w them either), and need to be perfect to fly So i js moved on from that and finished the build of the full plane I did factory reset the flight computer this time to get everything reset, and this is a note to self for future When configuring channel 14 RSSI for Flysky TX, Remember to turn on allow_aux_reverse in RC_OPTIONS parameter for it to work The plane is done and build (will build the fuselage later incase it crashes), Im js waiting for good weather, Im here till 7th of this month, hopefully we get a window in that time or else its wraps for me
Okay so good news and bad news Bad news being that my 1.5m span UAV unfortunately crashed, i took it out to fly yesterday and due to wings being way too high i couldnt control it and it crashed. Good news being that my 1m span ultra stick DID fly, This is a similar UAV i started designing thats much lighter and more capable. Enjoy the flight video, Unfortunately due to me being a shit pilot i tried to turn it towards me to get a nice shot but the turn radius was too low and it was going straight towards the power lines so i panicked and crashed it, That broke the motor mount so ill print like 5-6 of them and go to fly tmr with the pixhawk
Beautiful flight Js look at the way it flies bro i can NOT its way too smooth This was my first time actually flying with a flight computer and god damm was it a good experience, everything was so easy and i wasnt scared of flying it too far as i had setup RTL earlier Unfortunately the bad news is that i had 3 flights with this plane, and in the final flight i was tryna autotune it and mid flight the motor came off the mount and fell in the ground (yes it was 70m above the ground when it happened) thankfully the goated pixhawk was able to save the plane, also i had full control over it so i was able to land the plane safely After further inspection i figured out that the motor heat had melted the PLA mount and made the countersink screws act like wedges in wood and it js came clean off 😭 I did NOT expect that bro. Since then i have asked for a bump and also i made the mount much thicker and in todays flight i will be ziptying the motor on Apart form that i also changed the tail for standard configuration to a V tail, currently the elevator hits the carbon boom which reduces the throw, thsi Vtail is much sturdy and cleaner lets hope for the best in todays flight
Attained total hands off autonomy successfully (Ignore the wonky video my mum was trying her best) Man this is the best day in my life. For starters ill start from yesterday, after coming home i realised i dont have much pitch stablity cuz the elevator was hitting the carbon spar, so i ditched conventional tail and made a Vtail instead. After i set it up in arduplane the next step was to go out and test it, And oh boy testing i did. I flew first in FBW A (stablize) And it flew fkin beaut, at 30m altitude i set it to Auto mode, I had preprogrammed 4 waypoints and then RTL in the fc. It flew absolutely perfectly (except for the fact that the winds was WAY too high i could NOT fly it but the fc could) So after it finished i tried bringing it home in FBW A mode (worst idea ever ) The wind literally yeeted it in other direction and i switched on RTL, unfortunately it was wraps The plane crashed in a gravel making facility (idk bro) And i was surprised to find out that ABSOLUTELY NOTHING BROKE!!!!!?!!?! THAT HAS TO BE SOME SORT OF MIRACLE BRO Like literally the only thing broken was that ONE SINGULAR SOLDER JOIN CAME LOOSE DIDNT EEN BREAK IT JS CAME LOOSE So after it crashed we panicked and rushed to the facility, the security was super helpful and i had telemetry link with it so i was able to find it in no time This project was excruciating but absolutely worth it in the end, I will be flying it in more beautiful locations later The image in the end is the aftermath of the flight (literally spotless)
Drop mechanism done Gonna test this servo drop mech on this aircraft too, hopefully it works Unfortunately yall have to wait with me till i go back home
Airplane Im finally learning to properly land this airplane, i did several FBWA runs with this aircraft trying to get my approach right and landing right too I absolutely suck at both of these things, atp im surprised ik how to build the most stable aircraft but idk how to fly the said stable aircraft We cant 100% blame my lack of skill tho cuz if yall notice we can see that the glide ratio is a bit steep, I didnt expect that from this aircraft but due to the autonomous electronics increasing the weight it might be cuz that Since the old wing mount broke and also i wanted to design a new one with 2 servos so i can get flaps with aileron going, which will hopefully reduce my approach speed and angle The efficiency of this aircraft is pretty solid ngl, it cruises at around 5-6A which is very good imo, with this pack i can get around 15-20mins I also made a 4s2p pack for this aircraft using the cells i got from hackclub, i have only bench tested those, the voltage sag is kinda concerning so im not sure if i should fly with them or not Anyways enjoy the flight and do star the repo if yall like the project so far...
|
1792666424.755569
|
1793271224.755569
|
|
70154
|
MINI AI ASSISTANT by @aasuotsusukipc | Stardance
|
aasuotsusukipc
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T13:47:55Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "It took me so long", "repo": "https://github.com/aasuotsusuki-droid/MINI-AI", "demo": "https://aasuotsusuki-droid.github.io/MINI-AI/"}]...
|
[{"post_id": 80344, "ts": "202 [{"post_id": 80344, "ts": "2026-10-17T10:18:00Z", "hours": 0.2808, "text": "I am working on a mini desktop ai assistant , making it using python"}]...
|
Title: MINI AI ASSISTANT by @aasuotsusukipc | Star Title: MINI AI ASSISTANT by @aasuotsusukipc | Stardance
Devlogs:
I am working on a mini desktop ai assistant , making it using python
Ships:
It took me so long...
|
1793199164.5138178
|
1793285564.5138178
|
|
28749
|
WaldOS© 3.0 by @Waldewort | Stardance
|
Waldewort
|
3
|
121.0
|
900
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T11:57:36Z", "hours": 64.0, "multiplier": 13.36, "payout": 0, "blessing": "neutral", "text": "🎉Release of the WaldOS© 3.0🎉 Yipppppie, here are all new features: Animation when you start the WaldOS© 3.0 The completely new startmenu and minimization of the Apps The VoiceAI, starts by pressing on the starring under the title and can be monitored in the settings 🤖. The WaldAI, a groq based Ai witch can answer your question (not that good, but it´s okay) The Waldracer, a game in qhich you can drive infinte in a cool world. Thanks to slowroads to make this free 🏎️! The WaldClock, a timer and clock (wow!) The Wal(D)-OS, you can create your own TO-DO Pins with date and time. Waldtravel, a app you can calculate the CO2 and energy needed for different Vehicles and Routes Waldollution, you can see how long different things need to get composed in nature The Waldeye, with different livestreams of nature and animals The WaldWeather, a whater app! Waldience, you can create naturesounds to chill more 🌳. Thanks for testing the WaldOS© 3.0 and your likes ♥️, comments 💬 and the good rating 🥰😉 !", "repo": "https://github.com/Waldewort/WaldOS", "demo": "https://waldewort.github.io/WaldOS/"}, {"ship_num": 2, "ts": "2026-09-18T21:39:19Z", "hours": 17.0, "multiplier": 18.03, "payout": 302, "blessing": "neutral", "text": "🎉 The WaldOS© 2.0 has officelly launched 🎉 Welcome to the WaldOS© 2.0 🥳! The WaldOS© 2.0 is a update of the WaldOS© and brings with it two new Apps, a completely new Background ✨witch is fully customisable and new Icons 📱! The WaldOS© 2.0 is a very elaborate project in witch I tried to use as many AI as possible so please remember this in the rating! What’s Inside the WaldOS©? 📝 Notes & 🌙 Mooncalendar: Write down ideas and check your calendar persistent session saving. (Pro tip: Try clicking on the clock! ⏰) 🎺 Trumpet Learn: Learn brass fingerings step-by-step—huge credit to my coding colleague #Dasher2801 for building this! 📽️ Waldiverse & 🔍 WaldSearch: Stream longform YouTube content or search exclusively for pure Wikipedia articles. 🗺️ Waldlas: OpenStreetMap integration with route planning and session-saved emoji pins worldwide. 🧮 WaldCalc & 🌌 WaldSky: Solve equations or gaze at real-time constellations flying across your screen. ⚙️ Settings App: Fully customize your background universe! Adjust colors, star density, and speeds (watch out, potato PCs 🥔). ⚠️I only tested the WaldOS© 2.0 on a FHD (1080p) or higher monitor so lower resolution may cause window rendering issues⚠️ Thanks for reading and your interests in the WaldOS© 2.0 ♥️. Thanks for your feedback and like and I hope for a good rating 😉!", "repo": "https://github.com/Waldewort/WaldOS", "demo": "https://waldewort.github.io/WaldOS/"}, {"ship_num": 3, "ts": "2026-09-05T13:59:35Z", "hours": 40.0, "multiplier": 14.98, "payout": 598, "blessing": "neutral", "text": "Welcome to the WaldOS©! The WaldOS© is a Webbased operating system by #Waldewort. It already has the most important features like: A Notebook screen which saves your notes for the next session A Trumpetfingeringlearning screen made by my coding college #Dasher2801 For all the ones who only want to watch longform YouTube content the Waldiverse, a YouTube application The WaldSearch, a Wikipedia based Searchmachine which outputs you only Wikipedia articles The Waldlas, a openstreetmaps based map version with Searchmodus and the possibility to make emoji Pins all over the world witch also saves over sessions and a route planer to plan your next vacation (We as coder won´t need this XD ) It´s important during coding to not forget to eat so theres the Mooncalendar, opens by pressing on the date is presize and custumisable Notes are possible witch saves over your sessions !!!Try out what happens when you press on the clock!!! Please only try it on desktop and you need at least a FHD Monitor that the windows aren´t too big! One day there will be a mobile version! But the WaldOS© is still in process and a lot more Apps will come, with even more features and better Style. Please remember that I needed 40 hours to code this caused by coding it BY MYSELF and not AI, so also the design is not the best but at least not a AI Design like on 95% of the projects here! Thanks for reading and your interest in WaldSearch© and for the good rating :))", "repo": "https://github.com/Waldewort/WaldOS", "demo": "https://waldewort.github.io/WaldOS/"}]...
|
[{"post_id": 80338, "ts": "202 [{"post_id": 80338, "ts": "2026-10-17T10:05:31Z", "hours": 9.5719, "text": "🥳The last features before the WaldOS© 3.0🥳 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Devlog 17 The new apps: The WaldEye: A cool app you can watch cute animal livestreams in! Of course only animals in pure nature so it can be you can´t see an animal for hours, but that´s nature. Since now I included four live streams of different animals ( also cute ones, like squirrels) The Waldollution: Another app that shows you how long trash need to get composed if it´s thrown into nature! Finally introducing the WaldWeather app: Automatically shows you the Weather on your location, but you can also search for places and save them to the bar on top to have easy access to them. If you maximize the window you get extra detailed information and a 7 day forecast (that´s maybe right XD) Also I fixed some bugs in the WaldTravel app! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Here you can try the WaldOS 2.0 for your own: https://waldewort.github.io/WaldOS/ Today I will launch the WaldOS 3.0 so follow to don´t miss something! Thanks for reading and the like and comment :))"}, {"post_id": 79807, "ts": "2026-10-15T14:09:25Z", "hours": 9.6897, "text": "🌳More Waldclimate Apps for the WaldOS© 2.0🌳 “´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´´”´”´”´”´”´” Devlog 16 One new app and one in progress: The Waldollution, a app which shows you how long different objects need to get composed in nature if they get thrown away not regular. Work in progress for a really cool app with cats and polar bears ( and lot of cool other animals 😉), but more in the next Devlog 🤫 Bug fixing for the Control Center and some performance tests. Also I improved the Waldtravel animations a bit “´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´´”´”´”´”´”´” Test the WaldOS© 2.0 by your own: https://waldewort.github.io/WaldOS/ That´s it, the release of WaldOS© 3.0 will be soon, follow to don´t miss it! Thanks for reading and the like and follow 🙃"}, {"post_id": 79021, "ts": "2026-10-12T11:54:43Z", "hours": 9.4014, "text": "🎉We celebrate the pass of the 100 hours mark of the WaldOS© 2.0 🎉 (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: Devlog 16 One new feature and one revolutional app for the celebration 😲: The WaldOS has got it´s own control center . Now you open apps in this center and then they are shown in the taskbar like in all other real operating systems! Also you can now minimize apps or close them complete. The new App: Introducing the WaldTravel! The WaldTravel is a tool you can plan your next trip more climate nutral and you can explore how much CO2 is expelled with different Vehicles! Short realtalk: This app is very important to me to show all the world how to reduce greenhouse gases and help with climate protection ♥️🌳! This is the most important topic for our (the stardance) generation and the following ones and I think stardance is a good way to show this importance to more people. Thank you 🥰 The app is very interactive and shows the importance of this topic in an easy and good to understand way with visualization! Also I fixed again some bugs and smoothed the WaldOS© 2.0 expierience more 🥱! (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: Try the WaldOS© 2.0 for your own: https://waldewort.github.io/WaldOS/ Thank you so much for reading this more serios Devlog and sharing it and give it a like 🙃! Write down in the comments if you want more of such apps with a important topic."}, {"post_id": 78288, "ts": "2026-10-10T09:37:52Z", "hours": 9.0592, "text": "🤖Full Voice Assistant in the WaldOS© 2.0🤖 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Devlog 15 Trying is better than … this: https://waldewort.github.io/WaldOS/ The first accessibility feature is full working now 🤖🎉 The VoiceAI is now completely integrated in the WaldOS© 2.0 without a App needed. Just press the starring right under the title and talk to the VoiceAI! Also then there is a cool animation 🙃 The VoiceAI can now complete tasks in the apps like setting a timer or write down notes for you 😯 In the Settings App you can controll the VoiceAI and also read the user manuell to get to know how the VoiceAI works excactly. What changed else: Nothing 😢 But right now I´m working on a big new feature witch revoluts the opening process of the Apps in the WaldOS© 2.0, so stay tuned 😉 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - You wanna try the WaldOS© 2.0 ? Here you can 🥳: https://waldewort.github.io/WaldOS/ I´m glad you´ve readen this Devlog and thank you soo much for the like and comment and the good rating for the WaldOS© 3.0 (which is comming soon🤫)"}, {"post_id": 76453, "ts": "2026-10-03T16:04:27Z", "hours": 8.8867, "text": "🎉🗣️The Waldasist beta version is out now in the WaldOS© 2.0🗣️🎉 ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^ Devlog 14 The biggest new feature in the history of the WaldOS© 2.0 has launched its beta version 🥳! The Waldasist is a integrated voice assistant in the WaldOS© 2.0. You can easyly activate it by pressing on the circle of stars right under the title. Now you can say the name of the App and it opens by magic. Also you can say maximize and then the name of the app and close apps by saying close and the app name. I´m right now working on a voice assist even in the apps themself but that´s not that easy! What changed too: Just a bit buggfixing in the Waldracer and WaldAi 😢 ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^ Stay tuned to don´t miss the next ship and that you can try WaldOS© 3.0 (holy moly😯). Next week I´m in holiday so I won´t post anything! Thanks for the like, follow and the commi 🙃"}, {"post_id": 74464, "ts": "2026-09-27T13:08:04Z", "hours": 8.9736, "text": "💫Animations for the WaldOS© 2.0 💫 </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </> Devlog 13 You know the sentence 😂: https://waldewort.github.io/WaldOS/ A lot of cool new things for all with shortend attentionspan: A legendary starting animation in which … ahh no, just watch the video or visit: https://waldewort.github.io/WaldOS/ by your own! (but watch out it´s epic 😯) A new app with mathematical generated ambience sounds to learn or chill. Google Gemini helped me with this cause the generating of sounds is mindblowing complex. Thank you Gemini XD (But I made all around by my own and I think it´s a good app anyways! ) (I just recognized I still don´t have an app icon, but fixed till next time! ) A bit of bugfixing and testing with different thinks (stay tuned 😉) </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </> Try the WaldOS© 2.0 for your own: https://waldewort.github.io/WaldOS/ What comes next ? I don´t know, right now I´m producing content for the Virality Bonus for this follow https://www.instagram.com/waldewort/ on Instagram, thank you! Thanks for reading, your time, the like and the comment :)))"}, {"post_id": 72793, "ts": "2026-09-23T19:05:01Z", "hours": 8.5556, "text": "⏰🏎️🤖 The WaldOS© 2.0 got 3 new apps! :.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.: Devlog 12 Trying is better than reading: https://github.com/Waldewort/WaldOS The 3 new apps: A clock, alarm and stopwatch app to not forget the time! Very simple done! (yippie 🥳) The thing most of the people wanted: An integrated WaldAI 🤖😲: Using an free croq API I created the WaldAI. It´s using the gpt oss 120b modell by openai and is a bit stupid but for normal questions it´s okay (just don´t ask things witch are newer than 2024 😉😂) A very simple integrated game: The Waldracer! It´s the game slowroads by topograph.io and now it´s in the WaldOS© 2.0 as a standalone game thanks to the open source of their game: https://slowroads.io 🎉 Things that are also new but no app: A little staranimation is now greeting you when entering the WaldOS© 2.0 :.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.: That was it already, thanks for reading and the like and comment :) Try it for your own: https://github.com/Waldewort/WaldOS See you soon 🙃"}, {"post_id": 70280, "ts": "2026-09-18T21:18:32Z", "hours": 2.1525, "text": "2️⃣.0️⃣Release of the WaldOS© 2.0 is now🥳🥳🥳2️⃣.0️⃣ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Devlog 11 What has changed ? Bugfixes on the WaldSky and Waldlas and perfomance optimization (99% of work) Title has changed to WaldOS© 2.0 (1% of work 😂) A new ReadME (more exciting and readable) Uhm not more, but now version 2.0 is ready to launch 🥳🥳🥳 So celebrate with me the second launch in 3️⃣Three 2️⃣Two 1️⃣One Nowwww!!!! 🎉🎆✨ https://waldewort.github.io/WaldOS/ yippie! Try it your self 🙃 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Thanks for reading, the like and comment and the good rating 😉"}, {"post_id": 69775, "ts": "2026-09-17T19:23:30Z", "hours": 5.5242, "text": "2️⃣.0️⃣The Launch of the WaldOS© 2.0 is happening in the next days! 2️⃣.0️⃣ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Devlog 10 (I think) Trying is better than reading: https://waldewort.github.io/WaldOS/ All the new stuff: 1. First time ever I really did what I said in last Devlog: Introducing the own creatable and saveable Universum function in the settings app (yesss, fully customiseable - other than apple XD) Two new Apps (Wow I was productive 😁): The WaldCalc, a … Calculator (stunning 😲) And the… WaldSky, a App you can watch the real stars flying over sky. You can let you show real constellations and the names of them 💫. You can set in a time and place so you know where to have to look with your Crush during night to see the Ursa Minor ( Just joking, we are coder, not touching grass (or girls 😜(just joking again😂)) 😢). New Icon design: Gemini cooked with the new Icons, I just inserted them (took anyways like one hour) A little Copyright sentence under the title to prevent abuse 😲 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This was it actually, I´m going to ship tomorror or one day after this (sorry to all native speaker hehe) Try the WaldOS© for your own: https://waldewort.github.io/WaldOS/ Thanks for reading and all the support and the comment and like ♥️!"}, {"post_id": 67416, "ts": "2026-09-13T14:48:56Z", "hours": 5.2639, "text": "🥳The final design of the WaldOS© is finished!🥳 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Devlog 9 Try it out instead of reading (I know you 😜): https://waldewort.github.io/WaldOS/ What is new: The new glassy design with the new header is now applied on all Apps (sadly looks bit like apple :( ) A new App has launched: The settings (wow how exciting XD) -The background is now fully costummizable with the settings app. -You can choose of 6 different Presets for Colouring -You can create your own colouring -You can set the speed and digit of stars and how far constellations are forming (watch out for your potato PC - Graphical intensive 😉) -You can Rename the main title in the middle of the WebOS! Bugfixes 2.3 on Waldiverse and Waldlas First performance fix and improvement (no fun 😢) That will come next? A save for your own presets ( cool idea! ) Idk see what comes in my mind next! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- You wanna try the WaldOS©: https://waldewort.github.io/WaldOS/ I hope you have fun and thanks for the reading and the like and comment 🙃"}, {"post_id": 64382, "ts": "2026-09-08T18:24:53Z", "hours": 3.8128, "text": "💫Finale Design for the WaldOS©💫 — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — Devlog 8 What´s new: Interactive Background! The cursor forms star constellations and in the middle is a subtle WaldOS© title. Randomly some little shooting stars flying over the screen (some cute little ones💫) I´m worikng on a new App design for every app witch fits way better in the style (but need soo long time😢) — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — Here you can try out the WaldOS©: https://waldewort.github.io/WaldOS/ Thanks for reading this and your like and comment :)"}, {"post_id": 62151, "ts": "2026-09-05T12:26:21Z", "hours": 8.9528, "text": "🥳The final Version 1.0 of The WaldOS©🥳 : ) : ) : ) : ) : ) : ) :) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) Devlog 7 Lunch of the WaldOS© Version 1.0 today❗ Thinks changed since last time: The best App has launched, The Waldlas: A Openstreetmaps based maps app with a lot of functions: Your current location and the WaldOS© Headquarter are fixed on the map as a pin. You can klick anywhere on the map and pin a emoji with text to the map to don´t ever forget where this good restaurant was ( because we all forget always 😢, but not anymore 🥳) A searchbar makes it possible to find any location within milliseconds (for all the bad geographie students 😉) And a FULLY USEABLE ROUTESEARCH SIDEBAR (wow!), just type in two locations and it will find the fastest route for cars! Again a new design! I removed the background and now theres something like a glassy optic ( I know a bit mainstream but I didn´t know what else 😢) Bugfixes 1.3 for the Waldiverse and the Waldsearch I don´t know it´s too much happend XD : ) : ) : ) : ) : ) : ) :) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) If you want to try it out before the launch in some hours: https://waldewort.github.io/WaldOS/ I hope you like the new features and give a good ranking 🙃 cause I made sooo much and nearly all by my self, different than others! Thanks for reading and leaving a like and a comment! See you soon 👋"}, {"post_id": 55209, "ts": "2026-08-26T19:18:22Z", "hours": 7.9508, "text": "❗Completely new Design for WaldOS© ❗ .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. Devlog 6! First, the Website to explore it to your own😉: https://waldewort.github.io/WaldOS/ If you more like to read about the new features, here it comes: Now the WaldOS has an fullscreenmode to make it feel like a real Operating System (That´s so cool!) Other things I added: Togglemode for the appicons to close them by pressing again on them A new App has launched (yippie): A calender to write in all your import dates to ship the next project for stardance XD The Taskbar border is gone now the Border is the sun 🤯 The Waldiverse and Waldsearch became their own Icons and a big remake: The Waldiverse (YouTube) experience is now way smoother and easier to handle The Waldsearch has now a own Wikipedia Screen in the WaldOS 😱 which opens by choosing an article and makes the expierience of WaldOS© sooo immersive (befor you was kicked out to your browser 🙄) The design is a bit updated and some datails like backgroundcolors changed (some uninteresting stuff XD ) .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. After adding the next app (hints in the Video 😶) I´m gonna ship Version 1.0 of The WaldOS© Stay excited there will come even more afterwards! Thanks for reading, now it´s on you to try the WaldOS for your own 🥳: https://waldewort.github.io/WaldOS/ Now as an real WebOS (yeah:))) ) Have fun and remember to like and leave a follow 🤗"}, {"post_id": 47552, "ts": "2026-08-15T15:04:42Z", "hours": 9.0628, "text": "❗Biggest Update ever for the WaldOS ❗ ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,., Devlog 5 All the new features: Better WaldVideo App: Thanks to the google cloud YouTube DATA API v3 now you can search directly in the window and then watch your favorite Videos ( yesss, that´s soo cool :)) The WaldSearch: A Wikipedia Action API make it possible to search all you want to know and then get the matching Wikipedia Pages to read (Only the best information for you all XD ) New App in building: I´m building up an complete own app in the WaldOS without any iframes or APIs, the release of this will be next time (you have to have a bit patience, it will be soo cool. I promise :))) ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,., Thanks for reading, now you can try all of this for your own: https://github.com/Waldewort/WaldOS (The YouTube will sadly not work cause you need a server to run on, I do it on a python server, so if you wanna try this you have to wait till the ship sadly :( Have fun and thanks for the like <3"}, {"post_id": 40709, "ts": "2026-08-04T12:27:28Z", "hours": 7.8767, "text": "❗NEW FEATURES FOR THE WALDOS© ❗ Devlog 4 ! New things I added: A new taskbar for a better overview Maximizable Windows ( Now you can see something 🤯💻) A notes Window with enough space to write down all notes about your own stardance project :) YouTube as a Window (Yippie, sadly you have to paste the Video-URL in, but changes will come :)) Onklick move to top on all Windows You can try it for your own and have a lot of fun: https://github.com/Waldewort/WaldOS Thanks for the like and follow ❤️, next time there will come new apps and better YouTube :)))"}, {"post_id": 35815, "ts": "2026-07-27T14:26:23Z", "hours": 4.1792, "text": "BIG UPDATE for the WaldOS©!!! (Devlog 3) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - __ Things I updated since last time in Part-3: Movabale Windows (Yeah :))) Openable Windows Closable Windows New stile 💫 A own CSS - File for the stile (Now it´s ordered 👌) An inscreen of an other project as a window 🎺 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Next time I will add real content and a searching Machine 💻🌍"}, {"post_id": 20055, "ts": "2026-07-01T15:46:08Z", "hours": 1.6544, "text": "DEVLOG 2 .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. My WaldOS is doing a big progress! I´ve added a couple of new thiongs in part 2. - A aqua translucent Top Bar where all the underpages will get linked - A background of vacation in Michigan to make the OS more beautiful - Circeled all the edges and outlined all boxes - Centered the main Box .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. I´m still hyped to work on this project and will build up a cool OS - the WaldOS© (just jocking with the copyright XD) -´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´- I hope you have a good day :) You have to follow to don´t miss anything XD"}, {"post_id": 19174, "ts": "2026-06-30T13:13:14Z", "hours": 0.2708, "text": "Just finished the first part of the tutorial! I´ve once learned HTML in school like in sixth class or so and now all the memories come back and it´s a lot of fun to program in HTML (although the WaldOS© looks like garbage XD). But I´m hyped to build it better and spend way more time in this cool project which I can still use after the Stardance Challenge!"}]...
|
Title: WaldOS© 3.0 by @Waldewort | Stardance
Devl Title: WaldOS© 3.0 by @Waldewort | Stardance
Devlogs:
Just finished the first part of the tutorial! I´ve once learned HTML in school like in sixth class or so and now all the memories come back and it´s a lot of fun to program in HTML (although the WaldOS© looks like garbage XD). But I´m hyped to build it better and spend way more time in this cool project which I can still use after the Stardance Challenge!
DEVLOG 2 .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. My WaldOS is doing a big progress! I´ve added a couple of new thiongs in part 2. - A aqua translucent Top Bar where all the underpages will get linked - A background of vacation in Michigan to make the OS more beautiful - Circeled all the edges and outlined all boxes - Centered the main Box .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. I´m still hyped to work on this project and will build up a cool OS - the WaldOS© (just jocking with the copyright XD) -´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´-´- I hope you have a good day :) You have to follow to don´t miss anything XD
BIG UPDATE for the WaldOS©!!! (Devlog 3) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - __ Things I updated since last time in Part-3: Movabale Windows (Yeah :))) Openable Windows Closable Windows New stile 💫 A own CSS - File for the stile (Now it´s ordered 👌) An inscreen of an other project as a window 🎺 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Next time I will add real content and a searching Machine 💻🌍
❗NEW FEATURES FOR THE WALDOS© ❗ Devlog 4 ! New things I added: A new taskbar for a better overview Maximizable Windows ( Now you can see something 🤯💻) A notes Window with enough space to write down all notes about your own stardance project :) YouTube as a Window (Yippie, sadly you have to paste the Video-URL in, but changes will come :)) Onklick move to top on all Windows You can try it for your own and have a lot of fun: https://github.com/Waldewort/WaldOS Thanks for the like and follow ❤️, next time there will come new apps and better YouTube :)))
❗Biggest Update ever for the WaldOS ❗ ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,., Devlog 5 All the new features: Better WaldVideo App: Thanks to the google cloud YouTube DATA API v3 now you can search directly in the window and then watch your favorite Videos ( yesss, that´s soo cool :)) The WaldSearch: A Wikipedia Action API make it possible to search all you want to know and then get the matching Wikipedia Pages to read (Only the best information for you all XD ) New App in building: I´m building up an complete own app in the WaldOS without any iframes or APIs, the release of this will be next time (you have to have a bit patience, it will be soo cool. I promise :))) ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,., Thanks for reading, now you can try all of this for your own: https://github.com/Waldewort/WaldOS (The YouTube will sadly not work cause you need a server to run on, I do it on a python server, so if you wanna try this you have to wait till the ship sadly :( Have fun and thanks for the like <3
❗Completely new Design for WaldOS© ❗ .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. Devlog 6! First, the Website to explore it to your own😉: https://waldewort.github.io/WaldOS/ If you more like to read about the new features, here it comes: Now the WaldOS has an fullscreenmode to make it feel like a real Operating System (That´s so cool!) Other things I added: Togglemode for the appicons to close them by pressing again on them A new App has launched (yippie): A calender to write in all your import dates to ship the next project for stardance XD The Taskbar border is gone now the Border is the sun 🤯 The Waldiverse and Waldsearch became their own Icons and a big remake: The Waldiverse (YouTube) experience is now way smoother and easier to handle The Waldsearch has now a own Wikipedia Screen in the WaldOS 😱 which opens by choosing an article and makes the expierience of WaldOS© sooo immersive (befor you was kicked out to your browser 🙄) The design is a bit updated and some datails like backgroundcolors changed (some uninteresting stuff XD ) .-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. After adding the next app (hints in the Video 😶) I´m gonna ship Version 1.0 of The WaldOS© Stay excited there will come even more afterwards! Thanks for reading, now it´s on you to try the WaldOS for your own 🥳: https://waldewort.github.io/WaldOS/ Now as an real WebOS (yeah:))) ) Have fun and remember to like and leave a follow 🤗
🥳The final Version 1.0 of The WaldOS©🥳 : ) : ) : ) : ) : ) : ) :) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) Devlog 7 Lunch of the WaldOS© Version 1.0 today❗ Thinks changed since last time: The best App has launched, The Waldlas: A Openstreetmaps based maps app with a lot of functions: Your current location and the WaldOS© Headquarter are fixed on the map as a pin. You can klick anywhere on the map and pin a emoji with text to the map to don´t ever forget where this good restaurant was ( because we all forget always 😢, but not anymore 🥳) A searchbar makes it possible to find any location within milliseconds (for all the bad geographie students 😉) And a FULLY USEABLE ROUTESEARCH SIDEBAR (wow!), just type in two locations and it will find the fastest route for cars! Again a new design! I removed the background and now theres something like a glassy optic ( I know a bit mainstream but I didn´t know what else 😢) Bugfixes 1.3 for the Waldiverse and the Waldsearch I don´t know it´s too much happend XD : ) : ) : ) : ) : ) : ) :) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) : ) If you want to try it out before the launch in some hours: https://waldewort.github.io/WaldOS/ I hope you like the new features and give a good ranking 🙃 cause I made sooo much and nearly all by my self, different than others! Thanks for reading and leaving a like and a comment! See you soon 👋
💫Finale Design for the WaldOS©💫 — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — Devlog 8 What´s new: Interactive Background! The cursor forms star constellations and in the middle is a subtle WaldOS© title. Randomly some little shooting stars flying over the screen (some cute little ones💫) I´m worikng on a new App design for every app witch fits way better in the style (but need soo long time😢) — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — Here you can try out the WaldOS©: https://waldewort.github.io/WaldOS/ Thanks for reading this and your like and comment :)
🥳The final design of the WaldOS© is finished!🥳 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Devlog 9 Try it out instead of reading (I know you 😜): https://waldewort.github.io/WaldOS/ What is new: The new glassy design with the new header is now applied on all Apps (sadly looks bit like apple :( ) A new App has launched: The settings (wow how exciting XD) -The background is now fully costummizable with the settings app. -You can choose of 6 different Presets for Colouring -You can create your own colouring -You can set the speed and digit of stars and how far constellations are forming (watch out for your potato PC - Graphical intensive 😉) -You can Rename the main title in the middle of the WebOS! Bugfixes 2.3 on Waldiverse and Waldlas First performance fix and improvement (no fun 😢) That will come next? A save for your own presets ( cool idea! ) Idk see what comes in my mind next! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- You wanna try the WaldOS©: https://waldewort.github.io/WaldOS/ I hope you have fun and thanks for the reading and the like and comment 🙃
2️⃣.0️⃣The Launch of the WaldOS© 2.0 is happening in the next days! 2️⃣.0️⃣ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Devlog 10 (I think) Trying is better than reading: https://waldewort.github.io/WaldOS/ All the new stuff: 1. First time ever I really did what I said in last Devlog: Introducing the own creatable and saveable Universum function in the settings app (yesss, fully customiseable - other than apple XD) Two new Apps (Wow I was productive 😁): The WaldCalc, a … Calculator (stunning 😲) And the… WaldSky, a App you can watch the real stars flying over sky. You can let you show real constellations and the names of them 💫. You can set in a time and place so you know where to have to look with your Crush during night to see the Ursa Minor ( Just joking, we are coder, not touching grass (or girls 😜(just joking again😂)) 😢). New Icon design: Gemini cooked with the new Icons, I just inserted them (took anyways like one hour) A little Copyright sentence under the title to prevent abuse 😲 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This was it actually, I´m going to ship tomorror or one day after this (sorry to all native speaker hehe) Try the WaldOS© for your own: https://waldewort.github.io/WaldOS/ Thanks for reading and all the support and the comment and like ♥️!
2️⃣.0️⃣Release of the WaldOS© 2.0 is now🥳🥳🥳2️⃣.0️⃣ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Devlog 11 What has changed ? Bugfixes on the WaldSky and Waldlas and perfomance optimization (99% of work) Title has changed to WaldOS© 2.0 (1% of work 😂) A new ReadME (more exciting and readable) Uhm not more, but now version 2.0 is ready to launch 🥳🥳🥳 So celebrate with me the second launch in 3️⃣Three 2️⃣Two 1️⃣One Nowwww!!!! 🎉🎆✨ https://waldewort.github.io/WaldOS/ yippie! Try it your self 🙃 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Thanks for reading, the like and comment and the good rating 😉
⏰🏎️🤖 The WaldOS© 2.0 got 3 new apps! :.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.: Devlog 12 Trying is better than reading: https://github.com/Waldewort/WaldOS The 3 new apps: A clock, alarm and stopwatch app to not forget the time! Very simple done! (yippie 🥳) The thing most of the people wanted: An integrated WaldAI 🤖😲: Using an free croq API I created the WaldAI. It´s using the gpt oss 120b modell by openai and is a bit stupid but for normal questions it´s okay (just don´t ask things witch are newer than 2024 😉😂) A very simple integrated game: The Waldracer! It´s the game slowroads by topograph.io and now it´s in the WaldOS© 2.0 as a standalone game thanks to the open source of their game: https://slowroads.io 🎉 Things that are also new but no app: A little staranimation is now greeting you when entering the WaldOS© 2.0 :.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.: That was it already, thanks for reading and the like and comment :) Try it for your own: https://github.com/Waldewort/WaldOS See you soon 🙃
💫Animations for the WaldOS© 2.0 💫 </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </> Devlog 13 You know the sentence 😂: https://waldewort.github.io/WaldOS/ A lot of cool new things for all with shortend attentionspan: A legendary starting animation in which … ahh no, just watch the video or visit: https://waldewort.github.io/WaldOS/ by your own! (but watch out it´s epic 😯) A new app with mathematical generated ambience sounds to learn or chill. Google Gemini helped me with this cause the generating of sounds is mindblowing complex. Thank you Gemini XD (But I made all around by my own and I think it´s a good app anyways! ) (I just recognized I still don´t have an app icon, but fixed till next time! ) A bit of bugfixing and testing with different thinks (stay tuned 😉) </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </>< > </> Try the WaldOS© 2.0 for your own: https://waldewort.github.io/WaldOS/ What comes next ? I don´t know, right now I´m producing content for the Virality Bonus for this follow https://www.instagram.com/waldewort/ on Instagram, thank you! Thanks for reading, your time, the like and the comment :)))
🎉🗣️The Waldasist beta version is out now in the WaldOS© 2.0🗣️🎉 ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^ Devlog 14 The biggest new feature in the history of the WaldOS© 2.0 has launched its beta version 🥳! The Waldasist is a integrated voice assistant in the WaldOS© 2.0. You can easyly activate it by pressing on the circle of stars right under the title. Now you can say the name of the App and it opens by magic. Also you can say maximize and then the name of the app and close apps by saying close and the app name. I´m right now working on a voice assist even in the apps themself but that´s not that easy! What changed too: Just a bit buggfixing in the Waldracer and WaldAi 😢 ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^ Stay tuned to don´t miss the next ship and that you can try WaldOS© 3.0 (holy moly😯). Next week I´m in holiday so I won´t post anything! Thanks for the like, follow and the commi 🙃
🤖Full Voice Assistant in the WaldOS© 2.0🤖 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Devlog 15 Trying is better than … this: https://waldewort.github.io/WaldOS/ The first accessibility feature is full working now 🤖🎉 The VoiceAI is now completely integrated in the WaldOS© 2.0 without a App needed. Just press the starring right under the title and talk to the VoiceAI! Also then there is a cool animation 🙃 The VoiceAI can now complete tasks in the apps like setting a timer or write down notes for you 😯 In the Settings App you can controll the VoiceAI and also read the user manuell to get to know how the VoiceAI works excactly. What changed else: Nothing 😢 But right now I´m working on a big new feature witch revoluts the opening process of the Apps in the WaldOS© 2.0, so stay tuned 😉 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - You wanna try the WaldOS© 2.0 ? Here you can 🥳: https://waldewort.github.io/WaldOS/ I´m glad you´ve readen this Devlog and thank you soo much for the like and comment and the good rating for the WaldOS© 3.0 (which is comming soon🤫)
🎉We celebrate the pass of the 100 hours mark of the WaldOS© 2.0 🎉 (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: Devlog 16 One new feature and one revolutional app for the celebration 😲: The WaldOS has got it´s own control center . Now you open apps in this center and then they are shown in the taskbar like in all other real operating systems! Also you can now minimize apps or close them complete. The new App: Introducing the WaldTravel! The WaldTravel is a tool you can plan your next trip more climate nutral and you can explore how much CO2 is expelled with different Vehicles! Short realtalk: This app is very important to me to show all the world how to reduce greenhouse gases and help with climate protection ♥️🌳! This is the most important topic for our (the stardance) generation and the following ones and I think stardance is a good way to show this importance to more people. Thank you 🥰 The app is very interactive and shows the importance of this topic in an easy and good to understand way with visualization! Also I fixed again some bugs and smoothed the WaldOS© 2.0 expierience more 🥱! (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: Try the WaldOS© 2.0 for your own: https://waldewort.github.io/WaldOS/ Thank you so much for reading this more serios Devlog and sharing it and give it a like 🙃! Write down in the comments if you want more of such apps with a important topic.
🌳More Waldclimate Apps for the WaldOS© 2.0🌳 “´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´´”´”´”´”´”´” Devlog 16 One new app and one in progress: The Waldollution, a app which shows you how long different objects need to get composed in nature if they get thrown away not regular. Work in progress for a really cool app with cats and polar bears ( and lot of cool other animals 😉), but more in the next Devlog 🤫 Bug fixing for the Control Center and some performance tests. Also I improved the Waldtravel animations a bit “´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´”´´”´”´”´”´”´” Test the WaldOS© 2.0 by your own: https://waldewort.github.io/WaldOS/ That´s it, the release of WaldOS© 3.0 will be soon, follow to don´t miss it! Thanks for reading and the like and follow 🙃
🥳The last features before the WaldOS© 3.0🥳 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Devlog 17 The new apps: The WaldEye: A cool app you can watch cute animal livestreams in! Of course only animals in pure nature so it can be you can´t see an animal for hours, but that´s nature. Since now I included four live streams of different animals ( also cute ones, like squirrels) The Waldollution: Another app that shows you how long trash need to get composed if it´s thrown into nature! Finally introducing the WaldWeather app: Automatically shows you the Weather on your location, but you can also search for places and save them to the bar on top to have easy access to them. If you maximize the window you get extra detailed information and a 7 day forecast (that´s maybe right XD) Also I fixed some bugs in the WaldTravel app! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Here you can try the WaldOS 2.0 for your own: https://waldewort.github.io/WaldOS/ Today I will launch the WaldOS 3.0 so follow to don´t miss something! Thanks for reading and the like and comment :))
Ships:
Welcome to the WaldOS©! The WaldOS© is a Webbased operating system by #Waldewort. It already has the most important features like: A Notebook screen which saves your notes for the next session A Trumpetfingeringlearning screen made by my coding college #Dasher2801 For all the ones who only want to watch longform YouTube content the Waldiverse, a YouTube application The WaldSearch, a Wikipedia based Searchmachine which outputs you only Wikipedia articles The Waldlas, a openstreetmaps based map version with Searchmodus and the possibility to make emoji Pins all over the world witch also saves over sessions and a route planer to plan your next vacation (We as coder won´t need this XD ) It´s important during coding to not forget to eat so theres the Mooncalendar, opens by pressing on the date is presize and custumisable Notes are possible witch saves over your sessions !!!Try out what happens when you press on the clock!!! Please only try it on desktop and you need at least a FHD Monitor that the windows aren´t too big! One day there will be a mobile version! But the WaldOS© is still in process and a lot more Apps will come, with even more features and better Style. Please remember that I needed 40 hours to code this caused by coding it BY MYSELF and not AI, so also the design is not the best but at least not a AI Design like on 95% of the projects here! Thanks for reading and your interest in WaldSearch© and for the good rating :))
🎉 The WaldOS© 2.0 has officelly launched 🎉 Welcome to the WaldOS© 2.0 🥳! The WaldOS© 2.0 is a update of the WaldOS© and brings with it two new Apps, a completely new Background ✨witch is fully customisable and new Icons 📱! The WaldOS© 2.0 is a very elaborate project in witch I tried to use as many AI as possible so please remember this in the rating! What’s Inside the WaldOS©? 📝 Notes & 🌙 Mooncalendar: Write down ideas and check your calendar persistent session saving. (Pro tip: Try clicking on the clock! ⏰) 🎺 Trumpet Learn: Learn brass fingerings step-by-step—huge credit to my coding colleague #Dasher2801 for building this! 📽️ Waldiverse & 🔍 WaldSearch: Stream longform YouTube content or search exclusively for pure Wikipedia articles. 🗺️ Waldlas: OpenStreetMap integration with route planning and session-saved emoji pins worldwide. 🧮 WaldCalc & 🌌 WaldSky: Solve equations or gaze at real-time constellations flying across your screen. ⚙️ Settings App: Fully customize your background universe! Adjust colors, star density, and speeds (watch out, potato PCs 🥔). ⚠️I only tested the WaldOS© 2.0 on a FHD (1080p) or higher monitor so lower resolution may cause window rendering issues⚠️ Thanks for reading and your interests in the WaldOS© 2.0 ♥️. Thanks for your feedback and like and I hope for a good rating 😉!
🎉Release of the WaldOS© 3.0🎉 Yipppppie, here are all new features: Animation when you start the WaldOS© 3.0 The completely new startmenu and minimization of the Apps The VoiceAI, starts by pressing on the starring under the title and can be monitored in the settings 🤖. The WaldAI, a groq based Ai witch can answer your question (not that good, but it´s okay) The Waldracer, a game in qhich you can drive infinte in a cool world. Thanks to slowroads to make this free 🏎️! The WaldClock, a timer and clock (wow!) The Wal(D)-OS, you can create your own TO-DO Pins with date and time. Waldtravel, a app you can calculate the CO2 and energy needed for different Vehicles and Routes Waldollution, you can see how long different things need to get composed in nature The Waldeye, with different livestreams of nature and animals The WaldWeather, a whater app! Waldience, you can create naturesounds to chill more 🌳. Thanks for testing the WaldOS© 3.0 and your likes ♥️, comments 💬 and the good rating 🥰😉 !...
|
1792817554.6616461
|
1793681554.6616461
|
|
64580
|
PlantOS by @Darknow90 | Stardance
|
Darknow90
|
2
|
21.0
|
57
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T10:04:07Z", "hours": 13.0, "multiplier": 4.22, "payout": 57, "blessing": "neutral", "text": "Hi , in this project , I have made a (beautiful ?) tiny OS with css , js and html , this project have learned to me many things and I’m very happy to have make this ! I think that now , I will learn framework and react so… I will back soon ? 😝", "repo": "https://github.com/Manu7611/PlantOS", "demo": "https://manu7611.github.io/PlantOS/"}, {"ship_num": 2, "ts": "2026-10-01T20:03:53Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is the end of this project , happy to switch at another things but this project was very helpful to learn Web coding 🙂", "repo": "https://github.com/Manu7611/PlantOS", "demo": "https://manu7611.github.io/PlantOS/"}]...
|
[{"post_id": 80335, "ts": "202 [{"post_id": 80335, "ts": "2026-10-17T10:00:12Z", "hours": 1.5106, "text": "DevLog #16 : Hi , today this is the last DevLog ! I have : -redesigned & colored my OS -Fixed some bugs -Added Reset button I’m happy to have make this and I think that my Os isn’t so bad :) Thanks you !"}, {"post_id": 79633, "ts": "2026-10-14T19:21:36Z", "hours": 5.0278, "text": "Hi ! The last days , I have made littles things but that was very expensive in time !😭 -Fix bug of drag & drop -Fix Darkmode of all apps -Add Guess Number Game -Add a Chronometer That’s littles things but I’m happy to resolve main bug 🥰"}, {"post_id": 77662, "ts": "2026-10-07T19:20:54Z", "hours": 4.3822, "text": "DevLog #14 : Today , I have made one more app and many other things ! -Added a picture app to see flowers -Added a color transition on close button -Added a return button for app which its need -Redesign some things to upgrade the website Thanks to follow my website !"}, {"post_id": 76838, "ts": "2026-10-04T19:40:43Z", "hours": 2.2178, "text": "DevLog #13 or #1 ? Today , i have made many things !: -Added a web browser (but I’m not very smart so… It’s a forwader ? -Refactored the code to make my life more easy with my divs lmao -Added a DarkMode but I need feedback to enhance this… Thanks to read this btw !🤣"}, {"post_id": 76154, "ts": "2026-10-02T14:53:04Z", "hours": 0.3583, "text": "I have refactored the layout of my folders to feel something more clean :)"}, {"post_id": 75967, "ts": "2026-10-01T19:30:09Z", "hours": 0.6497, "text": "DevLog #11 : I have refactored many little things today : -fix calculator to show numbers before to click on = -Add a countdown to Welcome page -Change the wallpaper of Welcome page"}, {"post_id": 75695, "ts": "2026-09-30T19:30:26Z", "hours": 1.3111, "text": "DevLog #10 : I mainly work on the css for just the color… -I rethink the zindex function and I have understand that I can increase zindex number just with many click on the windows… -So I have set up basic number with 0 at other windows and it works ! (but its forgot the order under the main windows… 🤐) I think that i could send my project soon and start WebOS 2 !"}, {"post_id": 75340, "ts": "2026-09-29T19:42:25Z", "hours": 1.1419, "text": "DevLog #9 : After the ugly js , now I work on the design of a calculator 🥰. It’s very funny but I have just the number now… Come back tomorrow !"}, {"post_id": 74990, "ts": "2026-09-28T19:40:52Z", "hours": 1.12, "text": "DevLog #8 : My project work but now , I don’t understand the js code…"}, {"post_id": 74618, "ts": "2026-09-27T19:45:21Z", "hours": 0.4606, "text": "DevLog #7 : I’d make a a index for my windows but I’m not sure about the performance… I’m also at the beginning of the notes creation and this is … difficult 😅"}, {"post_id": 74128, "ts": "2026-09-26T18:43:35Z", "hours": 0.3556, "text": "DevLog #6: I have a function for all windows now !!!! 😝😝"}, {"post_id": 73697, "ts": "2026-09-25T18:45:17Z", "hours": 0.7306, "text": "DevLog #5 : I work on the apps now : Today I did : -Close button -Open button -Optimize function of code 😎"}, {"post_id": 73297, "ts": "2026-09-24T19:41:58Z", "hours": 0.8239, "text": "Devlog #4 : I worked on the draggable windows , it was very difficult for a beginner but I think that I have understood :)"}, {"post_id": 72815, "ts": "2026-09-23T19:42:39Z", "hours": 0.5092, "text": "DevLog #3 : Working on the windows , i add a navbar and this is … not ugly ? Hackatime count a very little time but I spend a lots of time to understand this lol 😭"}, {"post_id": 72375, "ts": "2026-09-22T19:44:17Z", "hours": 0.5461, "text": "DevLog #2 : Working on the transition between the Welcome screen and the Windows , there are many problems but I’m motivate to all resolve !"}, {"post_id": 71922, "ts": "2026-09-21T19:37:43Z", "hours": 0.3644, "text": "DevLog #1 : I set up html , js and css . I make the welcome page but now I don’t understand how to switch on my home page 😭😭"}]...
|
Title: PlantOS by @Darknow90 | Stardance
Devlogs: Title: PlantOS by @Darknow90 | Stardance
Devlogs:
DevLog #1 : I set up html , js and css . I make the welcome page but now I don’t understand how to switch on my home page 😭😭
DevLog #2 : Working on the transition between the Welcome screen and the Windows , there are many problems but I’m motivate to all resolve !
DevLog #3 : Working on the windows , i add a navbar and this is … not ugly ? Hackatime count a very little time but I spend a lots of time to understand this lol 😭
Devlog #4 : I worked on the draggable windows , it was very difficult for a beginner but I think that I have understood :)
DevLog #5 : I work on the apps now : Today I did : -Close button -Open button -Optimize function of code 😎
DevLog #6: I have a function for all windows now !!!! 😝😝
DevLog #7 : I’d make a a index for my windows but I’m not sure about the performance… I’m also at the beginning of the notes creation and this is … difficult 😅
DevLog #8 : My project work but now , I don’t understand the js code…
DevLog #9 : After the ugly js , now I work on the design of a calculator 🥰. It’s very funny but I have just the number now… Come back tomorrow !
DevLog #10 : I mainly work on the css for just the color… -I rethink the zindex function and I have understand that I can increase zindex number just with many click on the windows… -So I have set up basic number with 0 at other windows and it works ! (but its forgot the order under the main windows… 🤐) I think that i could send my project soon and start WebOS 2 !
DevLog #11 : I have refactored many little things today : -fix calculator to show numbers before to click on = -Add a countdown to Welcome page -Change the wallpaper of Welcome page
I have refactored the layout of my folders to feel something more clean :)
DevLog #13 or #1 ? Today , i have made many things !: -Added a web browser (but I’m not very smart so… It’s a forwader ? -Refactored the code to make my life more easy with my divs lmao -Added a DarkMode but I need feedback to enhance this… Thanks to read this btw !🤣
DevLog #14 : Today , I have made one more app and many other things ! -Added a picture app to see flowers -Added a color transition on close button -Added a return button for app which its need -Redesign some things to upgrade the website Thanks to follow my website !
Hi ! The last days , I have made littles things but that was very expensive in time !😭 -Fix bug of drag & drop -Fix Darkmode of all apps -Add Guess Number Game -Add a Chronometer That’s littles things but I’m happy to resolve main bug 🥰
DevLog #16 : Hi , today this is the last DevLog ! I have : -redesigned & colored my OS -Fixed some bugs -Added Reset button I’m happy to have make this and I think that my Os isn’t so bad :) Thanks you !
Ships:
This is the end of this project , happy to switch at another things but this project was very helpful to learn Web coding 🙂
Hi , in this project , I have made a (beautiful ?) tiny OS with css , js and html , this project have learned to me many things and I’m very happy to have make this ! I think that now , I will learn framework and react so… I will back soon ? 😝...
|
1793213610.8593082
|
1793300010.8593082
|
|
69330
|
AstroWeb by @mandeepswami | Stardance
|
mandeepswami
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T09:54:51Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This was a new thing i did . and had some problems with the api keys and allat but it is finaly done it didnt take very long for it to be completd", "repo": "https://github.com/Momentum122/AstroWeb/", "demo": "https://momentum122.github.io/AstroWeb/"}]...
|
[{"post_id": 80332, "ts": "202 [{"post_id": 80332, "ts": "2026-10-17T09:50:51Z", "hours": 0.4247, "text": "ADdded a timer and now it is complte with readme"}, {"post_id": 80319, "ts": "2026-10-17T08:52:05Z", "hours": 1.7358, "text": "looking good"}, {"post_id": 80297, "ts": "2026-10-17T05:34:26Z", "hours": 0.6764, "text": "just complete a few steps"}]...
|
Title: AstroWeb by @mandeepswami | Stardance
Devl Title: AstroWeb by @mandeepswami | Stardance
Devlogs:
just complete a few steps
looking good
ADdded a timer and now it is complte with readme
Ships:
This was a new thing i did . and had some problems with the api keys and allat but it is finaly done it didnt take very long for it to be completd...
|
1793155916.7630525
|
1793242316.7630525
|
|
68908
|
Bitmap Generator for I2C Oled by @Siyam | Stardanc Bitmap Generator for I2C Oled by @Siyam | Stardance...
|
Siyam
|
2
|
5.0
|
18
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T16:32:03Z", "hours": 1.0, "multiplier": 4.22, "payout": 3, "blessing": "neutral", "text": "Bitmap generator is a open source project. its made for turning your photos into black and white bitmap. The bitmaps can use in Arduino, Esp8266 or Esp32. It usually use the standard 0.96” Oled for showing the images. You can check how it will look in oled from preview. The project also uses some open source projects guide for making to more better with more knowledge", "repo": "https://github.com/Tanzil-Alam/Bitmap-Generator", "demo": "https://tanzil-alam.github.io/Bitmap-Generator/"}, {"ship_num": 2, "ts": "2026-10-13T15:11:51Z", "hours": 4.0, "multiplier": 7.31, "payout": 15, "blessing": "neutral", "text": "Bitmap Generator for I2C OLED is a lightweight, web-based tool designed to effortlessly convert images into optimized code for microcontrollers like Arduino, ESP8266, and ESP32. Featuring a real-time 128x64 monochrome live preview, it allows users to convert color or black-and-white photos into ready-to-use bitmap arrays (Code) and display logic tailored for 0.96” SSD1306 I2C OLED displays.", "repo": "https://github.com/Tanzil-Alam/Bitmap-Generator", "demo": "https://tanzil-alam.github.io/Bitmap-Generator/"}]...
|
[{"post_id": 80330, "ts": "202 [{"post_id": 80330, "ts": "2026-10-17T09:48:44Z", "hours": 0.9339, "text": "Re-writed the html and css."}, {"post_id": 79472, "ts": "2026-10-14T05:35:37Z", "hours": 0.4617, "text": "Rewrited the Readme, and added new titles in Html."}, {"post_id": 79324, "ts": "2026-10-13T15:02:55Z", "hours": 1.1042, "text": "I made the code alive and added 3 options for 3 micro-controllers, and uploaded in github."}, {"post_id": 79109, "ts": "2026-10-12T18:17:15Z", "hours": 1.0272, "text": "Made the preview alive, I took a code from github and it helped me a lot. the python code was very well, i took some idea and built something like the code, and it worked. it make the image into black and white and resize it into 128x64."}, {"post_id": 79074, "ts": "2026-10-12T16:00:51Z", "hours": 2.0358, "text": "I have designed the the UI for it, now it can take images and show the image in corner. i will take some references from github and use python to convert these images in cpp."}]...
|
Title: Bitmap Generator for I2C Oled by @Siyam | S Title: Bitmap Generator for I2C Oled by @Siyam | Stardance
Devlogs:
I have designed the the UI for it, now it can take images and show the image in corner. i will take some references from github and use python to convert these images in cpp.
Made the preview alive, I took a code from github and it helped me a lot. the python code was very well, i took some idea and built something like the code, and it worked. it make the image into black and white and resize it into 128x64.
I made the code alive and added 3 options for 3 micro-controllers, and uploaded in github.
Rewrited the Readme, and added new titles in Html.
Re-writed the html and css.
Ships:
Bitmap Generator for I2C OLED is a lightweight, web-based tool designed to effortlessly convert images into optimized code for microcontrollers like Arduino, ESP8266, and ESP32. Featuring a real-time 128x64 monochrome live preview, it allows users to convert color or black-and-white photos into ready-to-use bitmap arrays (Code) and display logic tailored for 0.96” SSD1306 I2C OLED displays.
Bitmap generator is a open source project. its made for turning your photos into black and white bitmap. The bitmaps can use in Arduino, Esp8266 or Esp32. It usually use the standard 0.96” Oled for showing the images. You can check how it will look in oled from preview. The project also uses some open source projects guide for making to more better with more knowledge...
|
1793155879.0373545
|
1793242279.0373545
|
|
39690
|
Nouveau-Pad by @iloveadrenaline | Stardance
|
iloveadrenaline
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T09:50:01Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finnaly im done , also I have to solder the leds but I got to get a new soldering iron but not in the near future bc I don’t have money also I have to solder the screen without header so it stays flat", "repo": "https://github.com/iloveadrenaline/Nouveau-Pad", "demo": ""}]...
|
[{"post_id": 80329, "ts": "202 [{"post_id": 80329, "ts": "2026-10-17T09:44:07Z", "hours": 1.9486, "text": "Finnaly soldered the hackpad , I need to get a better soldering iron to solder the leds and the screen bc I soldered it on header pins"}, {"post_id": 57427, "ts": "2026-08-29T16:00:29Z", "hours": 0.4383, "text": "Devlog 9 : Made a github repo and put the specific files in it , you can check it out , I’m really looking forward to this project ."}, {"post_id": 57254, "ts": "2026-08-29T11:19:45Z", "hours": 0.4047, "text": "Devlog 8 : Done with the case , i went with a simpler variant because it will be hard for the printer"}, {"post_id": 57214, "ts": "2026-08-29T10:01:46Z", "hours": 0.6417, "text": "DevLog 7 : I’m done with the firmware , i made it on KMK , things are looking good now i have to modify the case and submit for funding"}, {"post_id": 55511, "ts": "2026-08-27T12:25:11Z", "hours": 1.1742, "text": "Devlog 6 , tried 3d and ended up with this , i still have a lot to make"}, {"post_id": 54649, "ts": "2026-08-25T17:58:20Z", "hours": 4.9061, "text": "DevLog 5 — Masive rehaul , i remade the entire schematics and pcb then power went out and i had to start over on the pcb and i found the 3d files for the components . Now comes the case designing"}, {"post_id": 53913, "ts": "2026-08-24T16:50:13Z", "hours": 0.7197, "text": "Devlog 4 , finished the pcb i think now i need to wire"}, {"post_id": 53864, "ts": "2026-08-24T15:50:44Z", "hours": 1.1686, "text": "Devlog 3 , working on the pcb right now"}, {"post_id": 53198, "ts": "2026-08-23T17:14:30Z", "hours": 2.7894, "text": "Devlog 2 , finished the schematics now comes the footprints"}, {"post_id": 52552, "ts": "2026-08-22T18:31:21Z", "hours": 0.2856, "text": "Just starting out , hope i finish before the deadline"}]...
|
Title: Nouveau-Pad by @iloveadrenaline | Stardance Title: Nouveau-Pad by @iloveadrenaline | Stardance
Devlogs:
Just starting out , hope i finish before the deadline
Devlog 2 , finished the schematics now comes the footprints
Devlog 3 , working on the pcb right now
Devlog 4 , finished the pcb i think now i need to wire
DevLog 5 — Masive rehaul , i remade the entire schematics and pcb then power went out and i had to start over on the pcb and i found the 3d files for the components . Now comes the case designing
Devlog 6 , tried 3d and ended up with this , i still have a lot to make
DevLog 7 : I’m done with the firmware , i made it on KMK , things are looking good now i have to modify the case and submit for funding
Devlog 8 : Done with the case , i went with a simpler variant because it will be hard for the printer
Devlog 9 : Made a github repo and put the specific files in it , you can check it out , I’m really looking forward to this project .
Finnaly soldered the hackpad , I need to get a better soldering iron to solder the leds and the screen bc I soldered it on header pins
Ships:
Finnaly im done , also I have to solder the leds but I got to get a new soldering iron but not in the near future bc I don’t have money also I have to solder the screen without header so it stays flat...
|
1793199384.018714
|
1793285784.018714
|
|
66212
|
Solar by @Cherish9 | Stardance
|
Cherish9
|
0
|
6.14
|
0
|
[]
|
[{"post_id": 80328, "ts": "202 [{"post_id": 80328, "ts": "2026-10-17T09:43:37Z", "hours": 2.6497, "text": "FINALLY finished the enclosure abshsdhabbs me and FreeCAD be beefing all evening. I think i’m done for the design of this project! Just need to ship!"}, {"post_id": 78359, "ts": "2026-10-10T15:31:54Z", "hours": 0.5003, "text": "Coded a bit of the firmware, will refine later"}, {"post_id": 78089, "ts": "2026-10-09T15:16:51Z", "hours": 1.9011, "text": "I have spent hours just trying to figure out how to do my own design for the enclosure and it’s taking a bit too long so imma try doing firmware first"}, {"post_id": 74821, "ts": "2026-09-28T11:39:21Z", "hours": 1.0847, "text": "Starting my first PCB project!! So excited, I just started learning PCBs and thought this would be a great way to start building. I’m thinking of a goth-ish moon themed alarm clock (I’ll lapse myself sketching it later) but here’s the PCB so far!"}]...
|
Title: Solar by @Cherish9 | Stardance
Devlogs:
St Title: Solar by @Cherish9 | Stardance
Devlogs:
Starting my first PCB project!! So excited, I just started learning PCBs and thought this would be a great way to start building. I’m thinking of a goth-ish moon themed alarm clock (I’ll lapse myself sketching it later) but here’s the PCB so far!
I have spent hours just trying to figure out how to do my own design for the enclosure and it’s taking a bit too long so imma try doing firmware first
Coded a bit of the firmware, will refine later
FINALLY finished the enclosure abshsdhabbs me and FreeCAD be beefing all evening. I think i’m done for the design of this project! Just need to ship!...
|
1793094862.1308908
|
1793699662.1308908
|
|
55195
|
Learning Rust by @barseghian_daniel | Stardance
|
barseghian_daniel
|
1
|
24.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T10:16:51Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I learned rust with the rustlings exercices then made a final project! The challenging part was actually school since coming from school then working on the project is actually hard! Im really happy that i finished the project! To test the project you will have to read the readme. The files should be in the root folder when running cargo run!", "repo": "https://github.com/danielbarseghian/organize-file", "demo": "https://github.com/danielbarseghian/organize-file#how-to-set-up-and-run"}]...
|
[{"post_id": 80326, "ts": "202 [{"post_id": 80326, "ts": "2026-10-17T09:37:31Z", "hours": 1.0711, "text": "finsihed the Readme you can read it here"}, {"post_id": 78165, "ts": "2026-10-09T20:39:25Z", "hours": 1.1269, "text": "Last things before finishing The program is working perfectly, now some final touches (README, compilling, fixing bugs, …)"}, {"post_id": 76568, "ts": "2026-10-03T23:57:33Z", "hours": 0.5933, "text": "Removed AI on browser so when i search something i will often get a result by AI, it might be useful but not while learning!"}, {"post_id": 76081, "ts": "2026-10-02T08:54:39Z", "hours": 0.2992, "text": "I commented my code so much The reason is that it helps me understand what im doing when learning a new language!"}, {"post_id": 75213, "ts": "2026-09-29T14:33:01Z", "hours": 1.9981, "text": "I FINISHED FINALLYYY its been a long time but i finally finished! it was really fun. You can see the github here"}, {"post_id": 74203, "ts": "2026-09-26T22:18:31Z", "hours": 1.2019, "text": "only one chapter left! I recently switched to kate and its really much lighter than VScode"}, {"post_id": 73583, "ts": "2026-09-25T13:06:02Z", "hours": 8.8947, "text": "Sorry for not posting much School restarted and i was just coming home and working on exercices i didn’t really think about posting."}, {"post_id": 61802, "ts": "2026-09-04T21:42:13Z", "hours": 8.4286, "text": "Halfway done! i don’t have much to say but its been really fun to learn a new language!"}]...
|
Title: Learning Rust by @barseghian_daniel | Stard Title: Learning Rust by @barseghian_daniel | Stardance
Devlogs:
Halfway done! i don’t have much to say but its been really fun to learn a new language!
Sorry for not posting much School restarted and i was just coming home and working on exercices i didn’t really think about posting.
only one chapter left! I recently switched to kate and its really much lighter than VScode
I FINISHED FINALLYYY its been a long time but i finally finished! it was really fun. You can see the github here
I commented my code so much The reason is that it helps me understand what im doing when learning a new language!
Removed AI on browser so when i search something i will often get a result by AI, it might be useful but not while learning!
Last things before finishing The program is working perfectly, now some final touches (README, compilling, fixing bugs, …)
finsihed the Readme you can read it here
Ships:
I learned rust with the rustlings exercices then made a final project! The challenging part was actually school since coming from school then working on the project is actually hard! Im really happy that i finished the project! To test the project you will have to read the readme. The files should be in the root folder when running cargo run!...
|
1793155925.4015138
|
1793242325.4015138
|
|
62425
|
Maze game by @mian | Stardance
|
mian
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-25T10:31:03Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I made a maze game that is infinite, and every level is randomised. Users have to collect a minimum of 5 ghosts in order to go to the next level. As the levels progress, the maze gets more complicated and confusing. What was challenging? Probably trying to visualise how the program will look while coding it. Also, the constant testing was something lol. I found it exceptionally challenging in trying to work out the logic of this game. I did a bit of Python before, but then for a couple of projects I did websites so when I came back to this, it was hard to comprehend since you could do go live for website projects. This was also made using the turtle module, which I think if I used something else would be so much easier, but I think it was actually nice to have a challenge where I was forced to make everything redrawn for every scene. What are you proud of? That I was able to make it my own, unique game! I used the dungeon crawler overlord tutorial from HackClub at the beginning, and being able to eventually make it my own feels very accomplishing. What should people know so they can test your project? It’s a bit of a boring game after a while since it becomes slightly repetitive. In the future, I might add, like, a time limit per level and perhaps maybe more collectible stuff. It could be similar to Bomberman, where certain lines can have bombs that prevent you from going and force you to take a longer pathway. I’ll appreciate any feedback to improve!", "repo": "https://github.com/mianyay/Maze-game", "demo": "https://github.com/mianyay/Maze-game/releases/tag/1.0"}]...
|
[{"post_id": 80325, "ts": "202 [{"post_id": 80325, "ts": "2026-10-17T09:30:59Z", "hours": 1.7783, "text": "I added a whole bunch of new features. First of all, the maze worked perfectly where it got more complicated as it went but players couldnt tell what level it was so I included a level text. To also transition it from a boring maze game, I included collectible which are the white squares suppose to be ghosts where players have to collect a minimum of 5 in order to be able to go on the next level. As I tested out my game tho, I found it very annoying and repetitive having to spam the arrows/wasd keys to move so I changed the code slightly to allow users to just hold on to the key to move. The colour scheme also changed where there is also a star background."}, {"post_id": 75847, "ts": "2026-10-01T10:24:20Z", "hours": 1.0969, "text": "I figure out the reason why it didn’t work was because I did maze_generation(level, level) but I made level = 1 and I forgot it only increase by +1 in next_level so I just put 4 + level instead so now its a functional maze. In this session I also realise it was very annoying having to spam the letter w or the up arrow to go up so I decide to change it so users could hold it. Instead of turtle.onkey for each key, I did a turtle.onkeypress and turtle.onkeyrelease where when the key is down, it will add the key movement and when it is lifted, it will discard it. To make it more noticeable that there are levels, I added like a title of what level it is. Additionally, I feel like its kind of boring so I might add some timer or coins you can collect in order to go to the next level in the next session. The colours are also horrible lol."}, {"post_id": 75117, "ts": "2026-09-29T05:36:48Z", "hours": 1.6067, "text": "So… I learnt a very important lesson this session. It is to always keep running your program to see if it works. As I was coding this, I was just visualising and going like it will probably turn out like this if I do that but it turned out to be completely different. If you see in the image below, it’s just a red and blue square! Where is even the maze, let alone does it function? So during this time, I was programming the next_level function to make it become like infinite and I’m not too sure if it will work since the maze doesn’t work so I’ll have to fix draw maze_generation and draw_map first. Thats what I plan to do next session!"}, {"post_id": 70017, "ts": "2026-09-18T09:01:14Z", "hours": 1.0528, "text": "Initially, the start of the project was made using a HackClub workshop of the dungeon crawler. However, I wanted to turn it into an infinite maze game using that concept, which is what I did in this time. I had to work out some math and it was pretty hard to visualise everything. I think the hardest part was trying to work out how everything connected to make this maze game infinite and randomised. I just did some functions and next time I’ll make it actually kinda work."}]...
|
Title: Maze game by @mian | Stardance
Devlogs:
In Title: Maze game by @mian | Stardance
Devlogs:
Initially, the start of the project was made using a HackClub workshop of the dungeon crawler. However, I wanted to turn it into an infinite maze game using that concept, which is what I did in this time. I had to work out some math and it was pretty hard to visualise everything. I think the hardest part was trying to work out how everything connected to make this maze game infinite and randomised. I just did some functions and next time I’ll make it actually kinda work.
So… I learnt a very important lesson this session. It is to always keep running your program to see if it works. As I was coding this, I was just visualising and going like it will probably turn out like this if I do that but it turned out to be completely different. If you see in the image below, it’s just a red and blue square! Where is even the maze, let alone does it function? So during this time, I was programming the next_level function to make it become like infinite and I’m not too sure if it will work since the maze doesn’t work so I’ll have to fix draw maze_generation and draw_map first. Thats what I plan to do next session!
I figure out the reason why it didn’t work was because I did maze_generation(level, level) but I made level = 1 and I forgot it only increase by +1 in next_level so I just put 4 + level instead so now its a functional maze. In this session I also realise it was very annoying having to spam the letter w or the up arrow to go up so I decide to change it so users could hold it. Instead of turtle.onkey for each key, I did a turtle.onkeypress and turtle.onkeyrelease where when the key is down, it will add the key movement and when it is lifted, it will discard it. To make it more noticeable that there are levels, I added like a title of what level it is. Additionally, I feel like its kind of boring so I might add some timer or coins you can collect in order to go to the next level in the next session. The colours are also horrible lol.
I added a whole bunch of new features. First of all, the maze worked perfectly where it got more complicated as it went but players couldnt tell what level it was so I included a level text. To also transition it from a boring maze game, I included collectible which are the white squares suppose to be ghosts where players have to collect a minimum of 5 in order to be able to go on the next level. As I tested out my game tho, I found it very annoying and repetitive having to spam the arrows/wasd keys to move so I changed the code slightly to allow users to just hold on to the key to move. The colour scheme also changed where there is also a star background.
Ships:
What did you make? I made a maze game that is infinite, and every level is randomised. Users have to collect a minimum of 5 ghosts in order to go to the next level. As the levels progress, the maze gets more complicated and confusing. What was challenging? Probably trying to visualise how the program will look while coding it. Also, the constant testing was something lol. I found it exceptionally challenging in trying to work out the logic of this game. I did a bit of Python before, but then for a couple of projects I did websites so when I came back to this, it was hard to comprehend since you could do go live for website projects. This was also made using the turtle module, which I think if I used something else would be so much easier, but I think it was actually nice to have a challenge where I was forced to make everything redrawn for every scene. What are you proud of? That I was able to make it my own, unique game! I used the dungeon crawler overlord tutorial from HackClub at the beginning, and being able to eventually make it my own feels very accomplishing. What should people know so they can test your project? It’s a bit of a boring game after a while since it becomes slightly repetitive. In the future, I might add, like, a time limit per level and perhaps maybe more collectible stuff. It could be similar to Bomberman, where certain lines can have bombs that prevent you from going and force you to take a longer pathway. I’ll appreciate any feedback to improve!...
|
1793192120.4758973
|
1793278520.4758973
|
|
15442
|
Cornilieus by @Falling10fruit | Stardance
|
Falling10fruit
|
0
|
126.33
|
0
|
[]
|
[{"post_id": 80316, "ts": "202 [{"post_id": 80316, "ts": "2026-10-17T08:24:29Z", "hours": 27.3931, "text": "Ah a bit of work here and there amidst A levels. what a shame for those 17 hours. whoops :) made another vite folder within the repositories so I can test out shaders without the other parts of the project getting in the way."}, {"post_id": 48774, "ts": "2026-08-17T09:44:53Z", "hours": 1.9389, "text": "So remember when last time I thought “oh no how to do private prefix arrays”? Well, an hour later and I discovered “Oh, my 2^24 entities can be divided by 256 and then 256 again so I’ll just have to do 3 prefix sums layered one on top of each other on the thread level” I don’t know what happened but my brand new 8 bit radix pass takes 460+ms. Yay"}, {"post_id": 48316, "ts": "2026-08-16T16:59:36Z", "hours": 7.4489, "text": "So I’ve hit a brick wall. gogle told me that to improve my 4 bit radix shader is to do 8 bits at a time to halve the number of passes (and that a byte is industry standard) but I can’t figure out how to like create a private histogram for each of the 256 digits also I got a 72 on math AS levels :P"}, {"post_id": 41934, "ts": "2026-08-06T13:43:28Z", "hours": 15.7667, "text": "Hey guys so I reduced the chunk size so that joints don’t have to hope that there’s at most 16 entities within 16 tiles Also I was reading the dev time of my other project and I accrued almost 6 hours over the limit, whoops :P"}, {"post_id": 31103, "ts": "2026-07-19T07:12:44Z", "hours": 1.75, "text": "I made a pool of unmapped buffers so I can continuously record the time taken so I can clearly see how much worse my changes to the algorithm are."}, {"post_id": 30643, "ts": "2026-07-18T11:47:17Z", "hours": 1.6572, "text": "I tried to optimize sorting by reducing the memory footprint of every thread so they could fit more threads. Mid-bitpacking, I decided to test the pipeline and viola. I’ve doubled execution time. Also rerolls only add like 10% or less of what you initially rolled. Absolute scams"}, {"post_id": 30186, "ts": "2026-07-17T15:37:17Z", "hours": 1.0831, "text": "So by bitpacking I was able to make the array longer while fitting within the shared memory limit. That means that more threads can work on the kogge stone -> larger workgroup size -> less iterations per thread. school’s back btw"}, {"post_id": 29380, "ts": "2026-07-16T09:26:18Z", "hours": 7.0303, "text": "So the sorting system is taking a bit too long, ah well I’ll figure it out. Google says it’s possible to get it fast enough"}, {"post_id": 26708, "ts": "2026-07-11T17:33:06Z", "hours": 8.0044, "text": "So I was trying to visualize the buffer on a helper static website so I can eyedrop data since reading a 16384 length array isn’t efficient but apparently chromium dropped an update that prevents mouse interactions the moment you use their builtin eyedropper so here’s my replacement (not what all 8 hours was spent on pls believe me)"}, {"post_id": 25985, "ts": "2026-07-10T15:13:37Z", "hours": 13.3789, "text": "So I forgot to add rotations to the collision thing. Also I got my first ever Device Lost error yay. No one told me that not posting for over 10 hours will deduct me of my precious work."}, {"post_id": 24278, "ts": "2026-07-07T18:55:34Z", "hours": 8.4122, "text": "some stufff so collisions taking their sweet time with gjk are seperated and moved to the entities_buffer_meta so the gpu can focus on resolving those stubborn collisions look, after several parallel friendly paradigms the last step of my code is this sequential and divergent code"}, {"post_id": 22349, "ts": "2026-07-04T19:39:15Z", "hours": 8.0772, "text": "Man I made a lot of mistakes earlier whoop. Anyways here’s a naive implementation of the support function for the gjk algo. I’m going to move the entity_nodes buffer into shared memory (or at least the collision pair’s colliding mesh nodes into private memory) tomorrow"}, {"post_id": 18412, "ts": "2026-06-29T15:34:11Z", "hours": 1.4953, "text": "Yay yesterday’s issue is fixed, in theory. Man, I haven’t actually like tested any of this code. Should I just print the data from the buffer and eye it or actually try to render it… Cause I’m definitely am going to spend a while getting the render to work in the first place."}, {"post_id": 17822, "ts": "2026-06-28T19:12:22Z", "hours": 2.5992, "text": "I’m almost done with the algo that finds the memory offsets to fit colliding data but uh, I just realized I don’t have space anymore :) I think I’m going to revert last update’s progress. fun"}, {"post_id": 17120, "ts": "2026-06-27T20:03:53Z", "hours": 4.5011, "text": "After doodling a bit, I decided that the collision handling should deal with 8 collision pairs at a time. I forgot how to implement kogge stone which we will need and oh boy do I not know where to put the gjk phase. I’m already taking up 0.8 GiB vram at best. Also, here’s a histogram with nit picking bit packing."}, {"post_id": 13503, "ts": "2026-06-22T03:01:42Z", "hours": 1.6019, "text": "Shuffled buffers around and created a cos sin look up table since entities only have 2^13 possible rotations. Although I am using a 13-bit floating point for rotation velocity but it’s fine. That’s future me’s specifications to implement"}, {"post_id": 10483, "ts": "2026-06-17T07:07:50Z", "hours": 5.5903, "text": "So apparently changing the href attribute of a link means that the website has to request for the css file and wait while the component is loaded instantly causing FOUC So I just copy pasted every css file into the header so the stylesheets are always loaded. And to retain the ability to just id an element as “sidebar” without worrying about conflicts I just wrapped every stylesheet with the id of the main element. I was also optimizing bit unpacking and casting position and restructuring layouts. I swear I didn’t spend all 5 hours just writing 20 lines of code."}, {"post_id": 8293, "ts": "2026-06-13T19:45:11Z", "hours": 0.4575, "text": "Simple readjustment of the velocity precision. Previously the smallest value of the 10-bit float, we’re not going to implement subnormal values, accumulates to shift entities when idle."}, {"post_id": 8229, "ts": "2026-06-13T18:03:46Z", "hours": 1.5025, "text": "Wow I spent eternity making 10 boxes. And still tsx doesn’t like that I imported a png file, I should Google that up one day."}, {"post_id": 7617, "ts": "2026-06-12T18:52:34Z", "hours": 1.9397, "text": "Menu expands with little code. I’m going to run out of functional UI to work on and eventually will have to either fix the aesthetics or make the physics engine."}, {"post_id": 6932, "ts": "2026-06-11T16:52:13Z", "hours": 4.7031, "text": "I’ve been avoiding debugging WGSL learning Solid JS. Incredible UI design I know thank you :)"}]...
|
Title: Cornilieus by @Falling10fruit | Stardance
Title: Cornilieus by @Falling10fruit | Stardance
Devlogs:
I’ve been avoiding debugging WGSL learning Solid JS. Incredible UI design I know thank you :)
Menu expands with little code. I’m going to run out of functional UI to work on and eventually will have to either fix the aesthetics or make the physics engine.
Wow I spent eternity making 10 boxes. And still tsx doesn’t like that I imported a png file, I should Google that up one day.
Simple readjustment of the velocity precision. Previously the smallest value of the 10-bit float, we’re not going to implement subnormal values, accumulates to shift entities when idle.
So apparently changing the href attribute of a link means that the website has to request for the css file and wait while the component is loaded instantly causing FOUC So I just copy pasted every css file into the header so the stylesheets are always loaded. And to retain the ability to just id an element as “sidebar” without worrying about conflicts I just wrapped every stylesheet with the id of the main element. I was also optimizing bit unpacking and casting position and restructuring layouts. I swear I didn’t spend all 5 hours just writing 20 lines of code.
Shuffled buffers around and created a cos sin look up table since entities only have 2^13 possible rotations. Although I am using a 13-bit floating point for rotation velocity but it’s fine. That’s future me’s specifications to implement
After doodling a bit, I decided that the collision handling should deal with 8 collision pairs at a time. I forgot how to implement kogge stone which we will need and oh boy do I not know where to put the gjk phase. I’m already taking up 0.8 GiB vram at best. Also, here’s a histogram with nit picking bit packing.
I’m almost done with the algo that finds the memory offsets to fit colliding data but uh, I just realized I don’t have space anymore :) I think I’m going to revert last update’s progress. fun
Yay yesterday’s issue is fixed, in theory. Man, I haven’t actually like tested any of this code. Should I just print the data from the buffer and eye it or actually try to render it… Cause I’m definitely am going to spend a while getting the render to work in the first place.
Man I made a lot of mistakes earlier whoop. Anyways here’s a naive implementation of the support function for the gjk algo. I’m going to move the entity_nodes buffer into shared memory (or at least the collision pair’s colliding mesh nodes into private memory) tomorrow
some stufff so collisions taking their sweet time with gjk are seperated and moved to the entities_buffer_meta so the gpu can focus on resolving those stubborn collisions look, after several parallel friendly paradigms the last step of my code is this sequential and divergent code
So I forgot to add rotations to the collision thing. Also I got my first ever Device Lost error yay. No one told me that not posting for over 10 hours will deduct me of my precious work.
So I was trying to visualize the buffer on a helper static website so I can eyedrop data since reading a 16384 length array isn’t efficient but apparently chromium dropped an update that prevents mouse interactions the moment you use their builtin eyedropper so here’s my replacement (not what all 8 hours was spent on pls believe me)
So the sorting system is taking a bit too long, ah well I’ll figure it out. Google says it’s possible to get it fast enough
So by bitpacking I was able to make the array longer while fitting within the shared memory limit. That means that more threads can work on the kogge stone -> larger workgroup size -> less iterations per thread. school’s back btw
I tried to optimize sorting by reducing the memory footprint of every thread so they could fit more threads. Mid-bitpacking, I decided to test the pipeline and viola. I’ve doubled execution time. Also rerolls only add like 10% or less of what you initially rolled. Absolute scams
I made a pool of unmapped buffers so I can continuously record the time taken so I can clearly see how much worse my changes to the algorithm are.
Hey guys so I reduced the chunk size so that joints don’t have to hope that there’s at most 16 entities within 16 tiles Also I was reading the dev time of my other project and I accrued almost 6 hours over the limit, whoops :P
So I’ve hit a brick wall. gogle told me that to improve my 4 bit radix shader is to do 8 bits at a time to halve the number of passes (and that a byte is industry standard) but I can’t figure out how to like create a private histogram for each of the 256 digits also I got a 72 on math AS levels :P
So remember when last time I thought “oh no how to do private prefix arrays”? Well, an hour later and I discovered “Oh, my 2^24 entities can be divided by 256 and then 256 again so I’ll just have to do 3 prefix sums layered one on top of each other on the thread level” I don’t know what happened but my brand new 8 bit radix pass takes 460+ms. Yay
Ah a bit of work here and there amidst A levels. what a shame for those 17 hours. whoops :) made another vite folder within the repositories so I can test out shaders without the other parts of the project getting in the way....
|
1792684346.9161808
|
1793289146.9161808
|
|
62083
|
MathTab by @furgenramen | Stardance
|
furgenramen
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T09:17:20Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a new tab page for anyone to use day-to-day. It was challenging to make the JS for the calculator, as well as styling my site to look like liquid glass. I most enjoyed styling my site, as I could see my site come together aesthetically. I really enjoyed making my site, a well-spent 8 hours not gonna lie.", "repo": "https://github.com/furgenramen04/MathTab", "demo": "https://furgenramen04.github.io/MathTab/"}]...
|
[{"post_id": 80311, "ts": "202 [{"post_id": 80311, "ts": "2026-10-17T07:20:24Z", "hours": 3.3983, "text": "I am finally about to ship my project. I thought that the Moon Phase would take the longest to code, but it ended up being the calculator that was most difficult. I also added JS for the calendar and made a quick access links bar at the bottom. I COMPLETELY revamped the design, taking inspiration from both Apple’s Liquid Glass and Stardance’s own website to style it. I’m pretty darn proud of my work on this project. Here’s what it looks like right now:"}, {"post_id": 77523, "ts": "2026-10-07T09:57:31Z", "hours": 3.1975, "text": "3 hours later, I’m done with HTML, and started JS ## I have added quite a few features to MathTab: A graphing calculator, calendar, normal calculator, dual time clock, moon phase graphic and moon age, and shortcuts. The only JS-fitted feature right now is the dual time clock. Here’s what it looks like right now:"}, {"post_id": 69633, "ts": "2026-09-17T13:30:54Z", "hours": 0.6122, "text": "I got ragebaited by the free 10,000 stardust hack # ## But it’s okay because I kept working and here’s my project so far. The building blocks for the elements are setting in: Search bar and calendar rn but keep in mind the colours are completely for distinguishing rn, and I haven’t touched JS yet. On the left is HTML. Again, if you have any feature suggestions please lmk in the comments."}, {"post_id": 68633, "ts": "2026-09-15T13:17:17Z", "hours": 0.4333, "text": "Working on HTML for my New Tab Page Here’s a picture of what it looks right now (very limited, ik) and the HTML behind it. Also, if you guys have any feature suggestions please put them in the comments. Thank you!"}, {"post_id": 68283, "ts": "2026-09-14T20:57:09Z", "hours": 0.4036, "text": "Finished initial setup before actual coding . I’m working on a new project now, a new tab, and I just love the new tutorial, I think it’s so much better than the one for WebOS because the WebOS one had quite a bit missing. Other than that, I’ve finished the first 3 stages of the guide and here’s my code: (Not a lot to see, I know)"}]...
|
Title: MathTab by @furgenramen | Stardance
Devlog Title: MathTab by @furgenramen | Stardance
Devlogs:
Finished initial setup before actual coding . I’m working on a new project now, a new tab, and I just love the new tutorial, I think it’s so much better than the one for WebOS because the WebOS one had quite a bit missing. Other than that, I’ve finished the first 3 stages of the guide and here’s my code: (Not a lot to see, I know)
Working on HTML for my New Tab Page Here’s a picture of what it looks right now (very limited, ik) and the HTML behind it. Also, if you guys have any feature suggestions please put them in the comments. Thank you!
I got ragebaited by the free 10,000 stardust hack # ## But it’s okay because I kept working and here’s my project so far. The building blocks for the elements are setting in: Search bar and calendar rn but keep in mind the colours are completely for distinguishing rn, and I haven’t touched JS yet. On the left is HTML. Again, if you have any feature suggestions please lmk in the comments.
3 hours later, I’m done with HTML, and started JS ## I have added quite a few features to MathTab: A graphing calculator, calendar, normal calculator, dual time clock, moon phase graphic and moon age, and shortcuts. The only JS-fitted feature right now is the dual time clock. Here’s what it looks like right now:
I am finally about to ship my project. I thought that the Moon Phase would take the longest to code, but it ended up being the calculator that was most difficult. I also added JS for the calendar and made a quick access links bar at the bottom. I COMPLETELY revamped the design, taking inspiration from both Apple’s Liquid Glass and Stardance’s own website to style it. I’m pretty darn proud of my work on this project. Here’s what it looks like right now:
Ships:
I made a new tab page for anyone to use day-to-day. It was challenging to make the JS for the calculator, as well as styling my site to look like liquid glass. I most enjoyed styling my site, as I could see my site come together aesthetically. I really enjoyed making my site, a well-spent 8 hours not gonna lie....
|
1793155773.7628336
|
1793242173.7628336
|
|
67862
|
b4uSend by @akshat_singh1738 | Stardance
|
akshat_singh1738
|
1
|
19.39
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-09T15:18:03Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "b4usend — a message analyzer :) b4usend is basically a browser extension that analyzes your messages before you send them and it looks at things like politeness, friendliness, frustration, hostility, sarcasm, and urgency to give you a better idea of how your message might come across. SO instead of just matching keywords it uses contextual rules to analyze the way a message is written. The goal is to make communication analysis more useful without jumping to any conclusions based on individual words. How does this improve quality of life? well for one , it gives you a better understadning of how your message might sound to a reader second , it gives you feedback without disrupting the writing process lastly and most importantly it makes private message analysis much easier to access(as it runs locally) What it does It detects around 19 different communication signals. Analyzes messages as you type. Provides confidence scores for its analysis. Uses contextual analysis to reduce false positives. Runs locally, without external API calls for message analysis(for your privacy:)) supports Chrome and other Chromium-based browsers. Try it out here https://b4usend-web.vercel.app/newuser.html", "repo": "https://github.com/darthkenobi2407/b4uSend", "demo": "https://b4usend-web.vercel.app/newuser.html"}]...
|
[{"post_id": 80305, "ts": "202 [{"post_id": 80305, "ts": "2026-10-17T06:33:16Z", "hours": 8.3892, "text": "FINALLY DONE!!!! added the last of changes and worked on the algo and im ready to go!"}, {"post_id": 78082, "ts": "2026-10-09T14:49:59Z", "hours": 1.7333, "text": "DEVLOG 3: b4usend is shipping!!!!!!! (TL;DR: Finished the analyzer, revamped the extension UI, and added a new-user installation guide.) Finally shipping b4usend!!I made the last finishing touches to the nlp analyzer, improved the ui for options.html and popup.html , and added a new newuser.html page which guides users through setting up the extension. The goal was nasically to make b4usend feel more complete and easier to use and not just have the analysis working in the background though it’s still an early version and the analyzer definitely has room to improve but I’m happy to finally get it out there instead of endlessly tweaking it(which i will) for those who saw this in its initial stages thanks for following the journey and remember that this is just the beginning!!"}, {"post_id": 77106, "ts": "2026-10-05T17:20:37Z", "hours": 3.8628, "text": "DEVLOG 2: (TD;DR: built the base of b4uSend’s local rule based NLP system with 19 communication signals and context aware scoring) . Started working on my NLP system that powers b4usend . So essentially today i built the base for a rule based NLP text analysis system . My analyzer works by using 19 communication signals which include politeness, warmth , friendliness, warmth , frustration , hostility , pressure , urgency , blame and so on and the way this works is by using context aware scoring so it doesn’t simply look for keywords but rather it looks around a phrase to see if its being negated , hedged , used in a conditional way , quoted and so on . So for negation handling, words such as not ,never , can’t , don’t etc reduce the strength of the detected signal . For hedging detection words or phrases such as “maybe” “i guess” “probably” lower the certainty . Detecting conditionals such as “if” “when” “could” and so on can affect the confidence of interpretation. Also there is signal specific context where for instance hostility to yourself is treated as different form hostility to others and things like blame need evidence of a target , things like sarcasm should get special treatment as positive words can be used sarcastically and polite wording can be downgraded if the surrounding text seems sarcastic , to detect intensity we use indicators like multiple occurrences of “!” or “?” or strong words like “absolutely” or “totally” etc . Formality detection is done by categorizing words like “furthermore” , “respectfully” etc into formal and words like “yo” , “gonna” , “wanna” etc as casual and thus finally gives us a confidence score based on the number of patterns found , message length and contextual cues . The main benefit of this is that its completely local and doesn’t send your messages to an ai model elsewhere and all processing is done locally . I’ve just started and have a very basic version right now but will update it very frequently"}, {"post_id": 76910, "ts": "2026-10-05T01:45:08Z", "hours": 5.2436, "text": "hi!! so im building a browser extension that helps you see how a message might land before you send it and now i have a basic working prototype but ive got a long way to go in making the analysis actually useful rather than making it generic."}]...
|
Title: b4uSend by @akshat_singh1738 | Stardance
D Title: b4uSend by @akshat_singh1738 | Stardance
Devlogs:
hi!! so im building a browser extension that helps you see how a message might land before you send it and now i have a basic working prototype but ive got a long way to go in making the analysis actually useful rather than making it generic.
DEVLOG 2: (TD;DR: built the base of b4uSend’s local rule based NLP system with 19 communication signals and context aware scoring) . Started working on my NLP system that powers b4usend . So essentially today i built the base for a rule based NLP text analysis system . My analyzer works by using 19 communication signals which include politeness, warmth , friendliness, warmth , frustration , hostility , pressure , urgency , blame and so on and the way this works is by using context aware scoring so it doesn’t simply look for keywords but rather it looks around a phrase to see if its being negated , hedged , used in a conditional way , quoted and so on . So for negation handling, words such as not ,never , can’t , don’t etc reduce the strength of the detected signal . For hedging detection words or phrases such as “maybe” “i guess” “probably” lower the certainty . Detecting conditionals such as “if” “when” “could” and so on can affect the confidence of interpretation. Also there is signal specific context where for instance hostility to yourself is treated as different form hostility to others and things like blame need evidence of a target , things like sarcasm should get special treatment as positive words can be used sarcastically and polite wording can be downgraded if the surrounding text seems sarcastic , to detect intensity we use indicators like multiple occurrences of “!” or “?” or strong words like “absolutely” or “totally” etc . Formality detection is done by categorizing words like “furthermore” , “respectfully” etc into formal and words like “yo” , “gonna” , “wanna” etc as casual and thus finally gives us a confidence score based on the number of patterns found , message length and contextual cues . The main benefit of this is that its completely local and doesn’t send your messages to an ai model elsewhere and all processing is done locally . I’ve just started and have a very basic version right now but will update it very frequently
DEVLOG 3: b4usend is shipping!!!!!!! (TL;DR: Finished the analyzer, revamped the extension UI, and added a new-user installation guide.) Finally shipping b4usend!!I made the last finishing touches to the nlp analyzer, improved the ui for options.html and popup.html , and added a new newuser.html page which guides users through setting up the extension. The goal was nasically to make b4usend feel more complete and easier to use and not just have the analysis working in the background though it’s still an early version and the analyzer definitely has room to improve but I’m happy to finally get it out there instead of endlessly tweaking it(which i will) for those who saw this in its initial stages thanks for following the journey and remember that this is just the beginning!!
FINALLY DONE!!!! added the last of changes and worked on the algo and im ready to go!
Ships:
b4usend — a message analyzer :) b4usend is basically a browser extension that analyzes your messages before you send them and it looks at things like politeness, friendliness, frustration, hostility, sarcasm, and urgency to give you a better idea of how your message might come across. SO instead of just matching keywords it uses contextual rules to analyze the way a message is written. The goal is to make communication analysis more useful without jumping to any conclusions based on individual words. How does this improve quality of life? well for one , it gives you a better understadning of how your message might sound to a reader second , it gives you feedback without disrupting the writing process lastly and most importantly it makes private message analysis much easier to access(as it runs locally) What it does It detects around 19 different communication signals. Analyzes messages as you type. Provides confidence scores for its analysis. Uses contextual analysis to reduce false positives. Runs locally, without external API calls for message analysis(for your privacy:)) supports Chrome and other Chromium-based browsers. Try it out here https://b4usend-web.vercel.app/newuser.html...
|
1793217153.5910203
|
1793303553.5910203
|
|
63616
|
stock value analysis by @senthilnathan_arun | Star stock value analysis by @senthilnathan_arun | Stardance...
|
senthilnathan_arun
|
0
|
11.69
|
0
|
[]
|
[{"post_id": 80304, "ts": "202 [{"post_id": 80304, "ts": "2026-10-17T06:32:43Z", "hours": 0.3692, "text": "now i added sma and fixed the metrics"}, {"post_id": 80300, "ts": "2026-10-17T05:54:53Z", "hours": 9.5439, "text": "i have finally made the multi-stock analysis work. i also have normalized prices function as you see here, this helps you to see the growth rate even with a large price diff for assets like btc and gold and aapl . also added a download button to make a csv file for the user to download"}, {"post_id": 70450, "ts": "2026-09-19T06:56:25Z", "hours": 1.2364, "text": "now you can chose different stocks and timeline and streamlit will create a line graph"}, {"post_id": 70410, "ts": "2026-09-19T04:14:47Z", "hours": 0.5411, "text": "i am creating a web app for stocks , its still barebons but i will make it better"}]...
|
Title: stock value analysis by @senthilnathan_arun Title: stock value analysis by @senthilnathan_arun | Stardance
Devlogs:
i am creating a web app for stocks , its still barebons but i will make it better
now you can chose different stocks and timeline and streamlit will create a line graph
i have finally made the multi-stock analysis work. i also have normalized prices function as you see here, this helps you to see the growth rate even with a large price diff for assets like btc and gold and aapl . also added a download button to make a csv file for the user to download
now i added sma and fixed the metrics...
|
1793051682.1141808
|
1793656482.1141808
|
|
70144
|
Scholarship Tracker by @lee264 | Stardance
|
lee264
|
0
|
3.14
|
0
|
[]
|
[{"post_id": 80303, "ts": "202 [{"post_id": 80303, "ts": "2026-10-17T06:32:05Z", "hours": 3.1392, "text": "Coded very basic code to make it have a working baseline. I had some trouble since I haven’t coded in awhile because of school, but the python docs definitely helped. A problem I encountered was the complicated expressions called regex, which I asked copilot to explain and embed it into my code (used it for less than 5 minutes) . The script now has comments and try/except statements to handle errors. A problem I encountered was retaining all the information I learned prior to this project. Hopefully I’ll get it done this week."}]...
|
Title: Scholarship Tracker by @lee264 | Stardance
Title: Scholarship Tracker by @lee264 | Stardance
Devlogs:
Coded very basic code to make it have a working baseline. I had some trouble since I haven’t coded in awhile because of school, but the python docs definitely helped. A problem I encountered was the complicated expressions called regex, which I asked copilot to explain and embed it into my code (used it for less than 5 minutes) . The script now has comments and try/except statements to handle errors. A problem I encountered was retaining all the information I learned prior to this project. Hopefully I’ll get it done this week....
|
1792958104.2053924
|
1793822104.2053924
|
|
9536
|
AI collision detector by @shivamgupta_official13 | AI collision detector by @shivamgupta_official13 | Stardance...
|
shivamgupta_official13
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-13T12:11:11Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made a AI collsion detector which can detect colssions and do the object tracking too. its use can be tweaked and changed too.I have coded this in python and us ed the architecture transfomers for it and also used open cv for the main camera use while running the model and making this model was hard too beucase after making the model and then training it on google colab there were many dimesion matching errors and the time history errors of the open cv and etc more but I did evnetually fix it and got the model weigths and then made the github repo which ahs evrything from the library needed to run the model and the traning code but its not needed as i have also kept the model weights folder and also the code to run the model", "repo": "https://github.com/Shivam430-stack/Ai-collision-detector", "demo": "https://huggingface.co/spaces/Shivam-430/Ai-collsion-detector"}]...
|
[{"post_id": 8030, "ts": "2026 [{"post_id": 8030, "ts": "2026-06-13T12:03:42Z", "hours": 0.5039, "text": "i have made the more changes need for a better readbality and some chnages for better warning statements and a better bias ratio in the code so the ai model detects much better wihtout being too senstive and the github repo is all done mostly too any updates i will post a devlog and change it."}, {"post_id": 4113, "ts": "2026-06-07T09:40:53Z", "hours": 2.3828, "text": "Hi ,I was working on a transformer based Ai model which is an time series sequence classifier with also using and encoder and decoder .this time series transformer unlike other models like gpt which are decoder only and basic vision models use encoder only ,my model uses both halves and the encoder ingests the past values and processes 15 frame history matrix of coordinates (x,y,area) to check for the speed,patterns and movement contexts while the decoder takes the multi head attention map outputted by the encoder and cacultes what state it looks like in edge of impact or futute_state also and also uses cross-layer entropy loss or the weigthed croos layer entropy loss in my training code to take and check the diffrence between what the model thinks and waht the label is (collision,warn,safe) and it penalized the model heavily if it is confident in a wrong answer or a prediction. you can also see a picture below of my rc car crashing into the wall and see it flags it as a collision.you can also try out my model by visting my project repository and look at the instructions and in depth detail of my project and the Ai model."}]...
|
Title: AI collision detector by @shivamgupta_offic Title: AI collision detector by @shivamgupta_official13 | Stardance
Devlogs:
Hi ,I was working on a transformer based Ai model which is an time series sequence classifier with also using and encoder and decoder .this time series transformer unlike other models like gpt which are decoder only and basic vision models use encoder only ,my model uses both halves and the encoder ingests the past values and processes 15 frame history matrix of coordinates (x,y,area) to check for the speed,patterns and movement contexts while the decoder takes the multi head attention map outputted by the encoder and cacultes what state it looks like in edge of impact or futute_state also and also uses cross-layer entropy loss or the weigthed croos layer entropy loss in my training code to take and check the diffrence between what the model thinks and waht the label is (collision,warn,safe) and it penalized the model heavily if it is confident in a wrong answer or a prediction. you can also see a picture below of my rc car crashing into the wall and see it flags it as a collision.you can also try out my model by visting my project repository and look at the instructions and in depth detail of my project and the Ai model.
i have made the more changes need for a better readbality and some chnages for better warning statements and a better bias ratio in the code so the ai model detects much better wihtout being too senstive and the github repo is all done mostly too any updates i will post a devlog and change it.
Ships:
I have made a AI collsion detector which can detect colssions and do the object tracking too. its use can be tweaked and changed too.I have coded this in python and us ed the architecture transfomers for it and also used open cv for the main camera use while running the model and making this model was hard too beucase after making the model and then training it on google colab there were many dimesion matching errors and the time history errors of the open cv and etc more but I did evnetually fix it and got the model weigths and then made the github repo which ahs evrything from the library needed to run the model and the traning code but its not needed as i have also kept the model weights folder and also the code to run the model...
|
1793098148.363664
|
1793184548.363664
|
|
854
|
BigBertha by @arnab_sahu | Stardance
|
arnab_sahu
|
0
|
4.62
|
0
|
[]
|
[{"post_id": 803, "ts": "2026- [{"post_id": 803, "ts": "2026-06-02T14:00:41Z", "hours": 4.6225, "text": "A supervised ML model to classify galaxies. First successful run of my supervised model, to classify galaxy images into 37 morphological (shape) categories. The run saw success in ROC-AUC ( 0.8450 ) but was failing in Test Binary accuracy."}]...
|
Title: BigBertha by @arnab_sahu | Stardance
Devlo Title: BigBertha by @arnab_sahu | Stardance
Devlogs:
A supervised ML model to classify galaxies. First successful run of my supervised model, to classify galaxy images into 37 morphological (shape) categories. The run saw success in ROC-AUC ( 0.8450 ) but was failing in Test Binary accuracy....
|
1792583676.2352226
|
1793188476.2352226
|
|
70095
|
NewPage by @avycado13 | Stardance
|
avycado13
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T04:29:37Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a new tab page that shows an image from the NASA image of the day RSS Feed. It has a search bar that feeds your query in to duckduckgo.", "repo": "https://github.com/avycado13/newpage", "demo": "https://avycado13.github.io/newpage"}]...
|
[{"post_id": 80291, "ts": "202 [{"post_id": 80291, "ts": "2026-10-17T04:11:29Z", "hours": 1.1633, "text": "Instead of using the APOD API which is broken, render images from NASA Image of the day RSS Feed"}]...
|
Title: NewPage by @avycado13 | Stardance
Devlogs: Title: NewPage by @avycado13 | Stardance
Devlogs:
Instead of using the APOD API which is broken, render images from NASA Image of the day RSS Feed
Ships:
I made a new tab page that shows an image from the NASA image of the day RSS Feed. It has a search bar that feeds your query in to duckduckgo....
|
1793199043.7852807
|
1793285443.7852807
|
|
47888
|
Phone Usage by @explodeywolf | Stardance
|
explodeywolf
|
2
|
96.0
|
577
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T02:55:14Z", "hours": 45.0, "multiplier": 8.38, "payout": 377, "blessing": "neutral", "text": "I have updated my app! I saw a lot of people wanted analytics - so I have added analytics! If you hover over the pie chart you can see the labels and exact durations. I made everything a lot more memory efficient by rewriting the service that writes the usage data to the disk in kotlin. I added a final display type! It’s a clock(see the hands? That’s how you can tell) I modeled the clock off of the clock in the google clock app. But, I made it in inkscape, then used Flutter’s custom painters to write down everything else! You can even zoom in! If you have an android phone, please try it out! Thank you!", "repo": "https://gitlab.com/peanutplays61/phone-usage", "demo": "https://gitlab.com/peanutplays61/phone-usage/-/releases"}, {"ship_num": 2, "ts": "2026-08-28T21:38:58Z", "hours": 51.0, "multiplier": 6.68, "payout": 200, "blessing": "neutral", "text": "Phone Usage is an android app that displays when you turned on and off your phone, every day. This can be really useful, not just if you want to track your phone usage, and when it happens. You can also use this information to pinpoint what time, for example, you turned off your phone and went to bed. Unfortunately this app is only available as an apk for now, but I am waiting on f-droid to post it on their store! I also made the app pretty customizable, so you can change the color and layout of the app.", "repo": "https://gitlab.com/peanutplays61/phone-usage", "demo": "https://gitlab.com/peanutplays61/phone-usage/-/releases"}]...
|
[{"post_id": 80280, "ts": "202 [{"post_id": 80280, "ts": "2026-10-17T02:51:56Z", "hours": 6.9019, "text": "I’m finally done! I can finally free myself from this app! I made the clock support a fullscreen mode, where viewing landscape is MUCH better. Look at that zoom! Also, I felt like using the red colorscheme for this picture."}, {"post_id": 78782, "ts": "2026-10-11T16:18:04Z", "hours": 9.9444, "text": "Oh boy! I’m trying to add a new display type: A clock! This was my original dream for this project, so I have to make it work! Luckily, flutter comes with a widget that handles zooming, but I had to implement the text, the drawing, the usage info display, the fake hands, and the occlusion culling by myself. I’m almost done! I just need to make it work in the selection page."}, {"post_id": 72829, "ts": "2026-09-23T20:33:45Z", "hours": 3.0381, "text": "I added some quips about your screen time! There’s also a little bit deeper analysis, but you can’t get too much information from just when you turn on and off your phone."}, {"post_id": 71341, "ts": "2026-09-20T17:41:29Z", "hours": 7.4064, "text": "I made a pie chart for usage time! Why did it take me 7 hours? Good question! Unfortunately I couldn’t find a pie chart library on flutter that offered tooltips, so unfortunately I had to make it myself. I use FlCharts for the pie charts, but I do all the stuff for touch highlighting and tooltips. Again. I’ve gotta learn to accept what I have. (the section I’m touching is the one in purple)"}, {"post_id": 69378, "ts": "2026-09-16T22:44:41Z", "hours": 3.9875, "text": "I spent a ton of time making animations for this, but unfortunately I can’t show an animation! But I also finished the dropdown for the analytics :) Now I just need the analytics!"}, {"post_id": 63917, "ts": "2026-09-07T23:17:47Z", "hours": 9.535, "text": "I’m trying to make some analytics! Unfortunately though, I want there to be editable date ranges and that needs a dialog, which means it closes the drop-down. So, I’m making my own. This is the most complex thing I’ve ever done. 5 hours later, this is what I have!"}, {"post_id": 61638, "ts": "2026-09-04T17:05:59Z", "hours": 4.13, "text": "I fixed a bug where the display type wouldn’t save properly! Technically it was an off-by-one error :( I decoded the saved state based off of the index in the array instead of the id, which is what I saved. This is what it was supposed to look like!"}, {"post_id": 56886, "ts": "2026-08-28T21:31:44Z", "hours": 10.1475, "text": "Didn’t go too far over this time! I think I’m done making this app. If anything, I’ll make it a little more performant later, but it’s ready to ship :) I used appmockup to make some pictures for it."}, {"post_id": 52639, "ts": "2026-08-22T21:31:19Z", "hours": 15.3125, "text": "Accidentally went over the 10h limit again! oops! Phone Usage now has settings! You can change the display type of data, as well as the color of the application! Material colors are also supported!!!"}, {"post_id": 47091, "ts": "2026-08-14T18:44:02Z", "hours": 25.1039, "text": "I got my first MVP(minimum viable product)! I’m also trying to get my app uploaded to fdroid, an android open source app store."}]...
|
Title: Phone Usage by @explodeywolf | Stardance
D Title: Phone Usage by @explodeywolf | Stardance
Devlogs:
I got my first MVP(minimum viable product)! I’m also trying to get my app uploaded to fdroid, an android open source app store.
Accidentally went over the 10h limit again! oops! Phone Usage now has settings! You can change the display type of data, as well as the color of the application! Material colors are also supported!!!
Didn’t go too far over this time! I think I’m done making this app. If anything, I’ll make it a little more performant later, but it’s ready to ship :) I used appmockup to make some pictures for it.
I fixed a bug where the display type wouldn’t save properly! Technically it was an off-by-one error :( I decoded the saved state based off of the index in the array instead of the id, which is what I saved. This is what it was supposed to look like!
I’m trying to make some analytics! Unfortunately though, I want there to be editable date ranges and that needs a dialog, which means it closes the drop-down. So, I’m making my own. This is the most complex thing I’ve ever done. 5 hours later, this is what I have!
I spent a ton of time making animations for this, but unfortunately I can’t show an animation! But I also finished the dropdown for the analytics :) Now I just need the analytics!
I made a pie chart for usage time! Why did it take me 7 hours? Good question! Unfortunately I couldn’t find a pie chart library on flutter that offered tooltips, so unfortunately I had to make it myself. I use FlCharts for the pie charts, but I do all the stuff for touch highlighting and tooltips. Again. I’ve gotta learn to accept what I have. (the section I’m touching is the one in purple)
I added some quips about your screen time! There’s also a little bit deeper analysis, but you can’t get too much information from just when you turn on and off your phone.
Oh boy! I’m trying to add a new display type: A clock! This was my original dream for this project, so I have to make it work! Luckily, flutter comes with a widget that handles zooming, but I had to implement the text, the drawing, the usage info display, the fake hands, and the occlusion culling by myself. I’m almost done! I just need to make it work in the selection page.
I’m finally done! I can finally free myself from this app! I made the clock support a fullscreen mode, where viewing landscape is MUCH better. Look at that zoom! Also, I felt like using the red colorscheme for this picture.
Ships:
Phone Usage is an android app that displays when you turned on and off your phone, every day. This can be really useful, not just if you want to track your phone usage, and when it happens. You can also use this information to pinpoint what time, for example, you turned off your phone and went to bed. Unfortunately this app is only available as an apk for now, but I am waiting on f-droid to post it on their store! I also made the app pretty customizable, so you can change the color and layout of the app.
I have updated my app! I saw a lot of people wanted analytics - so I have added analytics! If you hover over the pie chart you can see the labels and exact durations. I made everything a lot more memory efficient by rewriting the service that writes the usage data to the disk in kotlin. I added a final display type! It’s a clock(see the hands? That’s how you can tell) I modeled the clock off of the clock in the google clock app. But, I made it in inkscape, then used Flutter’s custom painters to write down everything else! You can even zoom in! If you have an android phone, please try it out! Thank you!...
|
1793094476.074534
|
1793180876.074534
|
|
70124
|
Novite Media Player by @robin | Stardance
|
robin
|
0
|
3.19
|
0
|
[]
|
[{"post_id": 80275, "ts": "202 [{"post_id": 80275, "ts": "2026-10-17T02:27:48Z", "hours": 3.185, "text": "NOVITE Devlog #1 Alright, so NOVITE actually works now. For anyone just joining, it’s a little media player I’m building in Python with ffmpeg and Qt. It can open any video file you throw at it and there’s a slider so you can skip around instead of watching everything from the start. That’s all it does so far, but it does it. The video wouldn’t show up This one annoyed me for a while. The file loaded fine, no errors, just a black box where the video should be. Turns out I was using “SP” when passing the frame to Qt instead of the proper format constant, and PyQt6 just quietly said no. ffmpeg was innocent the whole time, it was totally my fault. Changed one line and boom, video. An hour of my life spent blaming the wrong thing. The slider was decorative Yeah. The slider was there, it even moved with the video, but you couldn’t actually touch it. Clicking did nothing, dragging did nothing. Just a progress bar cosplaying as a slider. The reason? I forgot to hook it up to the media player’s position. That’s it. That was the whole bug. Connected it and suddenly it works like a real seek bar, click anywhere, drag it around, the works. What’s next Volume control. Should’ve been in from the start, honestly. Right now it’s loud and you just deal with it. Replay/loop button. For when you want to watch the same thing again without clicking anything. Make it not ugly. It’s very gray and default right now. I’m thinking dark theme, nicer sliders, some personality. NOVITE sounds like it should look cool, and right now it does not. That’s the update. I’ll write again once volume exists and the app stops looking like a school project."}]...
|
Title: Novite Media Player by @robin | Stardance
Title: Novite Media Player by @robin | Stardance
Devlogs:
NOVITE Devlog #1 Alright, so NOVITE actually works now. For anyone just joining, it’s a little media player I’m building in Python with ffmpeg and Qt. It can open any video file you throw at it and there’s a slider so you can skip around instead of watching everything from the start. That’s all it does so far, but it does it. The video wouldn’t show up This one annoyed me for a while. The file loaded fine, no errors, just a black box where the video should be. Turns out I was using “SP” when passing the frame to Qt instead of the proper format constant, and PyQt6 just quietly said no. ffmpeg was innocent the whole time, it was totally my fault. Changed one line and boom, video. An hour of my life spent blaming the wrong thing. The slider was decorative Yeah. The slider was there, it even moved with the video, but you couldn’t actually touch it. Clicking did nothing, dragging did nothing. Just a progress bar cosplaying as a slider. The reason? I forgot to hook it up to the media player’s position. That’s it. That was the whole bug. Connected it and suddenly it works like a real seek bar, click anywhere, drag it around, the works. What’s next Volume control. Should’ve been in from the start, honestly. Right now it’s loud and you just deal with it. Replay/loop button. For when you want to watch the same thing again without clicking anything. Make it not ugly. It’s very gray and default right now. I’m thinking dark theme, nicer sliders, some personality. NOVITE sounds like it should look cool, and right now it does not. That’s the update. I’ll write again once volume exists and the app stops looking like a school project....
|
1792958078.0642283
|
1793562878.0642283
|
|
69860
|
Paper_Trading by @Ankit_7 | Stardance
|
Ankit_7
|
0
|
2.79
|
0
|
[]
|
[{"post_id": 80274, "ts": "202 [{"post_id": 80274, "ts": "2026-10-17T02:27:32Z", "hours": 2.0525, "text": "Just complete the project by making dashboard , history, leaderboard, Portfolio ."}, {"post_id": 79812, "ts": "2026-10-15T14:53:17Z", "hours": 0.7419, "text": "Making a webpage for paper trading. Login page done"}]...
|
Title: Paper_Trading by @Ankit_7 | Stardance
Devl Title: Paper_Trading by @Ankit_7 | Stardance
Devlogs:
Making a webpage for paper trading. Login page done
Just complete the project by making dashboard , history, leaderboard, Portfolio ....
|
1792878638.5642982
|
1793483438.5642982
|
|
50061
|
mini maraca cracker by @Nolan-L-from-Milorad | Sta mini maraca cracker by @Nolan-L-from-Milorad | Stardance...
|
Nolan-L-from-Milorad
|
0
|
15.5
|
0
|
[]
|
[{"post_id": 80269, "ts": "202 [{"post_id": 80269, "ts": "2026-10-17T01:39:04Z", "hours": 4.19, "text": "I did a tonne of minor case work for the device and got it all buttoned up and added a power LED. . I also filmed and edited a video advertising and showing off the maraca cracker 2000 with my friend and totally did not rip off dankpods in the process by blowing up earbuds and overdriving speakers that I couldn’t lapse BECAUSE LAPSE DOESN’T WORK ON LINUX (please fix this nothing works about it I have brought this up multiple times in stardance-help in slack and I’ve gotten nothing) . NEXT: I need to pull all the documentation (that I still need to make) and files into a gitlab repo"}, {"post_id": 74738, "ts": "2026-09-28T03:07:51Z", "hours": 2.2236, "text": "After more case work we have a top for it and the best branding known to humankind MARACA CRACKER 2,000!!!!!!! I’m really happy to see this project come together as well as it has I did a majour boo-boo where I moddeled the case as if the amp was 15mm wider and on the remodel I mucked up the case’s screw holes that I now realise I really need two more of. will do more soon"}, {"post_id": 70447, "ts": "2026-09-19T06:33:51Z", "hours": 1.0833, "text": "More case work with fusion, not terribly interesting but it must be done :( The volume knob now fits and the audio input is screwed into the case as well. I’m contemplating the design for the final case too. I must first do the basic case then make it look nice once that is done I can add cool patterns, text and MARACA CRACKER 2,000!!!!! MUST MAKE DADDY DANKPODS PROUD (lol) I’ll blow up some dirtybuds in the demo video too! (or at least try)"}, {"post_id": 61955, "ts": "2026-09-05T04:22:53Z", "hours": 4.3492, "text": "I recently locked in and did a tonne (kinda forgot to post a bit) But I started designing a case in fusion 360 (FreeCad stinks) I also put screw terminals on the side with a DC barrel jack for power input (edit I put a picture in as I realized I completely forgot to add one LOL :3)"}, {"post_id": 49446, "ts": "2026-08-18T09:13:08Z", "hours": 1.4833, "text": "I’ve kept myself busy! I’ve soldered in the socket and part of the right channel, the rest of the circuit’s parts have been pushed in and I will solder them in the morning. additionally I have soldered up left / right RCA jacks and a volume knob out of two trimpots vertically mounted and attached with a board at the top. This is all going surprisingly well considering the complexity of building a dual-channel amplifier with just the datasheet’s schematic to go off of!"}, {"post_id": 49123, "ts": "2026-08-17T19:12:18Z", "hours": 2.1742, "text": "My goal for this project is to build a small high power amplifier that also doesn’t look trash and start fires. BUT STILL PLAYS SCARLET FIRE I just dropped $50 NZD at jaycar for parts for this project 💀 somehow I managed to perfectly assemble one channel just out of following the datasheet’s example schematic, I know I’m amazed too but miracles happen! attached is the schematic I was using and a picture of what I built"}]...
|
Title: mini maraca cracker by @Nolan-L-from-Milora Title: mini maraca cracker by @Nolan-L-from-Milorad | Stardance
Devlogs:
My goal for this project is to build a small high power amplifier that also doesn’t look trash and start fires. BUT STILL PLAYS SCARLET FIRE I just dropped $50 NZD at jaycar for parts for this project 💀 somehow I managed to perfectly assemble one channel just out of following the datasheet’s example schematic, I know I’m amazed too but miracles happen! attached is the schematic I was using and a picture of what I built
I’ve kept myself busy! I’ve soldered in the socket and part of the right channel, the rest of the circuit’s parts have been pushed in and I will solder them in the morning. additionally I have soldered up left / right RCA jacks and a volume knob out of two trimpots vertically mounted and attached with a board at the top. This is all going surprisingly well considering the complexity of building a dual-channel amplifier with just the datasheet’s schematic to go off of!
I recently locked in and did a tonne (kinda forgot to post a bit) But I started designing a case in fusion 360 (FreeCad stinks) I also put screw terminals on the side with a DC barrel jack for power input (edit I put a picture in as I realized I completely forgot to add one LOL :3)
More case work with fusion, not terribly interesting but it must be done :( The volume knob now fits and the audio input is screwed into the case as well. I’m contemplating the design for the final case too. I must first do the basic case then make it look nice once that is done I can add cool patterns, text and MARACA CRACKER 2,000!!!!! MUST MAKE DADDY DANKPODS PROUD (lol) I’ll blow up some dirtybuds in the demo video too! (or at least try)
After more case work we have a top for it and the best branding known to humankind MARACA CRACKER 2,000!!!!!!! I’m really happy to see this project come together as well as it has I did a majour boo-boo where I moddeled the case as if the amp was 15mm wider and on the remodel I mucked up the case’s screw holes that I now realise I really need two more of. will do more soon
I did a tonne of minor case work for the device and got it all buttoned up and added a power LED. . I also filmed and edited a video advertising and showing off the maraca cracker 2000 with my friend and totally did not rip off dankpods in the process by blowing up earbuds and overdriving speakers that I couldn’t lapse BECAUSE LAPSE DOESN’T WORK ON LINUX (please fix this nothing works about it I have brought this up multiple times in stardance-help in slack and I’ve gotten nothing) . NEXT: I need to pull all the documentation (that I still need to make) and files into a gitlab repo...
|
1792615992.361011
|
1793220792.361011
|
|
70116
|
Javascript by @syedakhter | Stardance
|
syedakhter
|
1
|
2.0
|
1
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T01:23:32Z", "hours": 2.0, "multiplier": 1.01, "payout": 1, "blessing": "neutral", "text": "I made a website with some random JavaScript I am trying out JavaScript.", "repo": "https://github.com/8051987-eng/Javascript", "demo": "https://8051987-eng.github.io/Javascript/"}]...
|
[{"post_id": 80267, "ts": "202 [{"post_id": 80267, "ts": "2026-10-17T01:22:01Z", "hours": 2.12, "text": "I website with javascript"}]...
|
Title: Javascript by @syedakhter | Stardance
Devl Title: Javascript by @syedakhter | Stardance
Devlogs:
I website with javascript
Ships:
I made a website with some random JavaScript I am trying out JavaScript....
|
1793112858.4883344
|
1793199258.4883344
|
|
41357
|
Normal Golf game Multiplayer Mod by @Mr-Milky-Way Normal Golf game Multiplayer Mod by @Mr-Milky-Way | Stardance...
|
Mr-Milky-Way
|
0
|
57.65
|
0
|
[]
|
[{"post_id": 80264, "ts": "202 [{"post_id": 80264, "ts": "2026-10-17T00:33:25Z", "hours": 33.2419, "text": "NOW I KNOW THIS LOOKS BAD, BUT IT’S NOT MY FAULT ( mostly ) Ok, so my last devlog was 3 months ago, and not devloging was like 60% not my fault. Basically, I was making a lot of official bug reports for the game, do to, ya know, making a multiplayer mod. So after I posted that last devlog (like 2 weeks lol) luke asked me if I wanted to be a beta tester, and obv I said yes, part of that was that I couldn’t share anything about what will be in the game, which also means pictures, or any code for my mod (bc that might leak smt related to the game). So I just didn’t devlog, then forgot about stardance :( BUT I have a lot of cool things to show off: I spent a lot of time working on the character models, I wanted something that would fit the vibe, and after a little bit of work (and a few models) I pulled one of the videos of Luke from the files and made that the character model. I think it fits the vibe and is pretty cool. I also got the map to sync up so that if the host changes the map (like opens a gate) it also opens on the client side. That took awhile to get right and is kinda unoptimized, but it works I also added AUIDO!!! This took waayyyyy to long and it kinda jank, BUT it works, ball sounds come from that players ball, and global sounds are, well… global. Next up scoring and better other players ball trails: I added 2 scoring modes, one from Nintendo switch sports golf, and the other is just normal golf. Along with the scoreboard I also made it so that each player would have there own ball color. Oh also I did some bug fixes lol, hard to test a multiplayer mod with 1 client lmao (I have some testers now tho) also added steam overlay support so you can join them from steam overlay PICS/DEMOS Check out this crazy shot done using my multiplayer mod :) Player model A bunch of score card stuff Ball trails with player color (example)"}, {"post_id": 36838, "ts": "2026-07-29T04:53:00Z", "hours": 24.4064, "text": "Welp it happened again, Signed up for a hack club event then forgot about it till I was already past 10 hours on multiple projects Anyways, this is a mod for a unity game called Normal Golf Game by Luke Muscat (The guy that made Fruit Ninja and Jetpack Joyride). It adds multiplayer. Currently it supports 2 different frameworks (Photon Fusion and Steamworks). This is because I’m lazy i set up the whole thing to work with fusion first instead of just learning steamworks. Fusion has a free version that works with unity, but it has a 20 player limit. Steamworks is free and has no player limit, which is why it’s better. BUT normally photon fusion is easier to set up with unity, and I already know it so thats why I started with it. I learned at about the 6 hour mark that photon fusion is only easy for unity… when you are not modding. I also made the mistake of not setting up git at the start so when I swapped over to Steamworks I would have to start a git repo or just delete all of my code. So I did neither and added a Steamworks build option and a Fusion option so that I could build for both of them. (I set up a git repo at after a little while tho) Oh btw the game isn’t even out yet, I made all of this for the demo. Learning Steamworks was really easy but hindsight is 20/20 or smt ig. I even filmed a trickshot with it Pics in order Pic of Room host/Join menu pic of the shot perceptive of that trickshot i hit (Other player is visible as a cylinder) I wish I had more to show, but this is it for now If anyone has any ideas on what the player model should be I am very open to suggestions."}]...
|
Title: Normal Golf game Multiplayer Mod by @Mr-Mil Title: Normal Golf game Multiplayer Mod by @Mr-Milky-Way | Stardance
Devlogs:
Welp it happened again, Signed up for a hack club event then forgot about it till I was already past 10 hours on multiple projects Anyways, this is a mod for a unity game called Normal Golf Game by Luke Muscat (The guy that made Fruit Ninja and Jetpack Joyride). It adds multiplayer. Currently it supports 2 different frameworks (Photon Fusion and Steamworks). This is because I’m lazy i set up the whole thing to work with fusion first instead of just learning steamworks. Fusion has a free version that works with unity, but it has a 20 player limit. Steamworks is free and has no player limit, which is why it’s better. BUT normally photon fusion is easier to set up with unity, and I already know it so thats why I started with it. I learned at about the 6 hour mark that photon fusion is only easy for unity… when you are not modding. I also made the mistake of not setting up git at the start so when I swapped over to Steamworks I would have to start a git repo or just delete all of my code. So I did neither and added a Steamworks build option and a Fusion option so that I could build for both of them. (I set up a git repo at after a little while tho) Oh btw the game isn’t even out yet, I made all of this for the demo. Learning Steamworks was really easy but hindsight is 20/20 or smt ig. I even filmed a trickshot with it Pics in order Pic of Room host/Join menu pic of the shot perceptive of that trickshot i hit (Other player is visible as a cylinder) I wish I had more to show, but this is it for now If anyone has any ideas on what the player model should be I am very open to suggestions.
NOW I KNOW THIS LOOKS BAD, BUT IT’S NOT MY FAULT ( mostly ) Ok, so my last devlog was 3 months ago, and not devloging was like 60% not my fault. Basically, I was making a lot of official bug reports for the game, do to, ya know, making a multiplayer mod. So after I posted that last devlog (like 2 weeks lol) luke asked me if I wanted to be a beta tester, and obv I said yes, part of that was that I couldn’t share anything about what will be in the game, which also means pictures, or any code for my mod (bc that might leak smt related to the game). So I just didn’t devlog, then forgot about stardance :( BUT I have a lot of cool things to show off: I spent a lot of time working on the character models, I wanted something that would fit the vibe, and after a little bit of work (and a few models) I pulled one of the videos of Luke from the files and made that the character model. I think it fits the vibe and is pretty cool. I also got the map to sync up so that if the host changes the map (like opens a gate) it also opens on the client side. That took awhile to get right and is kinda unoptimized, but it works I also added AUIDO!!! This took waayyyyy to long and it kinda jank, BUT it works, ball sounds come from that players ball, and global sounds are, well… global. Next up scoring and better other players ball trails: I added 2 scoring modes, one from Nintendo switch sports golf, and the other is just normal golf. Along with the scoreboard I also made it so that each player would have there own ball color. Oh also I did some bug fixes lol, hard to test a multiplayer mod with 1 client lmao (I have some testers now tho) also added steam overlay support so you can join them from steam overlay PICS/DEMOS Check out this crazy shot done using my multiplayer mod :) Player model A bunch of score card stuff Ball trails with player color (example)...
|
1792802914.5923064
|
1793407714.5923064
|
|
30695
|
DraftONE by @saharshn | Stardance
|
saharshn
|
0
|
65.66
|
0
|
[]
|
[{"post_id": 80263, "ts": "202 [{"post_id": 80263, "ts": "2026-10-17T00:19:00Z", "hours": 3.9808, "text": "Devlog 15: ALMOST THERE WOOOO made final assembly! made a cool render! Started BOM! so my goal is to get this out by the 20th or 21st, and this is becoming slowly more in reach! cant wait to cross this final stretch!"}, {"post_id": 64495, "ts": "2026-09-08T22:40:40Z", "hours": 17.5486, "text": "Devlog #14: Introducing VKTR so as you can see i did forget to devlog its alr tho i got some INSANE changes watch out Introducing VKTR: it is probably one of the coolest toolheads I have made. Packaging and form factor inspired by the A4T, and front plate styling inspired by the Stealthburner. Utilizes a Wristwatch v3 BMG extruder, and a Bambu Labs P1s Hotend for cost purposes. has two 4010 Blower fans for part cooling, 2510 Intake fan, and 3007 Exhaust fan. The name is inspired by the vectoring i had to use for my ducting but somehow i accidentally put a K instead of a C but didnt notice??? still sounds cool asf tho The entire gantry is reworked to make this voron-compatible and to make this workable with voron toolheads. this allows me to not only use the toolheads I make, but rather the ones anyone in the voron community makes to work on this new V2 Frame with V2 Bed! 220 220 195 total volume, and now its considerable more stable and cleaner looking (with extra space for rgb!!!) as of right now, the entire motion system should be done!!! time for enclosure and elec spacing, and we can actually build this!!!"}, {"post_id": 46114, "ts": "2026-08-13T03:28:20Z", "hours": 4.7422, "text": "Devlog #13: Restructuring I realized I’ve gone about this a completely wrong way. I’ve been overcomplicating this gantry wayy too much, and ended up making this so much more complicated and a LOT weaker than it could be. As a result, I am re-doing the whole CoreXY Motion system!!! So what I have accomplished: all new gantry based off of lie-flat Y rails and Voron-based CoreXY rigging (belt plate sandwich between toolhead and carriage) moved toolhead to be facing forward instead of backward, frees up alot of space but makes hot-swapping toolheads alot harder so I might have to temporarily drop it. made these cool asl idler blocks that look so aura dropped rail profile by ~29.3mm vertically made a lot stronger due to aluminum plate sandwich zero cantilever design"}, {"post_id": 45159, "ts": "2026-08-11T13:58:09Z", "hours": 8.2933, "text": "Devlog #12: Frame(work) -so main thing is that ive been out of town for some time so im lwk just doing work whenever possible, so this is what im doing: motion-wise, the frame is almost done!!! its crazy how close i’m getting to being finished!!! midway through re-doing Z axis from linear rods to rails, mainly just due to ease of use. finished coreXY idler box! essentially this is just what holds 4 idlers and a single tensioned Nema17 motor for coreXY motion had to drop build size to 235 235 180mm due to issues with linear rails im buying i forgot if this was mentioned before but Z leadscrews!!! ok ill prob write more once i get back but yeah thats maily what ive done"}, {"post_id": 41106, "ts": "2026-08-05T02:56:44Z", "hours": 4.5347, "text": "Devlog #11: ANOTHER new toolhead??? overall a very productive devlog!!! so what I worked on: Introducing the DoubleDecker Toolhead, a larger, all-in-one toolhead with a direct drive extruder and bi-directional cooling done via double part cooling fans. Despite the many added features, it weiths around 240 grams, which is significantly less than the Voron Stealthburner (a reference for this toolhead). Alongside that, it uses an entirely surface-modeled duct, based off of multiple Computational Fluid Dynamics simulations. modified the sailfin even more to better suit my needs (better mounting solution, smaller packaging) and now fits very well into my packaging ik i said it alr but: the duct!!! it took me like 1-2 hours of surface modelling to get the geometries just right, but its definitely paid off (looks tuff asl, works well) ok so thats p much it for my devlog, heres my bucket list: more gantry work frame (swap 3dp for extrusion??? more corexy rigging work ok byeee"}, {"post_id": 40534, "ts": "2026-08-04T04:07:19Z", "hours": 4.3267, "text": "Devlog # 10: Packaging Headache so what i actually achieved: modified sailfin extruder with side mount for bowden setup i tried to make a direct drive toolhead (again smh) but this time actually compact and an all-rounder. The main limitation for me was the fact that the sailfin mounting holes just aren’t meant for a toolhead this small. one cool thing about this toolhead is that despite the extra direct drive extruder, its still very light, sitting at around 180 grams total. heavier than my previous sub-90 toolheads but this should be better consistency-wise and work very well with filaments like TPU and TPA. more gantry and frame work!!! in the next devlog, i’m gonna be reworking the mounting of the sailfin toolhead to fit into this better, but I’d say that this actually was a pretty locked in session."}, {"post_id": 38600, "ts": "2026-08-01T02:35:00Z", "hours": 3.1839, "text": "Devlog #9: Triple it and give it to the next person WOW. This is genuinely one of the best checkpoints im at. i did not expect to be able to get here lol so what i did: TWO new hotends!!! bolt-on hotend and carriage: essentially a carriage that ditches the heavy servo and toolchanger for a more secure screw-on changer. This means you’ll be able to push feeds and speeds higher on this, and is especially useful if you’re doing single material prints. Lightspeed hotend (get it? its light and its fast lol): if your chasing true performance this genuinely might be your best bet. it ditches the large eddy probe for a sub-90 gram carriage, meaning you’ll be able to push this to the limit. Also, the Center of Gravity is a lot closer to the gantry meaning more control. Updated gantry: so I fixed the main issue with the gantry, being pulleys in the center. If theyre in the center, it ends up being very weird belt geometry wise due to how CoreXY is rigged, and as a result, had to make the gentry idlers side-agonistic, meaning the belt path will stay perfectly parallel to the gantry. updated clamp plates: these clamp plates ACTUALLY WORK!!! ikr ts so cool"}, {"post_id": 38019, "ts": "2026-07-31T05:00:32Z", "hours": 4.3781, "text": "Devlog #8: A Big Mis-step stuff i worked on that actually works: the coreXY idler rigging for the gantry is done! looks nice basic frame packaging work done, planning out space for extruders, docking station, electronics, and coreXY hardware. so i realized wayyyy too late that for coreXY rigging i need to have the belt run parallel to the x axis 😭 i thought i could get away with angled belts but sadly i do have to redo the carriage clamps for belting also I thought up of a newer and better system to add more modularity: the actual modular system is a set of 4 corner holes you can add any tool system you want after that, meaning if your chasing performance you can do a single fixed hotend, of if you need the extra ability multicolor adds you can install the toolchanging and docking system. as a result this means im going to have to install the probe on my toolhead but it isnt too big of a deal. so yeah thats pretty much it for today!!!"}, {"post_id": 37269, "ts": "2026-07-29T20:59:06Z", "hours": 3.1169, "text": "Devlog #7: Unpowered Gantry and a smaller toolhead so so far, all I’ve done is shorten the toolhead, and made a gantry structure wise. One main thing I need to do later is actually add corexy hardware but trust we’re getting there. Alongside the gantry work, i shortened the toolhead by approx ~20mm and brought it significantly closer to the carriage to reduce the amount of forces on it as a result of it being so far. for both of these i do need to work on adding the coreXY rigging, but thats something i can work on later so im not too worried about it."}, {"post_id": 36577, "ts": "2026-07-28T19:46:25Z", "hours": 2.2803, "text": "Devlog #6: what is a toolhead so basically although this is somewhat of a smaller devlog time-wise, i got my whole toolhead plus swapping mechanism done!!! so how it works: there is a SWYFT Micro servo in the actual carriage with a servo arm that latches onto the toolhead 3 low profile socket head cap screws act as pins to prevent any angular movements (one in each corner for 3/4 corners) some cool nerd tech specs: toolhead projected to be approx ~ 90 g, lighter than most vorons uses BIQU Eddy Probe for quick Z-probing overall carriage weight projected to be under 140g so yeah cant wait to do more!!! see yall next one"}, {"post_id": 36196, "ts": "2026-07-28T03:59:32Z", "hours": 2.5631, "text": "Devlog #5: An actually Productive Devlog??? So i re-did the whole extruder assemble and it looks so nice now!!! probably the smallest its gonna be has a blower fan for cooling the print layer (just like many modern bambus/vorons) WITH DUCTING!!! not pictured: mounting hardware in the back onto aura carriage Bowden Pneumatic Push-to-connect M6 Fittings so basically i re-did this to be as small and lightweight as possible, and as a result i got it to look SUPER cool, and looks so nice and almost like an actually good printer!!! On the latch/toolchange mechanism: this has gone past multiple modifications over the past hour. Initially, I thought it would be best to have a whole hub that uses clips to latch onto the carriage, but i ended up settling with just using a single servo arm to hold the latching and adding stability screws so it should (keyword: should) be precise enough to not add any slop. ok first nice productive devlog in some time, time to get some rest!!!"}, {"post_id": 35900, "ts": "2026-07-27T17:01:56Z", "hours": 1.7203, "text": "DEVLOG #4: Am I going the wrong way??? So I spent some time today working on a toolhead, but realized I might be doing this wrong. This is originally for a stock hotend setup that is larger so that it ends up being the same size as a larger direct drive hotend for more sensitive filaments such as TPU. But i realized, i might just be thinking about this the wrong way… Instead of making a direct drive extruder thats larger and heavier, what if I just use a bowden extruder (like all my other extruders on this printer) thats a lot more sensitive and conservative performance wise for TPU instead of a direct drive extruder. Alongside this, I cant just use a standard extruder because it would end up causing the TPU to bind, meaning I’m going to have to design a custom spring loaded extruder. I might also use the same extruders for my other extruders due to how much better a spring loaded extruder is compared to a fixed extruder, despite the added complexity."}, {"post_id": 35574, "ts": "2026-07-27T03:24:43Z", "hours": 1.1281, "text": "after a break, I decided it’d be better for me to just let go of the double hotend idea. the main thing is that it just overcomplicates the idea wayyyy too much and ends up just being worse: the main ideology behind the double hotend tool was so that I can print supports with a larger .8mm nozzle, speeding up print times due to higher flow and taller layer heights. what I didnt realize was that if I did do this, it would be extremely messy with dual nozzles as theres a high chance the secondary nozzle would just hit the newly printed layers on a large enough part. Also, I wouldnt be able to take the taller layers to my advantage due to the fact that theres a .4mm nozzle that physically cant do those tall layer heights and it ends up becoming too messy, pretty much just handicapping the performance of the .8mm nozzle The new idea: just have a seperate high flow toolhead with a .8mm nozzle thats just as light as a single toolhead, which can take advantage of the higher print speed and the taller layer heights To replace the double hotend tool, I came up with the idea for another toolhead: so basically my current toolheads use a bowden tube extruder, which essentially is having the actual extruder part of the toolhead somewhere on the printer frame, and it feeds filament from there into the hotend. It saves alot of weight, but ends up being worse for some filaments (like TPU) which bind very easily and cause issues with a bowden setup (which is why tpu doesnt work well on the AMS!). The idea is having a heavier toolhead which has the main purpose of using a Direct Drive extrusion setup, using a Nema17 Stepper sitting on the actual toolhead, and unlike the bowden setup that “pushes” filament and causes binding, this “pulls” in filament and reduces binding risk. the extra weight means I wont be able to print as fast, but means that it’d be compatible with filaments sensitive to binding up such as TPU. ik this is a yap session, sorry to the reviewers that have to read this in advance!!! I have also attached my base level airflow diagram for the single nozzle setup because you guys deserve more data :) The extra space for the outtake fan also acts as a ledge to mount the Nema17 Stepper motor for the direct drive toolhead (im trying to keep everything the same size to help uniformity when i make the toolchanger.) (also disclaimer the ai response was edited i wish google gemini could be this blunt)"}, {"post_id": 35451, "ts": "2026-07-26T21:26:57Z", "hours": 3.0669, "text": "after some onshape work, I have a normal looking printbed! its inspired by the triple lead screw beds found on many coreXY printers, and based on an equilateral triangle for better triangulation for printbed leveling."}, {"post_id": 33068, "ts": "2026-07-22T17:17:32Z", "hours": 0.8003, "text": "the idea of a modular 3d printer: so I was bored and thought, “what if i could make a 3d printer that has dual hotends for faster printing and better supports, but then also a toolchanger so i can swap it to a lighter single hotend, or even potentially a router endmill? so my main goal from this devlog was to capture the planning I’ve done with choosing materials for the gantry, movement, and the extrusion system. only the electronigc to go and I can get CAD started!"}]...
|
Title: DraftONE by @saharshn | Stardance
Devlogs: Title: DraftONE by @saharshn | Stardance
Devlogs:
the idea of a modular 3d printer: so I was bored and thought, “what if i could make a 3d printer that has dual hotends for faster printing and better supports, but then also a toolchanger so i can swap it to a lighter single hotend, or even potentially a router endmill? so my main goal from this devlog was to capture the planning I’ve done with choosing materials for the gantry, movement, and the extrusion system. only the electronigc to go and I can get CAD started!
after some onshape work, I have a normal looking printbed! its inspired by the triple lead screw beds found on many coreXY printers, and based on an equilateral triangle for better triangulation for printbed leveling.
after a break, I decided it’d be better for me to just let go of the double hotend idea. the main thing is that it just overcomplicates the idea wayyyy too much and ends up just being worse: the main ideology behind the double hotend tool was so that I can print supports with a larger .8mm nozzle, speeding up print times due to higher flow and taller layer heights. what I didnt realize was that if I did do this, it would be extremely messy with dual nozzles as theres a high chance the secondary nozzle would just hit the newly printed layers on a large enough part. Also, I wouldnt be able to take the taller layers to my advantage due to the fact that theres a .4mm nozzle that physically cant do those tall layer heights and it ends up becoming too messy, pretty much just handicapping the performance of the .8mm nozzle The new idea: just have a seperate high flow toolhead with a .8mm nozzle thats just as light as a single toolhead, which can take advantage of the higher print speed and the taller layer heights To replace the double hotend tool, I came up with the idea for another toolhead: so basically my current toolheads use a bowden tube extruder, which essentially is having the actual extruder part of the toolhead somewhere on the printer frame, and it feeds filament from there into the hotend. It saves alot of weight, but ends up being worse for some filaments (like TPU) which bind very easily and cause issues with a bowden setup (which is why tpu doesnt work well on the AMS!). The idea is having a heavier toolhead which has the main purpose of using a Direct Drive extrusion setup, using a Nema17 Stepper sitting on the actual toolhead, and unlike the bowden setup that “pushes” filament and causes binding, this “pulls” in filament and reduces binding risk. the extra weight means I wont be able to print as fast, but means that it’d be compatible with filaments sensitive to binding up such as TPU. ik this is a yap session, sorry to the reviewers that have to read this in advance!!! I have also attached my base level airflow diagram for the single nozzle setup because you guys deserve more data :) The extra space for the outtake fan also acts as a ledge to mount the Nema17 Stepper motor for the direct drive toolhead (im trying to keep everything the same size to help uniformity when i make the toolchanger.) (also disclaimer the ai response was edited i wish google gemini could be this blunt)
DEVLOG #4: Am I going the wrong way??? So I spent some time today working on a toolhead, but realized I might be doing this wrong. This is originally for a stock hotend setup that is larger so that it ends up being the same size as a larger direct drive hotend for more sensitive filaments such as TPU. But i realized, i might just be thinking about this the wrong way… Instead of making a direct drive extruder thats larger and heavier, what if I just use a bowden extruder (like all my other extruders on this printer) thats a lot more sensitive and conservative performance wise for TPU instead of a direct drive extruder. Alongside this, I cant just use a standard extruder because it would end up causing the TPU to bind, meaning I’m going to have to design a custom spring loaded extruder. I might also use the same extruders for my other extruders due to how much better a spring loaded extruder is compared to a fixed extruder, despite the added complexity.
Devlog #5: An actually Productive Devlog??? So i re-did the whole extruder assemble and it looks so nice now!!! probably the smallest its gonna be has a blower fan for cooling the print layer (just like many modern bambus/vorons) WITH DUCTING!!! not pictured: mounting hardware in the back onto aura carriage Bowden Pneumatic Push-to-connect M6 Fittings so basically i re-did this to be as small and lightweight as possible, and as a result i got it to look SUPER cool, and looks so nice and almost like an actually good printer!!! On the latch/toolchange mechanism: this has gone past multiple modifications over the past hour. Initially, I thought it would be best to have a whole hub that uses clips to latch onto the carriage, but i ended up settling with just using a single servo arm to hold the latching and adding stability screws so it should (keyword: should) be precise enough to not add any slop. ok first nice productive devlog in some time, time to get some rest!!!
Devlog #6: what is a toolhead so basically although this is somewhat of a smaller devlog time-wise, i got my whole toolhead plus swapping mechanism done!!! so how it works: there is a SWYFT Micro servo in the actual carriage with a servo arm that latches onto the toolhead 3 low profile socket head cap screws act as pins to prevent any angular movements (one in each corner for 3/4 corners) some cool nerd tech specs: toolhead projected to be approx ~ 90 g, lighter than most vorons uses BIQU Eddy Probe for quick Z-probing overall carriage weight projected to be under 140g so yeah cant wait to do more!!! see yall next one
Devlog #7: Unpowered Gantry and a smaller toolhead so so far, all I’ve done is shorten the toolhead, and made a gantry structure wise. One main thing I need to do later is actually add corexy hardware but trust we’re getting there. Alongside the gantry work, i shortened the toolhead by approx ~20mm and brought it significantly closer to the carriage to reduce the amount of forces on it as a result of it being so far. for both of these i do need to work on adding the coreXY rigging, but thats something i can work on later so im not too worried about it.
Devlog #8: A Big Mis-step stuff i worked on that actually works: the coreXY idler rigging for the gantry is done! looks nice basic frame packaging work done, planning out space for extruders, docking station, electronics, and coreXY hardware. so i realized wayyyy too late that for coreXY rigging i need to have the belt run parallel to the x axis 😭 i thought i could get away with angled belts but sadly i do have to redo the carriage clamps for belting also I thought up of a newer and better system to add more modularity: the actual modular system is a set of 4 corner holes you can add any tool system you want after that, meaning if your chasing performance you can do a single fixed hotend, of if you need the extra ability multicolor adds you can install the toolchanging and docking system. as a result this means im going to have to install the probe on my toolhead but it isnt too big of a deal. so yeah thats pretty much it for today!!!
Devlog #9: Triple it and give it to the next person WOW. This is genuinely one of the best checkpoints im at. i did not expect to be able to get here lol so what i did: TWO new hotends!!! bolt-on hotend and carriage: essentially a carriage that ditches the heavy servo and toolchanger for a more secure screw-on changer. This means you’ll be able to push feeds and speeds higher on this, and is especially useful if you’re doing single material prints. Lightspeed hotend (get it? its light and its fast lol): if your chasing true performance this genuinely might be your best bet. it ditches the large eddy probe for a sub-90 gram carriage, meaning you’ll be able to push this to the limit. Also, the Center of Gravity is a lot closer to the gantry meaning more control. Updated gantry: so I fixed the main issue with the gantry, being pulleys in the center. If theyre in the center, it ends up being very weird belt geometry wise due to how CoreXY is rigged, and as a result, had to make the gentry idlers side-agonistic, meaning the belt path will stay perfectly parallel to the gantry. updated clamp plates: these clamp plates ACTUALLY WORK!!! ikr ts so cool
Devlog # 10: Packaging Headache so what i actually achieved: modified sailfin extruder with side mount for bowden setup i tried to make a direct drive toolhead (again smh) but this time actually compact and an all-rounder. The main limitation for me was the fact that the sailfin mounting holes just aren’t meant for a toolhead this small. one cool thing about this toolhead is that despite the extra direct drive extruder, its still very light, sitting at around 180 grams total. heavier than my previous sub-90 toolheads but this should be better consistency-wise and work very well with filaments like TPU and TPA. more gantry and frame work!!! in the next devlog, i’m gonna be reworking the mounting of the sailfin toolhead to fit into this better, but I’d say that this actually was a pretty locked in session.
Devlog #11: ANOTHER new toolhead??? overall a very productive devlog!!! so what I worked on: Introducing the DoubleDecker Toolhead, a larger, all-in-one toolhead with a direct drive extruder and bi-directional cooling done via double part cooling fans. Despite the many added features, it weiths around 240 grams, which is significantly less than the Voron Stealthburner (a reference for this toolhead). Alongside that, it uses an entirely surface-modeled duct, based off of multiple Computational Fluid Dynamics simulations. modified the sailfin even more to better suit my needs (better mounting solution, smaller packaging) and now fits very well into my packaging ik i said it alr but: the duct!!! it took me like 1-2 hours of surface modelling to get the geometries just right, but its definitely paid off (looks tuff asl, works well) ok so thats p much it for my devlog, heres my bucket list: more gantry work frame (swap 3dp for extrusion??? more corexy rigging work ok byeee
Devlog #12: Frame(work) -so main thing is that ive been out of town for some time so im lwk just doing work whenever possible, so this is what im doing: motion-wise, the frame is almost done!!! its crazy how close i’m getting to being finished!!! midway through re-doing Z axis from linear rods to rails, mainly just due to ease of use. finished coreXY idler box! essentially this is just what holds 4 idlers and a single tensioned Nema17 motor for coreXY motion had to drop build size to 235 235 180mm due to issues with linear rails im buying i forgot if this was mentioned before but Z leadscrews!!! ok ill prob write more once i get back but yeah thats maily what ive done
Devlog #13: Restructuring I realized I’ve gone about this a completely wrong way. I’ve been overcomplicating this gantry wayy too much, and ended up making this so much more complicated and a LOT weaker than it could be. As a result, I am re-doing the whole CoreXY Motion system!!! So what I have accomplished: all new gantry based off of lie-flat Y rails and Voron-based CoreXY rigging (belt plate sandwich between toolhead and carriage) moved toolhead to be facing forward instead of backward, frees up alot of space but makes hot-swapping toolheads alot harder so I might have to temporarily drop it. made these cool asl idler blocks that look so aura dropped rail profile by ~29.3mm vertically made a lot stronger due to aluminum plate sandwich zero cantilever design
Devlog #14: Introducing VKTR so as you can see i did forget to devlog its alr tho i got some INSANE changes watch out Introducing VKTR: it is probably one of the coolest toolheads I have made. Packaging and form factor inspired by the A4T, and front plate styling inspired by the Stealthburner. Utilizes a Wristwatch v3 BMG extruder, and a Bambu Labs P1s Hotend for cost purposes. has two 4010 Blower fans for part cooling, 2510 Intake fan, and 3007 Exhaust fan. The name is inspired by the vectoring i had to use for my ducting but somehow i accidentally put a K instead of a C but didnt notice??? still sounds cool asf tho The entire gantry is reworked to make this voron-compatible and to make this workable with voron toolheads. this allows me to not only use the toolheads I make, but rather the ones anyone in the voron community makes to work on this new V2 Frame with V2 Bed! 220 220 195 total volume, and now its considerable more stable and cleaner looking (with extra space for rgb!!!) as of right now, the entire motion system should be done!!! time for enclosure and elec spacing, and we can actually build this!!!
Devlog 15: ALMOST THERE WOOOO made final assembly! made a cool render! Started BOM! so my goal is to get this out by the 20th or 21st, and this is becoming slowly more in reach! cant wait to cross this final stretch!...
|
1792694962.9368715
|
1793299762.9368715
|
|
45265
|
(TVC) Rocket by @advay_chatriki | Stardance
|
advay_chatriki
|
0
|
42.4
|
0
|
[]
|
[{"post_id": 80261, "ts": "202 [{"post_id": 80261, "ts": "2026-10-16T23:57:27Z", "hours": 5.9467, "text": "Created footprints for each part, got started routing"}, {"post_id": 78935, "ts": "2026-10-12T02:51:08Z", "hours": 1.5669, "text": "Made some tweaks to the TVC and make the mount to fit ID of the body and maybe this week we will have everything done with the electronics and hardware and will start to order parts!!! And also I have not been made a devlog in sometime because school is lowk cooked but will keep it updated and hopefully have a ROCKETTTTTT bueeee."}, {"post_id": 78877, "ts": "2026-10-11T20:57:30Z", "hours": 0.3333, "text": "Added the power from the schematic onto the PCB CAD"}, {"post_id": 73789, "ts": "2026-09-26T00:16:49Z", "hours": 2.5344, "text": "Today I worked on fixing minor issues, as a comment on the last post said, and added the rod holes for the servo rods to sit in, and also made some small fixes to the schematic but I was more focused on TVC today."}, {"post_id": 73335, "ts": "2026-09-24T22:07:28Z", "hours": 2.2008, "text": "Finished V2 of the TVC with all of the errors fixed and it looks more fun tbh but I anyways I did optimize it for the new servos we are using and also fixed the pitch and yaw which were kind of goofy on the last one. But thankfully, this one has no errors and might start to print it in some time."}, {"post_id": 71978, "ts": "2026-09-21T21:48:22Z", "hours": 5.9264, "text": "Today, I rebuilt the TVC because the last TVC had major issues where the pitch and yaw were not moving correctly, so I redid the whole thing, where this is the bottom part of the TVC. Also fixed some errors on the eeschema including issues with polarity, footprints, component values, power reg, and logic, the continuation of this should ensure that the PCB routing process remains easy."}, {"post_id": 68882, "ts": "2026-09-15T23:02:14Z", "hours": 2.5525, "text": "Finished the schematic, learned a lot in the process, ESP32, MicroSD, ICM42688, BMP280, Power, GND, USBC, UART(conversion), Pyro Firing, and Servo circuits are complete, after a short review period will be ready for quick layout and manufacturer sendoff!"}, {"post_id": 67012, "ts": "2026-09-13T01:39:13Z", "hours": 1.2656, "text": "Made a compartment for the PCB to lay in"}, {"post_id": 66239, "ts": "2026-09-11T23:04:03Z", "hours": 3.4833, "text": "Made the fins, made some changes to the inner body, finished the servo power circuit, and started the SD logging circuit."}, {"post_id": 63918, "ts": "2026-09-07T23:23:32Z", "hours": 2.3406, "text": "Wsp guys had a break in the middle because school lowk started :( but I am back at it and today I made the body and Nosecone and assembled it on CAD and added it to the TVC as well"}, {"post_id": 53441, "ts": "2026-08-24T00:05:14Z", "hours": 3.1172, "text": "Started working on the wiring for the connections to the servos so they can actually do TVC work, chose 20kgcm servos for this, supplied by a 2S LiPo battery, also redid the layout on the schematic(which is close to being finished!)"}, {"post_id": 53337, "ts": "2026-08-23T20:29:46Z", "hours": 0.4667, "text": "Fully finished the TVC! and made some holes in it to save weight."}, {"post_id": 53309, "ts": "2026-08-23T19:38:35Z", "hours": 1.2194, "text": "I finished the Pyro Firing Channel(parachute ejection circuit) in the schematic, now for the servo connectors and GPS and the schematic is finished!"}, {"post_id": 50699, "ts": "2026-08-20T00:56:12Z", "hours": 1.5336, "text": "Today I simulated the rocket’s altitude, velocity, and acceleration curves. First, I used regression in Desmos in order to find a fitting polynomial curve for the thrust. After that, I factored in gravity and drag to make an ODE(Riccati differential equation) for the acceleration. Since Desmos is quite slow with numerical integration, I opted to create a python script instead and use matplotlib to graph all the curves, yielding this visual and a calculated apogee of 268.65 meters at 7.66 seconds!"}, {"post_id": 50617, "ts": "2026-08-19T20:56:15Z", "hours": 1.1667, "text": "Started to make the bottom of TVC"}, {"post_id": 48616, "ts": "2026-08-17T02:37:16Z", "hours": 1.6503, "text": "Started wiring the pyro channels for rocket parachute ejection"}, {"post_id": 47132, "ts": "2026-08-14T20:06:03Z", "hours": 1.1667, "text": "Finished CAD for first servo mount"}, {"post_id": 45995, "ts": "2026-08-12T20:43:36Z", "hours": 0.3667, "text": "Started to build the TVC mount for the rocket"}, {"post_id": 45199, "ts": "2026-08-11T14:58:33Z", "hours": 0.8667, "text": "Finished wiring the BMP280 as I2C"}, {"post_id": 44824, "ts": "2026-08-10T21:01:22Z", "hours": 0.6025, "text": "Added more stuff for the schematic(incomplete)"}, {"post_id": 44801, "ts": "2026-08-10T20:22:28Z", "hours": 0.9344, "text": "Fixed naming conventions on net labels and fixed a few wiring issues here and there."}, {"post_id": 42971, "ts": "2026-08-07T23:34:22Z", "hours": 1.1556, "text": "Cleaned up the wiring on my (incomplete) schematic for the PCB which will house the flight computer and sensors"}]...
|
Title: (TVC) Rocket by @advay_chatriki | Stardance Title: (TVC) Rocket by @advay_chatriki | Stardance
Devlogs:
Cleaned up the wiring on my (incomplete) schematic for the PCB which will house the flight computer and sensors
Fixed naming conventions on net labels and fixed a few wiring issues here and there.
Added more stuff for the schematic(incomplete)
Finished wiring the BMP280 as I2C
Started to build the TVC mount for the rocket
Finished CAD for first servo mount
Started wiring the pyro channels for rocket parachute ejection
Started to make the bottom of TVC
Today I simulated the rocket’s altitude, velocity, and acceleration curves. First, I used regression in Desmos in order to find a fitting polynomial curve for the thrust. After that, I factored in gravity and drag to make an ODE(Riccati differential equation) for the acceleration. Since Desmos is quite slow with numerical integration, I opted to create a python script instead and use matplotlib to graph all the curves, yielding this visual and a calculated apogee of 268.65 meters at 7.66 seconds!
I finished the Pyro Firing Channel(parachute ejection circuit) in the schematic, now for the servo connectors and GPS and the schematic is finished!
Fully finished the TVC! and made some holes in it to save weight.
Started working on the wiring for the connections to the servos so they can actually do TVC work, chose 20kgcm servos for this, supplied by a 2S LiPo battery, also redid the layout on the schematic(which is close to being finished!)
Wsp guys had a break in the middle because school lowk started :( but I am back at it and today I made the body and Nosecone and assembled it on CAD and added it to the TVC as well
Made the fins, made some changes to the inner body, finished the servo power circuit, and started the SD logging circuit.
Made a compartment for the PCB to lay in
Finished the schematic, learned a lot in the process, ESP32, MicroSD, ICM42688, BMP280, Power, GND, USBC, UART(conversion), Pyro Firing, and Servo circuits are complete, after a short review period will be ready for quick layout and manufacturer sendoff!
Today, I rebuilt the TVC because the last TVC had major issues where the pitch and yaw were not moving correctly, so I redid the whole thing, where this is the bottom part of the TVC. Also fixed some errors on the eeschema including issues with polarity, footprints, component values, power reg, and logic, the continuation of this should ensure that the PCB routing process remains easy.
Finished V2 of the TVC with all of the errors fixed and it looks more fun tbh but I anyways I did optimize it for the new servos we are using and also fixed the pitch and yaw which were kind of goofy on the last one. But thankfully, this one has no errors and might start to print it in some time.
Today I worked on fixing minor issues, as a comment on the last post said, and added the rod holes for the servo rods to sit in, and also made some small fixes to the schematic but I was more focused on TVC today.
Added the power from the schematic onto the PCB CAD
Made some tweaks to the TVC and make the mount to fit ID of the body and maybe this week we will have everything done with the electronics and hardware and will start to order parts!!! And also I have not been made a devlog in sometime because school is lowk cooked but will keep it updated and hopefully have a ROCKETTTTTT bueeee.
Created footprints for each part, got started routing...
|
1792619331.0495994
|
1793224131.0495994
|
|
52082
|
GCL - Game Cartridge Launcher by @dylz | Stardance
|
dylz
|
0
|
47.89
|
0
|
[]
|
[{"post_id": 80259, "ts": "202 [{"post_id": 80259, "ts": "2026-10-16T23:47:29Z", "hours": 10.5383, "text": "Backend work Alright, it’s been a while since I’ve worked on this, and coming back I realize that I knew so little about any of how drives, media, filesystems, and all that works. So, I’m going to give a quick synopsis of all I’ve learned (keep in mind, this all applies to LINUX ONLY since that’s what I’m on, the app will come to windows eventually but for the time being I’m not worrying about it): Storage devices are where your computer stores data for storage. One physical device (i.e. a thumb drive) corresponds to one drive , although some physical devices can have multiple drives. These drives are split into BlockDevices, so one drive can have many Block Devices . Block devices can have one or none filesystems; keep in mind there isn’t one universal filesystem that everybody agreed to use so we could all be happy; you’re gonna have to deal with FAT32, NTFS, ext4, exfat and btrfs at a minimum. Now, those filesystems aren’t immediately accessible; they need to be mounted , which esentially means just putting it somewhere in another filesystem on your computer, probably the main one, like your HDD/SSD. A single blockdevice can have many mount points, each with different permissions; one might have NOEXEC permissions so you can’t launch a game from there, another might have RO so you can’t write anything to it. Keep in mind, these permissions are completely separate from file and directory permissions; those are a whole ’nother can of worms. Basically, Physical Device -> Drive[] , Drive -> BlockDevice[] , BlockDevice -> Filesystem? , Filesystem -> (MountPath, Permissions)[] . That’s the really really really big oversimplification but yeah. If you read to here, hopefully you know understand my pain; I commend your patience."}, {"post_id": 61864, "ts": "2026-09-05T00:06:37Z", "hours": 12.6272, "text": "New UI, massively improved backend API To be honest basically all of this devlog was backend, but I’m really happy with how it is now! The time I’ve spent learning rust (there’s a lot of stuff lol) paid off and now I can easily expand the format and add new features whenever I please! For stuff that you can actually see, here’s a new concept UI I made. I’m not at all a designer and I deliberately made this project backend/API focused so that better designers than me could be the ones making actually nice looking apps, but i’m pretty happy with how it looks right now! The last major feature I need to add is animated banners. Unfortunately, there aren’t really any great formats for this, but I’m planning on expirementing with Lottie as it seems like the closest option to what I want. There’ll still be video and static image support, of course, but animated banners are objectively way cooler. Anyways, yeah that’s what I’m gonna focus on next devlog. After that, I’ll do a round of polishing but that should be the first version (call it alpha maybe?) of the app finished! Very happy with the progress :) (see app and json schema preview below)"}, {"post_id": 56892, "ts": "2026-08-28T21:49:32Z", "hours": 14.8028, "text": "an actually good demo next devlog i promise Ok the reason this count is so high is because I spent a diabolical amount of time researching, practicing and learning a bunch of new things. I had never done asynchronous or concurrency before, and now I’m slightly ok at it!!! yippee!! Anyways, under the hood we use events (via UDisks2 and d-bus which was a whole other can of worms) now instead of lsblk to detect when a usb goes in and out so that’ll be a lot more responsive. On that note, I still gotta code windows support (I’m on linux) but I think windows, just by nature of not being linux and having 20 billion different ways to do everything will be a lot easier. mac also exists but uhh erm idk i don’t really wanna do allat (picture is some random ahh code cuz i have no new ui in the slightest lol)"}, {"post_id": 52603, "ts": "2026-08-22T20:08:05Z", "hours": 9.9239, "text": "tbh the majority of these hours have been learning rust, so i’m just gonna explain the project: I’m trying to make a standardized format + launcher for physical pc games . the idea is you’ll just be able to plug in a usb, it’ll get detected and you can click a button to run the game! I also want it to have support for animated banners, metadata, all that stuff. Basically just think like how the wii did it lol anyways next log hopefully i’ll have some gui, even if its just a test. cyall then img is the tentative format"}]...
|
Title: GCL - Game Cartridge Launcher by @dylz | St Title: GCL - Game Cartridge Launcher by @dylz | Stardance
Devlogs:
tbh the majority of these hours have been learning rust, so i’m just gonna explain the project: I’m trying to make a standardized format + launcher for physical pc games . the idea is you’ll just be able to plug in a usb, it’ll get detected and you can click a button to run the game! I also want it to have support for animated banners, metadata, all that stuff. Basically just think like how the wii did it lol anyways next log hopefully i’ll have some gui, even if its just a test. cyall then img is the tentative format
an actually good demo next devlog i promise Ok the reason this count is so high is because I spent a diabolical amount of time researching, practicing and learning a bunch of new things. I had never done asynchronous or concurrency before, and now I’m slightly ok at it!!! yippee!! Anyways, under the hood we use events (via UDisks2 and d-bus which was a whole other can of worms) now instead of lsblk to detect when a usb goes in and out so that’ll be a lot more responsive. On that note, I still gotta code windows support (I’m on linux) but I think windows, just by nature of not being linux and having 20 billion different ways to do everything will be a lot easier. mac also exists but uhh erm idk i don’t really wanna do allat (picture is some random ahh code cuz i have no new ui in the slightest lol)
New UI, massively improved backend API To be honest basically all of this devlog was backend, but I’m really happy with how it is now! The time I’ve spent learning rust (there’s a lot of stuff lol) paid off and now I can easily expand the format and add new features whenever I please! For stuff that you can actually see, here’s a new concept UI I made. I’m not at all a designer and I deliberately made this project backend/API focused so that better designers than me could be the ones making actually nice looking apps, but i’m pretty happy with how it looks right now! The last major feature I need to add is animated banners. Unfortunately, there aren’t really any great formats for this, but I’m planning on expirementing with Lottie as it seems like the closest option to what I want. There’ll still be video and static image support, of course, but animated banners are objectively way cooler. Anyways, yeah that’s what I’m gonna focus on next devlog. After that, I’ll do a round of polishing but that should be the first version (call it alpha maybe?) of the app finished! Very happy with the progress :) (see app and json schema preview below)
Backend work Alright, it’s been a while since I’ve worked on this, and coming back I realize that I knew so little about any of how drives, media, filesystems, and all that works. So, I’m going to give a quick synopsis of all I’ve learned (keep in mind, this all applies to LINUX ONLY since that’s what I’m on, the app will come to windows eventually but for the time being I’m not worrying about it): Storage devices are where your computer stores data for storage. One physical device (i.e. a thumb drive) corresponds to one drive , although some physical devices can have multiple drives. These drives are split into BlockDevices, so one drive can have many Block Devices . Block devices can have one or none filesystems; keep in mind there isn’t one universal filesystem that everybody agreed to use so we could all be happy; you’re gonna have to deal with FAT32, NTFS, ext4, exfat and btrfs at a minimum. Now, those filesystems aren’t immediately accessible; they need to be mounted , which esentially means just putting it somewhere in another filesystem on your computer, probably the main one, like your HDD/SSD. A single blockdevice can have many mount points, each with different permissions; one might have NOEXEC permissions so you can’t launch a game from there, another might have RO so you can’t write anything to it. Keep in mind, these permissions are completely separate from file and directory permissions; those are a whole ’nother can of worms. Basically, Physical Device -> Drive[] , Drive -> BlockDevice[] , BlockDevice -> Filesystem? , Filesystem -> (MountPath, Permissions)[] . That’s the really really really big oversimplification but yeah. If you read to here, hopefully you know understand my pain; I commend your patience....
|
1792695063.4179816
|
1793299863.4179816
|
|
38164
|
Determinist by @Mate1166 | Stardance
|
Mate1166
|
3
|
83.0
|
503
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-16T23:53:05Z", "hours": 38.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Determinist Determinist is a deterministic password generator that lets you recover forgotten passwords easily, given that you remember a master password, and a few things about your lost password. Features CLI and Web interface, featuring a PWA that also works offline Three algorithm versions to choose from A preset system Generated passwords are identical on both the website and the CLI Fully local generation Presets The presets use the TOML format, which is very user-friendly and easy to edit. The presets have multiple categories inside them like ‘general’ (for the algorithm version and password length), ‘preset’ (the preset name, description and whether it is set as defaul), and version specific ones like ‘v3’, which has the settings for the v3 algorithm. If you’re unsure how to edit preset files, you can also just export your settings from the website, and use it across all versions of Determinist! To Reviewers Please, test both the CLI and the website (if possible), and provide feedback on User Experience if you encountered any issues, include that in the review. You can even suggest features, and I may implement them :) Thank you!", "repo": "https://github.com/szentpeterimate/Determinist", "demo": "https://szentpeterimate.github.io/determinist/"}, {"ship_num": 2, "ts": "2026-08-13T14:20:06Z", "hours": 29.0, "multiplier": 14.15, "payout": 412, "blessing": "neutral", "text": "Well, it’s official: Determinist now has a website! Features: Easy to use interface Straightforward settings 1:1 compatibility with the CLI Fully client-side The only thing that hasn’t made it into the website (yet) is the preset system, just like with the CLI, I’m adding that later as the web UI is already really easy to use. And now the less technical bit… It’s been an incredible journey, Determinist has been my dream project for a few years now, and it’s really amazing how I can share it with the world now that it’s done. Just to mention a few things I learned from this project: Testing Proper git usage Cryptography JavaScript These are things I wouldn’t really have learned without Determinist. Sure, I could have done so, but not this fast and effectively. I must thank those who supported the project, who liked the devlogs, and of course the reviewers who gave their opinion on the CLI. Because of your feedback, I made Determinist even easier to use now, and I will continue doing so. Version 3 of the algorithm is on its way, as well as the preset system for the web. Thank you everyone!", "repo": "https://github.com/szentpeterimate/Determinist", "demo": "https://szentpeterimate.github.io/determinist/"}, {"ship_num": 3, "ts": "2026-08-01T18:32:59Z", "hours": 16.0, "multiplier": 6.15, "payout": 91, "blessing": "neutral", "text": "Determinist is a password generator made for people who often forget or leave passwords behind, just like me. A few years ago I was on vacation when I wanted to log into a website. However, the password for it was left at home on my PC, which I didn’t bring with myself. Of course, I could’ve just reset the password, but that would’ve been worse since I’d still have mismatched passwords. Determinist solves that. It uses a deterministic algorithm to take your inputs, and generate you a password you can recover anytime, anywhere. The only thing you need to remember is your master passphrase, which site you want to log in, and a few additional settings. (presets coming soon!) I had a lot of fun with this project, and it taught me quite a bit about encryption, randomness, and most importantly how a real-world project functions. (I do have to mention my initial struggle with Typer though, I would not want to wish that on my worst enemy.) With that being said, I hope you’ll have your password problems solved, and that you’ll enjoy using Determinist! Have fun!", "repo": "https://github.com/szentpeterimate/Determinist", "demo": "https://szentpeterimate.github.io/determinist/"}]...
|
[{"post_id": 80257, "ts": "202 [{"post_id": 80257, "ts": "2026-10-16T23:42:22Z", "hours": 1.6311, "text": "Determinist // Devlog 16 // 2026.09.17. Version 1.0.0 is out, and this is my final devlog. Well, it finally arrived. Version 1.0.0. This is where active development stops. Of course, I will still fix issues and implement features suggested by you guys, but I probably won’t be adding any by myself. Stardance has been a great inspiration for me, not only to make this project, but to keep going and coming back to doing what I love: coding, and making things for others. I am very happy with how Determinist turned out, despite the difficulties and me being busy with school. But enough of this, what was changed since my last devlog? Changes Updated the documentation to show that a PWA is available to install Fixed various bugs and style inconsistencies Added a description of the generation process to the website Added a Copy to Clipboard toggle Added an Export as Preset button Removed Google Fonts connections What’s next? Nothing. I’d like to thank everyone who had a chance to try and use Determinist. Everyone who reviewed it and even you, the one reading this devlog :) Y’all have showed me that things I make can and are useful for others. See you in the next Hack Club program!"}, {"post_id": 79995, "ts": "2026-10-15T20:30:50Z", "hours": 5.9489, "text": "Determinist // Devlog 15 // 2026.09.15. A few design changes, and a brand new section on the website! Design I have fixed several design issues I noticed and did not like. Just to mention a few, there was unnecessary overflow on mobile devices, the spacing was off on several elements, and the width of the file input field was also too big. The Wall of Text™ It isn’t that big to be fair, it just explains how Determinist works, split into the 3 versions of the generation algorithm. I didn’t want to copy the page I had linked in the README, so I just wrote it down again and tried wording it better. Additionally, I tried to preserve the original one page, no scroll design by placing the About section below the actual app, so you have to scroll to see it. Other changes I refactored parts of the web code as the Generator element was getting really long, above 500 lines. I moved the algorithms out to a separate importable module, and I placed it along with the python-random module into a self-explanatory modules directory. I’ve also moved generror.jsx and presethandler.jsx into their own handlers/ directory, and the two specialized input fields into an inputs/ directory. Overall, this change makes the code way easier to read. The preset generator works now as well, just click the “Export as Preset” button below “Generate”, name the preset and the preset will be downloaded for you! You can also toggle on a “Copy to Clipboard” feature which allows you to automatically copy your generated password to your clipboard. Pretty neat! What’s next? Bug fixes Auto clear password popup"}, {"post_id": 77686, "ts": "2026-10-07T21:23:27Z", "hours": 2.1339, "text": "Determinist // Devlog 14 // 2026.09.06. Finally, I figured out how to make the site work offline… The process After working on the PWA for way longer than I expected, it finally works as intended! After I’ve figured out how to use next-pwa , I encountered an issue: the site was being cached and loaded correctly in the browser but not when installed as a PWA. I rewrote multiple parts of the code for it to work, yet it did not. In the end, it was the unsecured connections that were at fault. Discovering that, I have learned to use something new again: Localtunnel, which allows me to use a valid (not self-signed) HTTPS connection while testing. This uncovered even more issues with my code, the most obvious being the fact that fonts were not cached at all. This was because I was getting my fonts by connecting to fonts.google.com . This was a really easy thing to fix though, as Next.js already has a next/fonts/google library that had the fonts I used, and now everything works well. What’s next? Bug fixes Descriptions Preset Generator Auto Copy to Clipboard toggle"}, {"post_id": 73593, "ts": "2026-09-25T13:12:35Z", "hours": 4.1403, "text": "Determinist // Devlog 13 // 2026.09.25. Quite a few issues, but apparently it works… Progressive Web App Well, making Determinist a PWA certainly took way longer than expected. I thought it would be an hour at most, I mean Next.js literally has a guide that tells me what to do step-by-step. It was in fact NOT easy. I encountered a ton of problems. First off, I had to write a manifest which had the app name, icons etc., the obvious things. What was not obvious however was that I had multiple ways of doing that. I could write a JSON file, or write a JavaScript file that exports an object. I chose the latter as it was the version that the Next.js guide was using. Then came the icons. Oh, the icons. I made my icons and put it in the public/ directory with the correct names so that they match the manifest. Cool, works when I share it but there is no icon when I add it to my home screen on my iPhone. It said I’m missing a file called apple-touch-icon and apple-touch-icon-precomposed . Cool, I duplicated the icons and I renamed them. No 404s, but it still did not work. I look for a solution. For hours. I look at Next.js docs, YouTube, StackOverflow, Reddit, GitHub issues and there is nothing that would fix it. Finally, I found out I need to link the icon in the head of the website. Great, but still doesn’t work. Turns out, the problem was that I was following the Next.js guide which told me to use HTTPS to test the PWA, but iOS does not trust self-signed keys so it did not download the icon. After that, the generation broke when I was connecting to the site with the IP and not through localhost . I noticed that submitting (pressing the generate button) redirected me which should not have happened due to the line e.preventDefault() . Then I saw Next.js attempting to connect a websocket, and a bunch of 403 errors that weren’t there before. I spent quite a bit of time debugging that, and it was due to not adding my IP to allowedDevOrigins in the next.config.mjs file despite it working perfectly fine before. The Icon As you can see, the image I decided to include in my devlog is the icon for Determinist. I actually did not think of putting the D and the E together at first, but when I did, it reminded me of a lock (hope you can see it!) and I chose to keep it as it kind of fits. And I didn’t want a solid color background, so I decided I’ll just add the name repeating. It was fun making it, and it was also a very good way to practice using Illustrator. What’s next? Making the PWA work offline Bug fixes Descriptions Preset Generator Auto Copy to Clipboard toggle"}, {"post_id": 69184, "ts": "2026-09-16T15:26:59Z", "hours": 5.1517, "text": "Determinist // Devlog 12 // 2026.09.16. Well, it took me more than a week, but the v3 algorithm is on the website! CLI Update I have published version 0.5.2 of the Python CLI, which fixed a few issues I found (you can see them on the GitHub page!), and added actual functionality to the default presets. You can also report issues on the GitHub page, and it is highly appreciated. What changed? I added the v3 algorithm, after a bit of tinkering with the error handling. My problem was that the error handling wasn’t really dynamic. It couldn’t handle the invalid input errprs from v3, so I made a separate component. I also had to learn how to use HKDF on the client side, which was actually easier to do than I expected, although the actual usage of HKDF was a bit more complicated than it is in Python. What’s next? Bug fixes Descriptions Preset Generator PWA Implementation Auto Copy to Clipboard toggle"}, {"post_id": 63122, "ts": "2026-09-06T19:06:33Z", "hours": 8.5219, "text": "Determinist // Devlog 11 // 2026.09.06. After the first week of school, I have finished work on the CLI, and Determinist 0.5.1 is released! Changes Added presets create command Changed preset option to allow selection in one line Changed the presets list to show invalid files in the configuration directory Added password generation errors Fixed bugs: The password being allowed to have less characters than the sum of the minimum required characters is fixed The g prefix from the commit hash is now removed Various preset error handling issues have been fixed Presets are now not required to have all the versions inside them What’s taking so long? Is Determinist done? Firstly, I just started school, so I got very busy lately and that is why I haven’t been doing much work. As a compensation, v3 of the algorithm is now available on GitHub !! This is version 0.5.1, which is a pretty big jump if you look at the versions before. However, there is a reason for that: active development of Determinist is going to stop once version 1.0.0 comes out, with all the new features and fixes being ported to the website. This will come out in the next week or so. Determinist will still be updated here and there if I miss some features or people have suggestions and issues, but I will be mainly focusing on other projects. Latest development stuff The preset creation was actually pretty easy. I figured I’ll reuse the options from the generate command so I don’t have to write them manually again, and it worked amazing! I had to add to the PresetHandler to make it work, and that was really simple as well. I first thought of adding strings together, but then I realized I could just create dictionaries that my TOML library can convert to TOML and write them to the preset, so I didn’t have to do all the writing myself. The bug fixes weren’t interesting at all, honestly. I messed around with Determinist, found bugs and issues and I fixed them. My favorite one was debugging errors with the preset commands however. I found a bunch of things worth fixing, and in the end I made another helper function, as well as changing how check_file_type works. To do Port everything over to the website Add more text to the website explaining Determinist and how it works"}, {"post_id": 55761, "ts": "2026-08-27T19:06:48Z", "hours": 4.7333, "text": "Determinist // Devlog 10 // 2026.08.27 Updates here and there, and the v3 algorithm is finally complete! All of this and the content of the rest of the devlogs will only be released with the final 1.0.0 release of Determinist. Changes Added v3 algorithm for the Python CLI It features dynamic byte generation so that no matter what, you’ll never run out of characters! (Unless you’re VERY unlucky) You can now enter a third value called a “differentiator” that can be used to change the output further. This is especially useful if you have multiple accounts on the same site. This option can be left empty Your generated password is now guaranteed to have the correct amount of characters You can now set a minimum amount of characters of each type! Simply enter 0 to exclude the character type, and 1 or above to choose how many characters your password have minimum of that type. Made generate prompt only prompt users if the prompts are applicable. This means you will no longer be prompted for the settings of v1 when you use one of the other two algorithms. Fixed an issue where if the site_name option is omitted, the prompt will display Master pass instead of the correct prompt. The difficulties Well, of course the development of v3 came with some challenges. Firstly, I had to figure out how to actually generate enough bytes to pass rejection sampling (making sure no bytes are out of range when mapped onto the character set), as the previous implementation was that I multiplied the password length by 32. This worked, but wasn’t pretty and in very rare and unlucky cases, there weren’t enough bytes. I fixed this by using something called HKDF, which stands for HMAC-based Extract-and-Expand Key Derivation Function. I’d really prefer to use HKDF. Anyway, this function was really good for this task, as it can take the Argon2 output and create a long, pseudo-random key that can go through rejection sampling, and finally end up in the password. In case this generated key is not enough, HKDF will generate more of it, essentially giving us infinite bytes to then map to our characters. This was especially good because in the same loop I could implement… Minimum requirements This should have been easy, but it took me a day to think about how to do it. The challenge: take a dictionary ( {\"lowercase\": 2, \"uppercase\": 3, \"special\": 1, \"digits\": 0} ), and include at least as many characters of each type as their value in that dictionary says, and if it’s 0 then don’t include it at all. Fine, I said, but I didn’t actually know how to implement this. After a day of thinking, it finally clicked: I implement this in the rejection sampling loop, as that is where my characters get added. Introducing the _construct_pass function: it looks for the already added characters, determines the type of the current character, counts how many are missing, and if a character type is missing some characters or there aren’t any left, the character is added, and otherwise it is discarded. To do Add a preset generator command Fix a g prefix appearing in the version command output before the git commit hash Add the ability to choose a preset in one line instead of being prompted for it Fix the password being allowed to be shorter than the sum of minimum required characters (I found that one while writing this) Port everything over to the website Update the docs Add more text to the website explaining Determinist and how it works"}, {"post_id": 52485, "ts": "2026-08-22T16:59:34Z", "hours": 6.1439, "text": "Determinist // Devlog 9 // 2026.08.22 Long time no see y’all, sorry for the wait! I’m on vacation so I had less time to work on the project, but I did bring some amazing improvements. Announcement The website is officially up and works identically to the CLI, now with presets! Just load your TOML presets into the website, and they will be saved for you to reuse! Important note: they are saved locally, therefore you will not see them on different devices unless you import them there too. Changes Added the preset system to the website! You can now import and use presets, and you can easily remove them if needed. Adjusted the UI so that it fits most (if not all) screens. The smallest screen I tested was an iPhone SE. The Challenges There actually weren’t a lot of challenges for once. The biggest one was that I forgot to work on the project while on vacation, but that’s not horrible. And then came React, JavaScript and everything else… firstly, the preset loading was actually really easy, I did however fight with React about passing values from a child component to the parent. And then it turned out I forgot to make it actually pleasant to use, as I had to select the preset file every time I wanted to load it. Now you can save, select and load your presets on the website. However, React had other plans. I finally learned how React’s useEffect hook works, and using it is pretty easy now that I get what I’m doing. Along with this, I also properly learned about using functions inside useState for lazy initialization which I needed for localStorage . Oh, localStorage was a pleasure to learn and use… Well, the operations with it are actually fairly easy, it’s like an object, and my first thought of initializing a state with it was to use useState({ ...localStorage }) , which did work, but it introduced something else: a build error after I merged the changes into main . Turns out, localStorage is undefined when GitHub Actions wants to build my website, therefore it gave me an error saying so. What I had to do is check if the window object is equal to 'undefined' , and if not, then spread localStorage and initialize the state. Finally, the website managed to build properly, but when I tried to use it on my phone, the output of the generator was outside my screen… so I had to go back and change how the UI looks after I’ve already merged everything into main . Amazing. Well, the good new is that it works, and next up is the v3 algorithm, as well as QoL changes, bug fixes, and more in both the CLI and web versions."}, {"post_id": 46026, "ts": "2026-08-12T22:45:54Z", "hours": 6.4178, "text": "Determinist // Devlog 8 // 2026.08.13 The UI is mostly complete, and I will be releasing the website tomorrow! Changes Significantly improved the entire user interface Version and special character mode (V1) now use <select> instead of the regular <input> , so you don’t have to type them out The difficulties There really wasn’t anything too hard about making the UI. You might ask, “why did you spend over 6 hours on it then?”. I have an answer for you. I tried using Figma for designing the UI but it was just too boring for me, so I decided to start coding it and figure it out as I go. I’m pretty satisfied with the result, but with everything, it can always be improved. The second problem was that while I was coding, I was also listening to music and I spent a bunch of time skipping songs because I didn’t feel like listening to them. This took my attention along with singing a bit too much, so my progress was slowed… The last thing to slow me down was my general inexperience with React and JS, although I got over that quick because the frontend is way easier to work on. Planned Adding the preset system Building the site & uploading to GitHub Pages"}, {"post_id": 45454, "ts": "2026-08-11T22:28:05Z", "hours": 4.7858, "text": "Determinist // Devlog 7 // 2026.08.12 Well, it’s official. I had to use AI for the first time :( Why? JavaScript does not have the same random implementation as Python does. Python uses MT19937 while JS uses Xorshift128+. This means we can’t use JavaScript’s random number generator, not to mention that we can’t even use it to shuffle arrays, as it lacks the method. And since I am relatively new to JS, I had two options: get a 15 year old module work that does exactly what I need it to, or make it with AI. I tried getting that package to work. I really did. Unfortunately, the algorithm it uses seems to be outdated, as the results differed in tests. That is why I used AI. I really didn’t want to, but I had to. Well, let’s look at the positives, at least! Changes The V2 algorithm is implemented and works 1:1 with the Python version! I managed to make another input component that uses checkboxes so you can select what kind of characters you’d like. It was challenging but it works! Next Up Tomorrow I’ll work on the UI design Adding the preset system Building the site Uploading to GitHub Pages"}, {"post_id": 44862, "ts": "2026-08-10T21:58:48Z", "hours": 2.4364, "text": "Determinist // Devlog 6 // 2026.08.10 Pretty big milestone: V1 is finally working on the website! Additions Added the V1 generation algorithm Added the customization options to the interface The Generator V1 is complete and works perfectly! I had to figure out a way to enter objects, and it was quite difficult. See, JavaScript doesn’t really have a dictionary type like Python does, so I had to use an object, which is similar enough and I can look for keys with in , just like in Python. The tricky part was creating such an object from the user’s input. I chose the most user friendly way I could think of, and made separate inputs for the key and value, and you can dynamically add more with an “Add Character Pair” button. I really wish there was an easier way and maybe there is a template out there, but I didn’t consider it until writing this very sentence. Anyways, tomorrow I’ll spend more time refining V1, the inputs and I’ll start working on V2. To Do Refining the generator and inputs Creating V2 Desgining the UI Adding the preset system Generating the static site"}, {"post_id": 44238, "ts": "2026-08-09T21:17:27Z", "hours": 2.4381, "text": "Determinist // Devlog 5 // 2026.08.09 I’ve started working on the website finally! The plan I’ll use GitHub Pages to host Determinist until I can get my own domain and personal site up, after which I’ll transfer it there. The plan is to make the generator client sided by using WebAssembly to access Argon2 in the browser without requiring a backend. I wanna do this so that no information leaves the user’s computer, which is a key part of keeping Determinist privacy focused. I chose to use Next.js because I used it before, and it has Static Site Generation which is essential if I want to put the site on GitHub Pages. What I achieved in 2 and a half hours I made Argon2 work Yes, that’s about it. I spent most of my time debugging errors and learning basics as I’ve only used JavaScript for making components, not to make more complex algorithms like Determinist’s is. I am a fast learner though, so I expect to be able to recreate Determinist V1 relatively quickly. Starting with WASM on my first serious web project where I’m still learning JS maybe wasn’t the most amazing idea, but hey, I like challenges and learning by doing. What’s next? Continuing work on V1 Porting V2 to JavaScript Desgining the UI Adding the preset system Generating the static site and fixing errors after it’s done And to the reviewers and people who liked the Determinist CLI… Thank you! Developing Determinist has been lots of fun and I’ve learned a lot of valuable things. Your support and feedback is greatly appreciated, it motivates me to work every single day. It’s a project I’m really passionate about, as I wanted to create this for years. Thank you all for your support, and I hope you’ll enjoy using Determinist whether it’s in your terminal or the web. See you in the next devlog!"}, {"post_id": 42594, "ts": "2026-08-07T12:38:38Z", "hours": 3.0314, "text": "Determinist // Devlog 4 // 2026.08.07 Developer experience and cleanups What changed My code now has comments! Although it is quite straightforward to understand, I did include a few here and there. A brand new version command shows what version Determinist is on, what commit it was built from, and the Python version it uses. I added more custom error handling to commands Something funny happened… I was testing the generation of the default preset, and I forgot to press tab when deleting the Determinist config directory. I only realized that when Hyprland started screaming at me about missing configurations. I thought “that’s weird”, so I checked the command I ran. rm -rf ~/.config/ . I deleted my entire configuration directory… Luckily, I had backups, but at least I’ve learned that I should double check my commands. Another Typer issue To absolutely no one’s surprise, Typer didn’t work as intended, once again. It kept reporting the wrong error when running presets subcommands. Turns out it was the callback I wrote to list the presets. It actually ran the check every time a presets command was run, giving the wrong error when a non TOML file was detected in the presets directory. It was a quick fix, but now I’m quite comfortable with Typer."}, {"post_id": 41993, "ts": "2026-08-06T15:11:38Z", "hours": 10.2806, "text": "Determinist // Devlog 3 // 2026.08.06. Determinist v0.2.2 is here and available to install, but I certainly did not thing this would take another 10 hours… What changed I have made a preset system that can load settings so you don’t have to type them out manually. You can only use this with the regular generate command. The presets command lists out all installed presets Running presets save with a path added at the end will save the selected preset to your config folder Adding delete after presets with the name of a preset will delete that permanently Using presets default and adding the preset name will set that preset as default Running --help is actually helpful now! Another change is I made prompt a subcommand of generate . I ran into an issue while implementing this… The issue You see, Typer cannot tell the difference between a positional argument and a subcommand, meaning that it took prompt as the master_pass argument for generate . This is obviously not at all what I intended, so I needed a way to figure out how to solve this. I didn’t want to make prompt an option, since that would’ve complicated things a lot more than they needed to be. Therefore, I changed master_pass and site_name to required options, which means they need to be typed out manually. Fear not however, because if you forget to do that, Determinist now prompts you for it! Another problem was with types, again. Typer apparently doesn’t like Union types, which I would’ve used for the preset option. What I wanted to do is make the user be able to type out the name of the preset, select one if none is entered in the command, or do everything manually. Problem: that’s 3 types: None , str and UNSET , which is basically a different spelling of None , it jut signals that the presets option was passed without an argument, as a flag. But Typer decided to ruin my day and only let me use two types, so I removed it all and made --preset a boolean, therefore a flag. That’s about it for now, if you like the idea of having an easy way of remembering your passwords, check out Determinist!"}, {"post_id": 39036, "ts": "2026-08-01T18:20:18Z", "hours": 11.0289, "text": "Determinist // Devlog 2 // 2026.08.01 Welcome back to the second devlog of Determinist! It’s been a while, so let’s recap what happened… Release!! The first official release of Determinist is here! You can check out the GitHub page to learn more. Algorithm V2 Quite a few changes here. I changed the algorithm so that it uses the bytes that Argon2 returns The bytes are now mapped to characters in a shuffled charset Insert/Replace modes have been removed because special characters are already in the charset You can now construct your own charset Typer I made my CLI with Typer, which was a challenge to say the least. This is my first time using it, and looking back, it wasn’t THAT bad. All I had to do is refactor generator.py completely, and make my types compatible (which I worked REALLY HARD on for V1). Typer doesn’t allow me to use things like lists and dictionaries, both of which are essential, but I managed to change everything in a way that’s mostly straightforward. I can split strings into a list and use JSON for dictionaries. Refactoring Challenges This is pretty funny. I wrote a series of tests for version 2 of the algorithm before I started implementing Typer. After than however, all tests passed except one. I was supposed to use assertUnequal() , but used the opposite instead, and that was I caught an error in my code that would’ve went unnoticed. The tests saved me another time, when I noticed that changing the order in which the charset character types are written changes the output, which is not what I need because it’s essentially the same input, and it should be more like a toggle. The fix was making the charset canonical. The algorithm goes through the list, writes the correct characters into a string, and uses that in the salt instead of the list of the charset. Other The Generator class was removed, as it served no purpose."}, {"post_id": 33987, "ts": "2026-07-24T11:33:26Z", "hours": 4.8617, "text": "Determinist // Devlog 1 // 2026.07.24. Hey everyone! This is the first devlog of Determinist, a deterministic password generator. After a few hours of messing around, I’ve managed to write the first working version of the generator algorithm. (Flowchart attached) You can specify the parameters such as password length, special character frequency, etc. as well as the master passphrase and the salt (site name in this case), and the script will generate a pseudorandom password for you. I’ve hit quite a few roadblock along the way, such as the salt being too small. This is a feature of Argon2, so for now you can only use custom salts that are bigger than 8 bytes. I’ve also included a few unit tests as proof of concept. The generator algorithm will be improved in later versions, and a CLI tool will be available."}]...
|
Title: Determinist by @Mate1166 | Stardance
Devlo Title: Determinist by @Mate1166 | Stardance
Devlogs:
Determinist // Devlog 1 // 2026.07.24. Hey everyone! This is the first devlog of Determinist, a deterministic password generator. After a few hours of messing around, I’ve managed to write the first working version of the generator algorithm. (Flowchart attached) You can specify the parameters such as password length, special character frequency, etc. as well as the master passphrase and the salt (site name in this case), and the script will generate a pseudorandom password for you. I’ve hit quite a few roadblock along the way, such as the salt being too small. This is a feature of Argon2, so for now you can only use custom salts that are bigger than 8 bytes. I’ve also included a few unit tests as proof of concept. The generator algorithm will be improved in later versions, and a CLI tool will be available.
Determinist // Devlog 2 // 2026.08.01 Welcome back to the second devlog of Determinist! It’s been a while, so let’s recap what happened… Release!! The first official release of Determinist is here! You can check out the GitHub page to learn more. Algorithm V2 Quite a few changes here. I changed the algorithm so that it uses the bytes that Argon2 returns The bytes are now mapped to characters in a shuffled charset Insert/Replace modes have been removed because special characters are already in the charset You can now construct your own charset Typer I made my CLI with Typer, which was a challenge to say the least. This is my first time using it, and looking back, it wasn’t THAT bad. All I had to do is refactor generator.py completely, and make my types compatible (which I worked REALLY HARD on for V1). Typer doesn’t allow me to use things like lists and dictionaries, both of which are essential, but I managed to change everything in a way that’s mostly straightforward. I can split strings into a list and use JSON for dictionaries. Refactoring Challenges This is pretty funny. I wrote a series of tests for version 2 of the algorithm before I started implementing Typer. After than however, all tests passed except one. I was supposed to use assertUnequal() , but used the opposite instead, and that was I caught an error in my code that would’ve went unnoticed. The tests saved me another time, when I noticed that changing the order in which the charset character types are written changes the output, which is not what I need because it’s essentially the same input, and it should be more like a toggle. The fix was making the charset canonical. The algorithm goes through the list, writes the correct characters into a string, and uses that in the salt instead of the list of the charset. Other The Generator class was removed, as it served no purpose.
Determinist // Devlog 3 // 2026.08.06. Determinist v0.2.2 is here and available to install, but I certainly did not thing this would take another 10 hours… What changed I have made a preset system that can load settings so you don’t have to type them out manually. You can only use this with the regular generate command. The presets command lists out all installed presets Running presets save with a path added at the end will save the selected preset to your config folder Adding delete after presets with the name of a preset will delete that permanently Using presets default and adding the preset name will set that preset as default Running --help is actually helpful now! Another change is I made prompt a subcommand of generate . I ran into an issue while implementing this… The issue You see, Typer cannot tell the difference between a positional argument and a subcommand, meaning that it took prompt as the master_pass argument for generate . This is obviously not at all what I intended, so I needed a way to figure out how to solve this. I didn’t want to make prompt an option, since that would’ve complicated things a lot more than they needed to be. Therefore, I changed master_pass and site_name to required options, which means they need to be typed out manually. Fear not however, because if you forget to do that, Determinist now prompts you for it! Another problem was with types, again. Typer apparently doesn’t like Union types, which I would’ve used for the preset option. What I wanted to do is make the user be able to type out the name of the preset, select one if none is entered in the command, or do everything manually. Problem: that’s 3 types: None , str and UNSET , which is basically a different spelling of None , it jut signals that the presets option was passed without an argument, as a flag. But Typer decided to ruin my day and only let me use two types, so I removed it all and made --preset a boolean, therefore a flag. That’s about it for now, if you like the idea of having an easy way of remembering your passwords, check out Determinist!
Determinist // Devlog 4 // 2026.08.07 Developer experience and cleanups What changed My code now has comments! Although it is quite straightforward to understand, I did include a few here and there. A brand new version command shows what version Determinist is on, what commit it was built from, and the Python version it uses. I added more custom error handling to commands Something funny happened… I was testing the generation of the default preset, and I forgot to press tab when deleting the Determinist config directory. I only realized that when Hyprland started screaming at me about missing configurations. I thought “that’s weird”, so I checked the command I ran. rm -rf ~/.config/ . I deleted my entire configuration directory… Luckily, I had backups, but at least I’ve learned that I should double check my commands. Another Typer issue To absolutely no one’s surprise, Typer didn’t work as intended, once again. It kept reporting the wrong error when running presets subcommands. Turns out it was the callback I wrote to list the presets. It actually ran the check every time a presets command was run, giving the wrong error when a non TOML file was detected in the presets directory. It was a quick fix, but now I’m quite comfortable with Typer.
Determinist // Devlog 5 // 2026.08.09 I’ve started working on the website finally! The plan I’ll use GitHub Pages to host Determinist until I can get my own domain and personal site up, after which I’ll transfer it there. The plan is to make the generator client sided by using WebAssembly to access Argon2 in the browser without requiring a backend. I wanna do this so that no information leaves the user’s computer, which is a key part of keeping Determinist privacy focused. I chose to use Next.js because I used it before, and it has Static Site Generation which is essential if I want to put the site on GitHub Pages. What I achieved in 2 and a half hours I made Argon2 work Yes, that’s about it. I spent most of my time debugging errors and learning basics as I’ve only used JavaScript for making components, not to make more complex algorithms like Determinist’s is. I am a fast learner though, so I expect to be able to recreate Determinist V1 relatively quickly. Starting with WASM on my first serious web project where I’m still learning JS maybe wasn’t the most amazing idea, but hey, I like challenges and learning by doing. What’s next? Continuing work on V1 Porting V2 to JavaScript Desgining the UI Adding the preset system Generating the static site and fixing errors after it’s done And to the reviewers and people who liked the Determinist CLI… Thank you! Developing Determinist has been lots of fun and I’ve learned a lot of valuable things. Your support and feedback is greatly appreciated, it motivates me to work every single day. It’s a project I’m really passionate about, as I wanted to create this for years. Thank you all for your support, and I hope you’ll enjoy using Determinist whether it’s in your terminal or the web. See you in the next devlog!
Determinist // Devlog 6 // 2026.08.10 Pretty big milestone: V1 is finally working on the website! Additions Added the V1 generation algorithm Added the customization options to the interface The Generator V1 is complete and works perfectly! I had to figure out a way to enter objects, and it was quite difficult. See, JavaScript doesn’t really have a dictionary type like Python does, so I had to use an object, which is similar enough and I can look for keys with in , just like in Python. The tricky part was creating such an object from the user’s input. I chose the most user friendly way I could think of, and made separate inputs for the key and value, and you can dynamically add more with an “Add Character Pair” button. I really wish there was an easier way and maybe there is a template out there, but I didn’t consider it until writing this very sentence. Anyways, tomorrow I’ll spend more time refining V1, the inputs and I’ll start working on V2. To Do Refining the generator and inputs Creating V2 Desgining the UI Adding the preset system Generating the static site
Determinist // Devlog 7 // 2026.08.12 Well, it’s official. I had to use AI for the first time :( Why? JavaScript does not have the same random implementation as Python does. Python uses MT19937 while JS uses Xorshift128+. This means we can’t use JavaScript’s random number generator, not to mention that we can’t even use it to shuffle arrays, as it lacks the method. And since I am relatively new to JS, I had two options: get a 15 year old module work that does exactly what I need it to, or make it with AI. I tried getting that package to work. I really did. Unfortunately, the algorithm it uses seems to be outdated, as the results differed in tests. That is why I used AI. I really didn’t want to, but I had to. Well, let’s look at the positives, at least! Changes The V2 algorithm is implemented and works 1:1 with the Python version! I managed to make another input component that uses checkboxes so you can select what kind of characters you’d like. It was challenging but it works! Next Up Tomorrow I’ll work on the UI design Adding the preset system Building the site Uploading to GitHub Pages
Determinist // Devlog 8 // 2026.08.13 The UI is mostly complete, and I will be releasing the website tomorrow! Changes Significantly improved the entire user interface Version and special character mode (V1) now use <select> instead of the regular <input> , so you don’t have to type them out The difficulties There really wasn’t anything too hard about making the UI. You might ask, “why did you spend over 6 hours on it then?”. I have an answer for you. I tried using Figma for designing the UI but it was just too boring for me, so I decided to start coding it and figure it out as I go. I’m pretty satisfied with the result, but with everything, it can always be improved. The second problem was that while I was coding, I was also listening to music and I spent a bunch of time skipping songs because I didn’t feel like listening to them. This took my attention along with singing a bit too much, so my progress was slowed… The last thing to slow me down was my general inexperience with React and JS, although I got over that quick because the frontend is way easier to work on. Planned Adding the preset system Building the site & uploading to GitHub Pages
Determinist // Devlog 9 // 2026.08.22 Long time no see y’all, sorry for the wait! I’m on vacation so I had less time to work on the project, but I did bring some amazing improvements. Announcement The website is officially up and works identically to the CLI, now with presets! Just load your TOML presets into the website, and they will be saved for you to reuse! Important note: they are saved locally, therefore you will not see them on different devices unless you import them there too. Changes Added the preset system to the website! You can now import and use presets, and you can easily remove them if needed. Adjusted the UI so that it fits most (if not all) screens. The smallest screen I tested was an iPhone SE. The Challenges There actually weren’t a lot of challenges for once. The biggest one was that I forgot to work on the project while on vacation, but that’s not horrible. And then came React, JavaScript and everything else… firstly, the preset loading was actually really easy, I did however fight with React about passing values from a child component to the parent. And then it turned out I forgot to make it actually pleasant to use, as I had to select the preset file every time I wanted to load it. Now you can save, select and load your presets on the website. However, React had other plans. I finally learned how React’s useEffect hook works, and using it is pretty easy now that I get what I’m doing. Along with this, I also properly learned about using functions inside useState for lazy initialization which I needed for localStorage . Oh, localStorage was a pleasure to learn and use… Well, the operations with it are actually fairly easy, it’s like an object, and my first thought of initializing a state with it was to use useState({ ...localStorage }) , which did work, but it introduced something else: a build error after I merged the changes into main . Turns out, localStorage is undefined when GitHub Actions wants to build my website, therefore it gave me an error saying so. What I had to do is check if the window object is equal to 'undefined' , and if not, then spread localStorage and initialize the state. Finally, the website managed to build properly, but when I tried to use it on my phone, the output of the generator was outside my screen… so I had to go back and change how the UI looks after I’ve already merged everything into main . Amazing. Well, the good new is that it works, and next up is the v3 algorithm, as well as QoL changes, bug fixes, and more in both the CLI and web versions.
Determinist // Devlog 10 // 2026.08.27 Updates here and there, and the v3 algorithm is finally complete! All of this and the content of the rest of the devlogs will only be released with the final 1.0.0 release of Determinist. Changes Added v3 algorithm for the Python CLI It features dynamic byte generation so that no matter what, you’ll never run out of characters! (Unless you’re VERY unlucky) You can now enter a third value called a “differentiator” that can be used to change the output further. This is especially useful if you have multiple accounts on the same site. This option can be left empty Your generated password is now guaranteed to have the correct amount of characters You can now set a minimum amount of characters of each type! Simply enter 0 to exclude the character type, and 1 or above to choose how many characters your password have minimum of that type. Made generate prompt only prompt users if the prompts are applicable. This means you will no longer be prompted for the settings of v1 when you use one of the other two algorithms. Fixed an issue where if the site_name option is omitted, the prompt will display Master pass instead of the correct prompt. The difficulties Well, of course the development of v3 came with some challenges. Firstly, I had to figure out how to actually generate enough bytes to pass rejection sampling (making sure no bytes are out of range when mapped onto the character set), as the previous implementation was that I multiplied the password length by 32. This worked, but wasn’t pretty and in very rare and unlucky cases, there weren’t enough bytes. I fixed this by using something called HKDF, which stands for HMAC-based Extract-and-Expand Key Derivation Function. I’d really prefer to use HKDF. Anyway, this function was really good for this task, as it can take the Argon2 output and create a long, pseudo-random key that can go through rejection sampling, and finally end up in the password. In case this generated key is not enough, HKDF will generate more of it, essentially giving us infinite bytes to then map to our characters. This was especially good because in the same loop I could implement… Minimum requirements This should have been easy, but it took me a day to think about how to do it. The challenge: take a dictionary ( {"lowercase": 2, "uppercase": 3, "special": 1, "digits": 0} ), and include at least as many characters of each type as their value in that dictionary says, and if it’s 0 then don’t include it at all. Fine, I said, but I didn’t actually know how to implement this. After a day of thinking, it finally clicked: I implement this in the rejection sampling loop, as that is where my characters get added. Introducing the _construct_pass function: it looks for the already added characters, determines the type of the current character, counts how many are missing, and if a character type is missing some characters or there aren’t any left, the character is added, and otherwise it is discarded. To do Add a preset generator command Fix a g prefix appearing in the version command output before the git commit hash Add the ability to choose a preset in one line instead of being prompted for it Fix the password being allowed to be shorter than the sum of minimum required characters (I found that one while writing this) Port everything over to the website Update the docs Add more text to the website explaining Determinist and how it works
Determinist // Devlog 11 // 2026.09.06. After the first week of school, I have finished work on the CLI, and Determinist 0.5.1 is released! Changes Added presets create command Changed preset option to allow selection in one line Changed the presets list to show invalid files in the configuration directory Added password generation errors Fixed bugs: The password being allowed to have less characters than the sum of the minimum required characters is fixed The g prefix from the commit hash is now removed Various preset error handling issues have been fixed Presets are now not required to have all the versions inside them What’s taking so long? Is Determinist done? Firstly, I just started school, so I got very busy lately and that is why I haven’t been doing much work. As a compensation, v3 of the algorithm is now available on GitHub !! This is version 0.5.1, which is a pretty big jump if you look at the versions before. However, there is a reason for that: active development of Determinist is going to stop once version 1.0.0 comes out, with all the new features and fixes being ported to the website. This will come out in the next week or so. Determinist will still be updated here and there if I miss some features or people have suggestions and issues, but I will be mainly focusing on other projects. Latest development stuff The preset creation was actually pretty easy. I figured I’ll reuse the options from the generate command so I don’t have to write them manually again, and it worked amazing! I had to add to the PresetHandler to make it work, and that was really simple as well. I first thought of adding strings together, but then I realized I could just create dictionaries that my TOML library can convert to TOML and write them to the preset, so I didn’t have to do all the writing myself. The bug fixes weren’t interesting at all, honestly. I messed around with Determinist, found bugs and issues and I fixed them. My favorite one was debugging errors with the preset commands however. I found a bunch of things worth fixing, and in the end I made another helper function, as well as changing how check_file_type works. To do Port everything over to the website Add more text to the website explaining Determinist and how it works
Determinist // Devlog 12 // 2026.09.16. Well, it took me more than a week, but the v3 algorithm is on the website! CLI Update I have published version 0.5.2 of the Python CLI, which fixed a few issues I found (you can see them on the GitHub page!), and added actual functionality to the default presets. You can also report issues on the GitHub page, and it is highly appreciated. What changed? I added the v3 algorithm, after a bit of tinkering with the error handling. My problem was that the error handling wasn’t really dynamic. It couldn’t handle the invalid input errprs from v3, so I made a separate component. I also had to learn how to use HKDF on the client side, which was actually easier to do than I expected, although the actual usage of HKDF was a bit more complicated than it is in Python. What’s next? Bug fixes Descriptions Preset Generator PWA Implementation Auto Copy to Clipboard toggle
Determinist // Devlog 13 // 2026.09.25. Quite a few issues, but apparently it works… Progressive Web App Well, making Determinist a PWA certainly took way longer than expected. I thought it would be an hour at most, I mean Next.js literally has a guide that tells me what to do step-by-step. It was in fact NOT easy. I encountered a ton of problems. First off, I had to write a manifest which had the app name, icons etc., the obvious things. What was not obvious however was that I had multiple ways of doing that. I could write a JSON file, or write a JavaScript file that exports an object. I chose the latter as it was the version that the Next.js guide was using. Then came the icons. Oh, the icons. I made my icons and put it in the public/ directory with the correct names so that they match the manifest. Cool, works when I share it but there is no icon when I add it to my home screen on my iPhone. It said I’m missing a file called apple-touch-icon and apple-touch-icon-precomposed . Cool, I duplicated the icons and I renamed them. No 404s, but it still did not work. I look for a solution. For hours. I look at Next.js docs, YouTube, StackOverflow, Reddit, GitHub issues and there is nothing that would fix it. Finally, I found out I need to link the icon in the head of the website. Great, but still doesn’t work. Turns out, the problem was that I was following the Next.js guide which told me to use HTTPS to test the PWA, but iOS does not trust self-signed keys so it did not download the icon. After that, the generation broke when I was connecting to the site with the IP and not through localhost . I noticed that submitting (pressing the generate button) redirected me which should not have happened due to the line e.preventDefault() . Then I saw Next.js attempting to connect a websocket, and a bunch of 403 errors that weren’t there before. I spent quite a bit of time debugging that, and it was due to not adding my IP to allowedDevOrigins in the next.config.mjs file despite it working perfectly fine before. The Icon As you can see, the image I decided to include in my devlog is the icon for Determinist. I actually did not think of putting the D and the E together at first, but when I did, it reminded me of a lock (hope you can see it!) and I chose to keep it as it kind of fits. And I didn’t want a solid color background, so I decided I’ll just add the name repeating. It was fun making it, and it was also a very good way to practice using Illustrator. What’s next? Making the PWA work offline Bug fixes Descriptions Preset Generator Auto Copy to Clipboard toggle
Determinist // Devlog 14 // 2026.09.06. Finally, I figured out how to make the site work offline… The process After working on the PWA for way longer than I expected, it finally works as intended! After I’ve figured out how to use next-pwa , I encountered an issue: the site was being cached and loaded correctly in the browser but not when installed as a PWA. I rewrote multiple parts of the code for it to work, yet it did not. In the end, it was the unsecured connections that were at fault. Discovering that, I have learned to use something new again: Localtunnel, which allows me to use a valid (not self-signed) HTTPS connection while testing. This uncovered even more issues with my code, the most obvious being the fact that fonts were not cached at all. This was because I was getting my fonts by connecting to fonts.google.com . This was a really easy thing to fix though, as Next.js already has a next/fonts/google library that had the fonts I used, and now everything works well. What’s next? Bug fixes Descriptions Preset Generator Auto Copy to Clipboard toggle
Determinist // Devlog 15 // 2026.09.15. A few design changes, and a brand new section on the website! Design I have fixed several design issues I noticed and did not like. Just to mention a few, there was unnecessary overflow on mobile devices, the spacing was off on several elements, and the width of the file input field was also too big. The Wall of Text™ It isn’t that big to be fair, it just explains how Determinist works, split into the 3 versions of the generation algorithm. I didn’t want to copy the page I had linked in the README, so I just wrote it down again and tried wording it better. Additionally, I tried to preserve the original one page, no scroll design by placing the About section below the actual app, so you have to scroll to see it. Other changes I refactored parts of the web code as the Generator element was getting really long, above 500 lines. I moved the algorithms out to a separate importable module, and I placed it along with the python-random module into a self-explanatory modules directory. I’ve also moved generror.jsx and presethandler.jsx into their own handlers/ directory, and the two specialized input fields into an inputs/ directory. Overall, this change makes the code way easier to read. The preset generator works now as well, just click the “Export as Preset” button below “Generate”, name the preset and the preset will be downloaded for you! You can also toggle on a “Copy to Clipboard” feature which allows you to automatically copy your generated password to your clipboard. Pretty neat! What’s next? Bug fixes Auto clear password popup
Determinist // Devlog 16 // 2026.09.17. Version 1.0.0 is out, and this is my final devlog. Well, it finally arrived. Version 1.0.0. This is where active development stops. Of course, I will still fix issues and implement features suggested by you guys, but I probably won’t be adding any by myself. Stardance has been a great inspiration for me, not only to make this project, but to keep going and coming back to doing what I love: coding, and making things for others. I am very happy with how Determinist turned out, despite the difficulties and me being busy with school. But enough of this, what was changed since my last devlog? Changes Updated the documentation to show that a PWA is available to install Fixed various bugs and style inconsistencies Added a description of the generation process to the website Added a Copy to Clipboard toggle Added an Export as Preset button Removed Google Fonts connections What’s next? Nothing. I’d like to thank everyone who had a chance to try and use Determinist. Everyone who reviewed it and even you, the one reading this devlog :) Y’all have showed me that things I make can and are useful for others. See you in the next Hack Club program!
Ships:
Determinist is a password generator made for people who often forget or leave passwords behind, just like me. A few years ago I was on vacation when I wanted to log into a website. However, the password for it was left at home on my PC, which I didn’t bring with myself. Of course, I could’ve just reset the password, but that would’ve been worse since I’d still have mismatched passwords. Determinist solves that. It uses a deterministic algorithm to take your inputs, and generate you a password you can recover anytime, anywhere. The only thing you need to remember is your master passphrase, which site you want to log in, and a few additional settings. (presets coming soon!) I had a lot of fun with this project, and it taught me quite a bit about encryption, randomness, and most importantly how a real-world project functions. (I do have to mention my initial struggle with Typer though, I would not want to wish that on my worst enemy.) With that being said, I hope you’ll have your password problems solved, and that you’ll enjoy using Determinist! Have fun!
Well, it’s official: Determinist now has a website! Features: Easy to use interface Straightforward settings 1:1 compatibility with the CLI Fully client-side The only thing that hasn’t made it into the website (yet) is the preset system, just like with the CLI, I’m adding that later as the web UI is already really easy to use. And now the less technical bit… It’s been an incredible journey, Determinist has been my dream project for a few years now, and it’s really amazing how I can share it with the world now that it’s done. Just to mention a few things I learned from this project: Testing Proper git usage Cryptography JavaScript These are things I wouldn’t really have learned without Determinist. Sure, I could have done so, but not this fast and effectively. I must thank those who supported the project, who liked the devlogs, and of course the reviewers who gave their opinion on the CLI. Because of your feedback, I made Determinist even easier to use now, and I will continue doing so. Version 3 of the algorithm is on its way, as well as the preset system for the web. Thank you everyone!
Determinist Determinist is a deterministic password generator that lets you recover forgotten passwords easily, given that you remember a master password, and a few things about your lost password. Features CLI and Web interface, featuring a PWA that also works offline Three algorithm versions to choose from A preset system Generated passwords are identical on both the website and the CLI Fully local generation Presets The presets use the TOML format, which is very user-friendly and easy to edit. The presets have multiple categories inside them like ‘general’ (for the algorithm version and password length), ‘preset’ (the preset name, description and whether it is set as defaul), and version specific ones like ‘v3’, which has the settings for the v3 algorithm. If you’re unsure how to edit preset files, you can also just export your settings from the website, and use it across all versions of Determinist! To Reviewers Please, test both the CLI and the website (if possible), and provide feedback on User Experience if you encountered any issues, include that in the review. You can even suggest features, and I may implement them :) Thank you!...
|
1792304412.9257355
|
1793168412.9257355
|
|
47079
|
agribot by @malek_sameh61 | Stardance
|
malek_sameh61
|
0
|
38.04
|
0
|
[]
|
[{"post_id": 80254, "ts": "202 [{"post_id": 80254, "ts": "2026-10-16T22:43:38Z", "hours": 6.1072, "text": "I FINALLY FINISHED THE PCB!!!! Finally, after 2 months, I finished the entire PCB. It has been a long journey, and I learned a lot in it. I hope you like my work. I know it’s not the best thing, but I gave it my best, and I think that what matters most is hope you like my project and comment. :) Bye-bye"}, {"post_id": 76102, "ts": "2026-10-02T10:09:58Z", "hours": 14.1619, "text": "i finally finished the updated schmatics and the assignment for the footprint and now the last step that remains is completing the footprint and traces and the silk screen"}, {"post_id": 58184, "ts": "2026-08-30T15:18:56Z", "hours": 9.7356, "text": "THE AGRIBOT PCB FOOTPRINT (i am getting cooked) In the last few days I have been working on the AgriBot motion board in KiCad and have reduced the number of DRC violations from 191 to zero. I found that 173 of the violations were due to one particular setting, namely the fact that the default netclass had a 1 mm pad with a 0.9 mm drill, which made me feel like the biggest idiot in the world since it left only a 0.05 mm annular ring for each via. After I changed the drill size to 0.6 mm, all of those errors vanished. The trace which I had been looking for during the last few days wasn’t really there—it was a missing via. Each of the two sections of the 12v run ended at the same place, one on the front layer and the other on the back layer, but they weren’t connected. This type of error is easy to overlook since the trace appears complete at first sight. Following that, I changed the fuse holder footprints and put their pads directly onto the existing routes. This resulted in six short circuits on the 12 V rails and on ground. I also realised that fuse (f3) is entirely bypassed since the same net is used on both sides. At the moment I have no intention of carrying out these changes, but I’ll most likely rebuild the whole board since I want to replace the motor drivers and add a few new features. Most of the routing will also be done over again. So yes, If you have been lucky these last few days plz pass some I really need your luck."}, {"post_id": 47455, "ts": "2026-08-15T11:58:50Z", "hours": 8.0397, "text": "My GREENSHIFT rover schematics are FINALLY DONE one of the most annoying and ragebaiting sessions of all time in kicad but finally got it done. This is the pcb for my project thats called GREENSHIFT its a farm rover that helps you inyour farm and helps you take care of it i just finished the schematics, and i really dont know how i did it with out breaking the screen kicad crashed 2 times and i had to do all of this 3 times, but at least it’s done. I will run ERC and than start routing plz wish me luck because i think I am going crazy"}]...
|
Title: agribot by @malek_sameh61 | Stardance
Devl Title: agribot by @malek_sameh61 | Stardance
Devlogs:
My GREENSHIFT rover schematics are FINALLY DONE one of the most annoying and ragebaiting sessions of all time in kicad but finally got it done. This is the pcb for my project thats called GREENSHIFT its a farm rover that helps you inyour farm and helps you take care of it i just finished the schematics, and i really dont know how i did it with out breaking the screen kicad crashed 2 times and i had to do all of this 3 times, but at least it’s done. I will run ERC and than start routing plz wish me luck because i think I am going crazy
THE AGRIBOT PCB FOOTPRINT (i am getting cooked) In the last few days I have been working on the AgriBot motion board in KiCad and have reduced the number of DRC violations from 191 to zero. I found that 173 of the violations were due to one particular setting, namely the fact that the default netclass had a 1 mm pad with a 0.9 mm drill, which made me feel like the biggest idiot in the world since it left only a 0.05 mm annular ring for each via. After I changed the drill size to 0.6 mm, all of those errors vanished. The trace which I had been looking for during the last few days wasn’t really there—it was a missing via. Each of the two sections of the 12v run ended at the same place, one on the front layer and the other on the back layer, but they weren’t connected. This type of error is easy to overlook since the trace appears complete at first sight. Following that, I changed the fuse holder footprints and put their pads directly onto the existing routes. This resulted in six short circuits on the 12 V rails and on ground. I also realised that fuse (f3) is entirely bypassed since the same net is used on both sides. At the moment I have no intention of carrying out these changes, but I’ll most likely rebuild the whole board since I want to replace the motor drivers and add a few new features. Most of the routing will also be done over again. So yes, If you have been lucky these last few days plz pass some I really need your luck.
i finally finished the updated schmatics and the assignment for the footprint and now the last step that remains is completing the footprint and traces and the silk screen
I FINALLY FINISHED THE PCB!!!! Finally, after 2 months, I finished the entire PCB. It has been a long journey, and I learned a lot in it. I hope you like my work. I know it’s not the best thing, but I gave it my best, and I think that what matters most is hope you like my project and comment. :) Bye-bye...
|
1793166701.1969202
|
1793771501.1969202
|
|
70105
|
Untitled project by @penguinissus | Stardance
|
penguinissus
|
0
|
2.06
|
0
|
[]
|
[{"post_id": 80251, "ts": "202 [{"post_id": 80251, "ts": "2026-10-16T22:12:26Z", "hours": 2.0625, "text": "I just want to snoop around the shop I don’t have anything to submit"}]...
|
Title: Untitled project by @penguinissus | Stardan Title: Untitled project by @penguinissus | Stardance
Devlogs:
I just want to snoop around the shop I don’t have anything to submit...
|
1792958049.0798318
|
1793562849.0798318
|
|
70093
|
Typd by @Mehmet | Stardance
|
Mehmet
|
0
|
10.28
|
0
|
[]
|
[{"post_id": 80244, "ts": "202 [{"post_id": 80244, "ts": "2026-10-16T21:01:27Z", "hours": 10.2758, "text": "I’m building Typd: a local dictation app. You hold a key, talk, and finished, formatted text appears wherever your cursor is. It runs entirely on your computer in under 2 GB of VRAM or unified memory, works offline, and it’s free. Why: today’s best dictation apps need the internet, send your voice to the cloud, and ask you to trust whoever’s on the other end with it. And they’re genuinely great. Wispr Flow takes the messy things you say out loud and turns them into clear, well-formatted text. I wanted that without the cloud. My first attempt was a basic Wispr Flow clone. NVIDIA’s Parakeet (a 0.6B speech model) transcribed locally, then a free cloud API cleaned up the text: removing fillers, fixing structure. Only half of it was local. The transcript still left my machine, and everything depended on my connection. Running the cleanup LLM locally didn’t work either: it needed more VRAM than my laptop had, spilled into RAM, and got slow. Then I asked: why do dictation apps use two models at all? Every one that explains how it works, Wispr Flow included, describes the same pipeline: a speech recogniser, then a fine-tuned LLM that removes the “um”s, works out what you meant and writes it properly. My guess is that it’s just history. Good speech models and good LLMs both already existed, so apps glued them together. From first principles, though, the job is simple: audio goes in, finished text comes out. A second model only adds latency, memory and failure points. So why not one model that hears you and writes the final text directly? That’s Typd. I took an open speech model (Qwen3-ASR) and trained it so it doesn’t just transcribe, it writes: fillers and false starts gone, self-corrections resolved, lists and paragraphs where they belong. All the training so far ran on free GPUs. In blind tests on 66 of my own real dictations (judged by AI judges that didn’t know which app wrote what), Typd was preferred over Wispr Flow 27 times to 12, with 27 ties. It returns text about 0.4 s after I stop talking. What I’m working on next: structuring long, rambling speech better, and never losing something you said when you correct yourself mid-sentence. The hard part is that big LLMs are good at this because they know so much. A model that can explain anything from the height of the Eiffel Tower to photon spectra can work out what you meant. It’s like having a professor help you write a letter. But you can’t run a professor on a laptop. So Typd teaches a small model just that one skill, distilling what big models do for dictation into something that uses a sliver of your computer. Typd runs on Windows and macOS, 100% private, no internet needed. It comes in two sizes: a 1.7B-parameter version (about 2 GB) for machines that can spare it, and a lighter 0.6B version (under 1 GB) for everything else."}]...
|
Title: Typd by @Mehmet | Stardance
Devlogs:
I’m b Title: Typd by @Mehmet | Stardance
Devlogs:
I’m building Typd: a local dictation app. You hold a key, talk, and finished, formatted text appears wherever your cursor is. It runs entirely on your computer in under 2 GB of VRAM or unified memory, works offline, and it’s free. Why: today’s best dictation apps need the internet, send your voice to the cloud, and ask you to trust whoever’s on the other end with it. And they’re genuinely great. Wispr Flow takes the messy things you say out loud and turns them into clear, well-formatted text. I wanted that without the cloud. My first attempt was a basic Wispr Flow clone. NVIDIA’s Parakeet (a 0.6B speech model) transcribed locally, then a free cloud API cleaned up the text: removing fillers, fixing structure. Only half of it was local. The transcript still left my machine, and everything depended on my connection. Running the cleanup LLM locally didn’t work either: it needed more VRAM than my laptop had, spilled into RAM, and got slow. Then I asked: why do dictation apps use two models at all? Every one that explains how it works, Wispr Flow included, describes the same pipeline: a speech recogniser, then a fine-tuned LLM that removes the “um”s, works out what you meant and writes it properly. My guess is that it’s just history. Good speech models and good LLMs both already existed, so apps glued them together. From first principles, though, the job is simple: audio goes in, finished text comes out. A second model only adds latency, memory and failure points. So why not one model that hears you and writes the final text directly? That’s Typd. I took an open speech model (Qwen3-ASR) and trained it so it doesn’t just transcribe, it writes: fillers and false starts gone, self-corrections resolved, lists and paragraphs where they belong. All the training so far ran on free GPUs. In blind tests on 66 of my own real dictations (judged by AI judges that didn’t know which app wrote what), Typd was preferred over Wispr Flow 27 times to 12, with 27 ties. It returns text about 0.4 s after I stop talking. What I’m working on next: structuring long, rambling speech better, and never losing something you said when you correct yourself mid-sentence. The hard part is that big LLMs are good at this because they know so much. A model that can explain anything from the height of the Eiffel Tower to photon spectra can work out what you meant. It’s like having a professor help you write a letter. But you can’t run a professor on a laptop. So Typd teaches a small model just that one skill, distilling what big models do for dictation into something that uses a sliver of your computer. Typd runs on Windows and macOS, 100% private, no internet needed. It comes in two sizes: a 1.7B-parameter version (about 2 GB) for machines that can spare it, and a lighter 0.6B version (under 1 GB) for everything else....
|
1792958037.2917237
|
1793562837.2917237
|
|
70091
|
The Soft Space by @arushkalra52 | Stardance
|
arushkalra52
|
0
|
2.14
|
0
|
[]
|
[{"post_id": 80241, "ts": "202 [{"post_id": 80241, "ts": "2026-10-16T20:31:01Z", "hours": 2.1439, "text": "Built and launched The Soft Space official website"}]...
|
Title: The Soft Space by @arushkalra52 | Stardance Title: The Soft Space by @arushkalra52 | Stardance
Devlogs:
Built and launched The Soft Space official website...
|
1792958035.6403208
|
1793822035.6403208
|