|
29801
|
Tecora by @hariharann | Stardance
|
hariharann
|
1
|
21.14
|
299
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-23T16:38:54Z", "hours": 19.0, "multiplier": 17.85, "payout": 299, "blessing": "neutral", "text": "Tecora — local Chrome extension that puts Claude, ChatGPT, and Gemini chats in one library. Problem: AI history is scattered across platforms/accounts. Searching, organizing, and exporting is painful. QoL: Cross-platform capture + folders/tags/resume in one place Ctrl/Cmd+K search over your chats Local export (md/json/zip) + privacy toggles — nothing leaves the device a lot more tbh Test: download the release zip → Load unpacked → open Claude/ChatGPT/Gemini logged in. https://github.com/nothariharan/Tecora/releases/tag/v0.1.0", "repo": "https://github.com/nothariharan/Tecora", "demo": "https://github.com/nothariharan/Tecora/releases/tag/v0.1.0"}]...
|
[{"post_id": 46103, "ts": "202 [{"post_id": 46103, "ts": "2026-08-13T02:40:09Z", "hours": 2.1411, "text": "published my extension !!!! after massive support and reach from the github release of my extension ( 70+ downloads just via github lmao ) i released it in chrome webstore now so do check it out and let me know what u think or if there is any bugs https://chromewebstore.google.com/detail/tecora/ihagfljacjognebfcmcmcbddjlonpifn"}, {"post_id": 33321, "ts": "2026-07-23T03:55:21Z", "hours": 1.6594, "text": "posted a demo comprising all the features to get feedback from people on x / reddit etc ( had to use clideo to compress 🥀🥀)"}, {"post_id": 32734, "ts": "2026-07-22T02:23:09Z", "hours": 5.9694, "text": "update 3 — usage · today · code · digests τ last update was three platforms. this one is where tecora stops being “a nicer chat list” and starts helping with the actual day what shipped real usage claude + chatgpt live quota from the open tab — % · reset · plan badge local estimates stay separate on purpose. gemini has no endpoint so we dont fake one projects chatgpt + claude project chats finally show up in the library today panel tasks (manual + auto from chats) · notes scratchpad · cached yesterday recap all on device draggable τ dock drag anywhere · Search / Today / Library · position remembered on-device digests chrome summarizer (gemini nano) + extractive fallback cached on resume cards · nothing uploaded dev layer code gallery + language-aware “code only” search jump-to-code in the palette zip exports code as real files copy-with-context · > prompt snippets secret warn-before-send (never blocks) why it mattered folders alone was organizer energy quota + today + digests + code is what makes the τ dock feel worth keeping open across all three ais still local first no backend · no cloud · no tecora account just a layer on the sites you already live in next up canvas / artifact gallery · less fragile folders/tags · native rename/delete more sooooooooooooooooooooooon"}, {"post_id": 31714, "ts": "2026-07-20T10:28:00Z", "hours": 8.9928, "text": "Tecora – update 2 — three platforms + a real mark ✨ heyyyyy back again last time tecora only really lived on claude. that was the plan on purpose. this update is the one where chatgpt and gemini actually show up too, and the extension stops lying about which site youre on what shipped all three big boys in the side panel claude · chatgpt · gemini same folders search export vibe — just not stuck on one site anymore gemini was being weird for a bit the in-page ctrl/cmd+k palette knew it was gemini the side panel still said “on claude” and showed claude chats 😭 fixed that — the panel now follows the actual tab youre looking at instead of whatever chat got upserted last also stopped patching fetch on gemini for no reason. it was just making google’s own csp noise look like our fault branding tecora mark is now lowercase greek tau τ floating overlay is a circle bottom right with a white outline a bit bigger so you can actually find it proper claude / chatgpt / gemini logos wired in too i felt like it was sick idk why lol physics memories hit me other polish palette doesnt fake “1d ago” on every gemini chat anymore (gemini doesnt give real timestamps so we just dropped the fake days) overlay + side panel finally agree on which platform youre on still local first nothing leaves your machine no backend no cloud just a layer on top of the sites you already live in why this update mattered ( earlier one was shi :/) i use all three ais at once so a claude-only tool was only solving like 1/3 of the chaos getting gemini + chatgpt in, and making the panel trust the tab youre on, is what makes tecora feel like one product instead of a claude plugin with hopes and dreams next up more hardening on export make folders / tags feel less fragile keep cleaning the rough edges from living inside someone elses spa maybe ship a build that doesnt need a console archaeology session to debug platform detection lol more so000oon"}, {"post_id": 28874, "ts": "2026-07-15T13:22:30Z", "hours": 2.3828, "text": "Tecora - - first look ^_____^ hey this is my first update on tecora tecora is a browser extension that sits on top of your ai and helps you actually manage your chats , personalize them , export them and many more the idea is simple local first nothing leaves your machine no backend no cloud just folders search and export on your own device ( probably expand further ) what works so far pulls your claude chat list into a side panel folders so you can file chats (like the hari folder in the screenshot) move chats into folders from the menu title search + ctrl/cmd+k palette on the page export chats to markdown single chat or a whole folder flat black and white ui nothing fancy why im building this i use ai a lot on browser like chatgpt , gemini etc i use many at once thus not able to manage context properly so i am building something which can helm me do this claude is first chatgpt and gemini come later once this core feels solid next up hardening export making sure folders stay reliable and cleaning up the rough edges from living inside someone elses spa more updates soon"}]...
|
Title: Tecora by @hariharann | Stardance
Devlogs: Title: Tecora by @hariharann | Stardance
Devlogs:
Tecora - - first look ^_____^ hey this is my first update on tecora tecora is a browser extension that sits on top of your ai and helps you actually manage your chats , personalize them , export them and many more the idea is simple local first nothing leaves your machine no backend no cloud just folders search and export on your own device ( probably expand further ) what works so far pulls your claude chat list into a side panel folders so you can file chats (like the hari folder in the screenshot) move chats into folders from the menu title search + ctrl/cmd+k palette on the page export chats to markdown single chat or a whole folder flat black and white ui nothing fancy why im building this i use ai a lot on browser like chatgpt , gemini etc i use many at once thus not able to manage context properly so i am building something which can helm me do this claude is first chatgpt and gemini come later once this core feels solid next up hardening export making sure folders stay reliable and cleaning up the rough edges from living inside someone elses spa more updates soon
Tecora – update 2 — three platforms + a real mark ✨ heyyyyy back again last time tecora only really lived on claude. that was the plan on purpose. this update is the one where chatgpt and gemini actually show up too, and the extension stops lying about which site youre on what shipped all three big boys in the side panel claude · chatgpt · gemini same folders search export vibe — just not stuck on one site anymore gemini was being weird for a bit the in-page ctrl/cmd+k palette knew it was gemini the side panel still said “on claude” and showed claude chats 😭 fixed that — the panel now follows the actual tab youre looking at instead of whatever chat got upserted last also stopped patching fetch on gemini for no reason. it was just making google’s own csp noise look like our fault branding tecora mark is now lowercase greek tau τ floating overlay is a circle bottom right with a white outline a bit bigger so you can actually find it proper claude / chatgpt / gemini logos wired in too i felt like it was sick idk why lol physics memories hit me other polish palette doesnt fake “1d ago” on every gemini chat anymore (gemini doesnt give real timestamps so we just dropped the fake days) overlay + side panel finally agree on which platform youre on still local first nothing leaves your machine no backend no cloud just a layer on top of the sites you already live in why this update mattered ( earlier one was shi :/) i use all three ais at once so a claude-only tool was only solving like 1/3 of the chaos getting gemini + chatgpt in, and making the panel trust the tab youre on, is what makes tecora feel like one product instead of a claude plugin with hopes and dreams next up more hardening on export make folders / tags feel less fragile keep cleaning the rough edges from living inside someone elses spa maybe ship a build that doesnt need a console archaeology session to debug platform detection lol more so000oon
update 3 — usage · today · code · digests τ last update was three platforms. this one is where tecora stops being “a nicer chat list” and starts helping with the actual day what shipped real usage claude + chatgpt live quota from the open tab — % · reset · plan badge local estimates stay separate on purpose. gemini has no endpoint so we dont fake one projects chatgpt + claude project chats finally show up in the library today panel tasks (manual + auto from chats) · notes scratchpad · cached yesterday recap all on device draggable τ dock drag anywhere · Search / Today / Library · position remembered on-device digests chrome summarizer (gemini nano) + extractive fallback cached on resume cards · nothing uploaded dev layer code gallery + language-aware “code only” search jump-to-code in the palette zip exports code as real files copy-with-context · > prompt snippets secret warn-before-send (never blocks) why it mattered folders alone was organizer energy quota + today + digests + code is what makes the τ dock feel worth keeping open across all three ais still local first no backend · no cloud · no tecora account just a layer on the sites you already live in next up canvas / artifact gallery · less fragile folders/tags · native rename/delete more sooooooooooooooooooooooon
posted a demo comprising all the features to get feedback from people on x / reddit etc ( had to use clideo to compress 🥀🥀)
published my extension !!!! after massive support and reach from the github release of my extension ( 70+ downloads just via github lmao ) i released it in chrome webstore now so do check it out and let me know what u think or if there is any bugs https://chromewebstore.google.com/detail/tecora/ihagfljacjognebfcmcmcbddjlonpifn
Ships:
Tecora — local Chrome extension that puts Claude, ChatGPT, and Gemini chats in one library. Problem: AI history is scattered across platforms/accounts. Searching, organizing, and exporting is painful. QoL: Cross-platform capture + folders/tags/resume in one place Ctrl/Cmd+K search over your chats Local export (md/json/zip) + privacy toggles — nothing leaves the device a lot more tbh Test: download the release zip → Load unpacked → open Claude/ChatGPT/Gemini logged in. https://github.com/nothariharan/Tecora/releases/tag/v0.1.0...
|
1792979588.2431428
|
1793065988.2431428
|
|
24184
|
Ferris's Game of Life by @polycarbohydrate | S Ferris's Game of Life by @polycarbohydrate | Stardance...
|
polycarbohydrate
|
2
|
21.0
|
298
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-07T18:39:10Z", "hours": 11.0, "multiplier": 15.5, "payout": 196, "blessing": "neutral", "text": "The next major release of Ferris’s Game of Life is here! The CLI user experience has been greatly improved! Thanks to the reviewers of the first ship, I took their advice and added lots of new features! New features include: CLI display improvements -Text formatting -More standardization in code and printed output -5 preset options so you users don’t need any experience to play/watch. (plus simplier setup) -More customization for custom setup. -Settings for custom setup are all optional so do not feel obligated to fill them all out (unlike v0.1.0). Feedback from the first ship was used, so feel free to give feedback!", "repo": "https://github.com/Polycarbohydrate/FGOL", "demo": "https://github.com/Polycarbohydrate/FGOL/releases/tag/v0.2.0"}, {"ship_num": 2, "ts": "2026-06-28T14:33:11Z", "hours": 10.0, "multiplier": 10.53, "payout": 102, "blessing": "neutral", "text": "Ferris’s Game of Life (FGOL) is Conway’s Game of Life written in Rust. The alive cells are indicated by the crab emoji, a nod to Ferris who is the Rust Langauge’s non-official mascot. I decided on this project because I wanted to build something real for the first time. This project allows me to implement many different features and opens up many pathways to expand on in the future. Currently the project only has a CLI version but I am planning to do a TUI, then progress to a native app UI and then a web UI.", "repo": "https://github.com/Polycarbohydrate/FGOL", "demo": "https://github.com/Polycarbohydrate/FGOL/releases/tag/v0.2.0"}]...
|
[{"post_id": 24265, "ts": "202 [{"post_id": 24265, "ts": "2026-07-07T18:35:56Z", "hours": 7.9539, "text": "Devlog 11 Ferris’s Game of Life (FGOL) v0.2.0 is now released! Check it out here: https://github.com/Polycarbohydrate/FGOL/releases/tag/v0.2.0 What is new? First of all, Ferris, is now in banners that surround text in the CLI! These banners surround important pieces of messages or menus. Text that is used for input will be displayed regularly. Taking into account many of the suggestions from the first ship, I added presets! There are 5 presets with this ship, and I plan to add more, which you can select to skip the hassle of setting up the simulation. These 5 were ones I found interesting and were fun to watch on the CLI. Additionally, you may notice that there are more menus now. In order to accomodate the many changes while keeping the user experience friendly, I decided to use menus instead of forcing you to follow a setup process. You are able to customize the simulation however you want! You are now able to add, remove, and view existing cells before you start the simulation! You can still edit the speed of the simulation, and choose the grid size you want. New settings include choosing when to stop the simulation (if you have an infinite loop) and stopping the simulation once cells move off of the screen. Technical changes: To make the code readable and better to edit (i don’t think a 1000 line file with repetitive text is good), I added banners.rs, which holds all of the banner/text content. Other files use the content by calling functions within banner.rs. This makes it so I can see more logic than text, which is more important with debugging. I added the type SettingsExport to hold all of the information I import into cli_display.rs . This was a suggestion from cargo clippy . As always, all code is linted using cargo clippy and formatted using cargo-fmt . All files besides core.rs were modified to accomodate changes. input.rs was changed the most. All platform binaries are still a modest file size (~100kb) Before releasing, I tested for formatting, bad input, and tried to fix everything. I something doesn’t look right, or you encounter a bug/error. Create an issue on the GitHub so I can quickly fix it. Future plans: Ship this release. Work on more features Transition to web-version. Video demo:"}, {"post_id": 21903, "ts": "2026-07-04T02:24:55Z", "hours": 0.7803, "text": "Devlog 10 Minor changes today I didn’t spend much time today working on this project becuase I have some real world stuff to work on. Changes: I added 2 more presets to the code for a total of 5 presets. Added some additional code comments for better code understanding I did some research on a pause feature that I saw in one of the reviewer’s feedback. It is hard to implement an easy to use pause, as I want to keep the CLI std lib only - no external creates. I may drop that feature or implement it stupidly in the future. Ill do some more research on it in the future. I added 2 additional issues for future features I want in the CLI. Both have to do with detecting a simulation loop. I have also decided that the CLI should remain independent with no external crates."}, {"post_id": 21209, "ts": "2026-07-03T00:55:16Z", "hours": 1.7814, "text": "Devlog 9 Made some improvemets/additions to the CLI today based on some of my own discoveries and feedback from the first ship. Thank you to everyone who voted on my first ship ever! I looked throught the feedback and appreciate the support. I also appreciate the constructive feedback. I took it into consideration and applied changes. Major Changes Biggest change was the addition of preset templates. You can now choose between inputting your own cells through coordinates, or by just selecting a preset template which has hardcoded values for cells and everything else. This was done by adding presets.rs which is mainly for the hardcoded values to be fetched and stored. Additionally inputs.rs was updated and overhauled with more functions to be more readable and easier to edit. main.rs was changed to accomodate the changes in input.rs and presets.rs core.rs and cli_display.rs were not changed Bug fixes Inputting a negative number in the first step of the custom setup process would not have proper program execution. I fixed by checking for negative numbers Personal changes The program now has a dedicated exit and loops after a generation dies so you can keep on testing! Phrasing in one of the prompts in inputs.rs was changed to be more clear. Additional thoughts: I will fix up the CLI a bit more and add a few more features before moving on to TUI development. The release of the TUI will be my second ship. Eventually I plan to have this project with a GUI, TUI, CLI, and a web version. Since I am planning for the CLI to be used on low-end devices, I am going to limit the file size to 1 MB. That is 1 MB across all platform binaries. Someone suggested adding a pause feature. I am currently looking into implementing that. Tldr: I will continue fixing up the CLI and adding features. Have a wonderful day."}, {"post_id": 17138, "ts": "2026-06-27T20:22:18Z", "hours": 1.1733, "text": "Devlog 8 This will likely be the last devlog before my first ship. File changes: cli_display.rs: Removed hardcoded grid constants and added new input parameters for grid size. Experimented with different grid spacing but settled on a dot and space to one emoji (”. “). inputs.rs: Added a new section for grid size selection. There are four choices for selection: Small, Medium, Large, and Custom. I had a little bug with Custom not properly working but that was quickly fixed. main.rs: modified to accomodate variable and parameter changes of the 2 files above. I checked error handling and the spacing of text as well. Everything should be properly handled cargo-fmt & cargo clippy ran. Fixed the old bug of inverted y cells; the problem was because of the way I collected line renders (I rendered the bottom of the grid up, but my string concatenation pushed the bottom lines to the top). To solve I just reversed the loop for the rows (y-value). Plenty of comments In the video attached, at 200ms per frame there is no screen stutter. The new way of displaying frames seems to be good. Future: After this I will update my project GitHub ReadMe and add binaries for Windows, Linux, and MacOS. Then I will add the playable link here. After shipping, if the project passes, I will clean up the code and make the game replayable after all cell dies. Next major modification would to progress to a TUI then a GUI with additional features. Lots of ideas for this one! Other: Self contained Rust, no external crates. Q: Why not GUI? A: I see lots of people on this platform have a GUI. However they are using an easy to use game engine, web render, and/or easy to use applications. Rust is mainly for backend and using Rust for frontend is a pain in the butt. I would have to learn eframe/egui and how to work with web-assembly and convert my code to be compiled that way. A TUI would be my next step. If the TUI works, I may consider an infinite grid project milestone and/or then proceed to do a Rust-based GUI. Attached is the cell pattern known as “diehard”. It contains 7 initial starting cells and goes all the way to generation 129 before dying exacting on generation 130. Feedback is welcome!"}, {"post_id": 16606, "ts": "2026-06-27T00:40:42Z", "hours": 0.6336, "text": "Devlog 7 I didn’t change much during this time. However, I redid the printing to that it prints the frame at once instead of one line at a time so there is less stuttering and screen movement. I spent the majority of the time trying to use eframe and wasm but I had a hard time figuring it out. Additionally to just compile and test my code I had to compile 225+ packages every time which took a long time and if I decided to use wasm, it would be even more packages… Next step is to see if I need to fix the location of the delay (speed) and then ship. After ship, I will use an external crate for the TUI. then if the tui goes well maybe an online thing as well. Majority of projects here are using a framework that is high level for frontend development. Using Rust for frontend is a pain :( I added another video with the famous 7-cell 120+ generation ‘diehard’ to show the cli. I think there is less stutter now (i think the stutter at the end would be reduced if my terminal was not as big). Feedback is welcome!"}, {"post_id": 16468, "ts": "2026-06-26T20:17:55Z", "hours": 1.3767, "text": "Devlog 6 File changes (additions, removals, modification) modification: tui.rs/cli_display.rs -> renamed tui.rs to cli_display.rs to be more accurate since I am not building a TUI-based display/application Non-code changes In Cargo.toml, I changed the package name to FGOL instead of the generic testing name I had before. This will now reflect on compilation. Code changes main.rs: I refactored usage of tui.rs to the new file name. I also added a stop to the program that checks if the cells HashSet is empty. If it is, then the program prints the last empty grid frame and notifies the user before stopping. core.rs: No changes. inputs.rs: Major modification to the code in here. Made the input process look nicer, tested the display spacing (including after error messages), overhauled to ask the number of cells that way it is less repetitive if a user wants to add more cells. Added a seperate function to clean the file up a bit (still have some work to do; I don’t think its very readable). Added the crab emoji as the banner for Ferris. cli_display.rs: Changed the cell char to the crab emoji as the banner for Ferris 🦀. Other Everything is formatted to cargo-fmt & cargo clippy No errors or warnings during compilation. Error handling was tested and the printed lines have spacing to look nice. No external crates or packages; it is entirely self-contained. Future I may ship like this (as a binary) to see what feedback I may get. If my ship passes I will continue and make a GUI and learn an external crates for that. For testing and playing, I think a web UI is the best. A binary application is not the best (and unnecessary). I will see what my time looks like and maybe I will convert to an actual UI on the web before shipping or find another solution. Otherwise I will compile the .exe myself and host on the GitHub. Feedback is welcome! GH: https://github.com/Polycarbohydrate/ferris-s-game-of-life"}, {"post_id": 15369, "ts": "2026-06-25T00:01:49Z", "hours": 1.9031, "text": "Devlog 5 Big changes were made today! main.rs completed core.rs completed input.rs completed tui.rs completed By completed I mean that the program is functional (albeit, not pretty). Program is formatted to cargo-fmt and only one cargo clippy warning is left for me to address. The next step is for me to fix a bug that causes the points to be inverted when plotted (positive y becomes negative y). I also have to figure out the clippy warning which is stumping me (warning on an if-then-else statement). This should not take long. The output is stretched due to the uneven spacing of chars in the terminal. THis will have to be addressed in the future by redesign or switching to a GUI framework (likely eframe/egui). I also need to streamline the user input section and make it easier. I will upload to GitHub soon. I also applied for access to hackclub.app to host it for testing. One thing I will note is that the code currently has no outside crates/dependencies and is entirely self-contained. I have attached a video of the program running. The low quality is from it being cropped from my VSCode terminal…sorry :( Suggestions/feedback is welcome!"}, {"post_id": 15238, "ts": "2026-06-24T18:58:30Z", "hours": 1.4261, "text": "Devlog 4 Big improvements today! I finished the core algorithm and completed the first version of the inputs that a user can provide. I restructured the project with: main.rs (the file that brings everything together) inputs.rs (user input stored and returned to main.rs) core.rs (takes info from inputs.rs to calculate the next generation of cells) tui.rs (im progress; probably the hardest part. I am thinking of doing a gui using egui/eframe. If I don’t I will likely implement a grid in the terminal using a limited space (probably 100 x 100 cells for the initial version) Very good progress so far. Only thing I need to do that is important is display the cells."}, {"post_id": 15074, "ts": "2026-06-24T14:19:25Z", "hours": 1.1589, "text": "Today I had an insight to switch the initial state to a simple vertical 3 cell stack. This was to make it easier to debug since the next generations are periodic and my code should show alternating points. The simplified conditions allowed me to figure out the proper algorithm structure: Find dead cells. Calculate new alive cells. Remove the original dead cells. Generation complete Previously I was checking AND removing dead cells before finding the next generation’s alive cells. The next step is to reorganize my code, verify the results, and then convert to a GUI or TUI."}, {"post_id": 14619, "ts": "2026-06-23T20:00:45Z", "hours": 1.0856, "text": "Decided on data type usage (HashSet mainly for storage of cells, and HashMap to convert dead cells to alive cells.) I am sure it is very unoptimized right now. There is a big bug which I will have to fix later."}, {"post_id": 13926, "ts": "2026-06-22T20:47:31Z", "hours": 1.0264, "text": "Today I started working on a simple game of Conway’s Game of Life. I started coding in Rust. It will be my first ever project/game of this sort and hopefully it will be fun!"}]...
|
Title: Ferris's Game of Life by @polycarbohydr Title: Ferris's Game of Life by @polycarbohydrate | Stardance
Devlogs:
Today I started working on a simple game of Conway’s Game of Life. I started coding in Rust. It will be my first ever project/game of this sort and hopefully it will be fun!
Decided on data type usage (HashSet mainly for storage of cells, and HashMap to convert dead cells to alive cells.) I am sure it is very unoptimized right now. There is a big bug which I will have to fix later.
Today I had an insight to switch the initial state to a simple vertical 3 cell stack. This was to make it easier to debug since the next generations are periodic and my code should show alternating points. The simplified conditions allowed me to figure out the proper algorithm structure: Find dead cells. Calculate new alive cells. Remove the original dead cells. Generation complete Previously I was checking AND removing dead cells before finding the next generation’s alive cells. The next step is to reorganize my code, verify the results, and then convert to a GUI or TUI.
Devlog 4 Big improvements today! I finished the core algorithm and completed the first version of the inputs that a user can provide. I restructured the project with: main.rs (the file that brings everything together) inputs.rs (user input stored and returned to main.rs) core.rs (takes info from inputs.rs to calculate the next generation of cells) tui.rs (im progress; probably the hardest part. I am thinking of doing a gui using egui/eframe. If I don’t I will likely implement a grid in the terminal using a limited space (probably 100 x 100 cells for the initial version) Very good progress so far. Only thing I need to do that is important is display the cells.
Devlog 5 Big changes were made today! main.rs completed core.rs completed input.rs completed tui.rs completed By completed I mean that the program is functional (albeit, not pretty). Program is formatted to cargo-fmt and only one cargo clippy warning is left for me to address. The next step is for me to fix a bug that causes the points to be inverted when plotted (positive y becomes negative y). I also have to figure out the clippy warning which is stumping me (warning on an if-then-else statement). This should not take long. The output is stretched due to the uneven spacing of chars in the terminal. THis will have to be addressed in the future by redesign or switching to a GUI framework (likely eframe/egui). I also need to streamline the user input section and make it easier. I will upload to GitHub soon. I also applied for access to hackclub.app to host it for testing. One thing I will note is that the code currently has no outside crates/dependencies and is entirely self-contained. I have attached a video of the program running. The low quality is from it being cropped from my VSCode terminal…sorry :( Suggestions/feedback is welcome!
Devlog 6 File changes (additions, removals, modification) modification: tui.rs/cli_display.rs -> renamed tui.rs to cli_display.rs to be more accurate since I am not building a TUI-based display/application Non-code changes In Cargo.toml, I changed the package name to FGOL instead of the generic testing name I had before. This will now reflect on compilation. Code changes main.rs: I refactored usage of tui.rs to the new file name. I also added a stop to the program that checks if the cells HashSet is empty. If it is, then the program prints the last empty grid frame and notifies the user before stopping. core.rs: No changes. inputs.rs: Major modification to the code in here. Made the input process look nicer, tested the display spacing (including after error messages), overhauled to ask the number of cells that way it is less repetitive if a user wants to add more cells. Added a seperate function to clean the file up a bit (still have some work to do; I don’t think its very readable). Added the crab emoji as the banner for Ferris. cli_display.rs: Changed the cell char to the crab emoji as the banner for Ferris 🦀. Other Everything is formatted to cargo-fmt & cargo clippy No errors or warnings during compilation. Error handling was tested and the printed lines have spacing to look nice. No external crates or packages; it is entirely self-contained. Future I may ship like this (as a binary) to see what feedback I may get. If my ship passes I will continue and make a GUI and learn an external crates for that. For testing and playing, I think a web UI is the best. A binary application is not the best (and unnecessary). I will see what my time looks like and maybe I will convert to an actual UI on the web before shipping or find another solution. Otherwise I will compile the .exe myself and host on the GitHub. Feedback is welcome! GH: https://github.com/Polycarbohydrate/ferris-s-game-of-life
Devlog 7 I didn’t change much during this time. However, I redid the printing to that it prints the frame at once instead of one line at a time so there is less stuttering and screen movement. I spent the majority of the time trying to use eframe and wasm but I had a hard time figuring it out. Additionally to just compile and test my code I had to compile 225+ packages every time which took a long time and if I decided to use wasm, it would be even more packages… Next step is to see if I need to fix the location of the delay (speed) and then ship. After ship, I will use an external crate for the TUI. then if the tui goes well maybe an online thing as well. Majority of projects here are using a framework that is high level for frontend development. Using Rust for frontend is a pain :( I added another video with the famous 7-cell 120+ generation ‘diehard’ to show the cli. I think there is less stutter now (i think the stutter at the end would be reduced if my terminal was not as big). Feedback is welcome!
Devlog 8 This will likely be the last devlog before my first ship. File changes: cli_display.rs: Removed hardcoded grid constants and added new input parameters for grid size. Experimented with different grid spacing but settled on a dot and space to one emoji (”. “). inputs.rs: Added a new section for grid size selection. There are four choices for selection: Small, Medium, Large, and Custom. I had a little bug with Custom not properly working but that was quickly fixed. main.rs: modified to accomodate variable and parameter changes of the 2 files above. I checked error handling and the spacing of text as well. Everything should be properly handled cargo-fmt & cargo clippy ran. Fixed the old bug of inverted y cells; the problem was because of the way I collected line renders (I rendered the bottom of the grid up, but my string concatenation pushed the bottom lines to the top). To solve I just reversed the loop for the rows (y-value). Plenty of comments In the video attached, at 200ms per frame there is no screen stutter. The new way of displaying frames seems to be good. Future: After this I will update my project GitHub ReadMe and add binaries for Windows, Linux, and MacOS. Then I will add the playable link here. After shipping, if the project passes, I will clean up the code and make the game replayable after all cell dies. Next major modification would to progress to a TUI then a GUI with additional features. Lots of ideas for this one! Other: Self contained Rust, no external crates. Q: Why not GUI? A: I see lots of people on this platform have a GUI. However they are using an easy to use game engine, web render, and/or easy to use applications. Rust is mainly for backend and using Rust for frontend is a pain in the butt. I would have to learn eframe/egui and how to work with web-assembly and convert my code to be compiled that way. A TUI would be my next step. If the TUI works, I may consider an infinite grid project milestone and/or then proceed to do a Rust-based GUI. Attached is the cell pattern known as “diehard”. It contains 7 initial starting cells and goes all the way to generation 129 before dying exacting on generation 130. Feedback is welcome!
Devlog 9 Made some improvemets/additions to the CLI today based on some of my own discoveries and feedback from the first ship. Thank you to everyone who voted on my first ship ever! I looked throught the feedback and appreciate the support. I also appreciate the constructive feedback. I took it into consideration and applied changes. Major Changes Biggest change was the addition of preset templates. You can now choose between inputting your own cells through coordinates, or by just selecting a preset template which has hardcoded values for cells and everything else. This was done by adding presets.rs which is mainly for the hardcoded values to be fetched and stored. Additionally inputs.rs was updated and overhauled with more functions to be more readable and easier to edit. main.rs was changed to accomodate the changes in input.rs and presets.rs core.rs and cli_display.rs were not changed Bug fixes Inputting a negative number in the first step of the custom setup process would not have proper program execution. I fixed by checking for negative numbers Personal changes The program now has a dedicated exit and loops after a generation dies so you can keep on testing! Phrasing in one of the prompts in inputs.rs was changed to be more clear. Additional thoughts: I will fix up the CLI a bit more and add a few more features before moving on to TUI development. The release of the TUI will be my second ship. Eventually I plan to have this project with a GUI, TUI, CLI, and a web version. Since I am planning for the CLI to be used on low-end devices, I am going to limit the file size to 1 MB. That is 1 MB across all platform binaries. Someone suggested adding a pause feature. I am currently looking into implementing that. Tldr: I will continue fixing up the CLI and adding features. Have a wonderful day.
Devlog 10 Minor changes today I didn’t spend much time today working on this project becuase I have some real world stuff to work on. Changes: I added 2 more presets to the code for a total of 5 presets. Added some additional code comments for better code understanding I did some research on a pause feature that I saw in one of the reviewer’s feedback. It is hard to implement an easy to use pause, as I want to keep the CLI std lib only - no external creates. I may drop that feature or implement it stupidly in the future. Ill do some more research on it in the future. I added 2 additional issues for future features I want in the CLI. Both have to do with detecting a simulation loop. I have also decided that the CLI should remain independent with no external crates.
Devlog 11 Ferris’s Game of Life (FGOL) v0.2.0 is now released! Check it out here: https://github.com/Polycarbohydrate/FGOL/releases/tag/v0.2.0 What is new? First of all, Ferris, is now in banners that surround text in the CLI! These banners surround important pieces of messages or menus. Text that is used for input will be displayed regularly. Taking into account many of the suggestions from the first ship, I added presets! There are 5 presets with this ship, and I plan to add more, which you can select to skip the hassle of setting up the simulation. These 5 were ones I found interesting and were fun to watch on the CLI. Additionally, you may notice that there are more menus now. In order to accomodate the many changes while keeping the user experience friendly, I decided to use menus instead of forcing you to follow a setup process. You are able to customize the simulation however you want! You are now able to add, remove, and view existing cells before you start the simulation! You can still edit the speed of the simulation, and choose the grid size you want. New settings include choosing when to stop the simulation (if you have an infinite loop) and stopping the simulation once cells move off of the screen. Technical changes: To make the code readable and better to edit (i don’t think a 1000 line file with repetitive text is good), I added banners.rs, which holds all of the banner/text content. Other files use the content by calling functions within banner.rs. This makes it so I can see more logic than text, which is more important with debugging. I added the type SettingsExport to hold all of the information I import into cli_display.rs . This was a suggestion from cargo clippy . As always, all code is linted using cargo clippy and formatted using cargo-fmt . All files besides core.rs were modified to accomodate changes. input.rs was changed the most. All platform binaries are still a modest file size (~100kb) Before releasing, I tested for formatting, bad input, and tried to fix everything. I something doesn’t look right, or you encounter a bug/error. Create an issue on the GitHub so I can quickly fix it. Future plans: Ship this release. Work on more features Transition to web-version. Video demo:
Ships:
Ferris’s Game of Life (FGOL) is Conway’s Game of Life written in Rust. The alive cells are indicated by the crab emoji, a nod to Ferris who is the Rust Langauge’s non-official mascot. I decided on this project because I wanted to build something real for the first time. This project allows me to implement many different features and opens up many pathways to expand on in the future. Currently the project only has a CLI version but I am planning to do a TUI, then progress to a native app UI and then a web UI.
The next major release of Ferris’s Game of Life is here! The CLI user experience has been greatly improved! Thanks to the reviewers of the first ship, I took their advice and added lots of new features! New features include: CLI display improvements -Text formatting -More standardization in code and printed output -5 preset options so you users don’t need any experience to play/watch. (plus simplier setup) -More customization for custom setup. -Settings for custom setup are all optional so do not feel obligated to fill them all out (unlike v0.1.0). Feedback from the first ship was used, so feel free to give feedback!...
|
1792997761.7650774
|
1793084161.7650774
|
|
30522
|
Lauren's Project Portfolio by @Lauren_hackalic Lauren's Project Portfolio by @Lauren_hackalicious | Stardance...
|
Lauren_hackalicious
|
1
|
23.0
|
297
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T17:41:42Z", "hours": 23.0, "multiplier": 13.05, "payout": 297, "blessing": "neutral", "text": "I created a project portfolio and personal website. You can learn a little about me as it pertains to my coding journey and involvement at school. I learned how to animate objects on screen and create variations of the same thing, for example, the banners. They all carry the same essence. And I learned how to create a slideshow effect. Users can swipe on the About Me page to view three different pictures relating to my after-school activities. I would like readers to know that they, depending on the size of their screen, zoom out by 25% for a proper viewing experience. This project was created on a MacBook Neo, so I had to zoom my screen out to program this website. I recommend users enable autoplay because this website automatically plays music on the landing and project pages. The last thing I would like to mention is to interact with my website! A lot of things have “overflow: scroll” enabled, so try to find everything that would require you to scroll. P.S. If you’re having a hard time navigating the website, click the Word , as it contains the href attributes.", "repo": "https://github.com/example0d1n/Portfolio", "demo": "https://example0d1n.github.io/Portfolio/"}]...
|
[{"post_id": 50485, "ts": "202 [{"post_id": 50485, "ts": "2026-08-19T17:27:32Z", "hours": 0.7914, "text": "Read.Me discretion. Zoom out your screen by 25% for a proper website viewing experience. If you don’t, unfortunately, elements will appear squished together. If I had more time this summer, I would create a more responsive layout. The picture linked to this devlog is the result of the website if it isn’t zoomed out enough for the proper viewing experience. I also had to replace all the videos on the project page with screenshots because the files were too large, over 100 MB, to push into a GitHub repository. This saddens me because it did make that page less static. PLEASE take the time to read the README."}, {"post_id": 50041, "ts": "2026-08-19T02:14:49Z", "hours": 3.9425, "text": "Website complete…for now I added music that plays automatically on the landing and projects page | I started and finished the About Me tab. It features a Linktree to all my socials. Beneath is a music player featuring my favorite songs from Olivia Rodrigo, Beabadoobee, KATSEYE, and Laufey. On the right, I briefly discuss my involvement at my school. I finished adding the captions to all my projects on the projects page. I decided to pause my progress on this website as school starts up for me, and I need to begin reviewing core subjects for my classes. I had fun creating this website and hope to continue working on it outside of Stardance."}, {"post_id": 48657, "ts": "2026-08-17T04:24:56Z", "hours": 1.6494, "text": "About Me update: I only began structuring the layout of how I want my Linktree to appear in this section of the website. The styling is NOWHERE near complete, especially since there will be a lot more I place under the Linktree to talk about what I do in school that relates to STEM/Computer science. The koi fish image is actually a gif"}, {"post_id": 47796, "ts": "2026-08-15T23:54:31Z", "hours": 3.0403, "text": "Project page complete for now!! I worked tirelessly to complete this page today because school starts soon, and I won’t have much time to work on any more huge web projects until my next seasonal break. I added 5 of my completed summer projects and included the portfolio website because it’ll be my biggest project yet! I recorded a live demo of each project that automatically plays upon opening the page, so users can see what each website is about without reading the bio. I also attached the live link just in case users want to try out the website for themselves. (I really wish I could attach a video to this devlog, but Stardance isn’t working with me when it comes to the videos"}, {"post_id": 47282, "ts": "2026-08-15T04:03:28Z", "hours": 1.4347, "text": "Landing page complete!: | aligned an ocean gif with the update logs to keep the layout consistent (balanced). I added a spinning dolphin because it was so funny to me and fit the Frutiger Aero theme anyway, so I was like… why not? I FINALLY updated the navigation buttons on the side because they were looking pretty plain compared to the rest of the page. In the next devlog, I will have worked on the project. The dolphin IS spinning"}, {"post_id": 46640, "ts": "2026-08-14T01:18:45Z", "hours": 0.6122, "text": "I’ve been having issues posting a devlog today due to this error. I’m going to edit this devlog once this stops appearing on my screen. I can’t find the screenshot of the original update to my website, but I did fix the unevenness of the pixel background widget and updated the weather widget! Check out my most recent devlog to see the changes; I’m having issues uploading videos to Stardance devlogs."}, {"post_id": 46115, "ts": "2026-08-13T03:36:37Z", "hours": 2.395, "text": "Center section complete…for now 1. I added a GIF with a scenic pixel background to lessen the static feel of the area! I matched the banner with the update log for consistency. 2. I moved on to the right side of the container. It took about 30 minutes to figure out how to place items on the right side because the way I programmed the container didn’t account for the layout. I went back and forth between moving divs around and asking GitHub Copilot how to fix the issue. I concluded that creating a separate div within the container div, outside the “main” div, resolved the issue. 3. After debugging, I added a live clock (in military time) and inserted a weather widget."}, {"post_id": 45506, "ts": "2026-08-12T01:27:56Z", "hours": 2.0222, "text": "Big big things todayyyy I finished customizing the welcome textbox by aligning the h1 tag to the left (horayy). I added an infinite carousel with things that I like/am interested in. The update log is primarily for future updates after I ship this portfolio and to keep up with the progress I make, even if it seems minimal. The Update log uses the CSS element “overflow: scroll”."}, {"post_id": 44992, "ts": "2026-08-11T03:55:44Z", "hours": 3.0992, "text": "Changed the theme again lol 😭 I made my portfolio website Frutiger Aero because it’s bright and easier for me to style!! I had to delete my original code since it made customizing the content inside the main container difficult! My fav thing about this version is the banner at the top of the main container."}, {"post_id": 44252, "ts": "2026-08-09T21:40:01Z", "hours": 2.3014, "text": "HUGE REVAMP I was inspired by early 2000s-themed websites and redesigned my portfolio to show more of my personality. The old version was too corporate for me. In the new design, I am incorporating themes of My Little Pony, one of my childhood shows! It is pretty bare-bones right now. To get the layout, I used Figma! I recommend this website as it really helps get the ball rolling. The colors are all over the place because I’m still trying to figure out how exactly I want everything placed. AKA, these are not the final colors/fonts/style."}, {"post_id": 21889, "ts": "2026-07-04T02:00:02Z", "hours": 1.44, "text": "1st Devlog I decided it was finally time to create a webpage dedicated to storing all my projects! As an aspiring computer science major, I feel this is crucial to have on deck. I played around with how I wanted things to be laid out and ended up with this design. Is it plain? Yes. Is it also straight to the point? Also yes. This will be amongst my shorter projects since all I need to do is fill out the template I created in HTML."}]...
|
Title: Lauren's Project Portfolio by @Lauren_h Title: Lauren's Project Portfolio by @Lauren_hackalicious | Stardance
Devlogs:
1st Devlog I decided it was finally time to create a webpage dedicated to storing all my projects! As an aspiring computer science major, I feel this is crucial to have on deck. I played around with how I wanted things to be laid out and ended up with this design. Is it plain? Yes. Is it also straight to the point? Also yes. This will be amongst my shorter projects since all I need to do is fill out the template I created in HTML.
HUGE REVAMP I was inspired by early 2000s-themed websites and redesigned my portfolio to show more of my personality. The old version was too corporate for me. In the new design, I am incorporating themes of My Little Pony, one of my childhood shows! It is pretty bare-bones right now. To get the layout, I used Figma! I recommend this website as it really helps get the ball rolling. The colors are all over the place because I’m still trying to figure out how exactly I want everything placed. AKA, these are not the final colors/fonts/style.
Changed the theme again lol 😭 I made my portfolio website Frutiger Aero because it’s bright and easier for me to style!! I had to delete my original code since it made customizing the content inside the main container difficult! My fav thing about this version is the banner at the top of the main container.
Big big things todayyyy I finished customizing the welcome textbox by aligning the h1 tag to the left (horayy). I added an infinite carousel with things that I like/am interested in. The update log is primarily for future updates after I ship this portfolio and to keep up with the progress I make, even if it seems minimal. The Update log uses the CSS element “overflow: scroll”.
Center section complete…for now 1. I added a GIF with a scenic pixel background to lessen the static feel of the area! I matched the banner with the update log for consistency. 2. I moved on to the right side of the container. It took about 30 minutes to figure out how to place items on the right side because the way I programmed the container didn’t account for the layout. I went back and forth between moving divs around and asking GitHub Copilot how to fix the issue. I concluded that creating a separate div within the container div, outside the “main” div, resolved the issue. 3. After debugging, I added a live clock (in military time) and inserted a weather widget.
I’ve been having issues posting a devlog today due to this error. I’m going to edit this devlog once this stops appearing on my screen. I can’t find the screenshot of the original update to my website, but I did fix the unevenness of the pixel background widget and updated the weather widget! Check out my most recent devlog to see the changes; I’m having issues uploading videos to Stardance devlogs.
Landing page complete!: | aligned an ocean gif with the update logs to keep the layout consistent (balanced). I added a spinning dolphin because it was so funny to me and fit the Frutiger Aero theme anyway, so I was like… why not? I FINALLY updated the navigation buttons on the side because they were looking pretty plain compared to the rest of the page. In the next devlog, I will have worked on the project. The dolphin IS spinning
Project page complete for now!! I worked tirelessly to complete this page today because school starts soon, and I won’t have much time to work on any more huge web projects until my next seasonal break. I added 5 of my completed summer projects and included the portfolio website because it’ll be my biggest project yet! I recorded a live demo of each project that automatically plays upon opening the page, so users can see what each website is about without reading the bio. I also attached the live link just in case users want to try out the website for themselves. (I really wish I could attach a video to this devlog, but Stardance isn’t working with me when it comes to the videos
About Me update: I only began structuring the layout of how I want my Linktree to appear in this section of the website. The styling is NOWHERE near complete, especially since there will be a lot more I place under the Linktree to talk about what I do in school that relates to STEM/Computer science. The koi fish image is actually a gif
Website complete…for now I added music that plays automatically on the landing and projects page | I started and finished the About Me tab. It features a Linktree to all my socials. Beneath is a music player featuring my favorite songs from Olivia Rodrigo, Beabadoobee, KATSEYE, and Laufey. On the right, I briefly discuss my involvement at my school. I finished adding the captions to all my projects on the projects page. I decided to pause my progress on this website as school starts up for me, and I need to begin reviewing core subjects for my classes. I had fun creating this website and hope to continue working on it outside of Stardance.
Read.Me discretion. Zoom out your screen by 25% for a proper website viewing experience. If you don’t, unfortunately, elements will appear squished together. If I had more time this summer, I would create a more responsive layout. The picture linked to this devlog is the result of the website if it isn’t zoomed out enough for the proper viewing experience. I also had to replace all the videos on the project page with screenshots because the files were too large, over 100 MB, to push into a GitHub repository. This saddens me because it did make that page less static. PLEASE take the time to read the README.
Ships:
I created a project portfolio and personal website. You can learn a little about me as it pertains to my coding journey and involvement at school. I learned how to animate objects on screen and create variations of the same thing, for example, the banners. They all carry the same essence. And I learned how to create a slideshow effect. Users can swipe on the About Me page to view three different pictures relating to my after-school activities. I would like readers to know that they, depending on the size of their screen, zoom out by 25% for a proper viewing experience. This project was created on a MacBook Neo, so I had to zoom my screen out to program this website. I recommend users enable autoplay because this website automatically plays music on the landing and project pages. The last thing I would like to mention is to interact with my website! A lot of things have “overflow: scroll” enabled, so try to find everything that would require you to scroll. P.S. If you’re having a hard time navigating the website, click the Word , as it contains the href attributes....
|
1792997681.323745
|
1793084081.323745
|
|
41921
|
Token by @TomTTFB | Stardance
|
TomTTFB
|
1
|
20.0
|
297
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T01:12:22Z", "hours": 20.0, "multiplier": 15.21, "payout": 297, "blessing": "neutral", "text": "First project shipped! Had a lot of fun building Token so far, check it out here and the demo video is linked in the latest devlog. Token Setup: https://token.tomttfb.com/ Demo Vid: https://i.tomttfb.com/vid/iwr6nx.mp4", "repo": "https://github.com/tomTTFB/token", "demo": "https://i.tomttfb.com/vid/iwr6nx.mp4"}]...
|
[{"post_id": 41073, "ts": "202 [{"post_id": 41073, "ts": "2026-08-05T01:09:15Z", "hours": 6.4539, "text": "Devlog #5 I think Token is at a point where I think it’s ready. USB HID works for typing codes, The web setup tool is done too, it handles adding accounts by QR code or manual entry, updating and flashing firmware. It’s been fun building my first project for an ESP. Getting TOTP, BLE time sync, USB HID and the setup tool all working together took a lot of work but it’s good. Demo: https://i.tomttfb.com/vid/iwr6nx.mp4"}, {"post_id": 39788, "ts": "2026-08-03T00:00:50Z", "hours": 2.9839, "text": "Devlog #4 TOTP generation is working! The device is now showing real codes. Getting here took more work than expected. TOTP sounds simple on paper but actually implementing HMAC-SHA1 correctly, handling Base32 decoding and making sure the time step calculation lines up exactly took a few attempts. I ended up getting help from Claude to do the implementation right but it works and now I understand how it fits together. Next up is USB HID so pressing the encoder button actually types the code into whatever field has focus on the host."}, {"post_id": 38404, "ts": "2026-07-31T19:11:25Z", "hours": 5.5711, "text": "Devlog #3 The UI is now functional The encoder scrolls between accounts and I added a full settings menu with brightness control, time sync options, and UTC offset. Time sync is working over both WiFi and Bluetooth. WiFi NTP connects to pool.ntp.org and syncs in UTC automatically. The Bluetooth side uses GATT Current Time Service which is the same protocol smartwatches use to get time from a phone with no app needed. You just pair and the phone OS pushes the time automatically. The catch with BLE CTS is that it sends local time rather than UTC, so there’s a UTC offset setting in the menu to correct for this. Codes are still placeholder 000000 until TOTP generation gets wired which will be in next devlog"}, {"post_id": 38128, "ts": "2026-07-31T10:53:47Z", "hours": 3.6925, "text": "Devlog #2 The main account list UI is looking good and it’s starting to look like a real product. It has the account name, email, and TOTP code laid out per row with the selected account highlighted. Placeholder 000000 codes for now since TOTP generation isn’t done yet, but the layout is exactly what I had in mind. The “hold side button 5s to power off” hint at the bottom is also working. Also got carried away with designing UI and made the boot animation. characters rain across the screen like cmatrix with a key icon and TOKEN text fading in over the top before dropping into the account list. Small detail but it makes the device feel polished from the moment you turn it on. Next up is figuring out how to get the time accuratly and actually generate TOTP codes on the esp demo video: https://i.tomttfb.com/vid/39fpqg.mp4"}, {"post_id": 37839, "ts": "2026-07-30T20:03:16Z", "hours": 0.8319, "text": "Devlog #1 Never done any Arduino or ESP32 development before so this has been a learning curve. Spent the first chunk of time just getting PlatformIO set up in VS Code and figuring out how the T-Embed CC1101 board works. lot of reading tutorials and LilyGo’s example code. Got there in the end though with Hello World on the display in green with the RGB ring doing a rainbow pattern on the encoder. Small win but it means the toolchain works, the board is flashing correctly, and I can actually start building Token properly now."}]...
|
Title: Token by @TomTTFB | Stardance
Devlogs:
Dev Title: Token by @TomTTFB | Stardance
Devlogs:
Devlog #1 Never done any Arduino or ESP32 development before so this has been a learning curve. Spent the first chunk of time just getting PlatformIO set up in VS Code and figuring out how the T-Embed CC1101 board works. lot of reading tutorials and LilyGo’s example code. Got there in the end though with Hello World on the display in green with the RGB ring doing a rainbow pattern on the encoder. Small win but it means the toolchain works, the board is flashing correctly, and I can actually start building Token properly now.
Devlog #2 The main account list UI is looking good and it’s starting to look like a real product. It has the account name, email, and TOTP code laid out per row with the selected account highlighted. Placeholder 000000 codes for now since TOTP generation isn’t done yet, but the layout is exactly what I had in mind. The “hold side button 5s to power off” hint at the bottom is also working. Also got carried away with designing UI and made the boot animation. characters rain across the screen like cmatrix with a key icon and TOKEN text fading in over the top before dropping into the account list. Small detail but it makes the device feel polished from the moment you turn it on. Next up is figuring out how to get the time accuratly and actually generate TOTP codes on the esp demo video: https://i.tomttfb.com/vid/39fpqg.mp4
Devlog #3 The UI is now functional The encoder scrolls between accounts and I added a full settings menu with brightness control, time sync options, and UTC offset. Time sync is working over both WiFi and Bluetooth. WiFi NTP connects to pool.ntp.org and syncs in UTC automatically. The Bluetooth side uses GATT Current Time Service which is the same protocol smartwatches use to get time from a phone with no app needed. You just pair and the phone OS pushes the time automatically. The catch with BLE CTS is that it sends local time rather than UTC, so there’s a UTC offset setting in the menu to correct for this. Codes are still placeholder 000000 until TOTP generation gets wired which will be in next devlog
Devlog #4 TOTP generation is working! The device is now showing real codes. Getting here took more work than expected. TOTP sounds simple on paper but actually implementing HMAC-SHA1 correctly, handling Base32 decoding and making sure the time step calculation lines up exactly took a few attempts. I ended up getting help from Claude to do the implementation right but it works and now I understand how it fits together. Next up is USB HID so pressing the encoder button actually types the code into whatever field has focus on the host.
Devlog #5 I think Token is at a point where I think it’s ready. USB HID works for typing codes, The web setup tool is done too, it handles adding accounts by QR code or manual entry, updating and flashing firmware. It’s been fun building my first project for an ESP. Getting TOTP, BLE time sync, USB HID and the setup tool all working together took a lot of work but it’s good. Demo: https://i.tomttfb.com/vid/iwr6nx.mp4
Ships:
First project shipped! Had a lot of fun building Token so far, check it out here and the demo video is linked in the latest devlog. Token Setup: https://token.tomttfb.com/ Demo Vid: https://i.tomttfb.com/vid/iwr6nx.mp4...
|
1792878438.7835038
|
1793742438.7835038
|
|
10026
|
Astrophotography Tools by @jdszekeres | Stardance
|
jdszekeres
|
4
|
25.0
|
296
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-26T02:50:06Z", "hours": 6.0, "multiplier": 18.57, "payout": 106, "blessing": "neutral", "text": "In this ship, I: Finally got to fixing the UI, making it more space-themed (i.e stars on every page background with comets, zero-g floating cards, comsic latte color scheme) Added planets and other visible celestial objects to the FOV preview Made the Bortle Scale indicator work by building my own light pollution map from the CU Boulder VIIRS dataset Check out this photo of the moon I took!", "repo": "https://github.com/jdszekeres/astrophoto-tools", "demo": "https://astrophoto-tools.vercel.app/"}, {"ship_num": 2, "ts": "2026-08-14T04:48:00Z", "hours": 4.0, "multiplier": 18.98, "payout": 74, "blessing": "neutral", "text": "I added FOV preview and hyperfocal distance calculator tools to the site, as well as adding the Milky Way to the star chart. Lastly, I added a guide to help newer astrophotographers get comfortable with astrophotography. Here’s a photo I took of some star trails in the Dolomites.", "repo": "https://github.com/jdszekeres/astrophoto-tools", "demo": "https://astrophoto-tools.vercel.app/"}, {"ship_num": 3, "ts": "2026-07-10T00:22:25Z", "hours": 8.0, "multiplier": 6.68, "payout": 51, "blessing": "neutral", "text": "I added a star chart tool and a stacking calculator, as well as a recomended settings for major camera brands to my astrophotography tools PWA. One of my biggest challenges was the star chart generator. I wanted it to mirror other star charts with major stars and constellations. I spent a lot of time entering constellations by hand before realizing there was a dataset that already detailed exactly that. The photo below was taken using the info from these tools.", "repo": "https://github.com/jdszekeres/astrophoto-tools", "demo": "https://astrophoto-tools.vercel.app/"}, {"ship_num": 4, "ts": "2026-06-17T00:00:58Z", "hours": 7.0, "multiplier": 9.67, "payout": 65, "blessing": "neutral", "text": "I made a set of Astrophotography tools to use in the field. They include an equivalent exposure calculator, Bortle scale finder and reference, sun and moon position calculator, and 400 rule tool. They all work offline and are mobile PWA compatible.", "repo": "https://github.com/jdszekeres/astrophoto-tools", "demo": "https://astrophoto-tools.vercel.app/"}]...
|
[{"post_id": 54750, "ts": "202 [{"post_id": 54750, "ts": "2026-08-25T20:51:59Z", "hours": 0.6228, "text": "Add celestial objects to FOV preview Changelog 2a13b7a"}, {"post_id": 54703, "ts": "2026-08-25T19:32:54Z", "hours": 2.1147, "text": "I fixed the Bortle Scale by building my own light pollution map from scratch using a light pollution scattering kernel using the CU Boulder VIIRS dataset. Previously, the dataset I used didn’t have enough labels for each bortle scale and had country borders, which screwed with what the expected light pollution is."}, {"post_id": 52039, "ts": "2026-08-22T02:31:44Z", "hours": 1.6469, "text": "I’ve taken your feedback from the last ship and I’ve started work on a more space-y theme for this project. So far, I’ve switched up the color scheme to a dark blueish-purple and comsic latte (The average color of the universe). I also added a procderual starfield with comets in the background. Also, check out the homepage, the page cards also float around like they’re in microgravity!"}, {"post_id": 51910, "ts": "2026-08-21T20:20:31Z", "hours": 1.3114, "text": "I did a lot of space saving (pun intended) to reduce the offline cache size by about 0.7 Mb to 3.8 Mb by better compressing images and minifying code and JSON. I also had to do an emergency fix for mobile, where it wasn’t working on certain phones."}, {"post_id": 46707, "ts": "2026-08-14T04:43:59Z", "hours": 0.7883, "text": "Added a guide to Astrophotography tools to make it more beginner friendly."}, {"post_id": 46686, "ts": "2026-08-14T03:54:11Z", "hours": 1.1489, "text": "Added milky way to star chart! It looks kinda cool how it wraps off the page and it definitely wasn’t because it was too hard to remove it."}, {"post_id": 44083, "ts": "2026-08-09T16:37:45Z", "hours": 1.9692, "text": "I added a FOV preview, which shows how the 110 messier objects appear in photos based on your camera sensor size and lens focal length. It’s very useful for deep space imaging."}, {"post_id": 25614, "ts": "2026-07-10T00:19:31Z", "hours": 0.7542, "text": "I added final UI improvements ahead of shipping and reduced redundant code"}, {"post_id": 24540, "ts": "2026-07-08T05:06:40Z", "hours": 1.165, "text": "Added a stacking calculator to show how well a stack of images will look based on their signal to noise ratio"}, {"post_id": 24435, "ts": "2026-07-08T00:07:28Z", "hours": 0.3561, "text": "Did some compression work to bring the download size down from 16 MB to only 4 MB. Mostly compressing images, but also making a new catalog, reduced catalog for stars."}, {"post_id": 24421, "ts": "2026-07-07T23:27:02Z", "hours": 2.5344, "text": "So, it turns out I didn’t need to enter all those lines manually, there are saved files out there for it."}, {"post_id": 19001, "ts": "2026-06-30T05:07:42Z", "hours": 1.0906, "text": "I got more constellations (Hydra, Bootes) and added offical International Astronomy Union names when applicable"}, {"post_id": 18804, "ts": "2026-06-30T00:38:53Z", "hours": 0.6019, "text": "Ha, I added orion and aries. This took forever b/c orion has so many connections"}, {"post_id": 18698, "ts": "2026-06-29T21:42:10Z", "hours": 1.2553, "text": "I’m working on an offline star chart generator. I’ve been working with Astronomy Engine and the Yale Bright Stars Catalog to find the proper motion of the stars. I’ve only added the Big Dipper, but I plan add more of the 88 IAU constellations."}, {"post_id": 10320, "ts": "2026-06-16T23:58:16Z", "hours": 0.3439, "text": "I actually used my project. Here is a shot I took of Bishop Pass in the Eastern Sierra Nevada mountains."}, {"post_id": 5820, "ts": "2026-06-09T19:10:37Z", "hours": 0.7731, "text": "Worked on getting the project deployed to Vercel (A lot of headaches with relative and absolute paths)"}, {"post_id": 5265, "ts": "2026-06-08T23:46:36Z", "hours": 2.5844, "text": "Add redlight mode to prevent eyes from getting burned while adjusting to the dark"}, {"post_id": 4544, "ts": "2026-06-07T21:44:54Z", "hours": 1.5022, "text": "I spent way too much time debugging how to use the data from lightpollution.it to find the light pollution index at a coordinate. Turns out they were using an off-centered projection that I used ChatGPT to decode (x = (lon + 126.44) / 0.03382; y = (-20.28 * lat) + 1862.4;)"}, {"post_id": 3918, "ts": "2026-06-07T01:07:11Z", "hours": 1.5881, "text": "Created the equivalent exposures tool to calculate values for each part of the exposure triangle based on other values."}]...
|
Title: Astrophotography Tools by @jdszekeres | Sta Title: Astrophotography Tools by @jdszekeres | Stardance
Devlogs:
Created the equivalent exposures tool to calculate values for each part of the exposure triangle based on other values.
I spent way too much time debugging how to use the data from lightpollution.it to find the light pollution index at a coordinate. Turns out they were using an off-centered projection that I used ChatGPT to decode (x = (lon + 126.44) / 0.03382; y = (-20.28 * lat) + 1862.4;)
Add redlight mode to prevent eyes from getting burned while adjusting to the dark
Worked on getting the project deployed to Vercel (A lot of headaches with relative and absolute paths)
I actually used my project. Here is a shot I took of Bishop Pass in the Eastern Sierra Nevada mountains.
I’m working on an offline star chart generator. I’ve been working with Astronomy Engine and the Yale Bright Stars Catalog to find the proper motion of the stars. I’ve only added the Big Dipper, but I plan add more of the 88 IAU constellations.
Ha, I added orion and aries. This took forever b/c orion has so many connections
I got more constellations (Hydra, Bootes) and added offical International Astronomy Union names when applicable
So, it turns out I didn’t need to enter all those lines manually, there are saved files out there for it.
Did some compression work to bring the download size down from 16 MB to only 4 MB. Mostly compressing images, but also making a new catalog, reduced catalog for stars.
Added a stacking calculator to show how well a stack of images will look based on their signal to noise ratio
I added final UI improvements ahead of shipping and reduced redundant code
I added a FOV preview, which shows how the 110 messier objects appear in photos based on your camera sensor size and lens focal length. It’s very useful for deep space imaging.
Added milky way to star chart! It looks kinda cool how it wraps off the page and it definitely wasn’t because it was too hard to remove it.
Added a guide to Astrophotography tools to make it more beginner friendly.
I did a lot of space saving (pun intended) to reduce the offline cache size by about 0.7 Mb to 3.8 Mb by better compressing images and minifying code and JSON. I also had to do an emergency fix for mobile, where it wasn’t working on certain phones.
I’ve taken your feedback from the last ship and I’ve started work on a more space-y theme for this project. So far, I’ve switched up the color scheme to a dark blueish-purple and comsic latte (The average color of the universe). I also added a procderual starfield with comets in the background. Also, check out the homepage, the page cards also float around like they’re in microgravity!
I fixed the Bortle Scale by building my own light pollution map from scratch using a light pollution scattering kernel using the CU Boulder VIIRS dataset. Previously, the dataset I used didn’t have enough labels for each bortle scale and had country borders, which screwed with what the expected light pollution is.
Add celestial objects to FOV preview Changelog 2a13b7a
Ships:
I made a set of Astrophotography tools to use in the field. They include an equivalent exposure calculator, Bortle scale finder and reference, sun and moon position calculator, and 400 rule tool. They all work offline and are mobile PWA compatible.
I added a star chart tool and a stacking calculator, as well as a recomended settings for major camera brands to my astrophotography tools PWA. One of my biggest challenges was the star chart generator. I wanted it to mirror other star charts with major stars and constellations. I spent a lot of time entering constellations by hand before realizing there was a dataset that already detailed exactly that. The photo below was taken using the info from these tools.
I added FOV preview and hyperfocal distance calculator tools to the site, as well as adding the Milky Way to the star chart. Lastly, I added a guide to help newer astrophotographers get comfortable with astrophotography. Here’s a photo I took of some star trails in the Dolomites.
In this ship, I: Finally got to fixing the UI, making it more space-themed (i.e stars on every page background with comets, zero-g floating cards, comsic latte color scheme) Added planets and other visible celestial objects to the FOV preview Made the Bortle Scale indicator work by building my own light pollution map from the CU Boulder VIIRS dataset Check out this photo of the moon I took!...
|
1792997431.7666993
|
1793083831.7666993
|
|
15893
|
Network Scanner by @Eel | Stardance
|
Eel
|
3
|
28.0
|
296
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T04:48:00Z", "hours": 23.0, "multiplier": 11.9, "payout": 272, "blessing": "neutral", "text": "Network Scanner is a cross-platform network scanning tool with both a JavaFX desktop interface and a separate CLI. It can discover hosts, scan ports with configurable parallelism, show live progress, and save scan history so you can compare opened and closed ports between scans. The biggest challenge was turning the original scanner into a reliable, packaged application that works consistently across Windows, Linux, and macOS while keeping the CLI automation-friendly. I’m especially proud of the complete release pipeline and native desktop builds. The project now ships with Java included, has automated releases and SHA-256 checksums, and has been tested across all six Windows/macOS/Linux CI combinations. I also built cancellation, persistent scan history, report generation, and live progress into the desktop application. To test it, download the appropriate v3.0.0 release for your operating system from GitHub. You can try a scan against your own local network or use a loopback address such as 127.0.0.1. The CLI JAR is also available if you prefer running it from a terminal or using it in automation.", "repo": "https://github.com/Caleb-Guyer/java-network-scanner", "demo": "https://github.com/Caleb-Guyer/java-network-scanner/releases"}, {"ship_num": 2, "ts": "2026-08-07T03:12:08Z", "hours": 2.0, "multiplier": 6.07, "payout": 12, "blessing": "neutral", "text": "I improved my Java Network Scanner to scan all 254 addresses in a subnet, support customizable port ranges, identify common services, validate input, and generate scan reports. The biggest challenge was improving the scan speed while keeping it reliable, and I’m proud of turning it into a much more flexible and useful tool. To test it, run the program with Java, enter your local subnet (such as 192.168.1), and choose a port range to scan.", "repo": "https://github.com/Caleb-Guyer/java-network-scanner", "demo": "https://github.com/Caleb-Guyer/java-network-scanner/releases"}, {"ship_num": 3, "ts": "2026-06-11T19:40:03Z", "hours": 3.0, "multiplier": 3.46, "payout": 12, "blessing": "neutral", "text": "This is a fully working Java network scanner that will scan for devices on your network and write it to a file. It integrates network and port scanning. You can get the JAR on the GitHub release.", "repo": "https://github.com/Caleb-Guyer/java-network-scanner", "demo": "https://github.com/Caleb-Guyer/java-network-scanner/releases"}]...
|
[{"post_id": 50090, "ts": "202 [{"post_id": 50090, "ts": "2026-08-19T04:47:14Z", "hours": 5.2136, "text": "v3.0.0 is complete and publicly released. This is a pretty major update for Network Scanner, with the project now having a full JavaFX desktop interface alongside the existing command-line version. The desktop app includes live scan progress, cancellation, persistent scan history, and comparisons between opened and closed ports from previous scans. I also added native desktop bundles for Windows x64, Linux x64, and macOS ARM64, with Java included so users do not need to install Java separately. The automation-friendly CLI JAR remains available separately, and every published download now has a SHA-256 checksum for verification. The release went through 115 regression assertions, all six Windows/macOS/Linux CI combinations, and all native packaging and publication jobs. I also tested a real loopback scan with report generation and verified the published CLI checksum and launcher. Everything passed successfully."}, {"post_id": 49833, "ts": "2026-08-18T19:39:12Z", "hours": 5.6381, "text": "v2.3.0 of my Java Network Scanner is now live. This release focuses heavily on making scanning more reliable, informative, and performant, especially in environments where normal host discovery doesn’t work as expected. The scanner now has an automatic zero-host discovery fallback, along with ICMP/TCP diagnostics and interface warnings to help explain why hosts may not be discovered. I also reworked the parallel scanning system with a globally bounded scan queue, which keeps concurrency under control while still allowing the scanner to take advantage of multiple workers. The scanning experience now includes live progress, throughput, and ETA information. The timeout can also be configured with the new –timeout option. Reports have been expanded as well, with richer information available in the text, JSON, and CSV formats. I also added an opt-in /24 performance benchmark for testing scanner performance on larger ranges. In the 64-worker benchmark, the scanner reached 25,220 checks per second."}, {"post_id": 49047, "ts": "2026-08-17T17:13:29Z", "hours": 6.6, "text": "v2.2.0 of my Java Network Scanner is officially out. This release is a pretty major step forward for the project, especially when it comes to automation, reporting, and making the scanner easier to use outside of the original interactive workflow. The scanner now supports a non-interactive CLI, including the new –skip-discovery option. I also added text, JSON, and CSV report formats, along with partial-report recovery when the scan is interrupted with Ctrl+C. Parallel scanning can now be configured as well, making it possible to adjust how many hosts and ports are scanned concurrently. I also moved the project over to Maven and added cross-platform CI and automated releases. This makes building and releasing the scanner much more consistent and means new releases can be tested across multiple environments automatically."}, {"post_id": 47817, "ts": "2026-08-16T00:56:08Z", "hours": 5.3833, "text": "v2.1.0 is complete and published. This release focuses on the feedback from the previous version, adding IPv4 CIDR support from /24 through /32 while keeping the original subnet shorthand, and improving host discovery with TCP fallbacks to reduce false 0 hosts results when ICMP is blocked. I also added controlled parallelism for much faster host and port scanning, with a configurable worker limit, and improved the scan statistics to accurately report port checks performed on responsive hosts. The release was compiled for Java 11+, passed 26 dependency-free regression assertions, and was smoke-tested with both explicit CIDR and locally inferred network inputs."}, {"post_id": 42412, "ts": "2026-08-07T03:10:48Z", "hours": 1.7436, "text": "After reviewing the feedback from my first ship, I decided to continue developing Network Scanner instead of leaving it at v1.0. The biggest issue was the hardcoded .1-.50 host range, which I had already fixed by expanding the scanner to .1-.254. The next problem I wanted to solve was that my service detection was extremely limited. Originally, the scanner only recognized seven ports, meaning most open ports were simply reported as “Unknown.” I replaced that system with a larger service database covering common services such as DNS, SMB, LDAP, MySQL, PostgreSQL, RDP, VNC and Redis. I also wanted the scanner to provide more information than simply saying that a port was open. I added basic HTTP/HTTPS probing so that web services can report their HTTP status and server information when available. Another piece of feedback specifically requested IPv6 support. This turned out to be more complicated than I initially expected because IPv6 addresses cannot be scanned using the same .1 through .254 approach I used for an IPv4 /24. Instead of pretending to scan an entire IPv6 /64, I decided to support scanning individual IPv6 addresses first. I also added multiple scanning modes so users don’t have to manually enter a port range every time. Quick scan focuses on common ports, while custom and full scans provide more control. While making these changes, I also improved input validation, report formatting, progress feedback and resource handling. The biggest thing I learned from this version is that making a networking tool useful isn’t just about getting the scan to work. I also need to think about what information the results actually provide to the person using it."}, {"post_id": 7155, "ts": "2026-06-11T23:09:59Z", "hours": 0.3028, "text": "Fixed some typos and further optimized the code."}, {"post_id": 7009, "ts": "2026-06-11T19:20:20Z", "hours": 0.8311, "text": "Added configurable port range scanning, service name detection for common ports, port range validation, and finalized v1.0 release."}, {"post_id": 6663, "ts": "2026-06-11T05:20:53Z", "hours": 2.605, "text": "Improved my Java Network Scanner by adding report export functionality, optimizing socket connection timeouts (reducing scan time from over 100 seconds to about 4 seconds), and refactoring the project into multiple classes."}]...
|
Title: Network Scanner by @Eel | Stardance
Devlog Title: Network Scanner by @Eel | Stardance
Devlogs:
Improved my Java Network Scanner by adding report export functionality, optimizing socket connection timeouts (reducing scan time from over 100 seconds to about 4 seconds), and refactoring the project into multiple classes.
Added configurable port range scanning, service name detection for common ports, port range validation, and finalized v1.0 release.
Fixed some typos and further optimized the code.
After reviewing the feedback from my first ship, I decided to continue developing Network Scanner instead of leaving it at v1.0. The biggest issue was the hardcoded .1-.50 host range, which I had already fixed by expanding the scanner to .1-.254. The next problem I wanted to solve was that my service detection was extremely limited. Originally, the scanner only recognized seven ports, meaning most open ports were simply reported as “Unknown.” I replaced that system with a larger service database covering common services such as DNS, SMB, LDAP, MySQL, PostgreSQL, RDP, VNC and Redis. I also wanted the scanner to provide more information than simply saying that a port was open. I added basic HTTP/HTTPS probing so that web services can report their HTTP status and server information when available. Another piece of feedback specifically requested IPv6 support. This turned out to be more complicated than I initially expected because IPv6 addresses cannot be scanned using the same .1 through .254 approach I used for an IPv4 /24. Instead of pretending to scan an entire IPv6 /64, I decided to support scanning individual IPv6 addresses first. I also added multiple scanning modes so users don’t have to manually enter a port range every time. Quick scan focuses on common ports, while custom and full scans provide more control. While making these changes, I also improved input validation, report formatting, progress feedback and resource handling. The biggest thing I learned from this version is that making a networking tool useful isn’t just about getting the scan to work. I also need to think about what information the results actually provide to the person using it.
v2.1.0 is complete and published. This release focuses on the feedback from the previous version, adding IPv4 CIDR support from /24 through /32 while keeping the original subnet shorthand, and improving host discovery with TCP fallbacks to reduce false 0 hosts results when ICMP is blocked. I also added controlled parallelism for much faster host and port scanning, with a configurable worker limit, and improved the scan statistics to accurately report port checks performed on responsive hosts. The release was compiled for Java 11+, passed 26 dependency-free regression assertions, and was smoke-tested with both explicit CIDR and locally inferred network inputs.
v2.2.0 of my Java Network Scanner is officially out. This release is a pretty major step forward for the project, especially when it comes to automation, reporting, and making the scanner easier to use outside of the original interactive workflow. The scanner now supports a non-interactive CLI, including the new –skip-discovery option. I also added text, JSON, and CSV report formats, along with partial-report recovery when the scan is interrupted with Ctrl+C. Parallel scanning can now be configured as well, making it possible to adjust how many hosts and ports are scanned concurrently. I also moved the project over to Maven and added cross-platform CI and automated releases. This makes building and releasing the scanner much more consistent and means new releases can be tested across multiple environments automatically.
v2.3.0 of my Java Network Scanner is now live. This release focuses heavily on making scanning more reliable, informative, and performant, especially in environments where normal host discovery doesn’t work as expected. The scanner now has an automatic zero-host discovery fallback, along with ICMP/TCP diagnostics and interface warnings to help explain why hosts may not be discovered. I also reworked the parallel scanning system with a globally bounded scan queue, which keeps concurrency under control while still allowing the scanner to take advantage of multiple workers. The scanning experience now includes live progress, throughput, and ETA information. The timeout can also be configured with the new –timeout option. Reports have been expanded as well, with richer information available in the text, JSON, and CSV formats. I also added an opt-in /24 performance benchmark for testing scanner performance on larger ranges. In the 64-worker benchmark, the scanner reached 25,220 checks per second.
v3.0.0 is complete and publicly released. This is a pretty major update for Network Scanner, with the project now having a full JavaFX desktop interface alongside the existing command-line version. The desktop app includes live scan progress, cancellation, persistent scan history, and comparisons between opened and closed ports from previous scans. I also added native desktop bundles for Windows x64, Linux x64, and macOS ARM64, with Java included so users do not need to install Java separately. The automation-friendly CLI JAR remains available separately, and every published download now has a SHA-256 checksum for verification. The release went through 115 regression assertions, all six Windows/macOS/Linux CI combinations, and all native packaging and publication jobs. I also tested a real loopback scan with report generation and verified the published CLI checksum and launcher. Everything passed successfully.
Ships:
This is a fully working Java network scanner that will scan for devices on your network and write it to a file. It integrates network and port scanning. You can get the JAR on the GitHub release.
I improved my Java Network Scanner to scan all 254 addresses in a subnet, support customizable port ranges, identify common services, validate input, and generate scan reports. The biggest challenge was improving the scan speed while keeping it reliable, and I’m proud of turning it into a much more flexible and useful tool. To test it, run the program with Java, enter your local subnet (such as 192.168.1), and choose a port range to scan.
Network Scanner is a cross-platform network scanning tool with both a JavaFX desktop interface and a separate CLI. It can discover hosts, scan ports with configurable parallelism, show live progress, and save scan history so you can compare opened and closed ports between scans. The biggest challenge was turning the original scanner into a reliable, packaged application that works consistently across Windows, Linux, and macOS while keeping the CLI automation-friendly. I’m especially proud of the complete release pipeline and native desktop builds. The project now ships with Java included, has automated releases and SHA-256 checksums, and has been tested across all six Windows/macOS/Linux CI combinations. I also built cancellation, persistent scan history, report generation, and live progress into the desktop application. To test it, download the appropriate v3.0.0 release for your operating system from GitHub. You can try a scan against your own local network or use a loopback address such as 127.0.0.1. The CLI JAR is also available if you prefer running it from a terminal or using it in automation....
|
1792878870.0594268
|
1793742870.0594268
|
|
33236
|
Chip8Emulator by @renanfartes | Stardance
|
renanfartes
|
1
|
19.0
|
295
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-18T16:40:58Z", "hours": 19.0, "multiplier": 15.53, "payout": 295, "blessing": "neutral", "text": "[EPILEPSY WARNING - Chip8 due to hardware limitation issues, may have some image-flickering that are considered flashing lights. If you have some issue, please skip this project] I published this project with thee goal of learning how a emulator works, and i learned a lot. I coded trying to not use any AI but i used as described on the devlogs and on the tag described bellow. I learned how to handle when nothing works, search on raw google and stack overflow while handling with UI issues and registers, CPU fetch-decode-execute cycle etc. Mobile note: The app works fine on firefox mobile, but in chrome the keyboard may be buggy. In desktop any browser works.", "repo": "https://github.com/Renan-G-projec/Chip8Emulator", "demo": "https://stardance-chip8.netlify.app/"}]...
|
[{"post_id": 30760, "ts": "202 [{"post_id": 30760, "ts": "2026-07-18T16:35:25Z", "hours": 0.4189, "text": "Devlog #015 Deployed!! I deployed the calculator and pushed the README to the repository. Everything is great to work now!"}, {"post_id": 30735, "ts": "2026-07-18T15:47:35Z", "hours": 0.8692, "text": "Devlog #014 [EPILEPSY ALLERT - Chip 8 xor logic flickers the image blazzingly fast so it may cause some visual discomfort] Sound implemented! All the chip8 logic was ready but the sound was missing, so i took some time to think. I searched and found the MDN p[age about the browser audio api. It is complicated, it is like an opengl with pipes but for sound processing. I created Also the classes name does not help I read and found a liiitle solution tha isn’t ideal and wrapped it into a Speakers class. But makes sense. That architecture allows complex audio processing and is useful at all. You create an oscilator node, makes it point to a gain node to change volume and then point the gain’s node output to the computer."}, {"post_id": 30478, "ts": "2026-07-18T02:43:31Z", "hours": 0.6989, "text": "Devlog #013 [EPILEPSY ALERT - The video contains flickering images since CHIP 8 uses XOR sprite rendering] FInnally bug corrected!! I was having a strange bug with the CHIP 8 engine where the pong logic was inverted. I passed almost 40 minutes trying to rewrite the code to the canvas (since the VF register is used to descrive collisions). But the bug had nothing to deal with collisions, was a underflow flag that i inversed the logic without wanting. I pasted some part of the code onto the AI to debug after that and after this it took me only 1 minute to fix it. I’m sad to break the streak of not using AI."}, {"post_id": 29864, "ts": "2026-07-17T00:51:29Z", "hours": 0.9867, "text": "Devlog #012 Streched up the ROM cards and added this little about-me section. I also updated the Page’s title and i drawed this weird icon that someway feels off. I plan to make the final adjustments like: Fix: Pong ROM not loading add: Sound implementation add: Some mobile support (The keys of the keyboard are not capable of handling multiple pressed strokes and that makes undefined behavior as the keyboard forget what key to clear) Hope y’all are finding thiss new style a little better :)"}, {"post_id": 29526, "ts": "2026-07-16T14:44:49Z", "hours": 2.3522, "text": "Devlog #011 Sooo Now the project is getting a liiitle less weird I added this white borders, refactored the file input style, added this ROMs section and all the components necessary to make this whole thing work. I also added a raw coded console-printing of the ROM in base64 at the terminal for uploading this ROMs. Some of them are actually weeird because the console of chip8 wasn’t created actually. Chip8 was never a reaaal console, it is more like an entire programming lang. So i tried my best making the keyboard, but some games were designed in another layouts. I hope this retro-style looks great!!!"}, {"post_id": 29191, "ts": "2026-07-15T22:35:11Z", "hours": 1.3811, "text": "Devlog #010 FINNALLY A PRESENTABLE STYLE It still ugly, but i refactored the fonts, the buttons and speccially the colors. I also added a reactivity-based system that tracks the current rom and display it’s names. I also added the ROM template so the examples will be displayed soon. My next steps is probably to organize some ready-to-use ROMS, a LocalStorage system to allow ROM uploading persistance, the sound system and some historical context of this virtual console"}, {"post_id": 28270, "ts": "2026-07-14T12:53:37Z", "hours": 1.2353, "text": "Devlog #009 [EPILEPSY ALERT - Since Chip 8 uses XOR rendering logic, the images are flickering] Console remade! I added some fonts and forked into this braanch for refactoring the visual components. I moved a lot of components, and it stills ugly. I reaally tryed to make height the same as width but i didn’t find in stack overflow or any website, and i didn’t wanted to use AI. So i changed the screen size, the button, alll the keyboard was re-written and i thiink it will eventually be working fine in mobile screens."}, {"post_id": 28227, "ts": "2026-07-14T11:28:25Z", "hours": 0.8358, "text": "Devlog #008 Speed and bug fix I made the game repond faster by splitting it in 3 timers. I also added a clearInterval feat so the button “InitGame” doesn’t speed the game more and more. I tried optimizing the canvas by only updating the changed pixels. Was a total failure. So i forget about it. I also added keyboard mapping so clicking on the UI layer at the right isn’t needed. I also corrected the bitshifiting bug thsat were buggin all the draw. The game is already playable!! :) But this website is a crap of UI Idk if i try to style it or use vuetify componnt lib."}, {"post_id": 28197, "ts": "2026-07-14T10:23:37Z", "hours": 1.1539, "text": "Devlog #007 FINALLY IT WORKS I had a lot of headache fixing bugs. The first one was a opcode that wasn’t being captured (0xF007, which gives the timer, so the game was being paused becs i wasn’t capturing it) After, i realized none of the sprites were beign rendered correctly (as is seen at my previous devlogs). But debbugging on the browser i saw that the getAsset() function were returning the entire rom, not the sprites. So i fixed it using a simple slice. I don’t why, but everything seens to be rendering by inverse. Probably is some crazy bitshift that i made and need to fix. Also, the game runs at 60 fps, but that’s slow to the time. Only the timers shall run at 60 fps as i saw. XD"}, {"post_id": 27388, "ts": "2026-07-12T22:21:15Z", "hours": 5.1472, "text": "Devlog #006 FINALLUYYSIJKURFHYIUADSHJIUFKLHJNDJLKOFH After 5 hours of pure and incessive headaache,without any clue about why nothing was being rendered, i finally make up to render my first rom in chip8 That took me the most painful experience i’ve saw in my life. Not even kidding, Binary in JS is like harder than assembly. After 2 hours i realized that trhe Mdn docs on my language was also not updated. So my file reader wasn’t even using promises. I realized only when i took the entire html to gemini and asked how i would figure it out without using AI? I also used ai to help me debug because i was 4 hours without seeiing anything on the screen, is just like a blind pinata write a big switch in js But i used AI only at the end, on the past 10 minutes. And none of any other code was written by ai. Every single opcode was weirtten by hand. I used to exactly: know about endianness (why in my machine the bytes were in x-order and in the file api of my btowser was in y order, detect rom loading bugs and for the text fonts. Only) I am so stressed that neither the keyboard was done neither the loading window are styled."}, {"post_id": 26639, "ts": "2026-07-11T15:58:22Z", "hours": 0.6289, "text": "Devlog #005 ROM loading added! I added this raw-styled rom loader so the user can input their own files(none ready-to-use rom added yet). I’ll probably make fetch to a chip8 repo in github for that. Handling with promises is always complicated, but i think the most difficult part is done./ I created a ROM Loader helper class that will Receive a FIle object, load inside it and will have methods stream-like (getByte) etc."}, {"post_id": 26602, "ts": "2026-07-11T15:04:26Z", "hours": 1.4175, "text": "Devlog #004 Added The keyboard functionality! Now the keyboard can listen to user input and only a key is pressed at a time. It does not handle mobile yet, so i’ll need to add this later. I also had to handle with a hard time trying to style this keyboard."}, {"post_id": 26313, "ts": "2026-07-11T01:23:54Z", "hours": 0.5525, "text": "Devlog #003 Canvas class finally added! I spent a lot of time trying to undestand how the canvas API works on JS. So i scaffolded a wrapper class to make the code reusable. I tested and played around and everything seems to work. I added a clear and a render method. Next step is to create the XOR logic that chip 8 have and start working on the Chip8 Engine class."}, {"post_id": 26256, "ts": "2026-07-10T22:53:54Z", "hours": 0.5058, "text": "Devlog #002 FInaalllly i discovered why the canvas div was a little greater than expected. I raw-searched with google and found a rabbit hole but this Reddit post from 3 years ago saved me without recurring for AI. I also added the keyboard. As there’s 16 buttons i didn’t harded coded it, i added a simple function (with on-mounted vue property) that creates and appends the buttons to the keyboard (used toString with radix 16 to display hex). None functionality added yet XD"}, {"post_id": 25615, "ts": "2026-07-10T00:20:31Z", "hours": 0.9206, "text": "Devlog #001 I’ve scaffolded this project! It is supposed to be a simple CHIP8 emulator with ready to play ROMS and custom ROM uploading. So, i set all the vue boilerplate and configured vite. After i started workling on the window and it simply gave me a lot of headache because a margin collapse feature that happened to be on my browser. I added the component in a reusable way and it is just this simple. I added some CSS Variables (to make dark themes after) and media queries so the main window scale propperly. I spent more time that i wanted debuigging."}]...
|
Title: Chip8Emulator by @renanfartes | Stardance
Title: Chip8Emulator by @renanfartes | Stardance
Devlogs:
Devlog #001 I’ve scaffolded this project! It is supposed to be a simple CHIP8 emulator with ready to play ROMS and custom ROM uploading. So, i set all the vue boilerplate and configured vite. After i started workling on the window and it simply gave me a lot of headache because a margin collapse feature that happened to be on my browser. I added the component in a reusable way and it is just this simple. I added some CSS Variables (to make dark themes after) and media queries so the main window scale propperly. I spent more time that i wanted debuigging.
Devlog #002 FInaalllly i discovered why the canvas div was a little greater than expected. I raw-searched with google and found a rabbit hole but this Reddit post from 3 years ago saved me without recurring for AI. I also added the keyboard. As there’s 16 buttons i didn’t harded coded it, i added a simple function (with on-mounted vue property) that creates and appends the buttons to the keyboard (used toString with radix 16 to display hex). None functionality added yet XD
Devlog #003 Canvas class finally added! I spent a lot of time trying to undestand how the canvas API works on JS. So i scaffolded a wrapper class to make the code reusable. I tested and played around and everything seems to work. I added a clear and a render method. Next step is to create the XOR logic that chip 8 have and start working on the Chip8 Engine class.
Devlog #004 Added The keyboard functionality! Now the keyboard can listen to user input and only a key is pressed at a time. It does not handle mobile yet, so i’ll need to add this later. I also had to handle with a hard time trying to style this keyboard.
Devlog #005 ROM loading added! I added this raw-styled rom loader so the user can input their own files(none ready-to-use rom added yet). I’ll probably make fetch to a chip8 repo in github for that. Handling with promises is always complicated, but i think the most difficult part is done./ I created a ROM Loader helper class that will Receive a FIle object, load inside it and will have methods stream-like (getByte) etc.
Devlog #006 FINALLUYYSIJKURFHYIUADSHJIUFKLHJNDJLKOFH After 5 hours of pure and incessive headaache,without any clue about why nothing was being rendered, i finally make up to render my first rom in chip8 That took me the most painful experience i’ve saw in my life. Not even kidding, Binary in JS is like harder than assembly. After 2 hours i realized that trhe Mdn docs on my language was also not updated. So my file reader wasn’t even using promises. I realized only when i took the entire html to gemini and asked how i would figure it out without using AI? I also used ai to help me debug because i was 4 hours without seeiing anything on the screen, is just like a blind pinata write a big switch in js But i used AI only at the end, on the past 10 minutes. And none of any other code was written by ai. Every single opcode was weirtten by hand. I used to exactly: know about endianness (why in my machine the bytes were in x-order and in the file api of my btowser was in y order, detect rom loading bugs and for the text fonts. Only) I am so stressed that neither the keyboard was done neither the loading window are styled.
Devlog #007 FINALLY IT WORKS I had a lot of headache fixing bugs. The first one was a opcode that wasn’t being captured (0xF007, which gives the timer, so the game was being paused becs i wasn’t capturing it) After, i realized none of the sprites were beign rendered correctly (as is seen at my previous devlogs). But debbugging on the browser i saw that the getAsset() function were returning the entire rom, not the sprites. So i fixed it using a simple slice. I don’t why, but everything seens to be rendering by inverse. Probably is some crazy bitshift that i made and need to fix. Also, the game runs at 60 fps, but that’s slow to the time. Only the timers shall run at 60 fps as i saw. XD
Devlog #008 Speed and bug fix I made the game repond faster by splitting it in 3 timers. I also added a clearInterval feat so the button “InitGame” doesn’t speed the game more and more. I tried optimizing the canvas by only updating the changed pixels. Was a total failure. So i forget about it. I also added keyboard mapping so clicking on the UI layer at the right isn’t needed. I also corrected the bitshifiting bug thsat were buggin all the draw. The game is already playable!! :) But this website is a crap of UI Idk if i try to style it or use vuetify componnt lib.
Devlog #009 [EPILEPSY ALERT - Since Chip 8 uses XOR rendering logic, the images are flickering] Console remade! I added some fonts and forked into this braanch for refactoring the visual components. I moved a lot of components, and it stills ugly. I reaally tryed to make height the same as width but i didn’t find in stack overflow or any website, and i didn’t wanted to use AI. So i changed the screen size, the button, alll the keyboard was re-written and i thiink it will eventually be working fine in mobile screens.
Devlog #010 FINNALLY A PRESENTABLE STYLE It still ugly, but i refactored the fonts, the buttons and speccially the colors. I also added a reactivity-based system that tracks the current rom and display it’s names. I also added the ROM template so the examples will be displayed soon. My next steps is probably to organize some ready-to-use ROMS, a LocalStorage system to allow ROM uploading persistance, the sound system and some historical context of this virtual console
Devlog #011 Sooo Now the project is getting a liiitle less weird I added this white borders, refactored the file input style, added this ROMs section and all the components necessary to make this whole thing work. I also added a raw coded console-printing of the ROM in base64 at the terminal for uploading this ROMs. Some of them are actually weeird because the console of chip8 wasn’t created actually. Chip8 was never a reaaal console, it is more like an entire programming lang. So i tried my best making the keyboard, but some games were designed in another layouts. I hope this retro-style looks great!!!
Devlog #012 Streched up the ROM cards and added this little about-me section. I also updated the Page’s title and i drawed this weird icon that someway feels off. I plan to make the final adjustments like: Fix: Pong ROM not loading add: Sound implementation add: Some mobile support (The keys of the keyboard are not capable of handling multiple pressed strokes and that makes undefined behavior as the keyboard forget what key to clear) Hope y’all are finding thiss new style a little better :)
Devlog #013 [EPILEPSY ALERT - The video contains flickering images since CHIP 8 uses XOR sprite rendering] FInnally bug corrected!! I was having a strange bug with the CHIP 8 engine where the pong logic was inverted. I passed almost 40 minutes trying to rewrite the code to the canvas (since the VF register is used to descrive collisions). But the bug had nothing to deal with collisions, was a underflow flag that i inversed the logic without wanting. I pasted some part of the code onto the AI to debug after that and after this it took me only 1 minute to fix it. I’m sad to break the streak of not using AI.
Devlog #014 [EPILEPSY ALLERT - Chip 8 xor logic flickers the image blazzingly fast so it may cause some visual discomfort] Sound implemented! All the chip8 logic was ready but the sound was missing, so i took some time to think. I searched and found the MDN p[age about the browser audio api. It is complicated, it is like an opengl with pipes but for sound processing. I created Also the classes name does not help I read and found a liiitle solution tha isn’t ideal and wrapped it into a Speakers class. But makes sense. That architecture allows complex audio processing and is useful at all. You create an oscilator node, makes it point to a gain node to change volume and then point the gain’s node output to the computer.
Devlog #015 Deployed!! I deployed the calculator and pushed the README to the repository. Everything is great to work now!
Ships:
[EPILEPSY WARNING - Chip8 due to hardware limitation issues, may have some image-flickering that are considered flashing lights. If you have some issue, please skip this project] I published this project with thee goal of learning how a emulator works, and i learned a lot. I coded trying to not use any AI but i used as described on the devlogs and on the tag described bellow. I learned how to handle when nothing works, search on raw google and stack overflow while handling with UI issues and registers, CPU fetch-decode-execute cycle etc. Mobile note: The app works fine on firefox mobile, but in chrome the keyboard may be buggy. In desktop any browser works....
|
1792979528.461713
|
1793065928.461713
|
|
41997
|
CatVision v3.0 by @MarioS271 | Stardance
|
MarioS271
|
1
|
20.0
|
295
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-01T20:02:34Z", "hours": 20.0, "multiplier": 12.67, "payout": 295, "blessing": "neutral", "text": "Hi! Welcome to my minecraft mod, CatVision. (well its just a rewrite of a rewrite but still) This is CatVision v3.0, the third rewrite. Guide for trying the mod Disclaimer: If you do not own minecraft, I suggest you skip reviewing this (with the little skip button at the top of the page), as you won’t be able to try this properly. Press the “Try Project” button to land on the latest release of the mod Download the .jar file for the loader you want to use (i recommend fabric) Install the mod somewhere 3.1) If you only have stock minecraft, consider skipping, as it takes a bit of time to get modded minecraft set up. I’d really appreciate you taking that time tho! :) 3.2) Otherwise, download the fitting .jar for your version and loader and drop it in your launcher/mods folder. Enjoy toying around! 😊 Default Keybinds: [F12] Open Config Menu (also possible via the Mod Menu) [ , ] Toggle Night Vision Why rewrite it that often? Well the first version (CatVision Legacy) only supported minecraft 1.21 and later on the fabric loader. Version 2 (aka CatVision Architectury) used the Architectury Loom to support Fabric, Forge and NeoForge on versions 1.16.5, 1.20.1, 1.21.1 and 1.21.11. However, I wanted support for WAY more versions, bringing us to now. Version 3 uses Stonecutter (a gradle preprocessor for building multi-version and multi-loader mods in one codebase). By doing so, v3 supports 1.16.5, 1.17.1 and all later versions, on Fabric, Forge and NeoForge. I hope you have fun playing around with the mod!", "repo": "https://github.com/MarioS271/cat_vision", "demo": "https://github.com/MarioS271/cat_vision/releases/latest"}]...
|
[{"post_id": 39042, "ts": "202 [{"post_id": 39042, "ts": "2026-08-01T18:34:31Z", "hours": 2.4739, "text": "After a little bit of a fight, CatVision v3.0 is finally done! Support for 26.1, 26.1.1, 26.1.2 and 26.2 is finally here. After fixing a mistake in the fabric build config, everything finally works and compiles. funny thing btw Yesterday, the 1.21.9 build on github failed… because the maven server of one dependency decided not to respond :) oh and look at this beautiful compatibility right here"}, {"post_id": 38585, "ts": "2026-08-01T02:04:47Z", "hours": 2.0261, "text": "1.21.x is done!! :) Going to sleep now…"}, {"post_id": 38511, "ts": "2026-07-31T22:52:07Z", "hours": 1.0006, "text": "1.20.x is finally done! 🎉 I’ll be doing 1.21.x now, not sure if I’ll finish it today. Tomorrow, hopefully everything will be finished and I can start rewriting my other three mods in this format :) A few notes Forge support has now been dropped in favour of NeoForge (the last version which supports forge is 1.20.1) 1.20.2, 1.20.3 and 1.20.5 don’t have NeoForge support (none publish gradle module data - they’re all beta versions - making it impossible for moddev-gradle to resolve them properly) Fabric still supports 1.20 to 1.20.6 tho! :)"}, {"post_id": 38470, "ts": "2026-07-31T21:11:08Z", "hours": 2.415, "text": "i just spent two f * cking hours trying to find out why my mod wasnt loading in neoforge So get this: In NeoForge 20.4 and earlier (which maps to MC version 1.20.4 and prior, I’m on MC 1.20.4), the metadata file should be under META-INF/mods.toml . Exactly ONE version later (NeoForge 20.5+, aka MC 1.20.5+), that changed to META-INF/neoforge.mods.toml . Of course, my build toolchain was generating neoforge.mods.toml and NeoForge wasn’t recognizing that, it wanted mods.toml . why why why do i do this to myself every single day"}, {"post_id": 38321, "ts": "2026-07-31T17:21:54Z", "hours": 1.5075, "text": "Support for 1.19.x is here! All the 1.19 versions are built, working and published! Next up is 1.20.x, however those will be taking a longer time due to NeoForge being introduced at 1.20.2."}, {"post_id": 38244, "ts": "2026-07-31T15:19:59Z", "hours": 1.9369, "text": "Support for 1.18.x is here! After a few more hiccups, 1.18, 1.18.1 and 1.18.2 are finally working! :) 1.18 is already out, 1.18.1 is building on github and 1.18.2 is about to start building And the Modrinth Page still isn’t public… (still being reviewed 🥲)"}, {"post_id": 37969, "ts": "2026-07-31T01:19:04Z", "hours": 2.7111, "text": "I AM FREE OF THIS HELL (for now) it is 3h after midnight why do i do this to myself The problems (there were a lot of them) Wrong Java Versions caused the mod to blow up when starting in a real launcher After correcting the Java Versions, fletching-table didnt resolve :D (it needs Java 17+, but MC needs Java 8 (1.16.5) and Java 16 (1.17.1)) Cloth Config was misbehaving >:( JiJ (jar in jar) did NOT want to work properly (cloth config issue #1) AAND the final boss… cloth config issue #2 Final boss (scary alert) Problem: The dev instance of minecraft uses the mojang mappings, but cloth config uses SRG mappings. Of course, SRG mappings and mojang mappings aren’t compatible, and as soon as you opened the config menu, the game would crash (but only in dev builds!). The problem is, this issue would’ve likely stayed for EVERY forge version of the mod, meaning debugging would’ve gotten VERY ANNOYING (build, import into real minecraft instance, test there). The Fix Simple: just remap cloth config from SRG to mojmap when in the dev env! Simple task! …except the remapper needs a “dictionary” jar in the same mappings as the thing it’s remapping. Cloth is SRG. The dev env only has mojmap. So there was no SRG dictionary to hand it. How do I solve this now? SIMPLE!!! Remap Minecraft itself BACK to SRG just to use it as the dictionary, then remap cloth against that!!!!!!!!!!!! All that to fix ONE GODDAMN FIELD NAME I would like to thank Claude for the technical (and moral) support in this thank you thank you thank you thank you thank you thank you i am going to bed holy f * ck"}, {"post_id": 37891, "ts": "2026-07-30T21:39:10Z", "hours": 1.0014, "text": "1.16.5 works and is out! Published on GitHub, under review on Modrinth and Curseforge :) What’s currently done CI/CD working, builds & publishes to github, modrinth and curseforge automatically 1.16.5-fabric done and released 1.16.5-forge done and released The Problem with 1.16.5-forge specifically NFRT (the runtime behind net.neoforged.moddev.legacyforge) can only build Minecraft versions that ship official Mojang mappings (which start at 1.17), which of course aren’t shipped for 1.16.5. This required the switch to Architectury Loom for that one version+loader combo. (thank you claude for your token-sacrifise for that 🫡) I’ll be working on the next few versions now, wish me luck they’ll be easier! 😅"}, {"post_id": 37844, "ts": "2026-07-30T20:13:29Z", "hours": 0.6061, "text": "CI/CD working! I finally got all the CI/CD (validate, build, publish to github, modrinth and curseforge) working. Next, I’ll be trying to get forge for 1.16.5 working to be able to publish 1.16.5 fully."}, {"post_id": 37794, "ts": "2026-07-30T18:42:50Z", "hours": 3.9406, "text": "CatVision v3.0 yes, this is the third rewrite Why rewrite again?? I didn’t like the project structure (seperate branch per minecraft version, hard to maintain, every version has to be managed independently, hard to scale) and I wanted compatibility for 1.16.5 up to the latest version and all inbetween with support for fabric, forge and neoforge. The Solution: Stonecutter Stonecutter is a gradle plugin that lets you maintain a single codebase for a multi-version and multi-loader project. You just annotate your code with version and loader conditions, and at compile time, stonecutter just “preprocesses” the annotated code. On a slight side note to preprocessing (if you’re interested): Preprocessing is the act of temporarily changing the source code (the human readable code that you write, NOT the machine code) before compilation. This is done by the preprocessor, a special program written for this one purpose. It is usually the first step in a program’s compilation (example: the C preprocessor, with instructions like #include , #define and more) Current progress Currently, I’ve got the template up and running with the 1.16.5-fabric version of the mod already functional. I’ve also set up the GitHub repo and the modrinth and curseforge projects."}]...
|
Title: CatVision v3.0 by @MarioS271 | Stardance
D Title: CatVision v3.0 by @MarioS271 | Stardance
Devlogs:
CatVision v3.0 yes, this is the third rewrite Why rewrite again?? I didn’t like the project structure (seperate branch per minecraft version, hard to maintain, every version has to be managed independently, hard to scale) and I wanted compatibility for 1.16.5 up to the latest version and all inbetween with support for fabric, forge and neoforge. The Solution: Stonecutter Stonecutter is a gradle plugin that lets you maintain a single codebase for a multi-version and multi-loader project. You just annotate your code with version and loader conditions, and at compile time, stonecutter just “preprocesses” the annotated code. On a slight side note to preprocessing (if you’re interested): Preprocessing is the act of temporarily changing the source code (the human readable code that you write, NOT the machine code) before compilation. This is done by the preprocessor, a special program written for this one purpose. It is usually the first step in a program’s compilation (example: the C preprocessor, with instructions like #include , #define and more) Current progress Currently, I’ve got the template up and running with the 1.16.5-fabric version of the mod already functional. I’ve also set up the GitHub repo and the modrinth and curseforge projects.
CI/CD working! I finally got all the CI/CD (validate, build, publish to github, modrinth and curseforge) working. Next, I’ll be trying to get forge for 1.16.5 working to be able to publish 1.16.5 fully.
1.16.5 works and is out! Published on GitHub, under review on Modrinth and Curseforge :) What’s currently done CI/CD working, builds & publishes to github, modrinth and curseforge automatically 1.16.5-fabric done and released 1.16.5-forge done and released The Problem with 1.16.5-forge specifically NFRT (the runtime behind net.neoforged.moddev.legacyforge) can only build Minecraft versions that ship official Mojang mappings (which start at 1.17), which of course aren’t shipped for 1.16.5. This required the switch to Architectury Loom for that one version+loader combo. (thank you claude for your token-sacrifise for that 🫡) I’ll be working on the next few versions now, wish me luck they’ll be easier! 😅
I AM FREE OF THIS HELL (for now) it is 3h after midnight why do i do this to myself The problems (there were a lot of them) Wrong Java Versions caused the mod to blow up when starting in a real launcher After correcting the Java Versions, fletching-table didnt resolve :D (it needs Java 17+, but MC needs Java 8 (1.16.5) and Java 16 (1.17.1)) Cloth Config was misbehaving >:( JiJ (jar in jar) did NOT want to work properly (cloth config issue #1) AAND the final boss… cloth config issue #2 Final boss (scary alert) Problem: The dev instance of minecraft uses the mojang mappings, but cloth config uses SRG mappings. Of course, SRG mappings and mojang mappings aren’t compatible, and as soon as you opened the config menu, the game would crash (but only in dev builds!). The problem is, this issue would’ve likely stayed for EVERY forge version of the mod, meaning debugging would’ve gotten VERY ANNOYING (build, import into real minecraft instance, test there). The Fix Simple: just remap cloth config from SRG to mojmap when in the dev env! Simple task! …except the remapper needs a “dictionary” jar in the same mappings as the thing it’s remapping. Cloth is SRG. The dev env only has mojmap. So there was no SRG dictionary to hand it. How do I solve this now? SIMPLE!!! Remap Minecraft itself BACK to SRG just to use it as the dictionary, then remap cloth against that!!!!!!!!!!!! All that to fix ONE GODDAMN FIELD NAME I would like to thank Claude for the technical (and moral) support in this thank you thank you thank you thank you thank you thank you i am going to bed holy f * ck
Support for 1.18.x is here! After a few more hiccups, 1.18, 1.18.1 and 1.18.2 are finally working! :) 1.18 is already out, 1.18.1 is building on github and 1.18.2 is about to start building And the Modrinth Page still isn’t public… (still being reviewed 🥲)
Support for 1.19.x is here! All the 1.19 versions are built, working and published! Next up is 1.20.x, however those will be taking a longer time due to NeoForge being introduced at 1.20.2.
i just spent two f * cking hours trying to find out why my mod wasnt loading in neoforge So get this: In NeoForge 20.4 and earlier (which maps to MC version 1.20.4 and prior, I’m on MC 1.20.4), the metadata file should be under META-INF/mods.toml . Exactly ONE version later (NeoForge 20.5+, aka MC 1.20.5+), that changed to META-INF/neoforge.mods.toml . Of course, my build toolchain was generating neoforge.mods.toml and NeoForge wasn’t recognizing that, it wanted mods.toml . why why why do i do this to myself every single day
1.20.x is finally done! 🎉 I’ll be doing 1.21.x now, not sure if I’ll finish it today. Tomorrow, hopefully everything will be finished and I can start rewriting my other three mods in this format :) A few notes Forge support has now been dropped in favour of NeoForge (the last version which supports forge is 1.20.1) 1.20.2, 1.20.3 and 1.20.5 don’t have NeoForge support (none publish gradle module data - they’re all beta versions - making it impossible for moddev-gradle to resolve them properly) Fabric still supports 1.20 to 1.20.6 tho! :)
1.21.x is done!! :) Going to sleep now…
After a little bit of a fight, CatVision v3.0 is finally done! Support for 26.1, 26.1.1, 26.1.2 and 26.2 is finally here. After fixing a mistake in the fabric build config, everything finally works and compiles. funny thing btw Yesterday, the 1.21.9 build on github failed… because the maven server of one dependency decided not to respond :) oh and look at this beautiful compatibility right here
Ships:
Hi! Welcome to my minecraft mod, CatVision. (well its just a rewrite of a rewrite but still) This is CatVision v3.0, the third rewrite. Guide for trying the mod Disclaimer: If you do not own minecraft, I suggest you skip reviewing this (with the little skip button at the top of the page), as you won’t be able to try this properly. Press the “Try Project” button to land on the latest release of the mod Download the .jar file for the loader you want to use (i recommend fabric) Install the mod somewhere 3.1) If you only have stock minecraft, consider skipping, as it takes a bit of time to get modded minecraft set up. I’d really appreciate you taking that time tho! :) 3.2) Otherwise, download the fitting .jar for your version and loader and drop it in your launcher/mods folder. Enjoy toying around! 😊 Default Keybinds: [F12] Open Config Menu (also possible via the Mod Menu) [ , ] Toggle Night Vision Why rewrite it that often? Well the first version (CatVision Legacy) only supported minecraft 1.21 and later on the fabric loader. Version 2 (aka CatVision Architectury) used the Architectury Loom to support Fabric, Forge and NeoForge on versions 1.16.5, 1.20.1, 1.21.1 and 1.21.11. However, I wanted support for WAY more versions, bringing us to now. Version 3 uses Stonecutter (a gradle preprocessor for building multi-version and multi-loader mods in one codebase). By doing so, v3 supports 1.16.5, 1.17.1 and all later versions, on Fabric, Forge and NeoForge. I hope you have fun playing around with the mod!...
|
1792979364.6620116
|
1793065764.6620116
|
|
28221
|
terra-orbit by @AhmedKhaledAhmed | Stardance
|
AhmedKhaledAhmed
|
1
|
20.0
|
293
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-19T18:05:32Z", "hours": 20.0, "multiplier": 14.57, "payout": 293, "blessing": "neutral", "text": "TerraOrbit is an open-source AI space harness that brings NASA’s data to your terminal and browser. Think of it as Claude Code, but for space.", "repo": "https://github.com/theawakener0/terra-orbit", "demo": "https://www.npmjs.com/package/terra-orbit"}]...
|
[{"post_id": 31356, "ts": "202 [{"post_id": 31356, "ts": "2026-07-19T17:57:28Z", "hours": 4.9686, "text": "The Last DevLog"}, {"post_id": 26475, "ts": "2026-07-11T09:18:10Z", "hours": 4.7906, "text": "I have built the webUI, and TUI using vercel ai sdk components, also add error handling in webUI. I will keep refining the AI loop, and add more error handling"}, {"post_id": 23318, "ts": "2026-07-06T06:11:34Z", "hours": 6.8219, "text": "Hi, I am currently building the subagents for the TerraOrbit harness, also built the main Terra agent, and built all the tools for the harness."}, {"post_id": 19559, "ts": "2026-06-30T21:43:53Z", "hours": 2.1964, "text": "I built a wrapper around NASA APIs and integrated with the TUI built via OpenTUI. Now, I need to build the AI harness, connect the wrapper with it , and improve the TUI."}, {"post_id": 18440, "ts": "2026-06-29T16:24:16Z", "hours": 1.3161, "text": "Trying OpenTUI"}]...
|
Title: terra-orbit by @AhmedKhaledAhmed | Stardanc Title: terra-orbit by @AhmedKhaledAhmed | Stardance
Devlogs:
Trying OpenTUI
I built a wrapper around NASA APIs and integrated with the TUI built via OpenTUI. Now, I need to build the AI harness, connect the wrapper with it , and improve the TUI.
Hi, I am currently building the subagents for the TerraOrbit harness, also built the main Terra agent, and built all the tools for the harness.
I have built the webUI, and TUI using vercel ai sdk components, also add error handling in webUI. I will keep refining the AI loop, and add more error handling
The Last DevLog
Ships:
TerraOrbit is an open-source AI space harness that brings NASA’s data to your terminal and browser. Think of it as Claude Code, but for space....
|
1792972594.9385192
|
1793058994.9385192
|
|
48619
|
Basic2DP by @VEX | Stardance
|
VEX
|
1
|
35.0
|
293
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T21:13:34Z", "hours": 35.0, "multiplier": 8.47, "payout": 293, "blessing": "neutral", "text": "I made a 2D physics engine which I named as Basic2DP (Basic 2 dimensional physics). It was made in C++ and uses SFML library for drawing the graphics. As for me he most challenging part was learning the actual math and physics to apply in the program. other than this the difficult part was keeping a track of code I often forget what I am supposed to do at what places :P. I am really proud of the fact that it is maybe the first project I have ever made that is this big I even had really fun in making it specially the theme feature was the most fun to work it for some reason, definitely enjoyed it and definitely learned a lot. If you are going to use this project then u can get it from the release section of my github repo but make sure to have 64bit windows and do not remove any of the dll files. Well thats all hope ya like this project :D", "repo": "https://github.com/VX7FAR/Basic2DP", "demo": "https://github.com/VX7FAR/Basic2DP/releases"}]...
|
[{"post_id": 69329, "ts": "202 [{"post_id": 69329, "ts": "2026-09-16T20:26:48Z", "hours": 1.9294, "text": "IT IS FINALLY DONE AAAAAGHHHHHHHH I AM READY TO SHIP THE PROJECT before that lets see what else I did all this time. I made the readme and made minor changes to the code to improve the program like adding a ‘help’ command to get quick help Also to get a proper guide on how things work I added a readme.html in folder of executable so the terminal doesnt feel very cluttered"}, {"post_id": 67451, "ts": "2026-09-13T15:42:13Z", "hours": 3.8656, "text": "sooooo i did a lot of things i completed the input method by taking information by getline() and parsing it and storing each infomation in a vector then it is decided what should be done by checking what is in vector at 0 index i also finished the option for themes and i also added some premade theme to have something to work it and u can even add you own themes. uhhhhh what else did i do…. yes decoration the terminal by default has white text and quickly it starts looking terrible and messy so what i did was i gave the text some colour now it is a bit more cleaner to navigate between different portions in terminal. i am gonna work on making the app capable of being exported and also add some small things here n there also yea the readme as well"}, {"post_id": 65676, "ts": "2026-09-10T23:59:20Z", "hours": 2.7953, "text": "Hmmmmmmmmmmm I did a lot of work today and my code looks very messy now and I am not even sure if it is messy or if it is supposed to look like this Well today I completed the CLI for my physics engine and even added themes so u can customize can look. Damn I thought I did a lot of work and now I cant even remember a single thing that I did Well I do know what I will be doing now I will add a way to save the theme in device at a specific folder this way if u make any theme and close the theme u will still be able to access the previously made theme and u wont have to make it again After that I will give it finishing touches and then README and then make a static version of this app then import then ship 🚢"}, {"post_id": 65084, "ts": "2026-09-09T23:28:06Z", "hours": 1.6919, "text": "I am working on CLI system for giving input to the app As of now I have added a couple of features like updatevelocity, applyforce, setgravity and exit I did not do a commit yet I will do it in the next session I will add more features into it and I currently I am adding a way to get some information from the app which I will tell about in the next devlog"}, {"post_id": 64476, "ts": "2026-09-08T22:03:44Z", "hours": 3.2383, "text": "AAAAAGHHHHHHHHHHH MY HANDDD all i did was some exercise and since then my hand hurts very bad which is why I can type properly just a bit of weird movement and it feels like its going to fall off soo i am gonna tell whatever I have done till now I am done with the physics and collision and now I need to make a CLI for user to do things For that at first I was going to pause the physics and then let the user enter but then I found out about threads Basically when we code everything happens in a straight manner like one step at a time, imagine this like a single assembly line for producing things. Now that I use thread I can do multiple tasks without having to stop the other task which is why I wont have to stop the physics process this is like having two assembly lines (i am not sure what that analogy means but I dont have a proper example , basically I can do things alongside other things without having to pause) Noww next devlog when I add something new and my hand gets better cya!!!"}, {"post_id": 62455, "ts": "2026-09-05T20:10:02Z", "hours": 5.5081, "text": "Dayum today’s time is kinda long cuz i was being a dumdum What happened was since in a physics system we have the graphics, collision and physics so I thought of making different classes which was not a good choice so I spent a REALLLLLLLLYYYYYYYYYYYYYYY long time making those classes and since I wanted it to be inherited the system got really messy and I just kept getting error and errors. So, I stopped and now I am no longer fighting for my life. But then I spent some time making the wall collision a bit better, I improved the logic and also the way positioning happens in it and now the collision is extremely smooth and good looking and it no longer overlaps. After that worked I added gravity which was simple unless you are like me who spent a lot of time but the solution was just one line away. I just had to decrease velocity as per gravity * dt because gravity is second derivative but I kinda tried to mix things and update the velocity and position as the same time. I also added a reference to delta time in main class this way the delta time stays consistent Now I am gonna add a position correction system for object to object collision and then I will be more than 60% done with my project (or so I hope)"}, {"post_id": 60217, "ts": "2026-09-02T13:27:42Z", "hours": 2.6572, "text": "Soo the COLLISION SYSTEM IS COMPLETE I can finally start working on the physics it could be easy I think. As for collision I followed this document: collision reponse Oh wait I need to add collision response for boxes as well I JUST REMMEBERED THIS AS I WAS WRITING THIS DEVLOG I am more cooked than the food when I cook it"}, {"post_id": 58347, "ts": "2026-08-30T18:51:40Z", "hours": 1.305, "text": "the collision system i am starting to understand it now well i cant really explain much in this session sooo i will explain everything in one go after this is done"}, {"post_id": 56906, "ts": "2026-08-28T22:28:07Z", "hours": 0.8483, "text": "for some reason i have been using things that need x and y components as different variables which i dont know why i was doing so i shrinked(if thats a word) them and joined everything info sf::vector2f other than that i spent the time trying to implement things that i did not properly understood gonna spend some time studying a bit better"}, {"post_id": 56282, "ts": "2026-08-27T23:57:28Z", "hours": 0.6497, "text": "well didnt do much today got busy here n there today i finally implemented the functions and classes and they are working smoothly rn, at first i did run into some weird errors which i fixed now i am gonna work on adding object to object collision now that i am done with the regular collision."}, {"post_id": 55503, "ts": "2026-08-27T12:05:55Z", "hours": 1.4981, "text": "I added header files and seperated things to make them cleaner to look at i havent updated the code to work with the headers they are seperate now but I will change it later uhh i forgot what else i had done cuz my hackatime was not working"}, {"post_id": 54752, "ts": "2026-08-25T20:53:12Z", "hours": 1.4792, "text": "MY EXAMS ARE OVERRRRRRRR and now im back on work and I will try to do a devlog almost everyday. I have been working on making the collision system for now i worked with the borders each time I will run into some problem like velocity being updated each frame time after it collides or getting garbage values because I forgot to initialize the variables. Now they are fixed and now I will work on implementing collsion with other physics objects and before that I noticed that the circle will sometimes do slightly behind the border which is what I will fix."}, {"post_id": 53307, "ts": "2026-08-23T19:33:54Z", "hours": 3.2986, "text": "Soo the last time I wrote the code everything was messy and since I had done not so much work I thought of doing everything from the beginning. So I did and this also helped me to understand and improve everything by making the code a bit cleaner and making some functions and classes I also made a struct vector for storing information of the entities. For now I am working on adding only when the objects are circles also since I am implementing only the translation for now thats why I dont think someone will be bothered by not having rotation cuz they probably wont notice any."}, {"post_id": 49952, "ts": "2026-08-18T22:58:51Z", "hours": 0.9917, "text": "I couldnt do much today my exams are going on. But I made some changes to the coordinate system before this the +Y was going downwards now it is upwards Now I have a better grid system such that every coordinate is positive and I wont have to deal with negative numbers"}, {"post_id": 49277, "ts": "2026-08-17T23:56:26Z", "hours": 1.3111, "text": "Soo I realised that making new shapes gets kinda lengthy sometimes so I added a class an object that will help me make a new shape Also before I make anything related to translation and collision I will have to design the grid system I am still thinking of how I should implement the grid and where I should keep the origin Also I specified a fixed size of the window and including the border it is 840x640 pixels and without the border it is 800x600 pixels"}, {"post_id": 48524, "ts": "2026-08-16T22:48:37Z", "hours": 1.5619, "text": "Soo I just started making things and I have never really used a graphics library before so I spent quite a lot of time learning about how I am supposed to be using this library Things went good and it was actually pretty easy to get used to From tomorrow I think I will probably work on implementing movement first or collision first……we will see"}]...
|
Title: Basic2DP by @VEX | Stardance
Devlogs:
Soo Title: Basic2DP by @VEX | Stardance
Devlogs:
Soo I just started making things and I have never really used a graphics library before so I spent quite a lot of time learning about how I am supposed to be using this library Things went good and it was actually pretty easy to get used to From tomorrow I think I will probably work on implementing movement first or collision first……we will see
Soo I realised that making new shapes gets kinda lengthy sometimes so I added a class an object that will help me make a new shape Also before I make anything related to translation and collision I will have to design the grid system I am still thinking of how I should implement the grid and where I should keep the origin Also I specified a fixed size of the window and including the border it is 840x640 pixels and without the border it is 800x600 pixels
I couldnt do much today my exams are going on. But I made some changes to the coordinate system before this the +Y was going downwards now it is upwards Now I have a better grid system such that every coordinate is positive and I wont have to deal with negative numbers
Soo the last time I wrote the code everything was messy and since I had done not so much work I thought of doing everything from the beginning. So I did and this also helped me to understand and improve everything by making the code a bit cleaner and making some functions and classes I also made a struct vector for storing information of the entities. For now I am working on adding only when the objects are circles also since I am implementing only the translation for now thats why I dont think someone will be bothered by not having rotation cuz they probably wont notice any.
MY EXAMS ARE OVERRRRRRRR and now im back on work and I will try to do a devlog almost everyday. I have been working on making the collision system for now i worked with the borders each time I will run into some problem like velocity being updated each frame time after it collides or getting garbage values because I forgot to initialize the variables. Now they are fixed and now I will work on implementing collsion with other physics objects and before that I noticed that the circle will sometimes do slightly behind the border which is what I will fix.
I added header files and seperated things to make them cleaner to look at i havent updated the code to work with the headers they are seperate now but I will change it later uhh i forgot what else i had done cuz my hackatime was not working
well didnt do much today got busy here n there today i finally implemented the functions and classes and they are working smoothly rn, at first i did run into some weird errors which i fixed now i am gonna work on adding object to object collision now that i am done with the regular collision.
for some reason i have been using things that need x and y components as different variables which i dont know why i was doing so i shrinked(if thats a word) them and joined everything info sf::vector2f other than that i spent the time trying to implement things that i did not properly understood gonna spend some time studying a bit better
the collision system i am starting to understand it now well i cant really explain much in this session sooo i will explain everything in one go after this is done
Soo the COLLISION SYSTEM IS COMPLETE I can finally start working on the physics it could be easy I think. As for collision I followed this document: collision reponse Oh wait I need to add collision response for boxes as well I JUST REMMEBERED THIS AS I WAS WRITING THIS DEVLOG I am more cooked than the food when I cook it
Dayum today’s time is kinda long cuz i was being a dumdum What happened was since in a physics system we have the graphics, collision and physics so I thought of making different classes which was not a good choice so I spent a REALLLLLLLLYYYYYYYYYYYYYYY long time making those classes and since I wanted it to be inherited the system got really messy and I just kept getting error and errors. So, I stopped and now I am no longer fighting for my life. But then I spent some time making the wall collision a bit better, I improved the logic and also the way positioning happens in it and now the collision is extremely smooth and good looking and it no longer overlaps. After that worked I added gravity which was simple unless you are like me who spent a lot of time but the solution was just one line away. I just had to decrease velocity as per gravity * dt because gravity is second derivative but I kinda tried to mix things and update the velocity and position as the same time. I also added a reference to delta time in main class this way the delta time stays consistent Now I am gonna add a position correction system for object to object collision and then I will be more than 60% done with my project (or so I hope)
AAAAAGHHHHHHHHHHH MY HANDDD all i did was some exercise and since then my hand hurts very bad which is why I can type properly just a bit of weird movement and it feels like its going to fall off soo i am gonna tell whatever I have done till now I am done with the physics and collision and now I need to make a CLI for user to do things For that at first I was going to pause the physics and then let the user enter but then I found out about threads Basically when we code everything happens in a straight manner like one step at a time, imagine this like a single assembly line for producing things. Now that I use thread I can do multiple tasks without having to stop the other task which is why I wont have to stop the physics process this is like having two assembly lines (i am not sure what that analogy means but I dont have a proper example , basically I can do things alongside other things without having to pause) Noww next devlog when I add something new and my hand gets better cya!!!
I am working on CLI system for giving input to the app As of now I have added a couple of features like updatevelocity, applyforce, setgravity and exit I did not do a commit yet I will do it in the next session I will add more features into it and I currently I am adding a way to get some information from the app which I will tell about in the next devlog
Hmmmmmmmmmmm I did a lot of work today and my code looks very messy now and I am not even sure if it is messy or if it is supposed to look like this Well today I completed the CLI for my physics engine and even added themes so u can customize can look. Damn I thought I did a lot of work and now I cant even remember a single thing that I did Well I do know what I will be doing now I will add a way to save the theme in device at a specific folder this way if u make any theme and close the theme u will still be able to access the previously made theme and u wont have to make it again After that I will give it finishing touches and then README and then make a static version of this app then import then ship 🚢
sooooo i did a lot of things i completed the input method by taking information by getline() and parsing it and storing each infomation in a vector then it is decided what should be done by checking what is in vector at 0 index i also finished the option for themes and i also added some premade theme to have something to work it and u can even add you own themes. uhhhhh what else did i do…. yes decoration the terminal by default has white text and quickly it starts looking terrible and messy so what i did was i gave the text some colour now it is a bit more cleaner to navigate between different portions in terminal. i am gonna work on making the app capable of being exported and also add some small things here n there also yea the readme as well
IT IS FINALLY DONE AAAAAGHHHHHHHH I AM READY TO SHIP THE PROJECT before that lets see what else I did all this time. I made the readme and made minor changes to the code to improve the program like adding a ‘help’ command to get quick help Also to get a proper guide on how things work I added a readme.html in folder of executable so the terminal doesnt feel very cluttered
Ships:
I made a 2D physics engine which I named as Basic2DP (Basic 2 dimensional physics). It was made in C++ and uses SFML library for drawing the graphics. As for me he most challenging part was learning the actual math and physics to apply in the program. other than this the difficult part was keeping a track of code I often forget what I am supposed to do at what places :P. I am really proud of the fact that it is maybe the first project I have ever made that is this big I even had really fun in making it specially the theme feature was the most fun to work it for some reason, definitely enjoyed it and definitely learned a lot. If you are going to use this project then u can get it from the release section of my github repo but make sure to have 64bit windows and do not remove any of the dll files. Well thats all hope ya like this project :D...
|
1793004624.8109953
|
1793091024.8109953
|
|
56270
|
ProjectGen - Powered by HackAI by @fanouriakisharr ProjectGen - Powered by HackAI by @fanouriakisharry | Stardance...
|
fanouriakisharry
|
1
|
19.94
|
293
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T19:43:06Z", "hours": 19.0, "multiplier": 15.43, "payout": 293, "blessing": "neutral", "text": "ProjectGen - AI Powered Project Idea Generator Hey there! I’ve had the idea to build this for a while, and I finally did it! ProjectGen is a desktop app, coded in Python and packaged both for mac and windows using Pyinstaller . In simple words, it’s an app powered by artificial intelligence, that can generate your next project ideas tailored to your exact requirements (project type, time, budget, difficulty level, etc.). It’s built to solve a specific problem I, and I’m sure all other tinkerers have: we have this feeling that we wanna start a new project, but have no idea what, and when we finally land on a specific idea, we often realize that we don’t have the right components, enough time, or the budget to actually build it. It is powered using HackAI, HackClub’s own free LLM API, and using gemini-3.8-flash as the model. How it works! When you open the app, you are met with the main screen, which features separate entry boxes and dropdown menus for the project type (software or hardware), difficulty level, available components if it’s a hardware project, and programming language if it’s software. There are also input fields for the time you can devote and your budget for the project. Oh, something I forgot to mention is that there’s an upload image button for the components, to avoid the hassle of having to type each and every one of your parts manually, and just upload an image of your components drawer. When you click “Generate ideas!”, after some time, 5 ideas will show up. Each one of those ideas has a “Build this!” button under it, that once pressed, generates a complete build guide for the specific project, covering everything you’ll need to build it yourself (overview, parts, wiring, code, instructions, etc.). What was challenging? The biggest challenge for this project, was probably packaging everything. The macOS dock icon constantly refused to work properly, because when I was launching the app, it would show the actual app icon for half a second and then switch to the deafult ttkbootstrap icon. Eventually, after asking AI, I ended up using PyObjC to keep re-applying the icon every 500ms while the app was running. Since I’m developing on a Mac, I also couldn’t build the Windows .exe myself on my computer, so I used GitHub Actions and a workflow written by ChatGpt to build it for me. I then created a Windows VM using UTM to make sure the .exe actually worked properly. What I’m happy with! I genuinely feel pretty happy with how the finished app turned out, especially considering how it started as a 70-line terminal-based Python script that only worked through VS code, and evolved into a proper packaged app that people can download and use without even needing Python installed. I’m also really happy with the component image upload feature, cause it just saves so much time! Instead of having to manually type out each one of the components you have, you can just take a picture of your components drawer and let the AI figure out what you have. How can you test it? Windows release: https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0_Windows Extract the ZIP file and run ProjectGen.exe . MacOS release: https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0 When you double click to open the app, it will refuse saying that Apple can’t verify it doesn’t contain malware. Go to Settings, then click Privacy & Security, scroll down, find the section about ProjectGen and click “Open anyway”.", "repo": "https://github.com/HarFProFour12/projectgen", "demo": "https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0"}]...
|
[{"post_id": 79303, "ts": "202 [{"post_id": 79303, "ts": "2026-10-13T13:10:49Z", "hours": 0.3097, "text": "Added back the API key dialog, so the app uses the user’s key, instead of leaking mine."}, {"post_id": 74851, "ts": "2026-09-28T13:20:20Z", "hours": 0.6281, "text": "Updated the github releases (both for Windows and MacOS), so the app runs straight out the box without needing the user to input their own api key. This was done upon request from the Shipwrights."}, {"post_id": 71185, "ts": "2026-09-20T12:35:23Z", "hours": 4.4536, "text": "Devlog #7: Packaging the app and shipping! Heyy there! Continuing from what I said on the next devlog, what I did today was finally turn ProjectGen into an actual app that people can download and run on their pc instead of just through VS code, as well as add some new features. Then, I used PyInstaller to package everything into a proper macOS .app , including the fonts and icon. The biggest problem I ran into was the dock icon not working for some reason. My actual ProjectGen icon would appear for half a second before default ttkbootstrap icon would take its place. After asking AI to help me find a solution, I ended up using PyObjC to keep re-applying my icon while the app is running, which sometimes works and sometimes just doesn’t, but I decided not to give it too much attention. Since, I am on mac, I couldn’t locally create the .exe file using pyinstaller , so I used Github Actions plus a script Chatgpt wrote to create it from there. Then I set up a windows vm in UTM, to check if the .exe file works properly. Thankfully it does, so that’s great! Other than that, there were some errosr with indentation and syntax, which I easily fixed. Finally, I made a .gitignore , added requirements.txt , uploaded everything to GitHub, and uploaded the packaged .app as a github release so people can download and run ProjectGen without needing Python or VS Code installed. I used AI a lot in this step, because the icon issue was driving me insane and also to create help create the Windows app. That’s it for now, see you on the next devlog!"}, {"post_id": 66790, "ts": "2026-09-12T17:52:31Z", "hours": 1.9661, "text": "Devlog #6: Photo upload for the components + copy code button! Hey there! Following up on what I said in the last devlog, what I did today what add a way to uplaod a photo of your components drawer instead of typing each componetn manually. There’s nwo an “or” and an “upload image” button right next to the components field, so the user can pick whichever way is more convenient for them. I used base64 to then encode the image and send it to the AI along with the rest of the prompt, along with some extra instructions. When an image is picked, the components field just shows “Image uploaded” so the user can tell the AI will be looking at the photo instead of reading from the entry field, plus I added a red X button next to the upload button so the user can cancel it to pick another image or use txet instead. Other than that, I also added a “Copy code” button to the build guide’s code section, so you don’t have to manually select text out of the text box anymore to copy it. Later, I found out that command=self._copy_code(code) doesn’t work the way it looks like it would, since the parentheses call the function immediately instead of waiting for a the button to be cliced. To solve that, I wrapped it in a lambda function so it only runs when the button’s actually pressed. I used AI to create the new prompt for the image upload and also to help me understand some errors the terminal was showing. That’s for now, see you on the next devlog!"}, {"post_id": 65299, "ts": "2026-09-10T10:41:54Z", "hours": 2.8261, "text": "Devlog #5: Build guide screen, project types, and caching! Heyyy! I’ve been putting off writing this devlog, since there’s a lot off stuff I need to talk about. So, picking up from where I left off in devlog #4, since I said I’d give the build guide it’s own screen and fix the colors, that’s mostly what this devlog is about. The build guide now renders as a seperate screen with seperate sections (Overview, Components, Wiring, Build Steps, Code), pulled from the AI call that returns structured json. I also fixed the fact that the build guide screen was using a blue theme instead of my olive green one, which was because I was using bootstyle=\"primary\" that pulls from ttkbootstrap ’s default theme instead of my custom styles. I also added a project type dropdown in the beginning of the home screen, so the user can choose whether they want a hardware or a software project. Picking software, hides the budget field (since software projects are mostly free), and relabels the components field to programming language. I fixed another annoying bug where clicking “Build this!” twice on the same project, re-called the AI every time, instead of using the old response. To fix tat, I added a small cache keyed my project name, so if it detects that the build button has already been pressed for the specific project, it displays the old instructions instead of creating new ones every time. I also fixed a small bug with the “Back to ideas” button and debugged some typos. Next time, I’m thinking of letting users upload a photo of their components drawer and having the AI think of ideas using those components. That’s it for now, see you on the next devlog!"}, {"post_id": 63443, "ts": "2026-09-07T09:17:41Z", "hours": 3.5797, "text": "Devlog #4: Moving to ttkbootstrap + adding a “Build this!“button Heyyyy! I was gonna write this devlog yesterday, but it was getting kinda late, so I decided to do it toady. So here’s what’s new: First of all, I switched the app over from plain tkinter widgets to ttkbootstrap , to basically just make things easier. Before, the “Generate ideas!” button was just a label pretending to be a button, with custom hover colors and click bindings, because MacOS (my operating system) was applying an ugly outdated gray/silverish button with no styling, and I wasn’t able to change it. The switch was relatively smooth, since for most commands, I just had to change the prefix from tk. to tb. Only problem was that these new widgets don’t take bg= / fg= like my previous ones did, so I had to define named styled in the beginning instead. I also added a difficulty field in the beginning, so the user can control the difficulty level of the project ideas, and also a progress bar along with the cycling messages, so the user actually knows when the Ai is thinking. I also gave each card a “Build this! button, which once pressed, sends another prompt to the ai asking for a full guide, including components, wiring, build instructions, and code if needed. I ran into some errors along the way, mostly typos, which I debugged with the help of Ai. Next time I’ll give the build guide it’s own screen instead of sitting underneath the entry fields, and make the colors of the app consistent between all the screens. That’s it for now, see you on the next devlog!"}, {"post_id": 62750, "ts": "2026-09-06T08:23:14Z", "hours": 3.7319, "text": "Devlog #3: Displaying each idea in it’s own dedicated card Hey there! Today, I switched from dumping all he project ideas the AI gave me into one big ScrolledText box, since just a wall of text with no specific layout or format isn’t excactly great UX. The main thing I changed, was swapping the text box with a scrollable list of widgets (boxes), with each widget having its own colored background, border, a Label for the project name, one for the description and the extra components and lastly one for the time and cost to make. Since tkinter frames don’t scroll by default, I had to create a seperate canvas with a scrollbar bound to it and the cards embedded inside it. Because cards are real widgets now instead of just plain text you can use .delete() , when the user clicked the button again to regenerate ideas, it also had to clean up the previous cards before drawing the new ones, since otherwise all the ideas would just pile up one after the other. I ran into quite some bugs along the way, such as small syntax errors and typos, which I used AI to help me debug. Next time I’ll probably add some buttons for each card, such as a “copy idea” or a “build this one” button. That’s it for now, see you on the next devlog!"}, {"post_id": 59863, "ts": "2026-09-01T20:51:27Z", "hours": 1.5997, "text": "Devlog #2: Transferring project to tkinter ! Today I moved the project from a terminal-based script to an actual GUI using the tkinter library, since typing into input() prompts and just reading a wall of terminal text isn’t exactly a great user experience. The main structure translated pretty easily: text boxes (entry widgets) for components, hours and budget, a “Generate Ideas!” button and an output area for the results. The most difficult part was keeping the window responsive: calling the AI API directly would freeze the whole window until the response came back, so the request now runs in the background, with the result handed back to the main thread safely using root.after(). I used the same rotating status messages from the terminal version (“Brainstorming…”, “Thinking”, etc.), which now update live in the GUI while it waits. Because this was my first time using tkinter , I used Claude to get me up to speed with the core concepts (widgets, entries, `.pack(), etc.). Once I wrote the code, I also used it to help me debug it. Next time I’m probably gonna make the ai output structures json so I can display each project idea in it’s own “card”, and generally work in making the GUI look prettier. That’s it for today, see you on the next devlog!"}, {"post_id": 59186, "ts": "2026-08-31T20:42:01Z", "hours": 0.8419, "text": "Devlog #1: Coding MVP Hey there! First devlog for this project! So the idea of this project is that you write what components you have, how much time you can devote and what your budget is, and AI brainstorms 5 different project ideas you can make that fit those criteria. The project is coded in Python. First, I generated a new API key from HackAi to use as the brain, and integrated it. Then I wrote 1 master prompt which gets sent to the AI every time and includes the info the user has given (components, time available, budget), along with instructions on what format to return each idea in (name, description, extra components needed, cost, and time estimate). I used the rich library to make the terminal output look prettier: rendering the AI’s response as formatted markdown instead of plain text, adding colors and even a colored spinner along with some phrases (such as thinking... , brainstorming... , ect.) so the user knows somethings is happening instead of just guessing if the program has frozen or not. I used AI to help make the prompt and debug. Next up: I’ll probably switch to Tkinter to give it an actual GUI instead of a terminal prompt. Probably gonna have text boxes for components/time/budget, a “Generate Ideas” button, and each idea shown in its own card instead of one long markdown dump. Follow along to see how it turns out!"}]...
|
Title: ProjectGen - Powered by HackAI by @fanouria Title: ProjectGen - Powered by HackAI by @fanouriakisharry | Stardance
Devlogs:
Devlog #1: Coding MVP Hey there! First devlog for this project! So the idea of this project is that you write what components you have, how much time you can devote and what your budget is, and AI brainstorms 5 different project ideas you can make that fit those criteria. The project is coded in Python. First, I generated a new API key from HackAi to use as the brain, and integrated it. Then I wrote 1 master prompt which gets sent to the AI every time and includes the info the user has given (components, time available, budget), along with instructions on what format to return each idea in (name, description, extra components needed, cost, and time estimate). I used the rich library to make the terminal output look prettier: rendering the AI’s response as formatted markdown instead of plain text, adding colors and even a colored spinner along with some phrases (such as thinking... , brainstorming... , ect.) so the user knows somethings is happening instead of just guessing if the program has frozen or not. I used AI to help make the prompt and debug. Next up: I’ll probably switch to Tkinter to give it an actual GUI instead of a terminal prompt. Probably gonna have text boxes for components/time/budget, a “Generate Ideas” button, and each idea shown in its own card instead of one long markdown dump. Follow along to see how it turns out!
Devlog #2: Transferring project to tkinter ! Today I moved the project from a terminal-based script to an actual GUI using the tkinter library, since typing into input() prompts and just reading a wall of terminal text isn’t exactly a great user experience. The main structure translated pretty easily: text boxes (entry widgets) for components, hours and budget, a “Generate Ideas!” button and an output area for the results. The most difficult part was keeping the window responsive: calling the AI API directly would freeze the whole window until the response came back, so the request now runs in the background, with the result handed back to the main thread safely using root.after(). I used the same rotating status messages from the terminal version (“Brainstorming…”, “Thinking”, etc.), which now update live in the GUI while it waits. Because this was my first time using tkinter , I used Claude to get me up to speed with the core concepts (widgets, entries, `.pack(), etc.). Once I wrote the code, I also used it to help me debug it. Next time I’m probably gonna make the ai output structures json so I can display each project idea in it’s own “card”, and generally work in making the GUI look prettier. That’s it for today, see you on the next devlog!
Devlog #3: Displaying each idea in it’s own dedicated card Hey there! Today, I switched from dumping all he project ideas the AI gave me into one big ScrolledText box, since just a wall of text with no specific layout or format isn’t excactly great UX. The main thing I changed, was swapping the text box with a scrollable list of widgets (boxes), with each widget having its own colored background, border, a Label for the project name, one for the description and the extra components and lastly one for the time and cost to make. Since tkinter frames don’t scroll by default, I had to create a seperate canvas with a scrollbar bound to it and the cards embedded inside it. Because cards are real widgets now instead of just plain text you can use .delete() , when the user clicked the button again to regenerate ideas, it also had to clean up the previous cards before drawing the new ones, since otherwise all the ideas would just pile up one after the other. I ran into quite some bugs along the way, such as small syntax errors and typos, which I used AI to help me debug. Next time I’ll probably add some buttons for each card, such as a “copy idea” or a “build this one” button. That’s it for now, see you on the next devlog!
Devlog #4: Moving to ttkbootstrap + adding a “Build this!“button Heyyyy! I was gonna write this devlog yesterday, but it was getting kinda late, so I decided to do it toady. So here’s what’s new: First of all, I switched the app over from plain tkinter widgets to ttkbootstrap , to basically just make things easier. Before, the “Generate ideas!” button was just a label pretending to be a button, with custom hover colors and click bindings, because MacOS (my operating system) was applying an ugly outdated gray/silverish button with no styling, and I wasn’t able to change it. The switch was relatively smooth, since for most commands, I just had to change the prefix from tk. to tb. Only problem was that these new widgets don’t take bg= / fg= like my previous ones did, so I had to define named styled in the beginning instead. I also added a difficulty field in the beginning, so the user can control the difficulty level of the project ideas, and also a progress bar along with the cycling messages, so the user actually knows when the Ai is thinking. I also gave each card a “Build this! button, which once pressed, sends another prompt to the ai asking for a full guide, including components, wiring, build instructions, and code if needed. I ran into some errors along the way, mostly typos, which I debugged with the help of Ai. Next time I’ll give the build guide it’s own screen instead of sitting underneath the entry fields, and make the colors of the app consistent between all the screens. That’s it for now, see you on the next devlog!
Devlog #5: Build guide screen, project types, and caching! Heyyy! I’ve been putting off writing this devlog, since there’s a lot off stuff I need to talk about. So, picking up from where I left off in devlog #4, since I said I’d give the build guide it’s own screen and fix the colors, that’s mostly what this devlog is about. The build guide now renders as a seperate screen with seperate sections (Overview, Components, Wiring, Build Steps, Code), pulled from the AI call that returns structured json. I also fixed the fact that the build guide screen was using a blue theme instead of my olive green one, which was because I was using bootstyle="primary" that pulls from ttkbootstrap ’s default theme instead of my custom styles. I also added a project type dropdown in the beginning of the home screen, so the user can choose whether they want a hardware or a software project. Picking software, hides the budget field (since software projects are mostly free), and relabels the components field to programming language. I fixed another annoying bug where clicking “Build this!” twice on the same project, re-called the AI every time, instead of using the old response. To fix tat, I added a small cache keyed my project name, so if it detects that the build button has already been pressed for the specific project, it displays the old instructions instead of creating new ones every time. I also fixed a small bug with the “Back to ideas” button and debugged some typos. Next time, I’m thinking of letting users upload a photo of their components drawer and having the AI think of ideas using those components. That’s it for now, see you on the next devlog!
Devlog #6: Photo upload for the components + copy code button! Hey there! Following up on what I said in the last devlog, what I did today what add a way to uplaod a photo of your components drawer instead of typing each componetn manually. There’s nwo an “or” and an “upload image” button right next to the components field, so the user can pick whichever way is more convenient for them. I used base64 to then encode the image and send it to the AI along with the rest of the prompt, along with some extra instructions. When an image is picked, the components field just shows “Image uploaded” so the user can tell the AI will be looking at the photo instead of reading from the entry field, plus I added a red X button next to the upload button so the user can cancel it to pick another image or use txet instead. Other than that, I also added a “Copy code” button to the build guide’s code section, so you don’t have to manually select text out of the text box anymore to copy it. Later, I found out that command=self._copy_code(code) doesn’t work the way it looks like it would, since the parentheses call the function immediately instead of waiting for a the button to be cliced. To solve that, I wrapped it in a lambda function so it only runs when the button’s actually pressed. I used AI to create the new prompt for the image upload and also to help me understand some errors the terminal was showing. That’s for now, see you on the next devlog!
Devlog #7: Packaging the app and shipping! Heyy there! Continuing from what I said on the next devlog, what I did today was finally turn ProjectGen into an actual app that people can download and run on their pc instead of just through VS code, as well as add some new features. Then, I used PyInstaller to package everything into a proper macOS .app , including the fonts and icon. The biggest problem I ran into was the dock icon not working for some reason. My actual ProjectGen icon would appear for half a second before default ttkbootstrap icon would take its place. After asking AI to help me find a solution, I ended up using PyObjC to keep re-applying my icon while the app is running, which sometimes works and sometimes just doesn’t, but I decided not to give it too much attention. Since, I am on mac, I couldn’t locally create the .exe file using pyinstaller , so I used Github Actions plus a script Chatgpt wrote to create it from there. Then I set up a windows vm in UTM, to check if the .exe file works properly. Thankfully it does, so that’s great! Other than that, there were some errosr with indentation and syntax, which I easily fixed. Finally, I made a .gitignore , added requirements.txt , uploaded everything to GitHub, and uploaded the packaged .app as a github release so people can download and run ProjectGen without needing Python or VS Code installed. I used AI a lot in this step, because the icon issue was driving me insane and also to create help create the Windows app. That’s it for now, see you on the next devlog!
Updated the github releases (both for Windows and MacOS), so the app runs straight out the box without needing the user to input their own api key. This was done upon request from the Shipwrights.
Added back the API key dialog, so the app uses the user’s key, instead of leaking mine.
Ships:
ProjectGen - AI Powered Project Idea Generator Hey there! I’ve had the idea to build this for a while, and I finally did it! ProjectGen is a desktop app, coded in Python and packaged both for mac and windows using Pyinstaller . In simple words, it’s an app powered by artificial intelligence, that can generate your next project ideas tailored to your exact requirements (project type, time, budget, difficulty level, etc.). It’s built to solve a specific problem I, and I’m sure all other tinkerers have: we have this feeling that we wanna start a new project, but have no idea what, and when we finally land on a specific idea, we often realize that we don’t have the right components, enough time, or the budget to actually build it. It is powered using HackAI, HackClub’s own free LLM API, and using gemini-3.8-flash as the model. How it works! When you open the app, you are met with the main screen, which features separate entry boxes and dropdown menus for the project type (software or hardware), difficulty level, available components if it’s a hardware project, and programming language if it’s software. There are also input fields for the time you can devote and your budget for the project. Oh, something I forgot to mention is that there’s an upload image button for the components, to avoid the hassle of having to type each and every one of your parts manually, and just upload an image of your components drawer. When you click “Generate ideas!”, after some time, 5 ideas will show up. Each one of those ideas has a “Build this!” button under it, that once pressed, generates a complete build guide for the specific project, covering everything you’ll need to build it yourself (overview, parts, wiring, code, instructions, etc.). What was challenging? The biggest challenge for this project, was probably packaging everything. The macOS dock icon constantly refused to work properly, because when I was launching the app, it would show the actual app icon for half a second and then switch to the deafult ttkbootstrap icon. Eventually, after asking AI, I ended up using PyObjC to keep re-applying the icon every 500ms while the app was running. Since I’m developing on a Mac, I also couldn’t build the Windows .exe myself on my computer, so I used GitHub Actions and a workflow written by ChatGpt to build it for me. I then created a Windows VM using UTM to make sure the .exe actually worked properly. What I’m happy with! I genuinely feel pretty happy with how the finished app turned out, especially considering how it started as a 70-line terminal-based Python script that only worked through VS code, and evolved into a proper packaged app that people can download and use without even needing Python installed. I’m also really happy with the component image upload feature, cause it just saves so much time! Instead of having to manually type out each one of the components you have, you can just take a picture of your components drawer and let the AI figure out what you have. How can you test it? Windows release: https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0_Windows Extract the ZIP file and run ProjectGen.exe . MacOS release: https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0 When you double click to open the app, it will refuse saying that Apple can’t verify it doesn’t contain malware. Go to Settings, then click Privacy & Security, scroll down, find the section about ProjectGen and click “Open anyway”....
|
1793004835.7815561
|
1793091235.7815561
|
|
29364
|
Robot Swarm: The Simulation by @dubbyy | Stardance
|
dubbyy
|
1
|
18.0
|
292
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-16T23:30:09Z", "hours": 18.0, "multiplier": 16.53, "payout": 292, "blessing": "neutral", "text": "I made a simulation of a decentralized robot swarm I plan on building. The most fun and challenging part was designing the communication and interaction between the robots. I’d say figuring that out was the biggest benefit from this project and will help a lot with the real thing. Aside from that I tried to make it as realistic as I could with simulated signals and sensors and wheels etc. enjoy :>", "repo": "https://github.com/dubbyy1/swarm-sim", "demo": "https://github.com/dubbyy1/swarm-sim/releases/tag/v0.1.2"}]...
|
[{"post_id": 29817, "ts": "202 [{"post_id": 29817, "ts": "2026-07-16T23:14:26Z", "hours": 0.8231, "text": "DEVLOG 6 - CONTROL With the final addition of UI and controls, the simulation is now complete. While I could continue to add more detail and more realism, I think this is more than enough for what I set out to do. If you don’t know, I’ve been working on a simulation of a decentralised robot swarm that I plan to build soon. My goal was to recreate every relevant aspect of the real life robots, so I could explore how they would behave in different scenarios. It also allowed me to plan out how the robots are going to communicate in the real world. Changes UI The major addition of this update was the UI. You can now configure different aspects of the simulation to test the robots. Specifically the IR range, the noisiness of IR and UWB, the precision of the motors, the amount of IR receivers and emitters and of course the size of the swarm. As well as settings, you can now send formation commands to the swarm to dynamically change their formation. I also added a new REMOTE state that lets you select a robot and control it directly. Finally, you can toggle on and off different visual elements. Walls The addition of walls was the final piece to test my communication system. As I said in the last devlog, I designed it to accommodate for robots not always being able to see each other. Now, with the ability to block lines of sight, I can finally test it. Communication While messing with the controls I discovered a lot of oversights with the communication. One example is I was only establishing the network once when a new robot joined. This meant that even if the robots moved, they would still read from the old distance values when the formation changed, causing them to choose inefficient paths and in some cases get tangled or stuck. I fixed this by making them reestablish the network whenever the formation is changed. Findings To be completely honest, I didn’t discover that much that I didn’t already know. One thing that stood out was that the IR noise didn’t affect the formations as much as I thought it would. Outside of a few erratic movements, they remain fairly stable. The UWB noise had a much larger effect, as UWB is used to determine distance. The formations also hold with both sliders up to max which was reassuring."}, {"post_id": 29132, "ts": "2026-07-15T20:06:25Z", "hours": 2.3506, "text": "DEVLOG 5 - PERFECTION The simulation is now fully functional and perfect in a sense. The only thing left is adding noise for realism, and UI to make it interactive. Changes + Additions Drivetrain The robots now have simulated drivetrains. They are modeled off 3 wheel omnidrives, and allow them to convert their desired velocity into wheel speeds. This leaves room for me to manipulate the accuracy/precision of the wheels, to see how well the robots can adapt Formations The robots can now form a circle as well as a line. For the circle formation, the robots first find a suitable cyclical path through the swarm, and assign positions in the path. Next, they find where they should be in relation to their 2 neighbours based on a regular polygon of size n . I struggled a bit with this part because the robots couldn’t consistently tell which way to go, and would sometimes bend inwards towards the center of the circle instead of out. I fixed this by making them take all visible robots into account not just the closest 2. This allowed them to find which direction the center of the swarm was in, and they choose the position furthest from that center as their target. Optimization The algorithm the robots used to find the most efficient path through the swarm would was causing the simulation to freeze, or even crash with larger swarms. This is because the robots were checking every possible path , the amount of which grows exponentially as the swarm’s size increases. To solve this, instead of checking every path they now build a chain from each potential starting point and choose the shortest one. They first pick a starting point, A . robot can see B and C , but C is closer so C is added to the chain. Robot C can see A and B , but A is already in the chain, so B is added making the final order ACB . This removes the delay entirely allowing it to run comfortably on ESP32, at the cost of finding slightly worse paths in very rare cases. What’s Next With the core functionality in place, the next Devlog will likely be the last before I ship the project. I want to add UI and controls to the simulation, to make it more interactive. This will allow me to stress test the swarm in lots of different scenarios. A feature I’m particularly looking forward to is walls . The reason designing the communication took so long is because I had to account for cases where all the robots couldn’t see each other. Adding walls will let me see if the system works in practice."}, {"post_id": 24958, "ts": "2026-07-08T20:55:19Z", "hours": 7.1453, "text": "DEVLOG 4 - COMMUNICATION 1 full rewrite later, and the robots can form a line again, but better this time! When I started this project I didn’t have a clear vision of how it was going to work. At a certain point, it became very hard to add improvements to the simulation, because it was built on such a shaky foundation. The new version is cleaner and more organised, as well as being more realistic. Changes Signals Instead of solely relying on IR for angle, distance and communication, it’s now split between IR, UWB and WiFi. IR and UWB now only transmit tiny signals for detecting each other. All the heavy communication and networking is done over WiFi. Communication I overhauled the flow of communication between the robots. When each robot is turned on, it sends out a message attempting to establish a network. This message contains what other robots it can see, and who goes next. The robots take turns, keeping track of who has already spoken and building the network. By the end, they all have a shared map of who can see who, which they use for formations, and the last robot to speak is designated the temporary leader. I had to make the robots take turns to avoid the signals interfering with each other. Next I added a controller class to tell the robots when to change formation. When the robots hear this signal, the leader uses the network to find the most optimal line from the current positions. It then broadcasts this signal to the rest of the swarm, and they enter motion. What’s Next Right now, the robots never fully settle in a line, they continue to oscillate for a long time. The position estimates (magenta dots) are also quite far off from reality. Right now, the simulation is still ‘perfect’ in the sense that there is no noise or interference. When I start adding noise, these problems are only going to get worse. To combat this, in the next update I plan on implementing more techniques to make the estimates accurate. I also want to add more formations, to test how fast they can alternate, as my goal with this whole project is speed and precision. Video: Big circles are robots, red dots are IR LEDs, blue dots are IR receivers. Thin green lines are lines of sight, thick lines represent the intended path. Magenta dots are where the highlighted robot believes other robots are located"}, {"post_id": 22479, "ts": "2026-07-04T23:18:11Z", "hours": 1.7533, "text": "DEVLOG 3 - GRAPHS After a lot of thinking, I decided to base the new line algorithm on graphs. High level process: Robots negotiate shape of the physical network (who can see who). Robots search for a Hamiltonian path through the network. If there is none, they use the path that connects the most robots. Robots at the end of the path move inwards, internal robots move to the midpoint between their two neighbours. Robots outside the path move inwards until they are connected, and the path is reevaluated to include them. I like this method, because it avoids gossiping position information which is susceptible to noise. This also means that once the path is decided, the robots only need to rely on what they can see with their IR receivers. The Problem While I was implementing this solution, I realised how much data I was transmitting. Each packet contained a full JSON representation of the network, alongside IDs, timestamps, etc. Although this could be compressed in the final version, it’s still too much data if I want to reliable real time communication. This means instead of purely IR, I also need to make use of the ESP32’s builtin radio. Despite it seeming more complex at first, it actually makes everything a lot simpler. With the integration of radio, the robots can now hear as well as see. Instead of passing information between robots, they can simply broadcast it globally, making negotiation much faster. I’ll go into more detail about the specific implementation in the next devlog, but that’s the update for now. No visual changes right now because the code doesn’t run, but hopefully by tomorrow they should be able to form lines"}, {"post_id": 21837, "ts": "2026-07-03T23:40:57Z", "hours": 1.1108, "text": "DEVLOG 2 - SENSORS Ok this is a lot harder than I thought it would be. Today I added IR transmitters and receivers to my robot swarm simulation, to bring it closer to reality. Now the robots only receive signals they can actually see, and compare the signal strengths across the receivers to get the direction of the source. This is great, but now I have a big problem. With line-of-sight added, it’s possible for a robot not to be able to see the whole swarm. This means if they try to form a line, they can’t agree on how to do it. Negotiation To solve this, the robots need to distribute information throughout the swarm and agree on a formation, in a process called negotiation. There are a few ways to do this with varying levels of complexity, and I’m still doing research, so I won’t go into detail in this devlog. Whatever method I choose, I need to make sure it will work in real life with imperfect signals, and it can adapt to the swarm losing members. Notes I haven’t changed too much since the last devlog, but I felt like I should post this as context so the next one isn’t super long. AI Declaration: I used AI to help with implementing the emitters/receivers (occlusion, field of view, some helper functions etc.) RED = Emitter BLUE = Receiver"}, {"post_id": 21211, "ts": "2026-07-03T01:04:06Z", "hours": 4.8481, "text": "DEVLOG 1 - LINE My goal is to make a fully decentralized robot swarm, fast and precise enough to form complex patterns, which to my knowledge has never been done before. Before I make the physical robots however, I want to simulate them. How it works Communication All the robots communicate via an external Network class that passes messages between the robots. Because I’m trying to simulate real IR emitters and receivers, the only information the network gives is the distance and direction of the signal. Every tick, the robots emit a heartbeat-like signal to their peers, and use the signals they receive to construct an internal map of the swarm. Formation Once they know where their neighbours are they can start moving in formation. Initially, I had them organise in a line from 0-4. This worked but it was very slow, because they would go to spots that were further away than necessary. After spending some time working it out on a whiteboard (and consulting chatgpt), I decided on a new method. Using their internal map, they find the 2 robots with the largest distance between them and this becomes the line they use. They then compare every robot’s distance from the start of the line to determine the order, and move to their assigned point on the line. With this new algorithm, they can arrange themselves a lot faster with less collisions Notes Right now my goal is to make the simulation fully functional with as much detail as possible, down to the individual motors powering the wheels. Once this is complete, the simulation will be theoretically perfect. After that, the next step is implementing noise to make it a true simulation of real life. This will also be very helpful when I eventually build the real robots. Until then, the next thing I want to add is real sensors. Right now, the robots magically know which direction the signal came from, but real ones will have a ring of IR receivers, and compare the signal strengths to determine the angle of origin."}]...
|
Title: Robot Swarm: The Simulation by @dubbyy | St Title: Robot Swarm: The Simulation by @dubbyy | Stardance
Devlogs:
DEVLOG 1 - LINE My goal is to make a fully decentralized robot swarm, fast and precise enough to form complex patterns, which to my knowledge has never been done before. Before I make the physical robots however, I want to simulate them. How it works Communication All the robots communicate via an external Network class that passes messages between the robots. Because I’m trying to simulate real IR emitters and receivers, the only information the network gives is the distance and direction of the signal. Every tick, the robots emit a heartbeat-like signal to their peers, and use the signals they receive to construct an internal map of the swarm. Formation Once they know where their neighbours are they can start moving in formation. Initially, I had them organise in a line from 0-4. This worked but it was very slow, because they would go to spots that were further away than necessary. After spending some time working it out on a whiteboard (and consulting chatgpt), I decided on a new method. Using their internal map, they find the 2 robots with the largest distance between them and this becomes the line they use. They then compare every robot’s distance from the start of the line to determine the order, and move to their assigned point on the line. With this new algorithm, they can arrange themselves a lot faster with less collisions Notes Right now my goal is to make the simulation fully functional with as much detail as possible, down to the individual motors powering the wheels. Once this is complete, the simulation will be theoretically perfect. After that, the next step is implementing noise to make it a true simulation of real life. This will also be very helpful when I eventually build the real robots. Until then, the next thing I want to add is real sensors. Right now, the robots magically know which direction the signal came from, but real ones will have a ring of IR receivers, and compare the signal strengths to determine the angle of origin.
DEVLOG 2 - SENSORS Ok this is a lot harder than I thought it would be. Today I added IR transmitters and receivers to my robot swarm simulation, to bring it closer to reality. Now the robots only receive signals they can actually see, and compare the signal strengths across the receivers to get the direction of the source. This is great, but now I have a big problem. With line-of-sight added, it’s possible for a robot not to be able to see the whole swarm. This means if they try to form a line, they can’t agree on how to do it. Negotiation To solve this, the robots need to distribute information throughout the swarm and agree on a formation, in a process called negotiation. There are a few ways to do this with varying levels of complexity, and I’m still doing research, so I won’t go into detail in this devlog. Whatever method I choose, I need to make sure it will work in real life with imperfect signals, and it can adapt to the swarm losing members. Notes I haven’t changed too much since the last devlog, but I felt like I should post this as context so the next one isn’t super long. AI Declaration: I used AI to help with implementing the emitters/receivers (occlusion, field of view, some helper functions etc.) RED = Emitter BLUE = Receiver
DEVLOG 3 - GRAPHS After a lot of thinking, I decided to base the new line algorithm on graphs. High level process: Robots negotiate shape of the physical network (who can see who). Robots search for a Hamiltonian path through the network. If there is none, they use the path that connects the most robots. Robots at the end of the path move inwards, internal robots move to the midpoint between their two neighbours. Robots outside the path move inwards until they are connected, and the path is reevaluated to include them. I like this method, because it avoids gossiping position information which is susceptible to noise. This also means that once the path is decided, the robots only need to rely on what they can see with their IR receivers. The Problem While I was implementing this solution, I realised how much data I was transmitting. Each packet contained a full JSON representation of the network, alongside IDs, timestamps, etc. Although this could be compressed in the final version, it’s still too much data if I want to reliable real time communication. This means instead of purely IR, I also need to make use of the ESP32’s builtin radio. Despite it seeming more complex at first, it actually makes everything a lot simpler. With the integration of radio, the robots can now hear as well as see. Instead of passing information between robots, they can simply broadcast it globally, making negotiation much faster. I’ll go into more detail about the specific implementation in the next devlog, but that’s the update for now. No visual changes right now because the code doesn’t run, but hopefully by tomorrow they should be able to form lines
DEVLOG 4 - COMMUNICATION 1 full rewrite later, and the robots can form a line again, but better this time! When I started this project I didn’t have a clear vision of how it was going to work. At a certain point, it became very hard to add improvements to the simulation, because it was built on such a shaky foundation. The new version is cleaner and more organised, as well as being more realistic. Changes Signals Instead of solely relying on IR for angle, distance and communication, it’s now split between IR, UWB and WiFi. IR and UWB now only transmit tiny signals for detecting each other. All the heavy communication and networking is done over WiFi. Communication I overhauled the flow of communication between the robots. When each robot is turned on, it sends out a message attempting to establish a network. This message contains what other robots it can see, and who goes next. The robots take turns, keeping track of who has already spoken and building the network. By the end, they all have a shared map of who can see who, which they use for formations, and the last robot to speak is designated the temporary leader. I had to make the robots take turns to avoid the signals interfering with each other. Next I added a controller class to tell the robots when to change formation. When the robots hear this signal, the leader uses the network to find the most optimal line from the current positions. It then broadcasts this signal to the rest of the swarm, and they enter motion. What’s Next Right now, the robots never fully settle in a line, they continue to oscillate for a long time. The position estimates (magenta dots) are also quite far off from reality. Right now, the simulation is still ‘perfect’ in the sense that there is no noise or interference. When I start adding noise, these problems are only going to get worse. To combat this, in the next update I plan on implementing more techniques to make the estimates accurate. I also want to add more formations, to test how fast they can alternate, as my goal with this whole project is speed and precision. Video: Big circles are robots, red dots are IR LEDs, blue dots are IR receivers. Thin green lines are lines of sight, thick lines represent the intended path. Magenta dots are where the highlighted robot believes other robots are located
DEVLOG 5 - PERFECTION The simulation is now fully functional and perfect in a sense. The only thing left is adding noise for realism, and UI to make it interactive. Changes + Additions Drivetrain The robots now have simulated drivetrains. They are modeled off 3 wheel omnidrives, and allow them to convert their desired velocity into wheel speeds. This leaves room for me to manipulate the accuracy/precision of the wheels, to see how well the robots can adapt Formations The robots can now form a circle as well as a line. For the circle formation, the robots first find a suitable cyclical path through the swarm, and assign positions in the path. Next, they find where they should be in relation to their 2 neighbours based on a regular polygon of size n . I struggled a bit with this part because the robots couldn’t consistently tell which way to go, and would sometimes bend inwards towards the center of the circle instead of out. I fixed this by making them take all visible robots into account not just the closest 2. This allowed them to find which direction the center of the swarm was in, and they choose the position furthest from that center as their target. Optimization The algorithm the robots used to find the most efficient path through the swarm would was causing the simulation to freeze, or even crash with larger swarms. This is because the robots were checking every possible path , the amount of which grows exponentially as the swarm’s size increases. To solve this, instead of checking every path they now build a chain from each potential starting point and choose the shortest one. They first pick a starting point, A . robot can see B and C , but C is closer so C is added to the chain. Robot C can see A and B , but A is already in the chain, so B is added making the final order ACB . This removes the delay entirely allowing it to run comfortably on ESP32, at the cost of finding slightly worse paths in very rare cases. What’s Next With the core functionality in place, the next Devlog will likely be the last before I ship the project. I want to add UI and controls to the simulation, to make it more interactive. This will allow me to stress test the swarm in lots of different scenarios. A feature I’m particularly looking forward to is walls . The reason designing the communication took so long is because I had to account for cases where all the robots couldn’t see each other. Adding walls will let me see if the system works in practice.
DEVLOG 6 - CONTROL With the final addition of UI and controls, the simulation is now complete. While I could continue to add more detail and more realism, I think this is more than enough for what I set out to do. If you don’t know, I’ve been working on a simulation of a decentralised robot swarm that I plan to build soon. My goal was to recreate every relevant aspect of the real life robots, so I could explore how they would behave in different scenarios. It also allowed me to plan out how the robots are going to communicate in the real world. Changes UI The major addition of this update was the UI. You can now configure different aspects of the simulation to test the robots. Specifically the IR range, the noisiness of IR and UWB, the precision of the motors, the amount of IR receivers and emitters and of course the size of the swarm. As well as settings, you can now send formation commands to the swarm to dynamically change their formation. I also added a new REMOTE state that lets you select a robot and control it directly. Finally, you can toggle on and off different visual elements. Walls The addition of walls was the final piece to test my communication system. As I said in the last devlog, I designed it to accommodate for robots not always being able to see each other. Now, with the ability to block lines of sight, I can finally test it. Communication While messing with the controls I discovered a lot of oversights with the communication. One example is I was only establishing the network once when a new robot joined. This meant that even if the robots moved, they would still read from the old distance values when the formation changed, causing them to choose inefficient paths and in some cases get tangled or stuck. I fixed this by making them reestablish the network whenever the formation is changed. Findings To be completely honest, I didn’t discover that much that I didn’t already know. One thing that stood out was that the IR noise didn’t affect the formations as much as I thought it would. Outside of a few erratic movements, they remain fairly stable. The UWB noise had a much larger effect, as UWB is used to determine distance. The formations also hold with both sliders up to max which was reassuring.
Ships:
I made a simulation of a decentralized robot swarm I plan on building. The most fun and challenging part was designing the communication and interaction between the robots. I’d say figuring that out was the biggest benefit from this project and will help a lot with the real thing. Aside from that I tried to make it as realistic as I could with simulated signals and sensors and wheels etc. enjoy :>...
|
1792979799.7546208
|
1793066199.7546208
|
|
35407
|
Suiheisen by @-Sophie- | Stardance
|
-Sophie-
|
1
|
17.0
|
292
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-22T22:45:56Z", "hours": 17.0, "multiplier": 14.63, "payout": 292, "blessing": "neutral", "text": "Suiheisen This is Suiheisen, a 2.5D game meant to be paired with my own custom macropad (SuiheisenPad) that features four keys. Backstory You’re a Korean salaryman and you escape your chaebol office building to just run and chase the horizon. You don’t know where your legs are taking you, but you don’t care as long as it’s far away from your dreaded cubicle. But obstacles wait for you on the road…because the universe just LOVES you. (or maybe it’s the chaebols sending the obstacles?? :0) Controls: z -> dodge left x -> OK/enter c -> duck v -> right I hope you have fun! I apologize that it’s really unpolished but I think it’s an MVP and I’m looking forward to future projects I have piled up! This honestly took me so long but I had a lot of fun learning how to make an infinite scroller in 3D! This was my first 3D game by the way :) (though it’s more like 2.5D) Excited to see all the feedback you guys give!", "repo": "https://github.com/gwak-amole/suiheisen", "demo": "https://gwak-amole.itch.io/suiheisen"}]...
|
[{"post_id": 33217, "ts": "202 [{"post_id": 33217, "ts": "2026-07-22T22:41:39Z", "hours": 1.4108, "text": "Audio + Speed scaling + Pause menu Audio Took sounds from freesound.org that had CreativeCommons0 licenses and used them in my game! it makes it feel so much more alive :) Speed scaling Now the game is harder because the obstacles move back faster as the game progresses. I used an autoload Timer for this and it works surprisingly well! I hope you guys get to try my game out! I’m shipping it rn! Pause menu Now if someone calls you in the middle of you playing this game you won’t rage quit lol"}, {"post_id": 33105, "ts": "2026-07-22T18:39:47Z", "hours": 2.0269, "text": "Buildings added Buildings I modeled them in blender and stuff and made them modular. There are 5 types of buildings in total currently and 4 building chunk modules. Spawn tweaks I tweaked some spawner settings bc the more u got into the game the more weirdly the spawning would be like bursts of difficulty instead of constant accelerated difficulty. so fixed that :) Future additions roads and buildings get faster so you feel how everything is getting faster audio basic pause menu after i finish those future additions I’ll finally ship Suiheisen’s first addition :D"}, {"post_id": 33011, "ts": "2026-07-22T15:40:29Z", "hours": 1.8644, "text": "Sky and more obsacles added I added the limbo obstacle and now obstacle modularity is completely finished so i can just model obstacles and plug them in really easily. I also added a tutorial at the start for keyboard users."}, {"post_id": 32040, "ts": "2026-07-20T22:31:37Z", "hours": 2.4236, "text": "obstacles + more!! :DDDDD Obstacles now there is: sawhorse barricade ‘road work ahead’ sign traffic cone all art and modeling and coloring etc done by me :D and i made the obstacle adding system modular so it’s really easy to add more obstacles as needed collisions are also all fine tuned to minimize rage quit lol Player adjustments + bug fixes Fixed a bug so now start screen fade out animation works as expected the player’s height and camera was adjusted so obstacles are better seen and scaling is more realistic future additions proper limbo obstacles and separating them from regular obstacles adding a pixelated sky texture via aseprite and godot worldenvironment sfx possibly buildings to surround the road to make it more lively and realistic"}, {"post_id": 31498, "ts": "2026-07-19T22:53:35Z", "hours": 0.6467, "text": "IT WORKS Finally made modules for road terrain so now it looks like the thing is an actual infinite scroller now 😭 😭 😭 yessssssss Art I had to draw aseprite road textures myself I also imported them in blender and after a lot of finessing I got them to this size. i actually might resize because it makes the player look super tiny lolll scripts I just made an array of the Node3Ds that had MeshInstance3Ds of each kind of road and made the spawner terrain controller thing alternate between them two :))"}, {"post_id": 30826, "ts": "2026-07-18T19:22:12Z", "hours": 1.8469, "text": "i’m losing my mind… i’m trying to figure out how to make an infinite scroller in 3d godot but since it’s not like 2d u can’t just put parallax… u need to actual write a script to generate the mesh and get rid of them accordingly while moving all the mesh towards the player. and my tiny brain cannot wrap my head around it. so here’s what it looks like so far before i find out how to do this infinite 3d scroller thing :’)"}, {"post_id": 30273, "ts": "2026-07-17T18:24:17Z", "hours": 0.9506, "text": "Finished start screen! Art Art for the background of the start_screen and the blinking is done ! this took me hours holy moly Animations Coded and configured AnimationPlayer node to create this cool set of events when u boot the game Basic code overall but super time consuming"}, {"post_id": 29656, "ts": "2026-07-16T18:38:23Z", "hours": 1.1817, "text": "Game Over screen polished Game over graphics now the game over scene has a cool cubicle graphic (i drew it on aseprite all graphics here are custom-made) and it blinks. the instruction to go back to the start menu looks like that because this game is supposed to pair with my SuiheisenPad micropad (like an arcade machine) The cubicle changes depending on the message that the game chooses Player collision bug fixes + movement fixes Now the player goes still when the game is over and it’s fading out, and the player’s side dodge collisions aren’t spheres but custom convex 3D shapes so that they can’t dodge the limbo obstacle Fade out animations now when game over happens the main scene fades out to black and game over fades in yippee"}, {"post_id": 29325, "ts": "2026-07-16T05:50:10Z", "hours": 0.4814, "text": "game over messages + more asset update I made the running animation look less cut off on the sides I made the dodging animations more polished with outlines game over scene when the horizon bar is at 0 the game over scene is cued game over messages now there’s a randomization of 4 messages, them being it looks like you’re working overtime… it was worth a shot i guess?"}, {"post_id": 29316, "ts": "2026-07-16T05:09:48Z", "hours": 0.3542, "text": "Horizon concept Horizon bar added I added the horizon bar, which is basically this game’s version of a health bar. It’s to fit the concept tho. Basically, the premise of the game is that this office worker is trying to escape his mundane office life running towards the horizon. (wants to chase the horizon and touch it) so yeah that’s why the bar is a sky themed thing–it’s to represent the horizon almost."}, {"post_id": 29245, "ts": "2026-07-16T01:05:45Z", "hours": 1.9236, "text": "FINALLY difficulty progression + points registering system This took me way too long to figure out Difficulty progression the obstacles spawn more frequently by 1% every 3 seconds spawning cap and cooldown for spawning are safeguards so that the game isn’t impossible Points registering If the player successfully avoids the obstacle, points are registered. If not, then points are not registered (soon there will be a consequence implemented as well.)"}, {"post_id": 29110, "ts": "2026-07-15T19:30:45Z", "hours": 0.7542, "text": "Obstacles and Collision Player collision Player collision optimized so that people don’t rage quit while playing lollll I had to make custom convex CollisionShapeD for limbo and regular running position Player movement Player now is forced to return to the running position after 0.5 seconds! unless you spam the button–in that case the player will remain in that position. Obstacles Obstacles now spawn randomly with a slightly higher weight for the limbo obstacle (1.2x more likely to pop up, tentative number) Collisions are looking good so far! I will update them accordingly if they’re not accurate but they’ve been through like 10 rounds of optimization atp lol"}, {"post_id": 28727, "ts": "2026-07-15T05:08:58Z", "hours": 0.7542, "text": "Basic movement and collision established! Scripts / spawners and collision As you can see, I also assigned CollisionShape3D based on the character’s position. So when the player doesn’t dodge this left obstacle that is repeatedly spawned after 3 seconds, it will print “OI HIT” but if the player dodges to the right then it won’t collide. Obviously I’ll replace this OI HIT printing with actual game logic, namely losing a life. Art I made a basic running animation as well as dodging animations to accompany it. I stupidly made an idle animation and quickly realized I wouldn’t ever use it but whatevs."}]...
|
Title: Suiheisen by @-Sophie- | Stardance
Devlogs Title: Suiheisen by @-Sophie- | Stardance
Devlogs:
Basic movement and collision established! Scripts / spawners and collision As you can see, I also assigned CollisionShape3D based on the character’s position. So when the player doesn’t dodge this left obstacle that is repeatedly spawned after 3 seconds, it will print “OI HIT” but if the player dodges to the right then it won’t collide. Obviously I’ll replace this OI HIT printing with actual game logic, namely losing a life. Art I made a basic running animation as well as dodging animations to accompany it. I stupidly made an idle animation and quickly realized I wouldn’t ever use it but whatevs.
Obstacles and Collision Player collision Player collision optimized so that people don’t rage quit while playing lollll I had to make custom convex CollisionShapeD for limbo and regular running position Player movement Player now is forced to return to the running position after 0.5 seconds! unless you spam the button–in that case the player will remain in that position. Obstacles Obstacles now spawn randomly with a slightly higher weight for the limbo obstacle (1.2x more likely to pop up, tentative number) Collisions are looking good so far! I will update them accordingly if they’re not accurate but they’ve been through like 10 rounds of optimization atp lol
FINALLY difficulty progression + points registering system This took me way too long to figure out Difficulty progression the obstacles spawn more frequently by 1% every 3 seconds spawning cap and cooldown for spawning are safeguards so that the game isn’t impossible Points registering If the player successfully avoids the obstacle, points are registered. If not, then points are not registered (soon there will be a consequence implemented as well.)
Horizon concept Horizon bar added I added the horizon bar, which is basically this game’s version of a health bar. It’s to fit the concept tho. Basically, the premise of the game is that this office worker is trying to escape his mundane office life running towards the horizon. (wants to chase the horizon and touch it) so yeah that’s why the bar is a sky themed thing–it’s to represent the horizon almost.
game over messages + more asset update I made the running animation look less cut off on the sides I made the dodging animations more polished with outlines game over scene when the horizon bar is at 0 the game over scene is cued game over messages now there’s a randomization of 4 messages, them being it looks like you’re working overtime… it was worth a shot i guess?
Game Over screen polished Game over graphics now the game over scene has a cool cubicle graphic (i drew it on aseprite all graphics here are custom-made) and it blinks. the instruction to go back to the start menu looks like that because this game is supposed to pair with my SuiheisenPad micropad (like an arcade machine) The cubicle changes depending on the message that the game chooses Player collision bug fixes + movement fixes Now the player goes still when the game is over and it’s fading out, and the player’s side dodge collisions aren’t spheres but custom convex 3D shapes so that they can’t dodge the limbo obstacle Fade out animations now when game over happens the main scene fades out to black and game over fades in yippee
Finished start screen! Art Art for the background of the start_screen and the blinking is done ! this took me hours holy moly Animations Coded and configured AnimationPlayer node to create this cool set of events when u boot the game Basic code overall but super time consuming
i’m losing my mind… i’m trying to figure out how to make an infinite scroller in 3d godot but since it’s not like 2d u can’t just put parallax… u need to actual write a script to generate the mesh and get rid of them accordingly while moving all the mesh towards the player. and my tiny brain cannot wrap my head around it. so here’s what it looks like so far before i find out how to do this infinite 3d scroller thing :’)
IT WORKS Finally made modules for road terrain so now it looks like the thing is an actual infinite scroller now 😭 😭 😭 yessssssss Art I had to draw aseprite road textures myself I also imported them in blender and after a lot of finessing I got them to this size. i actually might resize because it makes the player look super tiny lolll scripts I just made an array of the Node3Ds that had MeshInstance3Ds of each kind of road and made the spawner terrain controller thing alternate between them two :))
obstacles + more!! :DDDDD Obstacles now there is: sawhorse barricade ‘road work ahead’ sign traffic cone all art and modeling and coloring etc done by me :D and i made the obstacle adding system modular so it’s really easy to add more obstacles as needed collisions are also all fine tuned to minimize rage quit lol Player adjustments + bug fixes Fixed a bug so now start screen fade out animation works as expected the player’s height and camera was adjusted so obstacles are better seen and scaling is more realistic future additions proper limbo obstacles and separating them from regular obstacles adding a pixelated sky texture via aseprite and godot worldenvironment sfx possibly buildings to surround the road to make it more lively and realistic
Sky and more obsacles added I added the limbo obstacle and now obstacle modularity is completely finished so i can just model obstacles and plug them in really easily. I also added a tutorial at the start for keyboard users.
Buildings added Buildings I modeled them in blender and stuff and made them modular. There are 5 types of buildings in total currently and 4 building chunk modules. Spawn tweaks I tweaked some spawner settings bc the more u got into the game the more weirdly the spawning would be like bursts of difficulty instead of constant accelerated difficulty. so fixed that :) Future additions roads and buildings get faster so you feel how everything is getting faster audio basic pause menu after i finish those future additions I’ll finally ship Suiheisen’s first addition :D
Audio + Speed scaling + Pause menu Audio Took sounds from freesound.org that had CreativeCommons0 licenses and used them in my game! it makes it feel so much more alive :) Speed scaling Now the game is harder because the obstacles move back faster as the game progresses. I used an autoload Timer for this and it works surprisingly well! I hope you guys get to try my game out! I’m shipping it rn! Pause menu Now if someone calls you in the middle of you playing this game you won’t rage quit lol
Ships:
Suiheisen This is Suiheisen, a 2.5D game meant to be paired with my own custom macropad (SuiheisenPad) that features four keys. Backstory You’re a Korean salaryman and you escape your chaebol office building to just run and chase the horizon. You don’t know where your legs are taking you, but you don’t care as long as it’s far away from your dreaded cubicle. But obstacles wait for you on the road…because the universe just LOVES you. (or maybe it’s the chaebols sending the obstacles?? :0) Controls: z -> dodge left x -> OK/enter c -> duck v -> right I hope you have fun! I apologize that it’s really unpolished but I think it’s an MVP and I’m looking forward to future projects I have piled up! This honestly took me so long but I had a lot of fun learning how to make an infinite scroller in 3D! This was my first 3D game by the way :) (though it’s more like 2.5D) Excited to see all the feedback you guys give!...
|
1792979336.886565
|
1793065736.886565
|
|
53831
|
contrast by @a-fun-gi | Stardance
|
a-fun-gi
|
2
|
27.0
|
291
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T19:24:40Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is the second ship of the project, and the final ship to Stardance. I added most of the things people mentioned in review and a couple other things that will make development smoother in the future. I am planning on developing the full version of the game for another competition after stardance ends. Hopefully you guys had fun seeing this project evolve (ik i did :)) and follow my github or itch if you want to see how it goes!! Thank you!!", "repo": "https://github.com/a-fun-gi/contrast", "demo": "https://a-fun-gi.itch.io/contrast-demo"}, {"ship_num": 2, "ts": "2026-10-04T01:06:39Z", "hours": 24.0, "multiplier": 12.26, "payout": 291, "blessing": "neutral", "text": "Contrast Contrast is a monochrome metroidvania involving light, shadows, and getting lost in the dark built in Godot. The Idea I was once doodling in my journal and I made a cute little character that I liked. I was like, “hey I should put that into a video game!”. So I started to draw different iterations of it digitally, but one block I kept running into was that I wasn’t sure how to add color to it, because I always doodle in black and white. After thinking about that for quite a bit, I decided, “you know what? I don’t even need color, I’ll just make a completely monochrome game!” (not a real quote, but basically my train of thought). I eventually landed on a version that I drew in GIMP and animated using Skeleton2D in Godot. So at this point I had a character and… nothing else, but that was enough to build off of. The Development I knew I would be making the game in Godot from the start, because my computer would die if I tried running Unreal Engine, and I don’t know how to use Unity. After making the character I basically made the rest of the game as I went, adding bits of terrain, playing with shaders, and all of that fun stuff. What I learned Making this game felt very spiritual for me. I even started to have dreams set in the world of the game. And I learned SO MUCH. I feel like I was having to google something every other minute, but that’s okay because of the sheer amount of information I took in. Overall This was such an amazing journey and process, especially documenting my progress in Stardance. Whoever is reading this, thank you for rating my project!!!", "repo": "https://github.com/a-fun-gi/contrast", "demo": "https://a-fun-gi.itch.io/contrast-demo"}]...
|
[{"post_id": 80779, "ts": "202 [{"post_id": 80779, "ts": "2026-10-18T19:18:43Z", "hours": 2.5447, "text": "Devlog # 5: Hi, I’m back Hello everyone, back with another devlog!! I loved reading everyone’s feedback so thank you to whoever rated my project! In this iteration I was mainly fixing all of the bugs that the raters mentioned with a couple additions of my own. Bug Fixes: I removed the debug function that brings your health down when you press space. I realise that that’s probably super confusing for people so sorry for that. On that note I also updated the controls to be much more intuitive, most common configurations should work. The pause menu also works in the last level now. Improvements: I removed the LoopManager nodes and transferred all of their functionality to the GameManager, which is less confusing for me and hopefully others too. I also added a focus, which means you don’t have to use a mouse to click the buttons. Additions: There were a few requests for a tutorial, so I expanded the first level a little bit and added hints of what to do. There was also a suggestion to add an option menu, so I did. So far there is only volume and another thing there, but I will add more in the future. While I was making that, I decided to tackle saving, just to save the settings, but now that I have that framework lain it will be easier development later on. Other News I made a web playable version! Hopefully it works well. Also, to whoever did this review: It is a classical platformer story elements would make it more interesting but as you said it is a first demo, the addition of the light/inverted bar thingi makes it a bit more original but there is still a lot to add like lore. I would like to see future additions in story area especially ?horror?. … GIVE ME LOOOREE! :)… I hear your pleas for lore (loud and clear), but it appears that I have… writer’s block???!??! Basically I can’t think of anything, but my purpose of saying this is to let whoever’s reading this know that my DMs are very open and I NEED ideas!!!"}, {"post_id": 76572, "ts": "2026-10-04T00:37:49Z", "hours": 8.7278, "text": "Devlog # 4: Possibly the final devlog!! Wow, I apologized for the length of the last devlog, and here I am with a 7 hour one!! The time just keeps on ticking… A lot has changed since the last devlog so bear with me. Improvements: I’ve added a source button to the title screen that redirects to the Github . There is now a pause menu when you press escape that can quit to the main menu. I successfully made the “unstable zone”, so there is a bar at the top of the hud that moves back and forth depending on whether the player is inverted or not. The idea is that you have to balance between light and dark. If the bar gets to one end, you get damaged every one second. Additions: I added a death animation so death actually happens now instead of an error that says you can’t have negative health . I also added a portal to go between levels and a whole second level with gpu particle rain!! I also improved the GameManager’s level switching so it’s much more adaptive now. There is also now an end, as this is just a demo. Bug fixes: Most bugs I had to fix were from the new additions and didn’t exist in the previous version of the game. So idk In other news… I have the game published on itch.io !!!!! Pleasepleaseplease check it out and leave a nice comment if you are capable!! 🙏 expect a ship soon and i love all of you guys sosososo much thank you everyone for an amazing event ❤️ ❤️ ❤️"}, {"post_id": 70915, "ts": "2026-09-20T01:06:40Z", "hours": 5.0072, "text": "Devlog # 3: Visual fx galore Hello everyone! I apologize for doing such a long devlog, but those hours really slip by Without further ado: let’s jump into it Improvements: I’ve added a few more moving elements to the terrain, but I’ve been mostly focusing on gameplay instead of actual length at this point. I also made the title screen look better and the “quit” button actually quit. I made the life counter actually work , for now it only goes down when you fall off the edge of something. You reset to the last safe place you were standing. Additions: I was having fun playing with shaders and added a glitch effect to the character when you enter/exit an inverted zone I also added a ripple shader that has no purpose at the moment but it will don’t worry No bug fixes this time What’s Next: Next I am planning on using that ripple shader to make sort of a “unstable zone” where you have to balance between light and dark. Stardance is ending soon though so we’ll see how much is done when I ship peace"}, {"post_id": 63194, "ts": "2026-09-06T21:16:06Z", "hours": 4.1097, "text": "Devlog # 2: Terrain, shaders, and a really annoying bug Improvements: I made the terrain much more flexible by using seperate objects that I could just place wherever, instead of the tilemap, but that was really just for showing that the character worked. Also I made a moving element. Additions: I added a title screen, a life counter (not implemented yet, but it’s there ), and a shader that inverts colors. The shader will probably be involved in a gameplay thingy later, but for now, it’s just to look nice. Making the shader was really hard, actually even though it was really simple… Bug Fixes: Sooo I was going to post this devlog yesterday, but then I realised that my whole scene loading everything was horrible and some really weird things happened. SO I spent another hour and a half fixing it . HOWEVER I did also learn some valuable lessons, and made a GameManager, so I don’t think it was a complete waste What’s Next Next up will be making the title screen look more interesting, and I have some ideas for game mechanics and new characters that I will explore. Stay tuned! (or not )"}, {"post_id": 56889, "ts": "2026-08-28T21:37:23Z", "hours": 5.8878, "text": "Devlog # 1: Back With a New Project What’s up folks! I am back with another project, having shipped the vent alien. This is a monochrome metroidvania involving light, shadows, and getting lost in the dark . (Clearly still need to figure out some lore) However, I finished drawing, rigging, and animating the main character in this devlog. I also made some mediocre background graphics to show the character moving. What’s Next Mainly worldbuilding, which will take a while. I am also planning on making a neat banner for the project! stay tuned!!"}]...
|
Title: contrast by @a-fun-gi | Stardance
Devlogs: Title: contrast by @a-fun-gi | Stardance
Devlogs:
Devlog # 1: Back With a New Project What’s up folks! I am back with another project, having shipped the vent alien. This is a monochrome metroidvania involving light, shadows, and getting lost in the dark . (Clearly still need to figure out some lore) However, I finished drawing, rigging, and animating the main character in this devlog. I also made some mediocre background graphics to show the character moving. What’s Next Mainly worldbuilding, which will take a while. I am also planning on making a neat banner for the project! stay tuned!!
Devlog # 2: Terrain, shaders, and a really annoying bug Improvements: I made the terrain much more flexible by using seperate objects that I could just place wherever, instead of the tilemap, but that was really just for showing that the character worked. Also I made a moving element. Additions: I added a title screen, a life counter (not implemented yet, but it’s there ), and a shader that inverts colors. The shader will probably be involved in a gameplay thingy later, but for now, it’s just to look nice. Making the shader was really hard, actually even though it was really simple… Bug Fixes: Sooo I was going to post this devlog yesterday, but then I realised that my whole scene loading everything was horrible and some really weird things happened. SO I spent another hour and a half fixing it . HOWEVER I did also learn some valuable lessons, and made a GameManager, so I don’t think it was a complete waste What’s Next Next up will be making the title screen look more interesting, and I have some ideas for game mechanics and new characters that I will explore. Stay tuned! (or not )
Devlog # 3: Visual fx galore Hello everyone! I apologize for doing such a long devlog, but those hours really slip by Without further ado: let’s jump into it Improvements: I’ve added a few more moving elements to the terrain, but I’ve been mostly focusing on gameplay instead of actual length at this point. I also made the title screen look better and the “quit” button actually quit. I made the life counter actually work , for now it only goes down when you fall off the edge of something. You reset to the last safe place you were standing. Additions: I was having fun playing with shaders and added a glitch effect to the character when you enter/exit an inverted zone I also added a ripple shader that has no purpose at the moment but it will don’t worry No bug fixes this time What’s Next: Next I am planning on using that ripple shader to make sort of a “unstable zone” where you have to balance between light and dark. Stardance is ending soon though so we’ll see how much is done when I ship peace
Devlog # 4: Possibly the final devlog!! Wow, I apologized for the length of the last devlog, and here I am with a 7 hour one!! The time just keeps on ticking… A lot has changed since the last devlog so bear with me. Improvements: I’ve added a source button to the title screen that redirects to the Github . There is now a pause menu when you press escape that can quit to the main menu. I successfully made the “unstable zone”, so there is a bar at the top of the hud that moves back and forth depending on whether the player is inverted or not. The idea is that you have to balance between light and dark. If the bar gets to one end, you get damaged every one second. Additions: I added a death animation so death actually happens now instead of an error that says you can’t have negative health . I also added a portal to go between levels and a whole second level with gpu particle rain!! I also improved the GameManager’s level switching so it’s much more adaptive now. There is also now an end, as this is just a demo. Bug fixes: Most bugs I had to fix were from the new additions and didn’t exist in the previous version of the game. So idk In other news… I have the game published on itch.io !!!!! Pleasepleaseplease check it out and leave a nice comment if you are capable!! 🙏 expect a ship soon and i love all of you guys sosososo much thank you everyone for an amazing event ❤️ ❤️ ❤️
Devlog # 5: Hi, I’m back Hello everyone, back with another devlog!! I loved reading everyone’s feedback so thank you to whoever rated my project! In this iteration I was mainly fixing all of the bugs that the raters mentioned with a couple additions of my own. Bug Fixes: I removed the debug function that brings your health down when you press space. I realise that that’s probably super confusing for people so sorry for that. On that note I also updated the controls to be much more intuitive, most common configurations should work. The pause menu also works in the last level now. Improvements: I removed the LoopManager nodes and transferred all of their functionality to the GameManager, which is less confusing for me and hopefully others too. I also added a focus, which means you don’t have to use a mouse to click the buttons. Additions: There were a few requests for a tutorial, so I expanded the first level a little bit and added hints of what to do. There was also a suggestion to add an option menu, so I did. So far there is only volume and another thing there, but I will add more in the future. While I was making that, I decided to tackle saving, just to save the settings, but now that I have that framework lain it will be easier development later on. Other News I made a web playable version! Hopefully it works well. Also, to whoever did this review: It is a classical platformer story elements would make it more interesting but as you said it is a first demo, the addition of the light/inverted bar thingi makes it a bit more original but there is still a lot to add like lore. I would like to see future additions in story area especially ?horror?. … GIVE ME LOOOREE! :)… I hear your pleas for lore (loud and clear), but it appears that I have… writer’s block???!??! Basically I can’t think of anything, but my purpose of saying this is to let whoever’s reading this know that my DMs are very open and I NEED ideas!!!
Ships:
Contrast Contrast is a monochrome metroidvania involving light, shadows, and getting lost in the dark built in Godot. The Idea I was once doodling in my journal and I made a cute little character that I liked. I was like, “hey I should put that into a video game!”. So I started to draw different iterations of it digitally, but one block I kept running into was that I wasn’t sure how to add color to it, because I always doodle in black and white. After thinking about that for quite a bit, I decided, “you know what? I don’t even need color, I’ll just make a completely monochrome game!” (not a real quote, but basically my train of thought). I eventually landed on a version that I drew in GIMP and animated using Skeleton2D in Godot. So at this point I had a character and… nothing else, but that was enough to build off of. The Development I knew I would be making the game in Godot from the start, because my computer would die if I tried running Unreal Engine, and I don’t know how to use Unity. After making the character I basically made the rest of the game as I went, adding bits of terrain, playing with shaders, and all of that fun stuff. What I learned Making this game felt very spiritual for me. I even started to have dreams set in the world of the game. And I learned SO MUCH. I feel like I was having to google something every other minute, but that’s okay because of the sheer amount of information I took in. Overall This was such an amazing journey and process, especially documenting my progress in Stardance. Whoever is reading this, thank you for rating my project!!!
This is the second ship of the project, and the final ship to Stardance. I added most of the things people mentioned in review and a couple other things that will make development smoother in the future. I am planning on developing the full version of the game for another competition after stardance ends. Hopefully you guys had fun seeing this project evolve (ik i did :)) and follow my github or itch if you want to see how it goes!! Thank you!!...
|
1793008112.6112535
|
1793094512.6112535
|
|
498
|
Stageless by @MrChicken | Stardance
|
MrChicken
|
2
|
30.0
|
287
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T03:02:14Z", "hours": 22.0, "multiplier": 10.94, "payout": 243, "blessing": "neutral", "text": "Worked on adding the tower rush and tweaking the looks of ui to be more polished", "repo": "https://github.com/Goldfish-Boi/Stageless", "demo": "https://www.roblox.com/games/108617994947204/Stageless"}, {"ship_num": 2, "ts": "2026-06-30T02:04:28Z", "hours": 8.0, "multiplier": 5.45, "payout": 44, "blessing": "neutral", "text": "Your only goal is ascend I’ve updated my roblox game Stageless, it is a high difficulty roblox obby inspired by Eternal’s Towers of Hell! The changes I’ve made are supposed to make the game run smoother and be easier for newer users to understand. The biggest challenge I’ve been having is trying to apply more optimized code around the much older and less optimized system. Eventually I might decide to recode the game to be fully optimized, but that is not a task for now. Game is incredibly hard and also 16+ due to Roblox’s restrictions, enjoy!", "repo": "https://github.com/Goldfish-Boi/Stageless", "demo": "https://www.roblox.com/games/108617994947204/Stageless"}]...
|
[{"post_id": 67050, "ts": "202 [{"post_id": 67050, "ts": "2026-09-13T02:59:53Z", "hours": 3.9425, "text": "Updated lobby decor and tweaked the ui of certain rarity effects"}, {"post_id": 38490, "ts": "2026-07-31T22:01:23Z", "hours": 9.0497, "text": "Spent all this time trying to add Tower Rushes to the game, where you get to do almost every tower in the area back to back as the ultimate challenge. I’ve noticed a lot of my older cold was simply not built to handle multiple obbies done in series so I had to additionally go back and refactor and refine all of the main server functions so that it could function correctly. There were also numerous bugs relating to values being carried across towers, so I made secondary values that reset every time you beat one tower and go the next."}, {"post_id": 25414, "ts": "2026-07-09T17:52:32Z", "hours": 9.2458, "text": "Completely overhauled how this game manages the player’s data. The new system is designed to read the player’s previous data before writing in the player’s new data using UpdateAsync(). Additionally any changes that occur during gameplay are recorded separately. When either the client or server needs access to the data, the old data and all the changes and “Stitched” together so that you get the most recent data the player has. Since data is not exactly something I can screenshot or record, I made this flowchart that shows the components of the data system."}, {"post_id": 18859, "ts": "2026-06-30T01:53:51Z", "hours": 5.7378, "text": "Update 1.0.4.4 Additions: Chat can now be kept open while resetting. Resetting only disables when typing now. Fixes / Changes: Unanchored seat Unintended behaviour with practice mode and resetting has been patched Unintended behaviour with resetting patched Minor ToISM patches CoLM should have most of its music now I thank those who have found bugs which has made it easier to make the game easier for newer players to understand"}, {"post_id": 7095, "ts": "2026-06-11T21:29:05Z", "hours": 2.4494, "text": "Made a trailer for this game! I’ve also updated the game to handle newer more unexperienced players more easily (mostly trough added more signage around the lobby) Additionally added a new tower alongside reworking some older UIs"}]...
|
Title: Stageless by @MrChicken | Stardance
Devlog Title: Stageless by @MrChicken | Stardance
Devlogs:
Made a trailer for this game! I’ve also updated the game to handle newer more unexperienced players more easily (mostly trough added more signage around the lobby) Additionally added a new tower alongside reworking some older UIs
Update 1.0.4.4 Additions: Chat can now be kept open while resetting. Resetting only disables when typing now. Fixes / Changes: Unanchored seat Unintended behaviour with practice mode and resetting has been patched Unintended behaviour with resetting patched Minor ToISM patches CoLM should have most of its music now I thank those who have found bugs which has made it easier to make the game easier for newer players to understand
Completely overhauled how this game manages the player’s data. The new system is designed to read the player’s previous data before writing in the player’s new data using UpdateAsync(). Additionally any changes that occur during gameplay are recorded separately. When either the client or server needs access to the data, the old data and all the changes and “Stitched” together so that you get the most recent data the player has. Since data is not exactly something I can screenshot or record, I made this flowchart that shows the components of the data system.
Spent all this time trying to add Tower Rushes to the game, where you get to do almost every tower in the area back to back as the ultimate challenge. I’ve noticed a lot of my older cold was simply not built to handle multiple obbies done in series so I had to additionally go back and refactor and refine all of the main server functions so that it could function correctly. There were also numerous bugs relating to values being carried across towers, so I made secondary values that reset every time you beat one tower and go the next.
Updated lobby decor and tweaked the ui of certain rarity effects
Ships:
Your only goal is ascend I’ve updated my roblox game Stageless, it is a high difficulty roblox obby inspired by Eternal’s Towers of Hell! The changes I’ve made are supposed to make the game run smoother and be easier for newer users to understand. The biggest challenge I’ve been having is trying to apply more optimized code around the much older and less optimized system. Eventually I might decide to recode the game to be fully optimized, but that is not a task for now. Game is incredibly hard and also 16+ due to Roblox’s restrictions, enjoy!
Worked on adding the tower rush and tweaking the looks of ui to be more polished...
|
1792983179.26973
|
1793069579.26973
|
|
13920
|
Solar System by @bartoszkasyna | Stardance
|
bartoszkasyna
|
1
|
21.25
|
287
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-21T12:14:23Z", "hours": 21.0, "multiplier": 13.9, "payout": 287, "blessing": "neutral", "text": "An interactive, GPU-accelerated Solar System simulator built with Rust, wgpu, and egui, featuring N-body physics and orbital visualization.", "repo": "https://github.com/B4rtekk1/SolarSystem", "demo": "https://github.com/B4rtekk1/SolarSystem/releases"}]...
|
[{"post_id": 33538, "ts": "202 [{"post_id": 33538, "ts": "2026-07-23T16:01:59Z", "hours": 0.2528, "text": "Transparent planets bug fix"}, {"post_id": 32305, "ts": "2026-07-21T12:07:32Z", "hours": 2.6781, "text": "Updated UI/UX. Fixed a bug causing planet collisions. Added readme, License, gh actions. Added charts and camera follow."}, {"post_id": 28516, "ts": "2026-07-14T20:28:22Z", "hours": 1.1586, "text": "Added save/load system with custom .orbs ext. Added camera follow"}, {"post_id": 28478, "ts": "2026-07-14T18:56:07Z", "hours": 1.2006, "text": "Added kinematic, potential, total energy."}, {"post_id": 12609, "ts": "2026-06-20T16:29:53Z", "hours": 1.5842, "text": "I added suns and moons renaming like in previous devlog to planets. I added ring component which can be added to planets."}, {"post_id": 9997, "ts": "2026-06-16T15:12:52Z", "hours": 2.2903, "text": "Added Planet name editor, trying to optimize game. Removed depracted code"}, {"post_id": 8615, "ts": "2026-06-14T09:55:50Z", "hours": 2.0956, "text": "Added minimalize button to controls box. Added stars and little galaxy in the bg. App behave weird while taking screenshot(idk why). I made more realistic parameters of objects."}, {"post_id": 7447, "ts": "2026-06-12T12:32:37Z", "hours": 1.6308, "text": "I added new contorls and few bug fixes"}, {"post_id": 7292, "ts": "2026-06-12T04:53:21Z", "hours": 2.8125, "text": "Added basic world controls. Now you can also click on the planet. Planet and their moons will be outlined."}, {"post_id": 6810, "ts": "2026-06-11T12:59:32Z", "hours": 1.9822, "text": "I have implmeneted FPS counter. When I saw FPS i decided it should be more optimized. I jumped from ~60FPS to ~200FPS in 1920x1080"}, {"post_id": 6686, "ts": "2026-06-11T06:17:32Z", "hours": 2.0883, "text": "I have added ECS planets and moons with orbit forecasts based on n-body simulations"}, {"post_id": 5491, "ts": "2026-06-09T09:22:30Z", "hours": 0.6028, "text": "Added few planets and their orbits"}, {"post_id": 5437, "ts": "2026-06-09T06:31:04Z", "hours": 0.5803, "text": "I have started with simple sun implementation"}]...
|
Title: Solar System by @bartoszkasyna | Stardance
Title: Solar System by @bartoszkasyna | Stardance
Devlogs:
I have started with simple sun implementation
Added few planets and their orbits
I have added ECS planets and moons with orbit forecasts based on n-body simulations
I have implmeneted FPS counter. When I saw FPS i decided it should be more optimized. I jumped from ~60FPS to ~200FPS in 1920x1080
Added basic world controls. Now you can also click on the planet. Planet and their moons will be outlined.
I added new contorls and few bug fixes
Added minimalize button to controls box. Added stars and little galaxy in the bg. App behave weird while taking screenshot(idk why). I made more realistic parameters of objects.
Added Planet name editor, trying to optimize game. Removed depracted code
I added suns and moons renaming like in previous devlog to planets. I added ring component which can be added to planets.
Added kinematic, potential, total energy.
Added save/load system with custom .orbs ext. Added camera follow
Updated UI/UX. Fixed a bug causing planet collisions. Added readme, License, gh actions. Added charts and camera follow.
Transparent planets bug fix
Ships:
An interactive, GPU-accelerated Solar System simulator built with Rust, wgpu, and egui, featuring N-body physics and orbital visualization....
|
1792986470.821042
|
1793072870.821042
|
|
21720
|
PD biomarkers by @arjundakshin | Stardance
|
arjundakshin
|
1
|
18.0
|
287
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T17:29:50Z", "hours": 18.0, "multiplier": 15.93, "payout": 287, "blessing": "neutral", "text": "I built a glassbox-mirna, a leak-free xai pipeline and a interactive streamlit web application for early stage Parkinson’s disease biomarker discovery. After I got the biomarker I tested drug response against a drug called rasagaline. Using GSE269781 a serum exosome mirna data I ran a 2 tier architecture with elastic net and random forest models validated via outer-loop monte carlo cross validation. Now that I have all the technical stuff out of the way now its time for the why. To be honest… I don’t know I heard about neurodegenerative diseases in science class and just went with the flow. Most people have emotional crazy stories but for me it was just curiosity. And it worked!! I learned complex ML topics(not the full basis tho i need to still learn) and how to make somehting professional. I did use AI for debugging and for the streamlit application not everything tho and I think it turned out well. I’m submitting this project to the science and engineering fair of metro detroit next year and as a freshman I think i did pretty well. (praying for isef wish me good luck)!", "repo": "https://github.com/DrivingStork3952/glassbox-mirna-pd-biomarkers", "demo": "https://arjundakshin.hackclub.app/"}]...
|
[{"post_id": 43406, "ts": "202 [{"post_id": 43406, "ts": "2026-08-08T17:05:00Z", "hours": 1.0028, "text": "I made the final dashboard!!! I’m almost done now; I just have to ship, and voilà. I’ve come a long way with this project. Obviously, I’m not done after the next couple of months; I am going to be adding external validation and more pathway enrichment. But those can’t really be counted as coding hours, so this is what I’m shipping. Tbh, I used a bit of AI for help with the Streamlit dashboard because I’m more of a backend guy, although I know a little bit of HTML and CSS."}, {"post_id": 36612, "ts": "2026-07-28T20:38:55Z", "hours": 2.3675, "text": "I started my streamlit dashboard and am gonna start accounting for batch effect in my therapeutic model. Also I generated more plots and started thinking about poster for the Science Fair. Also make sure to check out my github repo in my project i just finished my readme."}, {"post_id": 33094, "ts": "2026-07-22T18:10:16Z", "hours": 4.7242, "text": "holy frick, it’s been a while since I wrote a devlog. Over the last stretch, I accidentally turned my project into a confusing two-layer setup. I eventually realized I had completely messed up the labels and was kind of just assuming things. The dataset actually has four groups: PD, CONTROL, PD(BASELINE), and PD(RASAGILINE). Once that clicked, my brain was fried for a bit. To reset, I went back to basics and rebuilt the model using just the PD and CONTROL samples. I also added a filter so that any samples with steps: no data get removed. Once I cleaned that up and reran everything, the results were insanely good — way more stable and way more believable than before. On the modeling side, I now have a new training loop built around Elastic Net. I basically ran a Hunger Games-style showdown between a bunch of model types, and Elastic Net absolutely dominated. I hooked this into my cross-validation pipeline and started generating a fresh set of SHAP plots so I can actually see which miRNAs are driving the predictions. Next, I’m planning to move from just “cool metrics” to real biological validation. I want to use tools like TargetScan and KEGG pathway analysis to check whether my top miRNA biomarkers line up with known Parkinson’s-related pathways and targets. If the pathways make sense biologically, that’ll be a huge confidence boost that my model isn’t just overfitting. I’m also planning to build a Streamlit dashboard so the whole pipeline is actually usable and demo-able at the science fair in a couple of months. The idea is to have a clean interface where someone can see performance metrics, SHAP plots, key biomarkers, and maybe even pathway summaries without digging through notebooks. On top of that, I want to generate way more diagnostic plots — ROC curves, precision–recall curves, PCA visualizations, SHAP summary plots, and anything else that helps explain what the model is doing. Basically, I’m trying to turn this into a transparent, glass-box pipeline instead of a black-box model. Overall, even though I went through a mini-labels disaster, I feel like I’m in a really good place now. The pipeline is cleaner, the results are stronger, and I actually understand what’s going on under the hood — honestly, I’m doing awesome."}, {"post_id": 20258, "ts": "2026-07-01T20:08:02Z", "hours": 3.6331, "text": "DevLog 4: PD Biomarkers Today was an absolutely massive workday! I spent 2 hours and 31 minutes fixing two layers of data leakage. 🛠️ Bug Fixes & Refactoring Data Leakage Elimination : Previously, CPM normalization and the gene filter were running on the full dataset before the train-test split. Pipeline Consolidation : Fixed this by nesting CPM normalization, gene filtering, and Boruta feature selection inside the cross-validation fold loops. Notebook Cleanup : Consolidated everything into one clean notebook: 03_nested_cv_evaluation.ipynb . 📊 Model Performance (Leak-Free Pipeline) When I ran the leak-free pipeline, Elastic Net blew everything else out of the water: Elastic Net : 0.992 ± 0.010 AUC-ROC Random Forest : 0.962 AUC-ROC XGBoost : 0.938 AUC-ROC 🧪 The Proof (Permutation Testing) To make sure the 0.992 wasn’t a ghost score, I ran a permutation test with shuffled labels. AUC Collapse : Dropped to chance level (0.43 - 0.48). Feature Reduction : Boruta features dropped from 205 down to just 9 per fold. Conclusion : This proves the biological signal is 100% real. Next Steps & Deliverables Batch Effects : Skipped ComBat for now since Phase 1 is just a single cohort. I will check the GEO metadata for internal batch run dates tomorrow. Diagnostic Plots : Wrapped up the day by generating a clean set of plots, including ROC (real vs. shuffled), PCA, and a SHAP plot flagging hsa-mir-23a as the top biomarker."}, {"post_id": 18672, "ts": "2026-06-29T21:15:03Z", "hours": 1.5444, "text": "I finished my README!!! It took a while(not too long though) and it made my repo look professional ig. The preprocessing bug is still up and running so I’ll spend some more time on that. If you wanna see the repo click here: https://github.com/DrivingStork3952"}, {"post_id": 17265, "ts": "2026-06-28T00:00:51Z", "hours": 1.8703, "text": "Very good progress today I added new git files to make the code run smoother ig. Also I used markdown to write a Readme which was fun(this is my first time with all this documentation and stuff). Also when I was migrating from Google colab to vscode i have to change some parts of my notebook and somehow there’s a bug in preprocessing. So tomorrow I’ll be trying to fix that, I’d say it’s a pretty good workday."}, {"post_id": 14129, "ts": "2026-06-23T03:29:23Z", "hours": 1.7958, "text": "DevLog #2 for PD Biomarkers Yesterday XGboost wasnt really working so today I switched to logistic regression and it worked perfectly. My ROC AUC and AP are now pretty solid and I can trust the biomarkers that my model extract. Tomorrow, I’m going to be try to use Random Forest standard instead of XGboost and maybe see if that makes it better. Also, I’m going to focus on documentation readmes all that. As you can see in the PCA Space plot the controls and the patients are split up pretty well and looks clean. I’m also looking into using TargetScan with Kegg Pathway Analysis to Biologically validate my top 14 biomarkers."}, {"post_id": 13498, "ts": "2026-06-22T02:54:08Z", "hours": 1.1031, "text": "Hi! This is my first parkinson’s project devlog. I started this project around 3 months ago, and I knew nothing about machine learning then. In that time, I learnt everything I needed for my project. So far, I have made a decent pipeline to identify biomarkers. I’m using an NCBI GEO Superseries for training, and I was planning on using a Portuguese cohort for extra real-world data tests. Today, when I was comparing whether to use XGBoost or Random Forest, it gave accuracies of 93-95%, but after more tests, I realized that my AUC rn is around 70%. Tomorrow, I’m going to try switching from XGBoost + Boruta feature selection to Logistic Regression to see if my AUC can be brought up to at least 80."}]...
|
Title: PD biomarkers by @arjundakshin | Stardance
Title: PD biomarkers by @arjundakshin | Stardance
Devlogs:
Hi! This is my first parkinson’s project devlog. I started this project around 3 months ago, and I knew nothing about machine learning then. In that time, I learnt everything I needed for my project. So far, I have made a decent pipeline to identify biomarkers. I’m using an NCBI GEO Superseries for training, and I was planning on using a Portuguese cohort for extra real-world data tests. Today, when I was comparing whether to use XGBoost or Random Forest, it gave accuracies of 93-95%, but after more tests, I realized that my AUC rn is around 70%. Tomorrow, I’m going to try switching from XGBoost + Boruta feature selection to Logistic Regression to see if my AUC can be brought up to at least 80.
DevLog #2 for PD Biomarkers Yesterday XGboost wasnt really working so today I switched to logistic regression and it worked perfectly. My ROC AUC and AP are now pretty solid and I can trust the biomarkers that my model extract. Tomorrow, I’m going to be try to use Random Forest standard instead of XGboost and maybe see if that makes it better. Also, I’m going to focus on documentation readmes all that. As you can see in the PCA Space plot the controls and the patients are split up pretty well and looks clean. I’m also looking into using TargetScan with Kegg Pathway Analysis to Biologically validate my top 14 biomarkers.
Very good progress today I added new git files to make the code run smoother ig. Also I used markdown to write a Readme which was fun(this is my first time with all this documentation and stuff). Also when I was migrating from Google colab to vscode i have to change some parts of my notebook and somehow there’s a bug in preprocessing. So tomorrow I’ll be trying to fix that, I’d say it’s a pretty good workday.
I finished my README!!! It took a while(not too long though) and it made my repo look professional ig. The preprocessing bug is still up and running so I’ll spend some more time on that. If you wanna see the repo click here: https://github.com/DrivingStork3952
DevLog 4: PD Biomarkers Today was an absolutely massive workday! I spent 2 hours and 31 minutes fixing two layers of data leakage. 🛠️ Bug Fixes & Refactoring Data Leakage Elimination : Previously, CPM normalization and the gene filter were running on the full dataset before the train-test split. Pipeline Consolidation : Fixed this by nesting CPM normalization, gene filtering, and Boruta feature selection inside the cross-validation fold loops. Notebook Cleanup : Consolidated everything into one clean notebook: 03_nested_cv_evaluation.ipynb . 📊 Model Performance (Leak-Free Pipeline) When I ran the leak-free pipeline, Elastic Net blew everything else out of the water: Elastic Net : 0.992 ± 0.010 AUC-ROC Random Forest : 0.962 AUC-ROC XGBoost : 0.938 AUC-ROC 🧪 The Proof (Permutation Testing) To make sure the 0.992 wasn’t a ghost score, I ran a permutation test with shuffled labels. AUC Collapse : Dropped to chance level (0.43 - 0.48). Feature Reduction : Boruta features dropped from 205 down to just 9 per fold. Conclusion : This proves the biological signal is 100% real. Next Steps & Deliverables Batch Effects : Skipped ComBat for now since Phase 1 is just a single cohort. I will check the GEO metadata for internal batch run dates tomorrow. Diagnostic Plots : Wrapped up the day by generating a clean set of plots, including ROC (real vs. shuffled), PCA, and a SHAP plot flagging hsa-mir-23a as the top biomarker.
holy frick, it’s been a while since I wrote a devlog. Over the last stretch, I accidentally turned my project into a confusing two-layer setup. I eventually realized I had completely messed up the labels and was kind of just assuming things. The dataset actually has four groups: PD, CONTROL, PD(BASELINE), and PD(RASAGILINE). Once that clicked, my brain was fried for a bit. To reset, I went back to basics and rebuilt the model using just the PD and CONTROL samples. I also added a filter so that any samples with steps: no data get removed. Once I cleaned that up and reran everything, the results were insanely good — way more stable and way more believable than before. On the modeling side, I now have a new training loop built around Elastic Net. I basically ran a Hunger Games-style showdown between a bunch of model types, and Elastic Net absolutely dominated. I hooked this into my cross-validation pipeline and started generating a fresh set of SHAP plots so I can actually see which miRNAs are driving the predictions. Next, I’m planning to move from just “cool metrics” to real biological validation. I want to use tools like TargetScan and KEGG pathway analysis to check whether my top miRNA biomarkers line up with known Parkinson’s-related pathways and targets. If the pathways make sense biologically, that’ll be a huge confidence boost that my model isn’t just overfitting. I’m also planning to build a Streamlit dashboard so the whole pipeline is actually usable and demo-able at the science fair in a couple of months. The idea is to have a clean interface where someone can see performance metrics, SHAP plots, key biomarkers, and maybe even pathway summaries without digging through notebooks. On top of that, I want to generate way more diagnostic plots — ROC curves, precision–recall curves, PCA visualizations, SHAP summary plots, and anything else that helps explain what the model is doing. Basically, I’m trying to turn this into a transparent, glass-box pipeline instead of a black-box model. Overall, even though I went through a mini-labels disaster, I feel like I’m in a really good place now. The pipeline is cleaner, the results are stronger, and I actually understand what’s going on under the hood — honestly, I’m doing awesome.
I started my streamlit dashboard and am gonna start accounting for batch effect in my therapeutic model. Also I generated more plots and started thinking about poster for the Science Fair. Also make sure to check out my github repo in my project i just finished my readme.
I made the final dashboard!!! I’m almost done now; I just have to ship, and voilà. I’ve come a long way with this project. Obviously, I’m not done after the next couple of months; I am going to be adding external validation and more pathway enrichment. But those can’t really be counted as coding hours, so this is what I’m shipping. Tbh, I used a bit of AI for help with the Streamlit dashboard because I’m more of a backend guy, although I know a little bit of HTML and CSS.
Ships:
I built a glassbox-mirna, a leak-free xai pipeline and a interactive streamlit web application for early stage Parkinson’s disease biomarker discovery. After I got the biomarker I tested drug response against a drug called rasagaline. Using GSE269781 a serum exosome mirna data I ran a 2 tier architecture with elastic net and random forest models validated via outer-loop monte carlo cross validation. Now that I have all the technical stuff out of the way now its time for the why. To be honest… I don’t know I heard about neurodegenerative diseases in science class and just went with the flow. Most people have emotional crazy stories but for me it was just curiosity. And it worked!! I learned complex ML topics(not the full basis tho i need to still learn) and how to make somehting professional. I did use AI for debugging and for the streamlit application not everything tho and I think it turned out well. I’m submitting this project to the science and engineering fair of metro detroit next year and as a freshman I think i did pretty well. (praying for isef wish me good luck)!...
|
1792975881.000724
|
1793062281.000724
|
|
30635
|
DoMax.lt by @DoMax | Stardance
|
DoMax
|
1
|
21.0
|
287
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-09T20:23:38Z", "hours": 21.0, "multiplier": 11.58, "payout": 287, "blessing": "neutral", "text": "After hours of intense rebuilding DoMax.lt, which was left untouched for almost a year, I managed to make it rise from the dead! This isn’t your average, boring portfolio. Instead, I tried to house 12 unique projects and 14 exceptional blog posts that document my chaotic reality of building things. From the highs of creating Matcha Linux and the tactical board game Onlinja, to the brutal honesty of how corporate APIs killed EchoTuner, DoMax.lt captures just how wild can turning ideas into real life get. This site also vaults valuable lessons from my projects that flopped you can’t get anywhere else. The entire website is fully decoupled, lightning-fast, and 100% free, open-source and forkable via GitHub so you can start building yours too!", "repo": "https://github.com/domasles/domax-lt", "demo": "https://domax.lt"}]...
|
[{"post_id": 25462, "ts": "202 [{"post_id": 25462, "ts": "2026-07-09T19:03:35Z", "hours": 7.0461, "text": "The End? After 7 hours and endless memories After spending more than 7 hours , completing the library (which now consists of 12 unique projects and 14 amazing blog posts) and upgrading the viewing experience by MUCH, I can finally state that DoMax.lt is finally COMPLETE! Of course, complete or not, blog library will continue to grow over the years. Honestly, I feel very relieved about the fact that my own site now houses my greatest achievements with crazy stories to share, as new posts are written in a format of a memory tale . I’m hoping the world is going to lean towards Open Source more and more. What new blogs were added? Posts and project descriptions for Matcha Linux and Onlinja are out! I also remembered other successful projects I’m very proud of. One of them caused a snowball effect and started the biggest cross-class collaboration from students’ initiative my school has ever seen. I must mention that it was the first cross-class IT project, and heavily promoted by our school, so you might want to read about it here . If I like the theme, can I fork it? Yes! Like each and every one of my projects (like any other true open-source project) this is forkable, and even has instructions on how to make it truly yours. Check my site’s GitHub to learn more! Visit DoMax.lt and see how ideas or strangest situations turn into real projects!"}, {"post_id": 24381, "ts": "2026-07-07T22:06:05Z", "hours": 3.6597, "text": "Unexpected turn A shift? In the last devlog I told you I’d make posts about Matcha Linux and Onlinja . Well, I LIED , but let me explain: I remembered that I had more interesting stories to uncover, and had to vent a bit xD What I wrote about in my latest blog posts: Pebble revival : I was thrilled to find out what the community has done in favor to preserve a smartwatch. School project and beef with Wordpress : How Wordpress caused a very bumpy development journey, and what I’ve learned from it. That’s it? Structurally speaking, yes. From a visual standpoint you wouldn’t notice anything… Until you turn on dark mode - the site doesn’t change! As a temporary solution I now force light mode on my website. In the future I will probably implement proper dark mode. I also made sure building the site threw no errors I caused. Everything runs smoothly from one end to another. I also made sure that when browsing a project, menu displays “Projects” as a selected option. Previously it was (for some reason) hardcoded to only be affected when viewing a blog post. So are you NOW writing about Matcha Linux and Onlinja? Yes! And then the site will be ready for a ship, with a possible additional blog post about my journey with Hack Club’s Sprig . My life always results in something unusual and exciting (sometimes in goofy ways). To know more, check out DoMax.lt !"}, {"post_id": 23807, "ts": "2026-07-06T23:31:55Z", "hours": 1.7139, "text": "What rises, has to fall How a great project can be killed by bigger 3rd parties Last year, during Summer of Making, one of my largest projects was definitely the EchoTuner - an AI playlist generator. I loved the idea and poured all of myself to it. However, it heavily relied on Spotify’s API that has now become fairly inaccessible due to poor corporate decisions. If you want to see how a project gets killed by a bigger player, read the newest blog here . Another thing I updated was the About Me page. It features less cheap-talk and something that might actually be interesting to read. I highly suggest you checking it out. Some visual elements have also been updated to keep consistency with design language (mostly hover events/animations). Tomorrow I will become a writer I have big plans for tomorrow. I’ll finally get all the missing bits together to post something about my best pair of projects I have ever made. They are Matcha Linux together with its full suite, and Onlinja , which is the best game you’ll ever play. If you want to see great execution of simplicity, wait a day or two, a new devlog is on its way! Is there anything beyond that? No, I don’t think so. Unless some memory or idea comes to mind, I am not planning to post anything before shipping this site on Stardance. That said, I already have many ideas for my other projects. We just have to wait! :D"}, {"post_id": 23166, "ts": "2026-07-05T23:40:47Z", "hours": 3.0172, "text": "More uncovered Quite interesting! In today’s devlog - new posts! I thought about sharing unheard stories of a flop ( Codebase Awareness Protocol ) that I made some time ago, with all the reasons of WHY exactly did it fail, as well as a success ( Raspbery Pi 1 optimization ) and how I utilized an old device that’s in perfect condition. Both are worth reading! You can click on the links above! Bugs can’t hide from me! In addition to 2 amazing blog posts, I both introduced and fixed a very obvious bug. In attempt to make everything look beautiful, with hover animations, I forgot the fact that this site isn’t still fully decoupled . Some elements, instead of being reused, are coded in-place, without newer styling compatibility. Luckily, when I noticed, the fix was a simple line replacement. Everything functions as it should, and the site feels more responsive than ever before. Shaping the site The site is forming beautifully with more content to come. I’m trying to re-read my old project information and catch memories that are floating around. The goal is simple yet obvious - try to make reading my journey be fun and appealing . DoMax.lt won’t stop growing, even after Stardance, so make sure to visit it once in a while! :D"}, {"post_id": 22955, "ts": "2026-07-05T17:04:51Z", "hours": 3.2958, "text": "Something personal What was I cooking ? Behind the scenes, I have greatly redesigned the About Page and added a new post for the Revival of DoMax.lt ! Within these pages is a more raw look at my technological journey, as well as how the site is going to be updated from now on. Do I have any quick plans? Absolutely! I MUST document the deprecation notice of EchoTuner and the challenges of making it. NOTE: the website might not work at the time you’re reading this, but the auth flow should come back online Speaking of challenges, one of my most challenging projects so far was Matcha Linux that you can view on Stardance too! Next will probably come my less-known or failed projects, like CAP , Detention Loop , as well as some of group projects led by me (great example of this is SkyLink ) I think I’ll need some time to think about all of these projects and showcase everything about them. Stay tuned for further updates!"}, {"post_id": 22391, "ts": "2026-07-04T20:55:11Z", "hours": 2.0122, "text": "Back to blogging! In this devlog: how am I trying to revive my personal page - DoMax.lt ! Here I am again! Back to my personal page that’s quite old at this point. Almost a whole year without posting! Time to change that. What technology am I using? I am using Jekyll for page generation. Jekyll’s charm is very simple - it requires everything to be written in Markdown, while the template for a site can just be taken from elsewhere and modified (by editing or adding your own Markdown files). Super useful and super easy for anyone who doesn’t want to mess around setting up a Wordpress machine, but loves to tinker a bit. THAT SAID - modifying the themes can sometimes be painful, as they’re not frequently updated. I got lucky - my chosen template wasn’t too cluttered up, but I remember having to put in some work to clean and update it to a usable, production-ready state. The thing I am happy about though is my Docker workflow. It’s very convenient - lets me preview my page after editing anything locally. And rebuilds the container extremely fast too! Since I said it’s not a new project, well then what IS new? Glad you asked! I always missed a “Featured Projects” section and I want to shape this site not only for projects, but also standalone blogs. Now it was shaped to act only as a project showcase, but there are other things I’m passionate about. What exactly am I planning to add next? First of all: My pile of projects that I have finished to a usable state, but never showcased. They deserve more attention. A couple of blogs. I recently discovered that the old model Pebble Steel still works due to massive preservation efforts and I’m looking forward to getting the new Pebble Time 2, whch is a part of the reboot, also some Raspberry Pi and Alpine/Matcha Linux findings. And the rest we’ll see about! To follow my journey, don’t forget to visit DoMax.lt and the other projects I am hosting or making :D"}]...
|
Title: DoMax.lt by @DoMax | Stardance
Devlogs:
Ba Title: DoMax.lt by @DoMax | Stardance
Devlogs:
Back to blogging! In this devlog: how am I trying to revive my personal page - DoMax.lt ! Here I am again! Back to my personal page that’s quite old at this point. Almost a whole year without posting! Time to change that. What technology am I using? I am using Jekyll for page generation. Jekyll’s charm is very simple - it requires everything to be written in Markdown, while the template for a site can just be taken from elsewhere and modified (by editing or adding your own Markdown files). Super useful and super easy for anyone who doesn’t want to mess around setting up a Wordpress machine, but loves to tinker a bit. THAT SAID - modifying the themes can sometimes be painful, as they’re not frequently updated. I got lucky - my chosen template wasn’t too cluttered up, but I remember having to put in some work to clean and update it to a usable, production-ready state. The thing I am happy about though is my Docker workflow. It’s very convenient - lets me preview my page after editing anything locally. And rebuilds the container extremely fast too! Since I said it’s not a new project, well then what IS new? Glad you asked! I always missed a “Featured Projects” section and I want to shape this site not only for projects, but also standalone blogs. Now it was shaped to act only as a project showcase, but there are other things I’m passionate about. What exactly am I planning to add next? First of all: My pile of projects that I have finished to a usable state, but never showcased. They deserve more attention. A couple of blogs. I recently discovered that the old model Pebble Steel still works due to massive preservation efforts and I’m looking forward to getting the new Pebble Time 2, whch is a part of the reboot, also some Raspberry Pi and Alpine/Matcha Linux findings. And the rest we’ll see about! To follow my journey, don’t forget to visit DoMax.lt and the other projects I am hosting or making :D
Something personal What was I cooking ? Behind the scenes, I have greatly redesigned the About Page and added a new post for the Revival of DoMax.lt ! Within these pages is a more raw look at my technological journey, as well as how the site is going to be updated from now on. Do I have any quick plans? Absolutely! I MUST document the deprecation notice of EchoTuner and the challenges of making it. NOTE: the website might not work at the time you’re reading this, but the auth flow should come back online Speaking of challenges, one of my most challenging projects so far was Matcha Linux that you can view on Stardance too! Next will probably come my less-known or failed projects, like CAP , Detention Loop , as well as some of group projects led by me (great example of this is SkyLink ) I think I’ll need some time to think about all of these projects and showcase everything about them. Stay tuned for further updates!
More uncovered Quite interesting! In today’s devlog - new posts! I thought about sharing unheard stories of a flop ( Codebase Awareness Protocol ) that I made some time ago, with all the reasons of WHY exactly did it fail, as well as a success ( Raspbery Pi 1 optimization ) and how I utilized an old device that’s in perfect condition. Both are worth reading! You can click on the links above! Bugs can’t hide from me! In addition to 2 amazing blog posts, I both introduced and fixed a very obvious bug. In attempt to make everything look beautiful, with hover animations, I forgot the fact that this site isn’t still fully decoupled . Some elements, instead of being reused, are coded in-place, without newer styling compatibility. Luckily, when I noticed, the fix was a simple line replacement. Everything functions as it should, and the site feels more responsive than ever before. Shaping the site The site is forming beautifully with more content to come. I’m trying to re-read my old project information and catch memories that are floating around. The goal is simple yet obvious - try to make reading my journey be fun and appealing . DoMax.lt won’t stop growing, even after Stardance, so make sure to visit it once in a while! :D
What rises, has to fall How a great project can be killed by bigger 3rd parties Last year, during Summer of Making, one of my largest projects was definitely the EchoTuner - an AI playlist generator. I loved the idea and poured all of myself to it. However, it heavily relied on Spotify’s API that has now become fairly inaccessible due to poor corporate decisions. If you want to see how a project gets killed by a bigger player, read the newest blog here . Another thing I updated was the About Me page. It features less cheap-talk and something that might actually be interesting to read. I highly suggest you checking it out. Some visual elements have also been updated to keep consistency with design language (mostly hover events/animations). Tomorrow I will become a writer I have big plans for tomorrow. I’ll finally get all the missing bits together to post something about my best pair of projects I have ever made. They are Matcha Linux together with its full suite, and Onlinja , which is the best game you’ll ever play. If you want to see great execution of simplicity, wait a day or two, a new devlog is on its way! Is there anything beyond that? No, I don’t think so. Unless some memory or idea comes to mind, I am not planning to post anything before shipping this site on Stardance. That said, I already have many ideas for my other projects. We just have to wait! :D
Unexpected turn A shift? In the last devlog I told you I’d make posts about Matcha Linux and Onlinja . Well, I LIED , but let me explain: I remembered that I had more interesting stories to uncover, and had to vent a bit xD What I wrote about in my latest blog posts: Pebble revival : I was thrilled to find out what the community has done in favor to preserve a smartwatch. School project and beef with Wordpress : How Wordpress caused a very bumpy development journey, and what I’ve learned from it. That’s it? Structurally speaking, yes. From a visual standpoint you wouldn’t notice anything… Until you turn on dark mode - the site doesn’t change! As a temporary solution I now force light mode on my website. In the future I will probably implement proper dark mode. I also made sure building the site threw no errors I caused. Everything runs smoothly from one end to another. I also made sure that when browsing a project, menu displays “Projects” as a selected option. Previously it was (for some reason) hardcoded to only be affected when viewing a blog post. So are you NOW writing about Matcha Linux and Onlinja? Yes! And then the site will be ready for a ship, with a possible additional blog post about my journey with Hack Club’s Sprig . My life always results in something unusual and exciting (sometimes in goofy ways). To know more, check out DoMax.lt !
The End? After 7 hours and endless memories After spending more than 7 hours , completing the library (which now consists of 12 unique projects and 14 amazing blog posts) and upgrading the viewing experience by MUCH, I can finally state that DoMax.lt is finally COMPLETE! Of course, complete or not, blog library will continue to grow over the years. Honestly, I feel very relieved about the fact that my own site now houses my greatest achievements with crazy stories to share, as new posts are written in a format of a memory tale . I’m hoping the world is going to lean towards Open Source more and more. What new blogs were added? Posts and project descriptions for Matcha Linux and Onlinja are out! I also remembered other successful projects I’m very proud of. One of them caused a snowball effect and started the biggest cross-class collaboration from students’ initiative my school has ever seen. I must mention that it was the first cross-class IT project, and heavily promoted by our school, so you might want to read about it here . If I like the theme, can I fork it? Yes! Like each and every one of my projects (like any other true open-source project) this is forkable, and even has instructions on how to make it truly yours. Check my site’s GitHub to learn more! Visit DoMax.lt and see how ideas or strangest situations turn into real projects!
Ships:
After hours of intense rebuilding DoMax.lt, which was left untouched for almost a year, I managed to make it rise from the dead! This isn’t your average, boring portfolio. Instead, I tried to house 12 unique projects and 14 exceptional blog posts that document my chaotic reality of building things. From the highs of creating Matcha Linux and the tactical board game Onlinja, to the brutal honesty of how corporate APIs killed EchoTuner, DoMax.lt captures just how wild can turning ideas into real life get. This site also vaults valuable lessons from my projects that flopped you can’t get anywhere else. The entire website is fully decoupled, lightning-fast, and 100% free, open-source and forkable via GitHub so you can start building yours too!...
|
1792979610.9153986
|
1793066010.9153986
|
|
46400
|
WebbFinder by @busy_cheesy | Stardance
|
busy_cheesy
|
2
|
18.0
|
287
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T20:22:30Z", "hours": 4.0, "multiplier": 14.95, "payout": 56, "blessing": "neutral", "text": "This is a refined version of my first ship, WebbFinder, an app made in pygame that lets you view the latest James Webb Space Telescope imagery. After reading the constructive critism left on my ship, I have gone back and made adjustments to the code, notably to improve it’s archetecture and UI, as those were the issues highlighted by the people. I have used the same image as my first ship to show the difference between the two. Now some people also said that this could be a website, but the goal of this project, which was for me to learn how to use APIs, would have been much harder to achieve with a website because I have no experience with html, js, or css. Thus, the project would have taken exponentially longer than python, which I have a lot more experience in. Testing my project truly opened my eyes to how beautiful space really is… there is so much beauty out there and so much more that we have yet to find. The hardest project as a whole still remains the initial API setup, which after several hours I got working, but the feeling of success at the end is always worth it, and I have to say I am very proud of this new version. To run the project, you can either download the exe, or just follow the installation instructions in the read me. If you want to see the simple telescope animation, this only happens if you clone the repository and delete the json file, as the exe comes with the json preloaded. I also didn’t update the json file on purpose to showcase how it updates. If you run the project, you should see the image counter increase after around 30 seconds when the request comes back. All the other features are still here: Jump to date: find the image with the closest date to the one inputted Download: 3 options, medium, large or original. The originals are sometimes very big and might take some time to download Link takes you to the ESA/WEBB website for more information about the image That’s about all there is to it. For more info look at the first ship. Thanks for having read this btw, I appreciate you :D", "repo": "https://github.com/cream-of-wheat/WebbFinder", "demo": "https://github.com/cream-of-wheat/WebbFinder/releases/tag/v1.0.1"}, {"ship_num": 2, "ts": "2026-08-20T01:25:38Z", "hours": 14.0, "multiplier": 16.78, "payout": 231, "blessing": "neutral", "text": "This is WebbFinder, an app made in pygame that lets you browse the latest James Webb Space Telescope images through the official ESA/Webb image API. This is my first time using APIs, so getting that to work was a bit of a hassle, but I thoroughly enjoyed making this project. Space is always fascinating and making something about the James Webb telescope really filled me with awe about how beautiful the universe truly is. The app works like this: If you do not have the data.json file, you will have to wait ~30 seconds for the first page to load. You will then be able to browse the latest 100 images. It is recommended to wait for the rest of the pages to load, so that it is saved and your next startup is much quicker. If you do have the data.json file, the code simply requests the latest page and compares if you already have the images, and adds any new ones. You can browse the images in chronological order, which displays the actual image, its title, the description, date, link to the ESA website, and a download option. The download option gives you 3 options: medium, large or original, each one bigger than the last. A ‘jump to date’ feature is also present, letting you choose to look at images whose date is closest to the date you have selected. To keep the feel of the app smooth, the check for new images is done in the background. This is much different from the first versions where the whole screen would freeze, so multithreading was another thing I had to familiarize myself with. Furthermore, the neighbouring five images are also preloaded to ensure that there are no stutters while viewing. Overall, I am very proud of this system that ensured a smooth browsing experience, and of the project as a whole. Thanks for having read my pitch :D", "repo": "https://github.com/cream-of-wheat/WebbFinder", "demo": "https://github.com/cream-of-wheat/WebbFinder/releases/tag/v1.0.1"}]...
|
[{"post_id": 63157, "ts": "202 [{"post_id": 63157, "ts": "2026-09-06T20:05:58Z", "hours": 2.7256, "text": "Overhauled the UI, it now looks much cleaner than the previous bare-boned look. I also made several adjustments to the code to improve it’s archetecture. Examples include splitting the code into multiple files (it was one 600+ line file before lol), and moving the download file selection to the pygame gui instead of having the manager create a hidden window with tkinter. Also added headers at the top to make it look better, as well as changing the color pallette and fixing a hover bug for the link."}, {"post_id": 51032, "ts": "2026-08-20T14:57:00Z", "hours": 1.0167, "text": "Made an exe version of the python script that holds a preloaded data.json. Had a little trouble with getting pygame_gui to install into the exe but it worked in the end. If you run the exe you should see a data.json created inside the same directory as the exe, and that is so it can be updated with the latest images"}, {"post_id": 50637, "ts": "2026-08-19T21:49:23Z", "hours": 3.3167, "text": "Final update The biggest issue in the earlier versions was the interface freezing whenever the app fetched new APi data or downloaded high-res images. To address this problem, i moved the network requests, cache updates, and image preloading onto the background threads using the threading module in python. Everything is much more smooth now. I also added an input parser that lets the user to select a specific date, which the app will find and jump to the image with the closest date. Furthermore, I added a download selector allowing users to save images in medium, large, or original quality via the native file save option. I also added a buffer system that preloads the previous and next five neighbouring images into memory (also in the background!) making the image switching instant with no lag."}, {"post_id": 49308, "ts": "2026-08-18T01:37:22Z", "hours": 3.1333, "text": "Can now view all of the James Webb space telescope images. Also optimized the manager to fetch just the first page to update the existing data file. If this file didnt exist at all, then a loading screen will display a little animation of stars while the first page loads, and upon it loading it lets the user view the images while the second page is loaded via background threading. Once all the pages have been downloaded, or it has been detected that the data already had that image, the process is stopped and the data is then saved. Also, once the user loads an image by clicking previous or next, that image is stored to avoid unnecesarily calling the same request again. Pretty exciting stuff"}, {"post_id": 48571, "ts": "2026-08-17T00:47:30Z", "hours": 4.4669, "text": "Got the app into a working state, can move forwards and backwards between images, super exciting. Extracted more info from the JSON to get the description, title, and date. UI is looking better, still a little bare. However, it is currently only possible to view the first page of images, so next devlogs will be focused on adding access to all the images, as well as improving their loading speeds. The core viewing mechanic is functional tho!"}, {"post_id": 44880, "ts": "2026-08-10T22:27:57Z", "hours": 2.8336, "text": "First time here, progress is being made. Didn’t know anything about APIs or jsons but here is the first succesful render. Biggest obstacle was figuring out how to request the image data and properly display it in pygame (of which I also knew very little about, which is why it is so barebones right now!) Foundation established, things are looking good."}]...
|
Title: WebbFinder by @busy_cheesy | Stardance
Dev Title: WebbFinder by @busy_cheesy | Stardance
Devlogs:
First time here, progress is being made. Didn’t know anything about APIs or jsons but here is the first succesful render. Biggest obstacle was figuring out how to request the image data and properly display it in pygame (of which I also knew very little about, which is why it is so barebones right now!) Foundation established, things are looking good.
Got the app into a working state, can move forwards and backwards between images, super exciting. Extracted more info from the JSON to get the description, title, and date. UI is looking better, still a little bare. However, it is currently only possible to view the first page of images, so next devlogs will be focused on adding access to all the images, as well as improving their loading speeds. The core viewing mechanic is functional tho!
Can now view all of the James Webb space telescope images. Also optimized the manager to fetch just the first page to update the existing data file. If this file didnt exist at all, then a loading screen will display a little animation of stars while the first page loads, and upon it loading it lets the user view the images while the second page is loaded via background threading. Once all the pages have been downloaded, or it has been detected that the data already had that image, the process is stopped and the data is then saved. Also, once the user loads an image by clicking previous or next, that image is stored to avoid unnecesarily calling the same request again. Pretty exciting stuff
Final update The biggest issue in the earlier versions was the interface freezing whenever the app fetched new APi data or downloaded high-res images. To address this problem, i moved the network requests, cache updates, and image preloading onto the background threads using the threading module in python. Everything is much more smooth now. I also added an input parser that lets the user to select a specific date, which the app will find and jump to the image with the closest date. Furthermore, I added a download selector allowing users to save images in medium, large, or original quality via the native file save option. I also added a buffer system that preloads the previous and next five neighbouring images into memory (also in the background!) making the image switching instant with no lag.
Made an exe version of the python script that holds a preloaded data.json. Had a little trouble with getting pygame_gui to install into the exe but it worked in the end. If you run the exe you should see a data.json created inside the same directory as the exe, and that is so it can be updated with the latest images
Overhauled the UI, it now looks much cleaner than the previous bare-boned look. I also made several adjustments to the code to improve it’s archetecture. Examples include splitting the code into multiple files (it was one 600+ line file before lol), and moving the download file selection to the pygame gui instead of having the manager create a hidden window with tkinter. Also added headers at the top to make it look better, as well as changing the color pallette and fixing a hover bug for the link.
Ships:
This is WebbFinder, an app made in pygame that lets you browse the latest James Webb Space Telescope images through the official ESA/Webb image API. This is my first time using APIs, so getting that to work was a bit of a hassle, but I thoroughly enjoyed making this project. Space is always fascinating and making something about the James Webb telescope really filled me with awe about how beautiful the universe truly is. The app works like this: If you do not have the data.json file, you will have to wait ~30 seconds for the first page to load. You will then be able to browse the latest 100 images. It is recommended to wait for the rest of the pages to load, so that it is saved and your next startup is much quicker. If you do have the data.json file, the code simply requests the latest page and compares if you already have the images, and adds any new ones. You can browse the images in chronological order, which displays the actual image, its title, the description, date, link to the ESA website, and a download option. The download option gives you 3 options: medium, large or original, each one bigger than the last. A ‘jump to date’ feature is also present, letting you choose to look at images whose date is closest to the date you have selected. To keep the feel of the app smooth, the check for new images is done in the background. This is much different from the first versions where the whole screen would freeze, so multithreading was another thing I had to familiarize myself with. Furthermore, the neighbouring five images are also preloaded to ensure that there are no stutters while viewing. Overall, I am very proud of this system that ensured a smooth browsing experience, and of the project as a whole. Thanks for having read my pitch :D
This is a refined version of my first ship, WebbFinder, an app made in pygame that lets you view the latest James Webb Space Telescope imagery. After reading the constructive critism left on my ship, I have gone back and made adjustments to the code, notably to improve it’s archetecture and UI, as those were the issues highlighted by the people. I have used the same image as my first ship to show the difference between the two. Now some people also said that this could be a website, but the goal of this project, which was for me to learn how to use APIs, would have been much harder to achieve with a website because I have no experience with html, js, or css. Thus, the project would have taken exponentially longer than python, which I have a lot more experience in. Testing my project truly opened my eyes to how beautiful space really is… there is so much beauty out there and so much more that we have yet to find. The hardest project as a whole still remains the initial API setup, which after several hours I got working, but the feeling of success at the end is always worth it, and I have to say I am very proud of this new version. To run the project, you can either download the exe, or just follow the installation instructions in the read me. If you want to see the simple telescope animation, this only happens if you clone the repository and delete the json file, as the exe comes with the json preloaded. I also didn’t update the json file on purpose to showcase how it updates. If you run the project, you should see the image counter increase after around 30 seconds when the request comes back. All the other features are still here: Jump to date: find the image with the closest date to the one inputted Download: 3 options, medium, large or original. The originals are sometimes very big and might take some time to download Link takes you to the ESA/WEBB website for more information about the image That’s about all there is to it. For more info look at the first ship. Thanks for having read this btw, I appreciate you :D...
|
1792976065.7005382
|
1793062465.7005382
|
|
59781
|
Astronomical CNN by @RedPanda | Stardance
|
RedPanda
|
1
|
19.0
|
287
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-10T20:14:40Z", "hours": 19.0, "multiplier": 15.48, "payout": 287, "blessing": "neutral", "text": "ITS THE FINAL DEVLOG!!!!!! This project tests whether small datasets can be used to train CNN and AI models effectively. I use image augmentation to see which level of image variation affects the final result. To show that this can be done on my own principles, the project uses only open data from NASA and ESO, so no one’s work is used without permission. Check out the website (here)[https://pratyush-m-code.github.io/Basic-AI/]! Check out the Dataset (here)[https://zenodo.org/records/23287441?token=eyJhbGciOiJIUzUxMiJ9.eyJpZCI6ImEzN2NkYWFiLWQ2M2UtNDQ3ZC04M2M2LTMwNGI3YzhmNzk0MyIsImRhdGEiOnt9LCJyYW5kb20iOiIzYmI0ZTFiNDg0NTFlZDNjMjViYzg5OGJkMGJlN2U4MCJ9.GpXlO0vDV-MJe3aFGRJuTAim7Iuxs3wpL4-BY8u8GdQnvdKFwgvUiyiS1Oy0C5o-5pbJc8zXYqKGhH89W0f1Og]!", "repo": "https://github.com/Pratyush-M-code/Basic-AI", "demo": "https://pratyush-m-code.github.io/Basic-AI/"}]...
|
[{"post_id": 78324, "ts": "202 [{"post_id": 78324, "ts": "2026-10-10T12:58:33Z", "hours": 0.7536, "text": "Devlog <we’re so close> ReadMe Updated GETTING CLOSE TO SHIPPING THIS IM SOO PUMPED"}, {"post_id": 78250, "ts": "2026-10-10T04:36:05Z", "hours": 2.1536, "text": "Devlog 12 (penultimate) Model Architecture, Results Interactive Chart, Github Page Learned SVG for the first time and made the model architecture pages; I mostly copied what worked and didn’t play around with CSS, but in the future, I’ll make the code easier to parse. My actual pride and joy is the results section, where I completed the SVG, uploaded it to GitHub, got the graph, and promptly added it to my code. This section is the only (minor) part that was made with the help of AI, as I could not figure out the logic (it’s too much). Also added a link and instructions for the GitHub page!"}, {"post_id": 77905, "ts": "2026-10-08T18:25:01Z", "hours": 1.1144, "text": "Devlog 11 (I’m losing my sanity.) Added Photo Elements and Update Images Last we left off, I finally finished with the buttons. Now I’ve done the logic for displaying the images and overwriting them every time. The border and CSS files were also correct to reflect these changes. I also added the augmentation files that the website pulls from to display the images along with alt text for each one. ps did i also mention that it SCALES TO THE DEVICE? <chef’s kiss>"}, {"post_id": 77373, "ts": "2026-10-06T18:10:45Z", "hours": 2.0014, "text": "Devlog 10 (FINALLY) Header and Footer. Fixed the header to make it look more professional as well as add navigation buttons with small quirky animations. I also added the footer, finally removing the ever-present tester h1 tag and replacing it with my bog-standard footer. I also animated the icon to make them jump when you hover over them!"}, {"post_id": 76689, "ts": "2026-10-04T10:48:38Z", "hours": 1.6047, "text": "Devlog 9 Buttons for Demo Finally completed the button designs for the demo part of the website when I show what augmentations I use for every model. Added hover animations and a (I assume) novel way of tracking the active state of buttons on Javascript. It uses an active class and assigns it to the clicked button by removing it from all others, ensuring that 2 buttons of the same class are not selected together. I have also made the website=> This is a test website and is subject to changes p.s. If the link seems broken check the project page!"}, {"post_id": 76639, "ts": "2026-10-04T07:32:33Z", "hours": 1.4444, "text": "Devlog 8 Section 1 and Pixelated Borders Created and wrote the first section with the problem statement and a short description of the project and my motivations. I also added the pixelated corners of my website to continue with the pixel art theme. I am going to start working on the augmentation tester and model architecture next."}, {"post_id": 76125, "ts": "2026-10-02T12:51:43Z", "hours": 1.1747, "text": "Devlog 7 Background Star Twinkle and Base Sections. I changed the JavaScript section to have random timings, size and positions of the stars in the script. I also changed the css to reflect the same and also added the transform command to the keyframe. I also set up the font (pixl sans) and also made the headers and base divs for the sections."}, {"post_id": 75560, "ts": "2026-09-30T13:10:22Z", "hours": 1.3617, "text": "Devlog 6 Small explanatory website. Working on making an explanation for this project to help in shipping and also to show to people. I have started working on the base HTML and CSS, but I have also added small twinkling stars in the background."}, {"post_id": 74444, "ts": "2026-09-27T11:59:14Z", "hours": 1.7075, "text": "Devlog 5 Early stopping + Test Function Added early stopping to prevent the model from overfitting and to preserve the best values. Added scikit-learn to work on the testing side and to help with storing the data for the multiple runs I do. The be-all and end-all will be running the model multiple times with different augment values and to see the sweet spot where the augmentation of the dataset starts to help generate more accurate results."}, {"post_id": 71882, "ts": "2026-09-21T18:07:29Z", "hours": 1.0164, "text": "Devlog 4 Added Augment Number and Seed, Added Validation Test Set and introduced CSV files for proper attribution. In Augment.py I finally bit the bullet and changed the script to work with titles like the name of the file. It will now also generate reproducible random results based on a seed function and number augments needed. In the Main.py I added validation data step to more clearly see where the model was over fitting. Also added the 2 data CSV files."}, {"post_id": 68780, "ts": "2026-09-15T18:53:39Z", "hours": 1.2878, "text": "Devlog 3 Ok, so I just finished with the testing data set and logging all the data in the csv files, I hope to automate this in the future, but currently I’m working on making the data augmentation pipeline faster."}, {"post_id": 68163, "ts": "2026-09-14T17:02:13Z", "hours": 1.655, "text": "Added Validation and History for Tracking. I removed the dataset from git status updates and will update it to another website or upload it git in the last commit. I added a validation dataset (splitting) and added it to model.fit. On top of that to track the model, I added history and charts to track the model."}, {"post_id": 67936, "ts": "2026-09-14T07:58:15Z", "hours": 1.2464, "text": "Devlog 1 Augmented the Data. Fixed file structure again, making it more cleaner and using .gitignore properly. Fixed the augment.py to work with the entire file at once instead of needing to select each file seperately. Fixed the Readme file to have a format, will update it as and when I complete said project. To-do Input changes to the CNN for effective learning Adding a test/train split Documenting the changes that occur when Batch Size/Epochs are changed. (not really sure on this one)"}]...
|
Title: Astronomical CNN by @RedPanda | Stardance
Title: Astronomical CNN by @RedPanda | Stardance
Devlogs:
Devlog 1 Augmented the Data. Fixed file structure again, making it more cleaner and using .gitignore properly. Fixed the augment.py to work with the entire file at once instead of needing to select each file seperately. Fixed the Readme file to have a format, will update it as and when I complete said project. To-do Input changes to the CNN for effective learning Adding a test/train split Documenting the changes that occur when Batch Size/Epochs are changed. (not really sure on this one)
Added Validation and History for Tracking. I removed the dataset from git status updates and will update it to another website or upload it git in the last commit. I added a validation dataset (splitting) and added it to model.fit. On top of that to track the model, I added history and charts to track the model.
Devlog 3 Ok, so I just finished with the testing data set and logging all the data in the csv files, I hope to automate this in the future, but currently I’m working on making the data augmentation pipeline faster.
Devlog 4 Added Augment Number and Seed, Added Validation Test Set and introduced CSV files for proper attribution. In Augment.py I finally bit the bullet and changed the script to work with titles like the name of the file. It will now also generate reproducible random results based on a seed function and number augments needed. In the Main.py I added validation data step to more clearly see where the model was over fitting. Also added the 2 data CSV files.
Devlog 5 Early stopping + Test Function Added early stopping to prevent the model from overfitting and to preserve the best values. Added scikit-learn to work on the testing side and to help with storing the data for the multiple runs I do. The be-all and end-all will be running the model multiple times with different augment values and to see the sweet spot where the augmentation of the dataset starts to help generate more accurate results.
Devlog 6 Small explanatory website. Working on making an explanation for this project to help in shipping and also to show to people. I have started working on the base HTML and CSS, but I have also added small twinkling stars in the background.
Devlog 7 Background Star Twinkle and Base Sections. I changed the JavaScript section to have random timings, size and positions of the stars in the script. I also changed the css to reflect the same and also added the transform command to the keyframe. I also set up the font (pixl sans) and also made the headers and base divs for the sections.
Devlog 8 Section 1 and Pixelated Borders Created and wrote the first section with the problem statement and a short description of the project and my motivations. I also added the pixelated corners of my website to continue with the pixel art theme. I am going to start working on the augmentation tester and model architecture next.
Devlog 9 Buttons for Demo Finally completed the button designs for the demo part of the website when I show what augmentations I use for every model. Added hover animations and a (I assume) novel way of tracking the active state of buttons on Javascript. It uses an active class and assigns it to the clicked button by removing it from all others, ensuring that 2 buttons of the same class are not selected together. I have also made the website=> This is a test website and is subject to changes p.s. If the link seems broken check the project page!
Devlog 10 (FINALLY) Header and Footer. Fixed the header to make it look more professional as well as add navigation buttons with small quirky animations. I also added the footer, finally removing the ever-present tester h1 tag and replacing it with my bog-standard footer. I also animated the icon to make them jump when you hover over them!
Devlog 11 (I’m losing my sanity.) Added Photo Elements and Update Images Last we left off, I finally finished with the buttons. Now I’ve done the logic for displaying the images and overwriting them every time. The border and CSS files were also correct to reflect these changes. I also added the augmentation files that the website pulls from to display the images along with alt text for each one. ps did i also mention that it SCALES TO THE DEVICE? <chef’s kiss>
Devlog 12 (penultimate) Model Architecture, Results Interactive Chart, Github Page Learned SVG for the first time and made the model architecture pages; I mostly copied what worked and didn’t play around with CSS, but in the future, I’ll make the code easier to parse. My actual pride and joy is the results section, where I completed the SVG, uploaded it to GitHub, got the graph, and promptly added it to my code. This section is the only (minor) part that was made with the help of AI, as I could not figure out the logic (it’s too much). Also added a link and instructions for the GitHub page!
Devlog <we’re so close> ReadMe Updated GETTING CLOSE TO SHIPPING THIS IM SOO PUMPED
Ships:
ITS THE FINAL DEVLOG!!!!!! This project tests whether small datasets can be used to train CNN and AI models effectively. I use image augmentation to see which level of image variation affects the final result. To show that this can be done on my own principles, the project uses only open data from NASA and ESO, so no one’s work is used without permission. Check out the website (here)[https://pratyush-m-code.github.io/Basic-AI/]! Check out the Dataset (here)[https://zenodo.org/records/23287441?token=eyJhbGciOiJIUzUxMiJ9.eyJpZCI6ImEzN2NkYWFiLWQ2M2UtNDQ3ZC04M2M2LTMwNGI3YzhmNzk0MyIsImRhdGEiOnt9LCJyYW5kb20iOiIzYmI0ZTFiNDg0NTFlZDNjMjViYzg5OGJkMGJlN2U4MCJ9.GpXlO0vDV-MJe3aFGRJuTAim7Iuxs3wpL4-BY8u8GdQnvdKFwgvUiyiS1Oy0C5o-5pbJc8zXYqKGhH89W0f1Og]!...
|
1792961599.3341177
|
1793047999.3341177
|
|
7470
|
Dungeon-Adventure by @Reid | Stardance
|
Reid
|
1
|
31.66
|
286
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-01T22:10:55Z", "hours": 26.0, "multiplier": 11.61, "payout": 286, "blessing": "neutral", "text": "This is my first ship so I hope you all enjoy it. I made a Dungeon Adventure game that you run in your terminal or shell depending on what device you use. You can go through different dungeon levels that are randomly generated each time you enter a new one. You can also buy lifes or open chests in the shop using gold or keys that you can gather from withen the dungeon, but be careful because there are enemies that can attack you as well so keep an eye on your life and where the enemies are. Some challenges I faced while making this project were figuring out how to make the enemy movement and make it work well, I would say it was probably one of my most difficult and common problems because i had to rewrite how the enemies spawned and functioned over and over until i figured it out. I also had problems with making the small room generations withen the dungeon, because they would constantly keep generating paths that went outside the map causing a crash and i couldnt figure out why for the longest time (like most times with a problem like this it was a kinda simple solution but i still took forever to figure it out). I think my favorite part was making the random map generation because I found it fun to make and I built an algorithm to do it basically from the ground up which was exciting. I did have alot of problems with this too but I figured them out as well. This game is run in a terminal and you do need external libraries such as readchar and colorama to run the program. It comes in 2 files one is the main one you run and the other has a bunch of functions that are called from the first one or even from other functions because alot of the things need to be repeated constantly. Anyways i hope you guys enjoy this project and that it works for you (because im kinda scared that I uploaded something wrong or something to where it wont work for you guys) So have fun and let me know if anything isnt working right by commenting on one of my devlogs or contacting me in Slack (Jason Challand)", "repo": "https://github.com/GorillaReid/Dungeon-Adventure", "demo": "https://github.com/GorillaReid/Dungeon-Adventure/releases/tag/v1.0.0"}]...
|
[{"post_id": 44752, "ts": "202 [{"post_id": 44752, "ts": "2026-08-10T18:44:14Z", "hours": 5.6603, "text": "So I took a break and it’s been a while since I worked on the project but I did finally start working on it again. I’ve decided that since it’s only compatible with some Linux devices I would make a html version that can run in browsers, I did some research and found out I could use pyodide to run Python in a html/javascript environment so I started using that and basically copy pasted most my code into the new file, I have had to modify some of the code like the movement and coloration to work with JavaScript instead. I also decided to make going into the different menus have buttons instead of pushing keys, but I’m having a lot of trouble with getting the buttons to display at the right time and function correctly. Hopefully I can get them working right by the next devlog. (P.S. I’m new to html and JavaScript so I don’t fully know how it works and I kinda feel like buttons should be easier and I’m just missing something, but maybe not and they really are just hard.)"}, {"post_id": 20316, "ts": "2026-07-01T21:40:51Z", "hours": 6.0642, "text": "This is probably my longest work period between devlogs, I did also take like a week break in between them to. Im also hoping i can ship the project after this I worked on making the enemy movement smoother and work better, i decided to not use threading to run multiple loops since i didn’t like how it worked so i just did it semi turn based where the player moves and the enemies will then move, but its so quick the player can just hold down a button to move and it will move them multiple spaces seamlessly. I also worked on polishing the UIs like the Inventory and Shop so that they look better, they now have color and look nice. Something else i worked on was making a Info option too that tells you a little about the game I worked on making the code look cleaner and I added a bunch of comments so that anyone looking at it (and me later when i forget what it does) would know how it works and what does what. The Shop got chests added to it which can be opened with keys that you can also now collect in the dungeons. Thats pretty much it I did, im probably forgetting a few things but oh well. Im planing on making my first ship soon so Im trying to get it working well enough for people to use it"}, {"post_id": 10037, "ts": "2026-06-16T16:27:45Z", "hours": 5.34, "text": "I redid the enemy spawning yet again, but it’s much simpler and easier to modify now. I’ve also been working on enemy movement using the threading library to run multiple loops or functions at a time. I’ve also been working on trying to make the generation for each dungeon level better. One of my friends gave me the idea of having some rooms or something in each level, however there is a few bugs with it, in the photo below you can see it generates a path that just goes straight across the map whenever a room spawns on the initial path, and players can crash the game if they try to leave the map, so I need to fix both of those"}, {"post_id": 5402, "ts": "2026-06-09T04:50:03Z", "hours": 4.0883, "text": "I decided to redo some of the enemy/gold generation which toke me a while since I had to change it from doing a random percent of each row to a random percent of the whole map. I also worked on making some UIs (idk if that’s what these are technically called) for choosing to enter a dungeon, open the shop etc. Ive also started working on switching the way the enemies work."}, {"post_id": 3892, "ts": "2026-06-07T00:00:24Z", "hours": 5.6181, "text": "I recolored some of the map and i added enemy’s and gold. The gold you can gather and get 1-3. The enemy’s take a life from you, if you lose all 5 lives you lose. I fixed a few visual bugs and i split the file into 2 files so i can use import and the call function to be able to do multiple levels. I also scaled the map up more so its easier to see."}, {"post_id": 3223, "ts": "2026-06-06T01:43:38Z", "hours": 2.2025, "text": "I mostly redid the random map generation making the user able to actually reach the end of the dungeon without getting stuck. I also added some color to it so the walls and floor are easy to see. I also added a safety check on the player movement and map generation so the player couldn’t move outside of the map. I started to make it more interactive."}, {"post_id": 2492, "ts": "2026-06-05T00:43:04Z", "hours": 2.2664, "text": "I worked on setting up a random map generator and making it so the player could move around the map. I then added a fix that prevents the players from going through the walls. I then also setup a basic treasure/gold gathering system. After a bit I decided to redo most of the map generation and I’m still working on it. I didn’t realize I was supposed to have photos so this one is of a older version of it from my phone"}]...
|
Title: Dungeon-Adventure by @Reid | Stardance
Dev Title: Dungeon-Adventure by @Reid | Stardance
Devlogs:
I worked on setting up a random map generator and making it so the player could move around the map. I then added a fix that prevents the players from going through the walls. I then also setup a basic treasure/gold gathering system. After a bit I decided to redo most of the map generation and I’m still working on it. I didn’t realize I was supposed to have photos so this one is of a older version of it from my phone
I mostly redid the random map generation making the user able to actually reach the end of the dungeon without getting stuck. I also added some color to it so the walls and floor are easy to see. I also added a safety check on the player movement and map generation so the player couldn’t move outside of the map. I started to make it more interactive.
I recolored some of the map and i added enemy’s and gold. The gold you can gather and get 1-3. The enemy’s take a life from you, if you lose all 5 lives you lose. I fixed a few visual bugs and i split the file into 2 files so i can use import and the call function to be able to do multiple levels. I also scaled the map up more so its easier to see.
I decided to redo some of the enemy/gold generation which toke me a while since I had to change it from doing a random percent of each row to a random percent of the whole map. I also worked on making some UIs (idk if that’s what these are technically called) for choosing to enter a dungeon, open the shop etc. Ive also started working on switching the way the enemies work.
I redid the enemy spawning yet again, but it’s much simpler and easier to modify now. I’ve also been working on enemy movement using the threading library to run multiple loops or functions at a time. I’ve also been working on trying to make the generation for each dungeon level better. One of my friends gave me the idea of having some rooms or something in each level, however there is a few bugs with it, in the photo below you can see it generates a path that just goes straight across the map whenever a room spawns on the initial path, and players can crash the game if they try to leave the map, so I need to fix both of those
This is probably my longest work period between devlogs, I did also take like a week break in between them to. Im also hoping i can ship the project after this I worked on making the enemy movement smoother and work better, i decided to not use threading to run multiple loops since i didn’t like how it worked so i just did it semi turn based where the player moves and the enemies will then move, but its so quick the player can just hold down a button to move and it will move them multiple spaces seamlessly. I also worked on polishing the UIs like the Inventory and Shop so that they look better, they now have color and look nice. Something else i worked on was making a Info option too that tells you a little about the game I worked on making the code look cleaner and I added a bunch of comments so that anyone looking at it (and me later when i forget what it does) would know how it works and what does what. The Shop got chests added to it which can be opened with keys that you can also now collect in the dungeons. Thats pretty much it I did, im probably forgetting a few things but oh well. Im planing on making my first ship soon so Im trying to get it working well enough for people to use it
So I took a break and it’s been a while since I worked on the project but I did finally start working on it again. I’ve decided that since it’s only compatible with some Linux devices I would make a html version that can run in browsers, I did some research and found out I could use pyodide to run Python in a html/javascript environment so I started using that and basically copy pasted most my code into the new file, I have had to modify some of the code like the movement and coloration to work with JavaScript instead. I also decided to make going into the different menus have buttons instead of pushing keys, but I’m having a lot of trouble with getting the buttons to display at the right time and function correctly. Hopefully I can get them working right by the next devlog. (P.S. I’m new to html and JavaScript so I don’t fully know how it works and I kinda feel like buttons should be easier and I’m just missing something, but maybe not and they really are just hard.)
Ships:
This is my first ship so I hope you all enjoy it. I made a Dungeon Adventure game that you run in your terminal or shell depending on what device you use. You can go through different dungeon levels that are randomly generated each time you enter a new one. You can also buy lifes or open chests in the shop using gold or keys that you can gather from withen the dungeon, but be careful because there are enemies that can attack you as well so keep an eye on your life and where the enemies are. Some challenges I faced while making this project were figuring out how to make the enemy movement and make it work well, I would say it was probably one of my most difficult and common problems because i had to rewrite how the enemies spawned and functioned over and over until i figured it out. I also had problems with making the small room generations withen the dungeon, because they would constantly keep generating paths that went outside the map causing a crash and i couldnt figure out why for the longest time (like most times with a problem like this it was a kinda simple solution but i still took forever to figure it out). I think my favorite part was making the random map generation because I found it fun to make and I built an algorithm to do it basically from the ground up which was exciting. I did have alot of problems with this too but I figured them out as well. This game is run in a terminal and you do need external libraries such as readchar and colorama to run the program. It comes in 2 files one is the main one you run and the other has a bunch of functions that are called from the first one or even from other functions because alot of the things need to be repeated constantly. Anyways i hope you guys enjoy this project and that it works for you (because im kinda scared that I uploaded something wrong or something to where it wont work for you guys) So have fun and let me know if anything isnt working right by commenting on one of my devlogs or contacting me in Slack (Jason Challand)...
|
1792979637.8699183
|
1793066037.8699183
|
|
17921
|
Pointhole by @lu2000luk | Stardance
|
lu2000luk
|
1
|
25.0
|
286
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T12:21:04Z", "hours": 25.0, "multiplier": 11.87, "payout": 286, "blessing": "neutral", "text": "Pointhole 1.0.0 A complete suite to explore and control your remote servers in a click! Tools like IDEs provide access to remote servers but it usually requires installing 100+ mbs clients and sometimes you just want to get the work done quickly… So to fix this I built Pointhole! Features: Explore files Download/Upload files Edit files with your own IDE ““SSH”” into your server (You can use any terminal!) Demo server for everyone to try out! Nice 3D website Install scripts Multiplatform (Win/Linux) All of the above without needing port forwarding! To connect to the demo server hover the “Demo” top bar option and click “Connect to demo server”", "repo": "https://git.lu2000luk.com/lu2000luk/pointhole", "demo": "https://pointhole.vercel.app/"}]...
|
[{"post_id": 17515, "ts": "202 [{"post_id": 17515, "ts": "2026-06-28T10:19:40Z", "hours": 1.265, "text": "PTY support! (Took a day break to do other life things such as going outside and playing CS2) Now pty is supported (stuff like DPI and pixel dimensions aren’t sent but that not really required for most uses). Took such a long time since while doing it I cleaned up a bit of the old code."}, {"post_id": 16228, "ts": "2026-06-26T11:19:01Z", "hours": 1.7592, "text": "ADDED SSH!!! You can now connect to the server’s terminal. Just click a button and the SSH will be ran locally on your machine with auto-forwarding to the relay Fixed various warnings Added demo button to top bar Added CLI args to change the relay host (both server and client) and to prefill the demo code (client) Demo has no SSH support yet, I will add it / block it on demo servers"}, {"post_id": 16160, "ts": "2026-06-26T08:27:06Z", "hours": 0.5089, "text": "Upload to pastebin feature. Also optimized the website removing an image download (since its not visible) that added 10mb to the bundle (and to the vercel bill). Also added the correct cursor on hover of the 3d buttons."}, {"post_id": 15902, "ts": "2026-06-25T20:56:03Z", "hours": 0.3736, "text": "Added a scripts modal and a button on the 3d scene to open it (design reminds a lot of those chinese websites that are clearly made to be rendered with chinese chars etc but look uncanny on our screens)"}, {"post_id": 15889, "ts": "2026-06-25T20:27:51Z", "hours": 0.3472, "text": "Continued the site a little bit with custom fonts and plaques for “server” and “client”. For now while I still develop it you can see the website at https://pointhole.vercel.app/"}, {"post_id": 15853, "ts": "2026-06-25T19:35:42Z", "hours": 0.2833, "text": "Added winres (also to CI): generates the windows executable resources file and applies it [assets converted and resized by AI agent, i made the original “art” (if you can call a black circle so…)]"}, {"post_id": 15798, "ts": "2026-06-25T17:56:48Z", "hours": 0.4217, "text": "Statically linked windows client binaries Added script to auto-update install scripts cache commit hash [AI] Made the script able to install commit hooks for itself Added Justfiles for compiling locally and general utils Future things to look into: more windows issues (I’d bet my house there are more) add win resources to client binaries for windows (Icon, description … with https://github.com/tc-hib/go-winres ) submit app for malware verification to https://www.microsoft.com/en-us/wdsi/filesubmission?persona=SoftwareDeveloper (Go binaries are usually flagged)"}, {"post_id": 15649, "ts": "2026-06-25T13:29:16Z", "hours": 3.3333, "text": "Made a big part of the site. Made all 3d models by hand on blender. Working with threejs and react is so hardddd (literally 3hrs of trial and errors). why did i decide to make a 3d site for a file browser ??? idk… Doing anything remotely fun in threejs is very hard so the site has some small interactive parts but its very limited as of now."}, {"post_id": 15299, "ts": "2026-06-24T20:59:06Z", "hours": 0.3156, "text": "Fixed a permission bug for editing files and also fixed a freeze problem that was pretty common on windows. Also started adding last commit hash to the scripts’s download urls since cloudflare caching is so aggressive!!!"}, {"post_id": 15280, "ts": "2026-06-24T20:27:19Z", "hours": 0.295, "text": "Added a simple about window and got the demo server running (mainly so that people who rate the project have an easy time doing so). Also there is a little easter egg in the demo server so if anyone reads this: the client binaries are already compiled so if you want to check it out it should be pretty easy (the demo code is in the readme)"}, {"post_id": 15256, "ts": "2026-06-24T19:28:11Z", "hours": 0.7814, "text": "Added install scripts! And updated readme. Took long since i switched from .bat to .ps1 and also whoever made env vars on windows should be subject to the same stuff i went truh. Apparently using “setx” on a long env var cuts it FROM THE BEGINNING so it bricked my PC (Removed system32 from path) and fortunately i had a vscode terminal with the old env vars still open so i was able to recover some but I had some more issues so I had to “nest” env vars. Everything is fixed except the recyle bin (shows random filenames when asking for deletion confirmation). For this and some other reasons I switched the scripts to powershell after I made them since the powershell API is much more mature. (shoutout to the guy who wants longer devlogs he finally has one with a story, the project is almost done tho!)"}, {"post_id": 15164, "ts": "2026-06-24T17:08:02Z", "hours": 0.3014, "text": "Added github mirror and made some github actions to build both client and server for linux and windows and upload them to my CDN (I will later make a nice install script that pulls them)"}, {"post_id": 14949, "ts": "2026-06-24T09:05:09Z", "hours": 0.7058, "text": "New theme (got it online) and Icons! (Used AI to convert from SVG to imgui.Drawlist)"}, {"post_id": 14933, "ts": "2026-06-24T07:57:22Z", "hours": 0.4814, "text": "Long story short yesterday’s UI improvements got lost (I was reverting a commit since the thing I added was broken but I forgot to commit the UI improvements before so they got lost) I re-made them quickly and added Demo mode (I will have a public demo instance so y’all can try it!)"}, {"post_id": 14272, "ts": "2026-06-23T09:59:14Z", "hours": 0.3664, "text": "UI Improvements: Disable viewports (caused issues) Disable Docking (I dont like it) Fix top bar bg-color and border Change window bg color (want to make it a nice shader in the future)"}, {"post_id": 14265, "ts": "2026-06-23T09:19:23Z", "hours": 1.0967, "text": "Fixed small bugs. Since yesterday I did all my changes on Linux they had lots of issues on linux (uploads and downloads had the most problems). Now it’s all fixed (hopefully)"}, {"post_id": 13780, "ts": "2026-06-22T16:12:46Z", "hours": 0.5706, "text": "Create folder"}, {"post_id": 13672, "ts": "2026-06-22T13:00:24Z", "hours": 0.6136, "text": "Transfers window with progress bar"}, {"post_id": 13634, "ts": "2026-06-22T11:20:35Z", "hours": 0.9744, "text": "git commit style editor!"}, {"post_id": 13620, "ts": "2026-06-22T10:15:42Z", "hours": 0.3769, "text": "Uploading and renaming"}, {"post_id": 13612, "ts": "2026-06-22T09:51:10Z", "hours": 0.8675, "text": "Random reads working! (ui bug: the thread segfaults when reading more than 9k bytes inside the debugging window, shouldnt be a problem since the usage of random reads will be pretty much automatic and will be done in chunks)"}, {"post_id": 13219, "ts": "2026-06-21T17:27:26Z", "hours": 1.5997, "text": "Uploads"}, {"post_id": 13171, "ts": "2026-06-21T15:38:34Z", "hours": 0.7217, "text": "Top bar menu, deletions and code cleanup/bug fixes"}, {"post_id": 12639, "ts": "2026-06-20T17:21:53Z", "hours": 1.2136, "text": "Copy paste working! (also fixed bugs and expanded the future types)"}, {"post_id": 8578, "ts": "2026-06-14T08:19:10Z", "hours": 3.4206, "text": "Basic file exploring working, implemented LS command and general networking"}, {"post_id": 7983, "ts": "2026-06-13T09:54:27Z", "hours": 1.5681, "text": "Initial types and websocket connection"}]...
|
Title: Pointhole by @lu2000luk | Stardance
Devlog Title: Pointhole by @lu2000luk | Stardance
Devlogs:
Initial types and websocket connection
Basic file exploring working, implemented LS command and general networking
Copy paste working! (also fixed bugs and expanded the future types)
Top bar menu, deletions and code cleanup/bug fixes
Uploads
Random reads working! (ui bug: the thread segfaults when reading more than 9k bytes inside the debugging window, shouldnt be a problem since the usage of random reads will be pretty much automatic and will be done in chunks)
Uploading and renaming
git commit style editor!
Transfers window with progress bar
Create folder
Fixed small bugs. Since yesterday I did all my changes on Linux they had lots of issues on linux (uploads and downloads had the most problems). Now it’s all fixed (hopefully)
UI Improvements: Disable viewports (caused issues) Disable Docking (I dont like it) Fix top bar bg-color and border Change window bg color (want to make it a nice shader in the future)
Long story short yesterday’s UI improvements got lost (I was reverting a commit since the thing I added was broken but I forgot to commit the UI improvements before so they got lost) I re-made them quickly and added Demo mode (I will have a public demo instance so y’all can try it!)
New theme (got it online) and Icons! (Used AI to convert from SVG to imgui.Drawlist)
Added github mirror and made some github actions to build both client and server for linux and windows and upload them to my CDN (I will later make a nice install script that pulls them)
Added install scripts! And updated readme. Took long since i switched from .bat to .ps1 and also whoever made env vars on windows should be subject to the same stuff i went truh. Apparently using “setx” on a long env var cuts it FROM THE BEGINNING so it bricked my PC (Removed system32 from path) and fortunately i had a vscode terminal with the old env vars still open so i was able to recover some but I had some more issues so I had to “nest” env vars. Everything is fixed except the recyle bin (shows random filenames when asking for deletion confirmation). For this and some other reasons I switched the scripts to powershell after I made them since the powershell API is much more mature. (shoutout to the guy who wants longer devlogs he finally has one with a story, the project is almost done tho!)
Added a simple about window and got the demo server running (mainly so that people who rate the project have an easy time doing so). Also there is a little easter egg in the demo server so if anyone reads this: the client binaries are already compiled so if you want to check it out it should be pretty easy (the demo code is in the readme)
Fixed a permission bug for editing files and also fixed a freeze problem that was pretty common on windows. Also started adding last commit hash to the scripts’s download urls since cloudflare caching is so aggressive!!!
Made a big part of the site. Made all 3d models by hand on blender. Working with threejs and react is so hardddd (literally 3hrs of trial and errors). why did i decide to make a 3d site for a file browser ??? idk… Doing anything remotely fun in threejs is very hard so the site has some small interactive parts but its very limited as of now.
Statically linked windows client binaries Added script to auto-update install scripts cache commit hash [AI] Made the script able to install commit hooks for itself Added Justfiles for compiling locally and general utils Future things to look into: more windows issues (I’d bet my house there are more) add win resources to client binaries for windows (Icon, description … with https://github.com/tc-hib/go-winres ) submit app for malware verification to https://www.microsoft.com/en-us/wdsi/filesubmission?persona=SoftwareDeveloper (Go binaries are usually flagged)
Added winres (also to CI): generates the windows executable resources file and applies it [assets converted and resized by AI agent, i made the original “art” (if you can call a black circle so…)]
Continued the site a little bit with custom fonts and plaques for “server” and “client”. For now while I still develop it you can see the website at https://pointhole.vercel.app/
Added a scripts modal and a button on the 3d scene to open it (design reminds a lot of those chinese websites that are clearly made to be rendered with chinese chars etc but look uncanny on our screens)
Upload to pastebin feature. Also optimized the website removing an image download (since its not visible) that added 10mb to the bundle (and to the vercel bill). Also added the correct cursor on hover of the 3d buttons.
ADDED SSH!!! You can now connect to the server’s terminal. Just click a button and the SSH will be ran locally on your machine with auto-forwarding to the relay Fixed various warnings Added demo button to top bar Added CLI args to change the relay host (both server and client) and to prefill the demo code (client) Demo has no SSH support yet, I will add it / block it on demo servers
PTY support! (Took a day break to do other life things such as going outside and playing CS2) Now pty is supported (stuff like DPI and pixel dimensions aren’t sent but that not really required for most uses). Took such a long time since while doing it I cleaned up a bit of the old code.
Ships:
Pointhole 1.0.0 A complete suite to explore and control your remote servers in a click! Tools like IDEs provide access to remote servers but it usually requires installing 100+ mbs clients and sometimes you just want to get the work done quickly… So to fix this I built Pointhole! Features: Explore files Download/Upload files Edit files with your own IDE ““SSH”” into your server (You can use any terminal!) Demo server for everyone to try out! Nice 3D website Install scripts Multiplatform (Win/Linux) All of the above without needing port forwarding! To connect to the demo server hover the “Demo” top bar option and click “Connect to demo server”...
|
1792993941.1315281
|
1793080341.1315281
|
|
16918
|
Aperture Online Store by @NexBlade-Studios | Stard Aperture Online Store by @NexBlade-Studios | Stardance...
|
NexBlade-Studios
|
1
|
24.0
|
284
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T18:58:19Z", "hours": 24.0, "multiplier": 11.69, "payout": 284, "blessing": "neutral", "text": "I have created Aperture Online store, which is a fictional website that sells items from the Portal franchise as if they were real products. I came up with this idea initially as part of a school project, but it slowly expanded beyond that and became a fully fledged website. I themed the website around the signature Aperture Science design, with its dull greys and bright white surfaces. I even made sure to add a custom cursor and favicon to match the design. I thought it would be more interesting if I add some humour and charm so I made sure to include lots of references to the Portal franchise throughout, especially in the reviews section where I have some of the characters from the game giving reviews on products. I also made sure to implement responsive design so whenever the page is resized or viewed on a different device, the key information is always visible. Overall, the experience was quite a fun one, since it not only improved my website design skills but I also got to research deeper into the backstory of the Portal franchise.", "repo": "https://github.com/NexBlade-Studios/Aperture-Online-Store", "demo": "https://nexblade-studios.github.io/Aperture-Online-Store/index.html"}]...
|
[{"post_id": 51207, "ts": "202 [{"post_id": 51207, "ts": "2026-08-20T18:48:52Z", "hours": 7.1514, "text": "The website is finally complete! This last chunk of progress has been about rounding out the final features. Particularly working on responsive design which is something that I am not very experienced with, so it was interesting to see the different strategies I had to use in order to best represent the information while also maintaining the visual style of the website. Getting the website to this point has been a really amazing opportunity to work on my website design skills which I hope to apply more in the future."}, {"post_id": 50388, "ts": "2026-08-19T15:36:16Z", "hours": 3.6647, "text": "I’m in the final stretch of development now, with the completion of the product pages and the about section. The website is really feeling like something that could be found in the Portal universe, but again if there’s anything you think I should add please let me know."}, {"post_id": 46265, "ts": "2026-08-13T11:48:17Z", "hours": 9.0111, "text": "The project has been moving along quite nicely, although it has been a while since I have made a devlog. I have been working on perfecting the aesthetic of the product page, which is the key part of the website. For that, I recreated the test chamber sign, making it act as the label for the product, with each of the symbols representing actions related to it. I have also added a short description taking inspirations and dialogue snippets from various Portal media. The main thing that has inspired this is the Aperture Investment Opportunity videos where some of the products I am “selling” were also shown. Please give some ideas on what I should add to the website!"}, {"post_id": 11590, "ts": "2026-06-18T21:34:01Z", "hours": 4.4481, "text": "This is my first devlog for Aperture Online Store, a website I am developing where the fictional items from the Portal universe are sold as if they were real commercial products. Before starting I already had the majority of the main homepage and top header created. What I aimed to add was a reviews page where you could really see the personality of characters like GLADOS and Wheatley. I kept Chell’s review blank because… well she can’t talk however it does look a bit empty so if you have any ideas how I could make it better let me know. I have some big plans for this website’s future, so be sure to send feedback and drop a follow."}]...
|
Title: Aperture Online Store by @NexBlade-Studios Title: Aperture Online Store by @NexBlade-Studios | Stardance
Devlogs:
This is my first devlog for Aperture Online Store, a website I am developing where the fictional items from the Portal universe are sold as if they were real commercial products. Before starting I already had the majority of the main homepage and top header created. What I aimed to add was a reviews page where you could really see the personality of characters like GLADOS and Wheatley. I kept Chell’s review blank because… well she can’t talk however it does look a bit empty so if you have any ideas how I could make it better let me know. I have some big plans for this website’s future, so be sure to send feedback and drop a follow.
The project has been moving along quite nicely, although it has been a while since I have made a devlog. I have been working on perfecting the aesthetic of the product page, which is the key part of the website. For that, I recreated the test chamber sign, making it act as the label for the product, with each of the symbols representing actions related to it. I have also added a short description taking inspirations and dialogue snippets from various Portal media. The main thing that has inspired this is the Aperture Investment Opportunity videos where some of the products I am “selling” were also shown. Please give some ideas on what I should add to the website!
I’m in the final stretch of development now, with the completion of the product pages and the about section. The website is really feeling like something that could be found in the Portal universe, but again if there’s anything you think I should add please let me know.
The website is finally complete! This last chunk of progress has been about rounding out the final features. Particularly working on responsive design which is something that I am not very experienced with, so it was interesting to see the different strategies I had to use in order to best represent the information while also maintaining the visual style of the website. Getting the website to this point has been a really amazing opportunity to work on my website design skills which I hope to apply more in the future.
Ships:
I have created Aperture Online store, which is a fictional website that sells items from the Portal franchise as if they were real products. I came up with this idea initially as part of a school project, but it slowly expanded beyond that and became a fully fledged website. I themed the website around the signature Aperture Science design, with its dull greys and bright white surfaces. I even made sure to add a custom cursor and favicon to match the design. I thought it would be more interesting if I add some humour and charm so I made sure to include lots of references to the Portal franchise throughout, especially in the reviews section where I have some of the characters from the game giving reviews on products. I also made sure to implement responsive design so whenever the page is resized or viewed on a different device, the key information is always visible. Overall, the experience was quite a fun one, since it not only improved my website design skills but I also got to research deeper into the backstory of the Portal franchise....
|
1793000830.823142
|
1793087230.823142
|
|
30304
|
KittenOS by @nokira | Stardance
|
nokira
|
3
|
30.0
|
283
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-20T12:48:58Z", "hours": 11.0, "multiplier": 12.76, "payout": 140, "blessing": "neutral", "text": "Many new apps were added since last ship, here they are: PawNet 🐈⬛🌐: Search any information in the World Wide Web! PawPaint 🐈🎨: Pain anything you want and save your beautiful drawings! PawGame 🐈⬛🧶: Try and collect as much yarn balls as you can! PawCmd 🐈💻: Execute commands like a real hacker! PawWeather 🐈⬛⛅: Check the weather to see if it’s the right day for a walk! For pawnet I decided to only show 3 fixed website since most of modern sites don’t allow to be accessed from an iFrame. For PawCmd use the command “help” to show all of the available commands Other than the app, I tried listening to most reviews, for example I added back the date in the topbar which can be hidden from the settings, then I made the background customizable. All of the user’s data are saved in LocalStorage so nothing is lost on refresh.", "repo": "https://github.com/n0kira/KittenOS", "demo": "https://n0kira.github.io/KittenOS/"}, {"ship_num": 2, "ts": "2026-07-07T22:26:25Z", "hours": 13.0, "multiplier": 11.52, "payout": 143, "blessing": "neutral", "text": "KittenOS as mentioned before is a WebOS, it offers some basic features like: window dragging, desktop icons, real time clock and even desktop widgets!! The current available applications are: PawNotes 🐈📝: Create and save your personal notes! Every change is saved automatically PawPics 🐈⬛📷: Scroll through some images of cats MeowSic 🐈🎵: A music player application, listen to some lo-fi beats and relax! PawCalc 🐈⬛🧮: Just your usual calc (short for calculator) PawConfig 🐈⚙️: Customize your username, profile picture and birth date to make the OS feel yours! There is even a calendar widget on your desktop! It shows the current date (obviously) and highlights your birthday! All your data, from username, to notes is saved, so you will never lose it! At first the most challenging part was the CSS, but then as more and more features were being added, managing all the JavaScript logic got harder, but not impossible. I had to search online for help and tutorials for some features, but I am happy I managed to achieve this! To get to Ship #2 it took quite a while, but some logic had to be reviewed and the JavaScript code split into multiple files or it would have been hard to find functions and keep it clean. Overall, I am really satisfied with this project as it is my second one on this platform. Hope some other people will like it too! If any issue or bug is found, please let me know so I can fix the error and learn more!", "repo": "https://github.com/n0kira/KittenOS", "demo": "https://n0kira.github.io/KittenOS/"}, {"ship_num": 3, "ts": "2026-07-04T09:43:46Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created my first WebOS! It was quite challenging at first but once I understood the way JavaScript functioned, it was actually a nice challenge to make custom functions and features the guide didn’t have. I’m really proud of all the things I learnt along with how the project is looking now!", "repo": "https://github.com/n0kira/KittenOS", "demo": "https://n0kira.github.io/KittenOS/"}]...
|
[{"post_id": 31770, "ts": "202 [{"post_id": 31770, "ts": "2026-07-20T12:41:23Z", "hours": 1.0253, "text": "Weather app! Hello!! Today I didn’t have much time so I added my last app before shipping! This app uses OpenWeather API to fetch forecast and display it. Another thing I added was as someone suggested, the date to the top bar like in my first versions, but if you don’t want to see it and rely on the calendar only, there is a toggle option in the settings. Byebyee!"}, {"post_id": 29516, "ts": "2026-07-16T14:30:39Z", "hours": 0.9778, "text": "More customization!! Sooo… as someone suggested in the reviews, I decided to let people upload their custom background images/gifs. Unfortunately the storage for saving the image has a limit, so if images are too big they wont be uploaded. This devlog is quite short but it’s everything I could do today! Byebyee!"}, {"post_id": 27600, "ts": "2026-07-13T10:23:21Z", "hours": 2.3033, "text": "SOUND EFFECTS!! 😻 First of all… THANK YOU ALL SO MUCH FOR ALL THE SUPER POSITIVE REVIEWS!!! I read them all and noted everything that was suggested!! ❤️😁 Sounds?! Sooo, first devlog after the reviews. Today I don’t know how much I’ll add because it’s my birthday! So I won’t be at home. BUT speaking of what I already added, I put sounds effects , they play when clicking buttons , opening apps and even when typing !! If anyone has suggestions for more sounds or for changing the current ones, I’m more than happy to hear your opinion! Also, I added 2 more commands to PawCMD: whoami -> prints your username echo [text] -> repeats what you typed after the command (single word) I’ll add more commands in the future if I get more ideas and in the meantime I’ll try to add some of the suggested features BYEEE!!"}, {"post_id": 26826, "ts": "2026-07-11T20:49:46Z", "hours": 2.4181, "text": "PawCmd!! Hello again!! :D I created 2 more apps… The first one is PawCmd , this is the cool one. It’s just a terminal simulation . As of right now there are only 4 commands but I’ll try to make some more and interesting ones tomorrow. The second app is PawGame … it’s pretty bad :( so I won’t show it in the video, but you just have to collect some balls of yarn.. nothing else, just this. Byee :)"}, {"post_id": 26515, "ts": "2026-07-11T11:18:36Z", "hours": 2.4028, "text": "PawNet 🌐🐈⬛ Hi!! Today I managed to polish the CSS for PawPaint, but it’s nothing crazy… Some other stuff I did was creating a folder on the desktop, so now most applications are found inside of it. The other thing is PawNet !!! This is some sort of browser you could call it. There are 3 buttons at the top for you to choose a website and then you will see the page inside of PawNet. I know that there are better ways to do that and to make the user decide which site to visit, but that gave me some problems while implementing because not every site allows to be displayed in an iframe so for the moment it will stay like that… :)"}, {"post_id": 26148, "ts": "2026-07-10T19:33:14Z", "hours": 1.8814, "text": "PawPaint 🎨🐈 A new app is coming!! I am currently working on a new app called “PawPaint”, it lets you paint anything in an empty canvas and then you can save all your beautiful drawings as .PNG photos!!! This app was not that easy to make and I had to follow some tutorials online, but I managed to tweak it and adapt it to my KittenOS and it seems to work pretty fine for the moment. Of course some more CSS needs to be applied but I just wanted to share the app working!! :)"}, {"post_id": 24376, "ts": "2026-07-07T21:55:48Z", "hours": 2.8686, "text": "What changes? Since the first ship, as you can see from the devlogs, quite a lot changed. 3 New applications , yes! I made 3 more applications, and they are: ‘ PawConfig ’, to change user settings like name, birth date, profile picture; ‘ MeowSic ’, to listen to some relaxing LoFi beats; ‘ PawCalc ’, to make some serious calculations with style Better code organization , finally I decided to organize the JavaScript code, and now it’s all split up in different files, each for a specific application. Desktop widget , you now have a small calendar widget on your desktop, and if you set a birth date inside the settings, it will highlight your birthday with a special color, and you will be wished a happy birthday by KittenOS! New Icons , all applications have now more expressive icons that fit better overall"}, {"post_id": 24080, "ts": "2026-07-07T12:44:08Z", "hours": 3.5597, "text": "Major Update to PawNotes Ater 3 hours I finally managed to update PawNotes! Finally, you can create and delete notes! Also, all changes made are saved to localStorage automatically in real time, so you don’t have to save them manually and you won’t be losing them! Also, I created a little widget that sits on the desktop. It’s just a calendar which indicates the current day! Nothing much I know but I like it!! :)"}, {"post_id": 23678, "ts": "2026-07-06T19:49:44Z", "hours": 1.0047, "text": "Calculator App done! I finally finished the calculator app, I actually thought it would have been harder to do but it was quite easy. Other than that, i reorganized the code by splitting each application JS code into its own file to keep all functions separated by functionality. The next objective is to build widgets for the desktop, maybe a calendar? :)"}, {"post_id": 23575, "ts": "2026-07-06T16:43:10Z", "hours": 1.3361, "text": "New Icons 😻🐈!! I spent some time making new icons and I think I like them more than before! Also, a new app is coming! I got the UI ready, now I’ll go write the JavaScript to make it actually work! :)"}, {"post_id": 23375, "ts": "2026-07-06T09:32:30Z", "hours": 1.32, "text": "MeowSic Player done! After some work I managed to get the music player to work! You can play/pause music, skip to other tracks and use the slider to control the time! :)"}, {"post_id": 23109, "ts": "2026-07-05T21:13:38Z", "hours": 2.4669, "text": "Another Devlog! I am currently working on a music player application called “ MeowSic ” 🐈🎶 It’s not done yet but I’m taking it slowly, so I don’t get lost into my messy code for now. One day I will rewrite it cleanly, but as of now, I’ll focus on finishing this app! Right now all it does it’s playing the songs from a queue and updating the UI to match the info, the next and previous button are working, the only missing things are updating the slider in real time and making the play/pause button work :)"}, {"post_id": 22032, "ts": "2026-07-04T09:01:24Z", "hours": 1.4383, "text": "This is the project now! I’m really happy with the result as of now. I managed to create a second application on my own and it turned out pretty good in my opinion :)"}, {"post_id": 21778, "ts": "2026-07-03T21:40:10Z", "hours": 2.2236, "text": "Another feature added! I created the first application, PawNotes! You can read all the notes left on there. You can close the app by using the little paw icon on the top and open it again by double tapping on the desktop icon! So cool :)"}, {"post_id": 21606, "ts": "2026-07-03T17:24:39Z", "hours": 1.0694, "text": "I completed my first window! After 1 hour I managed to get the window to move when dragged by the user, it feels amazing! I can’t wait to add many more features and finish this project :)"}, {"post_id": 21563, "ts": "2026-07-03T16:18:34Z", "hours": 1.0928, "text": "First 2 parts of the tutorial completed! This is what it looks like now. I’m really excited about this project, I’m already loving it and I feel like I’m learning much stuff! :)"}]...
|
Title: KittenOS by @nokira | Stardance
Devlogs:
F Title: KittenOS by @nokira | Stardance
Devlogs:
First 2 parts of the tutorial completed! This is what it looks like now. I’m really excited about this project, I’m already loving it and I feel like I’m learning much stuff! :)
I completed my first window! After 1 hour I managed to get the window to move when dragged by the user, it feels amazing! I can’t wait to add many more features and finish this project :)
Another feature added! I created the first application, PawNotes! You can read all the notes left on there. You can close the app by using the little paw icon on the top and open it again by double tapping on the desktop icon! So cool :)
This is the project now! I’m really happy with the result as of now. I managed to create a second application on my own and it turned out pretty good in my opinion :)
Another Devlog! I am currently working on a music player application called “ MeowSic ” 🐈🎶 It’s not done yet but I’m taking it slowly, so I don’t get lost into my messy code for now. One day I will rewrite it cleanly, but as of now, I’ll focus on finishing this app! Right now all it does it’s playing the songs from a queue and updating the UI to match the info, the next and previous button are working, the only missing things are updating the slider in real time and making the play/pause button work :)
MeowSic Player done! After some work I managed to get the music player to work! You can play/pause music, skip to other tracks and use the slider to control the time! :)
New Icons 😻🐈!! I spent some time making new icons and I think I like them more than before! Also, a new app is coming! I got the UI ready, now I’ll go write the JavaScript to make it actually work! :)
Calculator App done! I finally finished the calculator app, I actually thought it would have been harder to do but it was quite easy. Other than that, i reorganized the code by splitting each application JS code into its own file to keep all functions separated by functionality. The next objective is to build widgets for the desktop, maybe a calendar? :)
Major Update to PawNotes Ater 3 hours I finally managed to update PawNotes! Finally, you can create and delete notes! Also, all changes made are saved to localStorage automatically in real time, so you don’t have to save them manually and you won’t be losing them! Also, I created a little widget that sits on the desktop. It’s just a calendar which indicates the current day! Nothing much I know but I like it!! :)
What changes? Since the first ship, as you can see from the devlogs, quite a lot changed. 3 New applications , yes! I made 3 more applications, and they are: ‘ PawConfig ’, to change user settings like name, birth date, profile picture; ‘ MeowSic ’, to listen to some relaxing LoFi beats; ‘ PawCalc ’, to make some serious calculations with style Better code organization , finally I decided to organize the JavaScript code, and now it’s all split up in different files, each for a specific application. Desktop widget , you now have a small calendar widget on your desktop, and if you set a birth date inside the settings, it will highlight your birthday with a special color, and you will be wished a happy birthday by KittenOS! New Icons , all applications have now more expressive icons that fit better overall
PawPaint 🎨🐈 A new app is coming!! I am currently working on a new app called “PawPaint”, it lets you paint anything in an empty canvas and then you can save all your beautiful drawings as .PNG photos!!! This app was not that easy to make and I had to follow some tutorials online, but I managed to tweak it and adapt it to my KittenOS and it seems to work pretty fine for the moment. Of course some more CSS needs to be applied but I just wanted to share the app working!! :)
PawNet 🌐🐈⬛ Hi!! Today I managed to polish the CSS for PawPaint, but it’s nothing crazy… Some other stuff I did was creating a folder on the desktop, so now most applications are found inside of it. The other thing is PawNet !!! This is some sort of browser you could call it. There are 3 buttons at the top for you to choose a website and then you will see the page inside of PawNet. I know that there are better ways to do that and to make the user decide which site to visit, but that gave me some problems while implementing because not every site allows to be displayed in an iframe so for the moment it will stay like that… :)
PawCmd!! Hello again!! :D I created 2 more apps… The first one is PawCmd , this is the cool one. It’s just a terminal simulation . As of right now there are only 4 commands but I’ll try to make some more and interesting ones tomorrow. The second app is PawGame … it’s pretty bad :( so I won’t show it in the video, but you just have to collect some balls of yarn.. nothing else, just this. Byee :)
SOUND EFFECTS!! 😻 First of all… THANK YOU ALL SO MUCH FOR ALL THE SUPER POSITIVE REVIEWS!!! I read them all and noted everything that was suggested!! ❤️😁 Sounds?! Sooo, first devlog after the reviews. Today I don’t know how much I’ll add because it’s my birthday! So I won’t be at home. BUT speaking of what I already added, I put sounds effects , they play when clicking buttons , opening apps and even when typing !! If anyone has suggestions for more sounds or for changing the current ones, I’m more than happy to hear your opinion! Also, I added 2 more commands to PawCMD: whoami -> prints your username echo [text] -> repeats what you typed after the command (single word) I’ll add more commands in the future if I get more ideas and in the meantime I’ll try to add some of the suggested features BYEEE!!
More customization!! Sooo… as someone suggested in the reviews, I decided to let people upload their custom background images/gifs. Unfortunately the storage for saving the image has a limit, so if images are too big they wont be uploaded. This devlog is quite short but it’s everything I could do today! Byebyee!
Weather app! Hello!! Today I didn’t have much time so I added my last app before shipping! This app uses OpenWeather API to fetch forecast and display it. Another thing I added was as someone suggested, the date to the top bar like in my first versions, but if you don’t want to see it and rely on the calendar only, there is a toggle option in the settings. Byebyee!
Ships:
I created my first WebOS! It was quite challenging at first but once I understood the way JavaScript functioned, it was actually a nice challenge to make custom functions and features the guide didn’t have. I’m really proud of all the things I learnt along with how the project is looking now!
KittenOS as mentioned before is a WebOS, it offers some basic features like: window dragging, desktop icons, real time clock and even desktop widgets!! The current available applications are: PawNotes 🐈📝: Create and save your personal notes! Every change is saved automatically PawPics 🐈⬛📷: Scroll through some images of cats MeowSic 🐈🎵: A music player application, listen to some lo-fi beats and relax! PawCalc 🐈⬛🧮: Just your usual calc (short for calculator) PawConfig 🐈⚙️: Customize your username, profile picture and birth date to make the OS feel yours! There is even a calendar widget on your desktop! It shows the current date (obviously) and highlights your birthday! All your data, from username, to notes is saved, so you will never lose it! At first the most challenging part was the CSS, but then as more and more features were being added, managing all the JavaScript logic got harder, but not impossible. I had to search online for help and tutorials for some features, but I am happy I managed to achieve this! To get to Ship #2 it took quite a while, but some logic had to be reviewed and the JavaScript code split into multiple files or it would have been hard to find functions and keep it clean. Overall, I am really satisfied with this project as it is my second one on this platform. Hope some other people will like it too! If any issue or bug is found, please let me know so I can fix the error and learn more!
Many new apps were added since last ship, here they are: PawNet 🐈⬛🌐: Search any information in the World Wide Web! PawPaint 🐈🎨: Pain anything you want and save your beautiful drawings! PawGame 🐈⬛🧶: Try and collect as much yarn balls as you can! PawCmd 🐈💻: Execute commands like a real hacker! PawWeather 🐈⬛⛅: Check the weather to see if it’s the right day for a walk! For pawnet I decided to only show 3 fixed website since most of modern sites don’t allow to be accessed from an iFrame. For PawCmd use the command “help” to show all of the available commands Other than the app, I tried listening to most reviews, for example I added back the date in the topbar which can be hidden from the settings, then I made the background customizable. All of the user’s data are saved in LocalStorage so nothing is lost on refresh....
|
1792975965.232301
|
1793062365.232301
|
|
33419
|
My Little Blooms by @nokira | Stardance
|
nokira
|
1
|
28.0
|
279
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T16:19:47Z", "hours": 28.0, "multiplier": 10.02, "payout": 279, "blessing": "neutral", "text": "A little gardening game built with Phaser. Plant seeds, water them to keep them healthy and watch them grow until ready to be harvested. Try to not drown or wither your plants or they will die and no profit will be made! Also look out for bugs! They will make your plant die if you don’t catch them. Features Plant, water, and harvest your flowers Each plant has its own water needs and grow time Plants can wither, drown, or die if you don't take care of them Bugs show up now and then, catch them for bonus coins Unlock more vases as you earn coins Sell your harvested flowers for some profit How to Play Open the Plant Selection panel and pick a flower to plant. Click an empty vase to plant it. Keep an eye on your plant. If it needs water, click it and hit the water button. Once it's fully grown, harvest it to add it to your inventory. Sell your harvested flowers from the Inventory panel to earn coins. Use your coins to unlock new vases and plant even more flowers.", "repo": "https://github.com/n0kira/MyLittleBlooms", "demo": "https://n0kira.github.io/MyLittleBlooms/"}]...
|
[{"post_id": 35281, "ts": "202 [{"post_id": 35281, "ts": "2026-07-26T16:19:00Z", "hours": 0.6206, "text": "Devlog #10 First ship!! Hello guys!! Thank you so much for all the support shown in the previous devlogs! Today I am shipping the first version to hopefully get some feedback about the gameplay so that I can work on more features and fix any bug if they happen. Bye bye!!!"}, {"post_id": 34706, "ts": "2026-07-25T17:07:16Z", "hours": 0.6103, "text": "Devlog #9 More Sound! 🎵🎵 Hello!!! Once again THANK YOU ALL SO MUCH FOR THE SUPPORT. The last devlogs got so many likes and some nice comments and I’m really happy to see it Today I didn’t have much time so I only were able to add some more sounds to the game, for example UI interactions like opening the menus or selecting a plant, also added sounds for all the different notifications. In the videos you can see and hear most of them! I hope I can work more in the upcoming days and deliver better features. If anyone has suggestions for new features or improvements I will be more than happy to hear then, so please comment! Byee!! :D"}, {"post_id": 34264, "ts": "2026-07-24T20:19:56Z", "hours": 3.5444, "text": "Devlog #8 Alerts and Sounds! 🔔🎵 Hey hey!! First of all thank you all for the support on my last devlog!! So, today I worked on making the gameplay feel more alive and engaging. To do so I added some alerts/notifications that appear in some situations: Exclamation mark, this means that there is a bug on your vase! Click on the bug to eliminate it Harvest tool, this means the plant is ready to be harvested Watering can, this means the plant doesn’t have enough water and will die in 3 days if not taken care of Also, I added the sounds! Here is a list of all the current ones: New day, a bell will be heard to indicate the new day Unlocking a vase Removing a bug, a squish will indicate that the bug is been removed Planting, sound of dirt being moved around Harvesting, a noise that to me sounded like a scythe cutting some grass Selling, sound of a coin Watering, sound of water dropping from a can/tool Background music, two tracks looping in the background All the sounds were taken from Pixabay . Oh! And one more thing I did was reworking the information panel, so now you will be able to see the water range for each plant and the plant’s status. The status are: Healthy, everything is okay! Dead, :( the plant is now dead… nothing can be done Withering, the plant is out of water!! Act fast! Drowning, bro… you put too much water, if it’s not that much, it will fix itself in the upcoming day, but if not, the plant is doomed :( Infested, A BUG! KILL IT NOW Tomorrow I will probably add UI sounds and fully playtest the game to see what stuff needs balancing. If anyone wants to test the game, this is the link , the README is empty but will be done in the upcoming days with a full description of all the events and plants. Thank you for reading this!! Byeee! :) :)"}, {"post_id": 33489, "ts": "2026-07-23T14:10:09Z", "hours": 1.2969, "text": "Devlog #7 New Art! 🥀🐞 Soo today I was planning on just doing the dead version of each plant, but I didn’t stop there! I also came up with the idea of introducing bugs. I was thinking of making that on your plants a bug could appear and you would have to remove it by clicking on it. For each day the bug stays on the plant, it will count as unhealthy and will die if not taken care of! That’s all for today, not much but all I could do Byeee!!"}, {"post_id": 33027, "ts": "2026-07-22T16:08:46Z", "hours": 2.7175, "text": "Devlog #6 Even more art ! Hii!! Today I didn’t touch my IDE and just drew some more. I spent some time doing the water tool image again and also did the harvest tool image. Then I did the background landscape! I’m quite happy for how it turned out but I may adjust it a little in the future. Also ignore the sky which I haven’t done, so for the time being it will stay light blue, but I was thinking if possible to make it a gradient to look better, and also wanted to implement a day/night cycle. But all of this will come in the future, maybe. Byeee!! :)"}, {"post_id": 32608, "ts": "2026-07-21T21:49:19Z", "hours": 3.2258, "text": "Devlog #5 Title ! Sooo idk what to say anymore, it is SO DIFFICULT to draw something, and I spend a lot of time doing it but never get the perfect look I want. But for today I’ve done enough. I am still finishing the background but I made the UI a little bit better. Also I fixed some minor bugs like plants not saving the isDead status resulting in never dying plants when refreshing the page. I know that there are still some bugs, especially with images, but I will fix everything tomorrow, hopefully! Bye!!! :)"}, {"post_id": 32000, "ts": "2026-07-20T20:50:51Z", "hours": 2.7517, "text": "Devlog #4 Drawing day! Today I spend most of the time logged, drawing my background since that sketch is really really bad. So I started with drawing the floor as some stone tiles and made the railing in wood. I still need to add some colors to both, especially for shadows and minor details but for today that’s it! Also I made the day 3 minutes long and you can’t advance manually anymore. Oh and I added growth stages to the plants, so the image of the plants will change according to its growth status. If anyone read this and has suggestions on anything, the art or the logic, please share them! I am really open and always happy to hear them :) Thanks for reading! Byeee :D"}, {"post_id": 31419, "ts": "2026-07-19T19:28:46Z", "hours": 4.0044, "text": "Devlog #3 Improvements and art??!? Hii!!! Today I implemented the last two features for a complete gameplay loop, prices for the plants, and unlockable vases. Also, i drew some art for the plants, which I kinda like for being my first time drawing, ever, also I made the view of the balcony but this is just a placeholder for reference, it will not look like this in the end. Does anyone like it? If anyone has suggestions on how to improve or what to add I am more than happy to hear them!! Byeee! :)"}, {"post_id": 30764, "ts": "2026-07-18T16:48:05Z", "hours": 5.3036, "text": "Devlog #2 Gameplay loop done Hello hello!! Today I managed to get the main gameplay loop working , you can plant one of the three types of plants in one of the vases, you water them and advance until they are grow, then you can harvest them and sell them using the inventory. Another thing I have done is changing the layout. Last devlog the plant information were in a little popup right under the selected plant, but now I placed it in a dedicated panel to the right which allows for much more text to be displayed, but it’s still not the definitive position maybe. Last thing I added is LocalStorage so now all information, coins , days , plants , each plant status , are all saved and loaded on refresh so even if early, no data is lost. – Next thing I will is probably add the price for each plant , then I wanted to make the vases purchasable and then allow for the position of the vases to be changed. Once I feel like the main gameplay is done I will then spend time drawing all the art needed, each plant, the UI and the game space. Byeee!! :))"}, {"post_id": 30163, "ts": "2026-07-17T14:52:58Z", "hours": 3.9522, "text": "Devlog #1 New Game!! Hello!!! Since I have done the WarioWare mission on Godot I wanted to try and make my own game , and I had a cool idea, a basic game were you had to plant flowers and other kind of plants on your balcony, and each day you took care of them until fully grown and ready to be sold for coins which allow to buy new seeds. I originally spent 2 hours trying to do this on Godot and get a prototype working, but around the 2 hours mark I got stuck when making GUI, since I was having quite some problems. Other than that I actually found the UI of Godot not my style and somewhat confusing, so I decided to switch . I looked around for other game engines but I couldn’t find the right one for me, so I just decided to do that in JavaScript. After some more time I found phaser a framework which I am now using to make my game. I’m still learning it so even tho I spent another 2 hours on it, I achieved just the first part of my gameplay, showing plants (which are squares at the moment) on the screen and their stats when clicking on one. Probably I will do some more work later today but for now this is all I got!! :))"}]...
|
Title: My Little Blooms by @nokira | Stardance
De Title: My Little Blooms by @nokira | Stardance
Devlogs:
Devlog #1 New Game!! Hello!!! Since I have done the WarioWare mission on Godot I wanted to try and make my own game , and I had a cool idea, a basic game were you had to plant flowers and other kind of plants on your balcony, and each day you took care of them until fully grown and ready to be sold for coins which allow to buy new seeds. I originally spent 2 hours trying to do this on Godot and get a prototype working, but around the 2 hours mark I got stuck when making GUI, since I was having quite some problems. Other than that I actually found the UI of Godot not my style and somewhat confusing, so I decided to switch . I looked around for other game engines but I couldn’t find the right one for me, so I just decided to do that in JavaScript. After some more time I found phaser a framework which I am now using to make my game. I’m still learning it so even tho I spent another 2 hours on it, I achieved just the first part of my gameplay, showing plants (which are squares at the moment) on the screen and their stats when clicking on one. Probably I will do some more work later today but for now this is all I got!! :))
Devlog #2 Gameplay loop done Hello hello!! Today I managed to get the main gameplay loop working , you can plant one of the three types of plants in one of the vases, you water them and advance until they are grow, then you can harvest them and sell them using the inventory. Another thing I have done is changing the layout. Last devlog the plant information were in a little popup right under the selected plant, but now I placed it in a dedicated panel to the right which allows for much more text to be displayed, but it’s still not the definitive position maybe. Last thing I added is LocalStorage so now all information, coins , days , plants , each plant status , are all saved and loaded on refresh so even if early, no data is lost. – Next thing I will is probably add the price for each plant , then I wanted to make the vases purchasable and then allow for the position of the vases to be changed. Once I feel like the main gameplay is done I will then spend time drawing all the art needed, each plant, the UI and the game space. Byeee!! :))
Devlog #3 Improvements and art??!? Hii!!! Today I implemented the last two features for a complete gameplay loop, prices for the plants, and unlockable vases. Also, i drew some art for the plants, which I kinda like for being my first time drawing, ever, also I made the view of the balcony but this is just a placeholder for reference, it will not look like this in the end. Does anyone like it? If anyone has suggestions on how to improve or what to add I am more than happy to hear them!! Byeee! :)
Devlog #4 Drawing day! Today I spend most of the time logged, drawing my background since that sketch is really really bad. So I started with drawing the floor as some stone tiles and made the railing in wood. I still need to add some colors to both, especially for shadows and minor details but for today that’s it! Also I made the day 3 minutes long and you can’t advance manually anymore. Oh and I added growth stages to the plants, so the image of the plants will change according to its growth status. If anyone read this and has suggestions on anything, the art or the logic, please share them! I am really open and always happy to hear them :) Thanks for reading! Byeee :D
Devlog #5 Title ! Sooo idk what to say anymore, it is SO DIFFICULT to draw something, and I spend a lot of time doing it but never get the perfect look I want. But for today I’ve done enough. I am still finishing the background but I made the UI a little bit better. Also I fixed some minor bugs like plants not saving the isDead status resulting in never dying plants when refreshing the page. I know that there are still some bugs, especially with images, but I will fix everything tomorrow, hopefully! Bye!!! :)
Devlog #6 Even more art ! Hii!! Today I didn’t touch my IDE and just drew some more. I spent some time doing the water tool image again and also did the harvest tool image. Then I did the background landscape! I’m quite happy for how it turned out but I may adjust it a little in the future. Also ignore the sky which I haven’t done, so for the time being it will stay light blue, but I was thinking if possible to make it a gradient to look better, and also wanted to implement a day/night cycle. But all of this will come in the future, maybe. Byeee!! :)
Devlog #7 New Art! 🥀🐞 Soo today I was planning on just doing the dead version of each plant, but I didn’t stop there! I also came up with the idea of introducing bugs. I was thinking of making that on your plants a bug could appear and you would have to remove it by clicking on it. For each day the bug stays on the plant, it will count as unhealthy and will die if not taken care of! That’s all for today, not much but all I could do Byeee!!
Devlog #8 Alerts and Sounds! 🔔🎵 Hey hey!! First of all thank you all for the support on my last devlog!! So, today I worked on making the gameplay feel more alive and engaging. To do so I added some alerts/notifications that appear in some situations: Exclamation mark, this means that there is a bug on your vase! Click on the bug to eliminate it Harvest tool, this means the plant is ready to be harvested Watering can, this means the plant doesn’t have enough water and will die in 3 days if not taken care of Also, I added the sounds! Here is a list of all the current ones: New day, a bell will be heard to indicate the new day Unlocking a vase Removing a bug, a squish will indicate that the bug is been removed Planting, sound of dirt being moved around Harvesting, a noise that to me sounded like a scythe cutting some grass Selling, sound of a coin Watering, sound of water dropping from a can/tool Background music, two tracks looping in the background All the sounds were taken from Pixabay . Oh! And one more thing I did was reworking the information panel, so now you will be able to see the water range for each plant and the plant’s status. The status are: Healthy, everything is okay! Dead, :( the plant is now dead… nothing can be done Withering, the plant is out of water!! Act fast! Drowning, bro… you put too much water, if it’s not that much, it will fix itself in the upcoming day, but if not, the plant is doomed :( Infested, A BUG! KILL IT NOW Tomorrow I will probably add UI sounds and fully playtest the game to see what stuff needs balancing. If anyone wants to test the game, this is the link , the README is empty but will be done in the upcoming days with a full description of all the events and plants. Thank you for reading this!! Byeee! :) :)
Devlog #9 More Sound! 🎵🎵 Hello!!! Once again THANK YOU ALL SO MUCH FOR THE SUPPORT. The last devlogs got so many likes and some nice comments and I’m really happy to see it Today I didn’t have much time so I only were able to add some more sounds to the game, for example UI interactions like opening the menus or selecting a plant, also added sounds for all the different notifications. In the videos you can see and hear most of them! I hope I can work more in the upcoming days and deliver better features. If anyone has suggestions for new features or improvements I will be more than happy to hear then, so please comment! Byee!! :D
Devlog #10 First ship!! Hello guys!! Thank you so much for all the support shown in the previous devlogs! Today I am shipping the first version to hopefully get some feedback about the gameplay so that I can work on more features and fix any bug if they happen. Bye bye!!!
Ships:
A little gardening game built with Phaser. Plant seeds, water them to keep them healthy and watch them grow until ready to be harvested. Try to not drown or wither your plants or they will die and no profit will be made! Also look out for bugs! They will make your plant die if you don’t catch them. Features Plant, water, and harvest your flowers Each plant has its own water needs and grow time Plants can wither, drown, or die if you don't take care of them Bugs show up now and then, catch them for bonus coins Unlock more vases as you earn coins Sell your harvested flowers for some profit How to Play Open the Plant Selection panel and pick a flower to plant. Click an empty vase to plant it. Keep an eye on your plant. If it needs water, click it and hit the water button. Once it's fully grown, harvest it to add it to your inventory. Sell your harvested flowers from the Inventory panel to earn coins. Use your coins to unlock new vases and plant even more flowers....
|
1792972044.8753881
|
1793058444.8753881
|
|
41309
|
Hikari by @PAPER_01 | Stardance
|
PAPER_01
|
1
|
50.81
|
278
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T07:16:29Z", "hours": 26.0, "multiplier": 9.08, "payout": 278, "blessing": "neutral", "text": "Hikari is a recommendation site that currently uses a total of five APIs — four APIs for manga and four APIs for anime. Though some of the APIs are used in both of them. To be more precise its, AniList, Jikan, and Kitsu as they have information about both manga and anime, so they are used for both. I’m trying to make a recommendation site that recommends anime and manga for now, but I will be adding movies, games, and cartoons in the future. The main thing I’m trying to do is combine all the available APIs and give you the best experience by solving the issue of free APIs exhausting soon quickly Since I’m combining all these APIs and making them work as a fallback system , if one API fails or gets exhausted, the other can hold you back. For a more detailed explanation, please check out the README on GitHub. Thank you so much! I hope you like this =)", "repo": "https://github.com/shrestha-01/Hikari", "demo": "https://shrestha-project-09.66ghz.com/"}]...
|
[{"post_id": 64717, "ts": "202 [{"post_id": 64717, "ts": "2026-09-09T10:34:39Z", "hours": 4.0367, "text": "Hikari Devlog #19 Hello everyone, welcome to Devlog #19 of Hikari! (ノ◕ヮ◕)ノ*:・゚ Streaming Links Talking about the updates for this devlog, I have added the streaming links where you can watch the animes. Currently, I have added: Crunchyroll Netflix AnimeSuge (ㅅ´ ˘ `) How Does the Search Work? So, talking about how it searches the anime… First of all, this applies to Crunchyroll and Netflix only , because AnimeSuge isss… umm… (ó﹏ò。) not legit. But hey, it’s just for learning purposes, okay! So, for Crunchyroll and Netflix , the search works by checking the AniList API to see if a streaming link for that particular anime is available or not. If a Direct Link Is Not Available If the direct streaming link is not available in the API, then it will redirect you to that particular streaming platform by searching for the anime. This also applies to AnimeSuge , and actually it always apply to AnimeSuge as the API is never gonna have streaming link of the site for sure(ᵕ—ᴗ—) So, instead of sending you to a random page, it will search for the exact name of the anime on that platform and show you the result. For example, let’s say there is an anime called Anime A . If the streaming link for Anime A is not available in the API, then when you click on the streaming link, Hikari will search for Anime A on the streaming platform and redirect you to the search result page. Scrollbar Design I have also added a slight design to the scrollbar . I didn’t want to remove the scrollbar completely, because I thought people might actually want to scroll through and read the information. So instead of removing it, I just gave it a little design to make it look a bit better than the plain default scrollbar. It’s a small change, but I wanted to mention it since I made some changes here as well. ( ̄▽ ̄)ゞ That’s It! And yeah, that’s it for this devlog! If you have any questions, please do tell me and let me know in the comments. As always, thank you so much for reading, and have a very nice day! ✨ (ノ´ヮ`)ノ*:・゚✧"}, {"post_id": 64098, "ts": "2026-09-08T09:05:43Z", "hours": 2.0447, "text": "Hikari Devlog #18 Hello everyone, welcome to Devlog #18 of Hikari! (ノ◕ヮ◕)ノ*:・゚ Movie Trailer I just wanted to give a quick update on the Movie section . So, I finally added a trailer feature to the Movie section as well! The trailer comes from the TMDB API only , as I could not find any trailer data on OMDB API. I mean, I tried searching, but I didn’t find any trailer data on OMDB , so for now, I’m using the trailer data provided by TMDB. I’ll add a screen recording of the movie trailer in action below. [Sorry , for the lag, my laptop is kinda weak and lags even more with screen recording on] That’s It! Yeah, that’s it for this devlog! Thank you so much! (≧▽≦) And if there is any question, then please do tell me in the comments. I’ll try my best to explain it there as well. Thank you so much for reading, and have a very nice day! (ノ´ヮ`)ノ*:・゚"}, {"post_id": 64042, "ts": "2026-09-08T05:21:34Z", "hours": 2.2836, "text": "Hikari Devlog #17 Hello everyone, welcome to Devlog #17 of Hikari! (ノ◕ヮ◕)ノ*:・゚ OMDB as TMDB Fallback The first update I would say is that I have added the OMDB API as the fallback for the TMDB API . And yeah, obviously, I use the free version , and when I was getting the API key, it told me that it can handle around 1,000 requests per day . And…, I think that should be enough for a personal project like this. And on top of that, it’s only being used as a fallback . First, the requests will be handled by TMDB , and if that fails, then only it will come to OMDb . So, 1,000 requests per day is already more than enough for a personal project like this(i guess). ( ̄▽ ̄)ゞ Movie Genre Filters Talking about the next update, I have also added the genre filters for movies . I will add a screenrecording showing it in action, I’ll attach it below. Trailer Feature for Manga And I have also added a trailer feature for manga ! Yeah, even manga have trailer features available through the AniList API , so I added it there as well. (≧▽≦) That’s It! And yeah, that’s it for this devlog! If you have any questions or want me to explain anything again, then please feel free to leave a comment. I will try my best to explain it there as well. And as always, thank you so much for reading, and have a very nice day! ✨ (ノ´ヮ`)ノ*:・゚"}, {"post_id": 62994, "ts": "2026-09-06T15:44:20Z", "hours": 5.1447, "text": "Hikari Devlog #16 Hello everyone, welcome to Devlog #16 of Hikari! (ノ◕ヮ◕)ノ*:・゚✧ TMDB Fetching Improvements So, this time I worked on improving the fetching method of the TMDB API . Previously the fetch returned empty or missed the fetch alot of time, but now its quite better. I will attach a video below showing how it works. (。•̀ᴗ-)✧ And also, I have added the OMDb API as the backup for this one. So now, if TMDB fails, OMDb can act as a fallback. Hopefully, this will make the movie recommendation system a bit more reliable. (ง •̀_•́)ง Watch Trailer Btn Design In the video, you can also see a simple design of the Watch Trailer button. I mean, it’s not exactly simple, but I thought that it looks pretty good, at least to me. But still… I spent a lot of time checking different button designs and stuff for that. I literally spent so much time on that single button . (╥﹏╥), hope ya all like that too Genre Filtering Currently, I am working on filtering the genres of the movies . This should make it easier to get recommendations based on the genres you want. (。•̀ᴗ-)✧ A Little Bug… Also, in the video, you might see that the Watch Trailer button also appeared in the Movie section . But that’s actually a bug that I need to fix. ( ̄▽ ̄;) Basically, when the anime has the Watch Trailer option, and then I switch to the movie section, the button keeps appearing there as well. I still need to figure out how to solve this one. (•́ ᴖ •̀) To show this properly, I force restarted the site in the video as well, to show that the movie doesn’t have the Watch Trailer option in that session right now. So yeah… another little bug to deal with. (╥﹏╥) That’s It! So yeah, that’s it for this devlog! If there is anything you think I didn’t explain properly, or you want me to explain something, then please do tell me in the comments. I’ll try my best to explain it there as well. ( ̄▽ ̄)ゞ As always, thank you so much for reading, and have a very nice day! (ノ´ヮ`)ノ*:・゚✧"}, {"post_id": 62629, "ts": "2026-09-06T03:00:11Z", "hours": 2.6964, "text": "Hikari Devlog #15 Hello everyone, welcome to Devlog #15 of Hikari! (ノ◕ヮ◕)ノ*:・゚✧ Watch Trailer Feature So, talking about the updates… I have finally added the Watch Trailer feature! (≧▽≦) Currently, it’s only on the Anime section . Okay, so how it works is, if there is a trailer link available in the API , then it will play it on YouTube . The YouTube video will be embedded within the site, which means you don’t need to go to another tab , and you will NOT be redirected to a new tab. (。•̀ᴗ-)✧ The trailer will simply be displayed within the website itself(in the poster area) , as it is embedded. [anime trailers might be limited to certain country and because of it , some of the trailers can be unavailable, depending upon where you live] I’ll put a clip below showing working. Watch Trailer Button Currently, the Watch Trailer button has no design yet. I’m planning to work on that later. ( ̄▽ ̄)ゞ To close the trailer, you just need to click the same button again. The Watch Trailer button will change its text to Close Trailer , and you can click it to stop the trailer. (っ˘ω˘ς ) Pretty simple! TMDB Movie API Also, currently I’m working on improving the fetching method of the TMDB Movie API . Right now, it picks a random ID between 1 and 500,000 , but yeah… it misses a lot of times. I mean, it was quite visible in the previous devlog video I uploaded. (╥﹏╥) Also talking about the good luck, I just found that TMDB has a proper Discovery endpoint , which returns real and valid movies, and it has a much higher hit rate. I mean, that’s what I found. (•̀ᴗ•́)و But I’m still working on it, and I have not tested it yet . If I get any updates, I’ll update you guys in the next devlog! (。•̀ᴗ-)✧ That’s It! Thank you so much for reading! (づ。◕‿‿◕。)づ And as always, if there is any question, or you think that I didn’t explain something properly, then please do tell me in the comments. I’ll try my best to explain that as well. ( ̄▽ ̄)ゞ As always, thank you so much for reading, and have a very nice day! (ノ´ヮ`)ノ*:・゚✧"}, {"post_id": 62202, "ts": "2026-09-05T13:51:04Z", "hours": 2.2114, "text": "Hikari Devlog #14 ✨ Hello everyone, welcome to Devlog #14 of Hikari! Visual Updates For the updates, I have made the poster card change its size according to the poster size . So, the card will adjust itself depending on the poster instead of having the same fixed size for every poster. I also added a chibi on the bottom-left of the poster . I mean, why not? =) Just as a little signature. Just like I added in AniSuffle , though its a different chibi Streaming Links & Backend Currently, I am working on adding the streaming links , like adding the Watch Trailer option and stuff. I am also working on fixing the images not being loaded for the Movie section , especially. And after an API fails, there is no fallback right now as well, so I’m will be working on that as well. That’s It! Thank you so much for reading! And if you didn’t understand something, or you think I didn’t explain something properly, then please do tell me in the comments. I’ll try to explain it there as well. Thank you so much for reading, and have a very nice day! (ノ◕ヮ◕)ノ*:・゚✧"}, {"post_id": 62011, "ts": "2026-09-05T06:45:28Z", "hours": 2.5503, "text": "Hikari Devlog #13 Hello everyone, welcome to Devlog #13 of Hikari! Movie API Talking about the update, I used an API called TMDB on this site. Currently, I don’t have any fallback option for movies right now. Visual Updates I was also working on the card, giving it a default rectangular look . Yeah, I’m trying to match AniSuffle, my old site, and bring some of that old style into Hikari(without looking the old code obviously). What’s Next? Before including more backup APIs for movies, I think I will be working on more visual changes , the auto resize is not added on the card yet, will add that first. I’m also thinking of including streaming links , like I did before in AniSuffle. And yeah, I guess that’s it for this devlog! If you think anything was not explained properly, or if you want me to explain anything again, then please do tell me in the comments. I’ll try to explain it there as well. Thank you so much for reading, and have a very nice day! (ノ◕ヮ◕)ノ*:・゚✧"}, {"post_id": 61589, "ts": "2026-09-04T16:01:44Z", "hours": 2.7811, "text": "Incase you are having issue playing the video, click on the video and press SPACE BAR Hikari Devlog #12 Hello everyone, welcome to Devlog #12 of Hikari! Updates So, talking about updates again, the updates are that I have added a card-like effect on the poster image . Also , I increased the size of the Hikari logo . I also added an animation of a sort of glow on the star beside the word Hikari . ⭐ I’ll add a video of it here below to show the current state of the site. What’s Next? Currently, next I’m going to work on the Movie section . Yeah, I will mention about the API which I’ll be using for movies, in the next devlog probably, if everything goes well. That’s It! And if you have any questions, then please do tell me in the comments. I will try to explain there as well. And yeah, thank you so much for reading! As always, have a very nice day . (ノ◕ヮ◕)ノ*:・゚✧"}, {"post_id": 61388, "ts": "2026-09-04T08:43:19Z", "hours": 1.0575, "text": "Hikari Devlog #11 ✨ Hello everyone, welcome to Devlog #11 of Hikari! Visual Updates Talking about updates, the update is more on the visual side this time. I have added the poster as the background — the same poster which is viewed on the card, with some blur effect. I thought it was kind of cool and matches the old style of my site. (≧▽≦) 3D Card Effect Currently, I am working on making the card have a 3D-like effect . I found the source code for it on FreeFrontend.com . I will provide the link on the GitHub README, in the Credits section. That’s It! Yeah, that’s all for this devlog. I mean, I’m enjoying writing these devlogs. I wrote a couple of devlogs today and I’m still enjoying it, so I’m uploading this one as well. I thought it was good. It’s good to track the progress as well. So,That’s it for this devlog! If you want me to explain something, or if you think I did not explain something properly, then please do tell me in the comments. I’ll try my best to explain it again in the comments as well. Thank you so much for reading, and have a very nice day! (ノ◕ヮ◕)ノ*:・゚✧"}, {"post_id": 61343, "ts": "2026-09-04T06:48:14Z", "hours": 0.6414, "text": "Finally Shipping Hikari Devlog #10 Hello everyone, welcome to Devlog #10 of Hikari! (。•̀ᴗ-)✧ And so, this might be the final devlog before the first ship ! Final Touches I have worked on the responsiveness and cleaned the code. I also worked on making sure(cleaning) the experimental console.log things will not be displayed in the console tab of the site. And finally, I have hosted the site ! Screenshot I’ll add a simple screenshot of the site below: If I make any changes later on, while my project is still waiting to be reviewed, I might add another screenshot to this devlog and update what was changed. Site live at : https://shrestha-project-09.66ghz.com/ And if you have any questions, please do tell me in the comments. I’ll try my best to explain it there. Thank you so much for reading, and have a nice day! (ノ◕ヮ◕)ノ*:・゚✧ Update(after the ship for reviewers) Poster as Background That’s It! Thank you so much for reading! And if you have any questions, please do tell me in the comments. I’ll try my best to explain it there. Thank you so much for reading, and have a nice day! (ノ◕ヮ◕)ノ*:・゚✧"}, {"post_id": 61323, "ts": "2026-09-04T05:39:32Z", "hours": 1.415, "text": "Hikari Devlog #9 Hello everyone, welcome to Devlog #9 of Hikari! (。•̀ᴗ-)✧ Genre Options So, I added some glassmorphic , or honestly more blur-like effect , on the genre options. I will add a screenshot below What’s Next? Yeah, I guess I will work on the responsiveness of the site next. And I will remove the Cartoons, Movies, and Games options for now because I will be shipping it, and I will work on those topics later on. That’s It! Yeah, I guess that’s it. And as always, if you have any questions, please do tell me in the comments, and I’ll try my best to explain it there. Thank you so much for reading! Have a nice day! (ノ◕ヮ◕)ノ*:・゚✧"}, {"post_id": 61260, "ts": "2026-09-04T03:18:22Z", "hours": 3.6186, "text": "Hikari Devlog #8 Hello everyone, welcome to Devlog #8 of Hikari! (。•̀ᴗ-)✧ Genre Filter Talking about the updates I worked on the genre filter and applied the filter to all four APIs . And yeah, actually, that’s all for this update. What’s Next? 👀 Next, I’m looking towards updating, or like, making some visual changes Also , if everything goes right I might ship it today . As shipping after making a big project might make people not want to read all those devlogs , so um yeah That’s It! Yeah, that’s it for this devlog. And if you think that I didn’t explain something properly, or you want me to explain something more, then please do tell me in the comments. I’ll try again there. Thank you so much for reading, and have a nice day! (ノ◕ヮ◕)ノ*:・゚✧"}, {"post_id": 60815, "ts": "2026-09-03T13:06:51Z", "hours": 3.4425, "text": "Hikari Devlog #7 Hello everyone, welcome to Devlog #7 of Hikari! (。•̀ᴗ-)✧ Manga API Fallback Okay, so talking about the updates for this devlog, I have now finally added the API fallback chain for mangas as well . I used: AniList → MangaDex → Jikan → Kitsu AniList is the primary API, then MangaDex, then Jikan, and finally Kitsu. And it seems like both MangaDex and Jikan are down . When I used them a few months before, they were active, but I don’t wonder why they all are, like, getting down and not accepting the requests. (but still i kept them on the fallback just in case if any of them come to life =) ) What’s Next? In the upcoming future, I am going to work on the genre filter for mangas in the same way i worked for the anime . I was also thinking of shipping this project after completing the Anime and Manga sections. I know it looks a bit plain right now, but I wanted to see what you all think about it. I might get some good recommendations from you guys, which I might implement. That’s It! Yeah, so I guess that’s it for this devlog. If you want me to explain anything, or if you think that I did not explain something properly, then please tell me in the comments. I’ll try to explain it again. and as always, thank you so much for reading! and Have a nice day! (ノ◕ヮ◕)ノ*:・゚✧"}, {"post_id": 60593, "ts": "2026-09-03T01:41:26Z", "hours": 3.12, "text": "Hikari Devlog #6 Hello everyone, welcome to Devlog #6 of Hikari! (。•̀ᴗ-)✧ Manga Recommendation For this devlog, the main update I would say is the starting of the Manga Recommendation section . I have started working on the manga system now, and so far I have only implemented the AniList API for API calls for manga. In the future, I am planning to add more APIs for manga as well: MangaDex Jikan Kitsu This should give me more options for fallback APIs and hopefully make the manga recommendation system more reliable. That’s It! And yeah, I guess that’s it for this devlog. This one is kinda short, ik (ᵕ—ᴗ—), but that’s the only update I have right now. So yeah, that’s all for this devlog! And as always, if anything was unclear, then please do tell me in the comments. I’ll try to explain it there as well. Thank you so much for reading! Have a nice day! (ノ◕ヮ◕)ノ*:・゚✧"}, {"post_id": 59540, "ts": "2026-09-01T12:50:52Z", "hours": 2.7569, "text": "Hikari Devlog #5 Hello everyone, welcome to Devlog #5 of Hikari! (ノ◕ヮ◕)ノ*:・゚✧ Okay, now talking about the updates, I have added the similar randomization to AniList and Kitsu API as well. Yeah, I mean, they work differently, but overall it is to achieve the same random result as it was applied in Jikan. You can read Devlog #4 for more info. Changes to Select Genre Another change I made was on the Select Genre is how the results are displayed . So basically, before, how it used to work was: If you selected one genre , then it would give you the correct result. But if you selected multiple genres , then it might: Give you the same anime again and again Give you some random unrelated anime Or sometimes even throw an error But yeah, there are some changes I made to this. Now, instead of showing some random unrelated anime or throwing an error, it would display something which comes within the range of your selected genres . For example, if you selected: Action Comedy Drama And if no such anime is found on the API which contains all three genres , then it would give you an anime containing Action or Comedy or Drama, or any combination of the selected genres . So yeah, it will not totally disappoint you. I mean, I felt it would be better to give you something related to what you selected. ( ̄▽ ̄)ゞ rather than something totally unrelated. Current Implementation Currently, I have applied this system only to AniList . I’ll apply it to Jikan and Kitsu soon However, I am not applying it to SukiMori , as it is not giving quite the response required to display anything. I did not comment out the whole code of SukiMori, but yeah, I am not applying the filters and stuff to SukiMori as it is throwing an error again and again, and it’s not letting me fetch any data. I tried searching for it, but I could not really fix it. So I asked AI, and it told me that it was refusing to connect and nothing can be done and something like that. So yeah, I am not writing filters for that for now. That’s It! And yeah, that’s it for this devlog, I guess. (。•̀ᴗ-)✧ If you have any questions, or if you think I did not explain anything properly, then please do tell me in the comments. I’ll try to explain it there . As always, thank you so much for reading! and Have a very nice day! (≧▽≦)"}, {"post_id": 59392, "ts": "2026-09-01T05:44:17Z", "hours": 2.5783, "text": "Hikari Devlog #4 Hello everyone, welcome to Devlog #4 of Hikari! (ノ◕ヮ◕)ノ*:・゚✧ Okay, so talking about the updates, this time I have integrated the Choose Genre filters, and other few update , i will explain it below. Choose Genre Now, while generating any random anime, you can choose or select genres on which you want the anime to be recommended. And ngl but it works best when you choose one genre (ó﹏ò。). It might take some time, or sometimes give you some random anime, or maybe also sometimes throw an error when you choose a tones of anime For example, if you select all the genres , then obviously it would not find any anime with all the genres, so it might either give you a random anime or worst case scenireo , might throw an erroe. It works best when you select around one or two genres . Fourth Fallback Option Another update is that I have also implemented the fourth fallback option , which is Shikimori . Though I ummm didn’t really find it much reliable(returns anime very little time(╥﹏╥)), I still kept it as a fallback option in case it might come to use. Randomizing Jikan Pages And the last update for this devlog is how the anime is fetched from Jikan . So, let me tell you how it worked before. Previously, when pulling any random anime from Jikan, it used to ask for one page . The pages were based on the descending order of popular anime , so it would give me the 1st page containing popular anime. Each page contains around 25 anime , and it would pull one anime randomly from that page. and yeah , since it pulled from only that page , it would genreally revolve around those 25 popular anime. But this time, I have randomized ** the page**. So now, it isn’t limited to just the popular anime of 1st page. It could be: Page 1 — containing the most popular anime Page 10 Page 23 Page 140 Or basically any random page within the database So, instead of only getting anime from the popular pages, you can now get something from pretty much anywhere within the available database. Visual Changes And yeah, there aren’t many visual changes this time as well. The main visible change is that when you click the Select Genre option, it will display some checkboxes for the different genres . That’s pretty much it for this devlog! and yeah, If you think I did not explain anything properly, or you want some detailed explanation, then please do comment. I’ll try to explain it again there. As always, thank you so much for reading! Have a nice day! (≧▽≦)"}, {"post_id": 58080, "ts": "2026-08-30T13:03:58Z", "hours": 2.9622, "text": "Hikari Devlog #3 Hello everyone, welcome to Devlog #3 of Hikari! (ノ◕ヮ◕)ノ*:・゚✧ Yeah, there are some major changes in this one. More Anime Information So, on the main page, I have added: Ratings Release Date Status Synopsis The status tells you whether the anime is finished, currently ongoing or is upcoming I have also added the synopsis , or you could say the description of the anime . API Fallback System And apart from that, I have also added Kitsu as a backup , after Jikan. Okay, so let me make it clear. I have made AniList the primary source for fetching anime. After that, if something doesn’t work, it goes to Jikan , and after Jikan, it goes to Kitsu . So right now, I have three APIs in total , and they all act as a backup for each other. I am also planning to add one more API later. (which is Shikimori) Better Image Quality And yeah, I also found out that there is an even better quality of image available.[So, the image displyed on this site will be even better then on AniSuffle =) ] From now on, I’m going to use that. Back & Forward And finally, I have also made the Back and Forward buttons functional . Now you should be able to go back and forward through the anime recommendations you have received. So you can go back to the previous anime, and then come forward again to the anime you were recommended before. That’s it for this small addition! (。•̀ᴗ-)✧ Also , if you go to the previous anime and fetch a new one then the one which was at forward will be lost. JavaScript Changes I did not make many changes to the front end this time . And by front end, I mean the layouts and stuff that are actually visible . Most of the work this time was more on the JavaScript side , which isn’t really visible from the outside. So, there might not be a huge visual difference, but quite a few things have changed behind the scenes. That’s It! So, to summarize: Three APIs , all acting as backups for each other, better image quality , more anime information, and some changes on the JavaScript side. Yeah, that’s it for this devlog! (。•̀ᴗ-)✧ If you didn’t understand anything or felt i wasnt clear enough , then please do tell me in the comments, and I’ll try to explain it again. Thank you so much for reading! Have a nice day! (≧▽≦)"}, {"post_id": 57323, "ts": "2026-08-29T13:16:29Z", "hours": 2.405, "text": "Hikari Devlog #2 Hello everyone, welcome to Devlog #2 of Hikari! (ノ◕ヮ◕)ノ*:・゚✧ So this time I did only a few changes, which are regarding the designs (especially). Capsule-like Design [for genres] I added the capsule-like design as I did previously(in AniSuffle), to the genres of the anime. Category Button I also added a Category button . When clicking on it, it will reveal the options (with a little slide left animation)for the different categories that I’ll be working on: Anime Manga Cartoons Movies Games I’ll be making a recommendation system for all of these categories later on. JavaScript Changes I didn’t do much with the JavaScript this time. The main JavaScript change was using JavaScript to turn the class on and off to show and hide the categories and yeah,thats all for this time. Layout & Poster Changes I also made some changes to the layout and the size of the poster . I used clamp() for the sizing so that the poster can adjust better i mean like depending on the screen size. And yeah, that’s pretty much it for this time! ( ̄▽ ̄)ゞ That’s It! I guess that’s it for this devlog! If anything was unclear, then please do tell me. I’ll try to make you understand it again =) Thank you so much for reading! Have a nice day! (≧▽≦)"}, {"post_id": 55433, "ts": "2026-08-27T08:07:23Z", "hours": 2.6061, "text": "Hikari Devlog #1 Hello everyone, welcome to the very first devlog of Hikari! Hikari - A recommendation site So, this project is going to be a bit bigger, yes, even bigger than AniSuffle. You can basically think of Hikari as a remake(from the scratch) + upgraded version of AniSuffle , while I will try to match the vibe of AniSuffle again here as well. For those who don’t know, AniSuffle was my previous project anime and manga recommendation website that I worked on. Unfortunately, it’s deleted now, and I can’t reuse the old code, so I’m going to build it again completely from scratch . It will probably look somewhat similar to the AniSuffle, but this time, I’m planning to widen the range of uses , not limiting only to Anime and Manga this time. Current Progress Coming to the actual update, right now, even the basic layout isn’t ready yet tbh . So far, I’ve mainly been experimenting with the design. I’ve added: [By the way the theme is going to be Glassmorphism(design credited on the GitHub Readme)] Some buttons (with design) A basic card A poster inside the card A title beside the poster That’s pretty much it for now. =D API Testing For the API, I initially tried using Jikan , but it seems to be down right now. So, I switched to AniList . I’ll also add a video showing what the site currently looks like and how it works. Multiple API Fallbacks Later on, I’m planning to use multiple APIs as fallback options . The main reason for this is that free APIs usually have limited requests , so instead of relying on a single API, I want to combine multiple available APIs and give ya all best experience as possible. For anime API, I’m currently thinking of using: Jikan AniList Kitsu Shikimori I will be adding shikimori for the first time, while i used remaining before as well. Lets see how it goes…. I’ll try to do something similar for the other types of content(manga, movie, video games, cartoons) as well. It’s Not Just Anime & Manga And this time, I’m not planning to stop at anime and manga . Hikari is going to be something much bigger. I’m planning to include: Anime Manga Movies Games Cartoons And I’ll try to add fallback APIs for all of them whenever possible. I’ve already done some research on the free APIs that are available, and I’ll talk more about them when I actually implement them into the site. So yeah, that’s pretty much it for the first Hikari devlog ! Currently, I’m using AniList , since Jikan doesn’t seem to be working right now. I’ll add a video showing the current state of the site as well. If you think anything was unclear, or I didn’t explain something properly, please do tell me in the comments. I’ll try to explain it there again. Thank you so much for reading, and have a nice day! =)"}]...
|
Title: Hikari by @PAPER_01 | Stardance
Devlogs:
H Title: Hikari by @PAPER_01 | Stardance
Devlogs:
Hikari Devlog #1 Hello everyone, welcome to the very first devlog of Hikari! Hikari - A recommendation site So, this project is going to be a bit bigger, yes, even bigger than AniSuffle. You can basically think of Hikari as a remake(from the scratch) + upgraded version of AniSuffle , while I will try to match the vibe of AniSuffle again here as well. For those who don’t know, AniSuffle was my previous project anime and manga recommendation website that I worked on. Unfortunately, it’s deleted now, and I can’t reuse the old code, so I’m going to build it again completely from scratch . It will probably look somewhat similar to the AniSuffle, but this time, I’m planning to widen the range of uses , not limiting only to Anime and Manga this time. Current Progress Coming to the actual update, right now, even the basic layout isn’t ready yet tbh . So far, I’ve mainly been experimenting with the design. I’ve added: [By the way the theme is going to be Glassmorphism(design credited on the GitHub Readme)] Some buttons (with design) A basic card A poster inside the card A title beside the poster That’s pretty much it for now. =D API Testing For the API, I initially tried using Jikan , but it seems to be down right now. So, I switched to AniList . I’ll also add a video showing what the site currently looks like and how it works. Multiple API Fallbacks Later on, I’m planning to use multiple APIs as fallback options . The main reason for this is that free APIs usually have limited requests , so instead of relying on a single API, I want to combine multiple available APIs and give ya all best experience as possible. For anime API, I’m currently thinking of using: Jikan AniList Kitsu Shikimori I will be adding shikimori for the first time, while i used remaining before as well. Lets see how it goes…. I’ll try to do something similar for the other types of content(manga, movie, video games, cartoons) as well. It’s Not Just Anime & Manga And this time, I’m not planning to stop at anime and manga . Hikari is going to be something much bigger. I’m planning to include: Anime Manga Movies Games Cartoons And I’ll try to add fallback APIs for all of them whenever possible. I’ve already done some research on the free APIs that are available, and I’ll talk more about them when I actually implement them into the site. So yeah, that’s pretty much it for the first Hikari devlog ! Currently, I’m using AniList , since Jikan doesn’t seem to be working right now. I’ll add a video showing the current state of the site as well. If you think anything was unclear, or I didn’t explain something properly, please do tell me in the comments. I’ll try to explain it there again. Thank you so much for reading, and have a nice day! =)
Hikari Devlog #2 Hello everyone, welcome to Devlog #2 of Hikari! (ノ◕ヮ◕)ノ*:・゚✧ So this time I did only a few changes, which are regarding the designs (especially). Capsule-like Design [for genres] I added the capsule-like design as I did previously(in AniSuffle), to the genres of the anime. Category Button I also added a Category button . When clicking on it, it will reveal the options (with a little slide left animation)for the different categories that I’ll be working on: Anime Manga Cartoons Movies Games I’ll be making a recommendation system for all of these categories later on. JavaScript Changes I didn’t do much with the JavaScript this time. The main JavaScript change was using JavaScript to turn the class on and off to show and hide the categories and yeah,thats all for this time. Layout & Poster Changes I also made some changes to the layout and the size of the poster . I used clamp() for the sizing so that the poster can adjust better i mean like depending on the screen size. And yeah, that’s pretty much it for this time! ( ̄▽ ̄)ゞ That’s It! I guess that’s it for this devlog! If anything was unclear, then please do tell me. I’ll try to make you understand it again =) Thank you so much for reading! Have a nice day! (≧▽≦)
Hikari Devlog #3 Hello everyone, welcome to Devlog #3 of Hikari! (ノ◕ヮ◕)ノ*:・゚✧ Yeah, there are some major changes in this one. More Anime Information So, on the main page, I have added: Ratings Release Date Status Synopsis The status tells you whether the anime is finished, currently ongoing or is upcoming I have also added the synopsis , or you could say the description of the anime . API Fallback System And apart from that, I have also added Kitsu as a backup , after Jikan. Okay, so let me make it clear. I have made AniList the primary source for fetching anime. After that, if something doesn’t work, it goes to Jikan , and after Jikan, it goes to Kitsu . So right now, I have three APIs in total , and they all act as a backup for each other. I am also planning to add one more API later. (which is Shikimori) Better Image Quality And yeah, I also found out that there is an even better quality of image available.[So, the image displyed on this site will be even better then on AniSuffle =) ] From now on, I’m going to use that. Back & Forward And finally, I have also made the Back and Forward buttons functional . Now you should be able to go back and forward through the anime recommendations you have received. So you can go back to the previous anime, and then come forward again to the anime you were recommended before. That’s it for this small addition! (。•̀ᴗ-)✧ Also , if you go to the previous anime and fetch a new one then the one which was at forward will be lost. JavaScript Changes I did not make many changes to the front end this time . And by front end, I mean the layouts and stuff that are actually visible . Most of the work this time was more on the JavaScript side , which isn’t really visible from the outside. So, there might not be a huge visual difference, but quite a few things have changed behind the scenes. That’s It! So, to summarize: Three APIs , all acting as backups for each other, better image quality , more anime information, and some changes on the JavaScript side. Yeah, that’s it for this devlog! (。•̀ᴗ-)✧ If you didn’t understand anything or felt i wasnt clear enough , then please do tell me in the comments, and I’ll try to explain it again. Thank you so much for reading! Have a nice day! (≧▽≦)
Hikari Devlog #4 Hello everyone, welcome to Devlog #4 of Hikari! (ノ◕ヮ◕)ノ*:・゚✧ Okay, so talking about the updates, this time I have integrated the Choose Genre filters, and other few update , i will explain it below. Choose Genre Now, while generating any random anime, you can choose or select genres on which you want the anime to be recommended. And ngl but it works best when you choose one genre (ó﹏ò。). It might take some time, or sometimes give you some random anime, or maybe also sometimes throw an error when you choose a tones of anime For example, if you select all the genres , then obviously it would not find any anime with all the genres, so it might either give you a random anime or worst case scenireo , might throw an erroe. It works best when you select around one or two genres . Fourth Fallback Option Another update is that I have also implemented the fourth fallback option , which is Shikimori . Though I ummm didn’t really find it much reliable(returns anime very little time(╥﹏╥)), I still kept it as a fallback option in case it might come to use. Randomizing Jikan Pages And the last update for this devlog is how the anime is fetched from Jikan . So, let me tell you how it worked before. Previously, when pulling any random anime from Jikan, it used to ask for one page . The pages were based on the descending order of popular anime , so it would give me the 1st page containing popular anime. Each page contains around 25 anime , and it would pull one anime randomly from that page. and yeah , since it pulled from only that page , it would genreally revolve around those 25 popular anime. But this time, I have randomized ** the page**. So now, it isn’t limited to just the popular anime of 1st page. It could be: Page 1 — containing the most popular anime Page 10 Page 23 Page 140 Or basically any random page within the database So, instead of only getting anime from the popular pages, you can now get something from pretty much anywhere within the available database. Visual Changes And yeah, there aren’t many visual changes this time as well. The main visible change is that when you click the Select Genre option, it will display some checkboxes for the different genres . That’s pretty much it for this devlog! and yeah, If you think I did not explain anything properly, or you want some detailed explanation, then please do comment. I’ll try to explain it again there. As always, thank you so much for reading! Have a nice day! (≧▽≦)
Hikari Devlog #5 Hello everyone, welcome to Devlog #5 of Hikari! (ノ◕ヮ◕)ノ*:・゚✧ Okay, now talking about the updates, I have added the similar randomization to AniList and Kitsu API as well. Yeah, I mean, they work differently, but overall it is to achieve the same random result as it was applied in Jikan. You can read Devlog #4 for more info. Changes to Select Genre Another change I made was on the Select Genre is how the results are displayed . So basically, before, how it used to work was: If you selected one genre , then it would give you the correct result. But if you selected multiple genres , then it might: Give you the same anime again and again Give you some random unrelated anime Or sometimes even throw an error But yeah, there are some changes I made to this. Now, instead of showing some random unrelated anime or throwing an error, it would display something which comes within the range of your selected genres . For example, if you selected: Action Comedy Drama And if no such anime is found on the API which contains all three genres , then it would give you an anime containing Action or Comedy or Drama, or any combination of the selected genres . So yeah, it will not totally disappoint you. I mean, I felt it would be better to give you something related to what you selected. ( ̄▽ ̄)ゞ rather than something totally unrelated. Current Implementation Currently, I have applied this system only to AniList . I’ll apply it to Jikan and Kitsu soon However, I am not applying it to SukiMori , as it is not giving quite the response required to display anything. I did not comment out the whole code of SukiMori, but yeah, I am not applying the filters and stuff to SukiMori as it is throwing an error again and again, and it’s not letting me fetch any data. I tried searching for it, but I could not really fix it. So I asked AI, and it told me that it was refusing to connect and nothing can be done and something like that. So yeah, I am not writing filters for that for now. That’s It! And yeah, that’s it for this devlog, I guess. (。•̀ᴗ-)✧ If you have any questions, or if you think I did not explain anything properly, then please do tell me in the comments. I’ll try to explain it there . As always, thank you so much for reading! and Have a very nice day! (≧▽≦)
Hikari Devlog #6 Hello everyone, welcome to Devlog #6 of Hikari! (。•̀ᴗ-)✧ Manga Recommendation For this devlog, the main update I would say is the starting of the Manga Recommendation section . I have started working on the manga system now, and so far I have only implemented the AniList API for API calls for manga. In the future, I am planning to add more APIs for manga as well: MangaDex Jikan Kitsu This should give me more options for fallback APIs and hopefully make the manga recommendation system more reliable. That’s It! And yeah, I guess that’s it for this devlog. This one is kinda short, ik (ᵕ—ᴗ—), but that’s the only update I have right now. So yeah, that’s all for this devlog! And as always, if anything was unclear, then please do tell me in the comments. I’ll try to explain it there as well. Thank you so much for reading! Have a nice day! (ノ◕ヮ◕)ノ*:・゚✧
Hikari Devlog #7 Hello everyone, welcome to Devlog #7 of Hikari! (。•̀ᴗ-)✧ Manga API Fallback Okay, so talking about the updates for this devlog, I have now finally added the API fallback chain for mangas as well . I used: AniList → MangaDex → Jikan → Kitsu AniList is the primary API, then MangaDex, then Jikan, and finally Kitsu. And it seems like both MangaDex and Jikan are down . When I used them a few months before, they were active, but I don’t wonder why they all are, like, getting down and not accepting the requests. (but still i kept them on the fallback just in case if any of them come to life =) ) What’s Next? In the upcoming future, I am going to work on the genre filter for mangas in the same way i worked for the anime . I was also thinking of shipping this project after completing the Anime and Manga sections. I know it looks a bit plain right now, but I wanted to see what you all think about it. I might get some good recommendations from you guys, which I might implement. That’s It! Yeah, so I guess that’s it for this devlog. If you want me to explain anything, or if you think that I did not explain something properly, then please tell me in the comments. I’ll try to explain it again. and as always, thank you so much for reading! and Have a nice day! (ノ◕ヮ◕)ノ*:・゚✧
Hikari Devlog #8 Hello everyone, welcome to Devlog #8 of Hikari! (。•̀ᴗ-)✧ Genre Filter Talking about the updates I worked on the genre filter and applied the filter to all four APIs . And yeah, actually, that’s all for this update. What’s Next? 👀 Next, I’m looking towards updating, or like, making some visual changes Also , if everything goes right I might ship it today . As shipping after making a big project might make people not want to read all those devlogs , so um yeah That’s It! Yeah, that’s it for this devlog. And if you think that I didn’t explain something properly, or you want me to explain something more, then please do tell me in the comments. I’ll try again there. Thank you so much for reading, and have a nice day! (ノ◕ヮ◕)ノ*:・゚✧
Hikari Devlog #9 Hello everyone, welcome to Devlog #9 of Hikari! (。•̀ᴗ-)✧ Genre Options So, I added some glassmorphic , or honestly more blur-like effect , on the genre options. I will add a screenshot below What’s Next? Yeah, I guess I will work on the responsiveness of the site next. And I will remove the Cartoons, Movies, and Games options for now because I will be shipping it, and I will work on those topics later on. That’s It! Yeah, I guess that’s it. And as always, if you have any questions, please do tell me in the comments, and I’ll try my best to explain it there. Thank you so much for reading! Have a nice day! (ノ◕ヮ◕)ノ*:・゚✧
Finally Shipping Hikari Devlog #10 Hello everyone, welcome to Devlog #10 of Hikari! (。•̀ᴗ-)✧ And so, this might be the final devlog before the first ship ! Final Touches I have worked on the responsiveness and cleaned the code. I also worked on making sure(cleaning) the experimental console.log things will not be displayed in the console tab of the site. And finally, I have hosted the site ! Screenshot I’ll add a simple screenshot of the site below: If I make any changes later on, while my project is still waiting to be reviewed, I might add another screenshot to this devlog and update what was changed. Site live at : https://shrestha-project-09.66ghz.com/ And if you have any questions, please do tell me in the comments. I’ll try my best to explain it there. Thank you so much for reading, and have a nice day! (ノ◕ヮ◕)ノ*:・゚✧ Update(after the ship for reviewers) Poster as Background That’s It! Thank you so much for reading! And if you have any questions, please do tell me in the comments. I’ll try my best to explain it there. Thank you so much for reading, and have a nice day! (ノ◕ヮ◕)ノ*:・゚✧
Hikari Devlog #11 ✨ Hello everyone, welcome to Devlog #11 of Hikari! Visual Updates Talking about updates, the update is more on the visual side this time. I have added the poster as the background — the same poster which is viewed on the card, with some blur effect. I thought it was kind of cool and matches the old style of my site. (≧▽≦) 3D Card Effect Currently, I am working on making the card have a 3D-like effect . I found the source code for it on FreeFrontend.com . I will provide the link on the GitHub README, in the Credits section. That’s It! Yeah, that’s all for this devlog. I mean, I’m enjoying writing these devlogs. I wrote a couple of devlogs today and I’m still enjoying it, so I’m uploading this one as well. I thought it was good. It’s good to track the progress as well. So,That’s it for this devlog! If you want me to explain something, or if you think I did not explain something properly, then please do tell me in the comments. I’ll try my best to explain it again in the comments as well. Thank you so much for reading, and have a very nice day! (ノ◕ヮ◕)ノ*:・゚✧
Incase you are having issue playing the video, click on the video and press SPACE BAR Hikari Devlog #12 Hello everyone, welcome to Devlog #12 of Hikari! Updates So, talking about updates again, the updates are that I have added a card-like effect on the poster image . Also , I increased the size of the Hikari logo . I also added an animation of a sort of glow on the star beside the word Hikari . ⭐ I’ll add a video of it here below to show the current state of the site. What’s Next? Currently, next I’m going to work on the Movie section . Yeah, I will mention about the API which I’ll be using for movies, in the next devlog probably, if everything goes well. That’s It! And if you have any questions, then please do tell me in the comments. I will try to explain there as well. And yeah, thank you so much for reading! As always, have a very nice day . (ノ◕ヮ◕)ノ*:・゚✧
Hikari Devlog #13 Hello everyone, welcome to Devlog #13 of Hikari! Movie API Talking about the update, I used an API called TMDB on this site. Currently, I don’t have any fallback option for movies right now. Visual Updates I was also working on the card, giving it a default rectangular look . Yeah, I’m trying to match AniSuffle, my old site, and bring some of that old style into Hikari(without looking the old code obviously). What’s Next? Before including more backup APIs for movies, I think I will be working on more visual changes , the auto resize is not added on the card yet, will add that first. I’m also thinking of including streaming links , like I did before in AniSuffle. And yeah, I guess that’s it for this devlog! If you think anything was not explained properly, or if you want me to explain anything again, then please do tell me in the comments. I’ll try to explain it there as well. Thank you so much for reading, and have a very nice day! (ノ◕ヮ◕)ノ*:・゚✧
Hikari Devlog #14 ✨ Hello everyone, welcome to Devlog #14 of Hikari! Visual Updates For the updates, I have made the poster card change its size according to the poster size . So, the card will adjust itself depending on the poster instead of having the same fixed size for every poster. I also added a chibi on the bottom-left of the poster . I mean, why not? =) Just as a little signature. Just like I added in AniSuffle , though its a different chibi Streaming Links & Backend Currently, I am working on adding the streaming links , like adding the Watch Trailer option and stuff. I am also working on fixing the images not being loaded for the Movie section , especially. And after an API fails, there is no fallback right now as well, so I’m will be working on that as well. That’s It! Thank you so much for reading! And if you didn’t understand something, or you think I didn’t explain something properly, then please do tell me in the comments. I’ll try to explain it there as well. Thank you so much for reading, and have a very nice day! (ノ◕ヮ◕)ノ*:・゚✧
Hikari Devlog #15 Hello everyone, welcome to Devlog #15 of Hikari! (ノ◕ヮ◕)ノ*:・゚✧ Watch Trailer Feature So, talking about the updates… I have finally added the Watch Trailer feature! (≧▽≦) Currently, it’s only on the Anime section . Okay, so how it works is, if there is a trailer link available in the API , then it will play it on YouTube . The YouTube video will be embedded within the site, which means you don’t need to go to another tab , and you will NOT be redirected to a new tab. (。•̀ᴗ-)✧ The trailer will simply be displayed within the website itself(in the poster area) , as it is embedded. [anime trailers might be limited to certain country and because of it , some of the trailers can be unavailable, depending upon where you live] I’ll put a clip below showing working. Watch Trailer Button Currently, the Watch Trailer button has no design yet. I’m planning to work on that later. ( ̄▽ ̄)ゞ To close the trailer, you just need to click the same button again. The Watch Trailer button will change its text to Close Trailer , and you can click it to stop the trailer. (っ˘ω˘ς ) Pretty simple! TMDB Movie API Also, currently I’m working on improving the fetching method of the TMDB Movie API . Right now, it picks a random ID between 1 and 500,000 , but yeah… it misses a lot of times. I mean, it was quite visible in the previous devlog video I uploaded. (╥﹏╥) Also talking about the good luck, I just found that TMDB has a proper Discovery endpoint , which returns real and valid movies, and it has a much higher hit rate. I mean, that’s what I found. (•̀ᴗ•́)و But I’m still working on it, and I have not tested it yet . If I get any updates, I’ll update you guys in the next devlog! (。•̀ᴗ-)✧ That’s It! Thank you so much for reading! (づ。◕‿‿◕。)づ And as always, if there is any question, or you think that I didn’t explain something properly, then please do tell me in the comments. I’ll try my best to explain that as well. ( ̄▽ ̄)ゞ As always, thank you so much for reading, and have a very nice day! (ノ´ヮ`)ノ*:・゚✧
Hikari Devlog #16 Hello everyone, welcome to Devlog #16 of Hikari! (ノ◕ヮ◕)ノ*:・゚✧ TMDB Fetching Improvements So, this time I worked on improving the fetching method of the TMDB API . Previously the fetch returned empty or missed the fetch alot of time, but now its quite better. I will attach a video below showing how it works. (。•̀ᴗ-)✧ And also, I have added the OMDb API as the backup for this one. So now, if TMDB fails, OMDb can act as a fallback. Hopefully, this will make the movie recommendation system a bit more reliable. (ง •̀_•́)ง Watch Trailer Btn Design In the video, you can also see a simple design of the Watch Trailer button. I mean, it’s not exactly simple, but I thought that it looks pretty good, at least to me. But still… I spent a lot of time checking different button designs and stuff for that. I literally spent so much time on that single button . (╥﹏╥), hope ya all like that too Genre Filtering Currently, I am working on filtering the genres of the movies . This should make it easier to get recommendations based on the genres you want. (。•̀ᴗ-)✧ A Little Bug… Also, in the video, you might see that the Watch Trailer button also appeared in the Movie section . But that’s actually a bug that I need to fix. ( ̄▽ ̄;) Basically, when the anime has the Watch Trailer option, and then I switch to the movie section, the button keeps appearing there as well. I still need to figure out how to solve this one. (•́ ᴖ •̀) To show this properly, I force restarted the site in the video as well, to show that the movie doesn’t have the Watch Trailer option in that session right now. So yeah… another little bug to deal with. (╥﹏╥) That’s It! So yeah, that’s it for this devlog! If there is anything you think I didn’t explain properly, or you want me to explain something, then please do tell me in the comments. I’ll try my best to explain it there as well. ( ̄▽ ̄)ゞ As always, thank you so much for reading, and have a very nice day! (ノ´ヮ`)ノ*:・゚✧
Hikari Devlog #17 Hello everyone, welcome to Devlog #17 of Hikari! (ノ◕ヮ◕)ノ*:・゚ OMDB as TMDB Fallback The first update I would say is that I have added the OMDB API as the fallback for the TMDB API . And yeah, obviously, I use the free version , and when I was getting the API key, it told me that it can handle around 1,000 requests per day . And…, I think that should be enough for a personal project like this. And on top of that, it’s only being used as a fallback . First, the requests will be handled by TMDB , and if that fails, then only it will come to OMDb . So, 1,000 requests per day is already more than enough for a personal project like this(i guess). ( ̄▽ ̄)ゞ Movie Genre Filters Talking about the next update, I have also added the genre filters for movies . I will add a screenrecording showing it in action, I’ll attach it below. Trailer Feature for Manga And I have also added a trailer feature for manga ! Yeah, even manga have trailer features available through the AniList API , so I added it there as well. (≧▽≦) That’s It! And yeah, that’s it for this devlog! If you have any questions or want me to explain anything again, then please feel free to leave a comment. I will try my best to explain it there as well. And as always, thank you so much for reading, and have a very nice day! ✨ (ノ´ヮ`)ノ*:・゚
Hikari Devlog #18 Hello everyone, welcome to Devlog #18 of Hikari! (ノ◕ヮ◕)ノ*:・゚ Movie Trailer I just wanted to give a quick update on the Movie section . So, I finally added a trailer feature to the Movie section as well! The trailer comes from the TMDB API only , as I could not find any trailer data on OMDB API. I mean, I tried searching, but I didn’t find any trailer data on OMDB , so for now, I’m using the trailer data provided by TMDB. I’ll add a screen recording of the movie trailer in action below. [Sorry , for the lag, my laptop is kinda weak and lags even more with screen recording on] That’s It! Yeah, that’s it for this devlog! Thank you so much! (≧▽≦) And if there is any question, then please do tell me in the comments. I’ll try my best to explain it there as well. Thank you so much for reading, and have a very nice day! (ノ´ヮ`)ノ*:・゚
Hikari Devlog #19 Hello everyone, welcome to Devlog #19 of Hikari! (ノ◕ヮ◕)ノ*:・゚ Streaming Links Talking about the updates for this devlog, I have added the streaming links where you can watch the animes. Currently, I have added: Crunchyroll Netflix AnimeSuge (ㅅ´ ˘ `) How Does the Search Work? So, talking about how it searches the anime… First of all, this applies to Crunchyroll and Netflix only , because AnimeSuge isss… umm… (ó﹏ò。) not legit. But hey, it’s just for learning purposes, okay! So, for Crunchyroll and Netflix , the search works by checking the AniList API to see if a streaming link for that particular anime is available or not. If a Direct Link Is Not Available If the direct streaming link is not available in the API, then it will redirect you to that particular streaming platform by searching for the anime. This also applies to AnimeSuge , and actually it always apply to AnimeSuge as the API is never gonna have streaming link of the site for sure(ᵕ—ᴗ—) So, instead of sending you to a random page, it will search for the exact name of the anime on that platform and show you the result. For example, let’s say there is an anime called Anime A . If the streaming link for Anime A is not available in the API, then when you click on the streaming link, Hikari will search for Anime A on the streaming platform and redirect you to the search result page. Scrollbar Design I have also added a slight design to the scrollbar . I didn’t want to remove the scrollbar completely, because I thought people might actually want to scroll through and read the information. So instead of removing it, I just gave it a little design to make it look a bit better than the plain default scrollbar. It’s a small change, but I wanted to mention it since I made some changes here as well. ( ̄▽ ̄)ゞ That’s It! And yeah, that’s it for this devlog! If you have any questions, please do tell me and let me know in the comments. As always, thank you so much for reading, and have a very nice day! ✨ (ノ´ヮ`)ノ*:・゚✧
Ships:
Hikari is a recommendation site that currently uses a total of five APIs — four APIs for manga and four APIs for anime. Though some of the APIs are used in both of them. To be more precise its, AniList, Jikan, and Kitsu as they have information about both manga and anime, so they are used for both. I’m trying to make a recommendation site that recommends anime and manga for now, but I will be adding movies, games, and cartoons in the future. The main thing I’m trying to do is combine all the available APIs and give you the best experience by solving the issue of free APIs exhausting soon quickly Since I’m combining all these APIs and making them work as a fallback system , if one API fails or gets exhausted, the other can hold you back. For a more detailed explanation, please check out the README on GitHub. Thank you so much! I hope you like this =)...
|
1792875272.8060124
|
1793739272.8060124
|
|
34961
|
SnipClip by @Ander507 | Stardance
|
Ander507
|
5
|
34.0
|
277
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T11:37:10Z", "hours": 10.0, "multiplier": 15.69, "payout": 76, "blessing": "neutral", "text": "Built SnipClip. Clipboard history, snips, recording, OCR. Tray app, all local, Tauri + Rust. I got tired of opening the whole vault just to paste something I copied two minutes ago. So Ctrl+Shift+D / Alt+C is a small panel now, bottom right, on top of whatever you’re in. Search, pin, click, it pastes. Vault is still Ctrl+Shift+V if you actually need it. The annoying part was everything fighting each other. I’d record, then snip, and the overlay just wouldn’t come back. I’d hit record a second time and the bar still thought I was in the first clip. One hotkey already taken by Windows used to kill the rest. 1.6.1 is that last bit: the popup binding is optional, and a conflict just toasts instead of wiping snip/clipboard. Also hit R in the snip editor if you need a black box over a token. Blur never hid anything. Try v1.6.1 from GitHub Releases. MSI or the portable zip if SmartScreen blocks the installer. Copy a few things, hit Ctrl+Shift+D over Notepad, click a card. Then record, stop, snip. Then record again. You want the overlay to show, and the second take should start at 00:00 .", "repo": "https://github.com/Ander507/SnipClip", "demo": "https://github.com/Ander507/SnipClip/releases"}, {"ship_num": 2, "ts": "2026-09-06T16:06:54Z", "hours": 7.0, "multiplier": 15.98, "payout": 54, "blessing": "neutral", "text": "Ship #4 Built SnipClip, a tray app for clipboard history, snips, recording, and OCR. All local. Tauri + Rust. This ship is math and translate. Copy 2×3÷4 and the clipboard becomes 6 . Copy Danish and, if you turn it on, you get English. The hard part was not being annoying: skip links and code so it doesn’t “translate” a stack trace, don’t freeze the clipboard monitor if the network dies, and leave translate off unless you opt in. Proud of the dumb loop. Copy math, get the answer. Copy a language you can’t read, get one you can. Original stays on the card so you can copy either. I copied 60+7 as a test and it put 67 on the clipboard. This is six seven. To test: grab the Windows installer from GitHub Releases. Copy 2×3÷4 , then Ctrl+Shift+V and check the Math tab. Settings → Auto-translate, pick a language, copy some foreign text. Alt+C still pastes without opening the app.", "repo": "https://github.com/Ander507/SnipClip", "demo": "https://github.com/Ander507/SnipClip/releases"}, {"ship_num": 3, "ts": "2026-09-03T09:44:55Z", "hours": 6.0, "multiplier": 6.68, "payout": 20, "blessing": "neutral", "text": "Built SnipClip, a tray app for clipboard history, region screenshots, screen recording, and OCR. All local. Tauri + Rust. The hard part was making it feel instant. Recording used to copy the whole monitor every frame. Clipboard polling opened the clipboard twice every 400ms even when nothing changed. OCR froze the window while models loaded. I fixed those by capturing only the selected region with GDI, checking GetClipboardSequenceNumber() before any read, and running OCR off the UI thread. Proud of the loop: copy something, Ctrl+Shift+V for the vault, Alt+C to paste without opening the app, Ctrl+Shift+S to snip, Ctrl+Shift+R to record. One app, stays in the tray. To test: grab the Windows installer from GitHub Releases, copy a few things, then try those shortcuts. Settings has themes and remappable hotkeys if you want to poke around.", "repo": "https://github.com/Ander507/SnipClip", "demo": "https://github.com/Ander507/SnipClip/releases"}, {"ship_num": 4, "ts": "2026-08-24T15:31:33Z", "hours": 8.0, "multiplier": 17.5, "payout": 73, "blessing": "neutral", "text": "Built SnipClip — a Windows clipboard vault + snip tool with hotkeys, tray, and local SQLite storage. This week I shipped full custom themes: glass, translucency, background images, color editing, and save/import packs. Also multi-monitor snips, a Screenshots category, clear-history no longer killing capture, and a working GitHub updater (v1.1.2). Hardest bits were getting glass/bg to actually show through (not just look toggled on), and the updater needing signed latest.json on releases. Proud of how personal the UI can look now without turning into a settings swamp. To test: install the Windows build from Releases, hit the snip hotkey, copy some stuff, then Settings → Appearance and try glass + a background. Check for updates should say you’re on latest if you’re on v1.1.2. Use the same theme screenshots from Devlog #5 for the image.", "repo": "https://github.com/Ander507/SnipClip", "demo": "https://github.com/Ander507/SnipClip/releases"}, {"ship_num": 5, "ts": "2026-08-09T17:23:09Z", "hours": 3.0, "multiplier": 17.27, "payout": 54, "blessing": "neutral", "text": "Ship #1 What did you make? I built SnipClip! It’s a lightweight desktop utility that combines a SQLite-backed clipboard history manager and a screen snipping and annotation tool into one minimal app. I built it using Tauri, Rust, and Svelte to keep it blazing fast, and wrapped it all in a clean, dark-mode Windows 11 Fluent aesthetic. What was challenging? Managing transparent, always-on-top overlay windows in Tauri was a massive headache. At first, my screen captures were just grabbing solid black screens. Building the blur tool was also way harder than expected because using standard CSS backdrop-filter kept leaving glitchy overlapping artifacts. I had to scrap that approach and engineer a true HTML5 canvas pixel blur to get it working smoothly. What are you proud of? I’m really proud of how native and snappy the whole experience feels. The UI looks incredibly clean with the matte black and glowing cyan theme. I’m especially happy with how the image editor turned out, particularly getting the mouse-wheel zoom and middle-click panning to work perfectly without the blur radius breaking when you zoom in or out. What should people know so they can test your project? You can grab the .msi or .exe installer directly from my GitHub Releases page! Once it’s running in your system tray, the default hotkeys are Ctrl + Shift + V to open your clipboard vault, and Ctrl + Shift + S to trigger the snipping overlay. Try taking a snip, holding the middle mouse button to pan around, zooming in with the scroll wheel, and testing out the custom blur tool!", "repo": "https://github.com/Ander507/SnipClip", "demo": "https://github.com/Ander507/SnipClip/releases"}]...
|
[{"post_id": 67995, "ts": "202 [{"post_id": 67995, "ts": "2026-09-14T10:44:01Z", "hours": 0.7917, "text": "Devlog #9.1 — Tiny cleanup (v.1.6.1) Date: September 14, 2026 Project: SnipClip Spent like forty minutes tidying up some code that was getting ugly. Nothing flashy, just rewrote a couple small spots so I’m not fighting myself next time I open the file. Same app, less mess."}, {"post_id": 67982, "ts": "2026-09-14T09:52:10Z", "hours": 0.6353, "text": "Devlog #9 — Snip works again + a real Win+V popup Date: September 14, 2026 Project: SnipClip Had a nasty one after the last ship: stop a recording, hit snip, and the overlay would die or come back weird. Turned out a late cleanup from the recorder was parking a brand-new snip session. Fixed that, and made sure a broken dock hotkey can’t wipe snip/clipboard shortcuts anymore. Snip → record → snip again feels solid. Also shipped the thing reviewers kept comparing us to. Ctrl+Shift+D (and Alt+C ) now open a floating Win+V-style clipboard panel over whatever app you’re in — search, pin, clear all, click a card to paste. Not a resized vault window; an actual popup. Tagged v1.6.0 ."}, {"post_id": 67960, "ts": "2026-09-14T09:05:56Z", "hours": 8.2828, "text": "Devlog #8 - v1.5.5 Too many bugs this release SHOULDNT BE DOWNLOADET it breaks fully i am gonna fix it in 1.6.0 but i cant like take down the version 1.5.5 from github"}, {"post_id": 63011, "ts": "2026-09-06T16:03:04Z", "hours": 6.7222, "text": "Devlog #7 - v1.5.4 I kept copying two things SnipClip just stored and forgot about: arithmetic, and text I couldn’t read. Copy 2×3÷4 and it solves it now. The answer goes on the clipboard, the line lands in a Math tab. I copied 60+7 as a test and it put 67 on there. This is six seven. Auto-translate is the other one. Off unless you turn it on. Pick a language, copy some text, it translates in the background and keeps the original on the card so you can copy either. Skips links, code, and anything that’s already in the target language. If you’re offline it just does nothing, so the clipboard monitor never waits on a dead request. That’s it. Copy math, get the answer. Copy Danish, get English. skipped devlog for v1.5.3 cause there was a bug and cargo only allows major.minor.patch so only 3 numbers in version"}, {"post_id": 60742, "ts": "2026-09-03T09:42:49Z", "hours": 5.9122, "text": "Devlog #6 Kept using SnipClip all day and it felt fine. Then I watched what it was doing when I wasn’t snipping. The clipboard monitor opened the clipboard twice every 400ms, even when nothing changed. Windows already has GetClipboardSequenceNumber() for that. Check the number, skip if it’s the same, and when something did change, one open reads both text and image. OCR was freezing the window because it ran on the UI thread. Models now load in the background at startup, and recognition happens off the main thread. Snips reuse the same GDI region capture as recording instead of grabbing the whole monitor. Also cleaned up the empty vault, the Alt+C palette copy, and the README so a stranger can actually try it. Bumping to v1.3.0. Copy something, hit Ctrl+Shift+V, then Alt+C. That’s the loop."}, {"post_id": 53848, "ts": "2026-08-24T15:29:12Z", "hours": 8.3383, "text": "Devlog #5 — Themes, snips, and a real updater Spent this week making SnipClip feel more like my app. Custom themes finally landed for real. Glass panels, a translucency slider, pick-your-own background, and full color controls. You can save packs to themes.json , then import/export them so looks aren’t stuck on one machine. Snipping got less annoying too — multi-monitor works properly now, and every snip lands in a Screenshots category instead of disappearing into the void. Also fixed clear-history breaking clipboard capture (that one was rough), killed the Edge right-click menu, and the in-app updater is actually doing its job. Currently on v1.1.2 — “You are on the latest version” feels good after fighting signing/ latest.json earlier. Small polish, big vibe shift."}, {"post_id": 44101, "ts": "2026-08-09T17:20:25Z", "hours": 0.4192, "text": "Devlog #4 — Final Polish & Shipping SnipClip! 🚀 Date: August 9, 2026 Project: SnipClip Total Hours Logged: ~3 hours The final stretch! Today was all about squashing bugs, perfecting the UI, and getting the build ready for the Stardance finish line under com.ander507.snipclip . Here is what got done in this final sprint: Canvas Blur Overhaul: Scrapped the glitchy CSS backdrop-filter and built a true HTML5 canvas pixel blur. No more weird banding artifacts or multiplying dark boxes when dragging the redaction tool. Smooth Editor Controls: Added mouse-wheel zooming that dynamically scales the blur intensity so it doesn’t break at 50% vs 100% zoom. Bound middle-click to a smooth panning camera. Vault Auto-Clear: Hooked up the SQLite database to a new settings panel, allowing automatic purging of unpinned clipboard history on PC reboot or custom intervals. Image Re-editing: Upgraded the lightbox preview modal with an “Edit Image” feature, piping existing vault images right back into the Snipper canvas. Custom Branding: Dropped in the new 3D matte black and cyan app icon, ran the Tauri icon generator, and hooked it up to the Windows system tray. Shipping It: Ran the production build to compile the final Rust/Svelte stack. Pushed the repo to GitHub, uploaded the .msi and .exe binaries to the v1.0.0 Release, and updated the README. SnipClip is officially out in the wild!"}, {"post_id": 42891, "ts": "2026-08-07T20:59:29Z", "hours": 0.8494, "text": "Devlog #3 — Bug Fixing Date: August 7, 2026 Project: SnipClip Spent the day chasing the stuff that looked fine in my head and broken on screen. Blur was the worst of it — first a grey overlay, then mosaic banding that looked like a broken grid when you dragged. Turned out we were stacking bad pixels and overcomplicating the filter. Now it’s a single padded gaussian pass in image space, one box per drag, and it stays readable at any zoom. Also cleaned up: “item not found” when switching vault tabs, card spacing, wheel zoom + Shift/middle-click pan, reopening screenshots from the vault into the editor, and swapping the default Tauri logo for a real SnipClip tray icon (Windows still caches the old one until you unpin / rebuild, of course). Feels less like a prototype and more like something that won’t annoy me mid-flow. Next: Ship 1 to get feedback"}, {"post_id": 42498, "ts": "2026-08-07T08:41:35Z", "hours": 1.2186, "text": "Devlog #2 — First Build Date: August 7, 2026 Project: SnipClip The first version is running. Got a tray app with clipboard history in SQLite, global hotkeys, and a snipper that captures a region then lets you annotate — pen, arrows, highlight, numbered callouts, real pixel blur, color picker. Blur was finicky at first (grey boxes, then it broke when zoomed out). Fixed that with image-space blur plus wheel zoom and middle-click pan. Settings now cover hotkeys and auto-clear for unpinned vault items. Still rough around the edges, but the loop works: copy stuff, snip stuff, find it again later. Next: polish and ship something I’d actually leave running all day."}, {"post_id": 42095, "ts": "2026-08-06T17:40:21Z", "hours": 0.6142, "text": "Devlog #1 — The Idea Date: August 6, 2026 Project: SnipClip I got an idea. I want a tiny desktop app that does two things I always reach for separately: Clipboard history — so I don’t lose the last ten things I copied Quick screenshots with annotation — snip a region, draw on it, copy or save That’s it. One small utility. Fast, local, dark, sits in the tray. Hit a hotkey, grab what you need, get out of the way. Working name: SnipClip . Next up: build the first version and see if it actually feels as smooth as it sounds in my head."}]...
|
Title: SnipClip by @Ander507 | Stardance
Devlogs: Title: SnipClip by @Ander507 | Stardance
Devlogs:
Devlog #1 — The Idea Date: August 6, 2026 Project: SnipClip I got an idea. I want a tiny desktop app that does two things I always reach for separately: Clipboard history — so I don’t lose the last ten things I copied Quick screenshots with annotation — snip a region, draw on it, copy or save That’s it. One small utility. Fast, local, dark, sits in the tray. Hit a hotkey, grab what you need, get out of the way. Working name: SnipClip . Next up: build the first version and see if it actually feels as smooth as it sounds in my head.
Devlog #2 — First Build Date: August 7, 2026 Project: SnipClip The first version is running. Got a tray app with clipboard history in SQLite, global hotkeys, and a snipper that captures a region then lets you annotate — pen, arrows, highlight, numbered callouts, real pixel blur, color picker. Blur was finicky at first (grey boxes, then it broke when zoomed out). Fixed that with image-space blur plus wheel zoom and middle-click pan. Settings now cover hotkeys and auto-clear for unpinned vault items. Still rough around the edges, but the loop works: copy stuff, snip stuff, find it again later. Next: polish and ship something I’d actually leave running all day.
Devlog #3 — Bug Fixing Date: August 7, 2026 Project: SnipClip Spent the day chasing the stuff that looked fine in my head and broken on screen. Blur was the worst of it — first a grey overlay, then mosaic banding that looked like a broken grid when you dragged. Turned out we were stacking bad pixels and overcomplicating the filter. Now it’s a single padded gaussian pass in image space, one box per drag, and it stays readable at any zoom. Also cleaned up: “item not found” when switching vault tabs, card spacing, wheel zoom + Shift/middle-click pan, reopening screenshots from the vault into the editor, and swapping the default Tauri logo for a real SnipClip tray icon (Windows still caches the old one until you unpin / rebuild, of course). Feels less like a prototype and more like something that won’t annoy me mid-flow. Next: Ship 1 to get feedback
Devlog #4 — Final Polish & Shipping SnipClip! 🚀 Date: August 9, 2026 Project: SnipClip Total Hours Logged: ~3 hours The final stretch! Today was all about squashing bugs, perfecting the UI, and getting the build ready for the Stardance finish line under com.ander507.snipclip . Here is what got done in this final sprint: Canvas Blur Overhaul: Scrapped the glitchy CSS backdrop-filter and built a true HTML5 canvas pixel blur. No more weird banding artifacts or multiplying dark boxes when dragging the redaction tool. Smooth Editor Controls: Added mouse-wheel zooming that dynamically scales the blur intensity so it doesn’t break at 50% vs 100% zoom. Bound middle-click to a smooth panning camera. Vault Auto-Clear: Hooked up the SQLite database to a new settings panel, allowing automatic purging of unpinned clipboard history on PC reboot or custom intervals. Image Re-editing: Upgraded the lightbox preview modal with an “Edit Image” feature, piping existing vault images right back into the Snipper canvas. Custom Branding: Dropped in the new 3D matte black and cyan app icon, ran the Tauri icon generator, and hooked it up to the Windows system tray. Shipping It: Ran the production build to compile the final Rust/Svelte stack. Pushed the repo to GitHub, uploaded the .msi and .exe binaries to the v1.0.0 Release, and updated the README. SnipClip is officially out in the wild!
Devlog #5 — Themes, snips, and a real updater Spent this week making SnipClip feel more like my app. Custom themes finally landed for real. Glass panels, a translucency slider, pick-your-own background, and full color controls. You can save packs to themes.json , then import/export them so looks aren’t stuck on one machine. Snipping got less annoying too — multi-monitor works properly now, and every snip lands in a Screenshots category instead of disappearing into the void. Also fixed clear-history breaking clipboard capture (that one was rough), killed the Edge right-click menu, and the in-app updater is actually doing its job. Currently on v1.1.2 — “You are on the latest version” feels good after fighting signing/ latest.json earlier. Small polish, big vibe shift.
Devlog #6 Kept using SnipClip all day and it felt fine. Then I watched what it was doing when I wasn’t snipping. The clipboard monitor opened the clipboard twice every 400ms, even when nothing changed. Windows already has GetClipboardSequenceNumber() for that. Check the number, skip if it’s the same, and when something did change, one open reads both text and image. OCR was freezing the window because it ran on the UI thread. Models now load in the background at startup, and recognition happens off the main thread. Snips reuse the same GDI region capture as recording instead of grabbing the whole monitor. Also cleaned up the empty vault, the Alt+C palette copy, and the README so a stranger can actually try it. Bumping to v1.3.0. Copy something, hit Ctrl+Shift+V, then Alt+C. That’s the loop.
Devlog #7 - v1.5.4 I kept copying two things SnipClip just stored and forgot about: arithmetic, and text I couldn’t read. Copy 2×3÷4 and it solves it now. The answer goes on the clipboard, the line lands in a Math tab. I copied 60+7 as a test and it put 67 on there. This is six seven. Auto-translate is the other one. Off unless you turn it on. Pick a language, copy some text, it translates in the background and keeps the original on the card so you can copy either. Skips links, code, and anything that’s already in the target language. If you’re offline it just does nothing, so the clipboard monitor never waits on a dead request. That’s it. Copy math, get the answer. Copy Danish, get English. skipped devlog for v1.5.3 cause there was a bug and cargo only allows major.minor.patch so only 3 numbers in version
Devlog #8 - v1.5.5 Too many bugs this release SHOULDNT BE DOWNLOADET it breaks fully i am gonna fix it in 1.6.0 but i cant like take down the version 1.5.5 from github
Devlog #9 — Snip works again + a real Win+V popup Date: September 14, 2026 Project: SnipClip Had a nasty one after the last ship: stop a recording, hit snip, and the overlay would die or come back weird. Turned out a late cleanup from the recorder was parking a brand-new snip session. Fixed that, and made sure a broken dock hotkey can’t wipe snip/clipboard shortcuts anymore. Snip → record → snip again feels solid. Also shipped the thing reviewers kept comparing us to. Ctrl+Shift+D (and Alt+C ) now open a floating Win+V-style clipboard panel over whatever app you’re in — search, pin, clear all, click a card to paste. Not a resized vault window; an actual popup. Tagged v1.6.0 .
Devlog #9.1 — Tiny cleanup (v.1.6.1) Date: September 14, 2026 Project: SnipClip Spent like forty minutes tidying up some code that was getting ugly. Nothing flashy, just rewrote a couple small spots so I’m not fighting myself next time I open the file. Same app, less mess.
Ships:
Ship #1 What did you make? I built SnipClip! It’s a lightweight desktop utility that combines a SQLite-backed clipboard history manager and a screen snipping and annotation tool into one minimal app. I built it using Tauri, Rust, and Svelte to keep it blazing fast, and wrapped it all in a clean, dark-mode Windows 11 Fluent aesthetic. What was challenging? Managing transparent, always-on-top overlay windows in Tauri was a massive headache. At first, my screen captures were just grabbing solid black screens. Building the blur tool was also way harder than expected because using standard CSS backdrop-filter kept leaving glitchy overlapping artifacts. I had to scrap that approach and engineer a true HTML5 canvas pixel blur to get it working smoothly. What are you proud of? I’m really proud of how native and snappy the whole experience feels. The UI looks incredibly clean with the matte black and glowing cyan theme. I’m especially happy with how the image editor turned out, particularly getting the mouse-wheel zoom and middle-click panning to work perfectly without the blur radius breaking when you zoom in or out. What should people know so they can test your project? You can grab the .msi or .exe installer directly from my GitHub Releases page! Once it’s running in your system tray, the default hotkeys are Ctrl + Shift + V to open your clipboard vault, and Ctrl + Shift + S to trigger the snipping overlay. Try taking a snip, holding the middle mouse button to pan around, zooming in with the scroll wheel, and testing out the custom blur tool!
Built SnipClip — a Windows clipboard vault + snip tool with hotkeys, tray, and local SQLite storage. This week I shipped full custom themes: glass, translucency, background images, color editing, and save/import packs. Also multi-monitor snips, a Screenshots category, clear-history no longer killing capture, and a working GitHub updater (v1.1.2). Hardest bits were getting glass/bg to actually show through (not just look toggled on), and the updater needing signed latest.json on releases. Proud of how personal the UI can look now without turning into a settings swamp. To test: install the Windows build from Releases, hit the snip hotkey, copy some stuff, then Settings → Appearance and try glass + a background. Check for updates should say you’re on latest if you’re on v1.1.2. Use the same theme screenshots from Devlog #5 for the image.
Built SnipClip, a tray app for clipboard history, region screenshots, screen recording, and OCR. All local. Tauri + Rust. The hard part was making it feel instant. Recording used to copy the whole monitor every frame. Clipboard polling opened the clipboard twice every 400ms even when nothing changed. OCR froze the window while models loaded. I fixed those by capturing only the selected region with GDI, checking GetClipboardSequenceNumber() before any read, and running OCR off the UI thread. Proud of the loop: copy something, Ctrl+Shift+V for the vault, Alt+C to paste without opening the app, Ctrl+Shift+S to snip, Ctrl+Shift+R to record. One app, stays in the tray. To test: grab the Windows installer from GitHub Releases, copy a few things, then try those shortcuts. Settings has themes and remappable hotkeys if you want to poke around.
Ship #4 Built SnipClip, a tray app for clipboard history, snips, recording, and OCR. All local. Tauri + Rust. This ship is math and translate. Copy 2×3÷4 and the clipboard becomes 6 . Copy Danish and, if you turn it on, you get English. The hard part was not being annoying: skip links and code so it doesn’t “translate” a stack trace, don’t freeze the clipboard monitor if the network dies, and leave translate off unless you opt in. Proud of the dumb loop. Copy math, get the answer. Copy a language you can’t read, get one you can. Original stays on the card so you can copy either. I copied 60+7 as a test and it put 67 on the clipboard. This is six seven. To test: grab the Windows installer from GitHub Releases. Copy 2×3÷4 , then Ctrl+Shift+V and check the Math tab. Settings → Auto-translate, pick a language, copy some foreign text. Alt+C still pastes without opening the app.
Built SnipClip. Clipboard history, snips, recording, OCR. Tray app, all local, Tauri + Rust. I got tired of opening the whole vault just to paste something I copied two minutes ago. So Ctrl+Shift+D / Alt+C is a small panel now, bottom right, on top of whatever you’re in. Search, pin, click, it pastes. Vault is still Ctrl+Shift+V if you actually need it. The annoying part was everything fighting each other. I’d record, then snip, and the overlay just wouldn’t come back. I’d hit record a second time and the bar still thought I was in the first clip. One hotkey already taken by Windows used to kill the rest. 1.6.1 is that last bit: the popup binding is optional, and a conflict just toasts instead of wiping snip/clipboard. Also hit R in the snip editor if you need a black box over a token. Blur never hid anything. Try v1.6.1 from GitHub Releases. MSI or the portable zip if SmartScreen blocks the installer. Copy a few things, hit Ctrl+Shift+D over Notepad, click a card. Then record, stop, snip. Then record again. You want the overlay to show, and the second take should start at 00:00 ....
|
1792975876.6148014
|
1793062276.6148014
|
|
17319
|
SituationBoard by @nouxinf | Stardance
|
nouxinf
|
1
|
25.0
|
276
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T12:42:35Z", "hours": 25.0, "multiplier": 11.2, "payout": 276, "blessing": "neutral", "text": "I just finished making SituationBoard a browser new tab page with widgets that can be customised and arranged to your liking. Its a big QoL improvement because it means instead of having to go to several websites to get bits of info, you can see them all on one page you can bookmark or set as a new tab page in your browser. Current widgets included are: Cat picture Oil price Clock Weather XKCD comic It runs in express and some of the widgets use an external API that needs a backend route. Its designed to be contributed to by others, I wrote a guide in the README on how to add new widgets. There’s a light and dark mode too. Hope you enjoy it!", "repo": "https://github.com/nouxinf/situationboard", "demo": "https://situationboard.nouxinf.net/"}]...
|
[{"post_id": 70550, "ts": "202 [{"post_id": 70550, "ts": "2026-09-19T10:59:06Z", "hours": 0.6653, "text": "Devlog 8 of Situationboard In this devlog I put the website on my VPS at https://situationboard.nouxinf.net/ and wrote a README. The readme contains some info on the project, screenshots, and instructions on how to add a new widget to the site for contributors."}, {"post_id": 70233, "ts": "2026-09-18T19:18:21Z", "hours": 1.0689, "text": "Devlog 7 of Situationboard In this devlog I added a dark mode that saves your preferences but also loads them from your system settings. I made a bunch of CSS tweaks at the same time to make it look a bit nicer too."}, {"post_id": 70175, "ts": "2026-09-18T16:54:18Z", "hours": 1.1975, "text": "Devlog 6 of Situationboard In this devlog I added a MacOS style menu bar at the top for some buttons. The SB icon and the Situationboard spans just refresh the page, the attribution button opens a dialog with credits to open source libraries and images used (APIs are credited separately in the add widgets screen). The about screen also has info. Next up is just dark mode, some docs + readme then I’m ready to ship"}, {"post_id": 69245, "ts": "2026-09-16T17:33:32Z", "hours": 2.3942, "text": "Devlog 5 of Situationboard In this devlog I added an XKCD widget, which fetches the latest XKCD comic through a proxy on the backend, and you can navigate through comics with the previous, next, random and custom number buttons. You can also click on the image to zoom in on the comic and the caption. What I’m adding next is dark mode and an attribution screen to give credit to all sources used."}, {"post_id": 68165, "ts": "2026-09-14T17:09:37Z", "hours": 1.7006, "text": "Devlog 4 of Situationboard In this devlog I finished the weather widget. I added icons that I reused from an earlier stardance project, weatherstation that map to WMO codes, and it shows a forecast with min-max temperatures for the next 7 days. Next up I’ll do an xkcd widget and dark mode"}, {"post_id": 67217, "ts": "2026-09-13T08:29:05Z", "hours": 7.3411, "text": "Devlog 3 of Situationboard Things I added: A live time widget A description window for each widget that uses a markdown renderer A customisable weather widget (currently only shows temperature and location but will be updated with week-ahead forecast) Things I might add soon: dark mode xkcd widget?"}, {"post_id": 11390, "ts": "2026-06-18T17:15:06Z", "hours": 3.125, "text": "Devlog 2 of Situationboard Things I’ve worked on since the last devlog: A simple favicon - just “SB” in the Inter font that’s used across the site An Oil Price widget. It originally used data from oilpriceapi.com however I realised that they didn’t provide a permanent free tier, so I switched to the US government’s (of course) EIA (Energy Information Administration) which updates less frequently (half a week or so?). Loading animation for catpic widget from Wikimedia Commons Next up I’ll probably work on a description button in the Add Widgets dialog as it already has a widgets.json entry, its just unused."}, {"post_id": 9344, "ts": "2026-06-15T17:58:45Z", "hours": 7.1142, "text": "Devlog #1 of SituationBoard After finishing the hackpad project, I was trying to find new project ideas to do, so I asked my dad for a QoL improvement that could be made. He mentioned wanting a “portal” to have loads of different information widgets on one screen, as for a lot of things you need to go across different websites. Coincidentally, the Frictionless mission was running, whose “mission” you could say was exactly that - to make something that improves quality of life. The name “SituationBoard” is a play on those “monitor the situation” dashboards that government officials or OSINT people use. The data on here as you can probably see by the screenshot is probably not of as high importance [citation needed]. I decided to make this in express.js, and plain HTML to keep it minimal. The backend will handle most widgets that need APIs, as those wih API keys shouldn’t be sent on the frontend because the keys will be leaked. The first widget added is a random cat picture from a service called Cat-as-a-Service (cataas.com). This didn’t require the backend as cataas doesnt take credentials so it was a good first widget. Next up I’ll write more widgets like weather, prices of various commodities like oil and holiday calendars, and add more features, potentially styling the website up along the way."}]...
|
Title: SituationBoard by @nouxinf | Stardance
Dev Title: SituationBoard by @nouxinf | Stardance
Devlogs:
Devlog #1 of SituationBoard After finishing the hackpad project, I was trying to find new project ideas to do, so I asked my dad for a QoL improvement that could be made. He mentioned wanting a “portal” to have loads of different information widgets on one screen, as for a lot of things you need to go across different websites. Coincidentally, the Frictionless mission was running, whose “mission” you could say was exactly that - to make something that improves quality of life. The name “SituationBoard” is a play on those “monitor the situation” dashboards that government officials or OSINT people use. The data on here as you can probably see by the screenshot is probably not of as high importance [citation needed]. I decided to make this in express.js, and plain HTML to keep it minimal. The backend will handle most widgets that need APIs, as those wih API keys shouldn’t be sent on the frontend because the keys will be leaked. The first widget added is a random cat picture from a service called Cat-as-a-Service (cataas.com). This didn’t require the backend as cataas doesnt take credentials so it was a good first widget. Next up I’ll write more widgets like weather, prices of various commodities like oil and holiday calendars, and add more features, potentially styling the website up along the way.
Devlog 2 of Situationboard Things I’ve worked on since the last devlog: A simple favicon - just “SB” in the Inter font that’s used across the site An Oil Price widget. It originally used data from oilpriceapi.com however I realised that they didn’t provide a permanent free tier, so I switched to the US government’s (of course) EIA (Energy Information Administration) which updates less frequently (half a week or so?). Loading animation for catpic widget from Wikimedia Commons Next up I’ll probably work on a description button in the Add Widgets dialog as it already has a widgets.json entry, its just unused.
Devlog 3 of Situationboard Things I added: A live time widget A description window for each widget that uses a markdown renderer A customisable weather widget (currently only shows temperature and location but will be updated with week-ahead forecast) Things I might add soon: dark mode xkcd widget?
Devlog 4 of Situationboard In this devlog I finished the weather widget. I added icons that I reused from an earlier stardance project, weatherstation that map to WMO codes, and it shows a forecast with min-max temperatures for the next 7 days. Next up I’ll do an xkcd widget and dark mode
Devlog 5 of Situationboard In this devlog I added an XKCD widget, which fetches the latest XKCD comic through a proxy on the backend, and you can navigate through comics with the previous, next, random and custom number buttons. You can also click on the image to zoom in on the comic and the caption. What I’m adding next is dark mode and an attribution screen to give credit to all sources used.
Devlog 6 of Situationboard In this devlog I added a MacOS style menu bar at the top for some buttons. The SB icon and the Situationboard spans just refresh the page, the attribution button opens a dialog with credits to open source libraries and images used (APIs are credited separately in the add widgets screen). The about screen also has info. Next up is just dark mode, some docs + readme then I’m ready to ship
Devlog 7 of Situationboard In this devlog I added a dark mode that saves your preferences but also loads them from your system settings. I made a bunch of CSS tweaks at the same time to make it look a bit nicer too.
Devlog 8 of Situationboard In this devlog I put the website on my VPS at https://situationboard.nouxinf.net/ and wrote a README. The readme contains some info on the project, screenshots, and instructions on how to add a new widget to the site for contributors.
Ships:
I just finished making SituationBoard a browser new tab page with widgets that can be customised and arranged to your liking. Its a big QoL improvement because it means instead of having to go to several websites to get bits of info, you can see them all on one page you can bookmark or set as a new tab page in your browser. Current widgets included are: Cat picture Oil price Clock Weather XKCD comic It runs in express and some of the widgets use an external API that needs a backend route. Its designed to be contributed to by others, I wrote a guide in the README on how to add new widgets. There’s a light and dark mode too. Hope you enjoy it!...
|
1793004636.1626835
|
1793091036.1626835
|
|
19400
|
FocusBuddy by @SaiD | Stardance
|
SaiD
|
2
|
47.0
|
276
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T03:40:46Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A all in one AI-powered productivity system.", "repo": "https://github.com/Sai271-cloud/FocusBuddy", "demo": "https://focus-buddy-li7e.vercel.app/index.html?demo=night-owl"}, {"ship_num": 2, "ts": "2026-07-01T05:31:22Z", "hours": 35.0, "multiplier": 17.61, "payout": 276, "blessing": "neutral", "text": "I made a focusCoach that uses your webcam along with aboutme context + taskName + taskDescription + tab extension to figure out if you are focused or not. The tab extension won’t be available for you guys because it requires me to sign up for google developer account, but besides that the project should still work well. The project has multiple features like a plan feature, AI session debriefs, weekly and daily unwinds, and much more. It is pretty intuitive so try out the project for yourself!!. Also be aware that I am on the free trial of google studio so if the prediction doesn’t work for you that could just mean I have hit my rate limit. Anyway have fun!!!", "repo": "https://github.com/Sai271-cloud/FocusBuddy", "demo": "https://focus-buddy-li7e.vercel.app/index.html?demo=night-owl"}]...
|
[{"post_id": 30697, "ts": "202 [{"post_id": 30697, "ts": "2026-07-18T14:17:20Z", "hours": 4.0931, "text": "Devlog #4 I added a goal feature that allows you to make goals and uses the AI to track the goals and see how well you are doing for the goals"}, {"post_id": 28678, "ts": "2026-07-15T02:25:04Z", "hours": 7.4514, "text": "devlog #3 I have added leagues into the app. I have different leagues based on how many focused hours you have done. I am hoping this will motivate more people into spending more time on this app and in turn being more productive in their life!"}, {"post_id": 19780, "ts": "2026-07-01T05:11:30Z", "hours": 29.7242, "text": "Devlog #2. FocusBuddy V1 is complete. Here is the overview Tracker Focus Buddy is a productivity tool that helps students start focus sessions and understand how focused they were during that time. During a session, Focus Buddy classifies the user’s time into four states: focused, distracted, uncertain, and away. It does this by using webcam frames together with the task the user is working on. For example, if the task is “read a biology chapter,” the AI uses both the webcam frame and the task name/description to decide whether the user appears to be on task. I also built a browser extension that can optionally give Focus Buddy more context from the active tab. For example, if the task is “write an essay,” the extension can share the active website title and URL. This helps the AI make a more accurate prediction because it can compare what the user said they wanted to do with what they are actually doing. Session Debrief, Daily Unwind, and Weekly Unwind For the session debrief, Focus Buddy saves the session data and then generates an AI debrief. This debrief explains what happened during the session and gives practical feedback for next time. It points to specific moments from the session instead of giving generic advice. The daily unwind uses information from all the sessions recorded that day to give a general overview of what happened. During each session, the model records important changes in the user’s state. For example, if a user shifts from working on an essay to watching YouTube, the model can note that change. These state changes are then used as context for the daily unwind. The daily unwind also compares the user’s focus level for that day with their recent average. For example, if the user’s average focus level over the past seven days was 80%, but they recorded 62% today, the model can give encouraging advice while still pointing out the main distractions or struggles from the day. | The weekly unwind works similarly, but it looks at a longer period of time. I also implemented a pattern document that stores general patterns about the user. These patterns can be affirmed or updated by the model after each session. The weekly unwind uses this information to give a recap of the week, including average focus levels, the user’s most focused days, and insights into their focus habits. Plan Feature The next feature I built is the plan feature. This allows the user to plan out their day before starting their work. They can pick tasks, schedule them for specific times, estimate how difficult each task will be, and estimate how long each task will take. Based on this information, the AI can suggest the best times to work on certain tasks using patterns it has learned from the user. This step is completely optional, especially because this feature is still being optimized to provide better suggestions."}, {"post_id": 9651, "ts": "2026-06-16T01:51:48Z", "hours": 5.7564, "text": "Started working on a productivity tool called focus buddy. I currently have a basic landing page with the ability to create tasks and a calendar for session review. When you go into a session the project takes information from the webcam and then it using the Gemini 3.5 flash model along with with the context of the task description and task name assigns one of 4 labels: focused, away, unfocused, and uncertain. Also added a analytics page where you can see your previous sessions + dark mode."}]...
|
Title: FocusBuddy by @SaiD | Stardance
Devlogs:
S Title: FocusBuddy by @SaiD | Stardance
Devlogs:
Started working on a productivity tool called focus buddy. I currently have a basic landing page with the ability to create tasks and a calendar for session review. When you go into a session the project takes information from the webcam and then it using the Gemini 3.5 flash model along with with the context of the task description and task name assigns one of 4 labels: focused, away, unfocused, and uncertain. Also added a analytics page where you can see your previous sessions + dark mode.
Devlog #2. FocusBuddy V1 is complete. Here is the overview Tracker Focus Buddy is a productivity tool that helps students start focus sessions and understand how focused they were during that time. During a session, Focus Buddy classifies the user’s time into four states: focused, distracted, uncertain, and away. It does this by using webcam frames together with the task the user is working on. For example, if the task is “read a biology chapter,” the AI uses both the webcam frame and the task name/description to decide whether the user appears to be on task. I also built a browser extension that can optionally give Focus Buddy more context from the active tab. For example, if the task is “write an essay,” the extension can share the active website title and URL. This helps the AI make a more accurate prediction because it can compare what the user said they wanted to do with what they are actually doing. Session Debrief, Daily Unwind, and Weekly Unwind For the session debrief, Focus Buddy saves the session data and then generates an AI debrief. This debrief explains what happened during the session and gives practical feedback for next time. It points to specific moments from the session instead of giving generic advice. The daily unwind uses information from all the sessions recorded that day to give a general overview of what happened. During each session, the model records important changes in the user’s state. For example, if a user shifts from working on an essay to watching YouTube, the model can note that change. These state changes are then used as context for the daily unwind. The daily unwind also compares the user’s focus level for that day with their recent average. For example, if the user’s average focus level over the past seven days was 80%, but they recorded 62% today, the model can give encouraging advice while still pointing out the main distractions or struggles from the day. | The weekly unwind works similarly, but it looks at a longer period of time. I also implemented a pattern document that stores general patterns about the user. These patterns can be affirmed or updated by the model after each session. The weekly unwind uses this information to give a recap of the week, including average focus levels, the user’s most focused days, and insights into their focus habits. Plan Feature The next feature I built is the plan feature. This allows the user to plan out their day before starting their work. They can pick tasks, schedule them for specific times, estimate how difficult each task will be, and estimate how long each task will take. Based on this information, the AI can suggest the best times to work on certain tasks using patterns it has learned from the user. This step is completely optional, especially because this feature is still being optimized to provide better suggestions.
devlog #3 I have added leagues into the app. I have different leagues based on how many focused hours you have done. I am hoping this will motivate more people into spending more time on this app and in turn being more productive in their life!
Devlog #4 I added a goal feature that allows you to make goals and uses the AI to track the goals and see how well you are doing for the goals
Ships:
I made a focusCoach that uses your webcam along with aboutme context + taskName + taskDescription + tab extension to figure out if you are focused or not. The tab extension won’t be available for you guys because it requires me to sign up for google developer account, but besides that the project should still work well. The project has multiple features like a plan feature, AI session debriefs, weekly and daily unwinds, and much more. It is pretty intuitive so try out the project for yourself!!. Also be aware that I am on the free trial of google studio so if the prediction doesn’t work for you that could just mean I have hit my rate limit. Anyway have fun!!!
A all in one AI-powered productivity system....
|
1792993705.489237
|
1793080105.489237
|
|
46909
|
DevTab by @Eel | Stardance
|
Eel
|
2
|
24.0
|
275
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-21T00:15:29Z", "hours": 19.0, "multiplier": 14.9, "payout": 275, "blessing": "neutral", "text": "After a lot of work, the project is now complete and ready for others to try. I’m really proud of how far it has come, especially the workspace system, GitHub integration, task management, focus timer, and browser extension features. The goal was to make opening a new tab actually useful for development instead of just being another blank page, and I’m happy with where it ended up. Try it out and let me know what you think!", "repo": "https://github.com/Caleb-Guyer/DevTab", "demo": "https://caleb-guyer.github.io/DevTab/"}, {"ship_num": 2, "ts": "2026-08-12T17:11:27Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I finished and shipped my custom new tab page! The project features a fully custom HTML/CSS/JavaScript interface with interactive functionality and a design built from scratch. I focused on making it feel like a polished replacement for the default new tab page rather than just a static website.", "repo": "https://github.com/Caleb-Guyer/DevTab", "demo": "https://caleb-guyer.github.io/DevTab/"}]...
|
[{"post_id": 51364, "ts": "202 [{"post_id": 51364, "ts": "2026-08-21T00:07:07Z", "hours": 10.0667, "text": "DevTab 3.0 is now complete! I added support for multiple project workspaces, with each workspace having its own notes, links, tasks, layouts, accents, and saved sessions. DevTab can automatically migrate existing data from version 2.0, and it now integrates public GitHub repository information including commits, issues, pull requests, and releases, with offline caching. I also added a project task queue with progress tracking and a persistent focus timer that can be linked to tasks. The browser extension can now capture and restore browser tabs, while the website supports manually saved tab lists. Workspace commands such as workspace, launch, task, done, and focus were added, along with keyboard shortcuts for quickly switching between workspaces. I also finished up the responsive interface and updated the extension metadata, README, social preview, and demo. Overall, this update makes DevTab much more useful for managing multiple development projects and keeping everything related to a project in one place."}, {"post_id": 50771, "ts": "2026-08-20T04:24:35Z", "hours": 8.1569, "text": "Spent some time finishing up DevTab 2.0, and it’s finally complete. The goal with this update was to turn DevTab from a basic new-tab page into a much more customizable workspace that I can actually use every day. I added editable and reorderable quick links and cards, a command launcher with built-in calculations, and support for multiple Markdown notes. GitHub activity has also been expanded, and weather now supports manually selected locations and different units. I also added import/export functionality, individual reset options, and offline caching so the workspace is more useful even without a connection. I also spent some time on the less visible parts of the project. I added accessibility controls, built the browser extension version, created the icons, social preview, and demo GIF, and updated the README. Automated tests and a Lighthouse workflow were added as well."}, {"post_id": 48281, "ts": "2026-08-16T16:19:15Z", "hours": 0.2772, "text": "After receiving feedback during certification, I went back through the DevTab styling and rewrote several sections of the CSS myself. I focused on understanding and rebuilding the affected components rather than simply changing values, while also making some additional layout and styling adjustments. I then tested the updated interface to make sure the changes worked correctly and didn’t introduce visual or functional issues."}, {"post_id": 45886, "ts": "2026-08-12T17:05:52Z", "hours": 2.7272, "text": "I continued working on the new tab page and focused on turning the project from a basic prototype into something that actually feels like a finished website. I spent this session improving the styling and layout, fixing some smaller UI issues, and making the different interactive elements work together more smoothly. I also added and refined the main functionality of the page so it feels useful when opening a new tab instead of just being a static design .A lot of the time went into testing everything in the browser and making small adjustments to the CSS and JavaScript. I wanted the interface to feel consistent across the different parts of the page, so I kept refining spacing, sizing, and interactions as I found things that looked or behaved awkwardly."}, {"post_id": 45548, "ts": "2026-08-12T03:31:44Z", "hours": 2.3419, "text": "I’ve been working through the first parts of the Give Your Website a Pulse mission and have started turning the basic new tab page into a more complete website.So far, I’ve worked on the main HTML structure, built the custom layout, and started styling the interface with my own CSS rather than relying on a template. I’ve also been adding the JavaScript needed to make the page interactive and behave more like an actual new tab replacement.A big part of this session was getting the different parts of the page to work together while keeping the design clean and consistent. I also spent time testing the page in the browser and fixing small issues as they came up.There’s still some work left before I’m ready to ship, but the main structure and styling are coming together and the project is starting to feel like an actual usable new tab page rather than just a static webpage."}]...
|
Title: DevTab by @Eel | Stardance
Devlogs:
I’ve b Title: DevTab by @Eel | Stardance
Devlogs:
I’ve been working through the first parts of the Give Your Website a Pulse mission and have started turning the basic new tab page into a more complete website.So far, I’ve worked on the main HTML structure, built the custom layout, and started styling the interface with my own CSS rather than relying on a template. I’ve also been adding the JavaScript needed to make the page interactive and behave more like an actual new tab replacement.A big part of this session was getting the different parts of the page to work together while keeping the design clean and consistent. I also spent time testing the page in the browser and fixing small issues as they came up.There’s still some work left before I’m ready to ship, but the main structure and styling are coming together and the project is starting to feel like an actual usable new tab page rather than just a static webpage.
I continued working on the new tab page and focused on turning the project from a basic prototype into something that actually feels like a finished website. I spent this session improving the styling and layout, fixing some smaller UI issues, and making the different interactive elements work together more smoothly. I also added and refined the main functionality of the page so it feels useful when opening a new tab instead of just being a static design .A lot of the time went into testing everything in the browser and making small adjustments to the CSS and JavaScript. I wanted the interface to feel consistent across the different parts of the page, so I kept refining spacing, sizing, and interactions as I found things that looked or behaved awkwardly.
After receiving feedback during certification, I went back through the DevTab styling and rewrote several sections of the CSS myself. I focused on understanding and rebuilding the affected components rather than simply changing values, while also making some additional layout and styling adjustments. I then tested the updated interface to make sure the changes worked correctly and didn’t introduce visual or functional issues.
Spent some time finishing up DevTab 2.0, and it’s finally complete. The goal with this update was to turn DevTab from a basic new-tab page into a much more customizable workspace that I can actually use every day. I added editable and reorderable quick links and cards, a command launcher with built-in calculations, and support for multiple Markdown notes. GitHub activity has also been expanded, and weather now supports manually selected locations and different units. I also added import/export functionality, individual reset options, and offline caching so the workspace is more useful even without a connection. I also spent some time on the less visible parts of the project. I added accessibility controls, built the browser extension version, created the icons, social preview, and demo GIF, and updated the README. Automated tests and a Lighthouse workflow were added as well.
DevTab 3.0 is now complete! I added support for multiple project workspaces, with each workspace having its own notes, links, tasks, layouts, accents, and saved sessions. DevTab can automatically migrate existing data from version 2.0, and it now integrates public GitHub repository information including commits, issues, pull requests, and releases, with offline caching. I also added a project task queue with progress tracking and a persistent focus timer that can be linked to tasks. The browser extension can now capture and restore browser tabs, while the website supports manually saved tab lists. Workspace commands such as workspace, launch, task, done, and focus were added, along with keyboard shortcuts for quickly switching between workspaces. I also finished up the responsive interface and updated the extension metadata, README, social preview, and demo. Overall, this update makes DevTab much more useful for managing multiple development projects and keeping everything related to a project in one place.
Ships:
I finished and shipped my custom new tab page! The project features a fully custom HTML/CSS/JavaScript interface with interactive functionality and a design built from scratch. I focused on making it feel like a polished replacement for the default new tab page rather than just a static website.
After a lot of work, the project is now complete and ready for others to try. I’m really proud of how far it has come, especially the workspace system, GitHub integration, task management, focus timer, and browser extension features. The goal was to make opening a new tab actually useful for development instead of just being another blank page, and I’m happy with where it ended up. Try it out and let me know what you think!...
|
1792882039.2886648
|
1793746039.2886648
|
|
12072
|
Personal Blog by @Silvend | Stardance
|
Silvend
|
1
|
20.0
|
274
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T01:00:27Z", "hours": 20.0, "multiplier": 13.88, "payout": 274, "blessing": "neutral", "text": "Hello! I made a personal website in order to share some of my interests and personal projects with others who might be interested. It includes information about my likes and hobbies and other things that make me “me”! The most challenging part of this project was aligning my content, specially buttons and images, using CSS. I’m really proud of how the actual CSS turned out. I liked including different color pallets per page and other decorating elements!!", "repo": "https://github.com/SILVENDz/blog", "demo": "https://silvendz.neocities.org"}]...
|
[{"post_id": 62565, "ts": "202 [{"post_id": 62565, "ts": "2026-09-06T00:43:35Z", "hours": 1.4653, "text": "Uploaded my site to neocities in order to have a demo link! I did some entries, such as an embedded link to one of my other projects. I improved some of the images by resizing and grouping them. Additionally, I updated my “Currently doing” section under the more tab."}, {"post_id": 48606, "ts": "2026-08-17T02:18:10Z", "hours": 4.3878, "text": "I started adding some of my website pages! The first one is regarding photography, I put it under hobbies. I added some images plus a comment section on the bottom using an external widget. I’m currently re-working my home page because I wanted to make my carousel with manga images actually seem infinite. It’s currently only repeating twice and then glitching, so it is something I have to work on. I might have to duplicate the container until it appears smooth. I’ve been having problems with my VS code crashing after 5 minutes of usage, but I am trying to get as much work into my website before it crashes."}, {"post_id": 10354, "ts": "2026-06-17T01:09:16Z", "hours": 5.41, "text": "I replaced the temporary images with an actual ‘About Me’ page. I made it so that the section is scrollable. I also linked a guest book as a button, which is something I found super cute! At the bottom of my home page is the slides I wanted to add. It wasn’t a big priority, just something I wanted to do for fun, but it still took so long to actually get it to work without glitching out or not sliding at all. To my more page I added a currently doing list, which will have what I am working on, reading, or watching. I also linked a mini Spotify playlist I did, just for fun and to make the website a bit more interactive. I’ll rework the layout for my blog page, and start writing some entries. My goal is to make it as interactive as possible with more links, comment sections, and maybe just silly addition to the website!"}, {"post_id": 6588, "ts": "2026-06-11T02:06:29Z", "hours": 2.8542, "text": "I have the bare bones right now for the actual blog section, but I’ll start working on the actual content soon. I have a couple of thing that I would like to talk about in here. I also plan on adding more details such as marquees and carousel-like images. For now, my next step is to work on adding comment sections to each separate blog and also adding a guest book to my home page."}, {"post_id": 5274, "ts": "2026-06-09T00:00:01Z", "hours": 4.8047, "text": "She is looking much less rough compared to last night.. I’ll start working on the actual blog part soon, I just wanted to get my home page layout done. The cat images are temporary unless I decide other wise (except the meowls, they’re 100% staying there :D) It’s not noticeable since it’s a screenshot, but I added a marquee that says “Be someone’s rainbow today!” It has to be my favorite thing out of my home page, I actually managed to make it slide. I will add a guest book button at the bottom of the home page, as well as a couple of banners or manga panels I really like and want to share with the world (it’s not a huge priority right now tho) I still struggle slightly with CSS, I am a painfully obvious beginner, but I am slowly getting the hang of it, the layout came out pretty cute. I’ll have a different color scheme for each page."}, {"post_id": 4675, "ts": "2026-06-08T02:26:19Z", "hours": 0.7883, "text": "She is looking rough right now. I believe this is my second or third time working with html and css, so it is really a work in process… I’ll continue to work on it and improve it as much as I can (plus add the actual blog stuff) It will just be a huge nerd log. Right now I just have the name, a background image, and the little meowls. My priority is to get content in fiist before beginning to elaborate in the decoration."}]...
|
Title: Personal Blog by @Silvend | Stardance
Devl Title: Personal Blog by @Silvend | Stardance
Devlogs:
She is looking rough right now. I believe this is my second or third time working with html and css, so it is really a work in process… I’ll continue to work on it and improve it as much as I can (plus add the actual blog stuff) It will just be a huge nerd log. Right now I just have the name, a background image, and the little meowls. My priority is to get content in fiist before beginning to elaborate in the decoration.
She is looking much less rough compared to last night.. I’ll start working on the actual blog part soon, I just wanted to get my home page layout done. The cat images are temporary unless I decide other wise (except the meowls, they’re 100% staying there :D) It’s not noticeable since it’s a screenshot, but I added a marquee that says “Be someone’s rainbow today!” It has to be my favorite thing out of my home page, I actually managed to make it slide. I will add a guest book button at the bottom of the home page, as well as a couple of banners or manga panels I really like and want to share with the world (it’s not a huge priority right now tho) I still struggle slightly with CSS, I am a painfully obvious beginner, but I am slowly getting the hang of it, the layout came out pretty cute. I’ll have a different color scheme for each page.
I have the bare bones right now for the actual blog section, but I’ll start working on the actual content soon. I have a couple of thing that I would like to talk about in here. I also plan on adding more details such as marquees and carousel-like images. For now, my next step is to work on adding comment sections to each separate blog and also adding a guest book to my home page.
I replaced the temporary images with an actual ‘About Me’ page. I made it so that the section is scrollable. I also linked a guest book as a button, which is something I found super cute! At the bottom of my home page is the slides I wanted to add. It wasn’t a big priority, just something I wanted to do for fun, but it still took so long to actually get it to work without glitching out or not sliding at all. To my more page I added a currently doing list, which will have what I am working on, reading, or watching. I also linked a mini Spotify playlist I did, just for fun and to make the website a bit more interactive. I’ll rework the layout for my blog page, and start writing some entries. My goal is to make it as interactive as possible with more links, comment sections, and maybe just silly addition to the website!
I started adding some of my website pages! The first one is regarding photography, I put it under hobbies. I added some images plus a comment section on the bottom using an external widget. I’m currently re-working my home page because I wanted to make my carousel with manga images actually seem infinite. It’s currently only repeating twice and then glitching, so it is something I have to work on. I might have to duplicate the container until it appears smooth. I’ve been having problems with my VS code crashing after 5 minutes of usage, but I am trying to get as much work into my website before it crashes.
Uploaded my site to neocities in order to have a demo link! I did some entries, such as an embedded link to one of my other projects. I improved some of the images by resizing and grouping them. Additionally, I updated my “Currently doing” section under the more tab.
Ships:
Hello! I made a personal website in order to share some of my interests and personal projects with others who might be interested. It includes information about my likes and hobbies and other things that make me “me”! The most challenging part of this project was aligning my content, specially buttons and images, using CSS. I’m really proud of how the actual CSS turned out. I liked including different color pallets per page and other decorating elements!!...
|
1793004484.0074286
|
1793090884.0074286
|
|
40776
|
Generic Functional Programming Language by @Yoyodo Generic Functional Programming Language by @Yoyodotpy | Stardance...
|
Yoyodotpy
|
1
|
17.51
|
274
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T20:18:20Z", "hours": 17.0, "multiplier": 15.69, "payout": 274, "blessing": "neutral", "text": "This is a simple interpretted functional programming language. Originally, I intended for it to be compiled, but after dealing with llvm for a few days I gave up on this and just made it be interpretted. I struggled a lot with making the language not look incredibly ugly as I was designing it, but in the end I managed to make it look half decent. It also only works in the cli and has no options beyond just putting the file path to run a program. Despite all that, I think that this went pretty well. It was my first time trying to make a language, and I learnt a whole lot about the backend and design of programming languages (and gained a couple more strong opinions about programming syntax). It ended up being functional in both ways, and capable of making and running simple programs. I’ll probably try to make a new language in the future, with everything I’ve learnt.", "repo": "https://github.com/Yoyodotpy/programming-language", "demo": "https://github.com/Yoyodotpy/programming-language/releases/latest"}]...
|
[{"post_id": 67443, "ts": "202 [{"post_id": 67443, "ts": "2026-09-13T15:32:25Z", "hours": 0.5092, "text": "I added help text and changed the demo folder to be called examples."}, {"post_id": 66866, "ts": "2026-09-12T20:04:18Z", "hours": 1.7833, "text": "I got this ready to ship because I lost interest in this, but i might make another project in the remaining time in Stardance. Either way, i finished the README.md, added a release with prebuilt binaries, and made a demo using asciinema."}, {"post_id": 40916, "ts": "2026-08-04T19:04:54Z", "hours": 2.2236, "text": "llvm is pain it compiles but it doesnt work i might just pivot and make it interpretted only, maybe have it transpile to scheme instead."}, {"post_id": 39809, "ts": "2026-08-03T01:30:00Z", "hours": 3.8047, "text": "I got started on making the compiler convert my language to LLVM IR code, and it genuinely sucks. I basically need to make my language un-functional itself into a primitive language, and I need to deal with the limits of my own language, golang, and C at the same time and it’s torture. I’m powering through though and I’m almost at a point where it’ll actually manage to compile my language."}, {"post_id": 38588, "ts": "2026-08-01T02:06:56Z", "hours": 3.6814, "text": "This is now technically a usable programming language! It can interpret code, and I even made a Fibonacci program. I spent most of the day making some basic primitives, alongside starting the standard library with things like true, false, or, and, not, nil, print, addition, multiplication, subtraction, division and more! Tomorrow I’ll set it up with LLVM and try my best to get it to actually compile. Wish me luck! Also, if any of you have ideas for how I can make the code less ugly, I would appreciate some advice."}, {"post_id": 37999, "ts": "2026-07-31T03:30:44Z", "hours": 3.1147, "text": "I pretty much finished the AST and I’m basically ready to start working on the interpretter."}, {"post_id": 37267, "ts": "2026-07-29T20:48:55Z", "hours": 2.8633, "text": "I finalized the lexer and I’m almost done with generating the AST, so nearly done with the boring bit! I also made some very basic test programs."}]...
|
Title: Generic Functional Programming Language by Title: Generic Functional Programming Language by @Yoyodotpy | Stardance
Devlogs:
I finalized the lexer and I’m almost done with generating the AST, so nearly done with the boring bit! I also made some very basic test programs.
I pretty much finished the AST and I’m basically ready to start working on the interpretter.
This is now technically a usable programming language! It can interpret code, and I even made a Fibonacci program. I spent most of the day making some basic primitives, alongside starting the standard library with things like true, false, or, and, not, nil, print, addition, multiplication, subtraction, division and more! Tomorrow I’ll set it up with LLVM and try my best to get it to actually compile. Wish me luck! Also, if any of you have ideas for how I can make the code less ugly, I would appreciate some advice.
I got started on making the compiler convert my language to LLVM IR code, and it genuinely sucks. I basically need to make my language un-functional itself into a primitive language, and I need to deal with the limits of my own language, golang, and C at the same time and it’s torture. I’m powering through though and I’m almost at a point where it’ll actually manage to compile my language.
llvm is pain it compiles but it doesnt work i might just pivot and make it interpretted only, maybe have it transpile to scheme instead.
I got this ready to ship because I lost interest in this, but i might make another project in the remaining time in Stardance. Either way, i finished the README.md, added a release with prebuilt binaries, and made a demo using asciinema.
I added help text and changed the demo folder to be called examples.
Ships:
This is a simple interpretted functional programming language. Originally, I intended for it to be compiled, but after dealing with llvm for a few days I gave up on this and just made it be interpretted. I struggled a lot with making the language not look incredibly ugly as I was designing it, but in the end I managed to make it look half decent. It also only works in the cli and has no options beyond just putting the file path to run a program. Despite all that, I think that this went pretty well. It was my first time trying to make a language, and I learnt a whole lot about the backend and design of programming languages (and gained a couple more strong opinions about programming syntax). It ended up being functional in both ways, and capable of making and running simple programs. I’ll probably try to make a new language in the future, with everything I’ve learnt....
|
1793008151.3031917
|
1793094551.3031917
|
|
18029
|
Chip8-Emulator by @ashish-raj-singh | Stardance
|
ashish-raj-singh
|
1
|
15.15
|
273
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T10:14:53Z", "hours": 14.0, "multiplier": 18.94, "payout": 273, "blessing": "neutral", "text": "Chip-8 Emulator I built a cross-platform CHIP-8 Emulator from the ground up using C++ and Raylib. It accurately emulates the original 1970s hardware, from the display rendering (60Hz) for authentic gameplay, complete with automated CI & releases for Windows, Mac, and Linux. Emulator Comes with some preloaded .ch8 binaries and you can import your own custom or internet downloaded binaries as well. Coming from High Level programing (Web Development), this low level project was new and i am now in love with low level concepts. What was challenging? Fighting the operating systems to actually let people play it! The C++ emulation logic was fun, but building the CI/CD pipeline to statically link Raylib from source to escape Windows “DLL Hell” was a nightmare. I also spent way too much time trying to hide the developer console to make it look “professional,” only to realize keeping the console is the only way to stop Windows Defender and Apple Gatekeeper from immediately flagging a statically-linked .exe as a virus. Other then just coding, a lot of time was invested in reading references, making the application actullay Runnable on different platforms Proud? Creating a GUI in c++, and actually implementing something in C++, not just doing Data Structure and Algorithm, but actually implemented something in C++. Leanrnign all these low level concepts about cpu, register, display screen, complier & linker, building cross platforn applications. The fully automated, zero-touch CI/CD pipeline. Right now, I can type git push origin v1.0, and GitHub Actions automatically spins up Mac, Windows, and Linux servers, clones the pure Raylib source code, compiles it from scratch, statically links it to my emulator, and spits out three perfectly zipped, ready-to-play release files. It feels like production ready.", "repo": "https://github.com/ashish757/Chip8-Emulator", "demo": "https://github.com/ashish757/Chip8-Emulator/releases"}]...
|
[{"post_id": 13769, "ts": "202 [{"post_id": 13769, "ts": "2026-06-22T15:55:36Z", "hours": 1.1486, "text": "Devlog Updated Readme files, and wrote down some technical details"}, {"post_id": 13341, "ts": "2026-06-21T21:13:02Z", "hours": 3.4903, "text": "Devlog 5: Making it Beep Last time, I talked about how Continuous Integration was eating my time, Windows was demanding my soul with missing DLLs, and Apple Gatekeeper was holding my app hostage for $99. This time, I fought back. The emulator is now completely polished, actually sounds like a retro console, and distributes like a real, professional application. Here is what went down. It Beeps now The CHIP-8 doesn’t have a sound card. It basically has a timer attached to a buzzer. If the soundTimer register is greater than 0, it beeps. It ticks down at exactly 60Hz. I basically wrote some code in c++ to generate a square wave, and used raylib’s audioPlayer to support classic beep sound of chip 8. Production (The Illusion of Polish) Originally, I hated that a black developer console popped up behind the Emulator. It screamed unfinished project. So, I spent hours engineering it out. On Windows, I added the -mwindows flag to the compiler to change it from a Console App to a pure GUI App . On Mac, I completely rewrote my CI pipeline to generate a standard Apple .app folder structure so it would look like a commercial application. the result? Total disaster. Because my newly polished Windows .exe was a standalone GUI application without a digital signature, Windows Defender immediately flagged it as a virus. Meanwhile, Apple’s Gatekeeper still blocked the .app bundle because I refuse to pay Tim Cook $99 a year. The Real Solution: I reverted it all. I am keeping the console. Git always has one more feature (Isn’t god’s another name linus?) This was my first time actually using the tag feature of git in practical life, i after git push v1.1.0 i was wondering the new releases are created, code editor says everything is uptpdate with remote, but why the hell my gihub does not shows new code, and guess waht branch and tags need to be updated seperately. Checkout latest release"}, {"post_id": 12675, "ts": "2026-06-20T18:21:32Z", "hours": 4.4206, "text": "Devlog - Almost completed this time (almostt) This time my goal was to convert this basic chip8 emulator in to something any user can use coming from web development background, creating ui in C++ raylib was completely new. No concept of ui elements here, cant just attach event listeners to button like we do in javascriot What happens here is - you create a rectangle, put some text in it, this becomes your button then there is a constant loop running, which erases and redraws everything on the screen 60 times per second, just like a game loop. now to detect mouse hover, or click, we need to constantly tract the mouse position 60 times a second , and check if it overlaps the coordinates of a button But i found an interesting piece of code raygui , written by the original creator of the raylib it basically removes the manual need of tracking the cursor position and checking them with the coordinates of the ui elements, it handles click and hovers. custom ROM import support I wanted users to be able to run any .ch8 program they wanted to run. I simply opened up a native dialog to select a .ch8 file and run it on the emulator. I used AppleScript on Mac to trigger the file picker, but on Windows , I had to pull up a shell in the background The Final Boss: CI and distribution This is actually a big time eater, while implementing Continuous Integration i did countless iterations solving dumb errors, adjusting platform depended configs and so on… but results are just as fin, now automatic releases are created for every tag. distribution macos blocks applications from unknown developer (i need to pay $99/yr to get verified, Best of luck with that Tim Cook ), to fix this i am thinking to create standard .app structure not sure but it might tame the apple gatekeeper. Apple wanted my money ($99), Windows won’t be happy without taking my soul Like hell, every here and there windows throws some error be it missing dll or path problems or linker issue. the biggest hurdle was that I don’t have access to a windows machine, I had to ping my non-tech friend with new .exe file each time. (aah friends are a blessing, aren’t they, my friend? huh?) Checkout lateset release (supports mac and windows, can’t say about linux for sure) running on mac open the executbale file inside the zip (i wont run, but it is required to open at least once) Open System Settings go to privacy and security scroll down there you will se option to open anyway each time you will have to run the application this way in mac (sorry i dont really have $99) Can anyone with linux please let me know if it works (i am to lazy to install VMWare ) one more thing supported keys are (inspired from original chip-8 keys) 1 2 3 4 q w e r a s d f z x c v use thses keys to give input, nothing else will work (other keys only work in launcher interface like backspace to get back to menu form emulator )"}, {"post_id": 12031, "ts": "2026-06-19T16:56:33Z", "hours": 3.5406, "text": "Devlog 3. The emulator is almost completed and and can run .ch8 binaries not fully complete it still requires some polishing like right now the graphics is flickering a bit, probably due to a bug in graphics engine logic or I might need to change how fast cycles are being executed. Checkout my previous devlogs to know what is chip8? What this time? This time I felt like nobody in the world can explain the logic to translate those opCodes. Coming from high level low level is absolute new, i thought I might find some resemblance (guess what?? I was wrong) I still can’t say in understand it 100%, but the struggle is on Here’s what I learnt and built. we load the ch8 binary file -> Save instruction in the RAM -> a continuous while loop which executes each instruction code How does the program even runs? Basically there is a while loop, which keeps on running unless user closes the program or program ends This is where we write logic to find which instruction code to execute next Control the execution speed (clock speed of cpu) Map keyboard events (more on this below) How do we know what code to run next? There is a function executeCycle , inside this funciotn we have - A variable programCounter which tracks the current instruction code position and calculates next one too. Then we have a huge switch case flow, which basically maps all the 35 standard instruction codes form chip8 to modern computer. Then based upon the code, we perform tasks like painting a pixel or change some data in RAM. To keep this short, I will not get into the details about translating the chip8 instruction. Biggest man in the room - Graphics Engine (XOR) we basically have black and white screen, 64px length and 32px height (we use multiplier so the size is not exactly 64x32, as that will be two small) we then have 1s, 0s to represent black and white pixels the engine basically deleted every pixel and re draws it again, this causes a flashing effect as moder screens are faster and also show the transition. Collision detection the value of a pixel is set to 1 (white) and 0 (black) We take XOR of the Current value of the pixel and the to be updated value if two pixels are white (1) the xor will be 0, and when this happens we set the Vf to 1, indicating a collision has occured. Vf is the 16th register which is left empty and use only to show collision. Keypad keypad The original chip8 keypad was like this Chip8 Modern keyboard 1 2 3 C 1 2 3 4 4 5 6 D ---> Q W E R 7 8 9 E A S D F A 0 B F Z X C V What’s left implement UI to control chip 8 settings like speed, screen size etc. Add a list of software that user can run, as well as option to run his own"}, {"post_id": 8594, "ts": "2026-06-14T09:16:53Z", "hours": 2.0333, "text": "Decades old Low level concepts are still haunting.. (Chip 8 Interpreter) This is my first time building a proper low level project. (Strong Man Crying 😭) its tough i had to study new architechures, understand memory bottlenecks, i spent aout 10% time writing code and rest learing , reading Chip8 technical references, banging head to AI to explain the low level memory concepts (So Exciting its an Automatic All-Nighter puller) And .. heres what i learnt waht is chip 8? chip 8 basically a a interpreted programing language of ancient times (70s). It kind of mimics a small computer (8 bit) , limiting its max memory to 4KB . But the special thing is, its not just a language, it mimics a CPU architecture, making it like a different computer system which doesnt exists phycally, but uses other physical computer to run its own acrhitecture. What is Emulator Well think of emulator as a extra added layer between the software and low level computer systems. which does some magic to run a software which is not ment to run on that system. Windows Application –> macOS (Won’t Run) Windows Application –> Emulator –> macOS (Will Run) Flow Lets say we have a software S, designed to run on System of type C1, but now we want to run the same software on a different system lets say C2, S –> C1 RUNs properly S –> C2 Fails as C2 cant understand the instruction that software S is trying to give to C2 Emulator in the picture Software S (instruction codes for C1 ) –> Emulator (Translates Instruction code for C1 to C2) –> now C2 can run (Translated instructions). Now Chip8 Emulator Lets say you have a program which was designed in and for Chip8, but now you dont have a chip8 system, how do you run this program? We basically use an emulator to trick the software to thing that its running in the old Chip8 system but its acctually running on moder computers. Howwwwww? well Chip8 has 35 standard instructions and only 4096 bytes of memory, so its faily easy to map each and every of its instruction and instead do it in the modern langauges (like i have used C++). We store the data in modern C++ Data Structures , but we trick the target software to thing that it has dorect acces to the RAM of the computer. Current Status implemnted the basic template to mimic real RAM for chip 8, which is basicaly an array of size 4096 , weher first 200 are reserved for the chip8 system use, rest is opent to softwares running on it. I have translated some basic codes, more on this in next devlog A black window with raylib for now"}, {"post_id": 8183, "ts": "2026-06-13T17:09:05Z", "hours": 1.0097, "text": "Building an Chip 8 Emulator This is like my first proper project in low level programing I wanted to take on the low level for a long time, took the chance this time I know only the basics of chip 8 interpreter , I read cowgod’s chip8 technical reference last night this is gonna be a very learning and building like thing, been into the high level for over 5 (Full Stack) years now, hope I can find some similarities and help from my past experiences in to the low level is anyone of you guys (gods) know about low level or specifically chip8 , please drop a comment because I thing I am too going to need babysitting 😭"}]...
|
Title: Chip8-Emulator by @ashish-raj-singh | Stard Title: Chip8-Emulator by @ashish-raj-singh | Stardance
Devlogs:
Building an Chip 8 Emulator This is like my first proper project in low level programing I wanted to take on the low level for a long time, took the chance this time I know only the basics of chip 8 interpreter , I read cowgod’s chip8 technical reference last night this is gonna be a very learning and building like thing, been into the high level for over 5 (Full Stack) years now, hope I can find some similarities and help from my past experiences in to the low level is anyone of you guys (gods) know about low level or specifically chip8 , please drop a comment because I thing I am too going to need babysitting 😭
Decades old Low level concepts are still haunting.. (Chip 8 Interpreter) This is my first time building a proper low level project. (Strong Man Crying 😭) its tough i had to study new architechures, understand memory bottlenecks, i spent aout 10% time writing code and rest learing , reading Chip8 technical references, banging head to AI to explain the low level memory concepts (So Exciting its an Automatic All-Nighter puller) And .. heres what i learnt waht is chip 8? chip 8 basically a a interpreted programing language of ancient times (70s). It kind of mimics a small computer (8 bit) , limiting its max memory to 4KB . But the special thing is, its not just a language, it mimics a CPU architecture, making it like a different computer system which doesnt exists phycally, but uses other physical computer to run its own acrhitecture. What is Emulator Well think of emulator as a extra added layer between the software and low level computer systems. which does some magic to run a software which is not ment to run on that system. Windows Application –> macOS (Won’t Run) Windows Application –> Emulator –> macOS (Will Run) Flow Lets say we have a software S, designed to run on System of type C1, but now we want to run the same software on a different system lets say C2, S –> C1 RUNs properly S –> C2 Fails as C2 cant understand the instruction that software S is trying to give to C2 Emulator in the picture Software S (instruction codes for C1 ) –> Emulator (Translates Instruction code for C1 to C2) –> now C2 can run (Translated instructions). Now Chip8 Emulator Lets say you have a program which was designed in and for Chip8, but now you dont have a chip8 system, how do you run this program? We basically use an emulator to trick the software to thing that its running in the old Chip8 system but its acctually running on moder computers. Howwwwww? well Chip8 has 35 standard instructions and only 4096 bytes of memory, so its faily easy to map each and every of its instruction and instead do it in the modern langauges (like i have used C++). We store the data in modern C++ Data Structures , but we trick the target software to thing that it has dorect acces to the RAM of the computer. Current Status implemnted the basic template to mimic real RAM for chip 8, which is basicaly an array of size 4096 , weher first 200 are reserved for the chip8 system use, rest is opent to softwares running on it. I have translated some basic codes, more on this in next devlog A black window with raylib for now
Devlog 3. The emulator is almost completed and and can run .ch8 binaries not fully complete it still requires some polishing like right now the graphics is flickering a bit, probably due to a bug in graphics engine logic or I might need to change how fast cycles are being executed. Checkout my previous devlogs to know what is chip8? What this time? This time I felt like nobody in the world can explain the logic to translate those opCodes. Coming from high level low level is absolute new, i thought I might find some resemblance (guess what?? I was wrong) I still can’t say in understand it 100%, but the struggle is on Here’s what I learnt and built. we load the ch8 binary file -> Save instruction in the RAM -> a continuous while loop which executes each instruction code How does the program even runs? Basically there is a while loop, which keeps on running unless user closes the program or program ends This is where we write logic to find which instruction code to execute next Control the execution speed (clock speed of cpu) Map keyboard events (more on this below) How do we know what code to run next? There is a function executeCycle , inside this funciotn we have - A variable programCounter which tracks the current instruction code position and calculates next one too. Then we have a huge switch case flow, which basically maps all the 35 standard instruction codes form chip8 to modern computer. Then based upon the code, we perform tasks like painting a pixel or change some data in RAM. To keep this short, I will not get into the details about translating the chip8 instruction. Biggest man in the room - Graphics Engine (XOR) we basically have black and white screen, 64px length and 32px height (we use multiplier so the size is not exactly 64x32, as that will be two small) we then have 1s, 0s to represent black and white pixels the engine basically deleted every pixel and re draws it again, this causes a flashing effect as moder screens are faster and also show the transition. Collision detection the value of a pixel is set to 1 (white) and 0 (black) We take XOR of the Current value of the pixel and the to be updated value if two pixels are white (1) the xor will be 0, and when this happens we set the Vf to 1, indicating a collision has occured. Vf is the 16th register which is left empty and use only to show collision. Keypad keypad The original chip8 keypad was like this Chip8 Modern keyboard 1 2 3 C 1 2 3 4 4 5 6 D ---> Q W E R 7 8 9 E A S D F A 0 B F Z X C V What’s left implement UI to control chip 8 settings like speed, screen size etc. Add a list of software that user can run, as well as option to run his own
Devlog - Almost completed this time (almostt) This time my goal was to convert this basic chip8 emulator in to something any user can use coming from web development background, creating ui in C++ raylib was completely new. No concept of ui elements here, cant just attach event listeners to button like we do in javascriot What happens here is - you create a rectangle, put some text in it, this becomes your button then there is a constant loop running, which erases and redraws everything on the screen 60 times per second, just like a game loop. now to detect mouse hover, or click, we need to constantly tract the mouse position 60 times a second , and check if it overlaps the coordinates of a button But i found an interesting piece of code raygui , written by the original creator of the raylib it basically removes the manual need of tracking the cursor position and checking them with the coordinates of the ui elements, it handles click and hovers. custom ROM import support I wanted users to be able to run any .ch8 program they wanted to run. I simply opened up a native dialog to select a .ch8 file and run it on the emulator. I used AppleScript on Mac to trigger the file picker, but on Windows , I had to pull up a shell in the background The Final Boss: CI and distribution This is actually a big time eater, while implementing Continuous Integration i did countless iterations solving dumb errors, adjusting platform depended configs and so on… but results are just as fin, now automatic releases are created for every tag. distribution macos blocks applications from unknown developer (i need to pay $99/yr to get verified, Best of luck with that Tim Cook ), to fix this i am thinking to create standard .app structure not sure but it might tame the apple gatekeeper. Apple wanted my money ($99), Windows won’t be happy without taking my soul Like hell, every here and there windows throws some error be it missing dll or path problems or linker issue. the biggest hurdle was that I don’t have access to a windows machine, I had to ping my non-tech friend with new .exe file each time. (aah friends are a blessing, aren’t they, my friend? huh?) Checkout lateset release (supports mac and windows, can’t say about linux for sure) running on mac open the executbale file inside the zip (i wont run, but it is required to open at least once) Open System Settings go to privacy and security scroll down there you will se option to open anyway each time you will have to run the application this way in mac (sorry i dont really have $99) Can anyone with linux please let me know if it works (i am to lazy to install VMWare ) one more thing supported keys are (inspired from original chip-8 keys) 1 2 3 4 q w e r a s d f z x c v use thses keys to give input, nothing else will work (other keys only work in launcher interface like backspace to get back to menu form emulator )
Devlog 5: Making it Beep Last time, I talked about how Continuous Integration was eating my time, Windows was demanding my soul with missing DLLs, and Apple Gatekeeper was holding my app hostage for $99. This time, I fought back. The emulator is now completely polished, actually sounds like a retro console, and distributes like a real, professional application. Here is what went down. It Beeps now The CHIP-8 doesn’t have a sound card. It basically has a timer attached to a buzzer. If the soundTimer register is greater than 0, it beeps. It ticks down at exactly 60Hz. I basically wrote some code in c++ to generate a square wave, and used raylib’s audioPlayer to support classic beep sound of chip 8. Production (The Illusion of Polish) Originally, I hated that a black developer console popped up behind the Emulator. It screamed unfinished project. So, I spent hours engineering it out. On Windows, I added the -mwindows flag to the compiler to change it from a Console App to a pure GUI App . On Mac, I completely rewrote my CI pipeline to generate a standard Apple .app folder structure so it would look like a commercial application. the result? Total disaster. Because my newly polished Windows .exe was a standalone GUI application without a digital signature, Windows Defender immediately flagged it as a virus. Meanwhile, Apple’s Gatekeeper still blocked the .app bundle because I refuse to pay Tim Cook $99 a year. The Real Solution: I reverted it all. I am keeping the console. Git always has one more feature (Isn’t god’s another name linus?) This was my first time actually using the tag feature of git in practical life, i after git push v1.1.0 i was wondering the new releases are created, code editor says everything is uptpdate with remote, but why the hell my gihub does not shows new code, and guess waht branch and tags need to be updated seperately. Checkout latest release
Devlog Updated Readme files, and wrote down some technical details
Ships:
Chip-8 Emulator I built a cross-platform CHIP-8 Emulator from the ground up using C++ and Raylib. It accurately emulates the original 1970s hardware, from the display rendering (60Hz) for authentic gameplay, complete with automated CI & releases for Windows, Mac, and Linux. Emulator Comes with some preloaded .ch8 binaries and you can import your own custom or internet downloaded binaries as well. Coming from High Level programing (Web Development), this low level project was new and i am now in love with low level concepts. What was challenging? Fighting the operating systems to actually let people play it! The C++ emulation logic was fun, but building the CI/CD pipeline to statically link Raylib from source to escape Windows “DLL Hell” was a nightmare. I also spent way too much time trying to hide the developer console to make it look “professional,” only to realize keeping the console is the only way to stop Windows Defender and Apple Gatekeeper from immediately flagging a statically-linked .exe as a virus. Other then just coding, a lot of time was invested in reading references, making the application actullay Runnable on different platforms Proud? Creating a GUI in c++, and actually implementing something in C++, not just doing Data Structure and Algorithm, but actually implemented something in C++. Leanrnign all these low level concepts about cpu, register, display screen, complier & linker, building cross platforn applications. The fully automated, zero-touch CI/CD pipeline. Right now, I can type git push origin v1.0, and GitHub Actions automatically spins up Mac, Windows, and Linux servers, clones the pure Raylib source code, compiles it from scratch, statically links it to my emulator, and spits out three perfectly zipped, ready-to-play release files. It feels like production ready....
|
1792997298.908512
|
1793083698.908512
|
|
21694
|
Vokul by @Dragon | Stardance
|
Dragon
|
1
|
21.0
|
273
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-01T14:29:54Z", "hours": 21.0, "multiplier": 13.21, "payout": 273, "blessing": "neutral", "text": "First every ship in star dance. Vokul is a local CLI based password manager where you can store your passwords safely. It has alot of safety mechanisms behind so you don’t have to worry. Stay tuned to get a new chrome extension as well!", "repo": "https://github.com/DevX-Dragon/vokul", "demo": "https://github.com/DevX-Dragon/vokul/releases/tag/v1.0.0"}]...
|
[{"post_id": 20009, "ts": "202 [{"post_id": 20009, "ts": "2026-07-01T14:27:53Z", "hours": 1.3914, "text": "Publishing Did some final stuff and published to PyPi. Add SECURITY.md and `CONTRIBUTION.md Fix workflow to auto-publish to PyPi. Working a landing website. Added a release Published to PyPI Now install via pip install vokul -- upgrade"}, {"post_id": 19953, "ts": "2026-07-01T12:23:39Z", "hours": 7.8642, "text": "Locked TF in I wasnt able to do any devlogs cause my internet was out and yeah. I did alot of work during the 8 hours, Rewrote the entire vault.py script to optimize the encryption and saving passwords. Used the rich library to enhance the GUI. (took the longest) Researched more about other similar tools and made a work plan for future updates. Setting up workflows for auto publishing. Wrote a proper documentation and an attractive readme."}, {"post_id": 15022, "ts": "2026-06-24T12:26:45Z", "hours": 2.8694, "text": "Debugging So i did few changes with the main vault.py to optimize the script. Like making it load only few saves lists and load them when they’re searched for. And alot of backend optimization. Im currently dont have ideas to add new stuff but lets see"}, {"post_id": 14385, "ts": "2026-06-23T14:31:56Z", "hours": 4.95, "text": "Alot of things (forget to sync the hackatime folder) I moved some files and forgot to sync it to hackatime so the hours is kind of high sorry. This session was mostly debugging and testing and nothing much. Did some security patches and got feedback from some people."}, {"post_id": 13157, "ts": "2026-06-21T15:08:06Z", "hours": 0.5764, "text": "More features and fixing Fixing Commands Fixed some existing commands on how they handle errors. Fixed some ghost bugs in it as well. Quick CLI preview edit Added a purple ASCII art to make it look polished Fix recovery Fixed the auto-recovery function for the vault. (<– not fully confident if it works properly, but yeah)"}, {"post_id": 12611, "ts": "2026-06-20T16:37:59Z", "hours": 1.2003, "text": "New Commands and Features Added some new commands and upgraded already existing commands as well. Commands --memorable flag: Added this flag to vokul generate to make the generated string a memorizable string. (in this case, words) vokul edit: I have vokul add and get . So i added vokul edit so you edit passwords or update your TOTP. vokul delete : A simple command to remove a service entry entirely. vokul export : Allow the user to export their vault to a plain-text JSON file (after re-entering the Master Password). This is a “Right to Leave”—users feel safer using a tool if they know they can easily get their data out of it. Features Dry-Run/Validation: Before committing a save() to the file, added a verification check. If the vault file is corrupted during a write operation (e.g., power failure), Vokul will detect it on the next launch and attempt to restore from the last valid .bak file automatically. Lockdown on Error: If a user enters the wrong master password, added a “Cooldown” timer. After 3 failed attempts, force the process to sleep for 5 seconds, increasing exponentially to prevent brute-force attacks on the vault file. (⚠️: Some of these are still in a WIP stage, will update them later. This is the skeleton that i’ll be building around)"}, {"post_id": 12542, "ts": "2026-06-20T14:20:21Z", "hours": 1.0903, "text": "The Base Features So I have developed most of the base features that should be in a password manager. Like adding , viewing , deleting passwords. Searching for the added services , and proper hashing and salting. Adding TOTP Half made a TOTP service where it can generate your 2FA codes without any other external authenticates. It currently works but has some backend issues. Backup system Also half-made. Added a function where it will save a cache copy of the vault before a service is added. So if the vault gets corrupted the cached vault will replace the corrupted vault. Also added an corrupt-check when starting the script itself. Added more hashing and salting for the cache vault as well to prevent leakings. Assets and Logos (not tracked) I made some logos for the app cause why not. I didnt lapse it so It isnt included in the total hours but it took ~1.5 hours."}, {"post_id": 11971, "ts": "2026-06-19T15:17:37Z", "hours": 0.8528, "text": "First Devlog for vokul!! What is this? This is a local-first password manager made in Python. Im planning on making this cross-device compatible with extension , app for windows/mobile and a CLI too. So this will be a big project. The Plan First I’m going to be making the CLI version which will also act as the backbone for other versions. Next the chrome extension and so and on. Progress Currently build the absolute skeleton for the CLI with basic password saving functions. Passwords are properly salted as well. But will improve the security in the future."}]...
|
Title: Vokul by @Dragon | Stardance
Devlogs:
Firs Title: Vokul by @Dragon | Stardance
Devlogs:
First Devlog for vokul!! What is this? This is a local-first password manager made in Python. Im planning on making this cross-device compatible with extension , app for windows/mobile and a CLI too. So this will be a big project. The Plan First I’m going to be making the CLI version which will also act as the backbone for other versions. Next the chrome extension and so and on. Progress Currently build the absolute skeleton for the CLI with basic password saving functions. Passwords are properly salted as well. But will improve the security in the future.
The Base Features So I have developed most of the base features that should be in a password manager. Like adding , viewing , deleting passwords. Searching for the added services , and proper hashing and salting. Adding TOTP Half made a TOTP service where it can generate your 2FA codes without any other external authenticates. It currently works but has some backend issues. Backup system Also half-made. Added a function where it will save a cache copy of the vault before a service is added. So if the vault gets corrupted the cached vault will replace the corrupted vault. Also added an corrupt-check when starting the script itself. Added more hashing and salting for the cache vault as well to prevent leakings. Assets and Logos (not tracked) I made some logos for the app cause why not. I didnt lapse it so It isnt included in the total hours but it took ~1.5 hours.
New Commands and Features Added some new commands and upgraded already existing commands as well. Commands --memorable flag: Added this flag to vokul generate to make the generated string a memorizable string. (in this case, words) vokul edit: I have vokul add and get . So i added vokul edit so you edit passwords or update your TOTP. vokul delete : A simple command to remove a service entry entirely. vokul export : Allow the user to export their vault to a plain-text JSON file (after re-entering the Master Password). This is a “Right to Leave”—users feel safer using a tool if they know they can easily get their data out of it. Features Dry-Run/Validation: Before committing a save() to the file, added a verification check. If the vault file is corrupted during a write operation (e.g., power failure), Vokul will detect it on the next launch and attempt to restore from the last valid .bak file automatically. Lockdown on Error: If a user enters the wrong master password, added a “Cooldown” timer. After 3 failed attempts, force the process to sleep for 5 seconds, increasing exponentially to prevent brute-force attacks on the vault file. (⚠️: Some of these are still in a WIP stage, will update them later. This is the skeleton that i’ll be building around)
More features and fixing Fixing Commands Fixed some existing commands on how they handle errors. Fixed some ghost bugs in it as well. Quick CLI preview edit Added a purple ASCII art to make it look polished Fix recovery Fixed the auto-recovery function for the vault. (<– not fully confident if it works properly, but yeah)
Alot of things (forget to sync the hackatime folder) I moved some files and forgot to sync it to hackatime so the hours is kind of high sorry. This session was mostly debugging and testing and nothing much. Did some security patches and got feedback from some people.
Debugging So i did few changes with the main vault.py to optimize the script. Like making it load only few saves lists and load them when they’re searched for. And alot of backend optimization. Im currently dont have ideas to add new stuff but lets see
Locked TF in I wasnt able to do any devlogs cause my internet was out and yeah. I did alot of work during the 8 hours, Rewrote the entire vault.py script to optimize the encryption and saving passwords. Used the rich library to enhance the GUI. (took the longest) Researched more about other similar tools and made a work plan for future updates. Setting up workflows for auto publishing. Wrote a proper documentation and an attractive readme.
Publishing Did some final stuff and published to PyPi. Add SECURITY.md and `CONTRIBUTION.md Fix workflow to auto-publish to PyPi. Working a landing website. Added a release Published to PyPI Now install via pip install vokul -- upgrade
Ships:
First every ship in star dance. Vokul is a local CLI based password manager where you can store your passwords safely. It has alot of safety mechanisms behind so you don’t have to worry. Stay tuned to get a new chrome extension as well!...
|
1792882119.512995
|
1793746119.512995
|
|
47958
|
SkyTrace by @Jhenil | Stardance
|
Jhenil
|
1
|
17.0
|
273
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T23:43:02Z", "hours": 17.0, "multiplier": 15.96, "payout": 273, "blessing": "neutral", "text": "I have made a flight tracker which provides live updates of aircrafts within 250 nm. Sometimes, I just go and sit on flight trackers and just view many different flights and look at them. I always wanted to make one of my own, so here it is. Features of the tracker are you can track a live flight (250nm), view live updating aircraft info, replay the flight history, an aircraft trail, aircraft route and airport information panel. You also can adjust the map type you want. You can choose from Standard, Dark, Satellite & Terrain. You can also turn on a weather option which shows you the weather information at a particular location. I hope you like my tracker. Thank you for testing!", "repo": "https://github.com/JP-code33/SkyTrace", "demo": "https://sky-trace-qtiq.vercel.app/"}]...
|
[{"post_id": 57553, "ts": "202 [{"post_id": 57553, "ts": "2026-08-29T18:49:33Z", "hours": 1.0672, "text": "Devlog - 9 This is my last devlog before the shipment of this project. In this last hour I have added a curved path as seen in the picture which makes it look better than a straightline. Then I encountered an API issue which was that mu current route API was giving me an 502 error which was because it was down so instead of being too dependent on it, I modified the code to have two API links which the code tries the first and If it doesn’t work then it tries the second one and it works now. Thank you for being a part of this project!"}, {"post_id": 56262, "ts": "2026-08-27T23:16:44Z", "hours": 3.6719, "text": "Devlog - 8 Okay so I wanted to make it apart from a regular flight tracker and I was brainstorming ideas and thought of an idea of making a flight replay. So what I did is now the app stores the latitude and longitude of flights on a temporary basis and then when the user clicks on the replay button the code goes to the starting point and will show you the whole flight journey. I have also made a smaller window seen in the picture which is on the bottom right which shows you the replay details like how the altitude changed or like how speed changed and all things like that. The user can also select at what speed they want to watch the replay and all. Thank you and stay tuned!"}, {"post_id": 54460, "ts": "2026-08-25T14:06:30Z", "hours": 3.305, "text": "Devlog - 7 A longer coding session spanning two days. I have added a couple of things which have made the tracker better and gives it a more professional look than it was before. Firstly I changed the info panel for the aircraft. Before it was a small pop up which came at the top left of the screen but it wasn’t the best so I made it a sliding panel where it slides out from the left side of the screen. Then what I added is adding the airline name inside the panel when an aircraft is selected before using just the flight tracking API I had to hardcode like the callsign to the actual airline name but now it works using an another API which is used for routes as well. Then I added route information inside the panel and for that I used another API (same as the airline name one) which gives information about from where it departed and where is it going. Then I added a route dashed path which gives the user an idea of the aircraft’s intended path and lastly I added so that the panel refreshes every 5 seconds updating the information inside it. I had the most time struggling with API keys and all but at the end I got it working. You can see the changes in the pictures below. Thank and stay tuned!"}, {"post_id": 53357, "ts": "2026-08-23T21:29:38Z", "hours": 2.5233, "text": "Devlog - 6 Finally finally I have gotten the API for the flight tracking to work. I had to use Vercel functions to actually get it to work but here it is. You can see it in the video attached below. I also made it like an animation so I have an interval of 5 seconds but before reaching to its updated location between those 5 seconds it looks like it is covering distance which makes it look so realistic. I have made it so if you zoom out then you see more aircrafts rather than being zoomed in. I will be changing the UI and will be adding live statistics so that the data in the panel updates while you are looking at the aircraft moving. Thank you and stay tuned!"}, {"post_id": 51833, "ts": "2026-08-21T18:08:54Z", "hours": 1.2072, "text": "Devlog - 5 Kind of a slow day today and wasn’t able to do much for today. I only added airport markers and created a panel for it. I have currently hardcoded two airport details and made it around that but I have already found an API for many airport data and it was way easier than finding the API for flight tracking. The key will be implemented in the next devlog and if you guys have any suggestions about flight tracking API then please let me know as it will help me a lot. Thank you and stay tuned!"}, {"post_id": 51263, "ts": "2026-08-20T19:58:03Z", "hours": 2.1972, "text": "Devlog - 4 I know I took a bit long this time too to post a devlog but I am here. I was mainly searching for APIs and all but there are many out there but with too many restrictions or has less rate limits for the free tier. I have stumbled upon one adsb.lol but that gives me a CORS error and I have thought to build a proxy to bypass that and all but before that I have emailed them regarding if it is fine If I do it that way. If you guys have suggestions about it then I will happily accept those . But then I wans’t going to just sit so I coded a hard coded flight details but in a way so that even after I plug in the API link it will still work so my work would not go down the drain. I have coded a panel where it lets you know about flight details and all. I have coded a function which can handle multiple aircrafts by placing the markers where they suppose to be. I will be working on making the information panel a bit better and will make it look professional and all. This is the work I have done till now. Thank you and stay tuned!"}, {"post_id": 50376, "ts": "2026-08-19T15:25:15Z", "hours": 1.2956, "text": "Devlog - 3 I have been not paying attention to this project since my last devlog because I was finishing up my other project LifeLab but now I am fully focused on this project. I have been working on adding weather radar on the map so that the users can see what the weather is like and you can see that in the images attached below. I spent some time figuring out the API and it wasn’t working then went back to debugging and coding and debugging but at the end the weather API now works. I was also working on making that menu like a button I spent a lot of time to make the whole panel a button but for some reasons the console kept throwing errors on to me and I kept overhauling the code and all and spent a lot of time on it but just couldn’t get it working. I know it is a simple thing but I don’t know what is happening. I have kept that idea aside for now. Thank you and stay tuned!"}, {"post_id": 47849, "ts": "2026-08-16T02:28:57Z", "hours": 1.3939, "text": "Devlog - 2 My main goal was to add a few aircrafts on the map and get the actual tracking system started but I just can’t find a good API for now. I will get an API soon and will get the tracking system on. But till then I can’t waste time until I find one, so I started working on the UI. Like 30-40min of this time is like experimenting new API keys but the rest of time I spent on letting the user choose what type of map they want to use to use the tracker. Currently I have Standard which is a normal map, Dark which is dark themed map, Satellite and Terrain which show elevations on the map. I have made a small window on the top right so that the user can choose which one to use according to their liking. Thank you and stay tuned for more!"}, {"post_id": 47207, "ts": "2026-08-14T23:38:01Z", "hours": 0.4167, "text": "Devlog - 1 This devlog marks the starting of SkyTrace. It is a flight tracker and will try to make it the best out there. I initially started this project on a globe which going forward I changed my mind because as global wasn’t able to deliver those fine details that aviation fans like. That made it hard to actually spot a aircraft as many just were bundled into one. That is why I started on this. It took me a while to start on this because I was working on different project which is LifeLab , you can find that in my projects. So yea this is the starting for this project! I got the map using a LeafLet as they provided with map libraries and it saved a lot of time as it was simple to use, I did try some other library but it didn’t provide a good map so I switched over to Leaflet. Stay tuned for more!"}]...
|
Title: SkyTrace by @Jhenil | Stardance
Devlogs:
D Title: SkyTrace by @Jhenil | Stardance
Devlogs:
Devlog - 1 This devlog marks the starting of SkyTrace. It is a flight tracker and will try to make it the best out there. I initially started this project on a globe which going forward I changed my mind because as global wasn’t able to deliver those fine details that aviation fans like. That made it hard to actually spot a aircraft as many just were bundled into one. That is why I started on this. It took me a while to start on this because I was working on different project which is LifeLab , you can find that in my projects. So yea this is the starting for this project! I got the map using a LeafLet as they provided with map libraries and it saved a lot of time as it was simple to use, I did try some other library but it didn’t provide a good map so I switched over to Leaflet. Stay tuned for more!
Devlog - 2 My main goal was to add a few aircrafts on the map and get the actual tracking system started but I just can’t find a good API for now. I will get an API soon and will get the tracking system on. But till then I can’t waste time until I find one, so I started working on the UI. Like 30-40min of this time is like experimenting new API keys but the rest of time I spent on letting the user choose what type of map they want to use to use the tracker. Currently I have Standard which is a normal map, Dark which is dark themed map, Satellite and Terrain which show elevations on the map. I have made a small window on the top right so that the user can choose which one to use according to their liking. Thank you and stay tuned for more!
Devlog - 3 I have been not paying attention to this project since my last devlog because I was finishing up my other project LifeLab but now I am fully focused on this project. I have been working on adding weather radar on the map so that the users can see what the weather is like and you can see that in the images attached below. I spent some time figuring out the API and it wasn’t working then went back to debugging and coding and debugging but at the end the weather API now works. I was also working on making that menu like a button I spent a lot of time to make the whole panel a button but for some reasons the console kept throwing errors on to me and I kept overhauling the code and all and spent a lot of time on it but just couldn’t get it working. I know it is a simple thing but I don’t know what is happening. I have kept that idea aside for now. Thank you and stay tuned!
Devlog - 4 I know I took a bit long this time too to post a devlog but I am here. I was mainly searching for APIs and all but there are many out there but with too many restrictions or has less rate limits for the free tier. I have stumbled upon one adsb.lol but that gives me a CORS error and I have thought to build a proxy to bypass that and all but before that I have emailed them regarding if it is fine If I do it that way. If you guys have suggestions about it then I will happily accept those . But then I wans’t going to just sit so I coded a hard coded flight details but in a way so that even after I plug in the API link it will still work so my work would not go down the drain. I have coded a panel where it lets you know about flight details and all. I have coded a function which can handle multiple aircrafts by placing the markers where they suppose to be. I will be working on making the information panel a bit better and will make it look professional and all. This is the work I have done till now. Thank you and stay tuned!
Devlog - 5 Kind of a slow day today and wasn’t able to do much for today. I only added airport markers and created a panel for it. I have currently hardcoded two airport details and made it around that but I have already found an API for many airport data and it was way easier than finding the API for flight tracking. The key will be implemented in the next devlog and if you guys have any suggestions about flight tracking API then please let me know as it will help me a lot. Thank you and stay tuned!
Devlog - 6 Finally finally I have gotten the API for the flight tracking to work. I had to use Vercel functions to actually get it to work but here it is. You can see it in the video attached below. I also made it like an animation so I have an interval of 5 seconds but before reaching to its updated location between those 5 seconds it looks like it is covering distance which makes it look so realistic. I have made it so if you zoom out then you see more aircrafts rather than being zoomed in. I will be changing the UI and will be adding live statistics so that the data in the panel updates while you are looking at the aircraft moving. Thank you and stay tuned!
Devlog - 7 A longer coding session spanning two days. I have added a couple of things which have made the tracker better and gives it a more professional look than it was before. Firstly I changed the info panel for the aircraft. Before it was a small pop up which came at the top left of the screen but it wasn’t the best so I made it a sliding panel where it slides out from the left side of the screen. Then what I added is adding the airline name inside the panel when an aircraft is selected before using just the flight tracking API I had to hardcode like the callsign to the actual airline name but now it works using an another API which is used for routes as well. Then I added route information inside the panel and for that I used another API (same as the airline name one) which gives information about from where it departed and where is it going. Then I added a route dashed path which gives the user an idea of the aircraft’s intended path and lastly I added so that the panel refreshes every 5 seconds updating the information inside it. I had the most time struggling with API keys and all but at the end I got it working. You can see the changes in the pictures below. Thank and stay tuned!
Devlog - 8 Okay so I wanted to make it apart from a regular flight tracker and I was brainstorming ideas and thought of an idea of making a flight replay. So what I did is now the app stores the latitude and longitude of flights on a temporary basis and then when the user clicks on the replay button the code goes to the starting point and will show you the whole flight journey. I have also made a smaller window seen in the picture which is on the bottom right which shows you the replay details like how the altitude changed or like how speed changed and all things like that. The user can also select at what speed they want to watch the replay and all. Thank you and stay tuned!
Devlog - 9 This is my last devlog before the shipment of this project. In this last hour I have added a curved path as seen in the picture which makes it look better than a straightline. Then I encountered an API issue which was that mu current route API was giving me an 502 error which was because it was down so instead of being too dependent on it, I modified the code to have two API links which the code tries the first and If it doesn’t work then it tries the second one and it works now. Thank you for being a part of this project!
Ships:
I have made a flight tracker which provides live updates of aircrafts within 250 nm. Sometimes, I just go and sit on flight trackers and just view many different flights and look at them. I always wanted to make one of my own, so here it is. Features of the tracker are you can track a live flight (250nm), view live updating aircraft info, replay the flight history, an aircraft trail, aircraft route and airport information panel. You also can adjust the map type you want. You can choose from Standard, Dark, Satellite & Terrain. You can also turn on a weather option which shows you the weather information at a particular location. I hope you like my tracker. Thank you for testing!...
|
1792982906.2520323
|
1793069306.2520323
|
|
50862
|
polaris-os by @kai_lmao | Stardance
|
kai_lmao
|
5
|
30.0
|
273
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T11:23:19Z", "hours": 7.0, "multiplier": 9.93, "payout": 69, "blessing": "neutral", "text": "hey everyone! After reading your reviews on my last ship, I spent time restructuring my code and adding some new features to make the OS feel much more like a real desktop. Here is what’s new: Local storage persistence: Polaris OS finally remembers your preferences! your custom accent colors and notepad entries now save automatically, so you won’t lose them when you reload the page. Achievements system: i added 5 brand-new unlockable achievements to find while exploring the OS (and yes, your progress saves via local storage too!). New dictionary app: look up any word instantly using the Openmuse API. you can use the new dictionary app, or just type define [word] straight into the terminal. Settings app & UI polish: built a dedicated Settings app to manage the OS. i also added a volume slider for the media player (which has new songs!), and hover-name overlays for taskbar apps. Performance & visual upgrades: designed a brand new, cooler loading animation, fixed the stretched confetti hitbox bug, and optimized the NASA APOD widget so high-res space images no longer lag the entire website. let me know what you think of the new apps and if you manage to unlock all the achievements!", "repo": "https://github.com/KaiTheGreat-123/polaris-os", "demo": "https://kaithegreat-123.github.io/polaris-os/"}, {"ship_num": 2, "ts": "2026-09-11T12:27:41Z", "hours": 8.0, "multiplier": 11.4, "payout": 93, "blessing": "neutral", "text": "hey guys! i’m back with more big updates for polaris! since my last ship, i’ve been juggling my exams but still managed to add some really fun new features to make the OS feel even more alive and interactive. heres a list of every single new change i added since and the issues i had with adding them: Apps Music app: the music app was pretty fun to add and made polaris less boring, but i kept running into issues with adding the ui over the default ui (the white blob which did not match polaris at all) Gallery app: the gallery app is another addition, with a few pictures related to polaris. the difficult part was adding the transitions between changing the pictures, and loading the pictures without taking hours Terminal app: the terminal app is something i took inspiration from other webos’s, and it was actually hard to add and i also kept running into a issue where i could not type in the app at all, but i fixed it all and got it working! Other changes Dynamic wallpaper: i got a few people say that the wallpaper looked a little boring, so i added stars that float around the entire wallpaper and react with your cursor! TicTacToe bot: this one was a great learning experience but just as hard, took me a while to figure out what i was doing but i finally got there in the end and built a working bot to play against! Desktop widgets: i added 2 widgets, the analog time and the NASA APOD. the analog time was pretty straight forward, but the NASA APOD was a little hard, especially with adding a fallback because any video APOD just broke the widget. For the smaller changes i just changed the logos of a few apps to look consistent, cleaned up my github repo and changed the tab title. im getting pretty close to reaching where i want polaris to be. feel free to try out all the changes! hope you enjoy them :)", "repo": "https://github.com/KaiTheGreat-123/polaris-os", "demo": "https://kaithegreat-123.github.io/polaris-os/"}, {"ship_num": 3, "ts": "2026-09-03T18:31:36Z", "hours": 7.0, "multiplier": 10.36, "payout": 75, "blessing": "neutral", "text": "hey everyone! i’m back with more updates to Polaris, my web-based space-themed OS! since my last ship, i’ve made many changes to make it feel even more like a real, immersive desktop experience right in your browser. the biggest new tool is the weather app! you can just type in your desired city and it instantly fetches the real time temperature and weather conditions using an api. the live clock on the taskbar also got an update as clicking it now smoothly slides up an interactive calendar, complete with arrows so you can actually navigate through different months! it also removes the need to have its own app in the taskbar, and feels more like windows. i also completely revamped the ui and aesthetics! everything now has a glowing purple drop shadows around the edges of the windows (kinda like underglow on a car!). the taskbar icons now smoothly scale up when you hover over them to indicate that they are selected, and clicking them makes the apps fade into existence instead of just snapping in. i also merged the welcome and links pages into one big info window to keep the desktop clean. to make the whole OS feel alive, i built a brand new animated star filling loading screen, plus i added global sound effects! there’s a satisfying startup sound when the OS finishes booting, and click sounds whenever you open apps or navigate the UI. (there’s also a fun hidden easter egg on the desktop background that triggers star confetti if you click the text!) my goal is still to turn this into a single tab with everything simple a person could need in one place. i will continue working on this project, polishing the animations, and ofc adding more apps! feel free to drag the glowing windows around, check your local weather, and play around with the confetti! i hope you like my work :)", "repo": "https://github.com/KaiTheGreat-123/polaris-os", "demo": "https://kaithegreat-123.github.io/polaris-os/"}, {"ship_num": 4, "ts": "2026-08-30T12:08:21Z", "hours": 4.0, "multiplier": 9.08, "payout": 36, "blessing": "neutral", "text": "hey everyone! i built Polaris, a web-based OS based on a space theme! it feels just like a real OS experience right here in your browser! the whole thing is built by me completely from scratch, using HTML, CSS and JavaScript. it just started out as a simple introductory project, but once i started adding more things to it, it slowly turned into a whole operating system! the first app i added was the note taker, which was a simple tool to add temporary notes and reminders inside. after that, i added more apps like the calculator, timer, and tic-tac-toe (more coming soon)! all of these apps can run at the exact same time, and you can drag them all around the screen. the taskbar at the bottom gives you easy access to open any of the available apps, complete with icons that highlight when you tap them and a live clock. feel free to check out all the apps, drag the windows around, and see if you can beat your friends at tic-tac-toe! i plan on turning into a single tab with everything simple a person could need, so instead of opening multiple apps, anyone can just open one single tab and have all the simple tools they need in one place! i will continue working on this project as time passes, and i plan to add animations to everything, add an apps window, and ofc more apps! i hope you like my work :)", "repo": "https://github.com/KaiTheGreat-123/polaris-os", "demo": "https://kaithegreat-123.github.io/polaris-os/"}, {"ship_num": 5, "ts": "2026-08-25T14:31:38Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a webOS that is themed after the Polaris star! it took me a few hours to get this far, and i am going to spend a few hours every weekend progressing it further by adding more apps, and giving it more functionality in general. a new feature i built is a taskbar on the bottom with the ability to open windows and applications, and see time from there instead of a top bar which was mentioned in the guide, so i could get a more windows/macOS feel to the webOS which is more familiar.", "repo": "https://github.com/KaiTheGreat-123/polaris-os", "demo": "https://kaithegreat-123.github.io/polaris-os/"}]...
|
[{"post_id": 70546, "ts": "202 [{"post_id": 70546, "ts": "2026-09-19T10:41:45Z", "hours": 0.7503, "text": "a few smaller changes before i ship again, there was an issue where the clickable box on the text for confetti was stretched across the entire screen, so i fixed that. Another issue that was there is that when the nasa apod was a very high res image, it made the entire website very laggy so i changed that to display url instead of the hdurl and lastly i added localstorage so polaris actually remembers a lot of the options like your notes and accent color changes that you change!"}, {"post_id": 70044, "ts": "2026-09-18T11:02:53Z", "hours": 1.4322, "text": "achievements! while thinking of ideas to add, i saw my friend unlock achievements and i thought why not add that to Polaris too? i added 5 new achievements and they even save after you reload the page! i am planning on adding localstorage to the other apps too, like settings and notepad. i also noticed that sometimes when the nasa apod is an extremely detailed of high definition image, the widget lags a lot when opening and closing. i need to find a way to fix that."}, {"post_id": 67895, "ts": "2026-09-14T06:15:19Z", "hours": 2.3103, "text": "hey guys! i have made more changes to polaris os today. firstly i added a new app! its a dictionary app and you can look up any word you like by typing it in the app, or by typing “define [word]” in the terminal. i tried to use dictionaryapi but realised its not very reliable, so the current api im using for this app is openmuse. secondly i added a new loading animation! i felt the loading star in the start felt a little boring, so i added more elements on all 4 sides of the screen so it looks way cooler! and a small change but i also added more songs into the playlist of the media player."}, {"post_id": 66404, "ts": "2026-09-12T06:51:47Z", "hours": 2.4981, "text": "back with more updates! after shipping, i checked all the reviews and got to work implementing them! i first took some help with ai to restructure and reorganize my code since it was starting to get messy and hard to read and make new changes, then i started working on new apps! currently im working on adding the settings app! i spent around 2 hours on it, and i will add more to it and polish it up soon. i also added a volume slider for the music app, and added a name overlay for the apps on the taskbar which took about 30 minutes to do. please do let me know if theres any more changes or additions i can make to improve polaris!"}, {"post_id": 65846, "ts": "2026-09-11T08:11:54Z", "hours": 4.9044, "text": "many more changes! as im getting closer to the 10 hours that count per ship im going to ship once again after this devlog, but heres a list of all the changes i made since the last devlog: Added a gallery app! now you can see different pictures related to polaris and on how to find it. (it also was taking a while to load everytime, so i made it load pictures in advance, and a error message so the user knows whats going on just incase it dosnt load) Added widgets! there are now two new widgets, the nasa apod widget and the analog clock widget. they open by default, but you can collapse them out of view if they look too distracting! (the nasa apod also had an issue where if it was a video it broke, so i made it fallback to the previous day in that case) Added a playlist to the media app so now the user can see the list of all the songs and play them from there too. Added a dynamic wallpaper, theres now stars in the wallpaper that move around and react to your cursor! (i couldnt animate the wallpaper or find a better one, so i added a layer on the wallpaper with the stars moving around to make everything feel more dynamic) Added a terminal app with simple commands! you can now open apps and more using the terminal app. Neatened up the files in github too! with multiple songs and icons the github repo started to look very very messy so i made new folders and cleaned it up!"}, {"post_id": 64266, "ts": "2026-09-08T15:22:24Z", "hours": 3.2197, "text": "i more big features to polaris! its not a lot of changes, but the features i added were difficult for me to implement cause i kept making errors, but here are all the changes i made: Added a music player app! plays a set of songs that i uploaded Added a bot to tictactoe! it was way harder than i thought, but with a bit of help i managed to get it working. players now have the option to play against someone else or against a bot. Changed the logos off a bunch of the apps to look more consistent its a bit difficult to make progress while juggling exams, but i will be making a lot more changes soon!"}, {"post_id": 60878, "ts": "2026-09-03T15:00:41Z", "hours": 0.495, "text": "A small devlog before i ship my project again but heres what i added: Added boot up, button clicking and calendar opening sound effects! (if the boot up sound does not play for you, it means that a browser security setting disabled it)"}, {"post_id": 60378, "ts": "2026-09-02T17:51:01Z", "hours": 2.6942, "text": "More changes! not as many as the last one, but here are all the changes i made: Added a boot up and loading screen! Added a weather app! type the place you want the weather of and it will show it to you! Added the feature where you can scroll thru months instead of the calendar being stuck on just the current month Added a purple hue around the windows to add more depth Changed the style of the taskbar a little bit Moved “PolarisOS” out of the taskbar and put it on the desktop instead to fill in empty space"}, {"post_id": 59402, "ts": "2026-09-01T06:31:13Z", "hours": 2.8233, "text": "After shipping my project i checked out all the ratings, and ive made a couple of changes to Polaris. Many people pointed out that it took multiple clicks to open apps, so i fixed that issue. now apps open with just one click, and they have a hover animation (when you hover over the app icon it becomes bigger) Fixed the project link not working Added animations for the windows opening and closing Added a higher resolution background Added an easter egg (hint:-click on polaris!) Added milliseconds to the timer Moved the calendar out of the taskbar and hidden away, it opens when you click on the time in the taskbar (like in windows) Merged the welcome window and links window into one information app for better organization in the taskbar Neatened up the app borders and size on the taskbar to be more visible going to start working on more apps now!"}, {"post_id": 58647, "ts": "2026-08-31T04:14:49Z", "hours": 1.2575, "text": "Calendar! polaris now has a calendar so you can check all the dates of the month! it also highlights the current date aswell. i also removed the name of the apps from the taskbar as it was starting to get cramped, and for my next task i am going to add animations to everything and make it look nicer!"}, {"post_id": 58035, "ts": "2026-08-30T11:47:25Z", "hours": 1.0839, "text": "Tic-Tac-Toe! i added yet another app, the tic-tac-toe app! polaris felt a bit boring with only utility apps in it, so i added the new app to add a bit more fun! i themed it after space too, with players being the earth and the moon. it adds more color and vibrance to polaris too!"}, {"post_id": 57320, "ts": "2026-08-29T13:08:40Z", "hours": 1.0147, "text": "added a timer! continuing on my quest of adding more apps to polaris, the newest addition is the timer. it can starts counting up and when you start it and pauses whenever you want it to, and it also is themed to match the rest of the website."}, {"post_id": 56847, "ts": "2026-08-28T19:56:49Z", "hours": 1.2189, "text": "i made a calculator! i am now adding more apps to polaris and i have started with adding a calculator which does all the simple functions, and i also neatened up the taskbar a bit by changing icon positions and adding borders around them to create uniformity!"}, {"post_id": 54963, "ts": "2026-08-26T12:16:01Z", "hours": 0.6406, "text": "i added the note taker app! now it has the ability to actually take notes, and it can be opened by double clicking and highlighted by single clicking. i also made it transparent using the blur feature and i think it goes pretty well with the rest of the OS!"}, {"post_id": 54463, "ts": "2026-08-25T14:06:52Z", "hours": 0.3336, "text": "started working on an app to implement into my web os! it does look a little whacky right now, but i will be fixing it soon and adding functionality to it."}, {"post_id": 52331, "ts": "2026-08-22T13:16:45Z", "hours": 2.1931, "text": "i added draggable windows which also open and close! i used a little bit of help from ai as i was getting confused, but i added a little bar on the top which acts as a drag box, and also has the close button on it! i also added buttons on the taskbar on the bottom so a closed window can be opened back up again! i also added the time to the taskbar, and neatened up my code a bit so its easier to understand and nicer to look at. i am proud of the progress i made!"}, {"post_id": 50953, "ts": "2026-08-20T12:53:48Z", "hours": 1.5386, "text": "Started working on my very own web-based OS! i am theming it after the star polaris, and currently it looks decent (i hope), i still have to go further and continue making it more functional and nicer, but so far i am happy with how it looks! feel free to give me ideas on how to make it look ever nicer :)"}]...
|
Title: polaris-os by @kai_lmao | Stardance
Devlog Title: polaris-os by @kai_lmao | Stardance
Devlogs:
Started working on my very own web-based OS! i am theming it after the star polaris, and currently it looks decent (i hope), i still have to go further and continue making it more functional and nicer, but so far i am happy with how it looks! feel free to give me ideas on how to make it look ever nicer :)
i added draggable windows which also open and close! i used a little bit of help from ai as i was getting confused, but i added a little bar on the top which acts as a drag box, and also has the close button on it! i also added buttons on the taskbar on the bottom so a closed window can be opened back up again! i also added the time to the taskbar, and neatened up my code a bit so its easier to understand and nicer to look at. i am proud of the progress i made!
started working on an app to implement into my web os! it does look a little whacky right now, but i will be fixing it soon and adding functionality to it.
i added the note taker app! now it has the ability to actually take notes, and it can be opened by double clicking and highlighted by single clicking. i also made it transparent using the blur feature and i think it goes pretty well with the rest of the OS!
i made a calculator! i am now adding more apps to polaris and i have started with adding a calculator which does all the simple functions, and i also neatened up the taskbar a bit by changing icon positions and adding borders around them to create uniformity!
added a timer! continuing on my quest of adding more apps to polaris, the newest addition is the timer. it can starts counting up and when you start it and pauses whenever you want it to, and it also is themed to match the rest of the website.
Tic-Tac-Toe! i added yet another app, the tic-tac-toe app! polaris felt a bit boring with only utility apps in it, so i added the new app to add a bit more fun! i themed it after space too, with players being the earth and the moon. it adds more color and vibrance to polaris too!
Calendar! polaris now has a calendar so you can check all the dates of the month! it also highlights the current date aswell. i also removed the name of the apps from the taskbar as it was starting to get cramped, and for my next task i am going to add animations to everything and make it look nicer!
After shipping my project i checked out all the ratings, and ive made a couple of changes to Polaris. Many people pointed out that it took multiple clicks to open apps, so i fixed that issue. now apps open with just one click, and they have a hover animation (when you hover over the app icon it becomes bigger) Fixed the project link not working Added animations for the windows opening and closing Added a higher resolution background Added an easter egg (hint:-click on polaris!) Added milliseconds to the timer Moved the calendar out of the taskbar and hidden away, it opens when you click on the time in the taskbar (like in windows) Merged the welcome window and links window into one information app for better organization in the taskbar Neatened up the app borders and size on the taskbar to be more visible going to start working on more apps now!
More changes! not as many as the last one, but here are all the changes i made: Added a boot up and loading screen! Added a weather app! type the place you want the weather of and it will show it to you! Added the feature where you can scroll thru months instead of the calendar being stuck on just the current month Added a purple hue around the windows to add more depth Changed the style of the taskbar a little bit Moved “PolarisOS” out of the taskbar and put it on the desktop instead to fill in empty space
A small devlog before i ship my project again but heres what i added: Added boot up, button clicking and calendar opening sound effects! (if the boot up sound does not play for you, it means that a browser security setting disabled it)
i more big features to polaris! its not a lot of changes, but the features i added were difficult for me to implement cause i kept making errors, but here are all the changes i made: Added a music player app! plays a set of songs that i uploaded Added a bot to tictactoe! it was way harder than i thought, but with a bit of help i managed to get it working. players now have the option to play against someone else or against a bot. Changed the logos off a bunch of the apps to look more consistent its a bit difficult to make progress while juggling exams, but i will be making a lot more changes soon!
many more changes! as im getting closer to the 10 hours that count per ship im going to ship once again after this devlog, but heres a list of all the changes i made since the last devlog: Added a gallery app! now you can see different pictures related to polaris and on how to find it. (it also was taking a while to load everytime, so i made it load pictures in advance, and a error message so the user knows whats going on just incase it dosnt load) Added widgets! there are now two new widgets, the nasa apod widget and the analog clock widget. they open by default, but you can collapse them out of view if they look too distracting! (the nasa apod also had an issue where if it was a video it broke, so i made it fallback to the previous day in that case) Added a playlist to the media app so now the user can see the list of all the songs and play them from there too. Added a dynamic wallpaper, theres now stars in the wallpaper that move around and react to your cursor! (i couldnt animate the wallpaper or find a better one, so i added a layer on the wallpaper with the stars moving around to make everything feel more dynamic) Added a terminal app with simple commands! you can now open apps and more using the terminal app. Neatened up the files in github too! with multiple songs and icons the github repo started to look very very messy so i made new folders and cleaned it up!
back with more updates! after shipping, i checked all the reviews and got to work implementing them! i first took some help with ai to restructure and reorganize my code since it was starting to get messy and hard to read and make new changes, then i started working on new apps! currently im working on adding the settings app! i spent around 2 hours on it, and i will add more to it and polish it up soon. i also added a volume slider for the music app, and added a name overlay for the apps on the taskbar which took about 30 minutes to do. please do let me know if theres any more changes or additions i can make to improve polaris!
hey guys! i have made more changes to polaris os today. firstly i added a new app! its a dictionary app and you can look up any word you like by typing it in the app, or by typing “define [word]” in the terminal. i tried to use dictionaryapi but realised its not very reliable, so the current api im using for this app is openmuse. secondly i added a new loading animation! i felt the loading star in the start felt a little boring, so i added more elements on all 4 sides of the screen so it looks way cooler! and a small change but i also added more songs into the playlist of the media player.
achievements! while thinking of ideas to add, i saw my friend unlock achievements and i thought why not add that to Polaris too? i added 5 new achievements and they even save after you reload the page! i am planning on adding localstorage to the other apps too, like settings and notepad. i also noticed that sometimes when the nasa apod is an extremely detailed of high definition image, the widget lags a lot when opening and closing. i need to find a way to fix that.
a few smaller changes before i ship again, there was an issue where the clickable box on the text for confetti was stretched across the entire screen, so i fixed that. Another issue that was there is that when the nasa apod was a very high res image, it made the entire website very laggy so i changed that to display url instead of the hdurl and lastly i added localstorage so polaris actually remembers a lot of the options like your notes and accent color changes that you change!
Ships:
i made a webOS that is themed after the Polaris star! it took me a few hours to get this far, and i am going to spend a few hours every weekend progressing it further by adding more apps, and giving it more functionality in general. a new feature i built is a taskbar on the bottom with the ability to open windows and applications, and see time from there instead of a top bar which was mentioned in the guide, so i could get a more windows/macOS feel to the webOS which is more familiar.
hey everyone! i built Polaris, a web-based OS based on a space theme! it feels just like a real OS experience right here in your browser! the whole thing is built by me completely from scratch, using HTML, CSS and JavaScript. it just started out as a simple introductory project, but once i started adding more things to it, it slowly turned into a whole operating system! the first app i added was the note taker, which was a simple tool to add temporary notes and reminders inside. after that, i added more apps like the calculator, timer, and tic-tac-toe (more coming soon)! all of these apps can run at the exact same time, and you can drag them all around the screen. the taskbar at the bottom gives you easy access to open any of the available apps, complete with icons that highlight when you tap them and a live clock. feel free to check out all the apps, drag the windows around, and see if you can beat your friends at tic-tac-toe! i plan on turning into a single tab with everything simple a person could need, so instead of opening multiple apps, anyone can just open one single tab and have all the simple tools they need in one place! i will continue working on this project as time passes, and i plan to add animations to everything, add an apps window, and ofc more apps! i hope you like my work :)
hey everyone! i’m back with more updates to Polaris, my web-based space-themed OS! since my last ship, i’ve made many changes to make it feel even more like a real, immersive desktop experience right in your browser. the biggest new tool is the weather app! you can just type in your desired city and it instantly fetches the real time temperature and weather conditions using an api. the live clock on the taskbar also got an update as clicking it now smoothly slides up an interactive calendar, complete with arrows so you can actually navigate through different months! it also removes the need to have its own app in the taskbar, and feels more like windows. i also completely revamped the ui and aesthetics! everything now has a glowing purple drop shadows around the edges of the windows (kinda like underglow on a car!). the taskbar icons now smoothly scale up when you hover over them to indicate that they are selected, and clicking them makes the apps fade into existence instead of just snapping in. i also merged the welcome and links pages into one big info window to keep the desktop clean. to make the whole OS feel alive, i built a brand new animated star filling loading screen, plus i added global sound effects! there’s a satisfying startup sound when the OS finishes booting, and click sounds whenever you open apps or navigate the UI. (there’s also a fun hidden easter egg on the desktop background that triggers star confetti if you click the text!) my goal is still to turn this into a single tab with everything simple a person could need in one place. i will continue working on this project, polishing the animations, and ofc adding more apps! feel free to drag the glowing windows around, check your local weather, and play around with the confetti! i hope you like my work :)
hey guys! i’m back with more big updates for polaris! since my last ship, i’ve been juggling my exams but still managed to add some really fun new features to make the OS feel even more alive and interactive. heres a list of every single new change i added since and the issues i had with adding them: Apps Music app: the music app was pretty fun to add and made polaris less boring, but i kept running into issues with adding the ui over the default ui (the white blob which did not match polaris at all) Gallery app: the gallery app is another addition, with a few pictures related to polaris. the difficult part was adding the transitions between changing the pictures, and loading the pictures without taking hours Terminal app: the terminal app is something i took inspiration from other webos’s, and it was actually hard to add and i also kept running into a issue where i could not type in the app at all, but i fixed it all and got it working! Other changes Dynamic wallpaper: i got a few people say that the wallpaper looked a little boring, so i added stars that float around the entire wallpaper and react with your cursor! TicTacToe bot: this one was a great learning experience but just as hard, took me a while to figure out what i was doing but i finally got there in the end and built a working bot to play against! Desktop widgets: i added 2 widgets, the analog time and the NASA APOD. the analog time was pretty straight forward, but the NASA APOD was a little hard, especially with adding a fallback because any video APOD just broke the widget. For the smaller changes i just changed the logos of a few apps to look consistent, cleaned up my github repo and changed the tab title. im getting pretty close to reaching where i want polaris to be. feel free to try out all the changes! hope you enjoy them :)
hey everyone! After reading your reviews on my last ship, I spent time restructuring my code and adding some new features to make the OS feel much more like a real desktop. Here is what’s new: Local storage persistence: Polaris OS finally remembers your preferences! your custom accent colors and notepad entries now save automatically, so you won’t lose them when you reload the page. Achievements system: i added 5 brand-new unlockable achievements to find while exploring the OS (and yes, your progress saves via local storage too!). New dictionary app: look up any word instantly using the Openmuse API. you can use the new dictionary app, or just type define [word] straight into the terminal. Settings app & UI polish: built a dedicated Settings app to manage the OS. i also added a volume slider for the media player (which has new songs!), and hover-name overlays for taskbar apps. Performance & visual upgrades: designed a brand new, cooler loading animation, fixed the stretched confetti hitbox bug, and optimized the NASA APOD widget so high-res space images no longer lag the entire website. let me know what you think of the new apps and if you manage to unlock all the achievements!...
|
1792972196.7061112
|
1793058596.7061112
|
|
6840
|
Easy Ecosystem by @domst13 | Stardance
|
domst13
|
1
|
23.0
|
272
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-14T00:16:36Z", "hours": 23.0, "multiplier": 12.02, "payout": 272, "blessing": "neutral", "text": "I created a simple Python Ecosystem that I am calling Easy Ecosystem. It features two types of creatures, as well as food and water for both. My biggest challenge throughout this project was making the algorithms work correctly, as this is my first fully complete Python project. I not only learned a lot, but I am super proud of what I created. To test my project, you have to download and extract a zip file. I wish I could have web hosted it, but I experienced issues when trying to bundle it and make it accessible on the web. I hope you can check out my project, and enjoy!!", "repo": "https://github.com/dominicstange13/Ecosystem/", "demo": "https://github.com/dominicstange13/Easy-Ecosystem/releases/tag/v1.0.0"}]...
|
[{"post_id": 8420, "ts": "2026 [{"post_id": 8420, "ts": "2026-06-14T00:10:16Z", "hours": 0.3708, "text": "-Final balancing and making sure no bugs slipped past me -Time to ship baby!!"}, {"post_id": 7898, "ts": "2026-06-13T05:44:50Z", "hours": 2.1303, "text": "-Finished ALL sprites and incorporated them into the code meaning that the project is DONE -All that’s left is to finish up the repository and link everything then it’s shipping time!!! -Ik 0 people have seen any of these devlogs but lets friggin go guys WE did this"}, {"post_id": 7313, "ts": "2026-06-12T05:55:59Z", "hours": 3.9992, "text": "-FINISHED CODING -Started work on sprite drawings and stuff -Done any day now"}, {"post_id": 6641, "ts": "2026-06-11T04:01:03Z", "hours": 2.2789, "text": "-Worked on carnivore AI and did some bug fixing -I expect to be finished with the coding very soon so I can move on to art"}, {"post_id": 6044, "ts": "2026-06-10T04:49:31Z", "hours": 2.6753, "text": "GUYS WE ARE ALMOST DONE WITH THE CODE!!! -Finished herbivore code for plants and water, as well as all water code -Started creating carnivore and got most of the way through making it as it was relatively bug-free (thank God)"}, {"post_id": 5394, "ts": "2026-06-09T04:34:33Z", "hours": 3.7811, "text": "-(hopefully) finished plant tracking algorithm as well as plant spawning -added water spawning but not thirst (yet) -I probably won’t upload anything tomorrow because I’m getting my wisdom teeth removed but hopefully I’ll be back by Wednesday -I’m estimating I can finish the programming part of this project in another day or two but depending on bugs that could change"}, {"post_id": 4702, "ts": "2026-06-08T03:59:29Z", "hours": 2.5825, "text": "I started making the logic that would allow the herbivore to seek out plants and remove plants once eaten, then proceeded to battle with bugs for the next couple of hours Hopefully more progress tomorrow, this project is probably going to take a while because it has proven more difficult that I first imagined, but I’m gonna stick with it and persevere"}, {"post_id": 4384, "ts": "2026-06-07T18:18:08Z", "hours": 2.5878, "text": "Not much, worked on plant spawning and the herbivore calculations to find food"}, {"post_id": 2800, "ts": "2026-06-05T16:47:50Z", "hours": 1.5144, "text": "Added hunger display and made the herbivore move to grab plants"}, {"post_id": 1818, "ts": "2026-06-04T01:19:17Z", "hours": 0.7475, "text": "I created a food rect and animal rect and started experimenting with movement"}]...
|
Title: Easy Ecosystem by @domst13 | Stardance
Dev Title: Easy Ecosystem by @domst13 | Stardance
Devlogs:
I created a food rect and animal rect and started experimenting with movement
Added hunger display and made the herbivore move to grab plants
Not much, worked on plant spawning and the herbivore calculations to find food
I started making the logic that would allow the herbivore to seek out plants and remove plants once eaten, then proceeded to battle with bugs for the next couple of hours Hopefully more progress tomorrow, this project is probably going to take a while because it has proven more difficult that I first imagined, but I’m gonna stick with it and persevere
-(hopefully) finished plant tracking algorithm as well as plant spawning -added water spawning but not thirst (yet) -I probably won’t upload anything tomorrow because I’m getting my wisdom teeth removed but hopefully I’ll be back by Wednesday -I’m estimating I can finish the programming part of this project in another day or two but depending on bugs that could change
GUYS WE ARE ALMOST DONE WITH THE CODE!!! -Finished herbivore code for plants and water, as well as all water code -Started creating carnivore and got most of the way through making it as it was relatively bug-free (thank God)
-Worked on carnivore AI and did some bug fixing -I expect to be finished with the coding very soon so I can move on to art
-FINISHED CODING -Started work on sprite drawings and stuff -Done any day now
-Finished ALL sprites and incorporated them into the code meaning that the project is DONE -All that’s left is to finish up the repository and link everything then it’s shipping time!!! -Ik 0 people have seen any of these devlogs but lets friggin go guys WE did this
-Final balancing and making sure no bugs slipped past me -Time to ship baby!!
Ships:
I created a simple Python Ecosystem that I am calling Easy Ecosystem. It features two types of creatures, as well as food and water for both. My biggest challenge throughout this project was making the algorithms work correctly, as this is my first fully complete Python project. I not only learned a lot, but I am super proud of what I created. To test my project, you have to download and extract a zip file. I wish I could have web hosted it, but I experienced issues when trying to bundle it and make it accessible on the web. I hope you can check out my project, and enjoy!!...
|
1792990231.9040608
|
1793076631.9040608
|
|
29776
|
Glancer by @Maarxius | Stardance
|
Maarxius
|
1
|
24.84
|
272
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-19T19:31:32Z", "hours": 24.0, "multiplier": 11.32, "payout": 272, "blessing": "neutral", "text": "Glancer Glancer is an always-on desk display designed to be passive, useful, and unobtrusive. The idea was simple: take a retired iPad Mini and turn it into something that could sit on a desk, plugged in, and display useful information without needing constant interaction. It was heavily inspired by Terminal, especially the idea that something passive could still become incredibly useful. I also wanted to explore the idea of reusing old technology instead of letting it become e-waste. Turning an old iPad that would otherwise sit unused into something functional felt like a pretty big win. What I made Glancer is a web app connected to a local computer. The iPad acts as the display, while a Python Flask server running on a Mac collects information, processes it, and sends it to the dashboard. The project includes a clock, weather card using the OpenWeather API, French vocabulary card, photo carousel, calendar, and a music card showing the current song, artist, playback progress, and an animated equalizer. The interesting part wasn’t just making the cards themselves, but building the system behind them. I created Python scripts, a Flask API, AppleScript integrations, calendar parsing, and JavaScript functions to dynamically update everything. Challenges The biggest challenge was definitely the calendar. AppleScript worked well with Music, but Calendar was a completely different story. Recurring events caused a lot of issues, and trying to parse Apple’s calendar data was much harder than expected. Eventually I had to learn about CalDAV and different calendar parsing methods to make it work. JavaScript was also a challenge, although in a more enjoyable way. Learning how objects and properties worked, and how to structure functions to update different parts of the dashboard, was a really useful experience. CSS also caused problems because the target device was an older iPad Mini. Features that worked perfectly on my computer did not always work on older versions of Safari, so a lot of time went into testing, fixing layouts, and making sure everything looked correct on the actual device. What I’m proud of The thing I’m most proud of is that I built the entire system myself. This project was less about writing a lot of code and more about solving problems. The calendar especially taught me a lot about handling messy data and transforming it into something useful. I also learned how to communicate with macOS using AppleScript, create local APIs with Flask, and have different devices communicate over a network. Learning Flask was probably one of the biggest milestones. Being able to run a local application on my network and have another device connect to it opens up a lot of possibilities for future projects. How to test it To run Glancer, you will need a Mac, Python 3, a display with a resolution of 1024×768 CSS pixels, and an Apple ID/iCloud account with a calendar. The full setup guide, installation instructions, and future updates can be found in the GitHub README. A working demo can be found on that side too. Glancer started as a simple HTML dashboard, but it became something much more. It is now a fully connected application that can communicate with my computer and display real-time information on an old device. I’m really happy with how it turned out.", "repo": "https://github.com/vismaysjayaram/glancer-desktop-view", "demo": "https://vismaysjayaram.github.io/glancer-desktop-view/"}]...
|
[{"post_id": 35983, "ts": "202 [{"post_id": 35983, "ts": "2026-07-27T19:40:33Z", "hours": 0.845, "text": "Devlog 5! This session was mostly about polishing Glancer rather than adding new features.I started by improving how text overflow is handled, especially on the music and French dictionary cards. Long titles now scroll much more smoothly instead of being abruptly cut off.I also fixed a bug where portrait photos weren’t displaying correctly in the photo carousel, and spent some time stress testing the dashboard. Leaving it running for a while exposed a few bugs with cards cycling over time, which I was able to fix.The last big improvement was setting up a launchd service for the Flask server. Instead of manually starting it from Terminal every time, it now launches automatically in the background when my Mac starts, making Glancer feel much more like a proper application.No major new features this time, but a lot of small improvements that make the dashboard much nicer to use every day."}, {"post_id": 31178, "ts": "2026-07-19T11:36:55Z", "hours": 0.745, "text": "Devlog 5: Glancer is done, and it was fun! i touched up some fo the read-me, added the demo, and just polished a couple of things. Overall, it was really great View it Here!: https://vismaysjayaram.github.io/glancer-desktop-view/ Comment your thoughts please! I’ll add more dog photos to the demo if you comment!"}, {"post_id": 30790, "ts": "2026-07-18T17:59:13Z", "hours": 3.6592, "text": "Devlog 4! It’s finally done. After a lot of work, Glancer is finally feature complete. Before finishing everything off though, I decided to test it on an actual iPad instead of just my desktop browser. I’m really glad I did, because it immediately exposed a bunch of bugs caused by deprecated CSS. After a bit of trial and error (and Googling), I managed to iron them out. The first new feature I tackled was the photo carousel. Originally my plan was to have the iPad handle everything locally, but I quickly realised that wasn’t a great idea. Since I already had a Flask server running, it made much more sense to let it serve the photos as well. I ended up using what I’ve affectionately named the YOLO (You Only Load Once) method. The browser loads a photo, keeps displaying it until it eventually errors, then simply requests the next one from the server. It’s surprisingly simple, but it works really well. I also added photo shuffling and a photo counter, which rounded out the card nicely. After that I moved onto the French card, my mot du jour. That one was pretty straightforward. The hardest part was actually finding a good word list. After spending way too long looking, I gave up and had AI generate one that I could use instead. The final boss was the calendar. Compared to what I expected, the frontend was easy. The backend definitely wasn’t. There were plenty of Python bugs, Apple Calendar quirks and recurring event weirdness to work through, but eventually everything clicked into place and I finally got today’s events showing correctly. And with that… Glancer is done. There are still a few things I’d like to polish and test, but as far as the original vision goes, it’s complete. It’s honestly really satisfying seeing it all come together. What started as a simple dashboard idea is now something I actually use, and that’s a pretty cool feeling. Sure, i had to cut a lot of features, but i think what i lost, i gained thrice more."}, {"post_id": 30126, "ts": "2026-07-17T13:26:51Z", "hours": 8.3861, "text": "Devlog 3! Return of the killer Adblocker! This session was basically split into two parts: the weather card and the media card. The weather card was pretty simple, the media card absolutely was not. I started with the weather card as a bit of a warm up. I used the OpenWeather API to grab the data and then spent most of my time getting everything to display nicely. The one thing I wasn’t expecting was how annoying SVGs are in plain HTML. I ended up making one massive lookup table full of SVG markup so I could swap icons depending on the weather. Is it elegant? No. Did it work? Yep. After that I moved onto the main boss fight of this devlog: the media card. Unlike the weather card, this one actually needed the frontend and backend to communicate. That meant learning Flask for the first time. Surprisingly, Flask was really enjoyable to work with. Setting up routes and returning JSON was much easier than I expected. Then came AppleScript. Honestly, AppleScript wasn’t nearly as bad as I’d heard. It’s probably one of the most readable programming languages I’ve used. I used it to grab information from the Music app like the current song, artist, duration and playback position, then passed all of that through Flask so the browser could fetch it as JSON. Of course, nothing ever works the first time. One thing that really annoyed me was discovering that my ad blocker was blocking the HTTP requests to my own local Flask server. Good on it for doing its job, but it made debugging miserable. I downloaded another browser to test it… only to realise it also had a built-in ad blocker. In the end I gave up and switched to Safari. I didn’t even know Safari had DevTools, but they’re actually pretty decent. Once the backend was working I started designing the actual card. I tried a bunch of layouts before settling on one with the song title, artist, progress bar and a little animated equalizer. I also wanted playback controls and album art, but they just made the card feel cramped, so I scrapped both ideas. The JavaScript was honestly the hardest part. Nothing was particularly difficult, it was just lots of connecting everything together and trying not to confuse myself with variable names. I split everything into smaller functions so I could update different parts of the card independently, and I also got to experiment with try and catch for error handling. The rest of the session was mostly bug fixing, CSS animations and fighting JavaScript every step of the way. Overall this felt like a pretty big milestone. Glancer isn’t just displaying static information anymore. It’s actually talking to my Mac in real time, which makes it feel a lot more like a real application than just another webpage."}, {"post_id": 23352, "ts": "2026-07-06T07:59:13Z", "hours": 7.31, "text": "Devlog 2! Just got to work on the actual HTML progress. Eight hours later here’s what I’ve got.I started by quickly laying out the grid with CSS and HTML. I was going through my last devlog and decided to get straight into the first card the clock.The clock is running on Bebas Neue, centered and it uses a simple JS setup. I had no idea you could animate things with CSS like that, which was actually pretty fun to figure out.After that I moved on to the calendar since I hadn’t really planned it out properly. That kicked off what I’m calling the calendar arc and yeah it was painful.The calendar itself is pretty simple. It shows your next event, how much time is left, and the event details etc etc. But it ended up taking a lot of JavaScript work. Nothing complex just really annoying to deal with.What really got me was how JavaScript handles constants. How assigning something to a const doesn’t always create a fresh copy it just links back to the original reference. I had no idea about that.Eventually I got the calendar working, added a bit of styling and that was basically the full eight hours."}, {"post_id": 22117, "ts": "2026-07-04T12:23:22Z", "hours": 3.9717, "text": "Devlog 1: Hey there, excited to start my project Glancer. It’s an ambient desk display that will show the time, weather, my 3d printer status, maybe a media player, my calendar, and a selected photo that I plan to keep. I’m designing the system to run on an iPad Mini 2 (d original) , which makes CSS and HTML much easier since I only need to define a single area. I spent a crazy amount of time trying to understand how to define CSS headings and grids. Even though I only have to work with a single display resolution, it didn’t save me from going through way too many Web3Schools pages. who designed css? Who hurt you? Overall, it looks like it will turn into a great project. I also plan to add a Mac side screen acting as a pseudo-server-thingie, which could provide the iPad with data about the printer, weather, and more; though I might also just have the iPad handle everything directly. I spent a couple of hours designing and sketching before moving into Figma to prototype it. I’m now working on the actual code and I’m excited to see how it turns out. Overall, a solid amount of work done before starting development."}]...
|
Title: Glancer by @Maarxius | Stardance
Devlogs:
Title: Glancer by @Maarxius | Stardance
Devlogs:
Devlog 1: Hey there, excited to start my project Glancer. It’s an ambient desk display that will show the time, weather, my 3d printer status, maybe a media player, my calendar, and a selected photo that I plan to keep. I’m designing the system to run on an iPad Mini 2 (d original) , which makes CSS and HTML much easier since I only need to define a single area. I spent a crazy amount of time trying to understand how to define CSS headings and grids. Even though I only have to work with a single display resolution, it didn’t save me from going through way too many Web3Schools pages. who designed css? Who hurt you? Overall, it looks like it will turn into a great project. I also plan to add a Mac side screen acting as a pseudo-server-thingie, which could provide the iPad with data about the printer, weather, and more; though I might also just have the iPad handle everything directly. I spent a couple of hours designing and sketching before moving into Figma to prototype it. I’m now working on the actual code and I’m excited to see how it turns out. Overall, a solid amount of work done before starting development.
Devlog 2! Just got to work on the actual HTML progress. Eight hours later here’s what I’ve got.I started by quickly laying out the grid with CSS and HTML. I was going through my last devlog and decided to get straight into the first card the clock.The clock is running on Bebas Neue, centered and it uses a simple JS setup. I had no idea you could animate things with CSS like that, which was actually pretty fun to figure out.After that I moved on to the calendar since I hadn’t really planned it out properly. That kicked off what I’m calling the calendar arc and yeah it was painful.The calendar itself is pretty simple. It shows your next event, how much time is left, and the event details etc etc. But it ended up taking a lot of JavaScript work. Nothing complex just really annoying to deal with.What really got me was how JavaScript handles constants. How assigning something to a const doesn’t always create a fresh copy it just links back to the original reference. I had no idea about that.Eventually I got the calendar working, added a bit of styling and that was basically the full eight hours.
Devlog 3! Return of the killer Adblocker! This session was basically split into two parts: the weather card and the media card. The weather card was pretty simple, the media card absolutely was not. I started with the weather card as a bit of a warm up. I used the OpenWeather API to grab the data and then spent most of my time getting everything to display nicely. The one thing I wasn’t expecting was how annoying SVGs are in plain HTML. I ended up making one massive lookup table full of SVG markup so I could swap icons depending on the weather. Is it elegant? No. Did it work? Yep. After that I moved onto the main boss fight of this devlog: the media card. Unlike the weather card, this one actually needed the frontend and backend to communicate. That meant learning Flask for the first time. Surprisingly, Flask was really enjoyable to work with. Setting up routes and returning JSON was much easier than I expected. Then came AppleScript. Honestly, AppleScript wasn’t nearly as bad as I’d heard. It’s probably one of the most readable programming languages I’ve used. I used it to grab information from the Music app like the current song, artist, duration and playback position, then passed all of that through Flask so the browser could fetch it as JSON. Of course, nothing ever works the first time. One thing that really annoyed me was discovering that my ad blocker was blocking the HTTP requests to my own local Flask server. Good on it for doing its job, but it made debugging miserable. I downloaded another browser to test it… only to realise it also had a built-in ad blocker. In the end I gave up and switched to Safari. I didn’t even know Safari had DevTools, but they’re actually pretty decent. Once the backend was working I started designing the actual card. I tried a bunch of layouts before settling on one with the song title, artist, progress bar and a little animated equalizer. I also wanted playback controls and album art, but they just made the card feel cramped, so I scrapped both ideas. The JavaScript was honestly the hardest part. Nothing was particularly difficult, it was just lots of connecting everything together and trying not to confuse myself with variable names. I split everything into smaller functions so I could update different parts of the card independently, and I also got to experiment with try and catch for error handling. The rest of the session was mostly bug fixing, CSS animations and fighting JavaScript every step of the way. Overall this felt like a pretty big milestone. Glancer isn’t just displaying static information anymore. It’s actually talking to my Mac in real time, which makes it feel a lot more like a real application than just another webpage.
Devlog 4! It’s finally done. After a lot of work, Glancer is finally feature complete. Before finishing everything off though, I decided to test it on an actual iPad instead of just my desktop browser. I’m really glad I did, because it immediately exposed a bunch of bugs caused by deprecated CSS. After a bit of trial and error (and Googling), I managed to iron them out. The first new feature I tackled was the photo carousel. Originally my plan was to have the iPad handle everything locally, but I quickly realised that wasn’t a great idea. Since I already had a Flask server running, it made much more sense to let it serve the photos as well. I ended up using what I’ve affectionately named the YOLO (You Only Load Once) method. The browser loads a photo, keeps displaying it until it eventually errors, then simply requests the next one from the server. It’s surprisingly simple, but it works really well. I also added photo shuffling and a photo counter, which rounded out the card nicely. After that I moved onto the French card, my mot du jour. That one was pretty straightforward. The hardest part was actually finding a good word list. After spending way too long looking, I gave up and had AI generate one that I could use instead. The final boss was the calendar. Compared to what I expected, the frontend was easy. The backend definitely wasn’t. There were plenty of Python bugs, Apple Calendar quirks and recurring event weirdness to work through, but eventually everything clicked into place and I finally got today’s events showing correctly. And with that… Glancer is done. There are still a few things I’d like to polish and test, but as far as the original vision goes, it’s complete. It’s honestly really satisfying seeing it all come together. What started as a simple dashboard idea is now something I actually use, and that’s a pretty cool feeling. Sure, i had to cut a lot of features, but i think what i lost, i gained thrice more.
Devlog 5: Glancer is done, and it was fun! i touched up some fo the read-me, added the demo, and just polished a couple of things. Overall, it was really great View it Here!: https://vismaysjayaram.github.io/glancer-desktop-view/ Comment your thoughts please! I’ll add more dog photos to the demo if you comment!
Devlog 5! This session was mostly about polishing Glancer rather than adding new features.I started by improving how text overflow is handled, especially on the music and French dictionary cards. Long titles now scroll much more smoothly instead of being abruptly cut off.I also fixed a bug where portrait photos weren’t displaying correctly in the photo carousel, and spent some time stress testing the dashboard. Leaving it running for a while exposed a few bugs with cards cycling over time, which I was able to fix.The last big improvement was setting up a launchd service for the Flask server. Instead of manually starting it from Terminal every time, it now launches automatically in the background when my Mac starts, making Glancer feel much more like a proper application.No major new features this time, but a lot of small improvements that make the dashboard much nicer to use every day.
Ships:
Glancer Glancer is an always-on desk display designed to be passive, useful, and unobtrusive. The idea was simple: take a retired iPad Mini and turn it into something that could sit on a desk, plugged in, and display useful information without needing constant interaction. It was heavily inspired by Terminal, especially the idea that something passive could still become incredibly useful. I also wanted to explore the idea of reusing old technology instead of letting it become e-waste. Turning an old iPad that would otherwise sit unused into something functional felt like a pretty big win. What I made Glancer is a web app connected to a local computer. The iPad acts as the display, while a Python Flask server running on a Mac collects information, processes it, and sends it to the dashboard. The project includes a clock, weather card using the OpenWeather API, French vocabulary card, photo carousel, calendar, and a music card showing the current song, artist, playback progress, and an animated equalizer. The interesting part wasn’t just making the cards themselves, but building the system behind them. I created Python scripts, a Flask API, AppleScript integrations, calendar parsing, and JavaScript functions to dynamically update everything. Challenges The biggest challenge was definitely the calendar. AppleScript worked well with Music, but Calendar was a completely different story. Recurring events caused a lot of issues, and trying to parse Apple’s calendar data was much harder than expected. Eventually I had to learn about CalDAV and different calendar parsing methods to make it work. JavaScript was also a challenge, although in a more enjoyable way. Learning how objects and properties worked, and how to structure functions to update different parts of the dashboard, was a really useful experience. CSS also caused problems because the target device was an older iPad Mini. Features that worked perfectly on my computer did not always work on older versions of Safari, so a lot of time went into testing, fixing layouts, and making sure everything looked correct on the actual device. What I’m proud of The thing I’m most proud of is that I built the entire system myself. This project was less about writing a lot of code and more about solving problems. The calendar especially taught me a lot about handling messy data and transforming it into something useful. I also learned how to communicate with macOS using AppleScript, create local APIs with Flask, and have different devices communicate over a network. Learning Flask was probably one of the biggest milestones. Being able to run a local application on my network and have another device connect to it opens up a lot of possibilities for future projects. How to test it To run Glancer, you will need a Mac, Python 3, a display with a resolution of 1024×768 CSS pixels, and an Apple ID/iCloud account with a calendar. The full setup guide, installation instructions, and future updates can be found in the GitHub README. A working demo can be found on that side too. Glancer started as a simple HTML dashboard, but it became something much more. It is now a fully connected application that can communicate with my computer and display real-time information on an old device. I’m really happy with how it turned out....
|
1792990578.9625146
|
1793076978.9625146
|
|
52859
|
Starsimulation by @Dasher280I | Stardance
|
Dasher280I
|
1
|
26.0
|
271
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-03T13:05:12Z", "hours": 26.0, "multiplier": 10.38, "payout": 271, "blessing": "neutral", "text": "I built an interactive 2D particle simulator using HTML5 Canvas, Vanilla JavaScript, and CSS. It features a dynamic starfield that responds to clicks, touch inputs, and mouse movements with physical shockwaves, implosions, motion trails, and parallax depth. I also integrated real-time sound effects generated via the Web Audio API and added a live control panel to tweak physics and visual settings on the fly.", "repo": "https://github.com/Slasher22880011/Starsimulator", "demo": "https://slasher22880011.github.io/Starsimulator/"}]...
|
[{"post_id": 60644, "ts": "202 [{"post_id": 60644, "ts": "2026-09-03T04:23:54Z", "hours": 5.7631, "text": "In this update, the particle simulator received several key enhancements to boost visual depth and interactivity. Motion trails were introduced by rendering the canvas background with a semi-transparent alpha channel instead of a complete clear, leaving glowing paths behind moving particles. The physics engine now features a parallax depth effect where larger stars possess greater mass, causing them to react more dynamically to shockwaves than smaller background particles. Additionally, a new implosion mechanic was implemented—accessible via right-click or mobile touch controls—which draws particles inward rather than pushing them away, complete with customized boundary bouncing to keep stars on screen. To tie everything together, the Web Audio API synthesizer was upgraded to dynamically shift frequencies based on whether an explosion or an implosion is triggered, creating a fitting audio response for both actions."}, {"post_id": 60032, "ts": "2026-09-02T04:27:14Z", "hours": 5.2333, "text": "I’ve continued developing Star Simulation. There are now a few sliders at the bottom. The first slider lets you zoom out—showing more or fewer stars depending on the setting. You can make the stars colorful or white and add a faint Milky Way effect in the background. I ran into major issues with the zoom function; at one point, it stopped working entirely, and the stars would simply move at random without any input."}, {"post_id": 59375, "ts": "2026-09-01T04:25:09Z", "hours": 5.4667, "text": "The development of starsimulation is moving into the next phase. I’ve got the stars in place now—all colored, but with a feature where they change color whenever the game is reloaded. You can also adjust the speed at which the sound wave propagates, as well as the force with which it pushes the stars away. However, I ran into some major issues here: initially, the sound wave didn’t respond to the slider settings, and sometimes it would simply glide right through the colored stars instead of pushing them away."}, {"post_id": 58881, "ts": "2026-08-31T13:37:29Z", "hours": 4.8039, "text": "I’ve continued developing my project; there is now a proper shockwave that can be used to blast away the stars. Creating the shockwave itself only took about three hours, but the tricky part was splitting it into different rings. Right now, I have just one ring that actually pushes the stars away, while the other fingers are there purely for visual effect. It was actually quite difficult to implement, though, because at one point I ended up with a situation where either none of them did anything or all the rings pushed the stars away."}, {"post_id": 58122, "ts": "2026-08-30T14:02:07Z", "hours": 4.8275, "text": "I am developing “starsimulation.” Once it is finished, the program will allow you to click anywhere on the screen, triggering a shockwave that pushes the stars aside. So far, I have added the stars and ensured they make a bit of room around the mouse cursor. I struggled quite a bit to get the stars to spawn in different positions each time, rather than always appearing in the same spot."}]...
|
Title: Starsimulation by @Dasher280I | Stardance
Title: Starsimulation by @Dasher280I | Stardance
Devlogs:
I am developing “starsimulation.” Once it is finished, the program will allow you to click anywhere on the screen, triggering a shockwave that pushes the stars aside. So far, I have added the stars and ensured they make a bit of room around the mouse cursor. I struggled quite a bit to get the stars to spawn in different positions each time, rather than always appearing in the same spot.
I’ve continued developing my project; there is now a proper shockwave that can be used to blast away the stars. Creating the shockwave itself only took about three hours, but the tricky part was splitting it into different rings. Right now, I have just one ring that actually pushes the stars away, while the other fingers are there purely for visual effect. It was actually quite difficult to implement, though, because at one point I ended up with a situation where either none of them did anything or all the rings pushed the stars away.
The development of starsimulation is moving into the next phase. I’ve got the stars in place now—all colored, but with a feature where they change color whenever the game is reloaded. You can also adjust the speed at which the sound wave propagates, as well as the force with which it pushes the stars away. However, I ran into some major issues here: initially, the sound wave didn’t respond to the slider settings, and sometimes it would simply glide right through the colored stars instead of pushing them away.
I’ve continued developing Star Simulation. There are now a few sliders at the bottom. The first slider lets you zoom out—showing more or fewer stars depending on the setting. You can make the stars colorful or white and add a faint Milky Way effect in the background. I ran into major issues with the zoom function; at one point, it stopped working entirely, and the stars would simply move at random without any input.
In this update, the particle simulator received several key enhancements to boost visual depth and interactivity. Motion trails were introduced by rendering the canvas background with a semi-transparent alpha channel instead of a complete clear, leaving glowing paths behind moving particles. The physics engine now features a parallax depth effect where larger stars possess greater mass, causing them to react more dynamically to shockwaves than smaller background particles. Additionally, a new implosion mechanic was implemented—accessible via right-click or mobile touch controls—which draws particles inward rather than pushing them away, complete with customized boundary bouncing to keep stars on screen. To tie everything together, the Web Audio API synthesizer was upgraded to dynamically shift frequencies based on whether an explosion or an implosion is triggered, creating a fitting audio response for both actions.
Ships:
I built an interactive 2D particle simulator using HTML5 Canvas, Vanilla JavaScript, and CSS. It features a dynamic starfield that responds to clicks, touch inputs, and mouse movements with physical shockwaves, implosions, motion trails, and parallax depth. I also integrated real-time sound effects generated via the Web Audio API and added a live control panel to tweak physics and visual settings on the fly....
|
1792878636.8983781
|
1793742636.8983781
|
|
990
|
PythOS by @milo0622 | Stardance
|
milo0622
|
1
|
42.45
|
270
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T14:06:19Z", "hours": 14.0, "multiplier": 19.35, "payout": 270, "blessing": "neutral", "text": "This is a Linux distro written almost completely in Python!! What’s special about it, is that the whole Linux distro is compiled and assembled by me!! Compared to previous versions in the previous repo, those all relied on other Linux distro shells. But this time, the shell and other programs in /bin is written in Python. How it works: Boots grub bootloader Boots Linux kernel Loads init script Loads init.py from sbin/ Tries to load pysh.py from bin/ -> If fails or user exits pyshell, it falls back to init.py as a logon menu (written with ncurses) This is a protection mechanism that prevents kernel panic (which needs us to force reboot the PC) I’m really proud that my OS worked, and has always been my dream creating an up and running OS!!", "repo": "https://github.com/milo0622/PythOS", "demo": "https://github.com/milo0622/PythOS/releases/"}]...
|
[{"post_id": 31306, "ts": "202 [{"post_id": 31306, "ts": "2026-07-19T16:31:21Z", "hours": 9.7153, "text": "Alright. So in the past 8 hours, I’ve been working on the KMSDRM rendering for PythOS’ desktop. Since all apps will be called via standard execve, functions inside cannot be called directly from the main server. That’s where IPC comes in. Like GNOME, it pygui acts as a server that handles the custom made apps that contains the GUI APIs, and performs a communication back and forth to render the apps. The process is NOT easy, and got my brain frying."}, {"post_id": 28979, "ts": "2026-07-15T16:38:05Z", "hours": 7.3539, "text": "In this 6 hours’ work, I’ve added a handle to the windows for the user to drag them. Various APIs were also added, such as buttons, text and images. There is one more useful feature: window focusing. When multiple windows are added, you can focus on them by clicking on them just like normal OSes."}, {"post_id": 28215, "ts": "2026-07-14T11:11:36Z", "hours": 11.3847, "text": "In this 11 hours (shows 10 hours because of the limit of devlogs), I’ve worked on framebuffering with PyGame, it was kinda painful trying to learn writing GUI in a completely different language, but it’s kinda worth it and enjoyable :) Also the theme of the GUI is based on Windows 98"}, {"post_id": 19180, "ts": "2026-06-30T13:20:41Z", "hours": 7.0183, "text": "After rewriting code for 7 hours and building the ISO file for more than 5 hours, I have finally built a bootable PythOS ISO file!!! What I have rewritten, was pysh.py to optimize the shell. I’ve also fixed a TypeError of PosixPath + str in ls.py. How the OS works: Boots grub bootloader Boots Linux kernel Loads init script Loads init.py from sbin/ Tries to load pysh.py from bin/ -> If fails or user exits pyshell, it falls back to init.py as a logon menu (written with ncurses) This is a protection mechanism that prevents kernel panic (which needs us to force reboot the PC) How to dualboot: (for Windows users. Skip if you know how to dualboot Linux, but please do not ignore step 6 when flashing): Prerequisites: Rufus (download from here ) PythOS ISO (download from the releases page ) A USB (at least 200MB) Steps: Plug in your USB and run Rufus you have just downloaded Select your USB device in the “Device” dropdown menu In the “Boot selection” dropdown, select “Disk or ISO image (Please select)” Select PythOS ISO file Click START Select DD mode as the flash mode instead of ISO mode (ISO mode will NOT work) and click OK Wait for it to flash Reboot your computer after flashing and enter UEFI boot menu Select the USB flash drive Select PythOS Phoenix ENJOY! NOTE: If your computer uses legacy BIOS instead of UEFI, I’m sorry… I’ll be adding BIOS support very soon tho :) Other architecture builds of the OS will be released very soon. The current supported arch is x86_64 (64-bit) P.S. You might be wondering if you’ll need to type in “.py” for running my scripts in bin, you don’t. Simply type in the command without .py, it’ll be good to go. Of course you CAN type in .py if you want, but it would basically be your choice mate"}, {"post_id": 2103, "ts": "2026-06-04T13:07:32Z", "hours": 4.5208, "text": "In this ~4.5 hours, I’ve added many commands to PythOS: clear, date, ls, mkdir, touch, uname And the most amazing thing I’ve done, is adding arguments and options :). I do think that this project can let me learn a LOT more about Python, Linux and low-level things"}, {"post_id": 748, "ts": "2026-06-02T11:46:02Z", "hours": 2.4308, "text": "I’ve relaunched the project PythOS, a Linux distro but almost fully written in Python. Instead of relying on init systems like BusyBox, it uses bare-minimum components: a Linux kernel, musl library, Python library, and my own Python runtime (init systems are written by me in C) I’ve actually worked on a project like this, also a Linux distro written in C, but back then, the distro relied on Alpine Linux as a base system. This time I’m actually trying to create the Linux distro myself :) The image I’ve uploaded is a preview of the shell. It’s still run on my Linux VM as it’s not built into a system yet."}]...
|
Title: PythOS by @milo0622 | Stardance
Devlogs:
I Title: PythOS by @milo0622 | Stardance
Devlogs:
I’ve relaunched the project PythOS, a Linux distro but almost fully written in Python. Instead of relying on init systems like BusyBox, it uses bare-minimum components: a Linux kernel, musl library, Python library, and my own Python runtime (init systems are written by me in C) I’ve actually worked on a project like this, also a Linux distro written in C, but back then, the distro relied on Alpine Linux as a base system. This time I’m actually trying to create the Linux distro myself :) The image I’ve uploaded is a preview of the shell. It’s still run on my Linux VM as it’s not built into a system yet.
In this ~4.5 hours, I’ve added many commands to PythOS: clear, date, ls, mkdir, touch, uname And the most amazing thing I’ve done, is adding arguments and options :). I do think that this project can let me learn a LOT more about Python, Linux and low-level things
After rewriting code for 7 hours and building the ISO file for more than 5 hours, I have finally built a bootable PythOS ISO file!!! What I have rewritten, was pysh.py to optimize the shell. I’ve also fixed a TypeError of PosixPath + str in ls.py. How the OS works: Boots grub bootloader Boots Linux kernel Loads init script Loads init.py from sbin/ Tries to load pysh.py from bin/ -> If fails or user exits pyshell, it falls back to init.py as a logon menu (written with ncurses) This is a protection mechanism that prevents kernel panic (which needs us to force reboot the PC) How to dualboot: (for Windows users. Skip if you know how to dualboot Linux, but please do not ignore step 6 when flashing): Prerequisites: Rufus (download from here ) PythOS ISO (download from the releases page ) A USB (at least 200MB) Steps: Plug in your USB and run Rufus you have just downloaded Select your USB device in the “Device” dropdown menu In the “Boot selection” dropdown, select “Disk or ISO image (Please select)” Select PythOS ISO file Click START Select DD mode as the flash mode instead of ISO mode (ISO mode will NOT work) and click OK Wait for it to flash Reboot your computer after flashing and enter UEFI boot menu Select the USB flash drive Select PythOS Phoenix ENJOY! NOTE: If your computer uses legacy BIOS instead of UEFI, I’m sorry… I’ll be adding BIOS support very soon tho :) Other architecture builds of the OS will be released very soon. The current supported arch is x86_64 (64-bit) P.S. You might be wondering if you’ll need to type in “.py” for running my scripts in bin, you don’t. Simply type in the command without .py, it’ll be good to go. Of course you CAN type in .py if you want, but it would basically be your choice mate
In this 11 hours (shows 10 hours because of the limit of devlogs), I’ve worked on framebuffering with PyGame, it was kinda painful trying to learn writing GUI in a completely different language, but it’s kinda worth it and enjoyable :) Also the theme of the GUI is based on Windows 98
In this 6 hours’ work, I’ve added a handle to the windows for the user to drag them. Various APIs were also added, such as buttons, text and images. There is one more useful feature: window focusing. When multiple windows are added, you can focus on them by clicking on them just like normal OSes.
Alright. So in the past 8 hours, I’ve been working on the KMSDRM rendering for PythOS’ desktop. Since all apps will be called via standard execve, functions inside cannot be called directly from the main server. That’s where IPC comes in. Like GNOME, it pygui acts as a server that handles the custom made apps that contains the GUI APIs, and performs a communication back and forth to render the apps. The process is NOT easy, and got my brain frying.
Ships:
This is a Linux distro written almost completely in Python!! What’s special about it, is that the whole Linux distro is compiled and assembled by me!! Compared to previous versions in the previous repo, those all relied on other Linux distro shells. But this time, the shell and other programs in /bin is written in Python. How it works: Boots grub bootloader Boots Linux kernel Loads init script Loads init.py from sbin/ Tries to load pysh.py from bin/ -> If fails or user exits pyshell, it falls back to init.py as a logon menu (written with ncurses) This is a protection mechanism that prevents kernel panic (which needs us to force reboot the PC) I’m really proud that my OS worked, and has always been my dream creating an up and running OS!!...
|
1792983290.4333286
|
1793069690.4333286
|
|
4028
|
Debugr.fun by @jamallyemin | Stardance
|
jamallyemin
|
2
|
20.36
|
270
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T21:22:25Z", "hours": 10.0, "multiplier": 17.57, "payout": 171, "blessing": "neutral", "text": "helo!! shipping this one — it’s the variable game, ranked edition. you write python-like code to satisfy a growing set of rules before a timer starts deleting it from the bottom, one line a second, unless you sync in time. play solo, or host/join a private room and race friends live for the leaderboard. the biggest thing I’m proud of is taskEngine.js — instead of hand-writing 25 fixed rules like the old version, it builds a hidden random solution first and derives every rule from a real fact about it (its actual sum, its actual length, etc), so no matter how many rules stack together they can never contradict each other. infinite non-repeating tasks out of that one trick. hardest part honestly wasn’t the game logic, it was wiring firebase up for real — nicknames, live rooms, race winners decided by firestore transactions so two people submitting at the same millisecond still only lets one through. spent lots of time chasing dumb stuff too. to test it: pick a difficulty and start typing variable assignments, or open two tabs and try hosting + joining a room to see the live race work. note : this project is obviously not perfect but I will try to improve this project and make it an actual kind of web browser game, so feedbacks , bug reports, and suggestions would be really helpful and appreciated", "repo": "https://github.com/jamallyemin/Debugr.fun", "demo": "https://debugr.fun/"}, {"ship_num": 2, "ts": "2026-06-03T23:50:06Z", "hours": 6.0, "multiplier": 15.96, "payout": 99, "blessing": "neutral", "text": "made a browser puzzle where you write Python-like variable assignments to satisfy 25 rules simultaneously - think neal.fun’s password game but for code. rules unlock one by one and start contradicting each other the deeper you go. most proud of the destruction mode. when the 45s timer hits zero the editor gets a red caret and starts deleting your code line by line from the bottom until you hit sync. it creates this genuine panic that felt fun to build. hardest part was making all 25 rules mathematically solvable at the same time. some rules override earlier ones so you keep rewriting the same lines - getting that supersession logic right without breaking the win condition took a while. to test it: just start typing variables. x = 5 will get you past rule 1. it gets weird around rule 7.", "repo": "https://github.com/jamallyemin/Debugr.fun", "demo": "https://debugr.fun/"}]...
|
[{"post_id": 80164, "ts": "202 [{"post_id": 80164, "ts": "2026-10-16T14:16:17Z", "hours": 4.3622, "text": "helo again!! it’s been a while, but I finally came back to this and added a bunch of stuff ^_^ the biggest one is puzzles. it’s a roadmap like chess.com’s, with 3 tracks: syntax (fix the broken code), complete (fill in the blanks) and typefix (fix the type errors). levels never run out, just like taskEngine.js. I wrote a tiny python interpreter (pyeval.js) to check the answers instead of loading pyodide, so there’s nothing heavy to download. there’s also a puzzle streak and a top 3 solvers for today / this week. added: themes: light mode, plus a custom theme maker where you pick your own colors (the old amber and cold signal presets are gone) settings: sfx on/off + volume, CRT scanlines on/off, theme, cloud save with an optional google link, and a feedback form will add: daily challenge: one task a day, same for everyone, ranked by time. it sits on the main menu with a countdown, press D to play it profile pictures: you unlock them by clearing puzzles and winning on different difficulties, and other players can see yours next to your name (the pixel art is still placeholder, I’m drawing the real ones later) keyboard control: esc goes back on every screen, and ? shows all the shortcuts sound effects: all made with the web audio api, no audio files most of these are half done, I just have to finish coding some of the javascript files and make sure everything runs perfectly! it’s still not perfect but it feels way more like an actual game now. if you find bugs or have ideas, there’s a feedback button in settings, I will read all of them!! :3 i forgot to add I changed the game’s name from The Variable Game to Debugr.fun cuz kewler.. and I got domain ^-^"}, {"post_id": 63184, "ts": "2026-09-06T21:05:08Z", "hours": 0.81, "text": "helo!! continuing from last time — taskEngine.js is done, and lobby/live-race is actually talking to firebase properly now too. this is it, the project’s finished!! taskEngine.js works backwards instead of using hardcoded rules like the old 25-rule version did: it builds a random hidden “reference solution” first (variable names, numbers, strings, a list), then derives every rule from a real fact about that solution — its actual sum, its actual length, whether one number happens to be prime, etc. since every rule comes from the same solution, they can never contradict each other no matter how many stack together. difficulty just controls how many rules get pulled from the pool (1 easy / 3 medium / 5 hard), and it keeps a history per difficulty so the same combo won’t repeat until the pool’s exhausted. wiring it all together turned up a bunch of small but annoying bugs, mostly not taskEngine’s fault directly: two separate filename casing mismatches (taskEngine.js and firebaseClient.js) — the script tags in index.html didn’t match the actual filenames on disk exactly, fine on windows locally but the dev server (and github pages) treat urls as case-sensitive, so both files were silently 404ing and breaking everything downstream config.js had the firebase config saved under the wrong variable name, so firebase never actually initialized and threw a reference error instead the join-a-room screen was stacking the code input + join button on top of the waiting room instead of hiding them after a successful join, looked broken even when it technically wasn’t rooms never got cleaned up in firestore after cancelling out of one, so an old room code could still say “already started” if you landed on it again later — fixed leaveRoom so the host actually deletes the room on the way out now singleplayer, hosting/joining rooms, live races, the leaderboard, streaks, and the tutorial all work end to end now. and it’s ready to be shipped!!"}, {"post_id": 61742, "ts": "2026-09-04T20:00:37Z", "hours": 3.1894, "text": "helo again!! so after the menu frontend was done last time, spent this session wiring up js to actually make it functional instead of just sitting there as styled html. added: script.js: screen switching between menu/difficulty/lobby/game, the nickname + tutorial onboarding flow, and the actual game loop (timer, save/sync, destruction mode) parser.js : reads whatever gets typed into the editor and pulls out the variables firebaseClient.js: nicknames, scores, streaks, and the room/live-race logic for multiplayer tutorial.js: the spotlight walkthrough for first-time visitors config.js: firebase config + local player state caching taskEngine.js is still on the list, saved it for last since everything else needed to be working first before it made sense to build. tested what’s done so far end to end and caught a handful of small bugs along the way (some css that wasn’t applying, a couple html typos) which I fixed too. next up: taskEngine.js, then getting the lobby/live-race stuff talking to firebase properly ^_^"}, {"post_id": 58238, "ts": "2026-08-30T16:28:08Z", "hours": 3.4475, "text": "helo again!! so quick update on the main menu I mentioned last time: the frontend for it is completely done now!! :Di finished styling the whole thing, here is what’s ready on the screen right now:main buttons for singleplayer, host/join private rooms, and leaderboard ([1] to [4])top bar with day streak tracker and runtime status boxclean footer for how to play & source links now that the main menu frontend is out of the way and not looking like raw HTML anymore, I’m finally moving on to the backend logic for lobbies and real-time multiplayer!! :>"}, {"post_id": 52335, "ts": "2026-08-22T13:20:15Z", "hours": 2.2828, "text": "helo!! so I kinda decided to start all over and improve this game because I like torturing myself, I wanted to make the game multiplayer, less boring, so I removed the old simple looking single editor page and now replacing it with a main menu screen!! here players will be able to: host and join private lobbies and play with their friends; play by themselves or play online!! :D so with these new features I decided to add a leaderboard too in order to make it more competitive, leaderboard will consist win streak , best times!! and wins !! also added diff levels so easy, medium, hard are a thing now :>"}, {"post_id": 1777, "ts": "2026-06-03T23:41:41Z", "hours": 2.6764, "text": "script.js is done. parser reads whatever you type and pulls out strings, numbers, and lists - inline and multiline. 25 rules with a supersession system so later rules can step on earlier ones without creating impossible states. progressive unlock, 45s countdown, sync button, destruction mode that eats your code line by line from the bottom when the timer runs out."}, {"post_id": 929, "ts": "2026-06-02T17:59:06Z", "hours": 3.0431, "text": "the layout skeleton is officially complete now that style.css is implemented. i went for a dark, high-contrast, brutalist terminal look to match the puzzle theme. here are the key UI updates: custom scrollbar: added a minimal 4px scrollbar to the rules list so it blends perfectly into the sidebar unlock animations: handled the transitions for .rule-item. when a rule becomes visible, it smoothly fades in and slides up into place using transform: translateY(6px) to 0. editor grid algnment: synced the code canvas layout, line numbers, and preview panels so the split-view remains perfectly aligned across different workspace sizes. the interface looks clean now, so next up i’m wiring the actual parser and the rule engine in script.js to make it work. :3"}, {"post_id": 615, "ts": "2026-06-02T03:36:14Z", "hours": 0.4664, "text": "just finished the index.html skeleton. as you can see on the right panel, the embedded preview is currently completely raw and unstyled because style.css is literally a blank file right now. looks like a broken 90s blog. now I’ll move on to style.css so my eyes don’t bleed from this ugly white screen… but I think the structure of .html is fine"}]...
|
Title: Debugr.fun by @jamallyemin | Stardance
Dev Title: Debugr.fun by @jamallyemin | Stardance
Devlogs:
just finished the index.html skeleton. as you can see on the right panel, the embedded preview is currently completely raw and unstyled because style.css is literally a blank file right now. looks like a broken 90s blog. now I’ll move on to style.css so my eyes don’t bleed from this ugly white screen… but I think the structure of .html is fine
the layout skeleton is officially complete now that style.css is implemented. i went for a dark, high-contrast, brutalist terminal look to match the puzzle theme. here are the key UI updates: custom scrollbar: added a minimal 4px scrollbar to the rules list so it blends perfectly into the sidebar unlock animations: handled the transitions for .rule-item. when a rule becomes visible, it smoothly fades in and slides up into place using transform: translateY(6px) to 0. editor grid algnment: synced the code canvas layout, line numbers, and preview panels so the split-view remains perfectly aligned across different workspace sizes. the interface looks clean now, so next up i’m wiring the actual parser and the rule engine in script.js to make it work. :3
script.js is done. parser reads whatever you type and pulls out strings, numbers, and lists - inline and multiline. 25 rules with a supersession system so later rules can step on earlier ones without creating impossible states. progressive unlock, 45s countdown, sync button, destruction mode that eats your code line by line from the bottom when the timer runs out.
helo!! so I kinda decided to start all over and improve this game because I like torturing myself, I wanted to make the game multiplayer, less boring, so I removed the old simple looking single editor page and now replacing it with a main menu screen!! here players will be able to: host and join private lobbies and play with their friends; play by themselves or play online!! :D so with these new features I decided to add a leaderboard too in order to make it more competitive, leaderboard will consist win streak , best times!! and wins !! also added diff levels so easy, medium, hard are a thing now :>
helo again!! so quick update on the main menu I mentioned last time: the frontend for it is completely done now!! :Di finished styling the whole thing, here is what’s ready on the screen right now:main buttons for singleplayer, host/join private rooms, and leaderboard ([1] to [4])top bar with day streak tracker and runtime status boxclean footer for how to play & source links now that the main menu frontend is out of the way and not looking like raw HTML anymore, I’m finally moving on to the backend logic for lobbies and real-time multiplayer!! :>
helo again!! so after the menu frontend was done last time, spent this session wiring up js to actually make it functional instead of just sitting there as styled html. added: script.js: screen switching between menu/difficulty/lobby/game, the nickname + tutorial onboarding flow, and the actual game loop (timer, save/sync, destruction mode) parser.js : reads whatever gets typed into the editor and pulls out the variables firebaseClient.js: nicknames, scores, streaks, and the room/live-race logic for multiplayer tutorial.js: the spotlight walkthrough for first-time visitors config.js: firebase config + local player state caching taskEngine.js is still on the list, saved it for last since everything else needed to be working first before it made sense to build. tested what’s done so far end to end and caught a handful of small bugs along the way (some css that wasn’t applying, a couple html typos) which I fixed too. next up: taskEngine.js, then getting the lobby/live-race stuff talking to firebase properly ^_^
helo!! continuing from last time — taskEngine.js is done, and lobby/live-race is actually talking to firebase properly now too. this is it, the project’s finished!! taskEngine.js works backwards instead of using hardcoded rules like the old 25-rule version did: it builds a random hidden “reference solution” first (variable names, numbers, strings, a list), then derives every rule from a real fact about that solution — its actual sum, its actual length, whether one number happens to be prime, etc. since every rule comes from the same solution, they can never contradict each other no matter how many stack together. difficulty just controls how many rules get pulled from the pool (1 easy / 3 medium / 5 hard), and it keeps a history per difficulty so the same combo won’t repeat until the pool’s exhausted. wiring it all together turned up a bunch of small but annoying bugs, mostly not taskEngine’s fault directly: two separate filename casing mismatches (taskEngine.js and firebaseClient.js) — the script tags in index.html didn’t match the actual filenames on disk exactly, fine on windows locally but the dev server (and github pages) treat urls as case-sensitive, so both files were silently 404ing and breaking everything downstream config.js had the firebase config saved under the wrong variable name, so firebase never actually initialized and threw a reference error instead the join-a-room screen was stacking the code input + join button on top of the waiting room instead of hiding them after a successful join, looked broken even when it technically wasn’t rooms never got cleaned up in firestore after cancelling out of one, so an old room code could still say “already started” if you landed on it again later — fixed leaveRoom so the host actually deletes the room on the way out now singleplayer, hosting/joining rooms, live races, the leaderboard, streaks, and the tutorial all work end to end now. and it’s ready to be shipped!!
helo again!! it’s been a while, but I finally came back to this and added a bunch of stuff ^_^ the biggest one is puzzles. it’s a roadmap like chess.com’s, with 3 tracks: syntax (fix the broken code), complete (fill in the blanks) and typefix (fix the type errors). levels never run out, just like taskEngine.js. I wrote a tiny python interpreter (pyeval.js) to check the answers instead of loading pyodide, so there’s nothing heavy to download. there’s also a puzzle streak and a top 3 solvers for today / this week. added: themes: light mode, plus a custom theme maker where you pick your own colors (the old amber and cold signal presets are gone) settings: sfx on/off + volume, CRT scanlines on/off, theme, cloud save with an optional google link, and a feedback form will add: daily challenge: one task a day, same for everyone, ranked by time. it sits on the main menu with a countdown, press D to play it profile pictures: you unlock them by clearing puzzles and winning on different difficulties, and other players can see yours next to your name (the pixel art is still placeholder, I’m drawing the real ones later) keyboard control: esc goes back on every screen, and ? shows all the shortcuts sound effects: all made with the web audio api, no audio files most of these are half done, I just have to finish coding some of the javascript files and make sure everything runs perfectly! it’s still not perfect but it feels way more like an actual game now. if you find bugs or have ideas, there’s a feedback button in settings, I will read all of them!! :3 i forgot to add I changed the game’s name from The Variable Game to Debugr.fun cuz kewler.. and I got domain ^-^
Ships:
made a browser puzzle where you write Python-like variable assignments to satisfy 25 rules simultaneously - think neal.fun’s password game but for code. rules unlock one by one and start contradicting each other the deeper you go. most proud of the destruction mode. when the 45s timer hits zero the editor gets a red caret and starts deleting your code line by line from the bottom until you hit sync. it creates this genuine panic that felt fun to build. hardest part was making all 25 rules mathematically solvable at the same time. some rules override earlier ones so you keep rewriting the same lines - getting that supersession logic right without breaking the win condition took a while. to test it: just start typing variables. x = 5 will get you past rule 1. it gets weird around rule 7.
helo!! shipping this one — it’s the variable game, ranked edition. you write python-like code to satisfy a growing set of rules before a timer starts deleting it from the bottom, one line a second, unless you sync in time. play solo, or host/join a private room and race friends live for the leaderboard. the biggest thing I’m proud of is taskEngine.js — instead of hand-writing 25 fixed rules like the old version, it builds a hidden random solution first and derives every rule from a real fact about it (its actual sum, its actual length, etc), so no matter how many rules stack together they can never contradict each other. infinite non-repeating tasks out of that one trick. hardest part honestly wasn’t the game logic, it was wiring firebase up for real — nicknames, live rooms, race winners decided by firestore transactions so two people submitting at the same millisecond still only lets one through. spent lots of time chasing dumb stuff too. to test it: pick a difficulty and start typing variable assignments, or open two tabs and try hosting + joining a room to see the live race work. note : this project is obviously not perfect but I will try to improve this project and make it an actual kind of web browser game, so feedbacks , bug reports, and suggestions would be really helpful and appreciated...
|
1792982834.3491957
|
1793069234.3491957
|
|
42829
|
Keytchen by @-Sophie- | Stardance
|
-Sophie-
|
1
|
15.0
|
267
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T01:25:55Z", "hours": 15.0, "multiplier": 17.92, "payout": 267, "blessing": "neutral", "text": "Keytchen is a digital experience where you get to explore a kitchen using eccentric controls, whether on your NanoKEY2 (what this game is intended for) or just your computer keyboard (which works just as well!) This was just a fun project to work on because I wanted to created a game that went beyond the standard WASD/arrow key controls. Controls are in the title screen instructions preface thing. It’s hard to explain with words but I have a picture in-game that helps a TON. My Github README also features the nanoKEY2 map guide + keyboard equivalent inputs. Challenges: This was my first time working with MIDI inputs in Godot and also working with music/timing in Godot. I had to learn a bit about rhythm and BPM actually because of this project, and also scoured upon Godot docs about getting playback positions and whatnot, which made me realize that Godot’s way of timing music is actually very inaccurate and you need to put a lot of safeguards to make sure that you’re not getting a late/older version of your playback position. That it’s up to speed as much as possible. There was also a lot of decision-making that I had to do. I could’ve chosen to add more content to this game (I mean imagine the possibilities) but I’ve basically answered my question of what a game would be like if the controls weren’t just WASD/arrow keys, and I’ve basically learned what I sought out to learn (MIDI input mapping and rhythm game mechanics) with this project. More content would just be adding onto the principles I’ve learned rather than learning more, which made me realize that it’s probably better to move on and experiment with another project! Proud of: I’m just proud that my beats are on time and that it’s not rage-quit inducing. I’m also proud of the assets I drew in this game because I drew everything and I’m glad it turned out pretty pleasing to look at. Also proud of my sfx + audio choices; I feel like they fit really well and just make everything feel so much more complete.", "repo": "https://github.com/gwak-amole/keytchen", "demo": "https://gwak-amole.itch.io/keytchen"}]...
|
[{"post_id": 75767, "ts": "202 [{"post_id": 75767, "ts": "2026-10-01T01:19:02Z", "hours": 0.3786, "text": "Cleaned game up for shipping! Export files added I exported this into an HTML file so that I could have players access it on their browser really easily! I also updated the godot loading screen and icon to be my own custom screens for more cohesiveness! Fixed minor bug There was a minor bug with the MIDI where it wasn’t escaping the cutting vegetables minigame, found the problem. It was only detecting the escape if it was pressed from the keyboard, not the MIDI. Art Drew assets for: Itch.io banner Stardance screenshot That’s pretty much it! yayy I’m so glad this has come to a wrap! I learned so much honestly from creating just this little digital experience. I hope you all enjoy exploring it as much as I enjoyed making it!"}, {"post_id": 75761, "ts": "2026-10-01T00:22:03Z", "hours": 3.6725, "text": "Finally about to ship!! Title Screen Created a title screen + keyboard tutorial instructions so that players know what keys to press + their keyboard equivalents if they don’t have a nanoKEY2 Everything was drawn by me in Aseprite, except the nanoKEY2 base image was taken from the internet Digital experience More than a game, I’ve decided that this game should be more like an experimental digital experience. It features a cutting experience and just pan/pot placing/removing. It doesn’t feature a storyline, almost just like a little aimless simulator. Audio Added some pixel + lofi bg music and satisfying SFX! Keyboard compatibility Added keyboard compatibility Mapped keys 1, 2, 3, 4, 5, 6, 7, 8 with corresponding MIDI pitch values (like an intermediary value switch) using event.get_keycode (it’s really neat and the transfer over was p smooth) Added navigation buttons Way to go back to start screen or exit cutting vegetables mode Challenges Finding satisfying audio :’) It was just a lot of little content to add so it was just time consuming It took a bit of decision-making to decide whether to keep going with Keytchen (because honestly I could keep adding content forever) or move onto another project. I decided to move on because at this point I’ve hurdled over all the foreign technicalities that I’ve sought out to learn (the MIDI mapping and beat timing.) Any new additions would just be things I already know (but I want to actively learn more.) I hope to ship this very soon; I’m going to quickly playtest it one more time!"}, {"post_id": 55672, "ts": "2026-08-27T17:10:30Z", "hours": 3.2014, "text": "Keytchen - More visual feedback and debugging! Had to backtrack w/debugging I debugged the entire timing system of beats because the gameplay was just not fun, it was not registering beats sometimes and the visual beat feedback wouldn’t update when it was supposed to. I fixed this by separating the visual beat updating system with the input tracking of beats for gameplay and it worked out well 😭 Visual feedback Error for wrong timing red key Error for wrong key red key Key you’re supposed to press is highlighted green The beats pulse whenever a beat happens to help the player feel the beat in the game better Miscellaneous You can access the minigame through the main screen’s cutting board now! Challenges Debugging my beat system was so painful and a nightmare because my code was so messy and I confused myself with it. I solved this by commenting out all my code so now there’s no way I get confused LOL Future additions As you can tell, I still haven’t added the new potato / zucchini textures so i will have to do that :’). The next time you see a post it will have different textures not just a carrot i promise!! I’ll need to create some kind of inventory system so that the cut up vegetables can be stored somewhere so when the player wants to cook something using those ingredients they have it on hand and can add it to a pot or pan or something That’s all folks! see ya in the next update! ;D"}, {"post_id": 48914, "ts": "2026-08-17T14:07:42Z", "hours": 3.3572, "text": "Cutting mechanism almost done Notes autoload Now the player knows what notes to hit based on the note shown on screen! I’m going to add a note guide so that it’s also more obvious which note to hit if they’re not familiar with cdefgabc keys! Different vegetable settings Though there aren’t any graphics to match at the moment, there are different vegetables that call for different mini-games! I finished the carrot, zucchini, and potato mini-games. Music added I added some plain beat in the background that the player needs to match with the notes accordingly. It won’t work unless the player matches the beat well enough. Challenges It’s hard to match up the switch of the note; i’m still working on this. sometimes the note even though switches in game logic doesn’t show up and the game remembers the last note as the one to show on screen (u can actually see it in the vid) I had to learn a bit about rhythm and bpm in order to set my variables for next beat and secs per beat stuff like that correctly 😭 Next additions graphics for different veggies the note showing on screen will have flawless timing sfx for notes there will be a note guide added for players who aren’t familiar with cdefgabc notes! sorry my updates have slowed down…i’ve started school again D:"}, {"post_id": 44249, "ts": "2026-08-09T21:35:38Z", "hours": 2.4667, "text": "Carrot cutting animation + hooked to nanoKEY2!! Art / animations I used Aseprite to make the cutting board and the carrot graphics! I made each cut of the carrot a different image to make this work. Now there is a visible cutting animation for carrots! I timed position changes, rotations, and modulation using AnimationPlayer. Currently, the animation steps are triggered by a ui_accept input. I’ll change it to be musical chords that the player has to time perfectly as my next update. Hooked controls to nanoKEY2 I looked into how MIDI inputs are controlled by Godot, and it doesn’t natively detect MIDI inputs from the Input Map in Project Settings, so I had to create a script that detects MIDI input and maps it onto a default Godot input like ui_accept and ui_left etc! But now it’s working really well :DDDD Challenges It was incredibly time consuming to key frame each individual position but hopefully I can just reuse these frames now and just replace the textures because I left the names generic for modularity I didn’t understand how MIDI inputs worked and matching them to other native inputs in Godot so it was tough understanding how to do it (so many diff things like MIDI_MESSAGE_NOTE_OFF/ON that I had to learn) Next Steps I’m going to be adding the chords timing feature so that cutting is actually hard and not just a matter of ui_accept lol Stay tuned!"}, {"post_id": 39759, "ts": "2026-08-02T22:40:41Z", "hours": 0.9764, "text": "Added some basic game functionality! + recolored background You can select a pot or pan for each stovetop now Through a ton of pressed() signals and booleans we have made this happen Focus To pair this with my nanoKEY2, I’m starting game development with keyboard focus features early so that it isn’t a hassle to do later on! Recolored stuff I changed the colors of the background to make it even more approachable and friendly! I like this cool toned version… that last version looked a little eerie Future additions I will be adding: hooking nanoKEY2 to the actual game actual pot cooking mechanic pan cooking mechanic cutting vegetables mechanic (maybe I’ll start with a carrot first) a bunch of graphics to support those features Challenges Not many challenges this time but I keep forgetting to record my aseprite using lapse…I need to remember! Stay tuned!"}, {"post_id": 39116, "ts": "2026-08-01T20:30:00Z", "hours": 0.8281, "text": "Main background drawn! Aseprite I drew the main background for the game’s kitchen area with Aseprite! There’s a stove and cutting board so far. Future additions Soon, I’ll be adding the following: Stove cooking mechanic Cutting board mechanic So mainly I’ll be establishing gameplay with the nanoKEY2! Challenges faced Choosing the right color and vibe for this cozy game was pretty difficult, but I think I’m happy with the colors I have currently. I can change it anytime I want anyway! :D Stay tuned!"}]...
|
Title: Keytchen by @-Sophie- | Stardance
Devlogs: Title: Keytchen by @-Sophie- | Stardance
Devlogs:
Main background drawn! Aseprite I drew the main background for the game’s kitchen area with Aseprite! There’s a stove and cutting board so far. Future additions Soon, I’ll be adding the following: Stove cooking mechanic Cutting board mechanic So mainly I’ll be establishing gameplay with the nanoKEY2! Challenges faced Choosing the right color and vibe for this cozy game was pretty difficult, but I think I’m happy with the colors I have currently. I can change it anytime I want anyway! :D Stay tuned!
Added some basic game functionality! + recolored background You can select a pot or pan for each stovetop now Through a ton of pressed() signals and booleans we have made this happen Focus To pair this with my nanoKEY2, I’m starting game development with keyboard focus features early so that it isn’t a hassle to do later on! Recolored stuff I changed the colors of the background to make it even more approachable and friendly! I like this cool toned version… that last version looked a little eerie Future additions I will be adding: hooking nanoKEY2 to the actual game actual pot cooking mechanic pan cooking mechanic cutting vegetables mechanic (maybe I’ll start with a carrot first) a bunch of graphics to support those features Challenges Not many challenges this time but I keep forgetting to record my aseprite using lapse…I need to remember! Stay tuned!
Carrot cutting animation + hooked to nanoKEY2!! Art / animations I used Aseprite to make the cutting board and the carrot graphics! I made each cut of the carrot a different image to make this work. Now there is a visible cutting animation for carrots! I timed position changes, rotations, and modulation using AnimationPlayer. Currently, the animation steps are triggered by a ui_accept input. I’ll change it to be musical chords that the player has to time perfectly as my next update. Hooked controls to nanoKEY2 I looked into how MIDI inputs are controlled by Godot, and it doesn’t natively detect MIDI inputs from the Input Map in Project Settings, so I had to create a script that detects MIDI input and maps it onto a default Godot input like ui_accept and ui_left etc! But now it’s working really well :DDDD Challenges It was incredibly time consuming to key frame each individual position but hopefully I can just reuse these frames now and just replace the textures because I left the names generic for modularity I didn’t understand how MIDI inputs worked and matching them to other native inputs in Godot so it was tough understanding how to do it (so many diff things like MIDI_MESSAGE_NOTE_OFF/ON that I had to learn) Next Steps I’m going to be adding the chords timing feature so that cutting is actually hard and not just a matter of ui_accept lol Stay tuned!
Cutting mechanism almost done Notes autoload Now the player knows what notes to hit based on the note shown on screen! I’m going to add a note guide so that it’s also more obvious which note to hit if they’re not familiar with cdefgabc keys! Different vegetable settings Though there aren’t any graphics to match at the moment, there are different vegetables that call for different mini-games! I finished the carrot, zucchini, and potato mini-games. Music added I added some plain beat in the background that the player needs to match with the notes accordingly. It won’t work unless the player matches the beat well enough. Challenges It’s hard to match up the switch of the note; i’m still working on this. sometimes the note even though switches in game logic doesn’t show up and the game remembers the last note as the one to show on screen (u can actually see it in the vid) I had to learn a bit about rhythm and bpm in order to set my variables for next beat and secs per beat stuff like that correctly 😭 Next additions graphics for different veggies the note showing on screen will have flawless timing sfx for notes there will be a note guide added for players who aren’t familiar with cdefgabc notes! sorry my updates have slowed down…i’ve started school again D:
Keytchen - More visual feedback and debugging! Had to backtrack w/debugging I debugged the entire timing system of beats because the gameplay was just not fun, it was not registering beats sometimes and the visual beat feedback wouldn’t update when it was supposed to. I fixed this by separating the visual beat updating system with the input tracking of beats for gameplay and it worked out well 😭 Visual feedback Error for wrong timing red key Error for wrong key red key Key you’re supposed to press is highlighted green The beats pulse whenever a beat happens to help the player feel the beat in the game better Miscellaneous You can access the minigame through the main screen’s cutting board now! Challenges Debugging my beat system was so painful and a nightmare because my code was so messy and I confused myself with it. I solved this by commenting out all my code so now there’s no way I get confused LOL Future additions As you can tell, I still haven’t added the new potato / zucchini textures so i will have to do that :’). The next time you see a post it will have different textures not just a carrot i promise!! I’ll need to create some kind of inventory system so that the cut up vegetables can be stored somewhere so when the player wants to cook something using those ingredients they have it on hand and can add it to a pot or pan or something That’s all folks! see ya in the next update! ;D
Finally about to ship!! Title Screen Created a title screen + keyboard tutorial instructions so that players know what keys to press + their keyboard equivalents if they don’t have a nanoKEY2 Everything was drawn by me in Aseprite, except the nanoKEY2 base image was taken from the internet Digital experience More than a game, I’ve decided that this game should be more like an experimental digital experience. It features a cutting experience and just pan/pot placing/removing. It doesn’t feature a storyline, almost just like a little aimless simulator. Audio Added some pixel + lofi bg music and satisfying SFX! Keyboard compatibility Added keyboard compatibility Mapped keys 1, 2, 3, 4, 5, 6, 7, 8 with corresponding MIDI pitch values (like an intermediary value switch) using event.get_keycode (it’s really neat and the transfer over was p smooth) Added navigation buttons Way to go back to start screen or exit cutting vegetables mode Challenges Finding satisfying audio :’) It was just a lot of little content to add so it was just time consuming It took a bit of decision-making to decide whether to keep going with Keytchen (because honestly I could keep adding content forever) or move onto another project. I decided to move on because at this point I’ve hurdled over all the foreign technicalities that I’ve sought out to learn (the MIDI mapping and beat timing.) Any new additions would just be things I already know (but I want to actively learn more.) I hope to ship this very soon; I’m going to quickly playtest it one more time!
Cleaned game up for shipping! Export files added I exported this into an HTML file so that I could have players access it on their browser really easily! I also updated the godot loading screen and icon to be my own custom screens for more cohesiveness! Fixed minor bug There was a minor bug with the MIDI where it wasn’t escaping the cutting vegetables minigame, found the problem. It was only detecting the escape if it was pressed from the keyboard, not the MIDI. Art Drew assets for: Itch.io banner Stardance screenshot That’s pretty much it! yayy I’m so glad this has come to a wrap! I learned so much honestly from creating just this little digital experience. I hope you all enjoy exploring it as much as I enjoyed making it!
Ships:
Keytchen is a digital experience where you get to explore a kitchen using eccentric controls, whether on your NanoKEY2 (what this game is intended for) or just your computer keyboard (which works just as well!) This was just a fun project to work on because I wanted to created a game that went beyond the standard WASD/arrow key controls. Controls are in the title screen instructions preface thing. It’s hard to explain with words but I have a picture in-game that helps a TON. My Github README also features the nanoKEY2 map guide + keyboard equivalent inputs. Challenges: This was my first time working with MIDI inputs in Godot and also working with music/timing in Godot. I had to learn a bit about rhythm and BPM actually because of this project, and also scoured upon Godot docs about getting playback positions and whatnot, which made me realize that Godot’s way of timing music is actually very inaccurate and you need to put a lot of safeguards to make sure that you’re not getting a late/older version of your playback position. That it’s up to speed as much as possible. There was also a lot of decision-making that I had to do. I could’ve chosen to add more content to this game (I mean imagine the possibilities) but I’ve basically answered my question of what a game would be like if the controls weren’t just WASD/arrow keys, and I’ve basically learned what I sought out to learn (MIDI input mapping and rhythm game mechanics) with this project. More content would just be adding onto the principles I’ve learned rather than learning more, which made me realize that it’s probably better to move on and experiment with another project! Proud of: I’m just proud that my beats are on time and that it’s not rage-quit inducing. I’m also proud of the assets I drew in this game because I drew everything and I’m glad it turned out pretty pleasing to look at. Also proud of my sfx + audio choices; I feel like they fit really well and just make everything feel so much more complete....
|
1793004541.8979394
|
1793090941.8979394
|
|
37596
|
Number Guessing Neural Network by @crazydave | Sta Number Guessing Neural Network by @crazydave | Stardance...
|
|
1
|
15.0
|
265
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T12:33:54Z", "hours": 15.0, "multiplier": 17.3, "payout": 265, "blessing": "neutral", "text": "I made an evolutionary neural network from scratch which plays a number guessing game where it has to try and guess a random number between 1 and 1000 in as little attempts as possible, and it learnt a rough version of binary search from scratch, which I think is super cool! The most challenging part of this project was determining a fitness function which best allowed the model to learn what I wanted it to learn, and many iterations of the fitness function would lead to the model making safe guesses, repeating guesses, or getting stuck in loops. I also added command line arguments to the code so that people can use it in their terminal without editing the python file. To test it, follow the install instructions on the README, you can either download the python code and run that, or download the compiled versions in the releases page on Github.", "repo": "https://github.com/rufus-gh/number-guesser-ml", "demo": "https://github.com/rufus-gh/number-guesser-ml/releases"}]...
|
[{"post_id": 39946, "ts": "202 [{"post_id": 39946, "ts": "2026-08-03T08:46:23Z", "hours": 2.37, "text": "I tried to make a website that people could view this on but I couldn’t figure out how to do it without fully rewriting the neural net in javascript, which will take a very long time (maybe I will do this in a future ship), so instead I made a file called interactive.py which lets people test out the model’s number guessing skills. I also simplified the fitness function a lot as much of the old fitness function was redundant due to previous changes that I made, and it now simply returns -self.guesses. I also made compiled versions of it for windows, Mac, and linux, so that people without python installed can try it out, it’s on the GitHub releases page. Also the pull requests look super sus with thousands of lines of code change but it is because I store the best model in a .pkl which was being changed as I worked on it so makes loads of changes to the commit :("}, {"post_id": 32952, "ts": "2026-07-22T13:16:27Z", "hours": 3.7592, "text": "I decided to implement the change where the model outputs a number between 0 and 1 to represent somewhere within the high/low range of numbers it can currently guess between, and also added a new input to the neural network telling it the number of guesses so far. Both of these changes drastically improved the model and now it averages around 9 guesses to find the number, which is an amazing result. I only got to this after playing around with trying to change the fitness function again to not much success, but I am glad this idea worked. Next time I work on it I will add a user interface on an online website with the final trained model so people can try it out."}, {"post_id": 32761, "ts": "2026-07-22T03:54:17Z", "hours": 5.2847, "text": "After training it overnight it was able to solve the game in an average of 35 attempts, however as I cut it off after 50 I reckon the actual attempts would be much higher. Due to this lack of performance, I have decided to try and improve the fitness function so that it trains more effectively. I spent many hours trying to modify the fitness function and test it hoping that it would lead to a better solve rate but so far I am without success. It would keep repeatedly guessing the same number so I added a penalty if it guesses the same number as the round before. It would then alternate between guessing two numbers, so I tried to increase the reward if it got a correct solve. After those changes and a few other experiments, I was still unable to get it to train properly and seems to still perform poorly with the new fitness function after 1000 generations of training. The graph below shows the fitness of the best model per generation, and you can see quick initial improvement before it stagnates for the rest of the training time. I am considering changing the output from being a number between 1 and 1000 to being a number within the high/low range, where 0 represents the current low and 1 represents the current high, and hopefully after training it would learn to guess around 0.5 each time. Another strategy I could implement would be to give the network more information, such as guesses from even more rounds, round number, or width of the search interval and maybe increase the number of hidden layers and/or neurons in those hidden layers."}, {"post_id": 32432, "ts": "2026-07-21T16:39:50Z", "hours": 3.8986, "text": "I am trying to make an evolutionary neural network which plays a number guessing game where it has to try and guess a random number between 1 and 1000 in as little attempts as possible, and I am hoping that it will learn binary search from scratch, which would be cool. The first version that I made had a very low solve rate as I hadn’t done the fitness function very well, but this version I have changed the fitness function and a 50 generation quick run was showing good results, so I am going to run it with 10000 generations and then go to sleep, and hopefully when I wake up it will be done fingers crossed. Let me know if you have any other interesting number games/number related things I could try and train it to do, any ideas are welcome!"}]...
|
Title: Number Guessing Neural Network by @crazydav Title: Number Guessing Neural Network by @crazydave | Stardance
Devlogs:
I am trying to make an evolutionary neural network which plays a number guessing game where it has to try and guess a random number between 1 and 1000 in as little attempts as possible, and I am hoping that it will learn binary search from scratch, which would be cool. The first version that I made had a very low solve rate as I hadn’t done the fitness function very well, but this version I have changed the fitness function and a 50 generation quick run was showing good results, so I am going to run it with 10000 generations and then go to sleep, and hopefully when I wake up it will be done fingers crossed. Let me know if you have any other interesting number games/number related things I could try and train it to do, any ideas are welcome!
After training it overnight it was able to solve the game in an average of 35 attempts, however as I cut it off after 50 I reckon the actual attempts would be much higher. Due to this lack of performance, I have decided to try and improve the fitness function so that it trains more effectively. I spent many hours trying to modify the fitness function and test it hoping that it would lead to a better solve rate but so far I am without success. It would keep repeatedly guessing the same number so I added a penalty if it guesses the same number as the round before. It would then alternate between guessing two numbers, so I tried to increase the reward if it got a correct solve. After those changes and a few other experiments, I was still unable to get it to train properly and seems to still perform poorly with the new fitness function after 1000 generations of training. The graph below shows the fitness of the best model per generation, and you can see quick initial improvement before it stagnates for the rest of the training time. I am considering changing the output from being a number between 1 and 1000 to being a number within the high/low range, where 0 represents the current low and 1 represents the current high, and hopefully after training it would learn to guess around 0.5 each time. Another strategy I could implement would be to give the network more information, such as guesses from even more rounds, round number, or width of the search interval and maybe increase the number of hidden layers and/or neurons in those hidden layers.
I decided to implement the change where the model outputs a number between 0 and 1 to represent somewhere within the high/low range of numbers it can currently guess between, and also added a new input to the neural network telling it the number of guesses so far. Both of these changes drastically improved the model and now it averages around 9 guesses to find the number, which is an amazing result. I only got to this after playing around with trying to change the fitness function again to not much success, but I am glad this idea worked. Next time I work on it I will add a user interface on an online website with the final trained model so people can try it out.
I tried to make a website that people could view this on but I couldn’t figure out how to do it without fully rewriting the neural net in javascript, which will take a very long time (maybe I will do this in a future ship), so instead I made a file called interactive.py which lets people test out the model’s number guessing skills. I also simplified the fitness function a lot as much of the old fitness function was redundant due to previous changes that I made, and it now simply returns -self.guesses. I also made compiled versions of it for windows, Mac, and linux, so that people without python installed can try it out, it’s on the GitHub releases page. Also the pull requests look super sus with thousands of lines of code change but it is because I store the best model in a .pkl which was being changed as I worked on it so makes loads of changes to the commit :(
Ships:
I made an evolutionary neural network from scratch which plays a number guessing game where it has to try and guess a random number between 1 and 1000 in as little attempts as possible, and it learnt a rough version of binary search from scratch, which I think is super cool! The most challenging part of this project was determining a fitness function which best allowed the model to learn what I wanted it to learn, and many iterations of the fitness function would lead to the model making safe guesses, repeating guesses, or getting stuck in loops. I also added command line arguments to the code so that people can use it in their terminal without editing the python file. To test it, follow the install instructions on the README, you can either download the python code and run that, or download the compiled versions in the releases page on Github....
|
1793008363.219557
|
1793094763.219557
|
|
2972
|
Image to ASCII by @eli | Stardance
|
eli
|
1
|
16.0
|
264
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-14T17:48:46Z", "hours": 16.0, "multiplier": 17.82, "payout": 264, "blessing": "neutral", "text": "I made Ghostchar, a desktop app that lets you join any video call with a ASCII filter! It was my first dive into ML but it was so worth it!", "repo": "https://github.com/Papaya-Voldemort/GhostChar", "demo": "https://ghostchar.elinelson.dev/demo"}]...
|
[{"post_id": 28431, "ts": "202 [{"post_id": 28431, "ts": "2026-07-14T17:47:13Z", "hours": 0.2933, "text": "Hey everyone I shipping this for the first time! I might go back and ship again for the other OSes but for now I can finally take a little break! Thank you guys so much for the support. And please enjoy Ghostchar!"}, {"post_id": 25385, "ts": "2026-07-09T17:22:58Z", "hours": 2.2831, "text": "Sorry its been a REALLY long time, I just got back from a national business competition and have this weird burnout but I am finally back for the finishing touches! I made the desktop app and with AI a quick web page to download it (also github release as well!). I am going to ship very soon so I can get an apple dev license and sign it! Technically the app is not quite what I wanted, I used Python instead of rust of an easier GUI and just hooked off of the OBS virtual camera. It still runs pretty quick and was fine for my needs! Thank you guys for the incredible support, and enjoy joining video cams with an ASCII filter!"}, {"post_id": 5951, "ts": "2026-06-09T23:18:10Z", "hours": 4.3983, "text": "Sorry for the delay! Had quite a few issues along the way! Getting the model running in the browser was quite a issue but I ended up making it work with the web run time for onnx! The model is still quite slow but its fast enough for the time being. I will add some fun conversion tools soon but for now go ahead and try out the site here PS: Added basic full color support!"}, {"post_id": 3637, "ts": "2026-06-06T17:36:55Z", "hours": 1.2708, "text": "Updated the repo with better folder structure for future expansion. Currently the model itself is finished and does not need improvement. Now I am building a nice front end so you can convert images and videos to ASCII, test a live web cam demo, and download the desktop app. Speaking of the desktop app (Name idea: GhostChar) it will be a camera filter that converts you live into ASCII to protect your identity while still showing enough to get things done. The app will be a GUI built with Rust running the ONNX model for FPS. PS: I am adding color themes to the app!"}, {"post_id": 3209, "ts": "2026-06-06T01:15:06Z", "hours": 3.1256, "text": "I worked a LOT today! Ran into a few issues with not committing my models so I lost good ones :( But I eventually thought to do a second round of training on real images not just synthetic data and that made the model a LOT better. Still room for improvement like full color, more data, longer training, etc. But the model is getting really good and I will build a web UI soon!"}, {"post_id": 2344, "ts": "2026-06-04T19:46:36Z", "hours": 1.9886, "text": "So I started working on the actual program behind this, its a CNN vision model designed to take real time camera feed and turn it into ASCII art! Its soo cool!"}, {"post_id": 1050, "ts": "2026-06-02T21:06:26Z", "hours": 2.1131, "text": "Spent quite some time learning more about AI! Finally graduated from sklearn into full TensorFlow which has been really fun! I have built a few small neural networks and those are awesome!"}, {"post_id": 473, "ts": "2026-06-01T22:39:08Z", "hours": 0.4553, "text": "Finished Unit 1! I learned about splitting your data so you can grade/test the model later, and advanced testing methods like using a matrix to see where the model might have messed up!"}, {"post_id": 459, "ts": "2026-06-01T22:08:43Z", "hours": 0.3069, "text": "Completed my first lesson on ML! I learned about LogisticRegression models and the amazing library called: sklearn!"}]...
|
Title: Image to ASCII by @eli | Stardance
Devlogs Title: Image to ASCII by @eli | Stardance
Devlogs:
Completed my first lesson on ML! I learned about LogisticRegression models and the amazing library called: sklearn!
Finished Unit 1! I learned about splitting your data so you can grade/test the model later, and advanced testing methods like using a matrix to see where the model might have messed up!
Spent quite some time learning more about AI! Finally graduated from sklearn into full TensorFlow which has been really fun! I have built a few small neural networks and those are awesome!
So I started working on the actual program behind this, its a CNN vision model designed to take real time camera feed and turn it into ASCII art! Its soo cool!
I worked a LOT today! Ran into a few issues with not committing my models so I lost good ones :( But I eventually thought to do a second round of training on real images not just synthetic data and that made the model a LOT better. Still room for improvement like full color, more data, longer training, etc. But the model is getting really good and I will build a web UI soon!
Updated the repo with better folder structure for future expansion. Currently the model itself is finished and does not need improvement. Now I am building a nice front end so you can convert images and videos to ASCII, test a live web cam demo, and download the desktop app. Speaking of the desktop app (Name idea: GhostChar) it will be a camera filter that converts you live into ASCII to protect your identity while still showing enough to get things done. The app will be a GUI built with Rust running the ONNX model for FPS. PS: I am adding color themes to the app!
Sorry for the delay! Had quite a few issues along the way! Getting the model running in the browser was quite a issue but I ended up making it work with the web run time for onnx! The model is still quite slow but its fast enough for the time being. I will add some fun conversion tools soon but for now go ahead and try out the site here PS: Added basic full color support!
Sorry its been a REALLY long time, I just got back from a national business competition and have this weird burnout but I am finally back for the finishing touches! I made the desktop app and with AI a quick web page to download it (also github release as well!). I am going to ship very soon so I can get an apple dev license and sign it! Technically the app is not quite what I wanted, I used Python instead of rust of an easier GUI and just hooked off of the OBS virtual camera. It still runs pretty quick and was fine for my needs! Thank you guys for the incredible support, and enjoy joining video cams with an ASCII filter!
Hey everyone I shipping this for the first time! I might go back and ship again for the other OSes but for now I can finally take a little break! Thank you guys so much for the support. And please enjoy Ghostchar!
Ships:
I made Ghostchar, a desktop app that lets you join any video call with a ASCII filter! It was my first dive into ML but it was so worth it!...
|
1792993808.6293883
|
1793080208.6293883
|
|
43041
|
My own site! by @Lumethra | Stardance
|
Lumethra
|
1
|
15.0
|
264
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T12:10:38Z", "hours": 15.0, "multiplier": 17.76, "payout": 264, "blessing": "neutral", "text": "I made a very own personal website with NextJS. I oriented myself on my kitty (terminal app on linux) config and tried to do everything quite similar. It turned out pretty well. I also made a typewriter effect with async and timeout n stuff. This whole project made me learn more about NextJS and got some js functions into my head, such as new Promise, .map, Also some NextJS function, like newRef and similar. Overall it was very fun to not code with AI at all and it was also very helpful for my understanding of this language. Have fun with it :D", "repo": "https://github.com/Lumethra/personal-site", "demo": "https://lumethra-personal-site.vercel.app/"}]...
|
[{"post_id": 45716, "ts": "202 [{"post_id": 45716, "ts": "2026-08-12T11:57:39Z", "hours": 1.1606, "text": "readme typed a readme word by word, I think it explains everything pretty well."}, {"post_id": 44576, "ts": "2026-08-10T12:59:40Z", "hours": 1.2886, "text": "Improved the welcome screen to be more noticeable and fancier. It was quite a struggle and I tried alot of stuff. First my idea was to translate (move) it to the middle then zoom up and then do the same backwards, but uhh, CSS didnt like my idea and refused to work. Then I wanted to do the whole thing with scale. This worked a bit better, but not optimal. At the end I decided on just move it to the middle with some tinted blur and let it typewrite and then just clear. The most boring solution ever, but hey, here we are. I think we can get it to smooth move back down, but thats a problem for later me. Edit: Ahh and CSS animations doesnt like me anymore, CSS overall is still okay, but I now hate to animate stuff in general, it is just AHHH annoying and confusing and I also played around a lille bit (the button that got commented)"}, {"post_id": 44008, "ts": "2026-08-09T14:35:32Z", "hours": 0.4103, "text": "not did much today, just added 2 commands, one linking my github and one my slack, the other command is just featuring github, that took longer, because I needed to write a whole paragraph, but uhh, todays mission was to keep the streak alive, soooo, ya"}, {"post_id": 43356, "ts": "2026-08-08T15:44:13Z", "hours": 1.6747, "text": "adding a welcome I tried to add a welcome today, cause without it, my website felt strange, we always need an ASCII-art welcome screen thingi. In my terminal (pc) it is sth showing my stats and pokimons, and I needed sth like that for my website too. First I used this to generate a nice welcome ASCII-art and then saved it inside a JSON just like orphie. Then I added a specific command for it returning Welcome and implemented some handling in the constructOutput() function. After it was working with ASCIITextFrame being .join, just like any other json thingi, I wanted to have a typewriter effect and I just wrapped it inside. At first it went quite well, but then I realized, that white spaces takes time to being typed out too and tried to modify my typewriter function to just simply skip the timeout for it, it was quite confusing, but I managed to make it async and create a delay using await. There was a problem though, I didnt want to delete my old function, soo I created a try catch block to keep it as backup. After doing all that I realized I could break each line apart and typewrite then simultaneously. I wrapped another .map inside a .map and wrapped the lines in a span and then joined the construction with a line break. This went perfectly, but now I need to do animateWelcome() differently. I decided on querySelectorAll and a forEach loop. Figuring out how to get the spans where uhh, alot of guessing. At some point I even wanted to give the spans inside the .welcome container a class, but then I found out how it functioned. Using for each was also fun, I wasnt quite sure about the syntax, but google helped very quickly. But because of the white space skipping, they werent all in sync, because the number of white space isnt the same. The effect created was beautiful though and I left it. While writing this devlog I also modified the typewriter function a lille so I can choose if I skip white space or not. Anyways, enough yap, bye."}, {"post_id": 42124, "ts": "2026-08-06T18:28:38Z", "hours": 0.6953, "text": "AUTOSCROLLING what the heck firefox, why, WHY, just simply WHY. okay, okay, i know that the scroll thingi should have been strapped to the body tag, but ey, I copied it from Leons terminal (mine is obviously better /j). But there is absolutely no reason you return 0 every time. AND WHY did you return a specific value, I think it was 3218 when I set ur height to 0? This doesnt make any sense at all. This was the weirdest bug in this entire project. My solution didnt work at first, but then it worked, but then it did not again and then I quitted and came back and then it worked again?? Like wth. I hope it stays now intact and I dont wanna debug that ever again, holy stressful 1 and an half hour. Edit: ahh and I also filled the skills output command and added the interests command, both not placeholders anymore"}, {"post_id": 42000, "ts": "2026-08-06T15:21:34Z", "hours": 1.01, "text": "MORE ORPHIE!!!!! I added the other 2 animations, the time was mainly spend formatting the JSON and matching the height of every animation, so that the lowest bar doesnt jump, ya, thats about it, it was very exhausting, the sleep animation should have been longer, but I’ve cut corners. Enjoy this easteregg"}, {"post_id": 41950, "ts": "2026-08-06T14:07:24Z", "hours": 1.9133, "text": "Today was a very productive day, I implemented the arrow up and arrow down for history, added the age counter (idea yoinked from @Leon ), but I made it cleaner, because his version had leap year handing and mine just simply use milliseconds to be accurate, only one line, instead of a whole function, I think this is progress, even faster now. I animated the age counter, but just before writing this devlog, i realized that it wont work that well and improved it. However the best thing was orphie. @Leon gave me some gifs and I first extracted them into individual frames and HOLY, Leon, what did u do in orphie sleep, 40 FRAMES!! DO U WANT TO KILL ME?? Anyway, I chose the one with the least frames and converted it into ASCII-art using this . Then I slapped the 2 frames into a JSON file and put every line in “”, and then joined them back together in the code. It was quite fun to animate him, go check it out by typing orphie https://lumethra-personal-site.vercel.app/"}, {"post_id": 41312, "ts": "2026-08-05T13:42:34Z", "hours": 0.6714, "text": "The idea was already very clear in the beginning. After executing every command, save it to local storage in a JSON. First I played around with local storage and after I understood how it worked I started with the task. But I ran into a major problem. Local storage only accepts strings, so it is kinda impossible to store the history in JSON / array. I first tried to slice the strings where the separator was, but this solution wasnt elegant and will cause problems when I wanna implement the arrow up to the last used command, simply just the command history thing from kitty terminal. After wasting some time on the separator solution, I came back to JSON and after looking through what I did in other projects, I realized that there is a build in function to turn a JSON into a string and back, called JSON stringify, it used to be my favorite build in function, because it is sooooooo handy. After this thing was solved, it was time to implement clear history and clear. clear history was easy, its just simply delete the local storage entry and I solved it with an if statement, ik its not great, cause hardcode n stuff, but who care, not my problem currently, future Maximilian problem. The clear command was something else. My final approach was to simply clear the history container with .innerHTML = “” and run it as a function. Enough yap, bye"}, {"post_id": 40838, "ts": "2026-08-04T16:55:29Z", "hours": 0.9483, "text": "well, ima need to write this again ig, stardance had a bad gateway. I added a typewriter effect. First I tried to do it with only CSS, but then I found out that uhh, it doesnt work on <input></input> , what a bummer. Well, then I tried to make it with a function and a fancy for loop, well no, I first tried with a forEach, but it somehow didnt worked, it said, that there is no forEach function. Then I tried with a for loop. I also found out that JS/TS are async programming languages. The for loop simply doesnt care if the setTimeout finished or not . So I needed to find another approach so the typewriters (when I call the func multiple times) dont interfere. The only reasonable solution I found was using an async function and await. Await also cause some serious problems, cause it just didnt wanted to work. VS Code then suggested me to return a new promise . IT WORKED. Ahh, and the CSS approach was from here . To any vibecoder out there: Try coding without AI once, its fun, but I need to admit, its also slow, but its fun and that is what counts right, right?"}, {"post_id": 40777, "ts": "2026-08-04T15:01:39Z", "hours": 0.8569, "text": "today I added a artificial delay, so the terminal feels more natural. I also added an indicator (the one with the X in the image) which toook waaaaaay too long. It was very hard to get it to show the X or tick corresponding to the response, because I tried to do it with ifs, so I needed to match every case, but then I realized, that I can use the bool ? true : false method, which made it alot easier. I also struggled to bring it to the right, because I tried to use flex and justify-content: space-between. Normally this will work very well, but I had more than 2 divs, or in my case spans inside the container, so it stretched the whole thing out and that wasnt great. In the end I decided to hard code that with position absolute and right 20px (body has 20px padding). Another funny error was the inline style. In NextJS u handle style like this <span style={{ position: \"absolute\", right: \"20px\" }}> , but u need to change to normal html when using the .innerHTML function, so <span style=\"position: absolute, right: 20px\"> . This confused me quite a while. But ya, here we are."}, {"post_id": 40040, "ts": "2026-08-03T12:01:40Z", "hours": 2.4117, "text": "I implemented the command functionality. It is great to actually code again. I have mixed feelings about NextJS. On the one hand, I love how it simplifies things, for example with .find or useRef (Stackoverflow my goat for finding them, but WHAT THE HECK IS TYPE DEFINITION, I WILL GIVE IT TYPE ANY ANYWAYS. The “JS injection” from JSON is also a lille bit janky, but we luve JSON, JSON is great. I also rewrote some things to let it be smaller, (u can see it, the big comment block). The if in a const is also GREAT, how do so less ppl use it. Next step: adding command history, easter eggs, fancy tui stuff and some more stuff"}, {"post_id": 39515, "ts": "2026-08-02T14:53:33Z", "hours": 1.8289, "text": "I started my proj and tried to recreate my terminal setup (2nd image, not the green one). I also decided on trying out NextJS legit this time, sooo uhh progress is a lille small, but its coming together. I also decided on this greenish style. I also implemented an auto focusing input (stole from some random stackoverflow xD). Ya, thats about it, the cleaning up of the files after creating took very long, ahh and the JetBrainsMono Nerd Font was also quite a hassle (it was just the “” missing lol)."}]...
|
Title: My own site! by @Lumethra | Stardance
Devl Title: My own site! by @Lumethra | Stardance
Devlogs:
I started my proj and tried to recreate my terminal setup (2nd image, not the green one). I also decided on trying out NextJS legit this time, sooo uhh progress is a lille small, but its coming together. I also decided on this greenish style. I also implemented an auto focusing input (stole from some random stackoverflow xD). Ya, thats about it, the cleaning up of the files after creating took very long, ahh and the JetBrainsMono Nerd Font was also quite a hassle (it was just the “” missing lol).
I implemented the command functionality. It is great to actually code again. I have mixed feelings about NextJS. On the one hand, I love how it simplifies things, for example with .find or useRef (Stackoverflow my goat for finding them, but WHAT THE HECK IS TYPE DEFINITION, I WILL GIVE IT TYPE ANY ANYWAYS. The “JS injection” from JSON is also a lille bit janky, but we luve JSON, JSON is great. I also rewrote some things to let it be smaller, (u can see it, the big comment block). The if in a const is also GREAT, how do so less ppl use it. Next step: adding command history, easter eggs, fancy tui stuff and some more stuff
today I added a artificial delay, so the terminal feels more natural. I also added an indicator (the one with the X in the image) which toook waaaaaay too long. It was very hard to get it to show the X or tick corresponding to the response, because I tried to do it with ifs, so I needed to match every case, but then I realized, that I can use the bool ? true : false method, which made it alot easier. I also struggled to bring it to the right, because I tried to use flex and justify-content: space-between. Normally this will work very well, but I had more than 2 divs, or in my case spans inside the container, so it stretched the whole thing out and that wasnt great. In the end I decided to hard code that with position absolute and right 20px (body has 20px padding). Another funny error was the inline style. In NextJS u handle style like this <span style={{ position: "absolute", right: "20px" }}> , but u need to change to normal html when using the .innerHTML function, so <span style="position: absolute, right: 20px"> . This confused me quite a while. But ya, here we are.
well, ima need to write this again ig, stardance had a bad gateway. I added a typewriter effect. First I tried to do it with only CSS, but then I found out that uhh, it doesnt work on <input></input> , what a bummer. Well, then I tried to make it with a function and a fancy for loop, well no, I first tried with a forEach, but it somehow didnt worked, it said, that there is no forEach function. Then I tried with a for loop. I also found out that JS/TS are async programming languages. The for loop simply doesnt care if the setTimeout finished or not . So I needed to find another approach so the typewriters (when I call the func multiple times) dont interfere. The only reasonable solution I found was using an async function and await. Await also cause some serious problems, cause it just didnt wanted to work. VS Code then suggested me to return a new promise . IT WORKED. Ahh, and the CSS approach was from here . To any vibecoder out there: Try coding without AI once, its fun, but I need to admit, its also slow, but its fun and that is what counts right, right?
The idea was already very clear in the beginning. After executing every command, save it to local storage in a JSON. First I played around with local storage and after I understood how it worked I started with the task. But I ran into a major problem. Local storage only accepts strings, so it is kinda impossible to store the history in JSON / array. I first tried to slice the strings where the separator was, but this solution wasnt elegant and will cause problems when I wanna implement the arrow up to the last used command, simply just the command history thing from kitty terminal. After wasting some time on the separator solution, I came back to JSON and after looking through what I did in other projects, I realized that there is a build in function to turn a JSON into a string and back, called JSON stringify, it used to be my favorite build in function, because it is sooooooo handy. After this thing was solved, it was time to implement clear history and clear. clear history was easy, its just simply delete the local storage entry and I solved it with an if statement, ik its not great, cause hardcode n stuff, but who care, not my problem currently, future Maximilian problem. The clear command was something else. My final approach was to simply clear the history container with .innerHTML = “” and run it as a function. Enough yap, bye
Today was a very productive day, I implemented the arrow up and arrow down for history, added the age counter (idea yoinked from @Leon ), but I made it cleaner, because his version had leap year handing and mine just simply use milliseconds to be accurate, only one line, instead of a whole function, I think this is progress, even faster now. I animated the age counter, but just before writing this devlog, i realized that it wont work that well and improved it. However the best thing was orphie. @Leon gave me some gifs and I first extracted them into individual frames and HOLY, Leon, what did u do in orphie sleep, 40 FRAMES!! DO U WANT TO KILL ME?? Anyway, I chose the one with the least frames and converted it into ASCII-art using this . Then I slapped the 2 frames into a JSON file and put every line in “”, and then joined them back together in the code. It was quite fun to animate him, go check it out by typing orphie https://lumethra-personal-site.vercel.app/
MORE ORPHIE!!!!! I added the other 2 animations, the time was mainly spend formatting the JSON and matching the height of every animation, so that the lowest bar doesnt jump, ya, thats about it, it was very exhausting, the sleep animation should have been longer, but I’ve cut corners. Enjoy this easteregg
AUTOSCROLLING what the heck firefox, why, WHY, just simply WHY. okay, okay, i know that the scroll thingi should have been strapped to the body tag, but ey, I copied it from Leons terminal (mine is obviously better /j). But there is absolutely no reason you return 0 every time. AND WHY did you return a specific value, I think it was 3218 when I set ur height to 0? This doesnt make any sense at all. This was the weirdest bug in this entire project. My solution didnt work at first, but then it worked, but then it did not again and then I quitted and came back and then it worked again?? Like wth. I hope it stays now intact and I dont wanna debug that ever again, holy stressful 1 and an half hour. Edit: ahh and I also filled the skills output command and added the interests command, both not placeholders anymore
adding a welcome I tried to add a welcome today, cause without it, my website felt strange, we always need an ASCII-art welcome screen thingi. In my terminal (pc) it is sth showing my stats and pokimons, and I needed sth like that for my website too. First I used this to generate a nice welcome ASCII-art and then saved it inside a JSON just like orphie. Then I added a specific command for it returning Welcome and implemented some handling in the constructOutput() function. After it was working with ASCIITextFrame being .join, just like any other json thingi, I wanted to have a typewriter effect and I just wrapped it inside. At first it went quite well, but then I realized, that white spaces takes time to being typed out too and tried to modify my typewriter function to just simply skip the timeout for it, it was quite confusing, but I managed to make it async and create a delay using await. There was a problem though, I didnt want to delete my old function, soo I created a try catch block to keep it as backup. After doing all that I realized I could break each line apart and typewrite then simultaneously. I wrapped another .map inside a .map and wrapped the lines in a span and then joined the construction with a line break. This went perfectly, but now I need to do animateWelcome() differently. I decided on querySelectorAll and a forEach loop. Figuring out how to get the spans where uhh, alot of guessing. At some point I even wanted to give the spans inside the .welcome container a class, but then I found out how it functioned. Using for each was also fun, I wasnt quite sure about the syntax, but google helped very quickly. But because of the white space skipping, they werent all in sync, because the number of white space isnt the same. The effect created was beautiful though and I left it. While writing this devlog I also modified the typewriter function a lille so I can choose if I skip white space or not. Anyways, enough yap, bye.
not did much today, just added 2 commands, one linking my github and one my slack, the other command is just featuring github, that took longer, because I needed to write a whole paragraph, but uhh, todays mission was to keep the streak alive, soooo, ya
Improved the welcome screen to be more noticeable and fancier. It was quite a struggle and I tried alot of stuff. First my idea was to translate (move) it to the middle then zoom up and then do the same backwards, but uhh, CSS didnt like my idea and refused to work. Then I wanted to do the whole thing with scale. This worked a bit better, but not optimal. At the end I decided on just move it to the middle with some tinted blur and let it typewrite and then just clear. The most boring solution ever, but hey, here we are. I think we can get it to smooth move back down, but thats a problem for later me. Edit: Ahh and CSS animations doesnt like me anymore, CSS overall is still okay, but I now hate to animate stuff in general, it is just AHHH annoying and confusing and I also played around a lille bit (the button that got commented)
readme typed a readme word by word, I think it explains everything pretty well.
Ships:
I made a very own personal website with NextJS. I oriented myself on my kitty (terminal app on linux) config and tried to do everything quite similar. It turned out pretty well. I also made a typewriter effect with async and timeout n stuff. This whole project made me learn more about NextJS and got some js functions into my head, such as new Promise, .map, Also some NextJS function, like newRef and similar. Overall it was very fun to not code with AI at all and it was also very helpful for my understanding of this language. Have fun with it :D...
|
1792997641.8780346
|
1793084041.8780346
|
|
44109
|
Cozy Farm by @Irtaza | Stardance
|
Irtaza
|
1
|
18.0
|
264
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T14:13:05Z", "hours": 18.0, "multiplier": 14.58, "payout": 264, "blessing": "neutral", "text": "I made a cozy farming simulation game! Raise chickens, collect eggs, and sell them for money! And repeat. You can also hire workers to collect eggs for you! And expand your farm using the money you make!", "repo": "https://github.com/Irtaza2009/Cozy-Farm", "demo": "https://irtaza.itch.io/cozy-farm"}]...
|
[{"post_id": 71217, "ts": "202 [{"post_id": 71217, "ts": "2026-09-20T13:57:58Z", "hours": 0.3767, "text": "Decided to finally ship the game! And updated the itch.io page! Also manually updated the index.html build file produced by Unity to remove the footer and make the fullscreen button an overlay. BTW, the game looks best in full screen, so try it in full screen when playing it!"}, {"post_id": 65797, "ts": "2026-09-11T05:29:35Z", "hours": 2.1333, "text": "I added bridges between islands! I also tried to play around with colliders and physics shapes in the Unity Sprite Editor, and I tried to automate the boundary colliders of a tilemap, but it didn’t work. I guess I will have to manually place objects around the islands to make a boundary… Also, I have disabled boat movement for now. I am thinking of just adding bridges between the islands…"}, {"post_id": 61567, "ts": "2026-09-04T15:25:33Z", "hours": 1.4067, "text": "I added a player which you can control to move around the island. And made a boat controller and manager, and now you can board, and control the boat and sail! Also a text pops up when you go near the boat, telling the player to press enter to board ship."}, {"post_id": 60242, "ts": "2026-09-02T14:19:04Z", "hours": 1.6783, "text": "Created a new home island! Also added some objects like rocks and weeds in the water, and improved the water animations. And added an animated docked boat! I am planning for this to be the main scene of the game, and then you use the boat to get to the chicken farm and other farms that I might add in the future. Will add sailing in the boat next!"}, {"post_id": 58816, "ts": "2026-08-31T12:17:59Z", "hours": 1.2, "text": "Added icons to the left menu for eggs, coins and chickens!! Also updated the shapes of the chicken, worker and hen house colliders, (so they aren’t exactly the size of the characters, but a bit smaller)"}, {"post_id": 57283, "ts": "2026-08-29T12:06:20Z", "hours": 3.5225, "text": "Made an auto controller for the worker rabbit. Now you can hire the worker, and it can auto-collect eggs. It detects and moves towards an egg (only up, down, left or right movement. No diagonal, as it didn’t look good), and collects it on collision. Also, when there is no egg nearby, it can randomly choose between wandering or idle behaviour/animations! Also revamped the shop UI to make space for the hire button, and changed the button sizes and layout."}, {"post_id": 44473, "ts": "2026-08-10T07:50:50Z", "hours": 3.1283, "text": "I added a worker (rabbit), with 4 idle animations and 4 move animations! It ignores collisions with chickens and eggs, and has a sorting layer script so it can appear behind or in front of other sprites correctly. Will make it move automatically in the next update so you don’t have to control it, and also make it auto-collect eggs."}, {"post_id": 42895, "ts": "2026-08-07T21:02:29Z", "hours": 2.9161, "text": "Added zoom functionality! Now you can zoom in or out using the scroll wheel or pinching. And added some islands spelling out “IRT” (just for fun!). Also made the tutorial only load on the player’s first time playing. I also found out that eggs weren’t spawning on the expanded island, so I fixed that by updating the boundaries I had hard-coded."}, {"post_id": 41163, "ts": "2026-08-05T06:11:23Z", "hours": 1.7208, "text": "Started working on making an interactive tutorial! Made 4 steps: it teaches the player how to collect eggs, open the shop, sell the eggs, and get more chickens."}]...
|
Title: Cozy Farm by @Irtaza | Stardance
Devlogs:
Title: Cozy Farm by @Irtaza | Stardance
Devlogs:
Started working on making an interactive tutorial! Made 4 steps: it teaches the player how to collect eggs, open the shop, sell the eggs, and get more chickens.
Added zoom functionality! Now you can zoom in or out using the scroll wheel or pinching. And added some islands spelling out “IRT” (just for fun!). Also made the tutorial only load on the player’s first time playing. I also found out that eggs weren’t spawning on the expanded island, so I fixed that by updating the boundaries I had hard-coded.
I added a worker (rabbit), with 4 idle animations and 4 move animations! It ignores collisions with chickens and eggs, and has a sorting layer script so it can appear behind or in front of other sprites correctly. Will make it move automatically in the next update so you don’t have to control it, and also make it auto-collect eggs.
Made an auto controller for the worker rabbit. Now you can hire the worker, and it can auto-collect eggs. It detects and moves towards an egg (only up, down, left or right movement. No diagonal, as it didn’t look good), and collects it on collision. Also, when there is no egg nearby, it can randomly choose between wandering or idle behaviour/animations! Also revamped the shop UI to make space for the hire button, and changed the button sizes and layout.
Added icons to the left menu for eggs, coins and chickens!! Also updated the shapes of the chicken, worker and hen house colliders, (so they aren’t exactly the size of the characters, but a bit smaller)
Created a new home island! Also added some objects like rocks and weeds in the water, and improved the water animations. And added an animated docked boat! I am planning for this to be the main scene of the game, and then you use the boat to get to the chicken farm and other farms that I might add in the future. Will add sailing in the boat next!
I added a player which you can control to move around the island. And made a boat controller and manager, and now you can board, and control the boat and sail! Also a text pops up when you go near the boat, telling the player to press enter to board ship.
I added bridges between islands! I also tried to play around with colliders and physics shapes in the Unity Sprite Editor, and I tried to automate the boundary colliders of a tilemap, but it didn’t work. I guess I will have to manually place objects around the islands to make a boundary… Also, I have disabled boat movement for now. I am thinking of just adding bridges between the islands…
Decided to finally ship the game! And updated the itch.io page! Also manually updated the index.html build file produced by Unity to remove the footer and make the fullscreen button an overlay. BTW, the game looks best in full screen, so try it in full screen when playing it!
Ships:
I made a cozy farming simulation game! Raise chickens, collect eggs, and sell them for money! And repeat. You can also hire workers to collect eggs for you! And expand your farm using the money you make!...
|
1793004653.1387322
|
1793091053.1387322
|
|
27064
|
Mission #0717 by @vandenelis | Stardance
|
vandenelis
|
1
|
22.0
|
263
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T13:01:46Z", "hours": 22.0, "multiplier": 12.13, "payout": 263, "blessing": "neutral", "text": "I made a small app for a one-day adventure. The project features 3 sections: Geoguessr (find the described place and do a challenge there), Color Catch (upload photos of items of certain colors and categories) and Photo Booth (recreate the given photo and upload you version). Originally, it was made as a gift for my partner (and in Lithuanian), but it’s possible to easily modify the system and personalise everything for other users. Every challenge contributes to a global progress bar. The initial idea is to use it for earning the big prize - in my case, TLT concert tickets :D. Since there is no actual virtual prize, the user is free to think of a personalised reward at any point of completion. This was a great way to not only brighten a friend’s day, but also learn how to use React Native and Expo Go. I strictly limited the amount of AI used for that natural “trial and error” process, so Claude Code was used only for minor debugging and certain reference points. The knowledge gained will let me further work on more ambitious app ideas I’ve had for ages! –What to know before trying for yourself– As of now, and, to be fair, probably forever, the production version is made only for Android 7.0+. You can install it in the Github repo Latest Release page. –Possible areas of improvement– If there would be actual users of the app, I could translate everything into English. Make a tutorial/info page. Create a “full-completion” celebrating pop-up.", "repo": "https://github.com/bulviakas/mission-0717", "demo": "https://github.com/bulviakas/mission-0717/releases/tag/v1.0.0"}]...
|
[{"post_id": 46005, "ts": "202 [{"post_id": 46005, "ts": "2026-08-12T21:12:24Z", "hours": 3.9936, "text": "READY TO SHIP!!! The occasion for this amazing app has already long passed and I’m happy to share that the gift was a total success ! ;D Now in between vacation and other side-quests, I’ve managed to tidy everything up enough to be able to share all this with the wider audience. The app itself has undergone minor tweaks - a title on the home page and a custom app icon . Took me quite a bit to figure out how the .apk packages work, though. I’m hoping that I managed to successfully create a signed copy of my creation and it is accessable for everybody in the repo Releases section. Lastly, the easiest, yet the most daunting part was writing the actual README. It might not be the most pleasant looking description in the world, but it’s mine and that’s what matters :) Now fingers crossed I did everything correctly for shipping…"}, {"post_id": 29370, "ts": "2026-07-16T08:43:55Z", "hours": 4.7308, "text": "ALL CHALLENGE SECTIONS DONE The long-dreaded film roll update turned out to be way easier than expected. I really wanted to maximise the Photo Booth experience, that’s why I made the photos show up on the roll after task completion. Now it actually looks like those photo strips in real life! This morning I also built the third section - Color Catch. The concept is to photograph certain objects of certain colours and complete the collection. That is why the rainbow section screen is the perfect way to go! I didn’t really want to overwhelm the adventure more by adding less frequent categories for hunting (like animals or clothing (find a purple animal xd)), so I simplified it to 6 photos from 4 categories (2 for nature and random). The photo upload logic is similar to the Photo challenges. To be fair, it was surprisingly satisfying rewriting the challenge types after it got messy. Instead of separate MapChallenge and PhotoChallenge elements, I put the shared logic into BaseChallenge and just extended that interface with section specific parameters. The only thing is have trouble fixing is the color challenge modal size. For some reason, everywhere except the Expo Go app on my phone, the photos are square ant the window wraps them beautifully. But on my mobile, the aspect ratio is off and there are a lot of free space for no apparent reason. I tried everything, but maybe this is one of those things, that fixes itself up after a short break :)"}, {"post_id": 28893, "ts": "2026-07-15T14:22:46Z", "hours": 8.3133, "text": "FIRST SECTION FINISHED!!! The “Goeguessr” section (where the challenges are to find the described place and complete a quest at it) is now complete. The only missing (though optional) part is the collection of stickers after completion of every task, however, for now I’m moving on to the other part of the adventure. Below there’s a screenshot of one of the final quest version. A for the Photo Booth , I’m super proud of the film roll design for the photo challenges. Nothing too complicated, just playing around with color-matching and margins :p Now I continue to work on creating the actual Booth challenges. The idea is to give an example drawing of a duo pose and the user has to replicate it and upload the photo to the app. Completed challenges display the taken picture on the film roll. So writing their logic is currently the first point on my To-do list."}, {"post_id": 27593, "ts": "2026-07-13T09:48:48Z", "hours": 4.6497, "text": "For these past few days, I’ve been getting familiar with Expo Go and React Native, since I’ve never done mobile or much web development before. Now about the project itself, I’m building a fun little temporary app as a gift for my partner - basically a guide for a whole-day date. The idea is that there are 3 sections: memorable spot searching, photographing specific colours to form a puzzle and replicating silly couple photography poses. For every challenge, the user collects custom design stickers (which are made irl too!) and with enough progress unlocks the big prize - tickets to a favourite concert! Now I’m focusing on building the “Geoguessr” quest. The main screen base is done, map challenge page layout is mostly done, I even managed to successfully implement task completion. Some design touch ups are still due and I actually need to write the challenges. But it’s a great start!"}]...
|
Title: Mission #0717 by @vandenelis | Stardance
D Title: Mission #0717 by @vandenelis | Stardance
Devlogs:
For these past few days, I’ve been getting familiar with Expo Go and React Native, since I’ve never done mobile or much web development before. Now about the project itself, I’m building a fun little temporary app as a gift for my partner - basically a guide for a whole-day date. The idea is that there are 3 sections: memorable spot searching, photographing specific colours to form a puzzle and replicating silly couple photography poses. For every challenge, the user collects custom design stickers (which are made irl too!) and with enough progress unlocks the big prize - tickets to a favourite concert! Now I’m focusing on building the “Geoguessr” quest. The main screen base is done, map challenge page layout is mostly done, I even managed to successfully implement task completion. Some design touch ups are still due and I actually need to write the challenges. But it’s a great start!
FIRST SECTION FINISHED!!! The “Goeguessr” section (where the challenges are to find the described place and complete a quest at it) is now complete. The only missing (though optional) part is the collection of stickers after completion of every task, however, for now I’m moving on to the other part of the adventure. Below there’s a screenshot of one of the final quest version. A for the Photo Booth , I’m super proud of the film roll design for the photo challenges. Nothing too complicated, just playing around with color-matching and margins :p Now I continue to work on creating the actual Booth challenges. The idea is to give an example drawing of a duo pose and the user has to replicate it and upload the photo to the app. Completed challenges display the taken picture on the film roll. So writing their logic is currently the first point on my To-do list.
ALL CHALLENGE SECTIONS DONE The long-dreaded film roll update turned out to be way easier than expected. I really wanted to maximise the Photo Booth experience, that’s why I made the photos show up on the roll after task completion. Now it actually looks like those photo strips in real life! This morning I also built the third section - Color Catch. The concept is to photograph certain objects of certain colours and complete the collection. That is why the rainbow section screen is the perfect way to go! I didn’t really want to overwhelm the adventure more by adding less frequent categories for hunting (like animals or clothing (find a purple animal xd)), so I simplified it to 6 photos from 4 categories (2 for nature and random). The photo upload logic is similar to the Photo challenges. To be fair, it was surprisingly satisfying rewriting the challenge types after it got messy. Instead of separate MapChallenge and PhotoChallenge elements, I put the shared logic into BaseChallenge and just extended that interface with section specific parameters. The only thing is have trouble fixing is the color challenge modal size. For some reason, everywhere except the Expo Go app on my phone, the photos are square ant the window wraps them beautifully. But on my mobile, the aspect ratio is off and there are a lot of free space for no apparent reason. I tried everything, but maybe this is one of those things, that fixes itself up after a short break :)
READY TO SHIP!!! The occasion for this amazing app has already long passed and I’m happy to share that the gift was a total success ! ;D Now in between vacation and other side-quests, I’ve managed to tidy everything up enough to be able to share all this with the wider audience. The app itself has undergone minor tweaks - a title on the home page and a custom app icon . Took me quite a bit to figure out how the .apk packages work, though. I’m hoping that I managed to successfully create a signed copy of my creation and it is accessable for everybody in the repo Releases section. Lastly, the easiest, yet the most daunting part was writing the actual README. It might not be the most pleasant looking description in the world, but it’s mine and that’s what matters :) Now fingers crossed I did everything correctly for shipping…
Ships:
I made a small app for a one-day adventure. The project features 3 sections: Geoguessr (find the described place and do a challenge there), Color Catch (upload photos of items of certain colors and categories) and Photo Booth (recreate the given photo and upload you version). Originally, it was made as a gift for my partner (and in Lithuanian), but it’s possible to easily modify the system and personalise everything for other users. Every challenge contributes to a global progress bar. The initial idea is to use it for earning the big prize - in my case, TLT concert tickets :D. Since there is no actual virtual prize, the user is free to think of a personalised reward at any point of completion. This was a great way to not only brighten a friend’s day, but also learn how to use React Native and Expo Go. I strictly limited the amount of AI used for that natural “trial and error” process, so Claude Code was used only for minor debugging and certain reference points. The knowledge gained will let me further work on more ambitious app ideas I’ve had for ages! –What to know before trying for yourself– As of now, and, to be fair, probably forever, the production version is made only for Android 7.0+. You can install it in the Github repo Latest Release page. –Possible areas of improvement– If there would be actual users of the app, I could translate everything into English. Make a tutorial/info page. Create a “full-completion” celebrating pop-up....
|
1792997808.506493
|
1793084208.506493
|
|
963
|
CLADES by @onyxtheone | Stardance
|
onyxtheone
|
1
|
14.46
|
262
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-02T21:06:45Z", "hours": 14.0, "multiplier": 18.66, "payout": 262, "blessing": "neutral", "text": "I made a disease epidemiology simulator, and then extended it with age stratification and multiple strain support. A major challenge was figuring out the math behind it and pulling it together at each new component. I am proud to say that, as far as I know, the data is actually worthwhile and should track with reality, but I am not an epidemiologist. I made a simple site for people to check it out, and if you want to try it properly you can build from source (P.S. Its just 2 commands:))) )", "repo": "https://github.com/onyx-the-one/CLADES", "demo": "https://onyx-the-one.github.io/CLADES/clades.html"}]...
|
[{"post_id": 4887, "ts": "2026 [{"post_id": 4887, "ts": "2026-06-08T13:33:09Z", "hours": 0.4636, "text": "As advised by @Amu I made the README nicer, font bigger, and put compiled packages on github via actions."}, {"post_id": 1047, "ts": "2026-06-02T21:00:34Z", "hours": 2.1097, "text": "Fixed some text alignment, and the multistrain component giving completely wrong results. Everything actually (seemingly) works pretty well."}, {"post_id": 905, "ts": "2026-06-02T17:12:43Z", "hours": 4.3306, "text": "Worked on support for multistrain, and while it is somewhat implemented it gonna stay off main branch, theres a lot left to do with it."}, {"post_id": 515, "ts": "2026-06-02T00:07:59Z", "hours": 4.4047, "text": "I implemented age stratification as a separate mode, and will work on integrating them more closely. Very minor text alignment issues left but it is time to sleep."}, {"post_id": 309, "ts": "2026-06-01T15:57:13Z", "hours": 3.1822, "text": "I wrote the core architecture of the simulator, with almost no larger features yet but it should be functional. I have also ran into a build error and fixed it and now built successfully (with 1 error)."}]...
|
Title: CLADES by @onyxtheone | Stardance
Devlogs: Title: CLADES by @onyxtheone | Stardance
Devlogs:
I wrote the core architecture of the simulator, with almost no larger features yet but it should be functional. I have also ran into a build error and fixed it and now built successfully (with 1 error).
I implemented age stratification as a separate mode, and will work on integrating them more closely. Very minor text alignment issues left but it is time to sleep.
Worked on support for multistrain, and while it is somewhat implemented it gonna stay off main branch, theres a lot left to do with it.
Fixed some text alignment, and the multistrain component giving completely wrong results. Everything actually (seemingly) works pretty well.
As advised by @Amu I made the README nicer, font bigger, and put compiled packages on github via actions.
Ships:
I made a disease epidemiology simulator, and then extended it with age stratification and multiple strain support. A major challenge was figuring out the math behind it and pulling it together at each new component. I am proud to say that, as far as I know, the data is actually worthwhile and should track with reality, but I am not an epidemiologist. I made a simple site for people to check it out, and if you want to try it properly you can build from source (P.S. Its just 2 commands:))) )...
|
1792875203.5267386
|
1793739203.5267386
|
|
3519
|
Name That Nation by @brlin888 | Stardance
|
brlin888
|
2
|
26.85
|
262
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T21:15:15Z", "hours": 1.0, "multiplier": 7.33, "payout": 6, "blessing": "neutral", "text": "Hi everyone or whoever is reviewing this ship! This is my #2 ship for NameThatNation. To recap, NameThatNation is a game that allows the user to learn more about different countries through answering questions. Overall, for these couple of hours I continued to work on this project. Based on the comments from the people that reviewed on my last ship, I mainly worked on organizing the images in my panels better and adjusting the panels to be more visually appealing. If you want a better experience while playing the game, make sure to check out the settings panel where you can customize your gaming experience. For this ship, I recreated the images in my panels so that they fit the game better, so I am proud so say there was NO AI used in creating any of the images! Just a note that if you want to check out this game, make sure to go to releases or click on the “try project” button which will direct you towards the github releases. Ensure that you have download Java JDK because this entire project is coded entirely in JAVA which is an extremely technical language, so organization wise and how this game works is limited to some extent (harder to organize because need to manually run and check program each time to ensure object is placed where you want it to be and components are have a limited size by Java). Hope you have fun reviewing my ship!", "repo": "https://github.com/brlin888-create/Name-That-Nation", "demo": "https://github.com/brlin888-create/Name-That-Nation/releases/tag/v1.0.0"}, {"ship_num": 2, "ts": "2026-09-27T23:51:25Z", "hours": 18.0, "multiplier": 14.44, "payout": 256, "blessing": "neutral", "text": "Hi all, this is my ship for Name That Nation! Name That Nation is a game I thought of that tests and trains a person’s ability of naming countries based on the shape of the country (all 198 countries). The game is made completely using Java, all coded line by line, with some images being AI generated. The most challenging part of this project was actually making sure the project worked, because Java is a really technical language. One missing semicolon, and you have to go back and manually fix it. Additionally, since there are a lot of JButtons and components I had to add, the formatting depended on individually testing and organizing in order for the project to look visually aesthetic. Lastly, one of the biggest challenges was reading/writing from multiple files, since there was hundreds of country image files I had to organize, as well as ensuring that each country was actually accounted for. Overall, the testing through each individual panel allowed me to slowly build up this project as a whole. One interesting thing I added was incorporating powerups and achievements, that would incentive players to continuously play to achieve a higher score. Players can customize their gaming experience on background color, font size, difficulty, etc. in the settings panel. There are hints present, a timer present, and three lives, but by utilizing the powerups, this will boost the scores an individual can set. After gameplay, players can see what they scored wrong on, save their score to the txt file which includes (and sorts) all names, as well as see what achievements they have accomplished. This pretty much sums up my project as a whole, over 20+ hours (from image downloads to testing which was not accounted for in the Hackatime hours) as well as over 2400 lines of code. Hope whoever is reading this enjoys this project!!!", "repo": "https://github.com/brlin888-create/Name-That-Nation", "demo": "https://github.com/brlin888-create/Name-That-Nation/releases/tag/v1.0.0"}]...
|
[{"post_id": 82836, "ts": "202 [{"post_id": 82836, "ts": "2026-10-25T23:53:38Z", "hours": 6.9822, "text": "Hi all!!! Last week of stardance so I’m really grinding this project and trying to balance this with school work!!! Basically, I made the game look even better and improved functionality because I found some issues with the powerups. Basically, sometimes, they were activated even though the requirements aren’t met such as getting x-amount of questions right in a row. Additionally, I continued with improving the looks of the game such as making the powerups look pixelated too! I will probably do my ship in a day or two so it was fun doing this project (might do a 4th ship if I have time!)"}, {"post_id": 81153, "ts": "2026-10-20T03:59:17Z", "hours": 0.8692, "text": "Hi everyone, i am continuing to build on my project for NameThatNation! Mainly this time focusing on organization for website as well as implementing more features and polishing my readme! also if any of you guys know when a manuel review submission for a ship will get approved, please let me know!"}, {"post_id": 78454, "ts": "2026-10-10T20:37:00Z", "hours": 0.2667, "text": "Hi all, My project got rejected again… for using AI assets. After changing the images on canva and ensuring the game still works, hopefully this time my ship will go through. If you guys want to see the new changes made to my project, feel free to check out the github for Name That Nation. Hopefully @Amu or other shipwrights will consider these new changes made as it took me over 2 hrs+ to find images and individually change the assets that were AI generated. So now I am happy to say my project does not use a single AI generated image!"}, {"post_id": 77989, "ts": "2026-10-09T03:57:33Z", "hours": 0.3039, "text": "Hi all, I have made a few changes for my project in order to fulfill the shipping request so hopefully whoever reviews my ship takes this into consideration @Jack_ . Just some further instructions on how to run my code: since I am using java in my project especially libraries that call for java JFrame and JPanel, java must be INSTALLED on the device for whoever is playing the game. In my github releases, I have updated with more clear instructions on how to download java JDK based on your device, then compiling my code. This is the only way, as converting into an executable still won’t run the code as whoever has the code doesn’t have the java libraries specific for my game pre-loaded. Thank you for reading this and hopefully my ship goes through successfully (I haven’t gotten an update in like 5 days…)!"}, {"post_id": 75771, "ts": "2026-10-01T01:34:52Z", "hours": 0.255, "text": "Hi all, I thought my project would be finished but apparently there were some issues with shipping the project. To whoever is reading this or people that judge ships, I have edited my github to have a releases zip file which can be downloaded to test out my game. You may still see the youtube video still attached for my game demo, but you can now try out the game yourself in github by retrieving the required assets. Additionally, I added more clear instructions and descriptions on NameThatNation and its properties. Hopefully you guys go check it out and take into consideration when evaluating my ship!"}, {"post_id": 74676, "ts": "2026-09-27T23:41:08Z", "hours": 0.3425, "text": "Hi all, This will be the last devlog for Name That Nation. I am so excited for you guys to see what I have been able to accomplish throughout the summer. Since NameThatNation is coded in Java completely, it CANNOT be converted into a website. I have attached a video (took 2 hours to edit) to demonstrate how the game can be played, as well as attached the source code in github. The reason that it cannot be made into a website is that it reads and writes through specific files that is not possible on a website. Additionally, Java JPanel and JFrame is not compatible with websites, meaning that I would have to code the entire game again in another programming language in order for the game to function. Today I placed my finishing touches such as incorporating the achievements panel and added final touches/testings for the entire game. This game took over 20+ hours (not shown through Hackatime) because there was more time spent on individually downloading all 198 country images and organizing files to include all countries but maintain functionality. I hope this project finds you well and thanks for those that have been following along the journey!!! Hope you guys like my project!!!"}, {"post_id": 74328, "ts": "2026-09-27T05:36:03Z", "hours": 2.78, "text": "NameThatNation!!! Hi all, for those that have been following along, there has been significant progress throughout the game. I have finally been able to get the gamepanel to work. I added powerups and different features such as lives count, hints, and changing colors on JButtons which utilizes a button listener to detect if the button clicked is correct. Although this may look simple, this project has taken me over several hours to what you see today. Java is an easy language to learn, but to implement it to this level is extremely hard, as image reading, file reading, JButtons, JCheckboxes, etc. are extremely technical and one wrong step will cause the entire program to not function. Tomorrow, I will finish the last panels which are the Achievements panel, and leaderboard panels. After that I will, post a demo of the project (as java is not compatible with online user websites and I am using read/write from files), and do my final commit before I ship my project!!! Thank you for those that have been following along!"}, {"post_id": 68387, "ts": "2026-09-15T01:24:48Z", "hours": 0.5231, "text": "What is up everyone! If you haven’t checked my last devlog, my main issue is still converting my code to a website or mainly a way for you guys to play the game without downloading the source code. I add some improvements to the game, fixing a JButton error because all of the buttons kept on lighting up when I didn’t click any of them. I also added more countries to the country info panel, so I’m pretty sure I have all 198 countries for now in the game. Next up is still fixing the website issue and adding to the game! Stay tuned for more!!!!!!!!!!!!!!"}, {"post_id": 66733, "ts": "2026-09-12T16:56:45Z", "hours": 6.6714, "text": "I know I haven’t posted a dev log for a long time… but here is it after 2 months and what I have been working on!!! After completely the country info and instructions panel, I started to work on the game panel which was definitely one of the hardest panels to complete. This is because working in Java JFrame/JPanel requires a lot of technical code to allow buttons to be clicked and change color when an answer choice is correct. Other than this, I had to download EVERY SINGLE COUNTRY’s image and add it to a folder which took over 2 hours to do (not included in the 6 hours) because I couldn’t find a website that had all of them. Other than that, the project is going extremely smoothly and I am currently working on adding different powerups that can aid the person playing the game. My only concern is converting this JFrame/JPanel game onto a demo website because the game is currently reading files from on my computer such as the images and files for instructions etc. If you guys have any suggestions, please feel free to leave it in the chat!"}, {"post_id": 25118, "ts": "2026-07-09T03:48:31Z", "hours": 0.6564, "text": "Continued to work on the project! Short Dev Log Today! finished settings and still working on instructions panel started working on game panel game hard to implement need to locate specific coordinates follow for more!"}, {"post_id": 23809, "ts": "2026-07-06T23:37:24Z", "hours": 2.2889, "text": "Hey everyone! It’s been a massive day of coding on NameThatNation. If you’ve been following along, you know the goal: a game where you look at maps/images and guess the country before the timer runs out. Today, I wired up the core skeleton for the Settings Panel, Country Info Panel, and initialized the beast that is the Game Panel. Here is exactly what went down today: The Settings Panel: I wanted players to be able to customize their UI, but things got a little chaotic in the grid layouts. The RGB Sliders: Added JSlider controls for Red, Green, and Blue. Players can dynamically alter the theme color (info.setColor). The Continents Customization: Implemented checkboxes for all 7 continents. But I had to add a hard rule in the ButtonListener: You must choose at least 3 continents before you can leave. Why? Because guessing between just the USA and Canada is too easy everyone is going to get it right… Image Size Scrollbar: Added a JScrollBar allowing players to scale the image sizes. Scroll down or up. Difficulty JMenu: A nice dropdown menu (Font.BOLD, 30) to swap between Easy, Medium, and Hard. Current Visual Bug: The continent checkboxes currently text-render in a terrifying new Color(183, 9, 9) (deep blood red) alongside a red warning label. The Country Info Panel: Players need a place to study up, so I built the CountryInfoPanel. It utilizes a try-catch block inside a custom fileIn() method to read a massive text file: countriesContinentHard.txt. It dumps all that text into a non-editable, word-wrapping JTextArea wrapped in a JScrollPane so you can scroll through hundreds of countries. The Aesthetic: On the left side, it renders a nice big sprite of planet Earth (Earth.png), while the data scrolls smoothly on the right. The Game Panel (The Brain of the Operation) Finally, I started prototyping the actual gameplay panel. It’s not fully rendered yet, but the logic infrastructure is going to be a lot! I will continue to work on this panel this week and make sure to follow along the game making!!!"}, {"post_id": 21667, "ts": "2026-07-03T19:03:46Z", "hours": 1.4492, "text": "Dev Log: Name That Nation Implementation of Core UI Panels (Start, Instructions, & Settings) Overview: Successfully built and structured the primary navigational and configuration panels for NameThatNation. Implemented Java Swing components across three core areas: the StartPanel (handling user onboarding and core navigation), the InstructionsPanel (displaying gameplay mechanics in a scrollable format), and the SettingsPanel (giving users control over gameplay parameters like difficulty, map sizes, background colors, and continent selection). Key Implementations: StartPanelUser Onboarding: Added a JTextField for name entry along with strict data validation. If the field is empty or left as default, a warning message (noName JLabel) triggers in red text, blocking gameplay progression. Animated Background: Integrated a javax.swing.Timer alongside a modified paintComponent method to alternate every 0.5 seconds between three unique world images (World1.png to World3.png), creating a smooth looping animation of a rotating Earth.CardLayout Navigation: Configured centralized action listeners (buttons and exitListener) to pass state data to the parent container, cleanly swapping panels or closing the application altogether. InstructionsPanelLayout & Scrolling: Used a BorderLayout to organize an informative overview of rules, score tallies, powerups, and level details. Scroll Mechanics: Embedded a heavy block of instruction text into a non-editable JTextArea wrapped in a JScrollPane, forcing explicit vertical navigation while keeping horizontal scrolling locked. Visual Assets: Overlaid a game preview snapshot (Game.png) on top of a custom backdrop image to give players context before starting. SettingsPanelRGB Customization: Implemented three distinct JSlider inputs (Red, Green, Blue) bound to a ColorHandler listener. This updates the player’s canvas background dynamically via the shared Information state object. Game Parameters: Combined a JScrollBar to control image scale thresholds, a JMenuBar with JMenuItem nodes for changing the match difficulty (Easy, Medium, Hard), and an array of JCheckBox fields representing all seven continents. Challenges: Absolute Layout Positioning: Managing explicit component bounds (setBounds) in the null-layout StartPanel requires highly specific coordinates that can scale poorly if window sizes are dramatically altered later. Validation Multi-threading: Syncing state requirements—such as throwing warnings when fewer than 3 continents are selected or managing name checks—requires seamless communication between panel instances and the core Information holder class. Next Steps: Enforce Continent Validation: Active counters ensuring the validation warning dynamically locks or unlocks the “Back” button if the 3-continent minimum isn’t met. Integrate Game Logic: Establish properties inside the GamePanel constructor that ingest the finalized values set by the sliders, checkboxes, and scrollbars from the configuration stage."}, {"post_id": 20985, "ts": "2026-07-02T18:41:17Z", "hours": 3.0508, "text": "Working on a game to allow people to get better at identifying countries based on the shape (will have powerups, customized settings, etc.). This project will be done in java through vscode! Feel free to give any feedback or advice on what I should add to the game. I currently only have the JPanels working for the settings panel as well as the start panel with buttons. Stay tuned for more updates!!! Issues encountered and fixed: panel switching setting JButtons in settings panel layouts -> placing components in the right location"}]...
|
Title: Name That Nation by @brlin888 | Stardance
Title: Name That Nation by @brlin888 | Stardance
Devlogs:
Working on a game to allow people to get better at identifying countries based on the shape (will have powerups, customized settings, etc.). This project will be done in java through vscode! Feel free to give any feedback or advice on what I should add to the game. I currently only have the JPanels working for the settings panel as well as the start panel with buttons. Stay tuned for more updates!!! Issues encountered and fixed: panel switching setting JButtons in settings panel layouts -> placing components in the right location
Dev Log: Name That Nation Implementation of Core UI Panels (Start, Instructions, & Settings) Overview: Successfully built and structured the primary navigational and configuration panels for NameThatNation. Implemented Java Swing components across three core areas: the StartPanel (handling user onboarding and core navigation), the InstructionsPanel (displaying gameplay mechanics in a scrollable format), and the SettingsPanel (giving users control over gameplay parameters like difficulty, map sizes, background colors, and continent selection). Key Implementations: StartPanelUser Onboarding: Added a JTextField for name entry along with strict data validation. If the field is empty or left as default, a warning message (noName JLabel) triggers in red text, blocking gameplay progression. Animated Background: Integrated a javax.swing.Timer alongside a modified paintComponent method to alternate every 0.5 seconds between three unique world images (World1.png to World3.png), creating a smooth looping animation of a rotating Earth.CardLayout Navigation: Configured centralized action listeners (buttons and exitListener) to pass state data to the parent container, cleanly swapping panels or closing the application altogether. InstructionsPanelLayout & Scrolling: Used a BorderLayout to organize an informative overview of rules, score tallies, powerups, and level details. Scroll Mechanics: Embedded a heavy block of instruction text into a non-editable JTextArea wrapped in a JScrollPane, forcing explicit vertical navigation while keeping horizontal scrolling locked. Visual Assets: Overlaid a game preview snapshot (Game.png) on top of a custom backdrop image to give players context before starting. SettingsPanelRGB Customization: Implemented three distinct JSlider inputs (Red, Green, Blue) bound to a ColorHandler listener. This updates the player’s canvas background dynamically via the shared Information state object. Game Parameters: Combined a JScrollBar to control image scale thresholds, a JMenuBar with JMenuItem nodes for changing the match difficulty (Easy, Medium, Hard), and an array of JCheckBox fields representing all seven continents. Challenges: Absolute Layout Positioning: Managing explicit component bounds (setBounds) in the null-layout StartPanel requires highly specific coordinates that can scale poorly if window sizes are dramatically altered later. Validation Multi-threading: Syncing state requirements—such as throwing warnings when fewer than 3 continents are selected or managing name checks—requires seamless communication between panel instances and the core Information holder class. Next Steps: Enforce Continent Validation: Active counters ensuring the validation warning dynamically locks or unlocks the “Back” button if the 3-continent minimum isn’t met. Integrate Game Logic: Establish properties inside the GamePanel constructor that ingest the finalized values set by the sliders, checkboxes, and scrollbars from the configuration stage.
Hey everyone! It’s been a massive day of coding on NameThatNation. If you’ve been following along, you know the goal: a game where you look at maps/images and guess the country before the timer runs out. Today, I wired up the core skeleton for the Settings Panel, Country Info Panel, and initialized the beast that is the Game Panel. Here is exactly what went down today: The Settings Panel: I wanted players to be able to customize their UI, but things got a little chaotic in the grid layouts. The RGB Sliders: Added JSlider controls for Red, Green, and Blue. Players can dynamically alter the theme color (info.setColor). The Continents Customization: Implemented checkboxes for all 7 continents. But I had to add a hard rule in the ButtonListener: You must choose at least 3 continents before you can leave. Why? Because guessing between just the USA and Canada is too easy everyone is going to get it right… Image Size Scrollbar: Added a JScrollBar allowing players to scale the image sizes. Scroll down or up. Difficulty JMenu: A nice dropdown menu (Font.BOLD, 30) to swap between Easy, Medium, and Hard. Current Visual Bug: The continent checkboxes currently text-render in a terrifying new Color(183, 9, 9) (deep blood red) alongside a red warning label. The Country Info Panel: Players need a place to study up, so I built the CountryInfoPanel. It utilizes a try-catch block inside a custom fileIn() method to read a massive text file: countriesContinentHard.txt. It dumps all that text into a non-editable, word-wrapping JTextArea wrapped in a JScrollPane so you can scroll through hundreds of countries. The Aesthetic: On the left side, it renders a nice big sprite of planet Earth (Earth.png), while the data scrolls smoothly on the right. The Game Panel (The Brain of the Operation) Finally, I started prototyping the actual gameplay panel. It’s not fully rendered yet, but the logic infrastructure is going to be a lot! I will continue to work on this panel this week and make sure to follow along the game making!!!
Continued to work on the project! Short Dev Log Today! finished settings and still working on instructions panel started working on game panel game hard to implement need to locate specific coordinates follow for more!
I know I haven’t posted a dev log for a long time… but here is it after 2 months and what I have been working on!!! After completely the country info and instructions panel, I started to work on the game panel which was definitely one of the hardest panels to complete. This is because working in Java JFrame/JPanel requires a lot of technical code to allow buttons to be clicked and change color when an answer choice is correct. Other than this, I had to download EVERY SINGLE COUNTRY’s image and add it to a folder which took over 2 hours to do (not included in the 6 hours) because I couldn’t find a website that had all of them. Other than that, the project is going extremely smoothly and I am currently working on adding different powerups that can aid the person playing the game. My only concern is converting this JFrame/JPanel game onto a demo website because the game is currently reading files from on my computer such as the images and files for instructions etc. If you guys have any suggestions, please feel free to leave it in the chat!
What is up everyone! If you haven’t checked my last devlog, my main issue is still converting my code to a website or mainly a way for you guys to play the game without downloading the source code. I add some improvements to the game, fixing a JButton error because all of the buttons kept on lighting up when I didn’t click any of them. I also added more countries to the country info panel, so I’m pretty sure I have all 198 countries for now in the game. Next up is still fixing the website issue and adding to the game! Stay tuned for more!!!!!!!!!!!!!!
NameThatNation!!! Hi all, for those that have been following along, there has been significant progress throughout the game. I have finally been able to get the gamepanel to work. I added powerups and different features such as lives count, hints, and changing colors on JButtons which utilizes a button listener to detect if the button clicked is correct. Although this may look simple, this project has taken me over several hours to what you see today. Java is an easy language to learn, but to implement it to this level is extremely hard, as image reading, file reading, JButtons, JCheckboxes, etc. are extremely technical and one wrong step will cause the entire program to not function. Tomorrow, I will finish the last panels which are the Achievements panel, and leaderboard panels. After that I will, post a demo of the project (as java is not compatible with online user websites and I am using read/write from files), and do my final commit before I ship my project!!! Thank you for those that have been following along!
Hi all, This will be the last devlog for Name That Nation. I am so excited for you guys to see what I have been able to accomplish throughout the summer. Since NameThatNation is coded in Java completely, it CANNOT be converted into a website. I have attached a video (took 2 hours to edit) to demonstrate how the game can be played, as well as attached the source code in github. The reason that it cannot be made into a website is that it reads and writes through specific files that is not possible on a website. Additionally, Java JPanel and JFrame is not compatible with websites, meaning that I would have to code the entire game again in another programming language in order for the game to function. Today I placed my finishing touches such as incorporating the achievements panel and added final touches/testings for the entire game. This game took over 20+ hours (not shown through Hackatime) because there was more time spent on individually downloading all 198 country images and organizing files to include all countries but maintain functionality. I hope this project finds you well and thanks for those that have been following along the journey!!! Hope you guys like my project!!!
Hi all, I thought my project would be finished but apparently there were some issues with shipping the project. To whoever is reading this or people that judge ships, I have edited my github to have a releases zip file which can be downloaded to test out my game. You may still see the youtube video still attached for my game demo, but you can now try out the game yourself in github by retrieving the required assets. Additionally, I added more clear instructions and descriptions on NameThatNation and its properties. Hopefully you guys go check it out and take into consideration when evaluating my ship!
Hi all, I have made a few changes for my project in order to fulfill the shipping request so hopefully whoever reviews my ship takes this into consideration @Jack_ . Just some further instructions on how to run my code: since I am using java in my project especially libraries that call for java JFrame and JPanel, java must be INSTALLED on the device for whoever is playing the game. In my github releases, I have updated with more clear instructions on how to download java JDK based on your device, then compiling my code. This is the only way, as converting into an executable still won’t run the code as whoever has the code doesn’t have the java libraries specific for my game pre-loaded. Thank you for reading this and hopefully my ship goes through successfully (I haven’t gotten an update in like 5 days…)!
Hi all, My project got rejected again… for using AI assets. After changing the images on canva and ensuring the game still works, hopefully this time my ship will go through. If you guys want to see the new changes made to my project, feel free to check out the github for Name That Nation. Hopefully @Amu or other shipwrights will consider these new changes made as it took me over 2 hrs+ to find images and individually change the assets that were AI generated. So now I am happy to say my project does not use a single AI generated image!
Hi everyone, i am continuing to build on my project for NameThatNation! Mainly this time focusing on organization for website as well as implementing more features and polishing my readme! also if any of you guys know when a manuel review submission for a ship will get approved, please let me know!
Hi all!!! Last week of stardance so I’m really grinding this project and trying to balance this with school work!!! Basically, I made the game look even better and improved functionality because I found some issues with the powerups. Basically, sometimes, they were activated even though the requirements aren’t met such as getting x-amount of questions right in a row. Additionally, I continued with improving the looks of the game such as making the powerups look pixelated too! I will probably do my ship in a day or two so it was fun doing this project (might do a 4th ship if I have time!)
Ships:
Hi all, this is my ship for Name That Nation! Name That Nation is a game I thought of that tests and trains a person’s ability of naming countries based on the shape of the country (all 198 countries). The game is made completely using Java, all coded line by line, with some images being AI generated. The most challenging part of this project was actually making sure the project worked, because Java is a really technical language. One missing semicolon, and you have to go back and manually fix it. Additionally, since there are a lot of JButtons and components I had to add, the formatting depended on individually testing and organizing in order for the project to look visually aesthetic. Lastly, one of the biggest challenges was reading/writing from multiple files, since there was hundreds of country image files I had to organize, as well as ensuring that each country was actually accounted for. Overall, the testing through each individual panel allowed me to slowly build up this project as a whole. One interesting thing I added was incorporating powerups and achievements, that would incentive players to continuously play to achieve a higher score. Players can customize their gaming experience on background color, font size, difficulty, etc. in the settings panel. There are hints present, a timer present, and three lives, but by utilizing the powerups, this will boost the scores an individual can set. After gameplay, players can see what they scored wrong on, save their score to the txt file which includes (and sorts) all names, as well as see what achievements they have accomplished. This pretty much sums up my project as a whole, over 20+ hours (from image downloads to testing which was not accounted for in the Hackatime hours) as well as over 2400 lines of code. Hope whoever is reading this enjoys this project!!!
Hi everyone or whoever is reviewing this ship! This is my #2 ship for NameThatNation. To recap, NameThatNation is a game that allows the user to learn more about different countries through answering questions. Overall, for these couple of hours I continued to work on this project. Based on the comments from the people that reviewed on my last ship, I mainly worked on organizing the images in my panels better and adjusting the panels to be more visually appealing. If you want a better experience while playing the game, make sure to check out the settings panel where you can customize your gaming experience. For this ship, I recreated the images in my panels so that they fit the game better, so I am proud so say there was NO AI used in creating any of the images! Just a note that if you want to check out this game, make sure to go to releases or click on the “try project” button which will direct you towards the github releases. Ensure that you have download Java JDK because this entire project is coded entirely in JAVA which is an extremely technical language, so organization wise and how this game works is limited to some extent (harder to organize because need to manually run and check program each time to ensure object is placed where you want it to be and components are have a limited size by Java). Hope you have fun reviewing my ship!...
|
1793004627.181034
|
1793091027.181034
|
|
40179
|
RenanLang by @renanfartes | Stardance
|
renanfartes
|
1
|
16.0
|
262
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-01T16:02:15Z", "hours": 16.0, "multiplier": 16.58, "payout": 262, "blessing": "neutral", "text": "I made a entire language because i was boooored! Just kidding, i learned a lot about assembly like languages and built this to understand how compilers work. The llanguage is divided into a compiler and a virtual machine, with a bytecode layer in the middle. It is simple (only like 10 instructions) and have features like labels (which are syntax sugar for jumps) and i loved to understand how a lexer works. The language have comments!", "repo": "https://github.com/Renan-G-projec/RenanLang", "demo": "https://github.com/Renan-G-projec/RenanLang/releases/tag/v1.0.0"}]...
|
[{"post_id": 38954, "ts": "202 [{"post_id": 38954, "ts": "2026-08-01T15:59:50Z", "hours": 0.7061, "text": "Devlog 08 DEMO VIDEO Finally finished! So i spent the last times just doing the README, improving the docs and speccially habndling some errors like jumping to a unexistant label or simply errors like file not found. Without it the app did not crash, it started to read garbage which is kinda dangerous. Note: I can’t build a windows release because i’m on Linux. I made this demo video if you do not want to install it from source!"}, {"post_id": 38273, "ts": "2026-07-31T16:09:45Z", "hours": 1.8125, "text": "Devlog 07 FINALLY I DEBBUGED THIS THING So i was having a weird bug with the Jump instruction. I first thought maybe is endiannes opr something. I passed howurs on the paper trying to understand how the stack would be compressed and decompressed. At the end i searched if the bitwise operations changes with the endiannes. I read that no so all this effort was not applied. Then i corrected it and it still not working. I debugged with the GNU debugger (GDB) and learned a lot about it. The bug was that in the label mapping i was changing 2 times the byteoffset when expanding a string litteral and the label setting. So i fixed that and it worked just as fine! I think it is almost ready for shipping. I just need to make some adjustments with security to prevent the user accessing invalid memory. XD"}, {"post_id": 37078, "ts": "2026-07-29T15:39:12Z", "hours": 4.1664, "text": "Devlog 06 IMMM tired :( I took the tripple of the time i thought i would do. I added the label system to the compiler but i needed to re-write all teh compiling logic. I’ve drawn on the paper 4 times trying to see with a solution to map the bytecode addresses before actually compiling and failed those 4 times. I asked AI to know how could i implement this and it suggested adding a byteoffset, and then i did that, i’m not happy of needing that. Now the last things that the language needs to be complete is to improve the error system, improve the code quality, maybe add an opcode to read user input."}, {"post_id": 36807, "ts": "2026-07-29T03:06:21Z", "hours": 2.9286, "text": "Devlog 05 THIS WAS ANNOYING I had a lot of headache just writing this lexer. Firstly i thought about studying and it helped, but was confusing what exactly the lexer should take as input and output. As in modern compilers it is common to have this separation and i want to add this functionality to implement labels i coded it. The code is just awful, the error handling and the finite state machine are kinda bad. But i think the interface is good enough so in the future i can make this code more mantainable and stuff. I also think i’m understanding more how to read documentation correctly without AI helping me. Now the app will be able to receive strings instead of manually pushing values. Hope y’all like it! (Note: I did not implemented the glue on the compiler. The lexer is isolated by now because i will need to re-write the code generation in order to connect the lexer as the first ‘middleware’ if you can call that way)"}, {"post_id": 36430, "ts": "2026-07-28T15:35:40Z", "hours": 1.725, "text": "Devlog 04 Added JMP Instructions! So finally the language is turing complete. It has complete instructions, conditions, loops and so on. But it is a pain to code in this language so i’ll add some syntax sugar such as JMP_LABEL like instructions. I didn’t added this later because i actually need to refactor the code. The app dont actually know which is the line address that it is compiling and i need to divide responsabilities such as an normal compiler (lexer and parser). This will took a time but it is nice to see the things working. “Make it work” as said by Kent Beck is complete i just need to make it right and then make it fast."}, {"post_id": 36170, "ts": "2026-07-28T02:48:15Z", "hours": 0.6706, "text": "Devlog 03 Comments and stack underflow detection! So i added the comments feature and a stack underflow handling. Firstly i decided to use c++ exceptions because barelly used this c++ feature. But i thought it could be weird as exceptions usually tend to be avoided to performance issues and be more like a feature of C++ and not of my language. So i used AI to question and yes it was a bad decision, so i switched to IF statements. (I asked, the code was not coppied or anything) Also i am very happy to open cppreference (this absolute monster documentation) and find that substrings searching in C++ are not complicated with iterators 🙏"}, {"post_id": 35454, "ts": "2026-07-26T21:38:06Z", "hours": 1.6206, "text": "Devlog 002 I started to develop the virtual machine! It has no complete commands yet but it can pop and manipulate the stack as it wants. It can interpret the commands PUSH ADD PRINT and HALT. I am going to suffer a little by handling all edge casesm such as trying to pop the stack even when it is already empty. I’ll fix this later. As seen on the video, it can sum the numbers. I plan to add the Hello world example (it need to exist!) and adding more functions such as input taking, jumps and loops."}, {"post_id": 35211, "ts": "2026-07-26T14:28:24Z", "hours": 2.2997, "text": "Devlog 01 Ok! So i was bored in a time so i decided that write a language would be cool. It is a fast project but kinda hard so i started with that in midn First i opened draw.io just for sketching a liitle architecture, I wrote: The CLI usage The File Reader module (Working as seen on screenshot!) The basis for the compiler The Initial OPCODE table But i still need to write a tokenizer and think better in what opcodes i should implement. I want it to be fast and not really fancy. (The screenshot shows the dump of the main file because i forgot to write an example)"}]...
|
Title: RenanLang by @renanfartes | Stardance
Devl Title: RenanLang by @renanfartes | Stardance
Devlogs:
Devlog 01 Ok! So i was bored in a time so i decided that write a language would be cool. It is a fast project but kinda hard so i started with that in midn First i opened draw.io just for sketching a liitle architecture, I wrote: The CLI usage The File Reader module (Working as seen on screenshot!) The basis for the compiler The Initial OPCODE table But i still need to write a tokenizer and think better in what opcodes i should implement. I want it to be fast and not really fancy. (The screenshot shows the dump of the main file because i forgot to write an example)
Devlog 002 I started to develop the virtual machine! It has no complete commands yet but it can pop and manipulate the stack as it wants. It can interpret the commands PUSH ADD PRINT and HALT. I am going to suffer a little by handling all edge casesm such as trying to pop the stack even when it is already empty. I’ll fix this later. As seen on the video, it can sum the numbers. I plan to add the Hello world example (it need to exist!) and adding more functions such as input taking, jumps and loops.
Devlog 03 Comments and stack underflow detection! So i added the comments feature and a stack underflow handling. Firstly i decided to use c++ exceptions because barelly used this c++ feature. But i thought it could be weird as exceptions usually tend to be avoided to performance issues and be more like a feature of C++ and not of my language. So i used AI to question and yes it was a bad decision, so i switched to IF statements. (I asked, the code was not coppied or anything) Also i am very happy to open cppreference (this absolute monster documentation) and find that substrings searching in C++ are not complicated with iterators 🙏
Devlog 04 Added JMP Instructions! So finally the language is turing complete. It has complete instructions, conditions, loops and so on. But it is a pain to code in this language so i’ll add some syntax sugar such as JMP_LABEL like instructions. I didn’t added this later because i actually need to refactor the code. The app dont actually know which is the line address that it is compiling and i need to divide responsabilities such as an normal compiler (lexer and parser). This will took a time but it is nice to see the things working. “Make it work” as said by Kent Beck is complete i just need to make it right and then make it fast.
Devlog 05 THIS WAS ANNOYING I had a lot of headache just writing this lexer. Firstly i thought about studying and it helped, but was confusing what exactly the lexer should take as input and output. As in modern compilers it is common to have this separation and i want to add this functionality to implement labels i coded it. The code is just awful, the error handling and the finite state machine are kinda bad. But i think the interface is good enough so in the future i can make this code more mantainable and stuff. I also think i’m understanding more how to read documentation correctly without AI helping me. Now the app will be able to receive strings instead of manually pushing values. Hope y’all like it! (Note: I did not implemented the glue on the compiler. The lexer is isolated by now because i will need to re-write the code generation in order to connect the lexer as the first ‘middleware’ if you can call that way)
Devlog 06 IMMM tired :( I took the tripple of the time i thought i would do. I added the label system to the compiler but i needed to re-write all teh compiling logic. I’ve drawn on the paper 4 times trying to see with a solution to map the bytecode addresses before actually compiling and failed those 4 times. I asked AI to know how could i implement this and it suggested adding a byteoffset, and then i did that, i’m not happy of needing that. Now the last things that the language needs to be complete is to improve the error system, improve the code quality, maybe add an opcode to read user input.
Devlog 07 FINALLY I DEBBUGED THIS THING So i was having a weird bug with the Jump instruction. I first thought maybe is endiannes opr something. I passed howurs on the paper trying to understand how the stack would be compressed and decompressed. At the end i searched if the bitwise operations changes with the endiannes. I read that no so all this effort was not applied. Then i corrected it and it still not working. I debugged with the GNU debugger (GDB) and learned a lot about it. The bug was that in the label mapping i was changing 2 times the byteoffset when expanding a string litteral and the label setting. So i fixed that and it worked just as fine! I think it is almost ready for shipping. I just need to make some adjustments with security to prevent the user accessing invalid memory. XD
Devlog 08 DEMO VIDEO Finally finished! So i spent the last times just doing the README, improving the docs and speccially habndling some errors like jumping to a unexistant label or simply errors like file not found. Without it the app did not crash, it started to read garbage which is kinda dangerous. Note: I can’t build a windows release because i’m on Linux. I made this demo video if you do not want to install it from source!
Ships:
I made a entire language because i was boooored! Just kidding, i learned a lot about assembly like languages and built this to understand how compilers work. The llanguage is divided into a compiler and a virtual machine, with a bytecode layer in the middle. It is simple (only like 10 instructions) and have features like labels (which are syntax sugar for jumps) and i loved to understand how a lexer works. The language have comments!...
|
1792993716.9758902
|
1793080116.9758902
|