|
20676
|
LibrePods by @kavish | Stardance
|
kavish
|
1
|
72.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-08T10:39:14Z", "hours": 72.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "LibrePods is a project that aims to liberate AirPods from Apple’s ecosystem by reverse-engineering and implementing xOS-specific features like ear-detection, conversational awareness, etc. on Android and Linux. This update is about adding a new design system for users who don’t like the iOS look with liquid glass. I have added a design based on Material 3 Expressive, with new typography, and dynamic colors, which feels a lot more native to Android. I also reverse-engineered and added the new Equalizer feature that was announced at WWDC26. I highly suggest anyone looking at this project to have a look at the v1.0.0-rc1 release on GitHub for more screenshots!", "repo": "https://github.com/kavishdevar/librepods", "demo": "https://github.com/kavishdevar/librepods/releases/latest?include_prereleases=true"}]...
|
[{"post_id": 24617, "ts": "202 [{"post_id": 24617, "ts": "2026-07-08T10:22:32Z", "hours": 72.4894, "text": "Instructions to enter demo mode: Install the APK Scroll down and click on Bypass compatibliity check if shown Not supported Close the app and clear from Recents, and re-open the app. Complete the onboarding Long press anywhere outside the reconnect button to enter demo mode Material 3 Expressive I worked on adding a new design system, based on Material 3 for the users who don’t like Apple’s design system/Liquid Glass. High quality audio recording I also added a Recorder which uses AAC-ELD (received over AACP* ). This is of much higher quality than the mSBC or CVSD codecs available over Headset/Handsfree Profile where both directions of streams are of poor quality. This also allows users to use A2DP while recording, meaning high quality playback as well. I also spent a lot of time digging through AOSP code to understand how the audio system works, so that I can make the AAC-ELD microphone stream available to all apps and calls, and not just for recording from the app. Equalizer (WWDC 2026) I also reverse-engineered and implemented the Equalizer that was announced in WWDC26 *Advanced Accessory Control Profile"}]...
|
Title: LibrePods by @kavish | Stardance
Devlogs:
Title: LibrePods by @kavish | Stardance
Devlogs:
Instructions to enter demo mode: Install the APK Scroll down and click on Bypass compatibliity check if shown Not supported Close the app and clear from Recents, and re-open the app. Complete the onboarding Long press anywhere outside the reconnect button to enter demo mode Material 3 Expressive I worked on adding a new design system, based on Material 3 for the users who don’t like Apple’s design system/Liquid Glass. High quality audio recording I also added a Recorder which uses AAC-ELD (received over AACP* ). This is of much higher quality than the mSBC or CVSD codecs available over Headset/Handsfree Profile where both directions of streams are of poor quality. This also allows users to use A2DP while recording, meaning high quality playback as well. I also spent a lot of time digging through AOSP code to understand how the audio system works, so that I can make the AAC-ELD microphone stream available to all apps and calls, and not just for recording from the app. Equalizer (WWDC 2026) I also reverse-engineered and implemented the Equalizer that was announced in WWDC26 *Advanced Accessory Control Profile
Ships:
LibrePods is a project that aims to liberate AirPods from Apple’s ecosystem by reverse-engineering and implementing xOS-specific features like ear-detection, conversational awareness, etc. on Android and Linux. This update is about adding a new design system for users who don’t like the iOS look with liquid glass. I have added a design based on Material 3 Expressive, with new typography, and dynamic colors, which feels a lot more native to Android. I also reverse-engineered and added the new Equalizer feature that was announced at WWDC26. I highly suggest anyone looking at this project to have a look at the v1.0.0-rc1 release on GitHub for more screenshots!...
|
1792997718.7382674
|
1793084118.7382674
|
|
44537
|
STEMNet.gr by @rosandrox | Stardance
|
rosandrox
|
2
|
72.0
|
1278
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T16:15:32Z", "hours": 52.0, "multiplier": 19.12, "payout": 987, "blessing": "neutral", "text": "STEMNet GREECE CAN YOU PLS STAR MY REPO AND GIMME STARS / I POORED A LOT OF EFFORT INTO IT Created by: Rosario Alexandros Morabito (prodevmod) . I built this as a CS50 final project that turned into a real world mission. PLS READ STEMNet was born out of a real struggle in Greece. Here, proper hands-on STEM education and local school clubs are hard to find, and getting your hands on basic electronics like an Arduino is a challenge you either rely on a single physical store in the whole country or buy online. But since parents often don’t trust internet shopping, young innovators get stuck. I wanted to fix this by building a cozy, peer to peer home where young Greek makers of the same age and passion can finally connect, share project feedback, and feel like they aren’t alone. Like I often times feel. Y develop it further The overwhelming amount of positive feedback I got from my previous shipping of the project and my friends who I cowardly showed it to because I was a bit scared they were going to make fun of me pushed me into expanding this with a React framework for the V1, but trust me, even more is coming. What’s Inside the Platform? The STEM Extra Vault: A handy resource library packed with everything students need to kickstart their independent journey into electronics and coding, making up for what traditional schools miss. Community Groups ( can also be used as School Clubs): Forum style discussion spaces where everyone can chat about their favorite topics. Students can even spin up their own groups to act as virtual versions of real world school clubs. Events & Future Webinars: A dedicated space tracking upcoming competitions, team meetups, and future online STEM teaching sessions that I plan to host once the user base grows. Self-Cleaning Notifications: A smart alert system that automatically wipes read notifications older than 30 days (with a cron job for FREE), keeping the interface clean so users never get overwhelmed by clutter. Built-in Safety & Sigma Profiles: BTS, the site keeps things secure with robust account verification thru session cookies and recapca, safe link-checking to keep malicious websites away thru nginx , customized user profiles with social and GitHub links, and easy account settings. I would realy want to see this project skyrocket! If you have any recomandations about how I can scale it or grow my userbase pls tell me!!!", "repo": "https://github.com/prodevmod/STEMNet.gr", "demo": "https://www.stemnet.app"}, {"ship_num": 2, "ts": "2026-08-09T22:25:15Z", "hours": 20.0, "multiplier": 14.46, "payout": 291, "blessing": "neutral", "text": "See video HERE(OLD VERSION OF SITE): https://youtu.be/QUGb-TlbM0Q . I built STEMNet.gr, a student-driven social hub and resource directory designed specifically for Greek students. It aims to bridge the gap for students who lack local access to STEM clubs, robotics, and academic mentorship. It’s a space to discover curated educational resources, post and find events, and build a community where students can learn from and support each other. Moving from a CS50 project to a production-ready application was a steep learning curve. I spent countless hours diving into Flask, Jinja, and database documentation to ensure the site is secure against SQL injections and unauthorized access. Balancing feature development—like AJAX for real-time interaction, mobile responsiveness, and a custom dark/light mode theme system—while ensuring the site remains fast and secure, was the biggest challenge. I am most proud of creating a self-sustaining, alumni-driven ecosystem. This isn’t just a directory; it’s a platform where students can give back by contributing events they’ve discovered, effectively filling the guidance gap for those starting their STEM journey. I’ve successfully migrated it to a faster, more robust server infrastructure, implemented a secure registration flow, and built a fully functional social graph (followers/following).", "repo": "https://github.com/prodevmod/STEMNet.gr", "demo": "https://www.stemnet.app"}]...
|
[{"post_id": 61591, "ts": "202 [{"post_id": 61591, "ts": "2026-09-04T16:02:16Z", "hours": 0.6472, "text": "GUYS I DID SOME FINAL TOUCHUPS! I AM READY TO SHIP! THE TOUCHUPS HAD TO DO WITH THE GROUPPOSTS CONTENT RENDERING!💀💀💀💀"}, {"post_id": 61454, "ts": "2026-09-04T11:53:33Z", "hours": 4.0161, "text": "I FINISHED ITTTT! So, I basically cleaned up the CSS as I told in the previous devlog. I also added category tags in every post, which was a feature of the HTML version but I had forgot to add it. Then, I also added a going and interesting interactions in events so that people may express where they would like to go from all the events. I also added the refactored edit and delete functions for events and groups, they weren’t working. I fixed the notifications cleanup which was previously not working, it was a cron job I added in the previous devlog. Also, in the profile page, I have now separated the person’s content into posts and replies, that way the UX is far better. Also, I made a crop image component so that the users can customize which part of the image they want in their PFP, and that is also good because now I don’t have to do the fitting anymore because once they have selected it, only the selected part of the icon is saved, so it becomes a lot more gestible for me. I am also adding content so that stemnet has lots of stuff, and further on I will be adding one or two more details and then shipping it. I really don’t think there is anything else to do, I really put a lot of hours into this, and yeah."}, {"post_id": 60704, "ts": "2026-09-03T08:14:23Z", "hours": 3.1347, "text": "Hello!!! Sooooo I Did a few things like: I added pagination for if and when I get a larger userbase the app/webapp won’t crash (Mostly for mobile users) by loading all posts at once. I added a few things in the backend to make expanding this app/webapp easier. I also added RSVP buttons for “Going” and “Interested” in EventDetails and Events pages to make them more interesting. Implemented handleRsvp function to manage user RSVP status and update counts. Adjusted comment reply button to display comment count. Updated requirements.txt to include Pillow and redis. Added a second cron job to cleanup old read notifications NEXT UP: Fixing the UI Add right image sizes in every page w/ content Fix the reversed colours thing"}, {"post_id": 60288, "ts": "2026-09-02T15:46:17Z", "hours": 2.7697, "text": "Today I worked on the cybersecurity aspect of my site btw :P ( I meant to write : but I did a typo P). I honestly was chilling doing nginx configuration and I also secured the recaptcha key. I also took heed of one of my comments and added an api for malicious domains plus I hardcoded some others. I also moved the sanatisation to the forms themselves (post, create group)"}, {"post_id": 59440, "ts": "2026-09-01T09:12:44Z", "hours": 2.9211, "text": "I did all of the following: I’m thinking to fix the change password, change email, and report a bug functions. Also, make it able to upload GIFs for content types because currently, although possible, it is not working. I don’t know why. I have to troubleshoot it. And to fix those verification tokens and redirection. Problems I ENCOUNTERED: I tried and tried times again to fix my redirecting script for half an hour antil my stupid a$$ realised the problem was that resend was injecting a tracker in the website to track if the email was clicked and I removed it resulting on verification links working. After searching up my content error on stack overflow I found out it was neither a supabase or python storing error but it was in fact a nginx framework error that needed one line to be solved:( UP NEXT I am currently running Pentests and rawlers to optimise my webapps cybersecurity and when done I ll prevent any vulenerabilities (I got dyslexia). Right after that I ll try to get a userbase by using lapse to record me addvertising my site!"}, {"post_id": 59016, "ts": "2026-08-31T16:28:57Z", "hours": 6.0711, "text": "SOOOOOOOO: Today I tried to make up for yesterday (I only did like 2 hrs) and here is what I did: So, I updated the navbar to have a settings page, which I was inspired to make because when trying to find an icon that represents stem extras and all the stem together and not just one kind of stem, a gear came to mind. But then I thought I should also make settings, so I put that aside for the time. And now I made the stem extras icon a more chemistry-looking bottle, and the gear I kept for the settings as I said I would. Everything is pretty much the same, except I made an edit and delete event buttons that were much needed because after all the test events I made, it was getting kind of sloppy and unprofessional because it was filled with gibberish. Same goes for the groups, so I did the exact same thing. Also, I made a table for the users to delete a post that many people have replied to by adding a soft delete function that basically checks if the post is deletable, and if it is not, it changes it to this post is no longer available, this post has been deleted. So, I then proceeded to make the settings page, which was very difficult and still I haven’t got over yet. So, I’ve made the appearance and delete account. I made the delete account button to work. It was kind of difficult so that I could secure it that there is no misuse of this button and hackers might mass delete accounts by hacking into them. I also made a report bug, change email, and change password tabs that although they technically or three work, they need some improvement, which I will make in the next devlog. I also made the appearance into something more modern and nice, which is like every other setting, an accordion dropdown that you press to switch to what mode you want. I’m trying to currently recreate the icon near the mode text so it’s a bit more fun, and I will do it in the next devlog. Logout works just fine. I’ve made custom emails and verification tokens for every single action. Also, They still need some work to be done. The verification tokens have made because they currently don’t redirect you back to a login page or something, so they feel empty and don’t work exactly as they are built to work as. Everything else is pretty much the same. I updated the content type so users can upload much larger files. For the next dev log, I’m thinking to fix the change password, change email, and report a bug functions. Also, make it able to upload GIFs for content types because currently, although possible, it is not working. I don’t know why. I have to troubleshoot it. And to fix those verification tokens and redirection."}, {"post_id": 57911, "ts": "2026-08-30T07:34:49Z", "hours": 1.1781, "text": "IT TOOK ME 1 HOUR BUT IT WAS WORH IT: LADIES AND GENTS THE NOTIFICATION ICON CHANGES TO INDICATE YOU HAVE NOTIFICATIONS I’ ll describe this session cuz it was so funny frfr: So like I got started wondering why the notification button in navbar doesnt update I then proceeded to delete the svg s I had and replace them with pc generated ones Then I proceeded to change the structure of both my app.py and navbar.jsx (visible in my commits) But I suddenly remembered I can debug with console logs which I have kept cuz y not To cut it short after debugging I saw in the console log a messoge that said and I quote index-D9jqm-wX.js:11 Navbar hasUnreadNotifications: undefined undefined and that was when I realised I had nowhere in the .jsx included the hasUnreadNotification boolean so there was no way of the client knowing what I was yapping abt in Navbar.jsx basically I was saying check if hasUnreadNotification is True I then used the find thingy of VSCode to add the argument to all the react pages Up Next: Have it tested by people give feedback. Activate global acces via Clouflare Automate deletion of old events with cron"}, {"post_id": 57539, "ts": "2026-08-29T18:28:38Z", "hours": 6.2389, "text": "BEFORE I START TAKE 5 mins of your time pls to test my webapp and suggest additions: SUGEST ON GITHUB https://github.com/prodevmod/STEMNet.gr/issues?q=is%3Aissu MY SITE: https://www.stemnet.app I Just finished the Issues I had made from playtestsing with my bros! These are the functional changes made: REPLY buttons worked flawelessly at every page of the site but it took me 2 hrs cause of how many different pathways were inside my webapp and I had to sort them out but guess what it finally took me 3 hrs because there was a PROBLEM with my code CAUSE I HAD to change the api/posts/post_id to api/post_id/posts but had forgotten to change the route and the method from POST to GET and lost 1 f-ing hour of my time searching for a single line of code. REGISTER page was easy I just had to remove some labels to make the UI mure user friendly, like honestly most changes were frontend based in this part so with my BIG brain and a litle of react documentation it was basically a peice of cake THE NOTIFICATIONS PART WAS THE MOST TIME CONSUMING BECAUSE IT TOOK ME 1 hour researching and 2 hours actually typing cause what was written (mostly frontend) was wrong and I had to create a new table for notifications. Ig I just didn’t know how to implement the notifications. Last part was RECAPTCHA V2 for more stable results it was very easy to do (took me 20 mins tops) Next: TESTING with MY bros Making notification icon full when user has unread notifications IMPLEMENT UR IDEAS"}, {"post_id": 56684, "ts": "2026-08-28T15:24:20Z", "hours": 3.0264, "text": "So, for the first half of this session, I was trying to debug the app and website deployment because the app deployment overrode the website deployment. And at some point, nothing worked. I then went ahead and play-tested my site with some friends, and we found some key issues that I have to fix, such as the fact that reply buttons are not functional in all pages, the register page has some unclear parts, while the notifications page doesn’t work at all. While testing, I found that a friend of mine couldn’t register, and so I tried to register too, but it wouldn’t let me because of the reCAPTCHA. So, that’s how I decided to remove reCAPTCHA v3 completely and apply reCAPTCHA v2, which I haven’t done yet. I also then went ahead and made some issues to my GitHub repository so I can keep track of what I need to change. I’m thinking of merging the two branches, although I’m not sure yet because I would like to have my main branch. I might rename my main branch and make default the react-version branch. I also made a mobile branch, but that’s only on the local git. And that’s all I did for this session. I’m thinking of expanding more on this idea and advertising it, and then also shipping it, but that’s for later on. I must first fix every mistake and then do some testing with relatives, friends, and if you want to, you can participate. And then I’m going to have to have them fill out a form so that I find out which are the weakest points of my UI and what functionalities I could add.Also app works now!!!"}, {"post_id": 56510, "ts": "2026-08-28T09:42:45Z", "hours": 0.6783, "text": "Small note: I made a deplyable app but because it is compiled with capacitor it needed a domain and I entered my websites domain so either the app will work fully and the web server ,ust close either only the frontent works!Actual mobile FOOTAGE(My pfp is so JOLLY):"}, {"post_id": 56450, "ts": "2026-08-28T06:51:35Z", "hours": 2.6586, "text": "SO the UI and most of backend is the same (IT WAS A PREEEEEETY BORING SESSION. Moreover in this session I just: (THE APP HAS LIGHT MODE TO, I JUST PREFER DARK) Cleaned up the CSS and .jsx files Polished and Tested Everything was fine Made the webapp’s logo Hated myself cuz I didn’t know how to deploy my site deployed my sit with hackclub nest server and nginx and gunicorn Playtested w/ some friends and gathered opinions What I Have yet to do: make polished/final UI deploy a mobile app version too Start advertising Contacting people interested in hosting my app Propose my idea to the greek government(I have veryyyyyyyyyyyy High Hopes I know) Follow me cuz this is just the start of this WEBAPP! PLEEEEEEEEEEAAAAAASE STAR MY REPO!"}, {"post_id": 55595, "ts": "2026-08-27T15:30:57Z", "hours": 6.9036, "text": "Ladies and Gents there was not in fact a 5% left… More like 50% … Soooooo: I implemented all the event functions and group functions to work as intended. Also, I made the post detail and the event detail. I made the create group, create post, and everything.I included every function of the previous version that was in HTML, so academic profiles for the registering, multimedia code sharing and links, events and groups featuring dedicated tracking for STEM-related events. Social interactions, the platform includes a standard follower-following network. Security and technical architecture, I built using Python Flask, so I didn’t need to change anything security-wise, so I just kept the old version that using SQLite. It then translated to PostgreSQL alongside Supabase for the cloud file storage, and I have added all the login rate limits so that there is no login brute force.This was my first time coding in react so I learned two distinct ways + css to code a frontend and 1 way to do the backend!"}, {"post_id": 55042, "ts": "2026-08-26T13:57:27Z", "hours": 5.2628, "text": "💀💀I AM EXHAUSTED I SEE ERRORS EVERYWHERE! However on the bright side 95% of the website is done for the react version and I am commiting my REACT V1 today!So, let’s see what changed in the React version. So, I added a logout icon that is created on spot as most icons because I removed mine but kept a few to make the site simpler and more easy to load, though I kept my like buttons and my reply buttons. I removed the image to be shown from the actual profile page so that more content fits into less space. The events are pretty much the same only that I added a footer box so that the user understands where the description starts and where the specifications end. I replaced the gem with a gear and I named the page StemNet Extras Education because it sounded more like the actual thing. The group is functioning every function of the group so nothing changed there. Notifications have a bit different way of functioning but it is the same logic. Pretty much everything is the same just in React with a bit better UI and UX.The basic reason why I didn’t do more devlogs and more analytical work is because the hackathon was down so I couldn’t log anything. And when hackathon came back up around 3 hours of work I had already done, I encountered ton of bugs. That’s why I’m exhausted right now. In fact, this is an edited devlog. In my normal devlog I didn’t upload anything because I was exhausted and wanted to take a break. The thread view or the post detail post works the same. I added a cute profile picture for anyone who hasn’t got one with their initial. Light mode and dark mode are better now. Before they were a bit choppy and in some places they didn’t work. New post is very organized. And most of the text is changing with force white and force black because for some reason all the CSS I wrote didn’t make sense to me. So I just added a force thing so I could label the things I want to turn what I want them to turn to."}, {"post_id": 54729, "ts": "2026-08-25T20:12:25Z", "hours": 3.5881, "text": "So one of the MANY reviewers sugested I build the application / website in react and so I have started doing that! I also drew stemnet logo! I ll cover that in the next devlog cause my lapse is still open IN CASE I wanna change it! However turns out react framework is relativly easy! But bcs I am kinda slow it took me 1 week of studying to start building! I redisigned the css to cover some of my needs and made the register login, index and custom error pages! I also found it easier to integrate my rate limit in a simple warning on the login screen! I am working on a seperate branch for better version control (I AM SO SMART IKR), first time actually using anything else than add push pull remote and satus commands for git ( I AM SO PROUD). Abt the actual project: The react framework is wayyyyyyyyyyyyyyyyyyy faster and leaves room for me to do silly things! I addaptes some things like integrating reply in posts directly (FREEDOM OF REACT) that couldn’t be implemented in html Imma do the rest of the app now I also fixed the images so that their shown in their proper aspect as I was suggested I dont also dont have much to document on as much of the work I did in python css and react was baxically boilerplate code found in documentation!"}, {"post_id": 48706, "ts": "2026-08-17T06:48:45Z", "hours": 0.6875, "text": "Guys when reviewing my project please make an account if you dont want to share your real info atleast use a fake email generator and login from the inbox cause rly all the dedication i ve put into this project is in that page after logging in."}, {"post_id": 45438, "ts": "2026-08-11T21:44:13Z", "hours": 1.8439, "text": "I cleaned up some things I added a login limit to avoid bruteforce and a custom html page for when the user exceeds the limit. I wrote the README.md from scratch cause I had used AI to make the process quicker. I added comments so anyone who might wants to do a PR isn’t deterred by the ammount of confusing jargon.Fixed some css issues and added more to the STEM EXTRA page. I also added a captcha v3 verificator to avoid having bots raid my platform…. PLEASE READ PREVIOUS DEVLOGS TO UNDERSTAND THE MISSSION"}, {"post_id": 44272, "ts": "2026-08-09T22:21:53Z", "hours": 0.5536, "text": "Just run last tests added more stem material!!!! With these devlog I want to gain your atention to spread the word to people you think will find it useful as it is primarly for greek students but the important part is that it is for students that do not have stem guidance and don’t know where to start from. With these project students not only gain guidance and benefit from the community but can contribute back into it (by posting about an upcoming event they heard about) creating a self sustaining alumni driven platform.Thank you for your attention!!! Enjoy my project!! Make sure to checkout the vid (old version) see progress!!! https://youtu.be/QUGb-TlbM0Q"}, {"post_id": 44235, "ts": "2026-08-09T21:07:37Z", "hours": 1.91, "text": "Okay, so I did the last cleanup, so my project is ready for shipping. In this session, I removed the feed button because it was unnecessary. The stemnet.gr logo takes you to the feed. I restricted the navigation feature icons only for the logged-in users. I forced the login prompt button to retain a clean white text background and properly structured the mobile and desktop navbar. I added hero card styling. I also added an extremely beneficial part of the site with all the extra academics a student can take. There I will upload different links and resources for Greek students to study STEM outside of the school curriculum. I think that’s a very good idea and very nice I created and thought of. And while testing the final product, I was headbanging to “So Lucky” by Twice and “Loser” by Tame Impala."}, {"post_id": 44082, "ts": "2026-08-09T16:36:46Z", "hours": 3.9775, "text": "I added the group chat section with search results in integration in search.html. Added the dedicated group chat ads section that queries matching groups. Feed discovery banner has some sponsored or featured group chats. Then I added the light and dark mode system with zero flash theme script. I embedded the synchronous script. I also added a dynamic navbar toggle so it will be more user-friendly and theme-aware UI that inverts the colors of non-visible UI depending on the theme."}, {"post_id": 43709, "ts": "2026-08-09T03:49:02Z", "hours": 2.4692, "text": "I’ve implemented a lot of cybersecurity measures, so SQL injection or mitigations won’t happen. I fixed the SQL search. Following and followers list .html didn’t work before, now it works flawlessly. I changed servers because the server I used was very slow. I am using Nest of Hacklab currently. Yeah, that’s all the changes for today, but it turned out pretty neat. Check out the video."}, {"post_id": 42907, "ts": "2026-08-07T21:14:20Z", "hours": 0.4639, "text": "I officially think the first version of my site is ready to be shipped. I fixed some last minute bugs. I added AJAX so that the user doesn’t have to always refresh the page to see their likes.For further informations visit the github repo. Alo I hosted it on nest so that the site would be faster. I also spent 4-5 Hours reading flask and jinja and json documentation to debug and apply cybersecurity measures. Youtube preview: https://www.youtube.com/watch?v=QUGb-TlbM0Q"}, {"post_id": 42764, "ts": "2026-08-07T17:16:02Z", "hours": 3.0769, "text": "Big coding session. I migrated the site to the Hacklab Nest because it gives me more potential and a larger and faster server. It will have many benefits. I finished the basic idea I had in mind for this site. Basically, it includes: A feed An event section A notification section A profile section, along with followers and following sections An affiliate links section in the profile page Posts that show up both in the feed and the logged-out section A search button to search for users and posts that might interest you A filter feature to search posts by category A new post button A log out button A login button A register button with registration verification provided by resend"}, {"post_id": 42275, "ts": "2026-08-06T22:07:18Z", "hours": 2.0411, "text": "I’m clocking off for the day. I think I finished the biggest part of the project. I improved my site’s cyber security from brute force SQL injections, remote post, delete, and edit. I added: a search page an event page a post page a feed page a profile page followers and following list a follow button a like button a comment to reply button where you basically post something replying to something else However I doubt the efficiency of this project and if it’s going to carry out as I want it. I really hope it does. Ideally I host it online with a custom domain. I have the eligibility to take one for free because I’m in the GitHub student pack. I don’t know if it’s really worth it. Take a look at my project and you tell me. I also added a profile picture. please comment your opinion: should I make it public or what? https://stemnet-gr.onrender.com/register"}, {"post_id": 42080, "ts": "2026-08-06T17:17:40Z", "hours": 2.225, "text": "I have made the web app applicable to a mobile app too so if you join from mobile, everything will be in a normal view and it will not be deformed. I worked on the profile. The followers and following are applicable, clickable, and you can see who you are following or who your followers are. I added links to GitHub and LinkedIn, which have their own personalized icons. All the rest have just a bug icon, a reference to all the bugs that have deterred many fellow coders. Next, I’m planning to create the full post and events mechanism because, on this site, you can add posts or events. Additionally, I will implement notifications, which is another functionality. After that, I will work on the verification of each user with an automated email and upload the first working STEMnet to GitHub, although I have a lot to work on."}, {"post_id": 41893, "ts": "2026-08-06T12:09:12Z", "hours": 3.3692, "text": "Before you see the progress I’ve made, I want you to know this project was made by me as the final project of my CS50 course. Not just to get over the course but to solve an actual problem you see in Greece we have very limited access to clubs and robotics in general. Imagine there is only one shop in the whole state that you can buy electronic components from. I managed to make an SQL database with all the users’ posts, likes, etc., information, a login page, a new post page, a profile page, and affiliate links for networking between students. I’m still working on cyber security. However we are clear of SQL injections so that’s good. The CSS is rather simple but working and I think I will keep it. I might add some shadows just to make it feel more interactive. The buttons are already interactive so that’s good."}]...
|
Title: STEMNet.gr by @rosandrox | Stardance
Devlo Title: STEMNet.gr by @rosandrox | Stardance
Devlogs:
Before you see the progress I’ve made, I want you to know this project was made by me as the final project of my CS50 course. Not just to get over the course but to solve an actual problem you see in Greece we have very limited access to clubs and robotics in general. Imagine there is only one shop in the whole state that you can buy electronic components from. I managed to make an SQL database with all the users’ posts, likes, etc., information, a login page, a new post page, a profile page, and affiliate links for networking between students. I’m still working on cyber security. However we are clear of SQL injections so that’s good. The CSS is rather simple but working and I think I will keep it. I might add some shadows just to make it feel more interactive. The buttons are already interactive so that’s good.
I have made the web app applicable to a mobile app too so if you join from mobile, everything will be in a normal view and it will not be deformed. I worked on the profile. The followers and following are applicable, clickable, and you can see who you are following or who your followers are. I added links to GitHub and LinkedIn, which have their own personalized icons. All the rest have just a bug icon, a reference to all the bugs that have deterred many fellow coders. Next, I’m planning to create the full post and events mechanism because, on this site, you can add posts or events. Additionally, I will implement notifications, which is another functionality. After that, I will work on the verification of each user with an automated email and upload the first working STEMnet to GitHub, although I have a lot to work on.
I’m clocking off for the day. I think I finished the biggest part of the project. I improved my site’s cyber security from brute force SQL injections, remote post, delete, and edit. I added: a search page an event page a post page a feed page a profile page followers and following list a follow button a like button a comment to reply button where you basically post something replying to something else However I doubt the efficiency of this project and if it’s going to carry out as I want it. I really hope it does. Ideally I host it online with a custom domain. I have the eligibility to take one for free because I’m in the GitHub student pack. I don’t know if it’s really worth it. Take a look at my project and you tell me. I also added a profile picture. please comment your opinion: should I make it public or what? https://stemnet-gr.onrender.com/register
Big coding session. I migrated the site to the Hacklab Nest because it gives me more potential and a larger and faster server. It will have many benefits. I finished the basic idea I had in mind for this site. Basically, it includes: A feed An event section A notification section A profile section, along with followers and following sections An affiliate links section in the profile page Posts that show up both in the feed and the logged-out section A search button to search for users and posts that might interest you A filter feature to search posts by category A new post button A log out button A login button A register button with registration verification provided by resend
I officially think the first version of my site is ready to be shipped. I fixed some last minute bugs. I added AJAX so that the user doesn’t have to always refresh the page to see their likes.For further informations visit the github repo. Alo I hosted it on nest so that the site would be faster. I also spent 4-5 Hours reading flask and jinja and json documentation to debug and apply cybersecurity measures. Youtube preview: https://www.youtube.com/watch?v=QUGb-TlbM0Q
I’ve implemented a lot of cybersecurity measures, so SQL injection or mitigations won’t happen. I fixed the SQL search. Following and followers list .html didn’t work before, now it works flawlessly. I changed servers because the server I used was very slow. I am using Nest of Hacklab currently. Yeah, that’s all the changes for today, but it turned out pretty neat. Check out the video.
I added the group chat section with search results in integration in search.html. Added the dedicated group chat ads section that queries matching groups. Feed discovery banner has some sponsored or featured group chats. Then I added the light and dark mode system with zero flash theme script. I embedded the synchronous script. I also added a dynamic navbar toggle so it will be more user-friendly and theme-aware UI that inverts the colors of non-visible UI depending on the theme.
Okay, so I did the last cleanup, so my project is ready for shipping. In this session, I removed the feed button because it was unnecessary. The stemnet.gr logo takes you to the feed. I restricted the navigation feature icons only for the logged-in users. I forced the login prompt button to retain a clean white text background and properly structured the mobile and desktop navbar. I added hero card styling. I also added an extremely beneficial part of the site with all the extra academics a student can take. There I will upload different links and resources for Greek students to study STEM outside of the school curriculum. I think that’s a very good idea and very nice I created and thought of. And while testing the final product, I was headbanging to “So Lucky” by Twice and “Loser” by Tame Impala.
Just run last tests added more stem material!!!! With these devlog I want to gain your atention to spread the word to people you think will find it useful as it is primarly for greek students but the important part is that it is for students that do not have stem guidance and don’t know where to start from. With these project students not only gain guidance and benefit from the community but can contribute back into it (by posting about an upcoming event they heard about) creating a self sustaining alumni driven platform.Thank you for your attention!!! Enjoy my project!! Make sure to checkout the vid (old version) see progress!!! https://youtu.be/QUGb-TlbM0Q
I cleaned up some things I added a login limit to avoid bruteforce and a custom html page for when the user exceeds the limit. I wrote the README.md from scratch cause I had used AI to make the process quicker. I added comments so anyone who might wants to do a PR isn’t deterred by the ammount of confusing jargon.Fixed some css issues and added more to the STEM EXTRA page. I also added a captcha v3 verificator to avoid having bots raid my platform…. PLEASE READ PREVIOUS DEVLOGS TO UNDERSTAND THE MISSSION
Guys when reviewing my project please make an account if you dont want to share your real info atleast use a fake email generator and login from the inbox cause rly all the dedication i ve put into this project is in that page after logging in.
So one of the MANY reviewers sugested I build the application / website in react and so I have started doing that! I also drew stemnet logo! I ll cover that in the next devlog cause my lapse is still open IN CASE I wanna change it! However turns out react framework is relativly easy! But bcs I am kinda slow it took me 1 week of studying to start building! I redisigned the css to cover some of my needs and made the register login, index and custom error pages! I also found it easier to integrate my rate limit in a simple warning on the login screen! I am working on a seperate branch for better version control (I AM SO SMART IKR), first time actually using anything else than add push pull remote and satus commands for git ( I AM SO PROUD). Abt the actual project: The react framework is wayyyyyyyyyyyyyyyyyyy faster and leaves room for me to do silly things! I addaptes some things like integrating reply in posts directly (FREEDOM OF REACT) that couldn’t be implemented in html Imma do the rest of the app now I also fixed the images so that their shown in their proper aspect as I was suggested I dont also dont have much to document on as much of the work I did in python css and react was baxically boilerplate code found in documentation!
💀💀I AM EXHAUSTED I SEE ERRORS EVERYWHERE! However on the bright side 95% of the website is done for the react version and I am commiting my REACT V1 today!So, let’s see what changed in the React version. So, I added a logout icon that is created on spot as most icons because I removed mine but kept a few to make the site simpler and more easy to load, though I kept my like buttons and my reply buttons. I removed the image to be shown from the actual profile page so that more content fits into less space. The events are pretty much the same only that I added a footer box so that the user understands where the description starts and where the specifications end. I replaced the gem with a gear and I named the page StemNet Extras Education because it sounded more like the actual thing. The group is functioning every function of the group so nothing changed there. Notifications have a bit different way of functioning but it is the same logic. Pretty much everything is the same just in React with a bit better UI and UX.The basic reason why I didn’t do more devlogs and more analytical work is because the hackathon was down so I couldn’t log anything. And when hackathon came back up around 3 hours of work I had already done, I encountered ton of bugs. That’s why I’m exhausted right now. In fact, this is an edited devlog. In my normal devlog I didn’t upload anything because I was exhausted and wanted to take a break. The thread view or the post detail post works the same. I added a cute profile picture for anyone who hasn’t got one with their initial. Light mode and dark mode are better now. Before they were a bit choppy and in some places they didn’t work. New post is very organized. And most of the text is changing with force white and force black because for some reason all the CSS I wrote didn’t make sense to me. So I just added a force thing so I could label the things I want to turn what I want them to turn to.
Ladies and Gents there was not in fact a 5% left… More like 50% … Soooooo: I implemented all the event functions and group functions to work as intended. Also, I made the post detail and the event detail. I made the create group, create post, and everything.I included every function of the previous version that was in HTML, so academic profiles for the registering, multimedia code sharing and links, events and groups featuring dedicated tracking for STEM-related events. Social interactions, the platform includes a standard follower-following network. Security and technical architecture, I built using Python Flask, so I didn’t need to change anything security-wise, so I just kept the old version that using SQLite. It then translated to PostgreSQL alongside Supabase for the cloud file storage, and I have added all the login rate limits so that there is no login brute force.This was my first time coding in react so I learned two distinct ways + css to code a frontend and 1 way to do the backend!
SO the UI and most of backend is the same (IT WAS A PREEEEEETY BORING SESSION. Moreover in this session I just: (THE APP HAS LIGHT MODE TO, I JUST PREFER DARK) Cleaned up the CSS and .jsx files Polished and Tested Everything was fine Made the webapp’s logo Hated myself cuz I didn’t know how to deploy my site deployed my sit with hackclub nest server and nginx and gunicorn Playtested w/ some friends and gathered opinions What I Have yet to do: make polished/final UI deploy a mobile app version too Start advertising Contacting people interested in hosting my app Propose my idea to the greek government(I have veryyyyyyyyyyyy High Hopes I know) Follow me cuz this is just the start of this WEBAPP! PLEEEEEEEEEEAAAAAASE STAR MY REPO!
Small note: I made a deplyable app but because it is compiled with capacitor it needed a domain and I entered my websites domain so either the app will work fully and the web server ,ust close either only the frontent works!Actual mobile FOOTAGE(My pfp is so JOLLY):
So, for the first half of this session, I was trying to debug the app and website deployment because the app deployment overrode the website deployment. And at some point, nothing worked. I then went ahead and play-tested my site with some friends, and we found some key issues that I have to fix, such as the fact that reply buttons are not functional in all pages, the register page has some unclear parts, while the notifications page doesn’t work at all. While testing, I found that a friend of mine couldn’t register, and so I tried to register too, but it wouldn’t let me because of the reCAPTCHA. So, that’s how I decided to remove reCAPTCHA v3 completely and apply reCAPTCHA v2, which I haven’t done yet. I also then went ahead and made some issues to my GitHub repository so I can keep track of what I need to change. I’m thinking of merging the two branches, although I’m not sure yet because I would like to have my main branch. I might rename my main branch and make default the react-version branch. I also made a mobile branch, but that’s only on the local git. And that’s all I did for this session. I’m thinking of expanding more on this idea and advertising it, and then also shipping it, but that’s for later on. I must first fix every mistake and then do some testing with relatives, friends, and if you want to, you can participate. And then I’m going to have to have them fill out a form so that I find out which are the weakest points of my UI and what functionalities I could add.Also app works now!!!
BEFORE I START TAKE 5 mins of your time pls to test my webapp and suggest additions: SUGEST ON GITHUB https://github.com/prodevmod/STEMNet.gr/issues?q=is%3Aissu MY SITE: https://www.stemnet.app I Just finished the Issues I had made from playtestsing with my bros! These are the functional changes made: REPLY buttons worked flawelessly at every page of the site but it took me 2 hrs cause of how many different pathways were inside my webapp and I had to sort them out but guess what it finally took me 3 hrs because there was a PROBLEM with my code CAUSE I HAD to change the api/posts/post_id to api/post_id/posts but had forgotten to change the route and the method from POST to GET and lost 1 f-ing hour of my time searching for a single line of code. REGISTER page was easy I just had to remove some labels to make the UI mure user friendly, like honestly most changes were frontend based in this part so with my BIG brain and a litle of react documentation it was basically a peice of cake THE NOTIFICATIONS PART WAS THE MOST TIME CONSUMING BECAUSE IT TOOK ME 1 hour researching and 2 hours actually typing cause what was written (mostly frontend) was wrong and I had to create a new table for notifications. Ig I just didn’t know how to implement the notifications. Last part was RECAPTCHA V2 for more stable results it was very easy to do (took me 20 mins tops) Next: TESTING with MY bros Making notification icon full when user has unread notifications IMPLEMENT UR IDEAS
IT TOOK ME 1 HOUR BUT IT WAS WORH IT: LADIES AND GENTS THE NOTIFICATION ICON CHANGES TO INDICATE YOU HAVE NOTIFICATIONS I’ ll describe this session cuz it was so funny frfr: So like I got started wondering why the notification button in navbar doesnt update I then proceeded to delete the svg s I had and replace them with pc generated ones Then I proceeded to change the structure of both my app.py and navbar.jsx (visible in my commits) But I suddenly remembered I can debug with console logs which I have kept cuz y not To cut it short after debugging I saw in the console log a messoge that said and I quote index-D9jqm-wX.js:11 Navbar hasUnreadNotifications: undefined undefined and that was when I realised I had nowhere in the .jsx included the hasUnreadNotification boolean so there was no way of the client knowing what I was yapping abt in Navbar.jsx basically I was saying check if hasUnreadNotification is True I then used the find thingy of VSCode to add the argument to all the react pages Up Next: Have it tested by people give feedback. Activate global acces via Clouflare Automate deletion of old events with cron
SOOOOOOOO: Today I tried to make up for yesterday (I only did like 2 hrs) and here is what I did: So, I updated the navbar to have a settings page, which I was inspired to make because when trying to find an icon that represents stem extras and all the stem together and not just one kind of stem, a gear came to mind. But then I thought I should also make settings, so I put that aside for the time. And now I made the stem extras icon a more chemistry-looking bottle, and the gear I kept for the settings as I said I would. Everything is pretty much the same, except I made an edit and delete event buttons that were much needed because after all the test events I made, it was getting kind of sloppy and unprofessional because it was filled with gibberish. Same goes for the groups, so I did the exact same thing. Also, I made a table for the users to delete a post that many people have replied to by adding a soft delete function that basically checks if the post is deletable, and if it is not, it changes it to this post is no longer available, this post has been deleted. So, I then proceeded to make the settings page, which was very difficult and still I haven’t got over yet. So, I’ve made the appearance and delete account. I made the delete account button to work. It was kind of difficult so that I could secure it that there is no misuse of this button and hackers might mass delete accounts by hacking into them. I also made a report bug, change email, and change password tabs that although they technically or three work, they need some improvement, which I will make in the next devlog. I also made the appearance into something more modern and nice, which is like every other setting, an accordion dropdown that you press to switch to what mode you want. I’m trying to currently recreate the icon near the mode text so it’s a bit more fun, and I will do it in the next devlog. Logout works just fine. I’ve made custom emails and verification tokens for every single action. Also, They still need some work to be done. The verification tokens have made because they currently don’t redirect you back to a login page or something, so they feel empty and don’t work exactly as they are built to work as. Everything else is pretty much the same. I updated the content type so users can upload much larger files. For the next dev log, I’m thinking to fix the change password, change email, and report a bug functions. Also, make it able to upload GIFs for content types because currently, although possible, it is not working. I don’t know why. I have to troubleshoot it. And to fix those verification tokens and redirection.
I did all of the following: I’m thinking to fix the change password, change email, and report a bug functions. Also, make it able to upload GIFs for content types because currently, although possible, it is not working. I don’t know why. I have to troubleshoot it. And to fix those verification tokens and redirection. Problems I ENCOUNTERED: I tried and tried times again to fix my redirecting script for half an hour antil my stupid a$$ realised the problem was that resend was injecting a tracker in the website to track if the email was clicked and I removed it resulting on verification links working. After searching up my content error on stack overflow I found out it was neither a supabase or python storing error but it was in fact a nginx framework error that needed one line to be solved:( UP NEXT I am currently running Pentests and rawlers to optimise my webapps cybersecurity and when done I ll prevent any vulenerabilities (I got dyslexia). Right after that I ll try to get a userbase by using lapse to record me addvertising my site!
Today I worked on the cybersecurity aspect of my site btw :P ( I meant to write : but I did a typo P). I honestly was chilling doing nginx configuration and I also secured the recaptcha key. I also took heed of one of my comments and added an api for malicious domains plus I hardcoded some others. I also moved the sanatisation to the forms themselves (post, create group)
Hello!!! Sooooo I Did a few things like: I added pagination for if and when I get a larger userbase the app/webapp won’t crash (Mostly for mobile users) by loading all posts at once. I added a few things in the backend to make expanding this app/webapp easier. I also added RSVP buttons for “Going” and “Interested” in EventDetails and Events pages to make them more interesting. Implemented handleRsvp function to manage user RSVP status and update counts. Adjusted comment reply button to display comment count. Updated requirements.txt to include Pillow and redis. Added a second cron job to cleanup old read notifications NEXT UP: Fixing the UI Add right image sizes in every page w/ content Fix the reversed colours thing
I FINISHED ITTTT! So, I basically cleaned up the CSS as I told in the previous devlog. I also added category tags in every post, which was a feature of the HTML version but I had forgot to add it. Then, I also added a going and interesting interactions in events so that people may express where they would like to go from all the events. I also added the refactored edit and delete functions for events and groups, they weren’t working. I fixed the notifications cleanup which was previously not working, it was a cron job I added in the previous devlog. Also, in the profile page, I have now separated the person’s content into posts and replies, that way the UX is far better. Also, I made a crop image component so that the users can customize which part of the image they want in their PFP, and that is also good because now I don’t have to do the fitting anymore because once they have selected it, only the selected part of the icon is saved, so it becomes a lot more gestible for me. I am also adding content so that stemnet has lots of stuff, and further on I will be adding one or two more details and then shipping it. I really don’t think there is anything else to do, I really put a lot of hours into this, and yeah.
GUYS I DID SOME FINAL TOUCHUPS! I AM READY TO SHIP! THE TOUCHUPS HAD TO DO WITH THE GROUPPOSTS CONTENT RENDERING!💀💀💀💀
Ships:
See video HERE(OLD VERSION OF SITE): https://youtu.be/QUGb-TlbM0Q . I built STEMNet.gr, a student-driven social hub and resource directory designed specifically for Greek students. It aims to bridge the gap for students who lack local access to STEM clubs, robotics, and academic mentorship. It’s a space to discover curated educational resources, post and find events, and build a community where students can learn from and support each other. Moving from a CS50 project to a production-ready application was a steep learning curve. I spent countless hours diving into Flask, Jinja, and database documentation to ensure the site is secure against SQL injections and unauthorized access. Balancing feature development—like AJAX for real-time interaction, mobile responsiveness, and a custom dark/light mode theme system—while ensuring the site remains fast and secure, was the biggest challenge. I am most proud of creating a self-sustaining, alumni-driven ecosystem. This isn’t just a directory; it’s a platform where students can give back by contributing events they’ve discovered, effectively filling the guidance gap for those starting their STEM journey. I’ve successfully migrated it to a faster, more robust server infrastructure, implemented a secure registration flow, and built a fully functional social graph (followers/following).
STEMNet GREECE CAN YOU PLS STAR MY REPO AND GIMME STARS / I POORED A LOT OF EFFORT INTO IT Created by: Rosario Alexandros Morabito (prodevmod) . I built this as a CS50 final project that turned into a real world mission. PLS READ STEMNet was born out of a real struggle in Greece. Here, proper hands-on STEM education and local school clubs are hard to find, and getting your hands on basic electronics like an Arduino is a challenge you either rely on a single physical store in the whole country or buy online. But since parents often don’t trust internet shopping, young innovators get stuck. I wanted to fix this by building a cozy, peer to peer home where young Greek makers of the same age and passion can finally connect, share project feedback, and feel like they aren’t alone. Like I often times feel. Y develop it further The overwhelming amount of positive feedback I got from my previous shipping of the project and my friends who I cowardly showed it to because I was a bit scared they were going to make fun of me pushed me into expanding this with a React framework for the V1, but trust me, even more is coming. What’s Inside the Platform? The STEM Extra Vault: A handy resource library packed with everything students need to kickstart their independent journey into electronics and coding, making up for what traditional schools miss. Community Groups ( can also be used as School Clubs): Forum style discussion spaces where everyone can chat about their favorite topics. Students can even spin up their own groups to act as virtual versions of real world school clubs. Events & Future Webinars: A dedicated space tracking upcoming competitions, team meetups, and future online STEM teaching sessions that I plan to host once the user base grows. Self-Cleaning Notifications: A smart alert system that automatically wipes read notifications older than 30 days (with a cron job for FREE), keeping the interface clean so users never get overwhelmed by clutter. Built-in Safety & Sigma Profiles: BTS, the site keeps things secure with robust account verification thru session cookies and recapca, safe link-checking to keep malicious websites away thru nginx , customized user profiles with social and GitHub links, and easy account settings. I would realy want to see this project skyrocket! If you have any recomandations about how I can scale it or grow my userbase pls tell me!!!...
|
1793072946.3665419
|
1793159346.3665419
|
|
52936
|
DevToolBox by @Prajwol_Gynawali | Stardance
|
Prajwol_Gynawali
|
5
|
72.0
|
1086
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-03T06:42:41Z", "hours": 6.0, "multiplier": 14.51, "payout": 91, "blessing": "neutral", "text": "DevSatchel — Final Update I’ve added a lot of tools to Devsatchel and it’s finally starting to feel like a complete toolbox for everyday development work. Developer Tools JSON Formatter JSON Validator Regex Tester Diff Checker Base64 Encoder / Decoder URL Encoder / Decoder JWT Decoder UUID Generator Password Generator QR Code Generator Barcode Generator Hash Generator HTTP Request Builder CSS Unit Converter Code Beautifier HTML/CSS/JS Playground CSV ↔ JSON Converter CSS & Design Color Converter Gradient Generator Box Shadow Generator Flexbox Generator Color Palette Generator AI AI Code Reviewer Image Tools Image Compressor Image Resizer Image to PDF Image to Text (OCR) PDF Tools PDF to JPG PDF Merger Image to PDF Security AES Encryption Base64 Encoder / Decoder Hash Generator I also updated the UI, logo and logo background, added dark/light mode, improved the tool search, and fixed a lot of bugs while building everything.", "repo": "https://github.com/SnaggingCobra/DevToolBox", "demo": "https://devsatchel.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-27T07:47:10Z", "hours": 31.0, "multiplier": 16.52, "payout": 511, "blessing": "neutral", "text": "DevSatchel Ship I’ve finished a bunch of new tools and the project is finally starting to feel like a proper toolbox. Tools JSON Formatter JSON Validator Regex Tester Diff Checker Base64 Encoder / Decoder URL Encoder / Decoder JWT Decoder UUID Generator Password Generator Hash Generator HTTP Request Builder CSS Unit Converter Code Beautifier HTML/CSS/JS Playground CSS & Design Color Converter Gradient Generator Box Shadow Generator Flexbox Generator Color Palette Generator AI AI Code Reviewer Image Tools Image Compressor Image Resizer Image to PDF PDF to JPG Image to Text (OCR) PDF Image to PDF PDF to JPG Security AES Encryption Base64 Encoder / Decoder Hash Generator Also updated the UI, logo and logo background and fixed a lot of bugs along the way. The AI Code Reviewer now uses a backend API so the API key isn’t exposed in the frontend. Still have more tools I want to add, but this is where DevToolBox is at right now.", "repo": "https://github.com/SnaggingCobra/DevToolBox", "demo": "https://devsatchel.vercel.app/"}, {"ship_num": 3, "ts": "2026-09-20T07:44:28Z", "hours": 9.0, "multiplier": 15.65, "payout": 135, "blessing": "neutral", "text": "DevSatchel Ship Added AI Code Reviewer using the Gemini API Dev Jokes using an external API Small descriptions for the tools Fixed some issues from the last review All Tools JSON Formatter JSON Validator Regex Tester Diff Checker Color Converter Gradient Generator Box Shadow Generator Flexbox Generator Base64 Encoder/Decoder URL Encoder/Decoder JWT Decoder UUID Generator Password Generator QR Code Generator Barcode Generator Hash Generator CSS Unit Converter HTTP Request Builder AI Code Reviewer", "repo": "https://github.com/SnaggingCobra/DevToolBox", "demo": "https://devsatchel.vercel.app/"}, {"ship_num": 4, "ts": "2026-09-11T17:17:31Z", "hours": 16.0, "multiplier": 16.74, "payout": 267, "blessing": "neutral", "text": "When I first shipped DevSatchel it has name DevToolBox but i changed the name because in internet i found other have already used this name and i pulished it through netlify , it only had 8 tools. Since then I’ve been adding a lot more useful tools and slowly turning it into a proper all-in-one developer toolbox. The tools now include: JSON Formatter JSON Validator Regex Tester Diff Checker Color Converter Gradient Generator Box Shadow Generator Flexbox Generator Base64 Encoder/Decoder URL Encoder/Decoder JWT Decoder UUID Generator Password Generator QR Code Generator Barcode Generator Hash Generator CSS Unit Converter HTTP Request Builder i will be adding new tools in future also", "repo": "https://github.com/SnaggingCobra/DevToolBox", "demo": "https://devsatchel.vercel.app/"}, {"ship_num": 5, "ts": "2026-08-29T05:10:53Z", "hours": 10.0, "multiplier": 7.89, "payout": 82, "blessing": "neutral", "text": "Hey! I’m shipping my DevToolBox project to test out the shipping and voting process and understand how everything works. DevToolBox is a web-based developer toolbox where I’m building different useful developer utilities in one place, with a sidebar for navigating between tools and a workspace where each tool runs. Right now I have 8 working tools: • JSON Formatter • JSON Validator • Regex Tester • Diff Checker • Color Converter • Gradient Generator • Box Shadow Generator • Flexbox Generator The project isn’t completely finished yet — I’m still planning to add more tools, especially in the Encoding and Generators sections. I’m shipping it now because I want to experience the full ship → review → voting process with a project I’ve already built a significant part of. I’d appreciate any feedback on what I can improve before I continue expanding it!", "repo": "https://github.com/SnaggingCobra/DevToolBox", "demo": "https://devsatchel.vercel.app/"}]...
|
[{"post_id": 76325, "ts": "202 [{"post_id": 76325, "ts": "2026-10-03T06:36:30Z", "hours": 6.2589, "text": "#Devpost #32 this is not much of a big buti was short of 50 stardust so i dont had a plan so added one tool and improved some design for now closing this project with the base rate of 10 per hour i can get 60 thats enough for me"}, {"post_id": 74362, "ts": "2026-09-27T07:43:29Z", "hours": 4.3617, "text": "DevPost #31: DevSatchel Update PDF Merger The PDF Merger lets you select multiple PDFs and combine them into one file. Select multiple PDFs Merge them into one Simple browser-based interface I ran into a few issues while handling multiple PDFs and keeping the pages in the correct order, but got it working. image to Text The Image to Text tool uses OCR to extract text from images. Upload Image → Preview → Extract Text → Copy I kept it simple with just the extracted text and a Copy Text button. OCR works better with clear, high-quality images. Both tools run directly in the browser, and I’m continuing to add more useful tools to DevSatchel"}, {"post_id": 73983, "ts": "2026-09-26T13:41:59Z", "hours": 5.2164, "text": "DevPost #30: DevSatchel Update Today, I added two new tools to DevToolBox: Image to PDF Converter – Convert images into PDF files directly in the browser. PDF to JPG Converter – Convert PDF pages into JPG images and download them individually. I also updated the logo and changed the background to give DevSatchel a fresh new look. While working on the PDF to JPG converter, I faced a lot of errors, especially with rendering PDF pages and converting them into images. I had to spend time debugging and fixing issues to make the conversion work properly. Still improving and adding more useful tools. More updates coming soon"}, {"post_id": 73553, "ts": "2026-09-25T11:56:55Z", "hours": 4.5008, "text": "DevPost #29: devsatchel Update ### HTML/CSS/JS Playground A small browser-based coding environment for quickly testing web code. HTML, CSS, and JavaScript editors Live preview Run and Clear buttons Isolated JavaScript execution Responsive layout PDF to JPG Converter A browser-based tool for converting PDF pages into JPG images. PDF upload and drag & drop Adjustable JPG quality Page-by-page preview Download individual JPGs Download all pages as a ZIP Uses PDF.js and JSZip Both tools run mainly in the browser without requiring a backend for processing."}, {"post_id": 73127, "ts": "2026-09-24T13:22:34Z", "hours": 5.4194, "text": "Devpost #28 : added Image Compressor & Image Resizer Image Compressor Compress JPG, PNG, and WebP images. Adjust image quality and preview file size changes. Download compressed images. Image Resizer Resize images using custom width and height in pixels. Maintain aspect ratio or resize by percentage. Added size presets, fit, fill/crop, and stretch modes. Choose output format and quality. Challenges & Learning I faced some challenges with maintaining image proportions, handling different resize modes, and balancing image quality with file size. I used JavaScript and the Canvas API to process images directly in the browser without external APIs."}, {"post_id": 72649, "ts": "2026-09-23T12:45:45Z", "hours": 3.6008, "text": "DevPost #27: DevSatchel CSS Added Random color palettes generator Monochromatic, complementary, analogous, and triadic palettes Lock individual colors while generating Copy individual colors or the full palette Improvements Fixed errors in the previous tools Improved tool functionality and integration Fixed some issues found during testing More improvements coming soon!"}, {"post_id": 72315, "ts": "2026-09-22T17:25:17Z", "hours": 5.2369, "text": "DevPost #26: Devsatchel Update Spent some more time improving project and working on multiple parts of the project. Added Added AES Encryption / Decryption using the Web Crypto API more Faster Loading Tool Improvements & Fixes Updated the AI Code Reviewer backend and request handling Fixed issues in the HTTP Request Builder Improved tool loading and integration Fixed bugs found while testing existing tools Made some UI and workspace improvements"}, {"post_id": 71830, "ts": "2026-09-21T16:50:23Z", "hours": 2.5803, "text": "DevPost #25: Code Beautifier Added Added a new Code Beautifier tool to DevSatchel It uses Prettier to format and clean up: JavaScript JSON HTML CSS It also includes Beautify, Copy, and Clear buttons. Everything runs directly in the browser — no AI or API needed."}, {"post_id": 71030, "ts": "2026-09-20T07:18:30Z", "hours": 0.5519, "text": "Devpost #24: Dev Jokes Added Added a small Dev Jokes section below the Quick Links in DevToolBox! It fetches a random programming joke using JokeAPI whenever the website is opened or refreshed. There’s also a New Joke button to get another one without refreshing the page. Small feature, but it makes the workspace a little more fun while coding!"}, {"post_id": 70997, "ts": "2026-09-20T05:41:29Z", "hours": 1.7203, "text": "DevPost: #23 #AI Code Reviewer I have finally completed the AI Code Reviewer The AI Code Reviewer uses the Gemini API to review source code based on the specific task selected by the user. It supports: Full Review Bug Detection Security Review Performance Review Code Quality Readability Test Suggestions The code is sent to my backend through a Netlify Function, which then communicates with the Gemini API."}, {"post_id": 70104, "ts": "2026-09-18T14:03:32Z", "hours": 3.0833, "text": "#DecPost #22: # AI Code Reviewer Last time I was mostly working on the UI and getting the basic structure in place. This time I started working more on the actual review logic . I added different review modes so the AI doesn’t just give the same generic review every time: Full Review Bugs Security Performance Code Quality Readability Tests Each mode now has its own specific prompt. So if I choose Bugs the AI should focus on finding bugs and incorrect behavior instead of trying to review everything at once. I also worked on making the selected review type control what gets sent to the AI. What’s left Connect the actual AI API Send the code + selected review type Display the AI response Add loading and error handling Test all the review modes Improve the prompts based on the results Test with different programming languages Clean up anything that breaks during testing What’s next Next I’m going to work on connecting the actual AI and finally see how the reviewer performs with real code."}, {"post_id": 69111, "ts": "2026-09-16T12:06:13Z", "hours": 2.5633, "text": "DevPost #21: AI Code Reviewer I’ve been working on adding an AI Code Reviewer to DevSatchel recently. The main goal is pretty simple: paste your code, let the AI look through it, and get feedback that actually helps you understand what could be improved. What I’ve done so far Created the AI Code Reviewer tool Built the UI and layout Added the code input area Added the review/results section Added the basic review workflow Connected it to the DevToolBox tool system Finished the initial frontend work The UI is now in place, so I can actually start working on the part that matters most — the AI review itself. What’s left Connect the AI/API Send the user’s code to the AI for review Show the feedback properly in the results section Make the AI identify bugs and possible issues Add suggestions for improving the code Support multiple programming languages Add proper loading/error handling Test it with different types of code Clean up anything that feels rough after testing What I’m doing next My next step is connecting the actual AI backend. Once that’s working, I’ll test it with real code and see how useful the reviews actually are. From there I’ll probably spend more time improving the prompts, handling different languages, and making the feedback easier to understand. The frontend part is mostly there now. Now it’s time to make the AI actually do the work."}, {"post_id": 67749, "ts": "2026-09-14T00:00:31Z", "hours": 0.6944, "text": "DevPost #20: Starting AI Code Reviewer starting a new project yesterday i got busy and coudnt code much did 12m but my streak is broken and im busy today also so strying to do a devpost now not much for now # Ai Code Reviwer is a tool that will be reviewing your code in diffrent terms like bug security and much more i will be using API of a chatbot and only leave few section that will allow user to review their code"}, {"post_id": 66051, "ts": "2026-09-11T16:47:05Z", "hours": 5.8292, "text": "DevPost #19: one of the hardest and challenging tool i have ever worked i would have created a new project here for thisbut i added this most of time im just reding documentation atching fixes and tool little course to make this tol working properly HTTP Request BuilderIt can create and send GET, POST, PUT, PATCH, and DELETE requests, add parameters and headers, view responses, and generate JavaScript, cURL, and Python code. The main challenges were fixing JavaScript errors, handling URL parameters correctly, and dealing with browser CORS restrictions."}, {"post_id": 64653, "ts": "2026-09-09T06:55:33Z", "hours": 2.3989, "text": "DevPost #18: Finally fixed the hash geneatpor error it took over a hour this tiime and also have done some changes in the main style.css for a better ui working in this for a quite long also now i am thinking o add more tools lets see what gets me their"}, {"post_id": 63662, "ts": "2026-09-07T16:20:42Z", "hours": 0.3547, "text": "DevPost #17: Asimple and functional tool Password generator was added and now after i implement the css design i will work on the qrcode generator and i have found a simple guide for this an di think it will aslo work as intended i have watched some guide for this and it is looking grate fr now need to implement it to main now"}, {"post_id": 63643, "ts": "2026-09-07T15:48:20Z", "hours": 0.8675, "text": "DevPost #16: currently i have been updating all tools css and also added the uuid generator but mainly im focused on improving css of whole site . After i finish this im resuming the password Generator section."}, {"post_id": 62297, "ts": "2026-09-05T16:30:36Z", "hours": 0.7217, "text": "DevPost #15: Currently working on the improvement of whole ui and adding new features im thinking to add more featiures like quicklinks where i will add 100+ other tools that will have link toother website"}, {"post_id": 61526, "ts": "2026-09-04T14:08:14Z", "hours": 0.6561, "text": "DevPost #14: the toolboox is looking too dull and many have suggested me to imprve my css and the ui is very boring so im trying to add css in my website with my own toolbox gradient generator and im also using my own toolbox color conveter to add some colores here hope everyone will like my new design"}, {"post_id": 60099, "ts": "2026-09-02T07:50:01Z", "hours": 0.6417, "text": "Devpost #13: In my recent ship rating i got suggestion that if we could add no of items it would be grate so i have implemented it i have additionally added a section to enter number of items and a generate button and its working perfectly"}, {"post_id": 59666, "ts": "2026-09-01T16:10:38Z", "hours": 0.7028, "text": "DevPost #12 : From the recent revire from my ship over 5 out of 12 peope have suggested me too fix the css loading its taking time so now i have Improved the tool loading system by preloading the tool CSS and making sure the CSS loads before the tool is displayed also fixed up the JavaScript loading to minimze the loading time"}, {"post_id": 59020, "ts": "2026-08-31T16:30:59Z", "hours": 0.8525, "text": "DevPost #11 : First Of all m ship was approved thats nice and after that i have restarted my project worked in the url encoder and jwt decoder section i have a lot of problem in the jwt decoder because i dont even knoe properly to use this so i took help from other creators online used their method and isea for this and implemented my toolbox design in it ."}, {"post_id": 58694, "ts": "2026-08-31T06:39:59Z", "hours": 0.3475, "text": "DevPost #10 this is my final devpost until my previous ship is approved . i woudnt do this but i need some work to do in base64 that wasnt working properly so did some fixes their and now closing it until previous ship is approved"}, {"post_id": 58215, "ts": "2026-08-30T16:00:31Z", "hours": 2.5661, "text": "DevPost #9 : recently got a lot of troublee when shipping my project so ciudnt work properly for previous day still i have now added Base64 Encoder/Decoder you can now encode and decode base64 text and also recently i have finished the url encoder where you can encode the url or decode the given url these are some tools that i have never used but got suggestion to add so i ahve added them"}, {"post_id": 57073, "ts": "2026-08-29T05:06:27Z", "hours": 0.3483, "text": "DevPost #8 : just now figured out that i could ship my project multple time and get reviewed so im shipping my project currently i have 8 tools all working properly added readme and page is live through github pages lets see my first ship"}, {"post_id": 56459, "ts": "2026-08-28T07:14:29Z", "hours": 2.8381, "text": "Devpost #7 : added boxshadow and flexbox generator in the CSS secction and finished the css section for now now will be working on encoding"}, {"post_id": 55157, "ts": "2026-08-26T17:05:48Z", "hours": 2.1258, "text": "DevPost #6: Added Color Coverter and Gradient generrator with live preview that very good you should checkout that"}, {"post_id": 54604, "ts": "2026-08-25T17:04:14Z", "hours": 0.8622, "text": "DevPost #5: added diff checker and fixed the incoming errors fixed css errors"}, {"post_id": 53187, "ts": "2026-08-23T17:00:52Z", "hours": 2.2847, "text": "DevPost #4: Added the css for the main page and made sub folders for tools and connected to the main js . currenlty finished 3 tools json formatter , json validator, regex tester. search is working theme is working"}, {"post_id": 52875, "ts": "2026-08-23T07:51:08Z", "hours": 0.635, "text": "DevPost #3 : done the structure thing this is the main design now i will be adding the whole design and then add js also . Can someone help me in the top header section I have a Text DevToolBox in h1 but in screen i have seen DevToolBox! why is this"}, {"post_id": 52857, "ts": "2026-08-23T07:00:06Z", "hours": 0.9311, "text": "DevPost #2 : Maing some design an dtesting which design migh tbe good for whole structure . im trying to make a good looking skeliton before writing the actual code"}, {"post_id": 52477, "ts": "2026-08-22T16:44:53Z", "hours": 0.3392, "text": "#1 DevPost : Started to make a Toolbox for devs got a lot of errors in like first 5 min like coudnt connect the git togithub a lot o fproblem thanks to vscode agent and chatgpt they helpedme to fix the error"}]...
|
Title: DevToolBox by @Prajwol_Gynawali | Stardance Title: DevToolBox by @Prajwol_Gynawali | Stardance
Devlogs:
#1 DevPost : Started to make a Toolbox for devs got a lot of errors in like first 5 min like coudnt connect the git togithub a lot o fproblem thanks to vscode agent and chatgpt they helpedme to fix the error
DevPost #2 : Maing some design an dtesting which design migh tbe good for whole structure . im trying to make a good looking skeliton before writing the actual code
DevPost #3 : done the structure thing this is the main design now i will be adding the whole design and then add js also . Can someone help me in the top header section I have a Text DevToolBox in h1 but in screen i have seen DevToolBox! why is this
DevPost #4: Added the css for the main page and made sub folders for tools and connected to the main js . currenlty finished 3 tools json formatter , json validator, regex tester. search is working theme is working
DevPost #5: added diff checker and fixed the incoming errors fixed css errors
DevPost #6: Added Color Coverter and Gradient generrator with live preview that very good you should checkout that
Devpost #7 : added boxshadow and flexbox generator in the CSS secction and finished the css section for now now will be working on encoding
DevPost #8 : just now figured out that i could ship my project multple time and get reviewed so im shipping my project currently i have 8 tools all working properly added readme and page is live through github pages lets see my first ship
DevPost #9 : recently got a lot of troublee when shipping my project so ciudnt work properly for previous day still i have now added Base64 Encoder/Decoder you can now encode and decode base64 text and also recently i have finished the url encoder where you can encode the url or decode the given url these are some tools that i have never used but got suggestion to add so i ahve added them
DevPost #10 this is my final devpost until my previous ship is approved . i woudnt do this but i need some work to do in base64 that wasnt working properly so did some fixes their and now closing it until previous ship is approved
DevPost #11 : First Of all m ship was approved thats nice and after that i have restarted my project worked in the url encoder and jwt decoder section i have a lot of problem in the jwt decoder because i dont even knoe properly to use this so i took help from other creators online used their method and isea for this and implemented my toolbox design in it .
DevPost #12 : From the recent revire from my ship over 5 out of 12 peope have suggested me too fix the css loading its taking time so now i have Improved the tool loading system by preloading the tool CSS and making sure the CSS loads before the tool is displayed also fixed up the JavaScript loading to minimze the loading time
Devpost #13: In my recent ship rating i got suggestion that if we could add no of items it would be grate so i have implemented it i have additionally added a section to enter number of items and a generate button and its working perfectly
DevPost #14: the toolboox is looking too dull and many have suggested me to imprve my css and the ui is very boring so im trying to add css in my website with my own toolbox gradient generator and im also using my own toolbox color conveter to add some colores here hope everyone will like my new design
DevPost #15: Currently working on the improvement of whole ui and adding new features im thinking to add more featiures like quicklinks where i will add 100+ other tools that will have link toother website
DevPost #16: currently i have been updating all tools css and also added the uuid generator but mainly im focused on improving css of whole site . After i finish this im resuming the password Generator section.
DevPost #17: Asimple and functional tool Password generator was added and now after i implement the css design i will work on the qrcode generator and i have found a simple guide for this an di think it will aslo work as intended i have watched some guide for this and it is looking grate fr now need to implement it to main now
DevPost #18: Finally fixed the hash geneatpor error it took over a hour this tiime and also have done some changes in the main style.css for a better ui working in this for a quite long also now i am thinking o add more tools lets see what gets me their
DevPost #19: one of the hardest and challenging tool i have ever worked i would have created a new project here for thisbut i added this most of time im just reding documentation atching fixes and tool little course to make this tol working properly HTTP Request BuilderIt can create and send GET, POST, PUT, PATCH, and DELETE requests, add parameters and headers, view responses, and generate JavaScript, cURL, and Python code. The main challenges were fixing JavaScript errors, handling URL parameters correctly, and dealing with browser CORS restrictions.
DevPost #20: Starting AI Code Reviewer starting a new project yesterday i got busy and coudnt code much did 12m but my streak is broken and im busy today also so strying to do a devpost now not much for now # Ai Code Reviwer is a tool that will be reviewing your code in diffrent terms like bug security and much more i will be using API of a chatbot and only leave few section that will allow user to review their code
DevPost #21: AI Code Reviewer I’ve been working on adding an AI Code Reviewer to DevSatchel recently. The main goal is pretty simple: paste your code, let the AI look through it, and get feedback that actually helps you understand what could be improved. What I’ve done so far Created the AI Code Reviewer tool Built the UI and layout Added the code input area Added the review/results section Added the basic review workflow Connected it to the DevToolBox tool system Finished the initial frontend work The UI is now in place, so I can actually start working on the part that matters most — the AI review itself. What’s left Connect the AI/API Send the user’s code to the AI for review Show the feedback properly in the results section Make the AI identify bugs and possible issues Add suggestions for improving the code Support multiple programming languages Add proper loading/error handling Test it with different types of code Clean up anything that feels rough after testing What I’m doing next My next step is connecting the actual AI backend. Once that’s working, I’ll test it with real code and see how useful the reviews actually are. From there I’ll probably spend more time improving the prompts, handling different languages, and making the feedback easier to understand. The frontend part is mostly there now. Now it’s time to make the AI actually do the work.
#DecPost #22: # AI Code Reviewer Last time I was mostly working on the UI and getting the basic structure in place. This time I started working more on the actual review logic . I added different review modes so the AI doesn’t just give the same generic review every time: Full Review Bugs Security Performance Code Quality Readability Tests Each mode now has its own specific prompt. So if I choose Bugs the AI should focus on finding bugs and incorrect behavior instead of trying to review everything at once. I also worked on making the selected review type control what gets sent to the AI. What’s left Connect the actual AI API Send the code + selected review type Display the AI response Add loading and error handling Test all the review modes Improve the prompts based on the results Test with different programming languages Clean up anything that breaks during testing What’s next Next I’m going to work on connecting the actual AI and finally see how the reviewer performs with real code.
DevPost: #23 #AI Code Reviewer I have finally completed the AI Code Reviewer The AI Code Reviewer uses the Gemini API to review source code based on the specific task selected by the user. It supports: Full Review Bug Detection Security Review Performance Review Code Quality Readability Test Suggestions The code is sent to my backend through a Netlify Function, which then communicates with the Gemini API.
Devpost #24: Dev Jokes Added Added a small Dev Jokes section below the Quick Links in DevToolBox! It fetches a random programming joke using JokeAPI whenever the website is opened or refreshed. There’s also a New Joke button to get another one without refreshing the page. Small feature, but it makes the workspace a little more fun while coding!
DevPost #25: Code Beautifier Added Added a new Code Beautifier tool to DevSatchel It uses Prettier to format and clean up: JavaScript JSON HTML CSS It also includes Beautify, Copy, and Clear buttons. Everything runs directly in the browser — no AI or API needed.
DevPost #26: Devsatchel Update Spent some more time improving project and working on multiple parts of the project. Added Added AES Encryption / Decryption using the Web Crypto API more Faster Loading Tool Improvements & Fixes Updated the AI Code Reviewer backend and request handling Fixed issues in the HTTP Request Builder Improved tool loading and integration Fixed bugs found while testing existing tools Made some UI and workspace improvements
DevPost #27: DevSatchel CSS Added Random color palettes generator Monochromatic, complementary, analogous, and triadic palettes Lock individual colors while generating Copy individual colors or the full palette Improvements Fixed errors in the previous tools Improved tool functionality and integration Fixed some issues found during testing More improvements coming soon!
Devpost #28 : added Image Compressor & Image Resizer Image Compressor Compress JPG, PNG, and WebP images. Adjust image quality and preview file size changes. Download compressed images. Image Resizer Resize images using custom width and height in pixels. Maintain aspect ratio or resize by percentage. Added size presets, fit, fill/crop, and stretch modes. Choose output format and quality. Challenges & Learning I faced some challenges with maintaining image proportions, handling different resize modes, and balancing image quality with file size. I used JavaScript and the Canvas API to process images directly in the browser without external APIs.
DevPost #29: devsatchel Update ### HTML/CSS/JS Playground A small browser-based coding environment for quickly testing web code. HTML, CSS, and JavaScript editors Live preview Run and Clear buttons Isolated JavaScript execution Responsive layout PDF to JPG Converter A browser-based tool for converting PDF pages into JPG images. PDF upload and drag & drop Adjustable JPG quality Page-by-page preview Download individual JPGs Download all pages as a ZIP Uses PDF.js and JSZip Both tools run mainly in the browser without requiring a backend for processing.
DevPost #30: DevSatchel Update Today, I added two new tools to DevToolBox: Image to PDF Converter – Convert images into PDF files directly in the browser. PDF to JPG Converter – Convert PDF pages into JPG images and download them individually. I also updated the logo and changed the background to give DevSatchel a fresh new look. While working on the PDF to JPG converter, I faced a lot of errors, especially with rendering PDF pages and converting them into images. I had to spend time debugging and fixing issues to make the conversion work properly. Still improving and adding more useful tools. More updates coming soon
DevPost #31: DevSatchel Update PDF Merger The PDF Merger lets you select multiple PDFs and combine them into one file. Select multiple PDFs Merge them into one Simple browser-based interface I ran into a few issues while handling multiple PDFs and keeping the pages in the correct order, but got it working. image to Text The Image to Text tool uses OCR to extract text from images. Upload Image → Preview → Extract Text → Copy I kept it simple with just the extracted text and a Copy Text button. OCR works better with clear, high-quality images. Both tools run directly in the browser, and I’m continuing to add more useful tools to DevSatchel
#Devpost #32 this is not much of a big buti was short of 50 stardust so i dont had a plan so added one tool and improved some design for now closing this project with the base rate of 10 per hour i can get 60 thats enough for me
Ships:
Hey! I’m shipping my DevToolBox project to test out the shipping and voting process and understand how everything works. DevToolBox is a web-based developer toolbox where I’m building different useful developer utilities in one place, with a sidebar for navigating between tools and a workspace where each tool runs. Right now I have 8 working tools: • JSON Formatter • JSON Validator • Regex Tester • Diff Checker • Color Converter • Gradient Generator • Box Shadow Generator • Flexbox Generator The project isn’t completely finished yet — I’m still planning to add more tools, especially in the Encoding and Generators sections. I’m shipping it now because I want to experience the full ship → review → voting process with a project I’ve already built a significant part of. I’d appreciate any feedback on what I can improve before I continue expanding it!
When I first shipped DevSatchel it has name DevToolBox but i changed the name because in internet i found other have already used this name and i pulished it through netlify , it only had 8 tools. Since then I’ve been adding a lot more useful tools and slowly turning it into a proper all-in-one developer toolbox. The tools now include: JSON Formatter JSON Validator Regex Tester Diff Checker Color Converter Gradient Generator Box Shadow Generator Flexbox Generator Base64 Encoder/Decoder URL Encoder/Decoder JWT Decoder UUID Generator Password Generator QR Code Generator Barcode Generator Hash Generator CSS Unit Converter HTTP Request Builder i will be adding new tools in future also
DevSatchel Ship Added AI Code Reviewer using the Gemini API Dev Jokes using an external API Small descriptions for the tools Fixed some issues from the last review All Tools JSON Formatter JSON Validator Regex Tester Diff Checker Color Converter Gradient Generator Box Shadow Generator Flexbox Generator Base64 Encoder/Decoder URL Encoder/Decoder JWT Decoder UUID Generator Password Generator QR Code Generator Barcode Generator Hash Generator CSS Unit Converter HTTP Request Builder AI Code Reviewer
DevSatchel Ship I’ve finished a bunch of new tools and the project is finally starting to feel like a proper toolbox. Tools JSON Formatter JSON Validator Regex Tester Diff Checker Base64 Encoder / Decoder URL Encoder / Decoder JWT Decoder UUID Generator Password Generator Hash Generator HTTP Request Builder CSS Unit Converter Code Beautifier HTML/CSS/JS Playground CSS & Design Color Converter Gradient Generator Box Shadow Generator Flexbox Generator Color Palette Generator AI AI Code Reviewer Image Tools Image Compressor Image Resizer Image to PDF PDF to JPG Image to Text (OCR) PDF Image to PDF PDF to JPG Security AES Encryption Base64 Encoder / Decoder Hash Generator Also updated the UI, logo and logo background and fixed a lot of bugs along the way. The AI Code Reviewer now uses a backend API so the API key isn’t exposed in the frontend. Still have more tools I want to add, but this is where DevToolBox is at right now.
DevSatchel — Final Update I’ve added a lot of tools to Devsatchel and it’s finally starting to feel like a complete toolbox for everyday development work. Developer Tools JSON Formatter JSON Validator Regex Tester Diff Checker Base64 Encoder / Decoder URL Encoder / Decoder JWT Decoder UUID Generator Password Generator QR Code Generator Barcode Generator Hash Generator HTTP Request Builder CSS Unit Converter Code Beautifier HTML/CSS/JS Playground CSV ↔ JSON Converter CSS & Design Color Converter Gradient Generator Box Shadow Generator Flexbox Generator Color Palette Generator AI AI Code Reviewer Image Tools Image Compressor Image Resizer Image to PDF Image to Text (OCR) PDF Tools PDF to JPG PDF Merger Image to PDF Security AES Encryption Base64 Encoder / Decoder Hash Generator I also updated the UI, logo and logo background, added dark/light mode, improved the tool search, and fixed a lot of bugs while building everything....
|
1793094600.0657809
|
1793181000.0657809
|
|
53459
|
alchemizer by @alfiocutuli08 | Stardance
|
alfiocutuli08
|
0
|
71.9
|
0
|
[]
|
[{"post_id": 53281, "ts": "202 [{"post_id": 53281, "ts": "2026-08-23T18:48:33Z", "hours": 71.8953, "text": "prova"}]...
|
Title: alchemizer by @alfiocutuli08 | Stardance
D Title: alchemizer by @alfiocutuli08 | Stardance
Devlogs:
prova...
|
1792749123.9598682
|
1793353923.9598682
|
|
3479
|
Unofficial Google Docs Client by @nolanqsp | Stard Unofficial Google Docs Client by @nolanqsp | Stardance...
|
nolanqsp
|
0
|
71.79
|
0
|
[]
|
[{"post_id": 79028, "ts": "202 [{"post_id": 79028, "ts": "2026-10-12T12:39:09Z", "hours": 10.2656, "text": "GitHub, Why? Last weekend GitHub decided to suspend my account for no apparent reason(No it wasn’t a DMCA from Google). I got an email saying for me to “reverify my academic status” for the student developer pack at the same time I got suspended. I tried to do that but… you can’t reverify without being logged in, and you can’t login when you are suspended. So I contacted support and they asked “how [I] plan to use GitHub” and that “[my] account was flagged by [their] abuse-detection systems for manual review, as it may conflict with [their] Terms of Service”. I responded but haven’t gotten any response since then(that was a week ago). I ended up moving at least temporarily to GitLab. While I had a copy of the git repository on my development machine, unfortunately this doesn’t include GitHub releases. I created a new one on GitLab but there aren’t any before the newest one. Anyhow, lets get to the new features: Fix crashing when exiting causing lingering threads Add support for the space key & several special characters including Enter for newlines Add support for different font sizes Add support for downloading and applying font families at runtime (Huge thanks to Jonathan Neal for Google Fonts catalog) Improve install script by supporting powershell 5(the one included in windows) and fixing several errors Fix bug where installer’s progress bar wouldn’t update until completed Cache parsed Savekeys to prevent additional wasted compute Update installers to use GitLab Anyhow, those are the recent updates! Hopefully GitHub reviews my reinstatement request soon. :)"}, {"post_id": 72171, "ts": "2026-09-22T11:10:12Z", "hours": 9.4697, "text": "Lots more marginal improvements + New Rendering Engine + Pain Recently I have been adding: Support for more keys(symbols, numbers, numpad numbers & arrow keys) Paste (CTRL + V) support More verbose logging New Rendering Engine Can include additional data(underline color, etc) for the future Seems more stable(the old one was kind of jank) But to be honest, most of the time was spent trying to fix some unliveable bugs, when typing to quickly, stuff appears after the cursor. In addition when typing, bold text after the cursor seems to offset. I learned something that can help with the latter bug, but I wasn’t able to fix either."}, {"post_id": 66698, "ts": "2026-09-12T16:02:24Z", "hours": 7.985, "text": "Building Up to Release I’ve been working on numerous small issues that I have been putting off. One of these is that all documents over ~1.5 pages were getting cut off, it turns out the contents of the document is split into multiple chunks, each around ~1.5 pages long. It was a relatively simple problem, just needed to fix it. Also binding(incoming changes) now runs on a separate thread so that the UI doesn’t freeze when somebody else types. Saving also now runs on a separate thread, it auto saves every ~1 second, which caused another problem, outgoing changes got relayed back as incoming changes by Google’s servers, meaning everything you typed got duplicated. Again, simple fix, just needed doing. The main thing however is the caret/cursor behavior, which was/is doing some funky stuff, jumping around whenever you changed lines. I added a binary search to help with this, which helped but didnt completely fix it. So there is still some work there. I also added some savekeys to minimize the log output, because before…… there were almost a MB of logs from each run. The main things that stand before release are to finish the cursor behaviour, bolds & italics shifting, and add a home screen with your documents."}, {"post_id": 62838, "ts": "2026-09-06T11:25:02Z", "hours": 5.5689, "text": "HUGE Progress The past few hours I have worked on this project have been extremely productive. I found a header that genuine Google Docs sends, “X-Same-Domain”, which I believe just indicates whether the request is being sent to the same domain as the sender. It turns out that Google actively blocks requests from other domains, but luckily we can just send “X-Same-Domain” with a value of 1, pretending to be coming from the “docs.google.com” domain. After this realization the “/save” endpoint returned 200 (OK) . This was huge progress, this has been a major blocker for months . The one problem was that while the status code stated that the request was successful, the actual request payload contained an error “XSRF” and a string of numbers and letters, which I thought was probably some kind of authentication/coordination token. After a quick Google search, I realized that this was a token to prevent other websites in the same browser from sending requests impersonating Google Docs as the browser auto attaches authentication cookies. To my surprise, when I added “&token=XXXXXX” (with XXXXXX being the string of numbers and letters) to the request url, we get a different error! This one was very ambiguous though, it just was a JSON payload containing nothing but the number “400” , as in 400 (Bad Request) which I had become to dread. After searching around the codebase for a while I found a problem with the url encoding logic, Url encoding is the proccess of replacing invalid character with %XX (XX being the ASCII code for the invalid character), it turns out “&“s are valid characters……. but I was replacing them. Ampersands are also the seperator for parameters. I think the problem was that within the Google Docs server code, it seperates the parameters then decodes each one. With this problem fixed, saving worked!!!! There were a few tiny bugs I wont get into, but largely it worked. I implemented merging changes(sending “hello” rather than “h” + “e” + “l”+ “l”+ “o”). With saving working, I decided to start working on seeing whether these solutions also worked on “/bind” (real-time incoming changes), they didn’t immediately, but after a few tweaks trying to replicate the URL parameters that Google Docs uses, we had incoming changes! I had to do some fancy async enumerable shenanigans to get them to come in asynchronously. The main thing left to do on incoming changes is to set up a seperate thread. Anyhow, Big Devlog, just felt that if I wrote a devlog, it would be outdated within the hour. See ya next time! ; )"}, {"post_id": 60276, "ts": "2026-09-02T15:29:13Z", "hours": 3.3589, "text": "Polish ™ Worked on polishing up the UI, now the title of the document along with your Google account name and profile picture are displayed in the open document screen. Also text wrapping behaves much better. I also have been expermenting alot on how to get saving and realtime collaboration, since the last piece of progress, not much, just alot of 400 (Bad Request)s"}, {"post_id": 59515, "ts": "2026-09-01T11:51:25Z", "hours": 1.7619, "text": "Progress on Collaboration and saving Made some substantial progress on realtime collaboration, now I can successfully authenticate by posting to /bind to get a SID to then eventually make requests to /bind and /save. This was made possible by scraping the main web endpoint."}, {"post_id": 51809, "ts": "2026-08-21T17:28:55Z", "hours": 3.5811, "text": "Linux Compatibility And Polish The past few hours have been spent on refining the installer and associated scripts to work better on Linux and give a more reliable experience. Along with cleaning up some unimplemented features. A clear permission prompt for browser-scraping has been added. The past few Devlogs were focused on Internal Mode(Logging in without an external Browser), I still have plans to work on this but it is no longer the most pressing for me right now. School is starting soon for me, and I will have less time to work on this. I Want to get this ready to ship before the start of school so I can get this shipped before the end of the challenge. I will be focusing more on polish, installers, and getting it into a shippable state, If I can get saving to work before then, that’s great. But if not, I want to be able to ship a polished product even if it is missing a crucial feature(saving). But there is no guarantee that I will get it working by sinking more time into it, because it needs more reverse-engineering, I could get it to work in 3 Hours or 500, its down to how quickly I can crack the code in Wireshark(if ever)."}, {"post_id": 42573, "ts": "2026-08-07T12:04:37Z", "hours": 0.36, "text": "Welp, so much for that 2 Devlogs Ago I said I would create a CEF based C# app to authenticate with google. I did not realize that google explicitly blocks this. You might think, just change the “User-Agent: xxxxxx”, but no, Google has an entire JS detection system to stop exactly that. So then I tried making a web wrapper around “accounts.google.com” but Google has a CORS policy around this. So back to Servo it is!"}, {"post_id": 36980, "ts": "2026-07-29T12:37:08Z", "hours": 0.25, "text": "Progress! See Previous devlog."}, {"post_id": 36348, "ts": "2026-07-28T12:21:12Z", "hours": 4.8356, "text": "Internal Mode Been working on a Servo based google login (Internal Mode )(based on the servo slint example) in rust. I got far enough to be able to login, but it would take a lot more work in order to get to actually being able to login to google docs. This is my first rust project that goes beyond “Hello World!” so I have been trial and erroring my way through this proccess. I have realised that: My rust is not even close enough to being able to complete this within a reasonable timeframe(or ever) Servo doesn’t have any C#(my first and most experienced language) bindings(or not that I can find) CEF(Chromium Embedded Framework) does have C# bindings (Unfortunately is ALOT more bloated compared to Servo), aand Avalonia integration (I use Avalonia for the rest of the Google Docs App) Servo based login: doopyelephant/ServoGoogleLogin I Have started work on a CEF based google login in C#. Hopefully it plays out :)"}, {"post_id": 27686, "ts": "2026-07-13T13:59:14Z", "hours": 3.8225, "text": "Chromium App-Based-Encryption I have been working on chromium based browser support. Chrome & other modern Chromium based browsers use App-Bound-Encryption to encrypt their cookies. This is the reason why this unofficial Google Docs Client is currently unable to fully decrypt cookies from modern chromium based browsers out of the box on Windows. Chromium encrypts its cookies using the Windows DDAPI(Figure 2). Chromium used to decrypt cookies using the methods implemented in this repository before Chromium 127, this repository should decrypt cookies from chromium versions 127 and below(Figure 1). Figure 1 (C4 Bomb: Blowing up Chrome’s Appbound Cookie Encryption, www.cyberark.com/resources/threat-research-blog/c4-bomb-blowing-up-chromes-appbound-cookie-encryption . Accessed 13 July 2026.) Figure 2 (C4 Bomb: Blowing up Chrome’s Appbound Cookie Encryption, www.cyberark.com/resources/threat-research-blog/c4-bomb-blowing-up-chromes-appbound-cookie-encryption . Accessed 13 July 2026. ) Path forward On Windows ABE is in full effect, we would need SYSTEM perms, and try to impersonate Chrome. I plan to integrate xaitax/Chrome-App-Bound-Encryption-Decryption but this likely will not work forever, it is an arms race with Google and xaitax. Currently it works but likely Google with shut it down eventually. On Linux ABE is only used on Windows, on Linux Chromium uses the system Keychain over DBUS. (Gnome or KWallet) If these are unavailable it uses a completely exposed key in a file(basic encyption). This is very surpassable, it just needs implementation."}, {"post_id": 20798, "ts": "2026-07-02T14:33:09Z", "hours": 1.9575, "text": "Dynamic Path Support! Dynamic Paths are now enabled by default! Currently only Firefox works reliably from my limited testing. Zen(Fork of Firefox) works like 1/2 the time, and chromium based browsers get found but don’t work properly. The UI is kind of broken but it works for now(Working on it). Beta 3 is now released on Github with builds from the new Package&Release Script mentioned in the previous devlog."}, {"post_id": 19195, "ts": "2026-06-30T13:43:50Z", "hours": 1.8528, "text": "Platforms Platforms Platforms! Today I worked on yet more build scripts , now .zip files can be generated for every supported platform and placed in a folder with a single command! I still need to update the installer to fetch the corresponding .zip for the OS and Arch automatically. I am planning on doing my first ship once the installer & associated scripts are in a finished state where you can just paste one command into the terminal (for Win/Linux) and it opens the installer application which walks through the installation. After the installation the application should be able to be launched from the Start Menu/App Launcher along with an icon. Also the Dynamic Browser Paths(automatically finding the cookie directory of the user’s installed browser) should be stable, or if not then Internal Mode(planned mode which packages a Servo based browser to login with google to get cookies for auth)."}, {"post_id": 15601, "ts": "2026-06-25T11:20:57Z", "hours": 5.0742, "text": "Beta 2: Unofficial Google Docs Client I have worked more on RE’ing in Wireshark to RE saving and binding to a document(receive realtime updates), Implemented the infrastructure in the application, but both currently return a 400 (Bad Request), I am still working on it. There is a new material 3 theme with some other subtle UI changes. Various little fixes aswell. Also, you used to have to unzip and run the installer manually, but now there is a curl install command on the repo that downloads it to AppData and runs it."}, {"post_id": 8050, "ts": "2026-06-13T13:03:13Z", "hours": 4.2731, "text": "Finished Installer Flow! The installer now successfully downloads & installs the Google Docs application. It downloads the icon and adds a shortcut to the start menu, and adds Registry entries to add the uninstall script to the Add & Remove Programs Page in the windows settings app."}, {"post_id": 6249, "ts": "2026-06-10T14:33:35Z", "hours": 1.5903, "text": "Installer flow complete! It doesnt do any installing yet but we have a framework that calls a powershell script with progress updates and a progress bar"}, {"post_id": 3752, "ts": "2026-06-06T20:01:31Z", "hours": 0.7344, "text": "Avalonia Animations keep overlapping the pages!?!?"}, {"post_id": 3456, "ts": "2026-06-06T12:20:44Z", "hours": 0.8483, "text": "Made some fancy installer UI (Avalonia wwhhhyyy does your styling have to be so finicky!!!!!!)"}, {"post_id": 2876, "ts": "2026-06-05T19:16:51Z", "hours": 1.9375, "text": "Made a Build script to automate building and compiling the application for people!"}, {"post_id": 2728, "ts": "2026-06-05T14:07:58Z", "hours": 2.2578, "text": "-Demo of Unofficial Google Docs Client This is the status of my Unofficial Google Docs Client(Most of what is demoed in this devlog is done before stardance, this is a recap before i get into new features) Can authenticate with google to fetch public & private documents(using browser cookies) Can view documents including text(including bolds and italics) and tables Can move a cursor around and type, but cannot save to google’s servers yet"}]...
|
Title: Unofficial Google Docs Client by @nolanqsp Title: Unofficial Google Docs Client by @nolanqsp | Stardance
Devlogs:
-Demo of Unofficial Google Docs Client This is the status of my Unofficial Google Docs Client(Most of what is demoed in this devlog is done before stardance, this is a recap before i get into new features) Can authenticate with google to fetch public & private documents(using browser cookies) Can view documents including text(including bolds and italics) and tables Can move a cursor around and type, but cannot save to google’s servers yet
Made a Build script to automate building and compiling the application for people!
Made some fancy installer UI (Avalonia wwhhhyyy does your styling have to be so finicky!!!!!!)
Avalonia Animations keep overlapping the pages!?!?
Installer flow complete! It doesnt do any installing yet but we have a framework that calls a powershell script with progress updates and a progress bar
Finished Installer Flow! The installer now successfully downloads & installs the Google Docs application. It downloads the icon and adds a shortcut to the start menu, and adds Registry entries to add the uninstall script to the Add & Remove Programs Page in the windows settings app.
Beta 2: Unofficial Google Docs Client I have worked more on RE’ing in Wireshark to RE saving and binding to a document(receive realtime updates), Implemented the infrastructure in the application, but both currently return a 400 (Bad Request), I am still working on it. There is a new material 3 theme with some other subtle UI changes. Various little fixes aswell. Also, you used to have to unzip and run the installer manually, but now there is a curl install command on the repo that downloads it to AppData and runs it.
Platforms Platforms Platforms! Today I worked on yet more build scripts , now .zip files can be generated for every supported platform and placed in a folder with a single command! I still need to update the installer to fetch the corresponding .zip for the OS and Arch automatically. I am planning on doing my first ship once the installer & associated scripts are in a finished state where you can just paste one command into the terminal (for Win/Linux) and it opens the installer application which walks through the installation. After the installation the application should be able to be launched from the Start Menu/App Launcher along with an icon. Also the Dynamic Browser Paths(automatically finding the cookie directory of the user’s installed browser) should be stable, or if not then Internal Mode(planned mode which packages a Servo based browser to login with google to get cookies for auth).
Dynamic Path Support! Dynamic Paths are now enabled by default! Currently only Firefox works reliably from my limited testing. Zen(Fork of Firefox) works like 1/2 the time, and chromium based browsers get found but don’t work properly. The UI is kind of broken but it works for now(Working on it). Beta 3 is now released on Github with builds from the new Package&Release Script mentioned in the previous devlog.
Chromium App-Based-Encryption I have been working on chromium based browser support. Chrome & other modern Chromium based browsers use App-Bound-Encryption to encrypt their cookies. This is the reason why this unofficial Google Docs Client is currently unable to fully decrypt cookies from modern chromium based browsers out of the box on Windows. Chromium encrypts its cookies using the Windows DDAPI(Figure 2). Chromium used to decrypt cookies using the methods implemented in this repository before Chromium 127, this repository should decrypt cookies from chromium versions 127 and below(Figure 1). Figure 1 (C4 Bomb: Blowing up Chrome’s Appbound Cookie Encryption, www.cyberark.com/resources/threat-research-blog/c4-bomb-blowing-up-chromes-appbound-cookie-encryption . Accessed 13 July 2026.) Figure 2 (C4 Bomb: Blowing up Chrome’s Appbound Cookie Encryption, www.cyberark.com/resources/threat-research-blog/c4-bomb-blowing-up-chromes-appbound-cookie-encryption . Accessed 13 July 2026. ) Path forward On Windows ABE is in full effect, we would need SYSTEM perms, and try to impersonate Chrome. I plan to integrate xaitax/Chrome-App-Bound-Encryption-Decryption but this likely will not work forever, it is an arms race with Google and xaitax. Currently it works but likely Google with shut it down eventually. On Linux ABE is only used on Windows, on Linux Chromium uses the system Keychain over DBUS. (Gnome or KWallet) If these are unavailable it uses a completely exposed key in a file(basic encyption). This is very surpassable, it just needs implementation.
Internal Mode Been working on a Servo based google login (Internal Mode )(based on the servo slint example) in rust. I got far enough to be able to login, but it would take a lot more work in order to get to actually being able to login to google docs. This is my first rust project that goes beyond “Hello World!” so I have been trial and erroring my way through this proccess. I have realised that: My rust is not even close enough to being able to complete this within a reasonable timeframe(or ever) Servo doesn’t have any C#(my first and most experienced language) bindings(or not that I can find) CEF(Chromium Embedded Framework) does have C# bindings (Unfortunately is ALOT more bloated compared to Servo), aand Avalonia integration (I use Avalonia for the rest of the Google Docs App) Servo based login: doopyelephant/ServoGoogleLogin I Have started work on a CEF based google login in C#. Hopefully it plays out :)
Progress! See Previous devlog.
Welp, so much for that 2 Devlogs Ago I said I would create a CEF based C# app to authenticate with google. I did not realize that google explicitly blocks this. You might think, just change the “User-Agent: xxxxxx”, but no, Google has an entire JS detection system to stop exactly that. So then I tried making a web wrapper around “accounts.google.com” but Google has a CORS policy around this. So back to Servo it is!
Linux Compatibility And Polish The past few hours have been spent on refining the installer and associated scripts to work better on Linux and give a more reliable experience. Along with cleaning up some unimplemented features. A clear permission prompt for browser-scraping has been added. The past few Devlogs were focused on Internal Mode(Logging in without an external Browser), I still have plans to work on this but it is no longer the most pressing for me right now. School is starting soon for me, and I will have less time to work on this. I Want to get this ready to ship before the start of school so I can get this shipped before the end of the challenge. I will be focusing more on polish, installers, and getting it into a shippable state, If I can get saving to work before then, that’s great. But if not, I want to be able to ship a polished product even if it is missing a crucial feature(saving). But there is no guarantee that I will get it working by sinking more time into it, because it needs more reverse-engineering, I could get it to work in 3 Hours or 500, its down to how quickly I can crack the code in Wireshark(if ever).
Progress on Collaboration and saving Made some substantial progress on realtime collaboration, now I can successfully authenticate by posting to /bind to get a SID to then eventually make requests to /bind and /save. This was made possible by scraping the main web endpoint.
Polish ™ Worked on polishing up the UI, now the title of the document along with your Google account name and profile picture are displayed in the open document screen. Also text wrapping behaves much better. I also have been expermenting alot on how to get saving and realtime collaboration, since the last piece of progress, not much, just alot of 400 (Bad Request)s
HUGE Progress The past few hours I have worked on this project have been extremely productive. I found a header that genuine Google Docs sends, “X-Same-Domain”, which I believe just indicates whether the request is being sent to the same domain as the sender. It turns out that Google actively blocks requests from other domains, but luckily we can just send “X-Same-Domain” with a value of 1, pretending to be coming from the “docs.google.com” domain. After this realization the “/save” endpoint returned 200 (OK) . This was huge progress, this has been a major blocker for months . The one problem was that while the status code stated that the request was successful, the actual request payload contained an error “XSRF” and a string of numbers and letters, which I thought was probably some kind of authentication/coordination token. After a quick Google search, I realized that this was a token to prevent other websites in the same browser from sending requests impersonating Google Docs as the browser auto attaches authentication cookies. To my surprise, when I added “&token=XXXXXX” (with XXXXXX being the string of numbers and letters) to the request url, we get a different error! This one was very ambiguous though, it just was a JSON payload containing nothing but the number “400” , as in 400 (Bad Request) which I had become to dread. After searching around the codebase for a while I found a problem with the url encoding logic, Url encoding is the proccess of replacing invalid character with %XX (XX being the ASCII code for the invalid character), it turns out “&“s are valid characters……. but I was replacing them. Ampersands are also the seperator for parameters. I think the problem was that within the Google Docs server code, it seperates the parameters then decodes each one. With this problem fixed, saving worked!!!! There were a few tiny bugs I wont get into, but largely it worked. I implemented merging changes(sending “hello” rather than “h” + “e” + “l”+ “l”+ “o”). With saving working, I decided to start working on seeing whether these solutions also worked on “/bind” (real-time incoming changes), they didn’t immediately, but after a few tweaks trying to replicate the URL parameters that Google Docs uses, we had incoming changes! I had to do some fancy async enumerable shenanigans to get them to come in asynchronously. The main thing left to do on incoming changes is to set up a seperate thread. Anyhow, Big Devlog, just felt that if I wrote a devlog, it would be outdated within the hour. See ya next time! ; )
Building Up to Release I’ve been working on numerous small issues that I have been putting off. One of these is that all documents over ~1.5 pages were getting cut off, it turns out the contents of the document is split into multiple chunks, each around ~1.5 pages long. It was a relatively simple problem, just needed to fix it. Also binding(incoming changes) now runs on a separate thread so that the UI doesn’t freeze when somebody else types. Saving also now runs on a separate thread, it auto saves every ~1 second, which caused another problem, outgoing changes got relayed back as incoming changes by Google’s servers, meaning everything you typed got duplicated. Again, simple fix, just needed doing. The main thing however is the caret/cursor behavior, which was/is doing some funky stuff, jumping around whenever you changed lines. I added a binary search to help with this, which helped but didnt completely fix it. So there is still some work there. I also added some savekeys to minimize the log output, because before…… there were almost a MB of logs from each run. The main things that stand before release are to finish the cursor behaviour, bolds & italics shifting, and add a home screen with your documents.
Lots more marginal improvements + New Rendering Engine + Pain Recently I have been adding: Support for more keys(symbols, numbers, numpad numbers & arrow keys) Paste (CTRL + V) support More verbose logging New Rendering Engine Can include additional data(underline color, etc) for the future Seems more stable(the old one was kind of jank) But to be honest, most of the time was spent trying to fix some unliveable bugs, when typing to quickly, stuff appears after the cursor. In addition when typing, bold text after the cursor seems to offset. I learned something that can help with the latter bug, but I wasn’t able to fix either.
GitHub, Why? Last weekend GitHub decided to suspend my account for no apparent reason(No it wasn’t a DMCA from Google). I got an email saying for me to “reverify my academic status” for the student developer pack at the same time I got suspended. I tried to do that but… you can’t reverify without being logged in, and you can’t login when you are suspended. So I contacted support and they asked “how [I] plan to use GitHub” and that “[my] account was flagged by [their] abuse-detection systems for manual review, as it may conflict with [their] Terms of Service”. I responded but haven’t gotten any response since then(that was a week ago). I ended up moving at least temporarily to GitLab. While I had a copy of the git repository on my development machine, unfortunately this doesn’t include GitHub releases. I created a new one on GitLab but there aren’t any before the newest one. Anyhow, lets get to the new features: Fix crashing when exiting causing lingering threads Add support for the space key & several special characters including Enter for newlines Add support for different font sizes Add support for downloading and applying font families at runtime (Huge thanks to Jonathan Neal for Google Fonts catalog) Improve install script by supporting powershell 5(the one included in windows) and fixing several errors Fix bug where installer’s progress bar wouldn’t update until completed Cache parsed Savekeys to prevent additional wasted compute Update installers to use GitLab Anyhow, those are the recent updates! Hopefully GitHub reviews my reinstatement request soon. :)...
|
1792774137.8595033
|
1793378937.8595033
|
|
4738
|
PICOLATOR V2 by @fedi41 | Stardance
|
fedi41
|
1
|
71.72
|
702
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-27T09:01:35Z", "hours": 51.0, "multiplier": 13.73, "payout": 702, "blessing": "neutral", "text": "PICOLATOR v2.1 Beta This is the first ship of my big project: Picolator . Picolator is a handheld device powered by a Raspberry Pi Pico, running a custom operating system that I wrote from scratch in C++. 🧩 Features At this stage, Picolator includes: 🎮 PicoDino A simple remake of the classic dinosaur runner game. 🖥️ Custom UI Engine A lightweight interface system with different blend modes and a modular structure. 🧭 Main Menu System An app launcher for navigating between installed applications. ⚙️ Settings App A basic settings interface for system configuration. 🎨 Theming Support Custom themes based on Tailwind-style color palettes. 🚀 Status This is an early beta release. More features, apps, and improvements are planned for future updates.", "repo": "https://github.com/fedi41/picolator2", "demo": "https://fedi41.github.io/picolator/"}]...
|
[{"post_id": 70207, "ts": "202 [{"post_id": 70207, "ts": "2026-09-18T18:17:53Z", "hours": 2.8942, "text": "Simple taskbar! Added a simple status bar to the picolator! At the time its very minimal, but later it will show more stuff. How it works The status bat shows the currently running app by accessing the Navigator class. It is displayed over the current app, but before the all the features. Why I did it I thought that it would be nice to always know which app you are in, and because I dont want to put a header in each app, a status bar is the best solution. Also, I can later use it to show other stuff so its just nice to have :D Whats about the AI chat app I never finished? well… its still not finished idk if it ever will be finished. Conclusion I actually did varios stuff, but the most major change I made was the status bar so I post it here. Thanks for reading btw XD"}, {"post_id": 65203, "ts": "2026-09-10T05:18:26Z", "hours": 5.0075, "text": "5 Hours for almost nothing xD well its been very long time, I’ve been working on the AI app all this time… I almost made it so you can enter your own api key, but like always it isnt saving properly and is just not working. I also improved the AI chat a bit, made so it shows the errors, only for it to always show “UNKNOWN ERROR”. It kinda looks that the project is a bit dead a the time, I dont know if I will be posting so often. Other things that are not related to the project I switched to arch btw And I am finally comfortable with neovim :D"}, {"post_id": 46720, "ts": "2026-08-14T05:11:48Z", "hours": 2.1681, "text": "AI on the pico!! AI chat app is working!! What I did: Made the ui (pretty simple) Added a keyboard for input made some placehgolder functions to send promt and receive them What AI did for me all the api connection logic (The Mistral.h file) It was too complicated for me XD… How I did it: I used the mistral API made a simle app on the picolator for it thats it ) What I will do next -> make so you can enter your own api key (without recompiling) make so u can scroll through long responses Next ideas for the project… redisign some parts of the ui (I dont like that headings take up so much space) make a paint app ?"}, {"post_id": 44438, "ts": "2026-08-10T05:58:36Z", "hours": 0.2722, "text": "Serial logging works! I just replaced me custom logger with the Serial one ) Now I can work on the AI chat app !"}, {"post_id": 44423, "ts": "2026-08-10T05:36:44Z", "hours": 2.4386, "text": "Devlog ig Well this two hours I been trying to make an AI chat app. Meanwhile, I realized, that my custom log system kinda sucks, so I will be just using the classic Serial output for logging, and completly remove my custom logger. Problems with the logger logs are hard to read (very small) if u enable the log display feature, the rendering gets slower gives no errors, I only know at witch step the program stopped uses much RAM with serial logging, all of this issues will be fixed. And I can finally see what error it throws! although it doesnt tell much in the error… terminate called after throwing an instance of 'std::out_of_range' what(): And sorry for the long break… I will try to code more now!"}, {"post_id": 33077, "ts": "2026-07-22T17:38:04Z", "hours": 1.1644, "text": "pico-Stardance :P Tried rendering the stardance logo on the Picolator ) I actually wanted to work on the AI chat app, but instead of locking in, I just procrastineted and made this :3 But a least it looks cool XD Btw it took me so long, because I am trying to learn vim, and I am not really good at it ) Well ig see u next devlog"}, {"post_id": 31835, "ts": "2026-07-20T15:06:50Z", "hours": 0.7833, "text": "picoFETCH ig its working ) I added a simple fetch app, simmular to neofetch ) It displays: the board name (on compilation) chip name clock speed free RAM (not prezise) SDK version chip id WiFi connection status btw this all runs on a simple rpi pico 2w with a diplay ) check out my other devlogs to see what this thing can do"}, {"post_id": 31737, "ts": "2026-07-20T11:37:26Z", "hours": 0.7644, "text": "WiFi on the Picolator I managed to connect WiFi to the pico! The password and the SSID are saved in the flash! I will update the wifi settings UI someday, It looks horrible XD. And guess what? I will do a PICOFETCH app next, So follow along!"}, {"post_id": 31111, "ts": "2026-07-19T07:50:49Z", "hours": 3.6431, "text": "Its been very long time… But , I made some progress on the WiFi -settings! By progress I mean only the working ui XD. (and keyboard ) EVERYTHING ELSE JUST DOESNT WORK a list of things, that need to be fixed: storage sucks wifi sucks ui sucks (it just looks bad) I will bet trying to fix all of these things in future devlogs so follow along )"}, {"post_id": 17489, "ts": "2026-06-28T09:17:14Z", "hours": 1.5889, "text": "Pico-keyboard ?! So i coded the first simple version of a keyboard for the Picolator … for now, I will use it for the AI chat app (also in development), and for the Wifi configuration. Its currently in development, but in the next devlog I am planning to finish the wifi connection! btw credits to @eceWire , I was inspired by the keyboard in his project. ))"}, {"post_id": 16800, "ts": "2026-06-27T08:49:16Z", "hours": 2.6928, "text": "The first release ) I finished the demo version of the project! Now I am ready to ship ) features in this release UI system (with theming support) first game (picodino) Settings menu (with modular feature support) custom renderer (built on top of the waveshare library, supports blendmodes) custom input system the release: https://github.com/fedi41-prog/picolator2/releases"}, {"post_id": 16306, "ts": "2026-06-26T15:13:42Z", "hours": 7.0764, "text": "7 HOURS GONE. WEBSITE DONE (almost). Well time flies much faster when making websites… finished the feature menu I added a feature menu to control the feature manager and toggle features on and off ) I also kinda broke the display of the picolator… and thats why - new displays are coming soon (well I think so) - I am building a second Picolator! (And repairing the old one) almost forgot the website link 😅: https://fedi41-prog.github.io/picolator2/"}, {"post_id": 15041, "ts": "2026-06-24T12:55:31Z", "hours": 0.8667, "text": "Demo website working on the demo website for my PICOLATOR project . SHIPPING SOON . PICOLATOR v2.1 is ready for ship! I just need to finish this small website, and I’m done! I’ll also continue working at this after the ship :) Btw here is the link: https://fedi41-prog.github.io/picolator2/"}, {"post_id": 14643, "ts": "2026-06-23T20:33:16Z", "hours": 1.8336, "text": "Finished the PICODINO! Ig I finished the game ) Now I can finally work on something else . 🦖🌵 . It’s a copy of the iconic game, running on a pi pico. Features added… score counter high score saved in flash sneaking different cactus types restart after losing dark mode"}, {"post_id": 14363, "ts": "2026-06-23T13:57:16Z", "hours": 1.1458, "text": "PICO-DINO just jumped on a cactus 😭😭 …the PicoDino tries to jump over the EVIL CACTUS , but he lands perfectly on it! RIP PicoDino 🪦🦖 . . . But… Cactus collision is working! 😎 Finally, the dino can’t go through cacti anymore! Today, I implemented the mask collision ) P.S. - I finally figured out how to add multiple photos 😅"}, {"post_id": 14187, "ts": "2026-06-23T05:41:04Z", "hours": 1.6097, "text": "A cactus appears! 🌵 This morning, I added the first cactus, and a moing floor, along with some animations ) These are all original textures! Next up cactus collisions (mask collisions) more cactus types score counter"}, {"post_id": 13786, "ts": "2026-06-22T16:25:57Z", "hours": 1.0808, "text": "Meet the PICO-DINO!! 🦖 I finally made a real dinosaur for the game ) Further plans Next, I will add some cacti )"}, {"post_id": 13697, "ts": "2026-06-22T13:35:19Z", "hours": 0.9733, "text": "RAM Optimization The pico was sometimes crashing, after I spammed the log, so I got into optimising ) Before, i had 2 screen buffers, and even a third one for blending them (no wonder it crashed XD) So I just removed all the unnesecary buffers ) btw blend modes are still working! the first game! I just started working on the first game for the picolator!"}, {"post_id": 13323, "ts": "2026-06-21T20:19:58Z", "hours": 0.5889, "text": "DISPLAY TIMEOUT ADDED Now the display wont burn out XD Here is a reaaaally interesting photo of a black screen XD Tomorrow I will start coding the dino runner!"}, {"post_id": 13290, "ts": "2026-06-21T19:14:45Z", "hours": 2.5306, "text": "MIX BLEND MODE Added a brand new blend mode to my renderer! It was actually just procrastination, because I was too lazy to make the Dino Runner. About the project The Picolator is a custom OS for the raspberry pi pico. Next I will implement the chrome dino app (:"}, {"post_id": 12663, "ts": "2026-06-20T18:06:20Z", "hours": 0.7731, "text": "Display overclock 🥳 Got my display running on 65hz! (and coded this spinny thing) This can definitly run chrome dino XD"}, {"post_id": 12615, "ts": "2026-06-20T16:41:15Z", "hours": 1.7439, "text": "Feature system ready! The Picolator can now run different feature modules for debugging and trolling! Next up …. Dino runner! Btw my rng number is crazy (3) : stardance rng day 6 🎲 3 · ranked #500 so far https://stardance.hackclub.com/rng"}, {"post_id": 12536, "ts": "2026-06-20T14:08:54Z", "hours": 1.2269, "text": "Input system fixed Today I fixed the input system, so it responds faster, and supports more features. One important function I added is the justPressed function, it only returns true, when thw button was pressed exactly in this tick I also started working on the feature manager , it will have different featues like on screen log display, and other useful stuff."}, {"post_id": 12112, "ts": "2026-06-19T19:39:26Z", "hours": 0.7036, "text": "Theme change works!"}, {"post_id": 12083, "ts": "2026-06-19T18:35:30Z", "hours": 0.4331, "text": "C++ compiler exploding because of one missing semicolon 💀"}, {"post_id": 12054, "ts": "2026-06-19T17:42:16Z", "hours": 1.2925, "text": "Working on settings Changed some core logic, and started to work on the settings menu!"}, {"post_id": 11943, "ts": "2026-06-19T14:07:08Z", "hours": 1.9542, "text": "minor changes Input debug Main menu working! new Theme Next, I will work on the Settings app. Then you can change and create themes! wow"}, {"post_id": 11259, "ts": "2026-06-18T12:44:33Z", "hours": 1.5231, "text": "Display update! Many different display features : blend modes overlays new color format better image rendering And I also added some new themes ! PS the display looks too bright on the photo"}, {"post_id": 11203, "ts": "2026-06-18T10:28:37Z", "hours": 3.7581, "text": "Hugeee update!! Themes fixed Main menu working new App managment system Theme view screen ready I hope you like it )"}, {"post_id": 10078, "ts": "2026-06-16T17:36:28Z", "hours": 0.9575, "text": "The Tailwind theme is working!!! Currently each theme has 3 Tailwind pallets - surface, primary, and secondary. P.S. - It looks much better irl"}, {"post_id": 9943, "ts": "2026-06-16T13:56:56Z", "hours": 1.5231, "text": "coded a buggy tailwind theme generator (some colors are to bright, others to dark 😭😭😭)"}, {"post_id": 9751, "ts": "2026-06-16T05:36:53Z", "hours": 3.2739, "text": "The Main screen is ready! And themes are working. (this is just a test theme ik it looks terrible)"}, {"post_id": 8819, "ts": "2026-06-14T17:37:03Z", "hours": 1.4308, "text": "Remaking the font System Today, I was remaking the entire font system. I created my own FONT class, and used it to load new fonts. Now The Picolator has nicer fonts )"}, {"post_id": 8737, "ts": "2026-06-14T15:12:28Z", "hours": 0.3678, "text": "Fixed the Font rendering! New features -> font scaling -> now you can scale fonts! Coming up -> rethinking the Font system changing the ugly Waveshare font to something different (:"}, {"post_id": 7986, "ts": "2026-06-13T10:04:34Z", "hours": 1.5319, "text": "Remaking the font rendering (and failing)"}, {"post_id": 7692, "ts": "2026-06-12T21:01:25Z", "hours": 2.0769, "text": "Ahhh why did I spent some mucb time on this…. (added a UiDraw class, and redisigned the structure)"}, {"post_id": 7596, "ts": "2026-06-12T18:21:32Z", "hours": 1.1856, "text": "Alpha support added! (And other technical changes)"}, {"post_id": 6261, "ts": "2026-06-10T14:55:17Z", "hours": 1.7136, "text": "Building the basic app structure! And a quick display demo. Created a TestApp for different tests )"}, {"post_id": 5849, "ts": "2026-06-09T19:55:52Z", "hours": 1.1669, "text": "Created a Display class for rendering and drawing. (just a wrapper for a C library). Next I am going to work on the UI logic."}, {"post_id": 5771, "ts": "2026-06-09T17:57:21Z", "hours": 1.1364, "text": "Finally got it running on cpp! (Yes i gave up on learning c)"}, {"post_id": 5603, "ts": "2026-06-09T13:40:31Z", "hours": 0.8697, "text": "So I somehow got the display test working… I already hate C (edit - no! C is cool [: )"}, {"post_id": 5570, "ts": "2026-06-09T12:15:42Z", "hours": 0.4519, "text": "setting up the project!"}]...
|
Title: PICOLATOR V2 by @fedi41 | Stardance
Devlog Title: PICOLATOR V2 by @fedi41 | Stardance
Devlogs:
setting up the project!
So I somehow got the display test working… I already hate C (edit - no! C is cool [: )
Finally got it running on cpp! (Yes i gave up on learning c)
Created a Display class for rendering and drawing. (just a wrapper for a C library). Next I am going to work on the UI logic.
Building the basic app structure! And a quick display demo. Created a TestApp for different tests )
Alpha support added! (And other technical changes)
Ahhh why did I spent some mucb time on this…. (added a UiDraw class, and redisigned the structure)
Remaking the font rendering (and failing)
Fixed the Font rendering! New features -> font scaling -> now you can scale fonts! Coming up -> rethinking the Font system changing the ugly Waveshare font to something different (:
Remaking the font System Today, I was remaking the entire font system. I created my own FONT class, and used it to load new fonts. Now The Picolator has nicer fonts )
The Main screen is ready! And themes are working. (this is just a test theme ik it looks terrible)
coded a buggy tailwind theme generator (some colors are to bright, others to dark 😭😭😭)
The Tailwind theme is working!!! Currently each theme has 3 Tailwind pallets - surface, primary, and secondary. P.S. - It looks much better irl
Hugeee update!! Themes fixed Main menu working new App managment system Theme view screen ready I hope you like it )
Display update! Many different display features : blend modes overlays new color format better image rendering And I also added some new themes ! PS the display looks too bright on the photo
minor changes Input debug Main menu working! new Theme Next, I will work on the Settings app. Then you can change and create themes! wow
Working on settings Changed some core logic, and started to work on the settings menu!
C++ compiler exploding because of one missing semicolon 💀
Theme change works!
Input system fixed Today I fixed the input system, so it responds faster, and supports more features. One important function I added is the justPressed function, it only returns true, when thw button was pressed exactly in this tick I also started working on the feature manager , it will have different featues like on screen log display, and other useful stuff.
Feature system ready! The Picolator can now run different feature modules for debugging and trolling! Next up …. Dino runner! Btw my rng number is crazy (3) : stardance rng day 6 🎲 3 · ranked #500 so far https://stardance.hackclub.com/rng
Display overclock 🥳 Got my display running on 65hz! (and coded this spinny thing) This can definitly run chrome dino XD
MIX BLEND MODE Added a brand new blend mode to my renderer! It was actually just procrastination, because I was too lazy to make the Dino Runner. About the project The Picolator is a custom OS for the raspberry pi pico. Next I will implement the chrome dino app (:
DISPLAY TIMEOUT ADDED Now the display wont burn out XD Here is a reaaaally interesting photo of a black screen XD Tomorrow I will start coding the dino runner!
RAM Optimization The pico was sometimes crashing, after I spammed the log, so I got into optimising ) Before, i had 2 screen buffers, and even a third one for blending them (no wonder it crashed XD) So I just removed all the unnesecary buffers ) btw blend modes are still working! the first game! I just started working on the first game for the picolator!
Meet the PICO-DINO!! 🦖 I finally made a real dinosaur for the game ) Further plans Next, I will add some cacti )
A cactus appears! 🌵 This morning, I added the first cactus, and a moing floor, along with some animations ) These are all original textures! Next up cactus collisions (mask collisions) more cactus types score counter
PICO-DINO just jumped on a cactus 😭😭 …the PicoDino tries to jump over the EVIL CACTUS , but he lands perfectly on it! RIP PicoDino 🪦🦖 . . . But… Cactus collision is working! 😎 Finally, the dino can’t go through cacti anymore! Today, I implemented the mask collision ) P.S. - I finally figured out how to add multiple photos 😅
Finished the PICODINO! Ig I finished the game ) Now I can finally work on something else . 🦖🌵 . It’s a copy of the iconic game, running on a pi pico. Features added… score counter high score saved in flash sneaking different cactus types restart after losing dark mode
Demo website working on the demo website for my PICOLATOR project . SHIPPING SOON . PICOLATOR v2.1 is ready for ship! I just need to finish this small website, and I’m done! I’ll also continue working at this after the ship :) Btw here is the link: https://fedi41-prog.github.io/picolator2/
7 HOURS GONE. WEBSITE DONE (almost). Well time flies much faster when making websites… finished the feature menu I added a feature menu to control the feature manager and toggle features on and off ) I also kinda broke the display of the picolator… and thats why - new displays are coming soon (well I think so) - I am building a second Picolator! (And repairing the old one) almost forgot the website link 😅: https://fedi41-prog.github.io/picolator2/
The first release ) I finished the demo version of the project! Now I am ready to ship ) features in this release UI system (with theming support) first game (picodino) Settings menu (with modular feature support) custom renderer (built on top of the waveshare library, supports blendmodes) custom input system the release: https://github.com/fedi41-prog/picolator2/releases
Pico-keyboard ?! So i coded the first simple version of a keyboard for the Picolator … for now, I will use it for the AI chat app (also in development), and for the Wifi configuration. Its currently in development, but in the next devlog I am planning to finish the wifi connection! btw credits to @eceWire , I was inspired by the keyboard in his project. ))
Its been very long time… But , I made some progress on the WiFi -settings! By progress I mean only the working ui XD. (and keyboard ) EVERYTHING ELSE JUST DOESNT WORK a list of things, that need to be fixed: storage sucks wifi sucks ui sucks (it just looks bad) I will bet trying to fix all of these things in future devlogs so follow along )
WiFi on the Picolator I managed to connect WiFi to the pico! The password and the SSID are saved in the flash! I will update the wifi settings UI someday, It looks horrible XD. And guess what? I will do a PICOFETCH app next, So follow along!
picoFETCH ig its working ) I added a simple fetch app, simmular to neofetch ) It displays: the board name (on compilation) chip name clock speed free RAM (not prezise) SDK version chip id WiFi connection status btw this all runs on a simple rpi pico 2w with a diplay ) check out my other devlogs to see what this thing can do
pico-Stardance :P Tried rendering the stardance logo on the Picolator ) I actually wanted to work on the AI chat app, but instead of locking in, I just procrastineted and made this :3 But a least it looks cool XD Btw it took me so long, because I am trying to learn vim, and I am not really good at it ) Well ig see u next devlog
Devlog ig Well this two hours I been trying to make an AI chat app. Meanwhile, I realized, that my custom log system kinda sucks, so I will be just using the classic Serial output for logging, and completly remove my custom logger. Problems with the logger logs are hard to read (very small) if u enable the log display feature, the rendering gets slower gives no errors, I only know at witch step the program stopped uses much RAM with serial logging, all of this issues will be fixed. And I can finally see what error it throws! although it doesnt tell much in the error… terminate called after throwing an instance of 'std::out_of_range' what(): And sorry for the long break… I will try to code more now!
Serial logging works! I just replaced me custom logger with the Serial one ) Now I can work on the AI chat app !
AI on the pico!! AI chat app is working!! What I did: Made the ui (pretty simple) Added a keyboard for input made some placehgolder functions to send promt and receive them What AI did for me all the api connection logic (The Mistral.h file) It was too complicated for me XD… How I did it: I used the mistral API made a simle app on the picolator for it thats it ) What I will do next -> make so you can enter your own api key (without recompiling) make so u can scroll through long responses Next ideas for the project… redisign some parts of the ui (I dont like that headings take up so much space) make a paint app ?
5 Hours for almost nothing xD well its been very long time, I’ve been working on the AI app all this time… I almost made it so you can enter your own api key, but like always it isnt saving properly and is just not working. I also improved the AI chat a bit, made so it shows the errors, only for it to always show “UNKNOWN ERROR”. It kinda looks that the project is a bit dead a the time, I dont know if I will be posting so often. Other things that are not related to the project I switched to arch btw And I am finally comfortable with neovim :D
Simple taskbar! Added a simple status bar to the picolator! At the time its very minimal, but later it will show more stuff. How it works The status bat shows the currently running app by accessing the Navigator class. It is displayed over the current app, but before the all the features. Why I did it I thought that it would be nice to always know which app you are in, and because I dont want to put a header in each app, a status bar is the best solution. Also, I can later use it to show other stuff so its just nice to have :D Whats about the AI chat app I never finished? well… its still not finished idk if it ever will be finished. Conclusion I actually did varios stuff, but the most major change I made was the status bar so I post it here. Thanks for reading btw XD
Ships:
PICOLATOR v2.1 Beta This is the first ship of my big project: Picolator . Picolator is a handheld device powered by a Raspberry Pi Pico, running a custom operating system that I wrote from scratch in C++. 🧩 Features At this stage, Picolator includes: 🎮 PicoDino A simple remake of the classic dinosaur runner game. 🖥️ Custom UI Engine A lightweight interface system with different blend modes and a modular structure. 🧭 Main Menu System An app launcher for navigating between installed applications. ⚙️ Settings App A basic settings interface for system configuration. 🎨 Theming Support Custom themes based on Tailwind-style color palettes. 🚀 Status This is an early beta release. More features, apps, and improvements are planned for future updates....
|
1792983409.2320743
|
1793069809.2320743
|
|
19306
|
SmasherGS by @parkerrupe | Stardance
|
parkerrupe
|
0
|
71.63
|
0
|
[]
|
[{"post_id": 78628, "ts": "202 [{"post_id": 78628, "ts": "2026-08-31T00:40:37Z", "hours": 1.1333, "text": "I worked on preparing for shipping this project. I made most of the BOM, took some renders, did some Github Repo formatting. I am so ready to be done with this project but I am worried about budget as my PCB is rather expensive with tariffs/shipping. Maybe I reach out to PCBway for a sponsorship or something. Ugh, I don’t know. Anyways, peep the cool render."}, {"post_id": 78627, "ts": "2026-08-14T00:00:00Z", "hours": 3.0, "text": "Final CAD touches. Wow. That went quick. This is the final cad entry though. First things first, I had to split the casing into two sections that would fit on my printer. These sections would be joined with M3 bolts and heat set inserts. This is a simple overlapping butt joint with 4 screws per side. Nothing complex, was just a few sketch and extrudes. Next was building up interior structure, which you can see part of in that screenshot. I basically just needed mounting for the screen and board. This is what I came up with. I also added the port cuouts on the side while I was at it. This one interior strucutre has mounting holes for both the screen and the lattepanda carrier PCB. Here is the other side. Unfortunately, this will need supports to print, as I couldn’t think of a way to avoid them, which hurts me. But it is what it is, I will make do. Here is the interior with the components. Looks good! Lastly, I added 4 antennas. That’s right, 4. One is on the inside in this corner! The square one internally is a GPS antenna. It is a ceramic active patch antenna. The other 3 antennas are simple “rubber ducky” antennas for Wifi+Bluetooth and LORAWAN. Short and simple. That’s it for cad! Now I just need to take renders and put the repo together with a BOM and stuff! Wait, I forgot screws. Now we good. I also added slits to the back for cooling! They will just be lasercut into the aluminum. Okay, alll done for real this time. Now we move on to renders and stuff."}, {"post_id": 78626, "ts": "2026-07-22T00:00:00Z", "hours": 4.0, "text": "CAD!! CAD CAD CAD!! I love CAD. Ok, first things first, I exported the Mu carrier board 3D model and imported it into Fusion 360. I needed to add the M.2 accessories and standoffs for the M.2 and Mu stuff. This was fairly straightforward. The standoffs are M2 x 1.5mm and I used M2 pan head phillips screws as those are typically what M.2 hardware kits include. For the M.2 accessories, we have a full size NVME drive and a half size NVME wifi/bluetooth card. These are lines up to the best of my abilities but may be a smidge off. Thankfully, they are just cosmetic, so it does not matter much at all. Anywho, next up. I started laying things out in CAD for the actual deck. I am going for a minimalist flat slab with a metallic top/bottom panel sandwiching a printed frame. So, that’s what I am laying out! You may have noticed (you probably didn’t) that the keyboard usb port/buttons/etc are now on the bottom of the PCB. This is no mistake! I realized I made a bit of an oopsie - the only way a top plate can fit with choc switches is if all that good stuff is on the bottom. Ugh. So, I flipped those components to the other side of my PCB. This required me to reroute a large portion of the matrix (half of it) and all the traces connecting the matrix to the MCU. As you can see in the photo, all the keyswitch footprints are on the bottom now. Flipped. Anywho, with that out of the way, I could now move on to developing the case. First was the top plate. This is a 1.2mm aluminum lasercut plate that I will be getting anodized Red to contrast the Black 3D printed mainframe. I started by making the keyswitch grid. This is a 17.5x18.5mm spaced 12x5 grid of 13.5x13.5mm squares. Quite a mouthfull. The choc switches snap into this plate nicely, and it serves as a structural point of rigidity. From there it gets extended, and the cyberdeck is starting to look like something! I initially went for this clean look where there was no border around the screen besides the one built into the screen - this would later change, but thats for later. I then started building up the black casing. I am targeting 40mm thickness for the printed portion. Which is fairly thick, but it kinda has to be for the lattepanda mu fan stuff to fit. This has a lip for the keyboard pcb to rest on and mounting holes for the keyboard pcb. I will later add bracing under more of the keyboard pcb but for now I am focused on the outermost shell. It then gets extended under the screen! Man, it’s looking awesome. However, it was at this point that I remembered - hey, the ports for my screen are on the outer edge! How would the cables reach the interior with the ports on the exterior…. They wouldn’t. So, it gets extended! Bam. I actually like how the red border ties it all together and think this still looks awesome! Albeit bigger, but that’s ok. At this point I also added a flat back panel to finish the sandwich. This will ultimately have screw holes and ventilation in it, but for now it can stay flat. That’s all for this entry actually! I made a lot of cad progress, but as you may have noticed this entry took a while to get posted. That’s because I went to OutPost IRL! It was a life changing event and I had so much fun. It was so awesome. Anywho. What’s next? Literally just fleshing out the casing. I need to: Add cutouts for the I/O ports Add internal structure/Skeleton Add ventilation/Fans Add Battery Split part into smaller printable sections And then submit! I am getting so close!!!"}, {"post_id": 78625, "ts": "2026-07-07T00:00:00Z", "hours": 3.5, "text": "Low speed routing, mounting holes… we are done!!! As the title of this entry suggests, this is the last entry of pcb design. I routed all the low speed traces, which was the only thing left. Besides mounting holes, which I did afterwards. I started at the top left for this and worked my way clockwise around the board. Mostly. At some point I couldn’t keep track of what needed routed so I was just following what DRC said needed routed, working my way down the list. I started doing that about halfway through. This sucked. I had to bob and weave and sneak my way around all the high speed traces, ensuring proper spacing to minimize cross talk and keep trace impedance correct. Having gnd pours or traces close to the high impedance traces changes impedance because of uhh… parasitic capacitance I think? Electromagnetic fields inducing inductance and capacitance. Something like that. Anywho, lets see it! Look at all that spaghetti. I had to route some traces on my power plane it was getting so busy! Good thing I named it power/aux signal. This is the board with gnd pours on top/bottom. The pours are offset 1mm from all traces, which should be enough to protect the high speed. Here’s the signal layer. Yes, I did route some diff pairs on this layer. They are usb 2.0 and do not care. This is my power/aux sig layer. Mostly big ol power traces and pours, but there are a few signals mixed in that I just couldn’t get to route well on other layers. And those are the GND planes! With that, we have a finished board! Well almost. It needs a bit of silkscreen. That’s better. You can also see the mounting holes in that photo! I just used EasyEDA’s Pad feature to add pads with an OD of 5.8mm and an ID of 3.2mm. Should perfectly match M3 socket head screws. So. Where do we go from here? It’s cad time. I LOVE cad time. I need to physically design the deck itself! Which means exporting the 3D models of my pcbs, modeling out the screen, modeling a case, modeling all the internals, etc. This is the fun part!! Pcbs are NOT the fun part. So… CAD soon!!"}, {"post_id": 78623, "ts": "2026-07-06T00:00:00Z", "hours": 3.0, "text": "So. I did the pcie ports. This was a doozy. So for my 3V3 setup for this board, I have a 500ma LDO. Because I don’t have much 3V3. I thought. Fun fact - M.2 SSDs draw up to 3 amps. Uh oh. 3 amps??? That’s insane! So, I initially was just adding a 6a circuit. I got that all sorted. Turns out, this needs 2oz copper. I am not doing 2oz copper. That is expensive. So I switched. Each m.2 gets its own 3V3 3A circuit. Not actually that complex! Just annoying. It was at this point that I also realized I had both M.2 on the same PCIE lines. This does not work. So, I had to delete ethernet to get another pcie set. This is fine. I was never really going to use it if we’re being honest and it lets me make the whole board much smaller to get rid of it. The board is like, 120mm wide now! In that photo you can also see the completed M.2 circuits. Each one has a power circuit tapping into the main 12v, and some passives for stuff like filtering high speed lines and a status LED - one per M.2. Here are some closeups! The circuits off to the side of each port are the power circuits. The bottom left two components are the status LEDs, and the top right two components are filtering capacitors for high speed lines. With those updates, the board is now ready to hook up all the high speed pairs to the mu! After that I get to do low speed, power routing, and be done! Woooo. I am so ready to be done with this pcb."}, {"post_id": 78624, "ts": "2026-07-06T00:00:00Z", "hours": 2.0, "text": "High speed routing!! I connected everything up to the Mu. This sucked. Things kept overlapping and it was so bleh. I started in the top right with USBC and worked down and to the left. Well. I actually started with the m.2 because they are right next to the Mu, and then went top right to bottom left. It was at this point that I felt like something might be off. Why would the pins for one HDMI port be backwards but not for the other? The answer was simple: I had the pins wrong. Oops. Once I fixed that I could line up everything real nice. But first, after a tip from a friend, I dropped the USBC lines down to the bottom layer so that everything else could be top. This made it so much cleaner looking. SO much better. I am a little worried about EMI from the buck converters but I think it might be ok? I’ll add a bunch of GND vias or something. After I had those all wired up, I did the last few small circuits. LORAWAN. GPS, with the antenna keepout. The power switch. The fans. And last, but certainly not least, the CMOS battery. And with that, all the individual circuits are complete. So what’s left? I literally just have to connect all the low speed lines up to the Mu, and I am done. This is no small task, as I have to weave around and through all the high speed lines, but it is very possible. It will get done soon."}, {"post_id": 78622, "ts": "2026-07-01T00:00:00Z", "hours": 3.0, "text": "I routed the second hdmi port and the ethernet port! HDMI was super straight forward, just a copy of the other one rotated 90 degrees. Did take me a second to remember what I did but I got it done. Next was ethernet. I had no idea what I was doing for this but here we go. I started connecting the diff pairs of the connector to my ethernet controller. This converts the ethernet junk to PCIE for my Mu to deal with. All length matched, impedance matched to 100 ohms, spaced out properly, ESD filtering, etc. All sorts of nonsense. It was at this point, when I went to wire the passives for my ethernet controller that I realized - hey, this needs 1v0. I don’t have 1v0 in my power circuit. Time to speedrun a power circuit. Ready… Set… Go!! I started by pulling up TI WeBench to get a power circuit schematic. I inputed 1v and 500ma and it outputted a couple options. I picked the first one, the cheapest. It gave me this. I used it to make: This. Identical circuit, just some pins moved on the symbol. I threw this onto the Ethernet page because my Power page is full, and because this is gonna be near the ethernet connector as I don’t trust the 1v to survive a path across the board. Just in case. After that, I synced the schematic to my pcb, and threw together the circuit on board. Stupid simple, so it’s stupid reliable. Boom. Power circuit done. With that fixed I could go back to adding all the passives and power hookups for my ethernet controller. Bam. Done. This thing has so many power hookups, it’s unreal. 4 different pins get 1v0, 3 different pins get 3v3. That’s 7 pins. Wtf. It’s ok though, I got it done. I did have to route decoupling internally for a couple pins just because they got placed next to high speed pairs for some reason (stupid placement realtek. stupid placement.). I think if I do this again I will use a TI IC for ethernet because the realtek documentation is mid and 1v0 is stupid. Give me 3v3 and 5v like a sane person. Anywho, with that done, all the ports on the board are wired. Yup. All of them. HUGE progress. But - what do I have left? m.2 slots CMOS battery fans gps lorawan final power routing (5v and 3v3) final signal routing (hook it all up to the mu) That’s it! Only 7 things on my checklist. M.2 slots are more diff pairs because of course they are, but after that it’s smooth sailing stupid logic until the final signal routing. And even then, that is partially stupid logic too (high speed = smart logic, low speed = stupid logic). I guess I’ll tackle M.2 next? TBD."}, {"post_id": 78620, "ts": "2026-06-30T00:00:00Z", "hours": 2.5, "text": "I routed 1 hdmi port and 4 usba 2.0 ports! I am making solid progress! First was hdmi. This required defining a new differential pair rule for 100 ohms instead of 90 ohms (usb spec). Easy enough. That’s the rule. Anywho. HDMI has a pretty interesting circuit on it actually. When the device goes to sleep or shuts off, it pulls all the hdmi lines to gnd with a mosfet. I always thought the way computers did sleep for hdmi was something way fancier but no. It literally just shunts the signal to gnd. Pretty neat in my opinion! That’s the big circuit with resistors on the left. All into a mosfet that triggers with sleep or shutdown. The sls_s0 operates that way - only active (low) when the device is in use. Recreating this was a bit of a hassle honestly and really made me think. But I got it figured out in the end. From right to left it goes connector, ESD diodes, resistors, and then ac filtering capacitors. AC filtering capacitors ugh. Doesn’t that sound like it should filter out AC? But actually, they work by blocking DC and only letting AC through. I think that should be named DC filtering but idk I ain’t no electrician. Rant aside, those resistors will get connected to a common line in the signal layer (layer 3) and then to a mosfet. Next was an I2C level shift. The HDMI side of the I2C lines operate on 5 volt while my device side operates on 3 volt. So, I use a little IC to handle the level shift and make sure my data stays clean. Did you know there is I2C in HDMI? I sure didn’t, but it is fascinating. Basically, the I2C lines are how your device figures things out like screen size, resolution, refresh rate, color profiles, etc. Basically, it is how the device and screen “talk” about what each is capable of and what they need from eachother. Over I2C! I’ve personally seen 30 foot hdmi cables. You’re telling me I2C lines can be 30 feet long without issue?? Wow. Fascinating stuff. Second rant aside, the next circuit was my hot plug detection and 5v power. This is the last bit. These just get lumped together because the pins are together. 5V is on the very left with the rectangle thing, that’s a diode. Everything to the right of that is hot plug detect. It basically tells my device that a screen was unplugged/plugged in while my device was on so that it knows to reconfigure everything. Pretty neat. That’s a full hdmi port! It looks like this: Next was the USB ports. One is external and the other three are internal. They are all basically carbon copies save for two of the internal ones sharing an ESD diode module just because they can and I want to cut down on components. They all get ESD filtering on the data pair, plus a fuse and decoupling capacitor on the 5V power line. That way an overcurrent blows the fuse and not my whole board. That’s it for this entry! I am on a roll today and honestly may not sleep for a while to just keep going. Or I will. I don’t know, it’s late. Next is the second HDMI port and the Ethernet port. Not sure which will come first. Probably HDMI since I know how to do it."}, {"post_id": 78621, "ts": "2026-06-30T00:00:00Z", "hours": 3.5, "text": "The second usbc port! I have decided that differential pairs are my greatest enemy. Truly, this is miserable I worked from the “bottom” up, routing traces through their passives in impedance and length matched pairs. This worked surprisingly well and I ran into minimal issues. Something cool I was able to do was go back and use open channels on existing ESD diodes rather than adding more. Specifically, that one at the top. It had one pair from the first usbc port, and now has a pair from the second port. Since they both had to be routed around the plug legs like that, they end up in the same spot. RX lines get just resistors while TX lines get capacitors and resistors. That’s what the smaller passives are on two of the lines - capacitors. Once I had those 4 lines routed, I get to route the less crucial lines. There’s still a diff pair in these ones, but since it’s usb 2.0, it is way less important where that bad boy goes. It’s lower speed. Higher speed = more fragile = more important. For these routing I had to add the other chips necessary for the port. One for protecting vbus shorts and one for connecting vbus to 5 volt, since this port needs to be a power source, not just a sink. That way it can power other devices. This is what those vbus lines look like. They will be connected to 5v ultimately, but I have yet to route 5v. Soon. With a couple more traces, I had this USBC port complete. This one is a mess. And it was super tedious as always. But after this I get to route just some nice chill usb 2.0 as a break before I route HDMI. Hdmi has waay more passives on the diff pairs for some reason. HDMI and Ethernet also mean I get to deal with writing new differential pair rules as these have different impedances from USBC. Anywho, here’s both usbc ports together. It’s really getting busy in here! Can’t wait to add more. On the logistics side of things, I got approved for super hardware builder for Outpost aswell as got my flight stipends approved. That means I am going to Open Sauce/Outpost! I need to finish this project by July 7 to truly “qualify”, though if I already have flights… I’m not worried, I’ll get it done in time."}, {"post_id": 78618, "ts": "2026-06-29T00:00:00Z", "hours": 4.0, "text": "Power circuitry! I wasn’t sure where to start and I certainly didn’t want to start with any highspeed routing. So, we are doing the power circuit first. I started with simply just… trying to get everything connected and compact. This would prove harder than I anticipated. It’s a big mess honestly. I was working without ratlines so that I can actually see what I am doing, and that means I forgot some components. So it actually just got worse for a bit. The big thick trace is 12v main power. This is up to like, 35 watts, so it needs to be super big. Hence the 3mm wide trace. We have roughly: Bottom is 5v. Top middle is 12v. Top right is battery charger. You can kinda see the ICs buried in there. Those are the focal points. The very first thing I did to make this better was move 5v. I realized there’s no reason it needs to be so smushed in there. So, it gets scooted over to the left. Much better. Zooming in on 5v… I did some rearranging to make it less wonky and added the components I had forgotten - mainly decoupling caps. I am really good at forgetting decoupling caps. Since 5v is the main power for the system besides 12v for the mu, it gets a big big decoupling cap. That’s the big thing on the left. There are actually three ICs in here. One is the 5v buck converter, one is the 5v load switch for the system, and one is the 3v3 LDO. I completely forgot 3v3 is in there! Not that it’s easy to tell. This is the current state of the power circuitry. We have from left to right: 5v and 3v3, 12v, battery charger, and charger EEPROM. Plus the battery and thermistor connectors. Here is a view of the internal power layer. I used a mix of wide traces and copper pours for this so that I can guarantee my traces are wide enough. I also used multiple vias for connections in a lot of spots to give more “wire” for the power to go over. It’s way less of a mess now than when we started, and it was annoying to get to this point. I am still not sure if I am super happy with it, but I think it is good enough for now. I still need to wire up the i2c control, but that requires the USBC PD controller be wired. And I haven’t gotten that far yet. I think that will be next? Though I may need to route some high speed traces first so I know what I am working around. Not totally sure, I’ll probably ask one of my smarter PCB friends what to do. I am gonna get this done, whether through perserverance or straight up spite."}, {"post_id": 78619, "ts": "2026-06-29T00:00:00Z", "hours": 4.5, "text": "Power circuitry and some usbc 3.2. So. High speed routing is probably what I hate most in the world right now. It’s so annoying, it’s all diff pairs, you gotta be so careful. Bleh. Impedance and length matching. Bleh. Regardless, I started routing the very first usbc port just because I have to work around it’s traces. This took an hour. This. It’s 8 trace routes. Although because of how easyeda works it’s split into like 16 different configured differential pairs. Each one needs the rules assigned to tell it spacing and width. Then I had to actually route them. TX lines are supposed to get their passives closer to the USBC port while RX lines get it closer to the device, but both kinda got it in the middle because of how the spacing works out. Oh, and they all get piped through ESD diodes. Then I had to length match them within like, 0.1mm. Blehh. After that I worked more on power circuitry. I needed to route I2C lines within the power circuitry so that the ICs could talk to eachother, as well as add more passives that I had forgotten. Mostly decoupling. I also shifted the VBUS line down so I would have room to wire 5v and 3v3 to all the ICs crammed in there. Before that they were all kinda blocked on my power plane, which defeats the point of a power plane. More on usbc. I had to change nets (pins) a bunch in my schematic to get this to work because I needed them to line up with the physical pin and component locations so I wasn’t crossing paths or anything. While doing this, I noticed something. My USBA 3.2 port was doubled up on pins, sharing with my first USBC port. That’s not right… Turns out, I had made a big oopsie. By default the lattepanda mu only exposes 2 usb3.2 paths. Exposing more would require messing up my hdmi or ethernet. And that doesn’t work. So, I actually had to delete my usba 3.2 port! That’s fine, I have two usbc and a usba still, the usba is just 2.0. But, be honest, who actually needs usba 3.2 when you have usbc? Worst case I plug in a hub. This gives me a decent bit more space and actually makes my life easier. Yay. Anywho, I think the power circuitry and first usbc port are actually done? Ish. I need to route 3v3 and 5v still within the power circuit, and I need to connect the USBC port to the Lattepanda Mu. But those will come later as there are a lot of other components those work around. I spent way too long figuring out how to do high speed traces. These usbc traces are all matched to 90 ohms, all length matched within their pairs, all spaced out, connected to ESD diodes, their passives, aaaaah. There is so much to keep track of. This is the net rule menu for the usbc traces. There are 12 more not pictured, roughly. Each one gets assigned the “usbc” rule I wrote, which just defines spacing and width. I believe spacing and width are like 0.254mm and 0.155mm? Something like that, I know the width I said is right. Spacing is less important as it’s just “make pairs close, make not pairs far”. I think. This is all just my interpretation and it could be wrong. We won’t really find out for sure until I try to use the board! Regardless, I made some serious progress and am getting excited for this to be done! I think I can use this to qualify for OutPost! Hopefully. I really want to go to open sauce again. Next I think is the second USBC port and starting the last of the power routing. Yay."}, {"post_id": 78617, "ts": "2026-06-27T00:00:00Z", "hours": 1.5, "text": "Beginning of the PCB. The big one. And planning. Okay. So. I imported all the pcb stuff and dear lord is there a lot of components. So. What’s the first step? Sort it! I sorted everything by schematic page and then within the pages by section/component. That way I know what capacitors and resistors belong to what just by glancing at my design. During this sorting, I felt that my battery stuff was looking off. There was an excess of components and some weird duplicates. Turns out, I had accidentally copied a couple things that Ti included in their reference circuit that exist only for internal Ti debug. AKA, they are useless to me. So I went and removed those. Extra programming headers mainly, with some resistors paired with em. It’s kinda goofy how big of a spot the battery connector gets but its ok. Anywho, with that out of the way, I now had a sorted design. You can see the clusters of components and whatnot. Looking at it now, I realize that one of the usbc ports should be by the power circuity (bottom right) since it is part of that. Not that you can read the words, but you can see stuff moved. Here it is with ratlines by the way. Completely unreadable. Anywho, game plan. I can’t quite figure out sizing but I can kinda let the pcb decide that. This is gonna be a bit of a thick boi but that’s alright. I think the mu will be on the back of the deck, not the front, as I can put a vent back there. And then the screen can go on the other side. I have a few requirements though: Aim for a max width of 230mm. I have a lot more space in Y than X (x is the 230mm) to expand if needed, because of the screen. External ports on the right if possible. Antennas up top if possible. Internal ports on the bottom if possible. Mu somewhere in the middle! That’s my plan for now. Obviously, I can change where things end up to fit my format better. But I think that plan should work out. I will need some usb male to female cables to make routing everything work I think. Mostly for the internal rtl-sdr. PCB Time!"}, {"post_id": 78616, "ts": "2026-06-27T00:00:00Z", "hours": 1.0, "text": "CAD Break! I decided to toss the keyboard pcb in cad so I could get a full mockup with the switches and just get a general vibe for the scale. It turned out really good! I just did it with a simple rectangular pattern, the hardest part was lining up everything initially. The keycaps are an open source design I found called MOTE. https://www.printables.com/model/864126-mote-choc-low-profile-flat-keycaps I really like the flat look. On the real thing I will probably get legended keycaps but I don’t think I will cad that. I mean maybe I could if I feel like placing a ton of decals (I don’t). Maybe I’ll get bored. I actually had to swap out the boot and reset switches 3 seperate times while I was trying to find something low profile enough to fit under the top plate. This will have a solid plate over it after all and I can’t have that hitting the buttons. The original ones were way too tall. The second revision was better but still too tall. So for the third I got the literal lowest profile I could find. These bad boys are half a millimeter tall. They should work though! Was only mildly tedious to export the 3d file, make changes, export again, make changes, export again, make changes, and export for the last time. Just typing that was annoying. But I did it for the love of the game. I really need to stop procrastinating on the mu board. But, I might do some general cad of the whole deck first. Not sure. TBD."}, {"post_id": 78615, "ts": "2026-06-26T00:00:00Z", "hours": 2.5, "text": "Keyboard! I finally decided to do some pcb design for this project and put the whole keyboard together. Did I remember to take progress screenshots? Nope. So. This is the board. I need to add some mounting still but I cannot figure out what fits without messing with cad a bit, as this pcb doesn’t have a representation of the switches. Here was my process. Organize. I started by manually laying out the whole key grid. Easyeda has tools to do this, but they cannot handle multiple components that group together (like switches and diodes). So, I did it all by hand. The keys are on a 17.5x18.5mm grid. This should put 1mm between each key. I then put all the brains on the left of the board for no reason other than I felt like it. In hindsight I maybe should have put them on the top, but I don’t think I want to redo it . Wire the grid. This was tedious as I had to go and do the traces for each diode and key, but I got it done. Wire the brains. This is for 2 layer, so I have no gnd or 3v3 planes, something I have grown very used to. Wire the grid to the brains. This took the most time as I had to keep redoing traces when I figured out I blocked something. That’s it ! A super quick ortholinear 50% keyboard with USBC for my deck. It may be detachable, hence the USBC. I haven’t decided yet but I will soon. That’s the easy part of this project done. Next is a bunch of hard routing. Ugh."}, {"post_id": 78614, "ts": "2026-06-26T00:00:00Z", "hours": 2.5, "text": "Keyboard 2 - Electric Boogaloo. So. I fiugred out that my footprint for the keyswitch sockets was wrong as it did not contain the necessary mounting holes for the switches. This meant I had to redo the keyboard. I took this opportunity to also move the brains up top. This makes the keyboard way less wide, allowing me to make the whole deck less wide. Hooray. I also took progress photos this time. I started by organizing the key grid. Because this is an ortholinear keyboard, it really is just a basic grid. Each diode got put in a little slot at the top, where there is a cutout in the key switch. This is important to avoid collisions of the keys with the diodes. Next I wired up the rows and columns. This is always the most time consuming part. Once I had the grid done, I decided to do something I don’t normally do. I adjusted the pin locations to match the physical layout, allowing me to make a MUCH better looking circuit. It went through a few iterations. Here are two of them. The second looks way better. The columns all connect to the sides while the rows attach to roughly the bottom right. This makes the whole circuit very well organized and creates “wings” of sort out of wiring for the columns. I love it. Next was the brains! I challenged myself to make this as compact as posSIble - good practice for when I have to do the Mu board. It looks pretty great! Left to right it goes USB, 3v3 LDO, MCU, and then debug switches. Here is a close up of the usb section. It is so compact! This board is 2 layer too. If I can get this compact on 2 layer, imagine what I can do with 4 or 6 (aka the mu board). I really didn’t want to redo this board but I am very glad I did. It is way narrower, at 228.5mm wide instead of 260mm, allowing me to keep this deck small. Specifically, small enough to fit structural parts on my 3D printers without splitting them up. Because it’s way cooler to not have ugly seams/splits! I am getting really excited for this project. The keyboard board is so good."}, {"post_id": 78613, "ts": "2026-06-25T00:00:00Z", "hours": 3.5, "text": "Little fixes, little annoyances. Ok so. I had to make a bunch of small fixes in prepping for pcb time and ugh. For instance, changing every instance of a + or - to _P or _N. Why? Because I decided I like that more and want it to be consistent across my whole schematic. What else… I ran DRC a few times to catch issues. Everything is wired up now. Running DRC also showed me that some components were missing footprints, so I had to resolve that. For the most part that was an easy fix. But, I found out my usba 3.0 port was completely messed up and was somehow half of a 2 port schematic, with no footprint. So I had to fully replace that component. Fun fact - majority of LCSC usba 3.0 ports have no footprint or schematic. Problematic. I found one though! Tadaaa. Oh I also realized I forgot fans and a power switch setup. Fans were easy, I just stole the circuit from the lattepanda reference design because I know that works. Fan 1 is the cooler attached to the lattepanda while fan 2 will be some sort of additional inlet or something. I haven’t decided yet but I will figure it out. It’s nice to have either way. > Power switch is simple but actually made me realize I had no way to cut power to anything but the mu, or everything. All or nothing basically. And that is not great for battery life, especially when my battery charging/monitoring circuit NEEDS to maintain power or else I could get a lipo fire (and I can’t charge my battery, and I can’t turn on stuff, etc). So, I split my 5v into two sections. 5v for the battery side and 5v for everything else. Then I put a load switch between the two and wired it to the power button. 90% of the power draw that isn’t the mu is on 5v. 3V3 draws practically nothing and it’s for the best that I maintain 3v3 power, as the Mu needs that for bios stuff. 12v is also needed to stay on as the Mu doesn’t fully lose power, it goes into a shut-down standby mode waiting to be turned back on. This protects your data and whatnot. In desktop PCs, the PSU never actually turns off unless you actively turn it off! The power button just kills everything else. Same philosophy here. Now I think I really am ready to start the pcb. I do want to maybe take a look in cad first to get an idea of what to do, but I could also just take a reserved design approach and work around the pcb. My two main design goals would thus be access to I/O and keeping it thin. Those are pretty simple if you just keep it in mind. I do need to make sure there is space for internal components and the screen and whatnot. PCB Soon!"}, {"post_id": 78612, "ts": "2026-06-24T00:00:00Z", "hours": 4.5, "text": "GPS and LORA!! These are the last two major things of the project. I am forgoing the continuity checker now because all my flight computers do continuity checking and, more importantly, I don’t feel comfortable applying current to explosive charges using anything I designed. First was GPS. I spent a while researching bias tee circuits so I could properly supply 5v to my active antenna. Bias tees are circuits that inject DC power into coaxial, aka AC, lines without disrupting the signal. Black magic in my opinion. Witchcraft. Regardless, after all my research, a friend pointed out that ublox has an integration manual that gives you the exact circuit needed. Because of course I would find that after my research. It’s actually quite simple in the end. I wired power, ground, uart for data, and the antenna line. That’s it. I just have to remember that the antenna line is impedance matched to 50 ohm, which means I need to specify board stackup and all that jazz. I already need to do some of that stuff for other high speed sensitive signals like usb 3.2, ethernet, and hdmi, so nothing new for this project. This should be fully functiona GPS for my deck because linux is cool and supports uart well. This gps module is ten bucks… sheesh. Anywho, next, and somehow the last part of the entire schematic, was LORAWAN. I was initially using an SX1262 module from SEEED Studio but unfortunately none of those feature UART, only SPI. Technically speaking, the Mu has SPI, but it is in practice only able to be used for audio. So, I had to find something with UART. I ended up finding the RAK3172-T. This is a cool module that uses a fancy MCU from ST that has lorawan integrated. Actually, it is the exact same mcu I am using for a camera controller board. That camera controller project is the reason I am putting lorawan on this deck in the first place (there are other reasons too now, but that was the main driving one). So, funnily, we come full circle. Because this is a full MCU it does need firmware updates, so I have to include an STLink header and reset/boot buttons, but thats fine. Besides that I hook up uart and power and we are good to go. That leaves us with our last schematic page completed. Kinda. I determined that, unfortunately, I cannot do this as one big PCB like I had originally intended. That’s chill, I just have to break off the keyboard, which I can do. So, the keyboard is now its own board. That means adding a usbc port to the keyboard for internal wiring. Easy peasy, in the bottom left. It’s just usb2.0, so nothing fancy. Oh, I also need to add a 3v3 regulator. Huh. I just realized that literally while typing this. Let me grab the one from my deck. Problem solved. This takes 5v from VBUS and converts it down to 3v3 for everything else. Simple fix. The cool thing about having my keyboard be a separate board is I could make the keyboard detachable. Will I do that? Not sure. It would be pretty neat though. This also meant adding another internal USBA port for the keyboard wire. While I was at it, since I have extra usb lines, I added another external USBA port aswell. I organized the schematic a little while I was at it to make things look nice. I now have 3 internal USBA, 2 external, and 2 external USBC. That’s 7 ports total, 4 of which are accessible externally. The 3 internal are reserved for an rtl-sdr, the keyboard, and powering the screen. I actually went through and organized all the unorganized sheets! It looks pretty nice now. There’s USBC Ports 1 and 2. There’s Ethernet. There’s storage and wifi. And last, but not least, power finalized. I cannot really organize hdmi much because of the way I intertwined all the stuff, but they don’t look bad. Well I can split off the ESD diodes like this: Yeah sure, why not. Both pages for hdmi are identical. That’s it. All I have left before I can start [Entry truncated]"}, {"post_id": 78611, "ts": "2026-06-23T00:00:00Z", "hours": 4.0, "text": "Today was ethernet and some little touches here and there. Connecting stuff to the lattepanda mu, changing some usba ESD diodes, planning, etc. First, ethernet. I do not understand ethernet. I tried hard to understand and use a TI IC for it and make my own circuit. I couldn’t figure it out. So, I made my own version of a circuit I found on an existing lattepanda mu carrier board - the lattepanda MOKA. https://github.com/piecol/lattepanda_MOKA It’s a pretty cool project and has good examples of some high speed routing and schematic design. This is what the MOKA has for ethernet. And this is what I have. Similar, but I made a fair amount of changes. Notably: Different ESD diodes, I like the TI ones. Different AC coupling capacitors, the MOKA used the wrong ones? I guess it wasn’t an issue but they are supposed to be 220nf, not 100nf. Straight from lattepanda/intel, so I know it’s right. DIfferent resistors to match datasheets better. Different crystal. Different pin names of course. I think that’s it? And I made everything bigger and easier to see. At their core, the circuits are similar, but I made a fair amount of changes. Call it a Reference . Oh, I also hooked up 3v3 VCC to the ethernet port. For some reason the moka just has a capacitor straight to ground?? Which is a silly mistake and probably a non issue but could affect the performance of your magnetics (if they even get power at all without that… datasheet isn’t very helpful.) So that’s ethernet! This will be super nice. I am using an IC that supports ethernet evaluation and fancy debug stuff so I should be able to use this for debugging if I wanted to. Good cyberdeck ability. Next. I changed my USBA to use the TI ESD diodes from my other pages since they are much nicer than the weird cheapo chinese one that I had before. Next again! Some little touches here and there on wiring. Look! USB has the keyboard wired in! That’s just an example of one little touch. Basically all pin mangement though. Double checking, triple checking, quadruple checking. I will never stop checking. Anywho, I also mentioned planning. I am switching to Linux. Planning on windows initially was a little silly but I wanted to be able to use fusion360. I could maybe use proxmox with windows? Depends what ram version I get of the Mu. We will see! This also means I shouldn’t need to run GPS and LORAWAN as USB devices, but rather straight to the mcu over i2c/spi/uart (haven’t decided). Technicallyyyy windows supports that but you need ring 0 level drivers which are incredibly annoying to deal with because of security shtuff. So, I just won’t deal with it! Linux to the rescue. This is probably the right choice for a lot of reasons I have yet to determine. That’s all for today. Next is gonna be finally tacking GPS and Lorawan I think? Or maybe I put it off more by doing trackball stuff. Though I may just make the trackball a USB module so that I can move it…. We will see. It’s funny, I am already past 24 hours of work on this… and I haven’t started any routing or cad. None. Zero. Yippee."}, {"post_id": 78610, "ts": "2026-06-22T00:00:00Z", "hours": 3.0, "text": "Howdy. I figured out the USB stuff! Turns out, I can just wire any two GPIO pins from the TPS25751 to the flip and enable pins of my usbc mux and then I can assign those roles through programming. Ezpz. I enabled adaptive EQ, so for the port side of the mux I don’t need to config any EQ. I think I will need to config EQ for the host side, but I cannot do that until I know my trace lengths! So it is officially a “later me problem”. Tada. Usbc port with charging. The other usbc port was pretty easy. I used a controller that integrates both power control and the mux into one IC, making my life easier. This side doesn’t have a charging circuit since as I covered previously, that is surprisingly difficult to pull off. But what it does have is a vbus power switch to hook vbus to my 5v source for downstream mode. That way it can power peripherals like mice and keyboards. My other port should be able to handle that automatically through the tps25751 so I don’t need a vbus switch. That’s the only difference besides some pin naming between the two schematics! Both have, from left to right, the port (and PD negotiator if present), the TVS diodes, and then the usbc controller/mux/redriver/they’re all the same. I chose the tps25221 for my vbus controller because it is active both low and high, while I need active low, and because TI has great datasheets. Most of the chips I was finding are only active high, so its nice that this one is both, as my usbc controller outputs active low through the ID pin. This means the pin gets pulled low when the usbc port is connected. Anywho, I can move on from usbc for now. Actually USB in its entirety since I already have my USBA 2.0 ports wired too. I am not sure if they are connected to the Mu yet, they might not be, but that is ok since I need to figure some other stuff out first before I go determining pin assigments for certain. For example… HDMI! That is what I will be tackling in my next entry. I will have two HDMI 2.1 ports, one internal for the built in screen and one external for external screens. As I have mentioned before, I could try to use ribbon for the built in screen, but I don’t want to worry about pinout issues. So I will just suffer a little. By default, the lattepanda mu exposes 2 out of the 3 max HDMI ports, which is perfectly what I need. No bios changes needed yet, to my knowledge! Ta ta for now. Surely hdmi won’t be a huge headache, right? Right?"}, {"post_id": 78609, "ts": "2026-06-22T00:00:00Z", "hours": 4.5, "text": "Howdy again! Second entry for today. I tackled HDMI and… the keyboard! First, hdmi. I have two hdmi ports. One on the inside, one the outside. I need a port, protection diodes, and some power stuff/other misc. requirements. I started with just getting everything wired up. I followed a reference design from lattepanda to figure out which pin goes where. You can see a bunch of resistors on the data lines - those are an intel requirement for hdmi. They connect to a mosfet that is controlled by the state of the PC (shutdown, sleep, etc). They help with compatibility I think? Idk, it’s just a necessity. Bottom left is the ESD diodes. They’re the same diodes from my usb shenanigans - they are advertised to work for both. Next was I2C. The HDMI side needs 5v while the lattepanda side needs 3v3. So, I use a logic converter or whatever it’s called. This just converts cleanly between two reference voltages, 3v3 and 5v. When I scrolled down further in the datasheet I saw I needed decoupling and pullup resistors. So, there’s that. Oops. Oh I also forgot to cover the bottom right. That’s hot plug detecting. Basically, it lets the intel graphics processor know when the cable has been plugged in or unplugged while the device is on. That way it can reconfigure or whatever. 5v power for this also has a diode on it so that it can NEVER EVER BACKFEED. EVER. That can destroy stuff! Anywho, I have two ports, so all of that gets duplicated for round 2. The pinout follows the same scheme as the first one despite the different naming. It’s still the same thing, just different names. You can see they follow the same order and everything. That’s actually all for hdmi for now. Routing will be a different story since they’re high speed differential pairs and thus need really fancy treatment… We will get there eventually. I hope. Next. Keyboard! I started by making my matrix. I am doing a 60 key 50% choc keyboard, mimmicking this bad boy: Called the jj50. It doesn’t use choc switches but thats ok. It will be hot swappable as I don’t like hard soldering keyswitches. Sockets are also dirt cheap. Next was mcu. It’s going to be a hardwired usb device, but it still needs an mcu to pretend to be that usb device even though its on the same pcb as the rest of the cyberdeck. I started with an rp2040. Then asked my brother if he has used one. And he said to use something else. So after a bit of browsing I chose an stm32f072cbt6 for simplicity and ease. Man, was it simple. Like, that’s it y’all. ESD diodes, reset and boot buttons, and the mcu, which just gets given power, two usb lines, and the keyboard matrix. Nothing else. It was surprisingly simple and I spent so long checking the datasheet to make sure I wasn’t doing something wildly wrong. I am not! (To my knowledge). In just a couple hours we have fully finished the HDMI and keyboard schematic. Unlike the USB I don’t have to tune EQ based off my pcb traces, so I can just finish those bad boys right now. In a days work, we have done USBC, HDMI, and keyboard. Yippee! Oh, I hit 10 pages on my schematic btw. This is a BIG project."}, {"post_id": 78608, "ts": "2026-06-16T00:00:00Z", "hours": 4.5, "text": "Alright so. I decided to tackle the usbc 3.2 ports. I want to have both ports able of charging the battery with decent speed (20v) and high data speed. First things first I had to find a new usbc port with the required rx/tx lines for high speed. From there, I wanted to do the TVS filtering. I started following this diagram from TI: This sucks. Like, really bad. It will be impossible to route, takes so much space, and the parasitics are probbaly mind boggling. So, I decided to look for chips that do multi input filtering. This way it’s nice and compact but still gives me all the tvs protection. After a LOT of digging I ended up at this. One IC specifically for handling Vbus, since that is high voltage, and then 3 of another IC for rx/tx/d+/d-. These diodes act as protection from surges, static, water shorting, etc. so my circuit doesn’t fry. That took about 2 hours. Now for what took the rest of the time. Trying to figure out multi port charging. Tl:Dr It is extremely difficult to pull off as a hobbyist. Why? I don’t know. But I will just have one charging port. I started with just trying to have two usb pd negotiators and one charging IC. However. USB PD requires that the negotiator chip talk with the charger IC for safety purposes. For some reason, nobody has bothered to implement it in a way that allows for more than one negotiator per charger. With all the Ti products for example, none of them offer i2c addressing, so they will always end up conflicting with eachother and could even pose a fire risk. All the chargers that can handle it require talking to your CPU itself. The problem with that is… that is really, really difficult to configure. It’s not available in BIOS clearly and it isn’t in software. It’s like cpu side firmware stuff that you need specialized tools to work with. This is why laptop manufacturers always partner with CPU manufacturers (and charger manufacturers) - they get those tools. At one point I found a dual port charger IC from TI and got super excited! But. It was not 2 in 1 out. It was 2 in 2 out. It solved none of my issues as you still had conflicting logic of the two power paths. Bleh. So, after all that effort, talking with friends, even making a reddit post, I decided it would just be best if I only had charging on one port and data on both. That’s fine and makes my job simpler, I just have to remember which one is charging when I go to plug the device in. Anywho, I didn’t end up getting to routing the signals to the usb 3.2 logic controller, which is what handles all the signal processing to pass onto the lattepanda and whatnot. I will do that next entry! I also want to work on HDMI next entry. That too will need TVS diode protection but I should be able to use the same chips I think! I spent so long researching and reading datasheets. I have 60 chrome tabs open right now. Bleh."}, {"post_id": 78607, "ts": "2026-06-15T00:00:00Z", "hours": 4.0, "text": "Hi. So. This project has been sponsored by LattePanda/DFRobot! I will be receiving a LattePanda Mu to base this project around. That means some things have to change! My MCU of course, my power plan a little, my format, my USB plan, etc. A lot of changes. First change - get the lattepanda in and start labeling pins! I got the symbol for this fella from an open source carrier board found here: https://oshwlab.com/yoge2013/mini-carrier-demo-for-lattepanda-mu This is a very well done mini carrier and will be good inspiration for mine. Because of how big this is and how many pins there are, it gets two sections in its schematic. One is for power and one is for literally everything else. Power is on the right, else on the left. I am not sure if I will be using all of these pins but I will sure use a lot of them, so they are getting labels just in case. Now, for what changes. First of all my power architecture changes a little as I need to boost 1s lipo voltages up to 12v for the Mu. This is simple enough and can be taken care of by a single boost converter. This circuit was figured out by Ti’s webench power supply configurator, a glorious tool that made this so easy. I inputted what I had and what I needed and it spat out a bunch of options - I picked the simplest and most efficient one. I also realized my 5v setup was a buck, not a boost, so I need to give it the 12v instead of raw system battery voltage. Easy fix. So the power path goes Battery -> Regulator/Charger -> 12v -> 5v -> 3v3 I think that should work. I don’t know if I need 1v8 yet… we are gonna find out. Anywho, I also stole the m.2 storage setup from the carrier board. “Stole”. It needs a little modification to fit my stuff but I will do that later. One of them is actually for a wifi card while the other is actually storage. The Mu does not have built in wifi like the CM5 does. Probably doesn’t fit, this thing is sooo dense. Anywho. Some more changes will need to be made. For starters, I don’t think I need the USB Hub IC’s anymore? Since the Mu has 8x USB 2.0 + 4x Usb 3.2. But I think some of them have to be multiplexed pins from pcie/sata? Basically meaning dual function pins and I can only pick one function, via bios. Since I need pcie for both storage and wifi, I might get cut short on usb ports. But that might not be an issue! I need to look into it more and do some planning. What else… The lorawan stuff probably cannot be over SPI anymore? I don’t actually know how that works with windows… Or I just give in and run linux. I dunno. Gotta think about it. Continuity checker will probably be made hardware only? Or it just becomes yet another usb device. Maybe I will want a usb hub IC just so I have more IO available. RTL-SDR is usb as always. Screen… I have two options. I can either deal with routing hdmi or try to just use the ribbon on the mu. The issue with that is there can be mismatches in pinouts on the ribbon cables - that can’t happen with hdmi. So I think I will probably just expose HDMI. One external for external screens and one internal for the main screen, I think. That’s all for this entry. I am gonna continue reading lattepanda documentation and watch some videos on carrier board design (omg… those exist!!!)."}, {"post_id": 78606, "ts": "2026-06-02T00:00:00Z", "hours": 2.0, "text": "Okay. This has been floating around my head for a while but basically I was thinking. I don’t have a laptop. I cannot afford a laptop. But I do have hackclub. What’s better than a laptop? A cyberdeck! But a general purpose one is kinda lame. Good thing I do rocketry. So here we are. A rocketry ground station cyberdeck. I will preface by saying the scope creep will be strong with this one. Initial feature list: Custom CM5 Carrier Board Based. LORAWAN enabled for controlling electronics and monitoring rocket. Both dedicated 915mhz lorawan transmitting as well as general RTL-SDR monitoring. Ethernet USBC Charging and IO Triple USBA IO XT 30 EMatch continuity checker Dual HDMI Built in touch screen Custom Keyboard Custom Track Ball Custom Scroll Wheel Some buttons! I think that is everything. Quite a lot of features - this is gonna be a long one, with a lot of pcb design. I already started the preliminary PCB design. Mainly, component selection. I will likely need to have a multi page schematic to fit everything cleanly, but that is ok. For now I have this big schematic covered in components. It has the IO ports, m.2 nvme port, usb stuff, battery charging stuff, and lorawan stuff. Oh and the CM5. I need to figure out my schematic hierarchy. Maybe: MCU/Storage/RF Everything IO/Ports Inputs (keyboard, scroll wheel, track ball)/Sensors. Maybe? I am not sure. I will workshop it. I am actually pretty excited about this despite how nightmarish it is going to be. Let’s do this thing!"}]...
|
Title: SmasherGS by @parkerrupe | Stardance
Devlo Title: SmasherGS by @parkerrupe | Stardance
Devlogs:
Okay. This has been floating around my head for a while but basically I was thinking. I don’t have a laptop. I cannot afford a laptop. But I do have hackclub. What’s better than a laptop? A cyberdeck! But a general purpose one is kinda lame. Good thing I do rocketry. So here we are. A rocketry ground station cyberdeck. I will preface by saying the scope creep will be strong with this one. Initial feature list: Custom CM5 Carrier Board Based. LORAWAN enabled for controlling electronics and monitoring rocket. Both dedicated 915mhz lorawan transmitting as well as general RTL-SDR monitoring. Ethernet USBC Charging and IO Triple USBA IO XT 30 EMatch continuity checker Dual HDMI Built in touch screen Custom Keyboard Custom Track Ball Custom Scroll Wheel Some buttons! I think that is everything. Quite a lot of features - this is gonna be a long one, with a lot of pcb design. I already started the preliminary PCB design. Mainly, component selection. I will likely need to have a multi page schematic to fit everything cleanly, but that is ok. For now I have this big schematic covered in components. It has the IO ports, m.2 nvme port, usb stuff, battery charging stuff, and lorawan stuff. Oh and the CM5. I need to figure out my schematic hierarchy. Maybe: MCU/Storage/RF Everything IO/Ports Inputs (keyboard, scroll wheel, track ball)/Sensors. Maybe? I am not sure. I will workshop it. I am actually pretty excited about this despite how nightmarish it is going to be. Let’s do this thing!
Hi. So. This project has been sponsored by LattePanda/DFRobot! I will be receiving a LattePanda Mu to base this project around. That means some things have to change! My MCU of course, my power plan a little, my format, my USB plan, etc. A lot of changes. First change - get the lattepanda in and start labeling pins! I got the symbol for this fella from an open source carrier board found here: https://oshwlab.com/yoge2013/mini-carrier-demo-for-lattepanda-mu This is a very well done mini carrier and will be good inspiration for mine. Because of how big this is and how many pins there are, it gets two sections in its schematic. One is for power and one is for literally everything else. Power is on the right, else on the left. I am not sure if I will be using all of these pins but I will sure use a lot of them, so they are getting labels just in case. Now, for what changes. First of all my power architecture changes a little as I need to boost 1s lipo voltages up to 12v for the Mu. This is simple enough and can be taken care of by a single boost converter. This circuit was figured out by Ti’s webench power supply configurator, a glorious tool that made this so easy. I inputted what I had and what I needed and it spat out a bunch of options - I picked the simplest and most efficient one. I also realized my 5v setup was a buck, not a boost, so I need to give it the 12v instead of raw system battery voltage. Easy fix. So the power path goes Battery -> Regulator/Charger -> 12v -> 5v -> 3v3 I think that should work. I don’t know if I need 1v8 yet… we are gonna find out. Anywho, I also stole the m.2 storage setup from the carrier board. “Stole”. It needs a little modification to fit my stuff but I will do that later. One of them is actually for a wifi card while the other is actually storage. The Mu does not have built in wifi like the CM5 does. Probably doesn’t fit, this thing is sooo dense. Anywho. Some more changes will need to be made. For starters, I don’t think I need the USB Hub IC’s anymore? Since the Mu has 8x USB 2.0 + 4x Usb 3.2. But I think some of them have to be multiplexed pins from pcie/sata? Basically meaning dual function pins and I can only pick one function, via bios. Since I need pcie for both storage and wifi, I might get cut short on usb ports. But that might not be an issue! I need to look into it more and do some planning. What else… The lorawan stuff probably cannot be over SPI anymore? I don’t actually know how that works with windows… Or I just give in and run linux. I dunno. Gotta think about it. Continuity checker will probably be made hardware only? Or it just becomes yet another usb device. Maybe I will want a usb hub IC just so I have more IO available. RTL-SDR is usb as always. Screen… I have two options. I can either deal with routing hdmi or try to just use the ribbon on the mu. The issue with that is there can be mismatches in pinouts on the ribbon cables - that can’t happen with hdmi. So I think I will probably just expose HDMI. One external for external screens and one internal for the main screen, I think. That’s all for this entry. I am gonna continue reading lattepanda documentation and watch some videos on carrier board design (omg… those exist!!!).
Alright so. I decided to tackle the usbc 3.2 ports. I want to have both ports able of charging the battery with decent speed (20v) and high data speed. First things first I had to find a new usbc port with the required rx/tx lines for high speed. From there, I wanted to do the TVS filtering. I started following this diagram from TI: This sucks. Like, really bad. It will be impossible to route, takes so much space, and the parasitics are probbaly mind boggling. So, I decided to look for chips that do multi input filtering. This way it’s nice and compact but still gives me all the tvs protection. After a LOT of digging I ended up at this. One IC specifically for handling Vbus, since that is high voltage, and then 3 of another IC for rx/tx/d+/d-. These diodes act as protection from surges, static, water shorting, etc. so my circuit doesn’t fry. That took about 2 hours. Now for what took the rest of the time. Trying to figure out multi port charging. Tl:Dr It is extremely difficult to pull off as a hobbyist. Why? I don’t know. But I will just have one charging port. I started with just trying to have two usb pd negotiators and one charging IC. However. USB PD requires that the negotiator chip talk with the charger IC for safety purposes. For some reason, nobody has bothered to implement it in a way that allows for more than one negotiator per charger. With all the Ti products for example, none of them offer i2c addressing, so they will always end up conflicting with eachother and could even pose a fire risk. All the chargers that can handle it require talking to your CPU itself. The problem with that is… that is really, really difficult to configure. It’s not available in BIOS clearly and it isn’t in software. It’s like cpu side firmware stuff that you need specialized tools to work with. This is why laptop manufacturers always partner with CPU manufacturers (and charger manufacturers) - they get those tools. At one point I found a dual port charger IC from TI and got super excited! But. It was not 2 in 1 out. It was 2 in 2 out. It solved none of my issues as you still had conflicting logic of the two power paths. Bleh. So, after all that effort, talking with friends, even making a reddit post, I decided it would just be best if I only had charging on one port and data on both. That’s fine and makes my job simpler, I just have to remember which one is charging when I go to plug the device in. Anywho, I didn’t end up getting to routing the signals to the usb 3.2 logic controller, which is what handles all the signal processing to pass onto the lattepanda and whatnot. I will do that next entry! I also want to work on HDMI next entry. That too will need TVS diode protection but I should be able to use the same chips I think! I spent so long researching and reading datasheets. I have 60 chrome tabs open right now. Bleh.
Howdy again! Second entry for today. I tackled HDMI and… the keyboard! First, hdmi. I have two hdmi ports. One on the inside, one the outside. I need a port, protection diodes, and some power stuff/other misc. requirements. I started with just getting everything wired up. I followed a reference design from lattepanda to figure out which pin goes where. You can see a bunch of resistors on the data lines - those are an intel requirement for hdmi. They connect to a mosfet that is controlled by the state of the PC (shutdown, sleep, etc). They help with compatibility I think? Idk, it’s just a necessity. Bottom left is the ESD diodes. They’re the same diodes from my usb shenanigans - they are advertised to work for both. Next was I2C. The HDMI side needs 5v while the lattepanda side needs 3v3. So, I use a logic converter or whatever it’s called. This just converts cleanly between two reference voltages, 3v3 and 5v. When I scrolled down further in the datasheet I saw I needed decoupling and pullup resistors. So, there’s that. Oops. Oh I also forgot to cover the bottom right. That’s hot plug detecting. Basically, it lets the intel graphics processor know when the cable has been plugged in or unplugged while the device is on. That way it can reconfigure or whatever. 5v power for this also has a diode on it so that it can NEVER EVER BACKFEED. EVER. That can destroy stuff! Anywho, I have two ports, so all of that gets duplicated for round 2. The pinout follows the same scheme as the first one despite the different naming. It’s still the same thing, just different names. You can see they follow the same order and everything. That’s actually all for hdmi for now. Routing will be a different story since they’re high speed differential pairs and thus need really fancy treatment… We will get there eventually. I hope. Next. Keyboard! I started by making my matrix. I am doing a 60 key 50% choc keyboard, mimmicking this bad boy: Called the jj50. It doesn’t use choc switches but thats ok. It will be hot swappable as I don’t like hard soldering keyswitches. Sockets are also dirt cheap. Next was mcu. It’s going to be a hardwired usb device, but it still needs an mcu to pretend to be that usb device even though its on the same pcb as the rest of the cyberdeck. I started with an rp2040. Then asked my brother if he has used one. And he said to use something else. So after a bit of browsing I chose an stm32f072cbt6 for simplicity and ease. Man, was it simple. Like, that’s it y’all. ESD diodes, reset and boot buttons, and the mcu, which just gets given power, two usb lines, and the keyboard matrix. Nothing else. It was surprisingly simple and I spent so long checking the datasheet to make sure I wasn’t doing something wildly wrong. I am not! (To my knowledge). In just a couple hours we have fully finished the HDMI and keyboard schematic. Unlike the USB I don’t have to tune EQ based off my pcb traces, so I can just finish those bad boys right now. In a days work, we have done USBC, HDMI, and keyboard. Yippee! Oh, I hit 10 pages on my schematic btw. This is a BIG project.
Howdy. I figured out the USB stuff! Turns out, I can just wire any two GPIO pins from the TPS25751 to the flip and enable pins of my usbc mux and then I can assign those roles through programming. Ezpz. I enabled adaptive EQ, so for the port side of the mux I don’t need to config any EQ. I think I will need to config EQ for the host side, but I cannot do that until I know my trace lengths! So it is officially a “later me problem”. Tada. Usbc port with charging. The other usbc port was pretty easy. I used a controller that integrates both power control and the mux into one IC, making my life easier. This side doesn’t have a charging circuit since as I covered previously, that is surprisingly difficult to pull off. But what it does have is a vbus power switch to hook vbus to my 5v source for downstream mode. That way it can power peripherals like mice and keyboards. My other port should be able to handle that automatically through the tps25751 so I don’t need a vbus switch. That’s the only difference besides some pin naming between the two schematics! Both have, from left to right, the port (and PD negotiator if present), the TVS diodes, and then the usbc controller/mux/redriver/they’re all the same. I chose the tps25221 for my vbus controller because it is active both low and high, while I need active low, and because TI has great datasheets. Most of the chips I was finding are only active high, so its nice that this one is both, as my usbc controller outputs active low through the ID pin. This means the pin gets pulled low when the usbc port is connected. Anywho, I can move on from usbc for now. Actually USB in its entirety since I already have my USBA 2.0 ports wired too. I am not sure if they are connected to the Mu yet, they might not be, but that is ok since I need to figure some other stuff out first before I go determining pin assigments for certain. For example… HDMI! That is what I will be tackling in my next entry. I will have two HDMI 2.1 ports, one internal for the built in screen and one external for external screens. As I have mentioned before, I could try to use ribbon for the built in screen, but I don’t want to worry about pinout issues. So I will just suffer a little. By default, the lattepanda mu exposes 2 out of the 3 max HDMI ports, which is perfectly what I need. No bios changes needed yet, to my knowledge! Ta ta for now. Surely hdmi won’t be a huge headache, right? Right?
Today was ethernet and some little touches here and there. Connecting stuff to the lattepanda mu, changing some usba ESD diodes, planning, etc. First, ethernet. I do not understand ethernet. I tried hard to understand and use a TI IC for it and make my own circuit. I couldn’t figure it out. So, I made my own version of a circuit I found on an existing lattepanda mu carrier board - the lattepanda MOKA. https://github.com/piecol/lattepanda_MOKA It’s a pretty cool project and has good examples of some high speed routing and schematic design. This is what the MOKA has for ethernet. And this is what I have. Similar, but I made a fair amount of changes. Notably: Different ESD diodes, I like the TI ones. Different AC coupling capacitors, the MOKA used the wrong ones? I guess it wasn’t an issue but they are supposed to be 220nf, not 100nf. Straight from lattepanda/intel, so I know it’s right. DIfferent resistors to match datasheets better. Different crystal. Different pin names of course. I think that’s it? And I made everything bigger and easier to see. At their core, the circuits are similar, but I made a fair amount of changes. Call it a Reference . Oh, I also hooked up 3v3 VCC to the ethernet port. For some reason the moka just has a capacitor straight to ground?? Which is a silly mistake and probably a non issue but could affect the performance of your magnetics (if they even get power at all without that… datasheet isn’t very helpful.) So that’s ethernet! This will be super nice. I am using an IC that supports ethernet evaluation and fancy debug stuff so I should be able to use this for debugging if I wanted to. Good cyberdeck ability. Next. I changed my USBA to use the TI ESD diodes from my other pages since they are much nicer than the weird cheapo chinese one that I had before. Next again! Some little touches here and there on wiring. Look! USB has the keyboard wired in! That’s just an example of one little touch. Basically all pin mangement though. Double checking, triple checking, quadruple checking. I will never stop checking. Anywho, I also mentioned planning. I am switching to Linux. Planning on windows initially was a little silly but I wanted to be able to use fusion360. I could maybe use proxmox with windows? Depends what ram version I get of the Mu. We will see! This also means I shouldn’t need to run GPS and LORAWAN as USB devices, but rather straight to the mcu over i2c/spi/uart (haven’t decided). Technicallyyyy windows supports that but you need ring 0 level drivers which are incredibly annoying to deal with because of security shtuff. So, I just won’t deal with it! Linux to the rescue. This is probably the right choice for a lot of reasons I have yet to determine. That’s all for today. Next is gonna be finally tacking GPS and Lorawan I think? Or maybe I put it off more by doing trackball stuff. Though I may just make the trackball a USB module so that I can move it…. We will see. It’s funny, I am already past 24 hours of work on this… and I haven’t started any routing or cad. None. Zero. Yippee.
GPS and LORA!! These are the last two major things of the project. I am forgoing the continuity checker now because all my flight computers do continuity checking and, more importantly, I don’t feel comfortable applying current to explosive charges using anything I designed. First was GPS. I spent a while researching bias tee circuits so I could properly supply 5v to my active antenna. Bias tees are circuits that inject DC power into coaxial, aka AC, lines without disrupting the signal. Black magic in my opinion. Witchcraft. Regardless, after all my research, a friend pointed out that ublox has an integration manual that gives you the exact circuit needed. Because of course I would find that after my research. It’s actually quite simple in the end. I wired power, ground, uart for data, and the antenna line. That’s it. I just have to remember that the antenna line is impedance matched to 50 ohm, which means I need to specify board stackup and all that jazz. I already need to do some of that stuff for other high speed sensitive signals like usb 3.2, ethernet, and hdmi, so nothing new for this project. This should be fully functiona GPS for my deck because linux is cool and supports uart well. This gps module is ten bucks… sheesh. Anywho, next, and somehow the last part of the entire schematic, was LORAWAN. I was initially using an SX1262 module from SEEED Studio but unfortunately none of those feature UART, only SPI. Technically speaking, the Mu has SPI, but it is in practice only able to be used for audio. So, I had to find something with UART. I ended up finding the RAK3172-T. This is a cool module that uses a fancy MCU from ST that has lorawan integrated. Actually, it is the exact same mcu I am using for a camera controller board. That camera controller project is the reason I am putting lorawan on this deck in the first place (there are other reasons too now, but that was the main driving one). So, funnily, we come full circle. Because this is a full MCU it does need firmware updates, so I have to include an STLink header and reset/boot buttons, but thats fine. Besides that I hook up uart and power and we are good to go. That leaves us with our last schematic page completed. Kinda. I determined that, unfortunately, I cannot do this as one big PCB like I had originally intended. That’s chill, I just have to break off the keyboard, which I can do. So, the keyboard is now its own board. That means adding a usbc port to the keyboard for internal wiring. Easy peasy, in the bottom left. It’s just usb2.0, so nothing fancy. Oh, I also need to add a 3v3 regulator. Huh. I just realized that literally while typing this. Let me grab the one from my deck. Problem solved. This takes 5v from VBUS and converts it down to 3v3 for everything else. Simple fix. The cool thing about having my keyboard be a separate board is I could make the keyboard detachable. Will I do that? Not sure. It would be pretty neat though. This also meant adding another internal USBA port for the keyboard wire. While I was at it, since I have extra usb lines, I added another external USBA port aswell. I organized the schematic a little while I was at it to make things look nice. I now have 3 internal USBA, 2 external, and 2 external USBC. That’s 7 ports total, 4 of which are accessible externally. The 3 internal are reserved for an rtl-sdr, the keyboard, and powering the screen. I actually went through and organized all the unorganized sheets! It looks pretty nice now. There’s USBC Ports 1 and 2. There’s Ethernet. There’s storage and wifi. And last, but not least, power finalized. I cannot really organize hdmi much because of the way I intertwined all the stuff, but they don’t look bad. Well I can split off the ESD diodes like this: Yeah sure, why not. Both pages for hdmi are identical. That’s it. All I have left before I can start [Entry truncated]
Little fixes, little annoyances. Ok so. I had to make a bunch of small fixes in prepping for pcb time and ugh. For instance, changing every instance of a + or - to _P or _N. Why? Because I decided I like that more and want it to be consistent across my whole schematic. What else… I ran DRC a few times to catch issues. Everything is wired up now. Running DRC also showed me that some components were missing footprints, so I had to resolve that. For the most part that was an easy fix. But, I found out my usba 3.0 port was completely messed up and was somehow half of a 2 port schematic, with no footprint. So I had to fully replace that component. Fun fact - majority of LCSC usba 3.0 ports have no footprint or schematic. Problematic. I found one though! Tadaaa. Oh I also realized I forgot fans and a power switch setup. Fans were easy, I just stole the circuit from the lattepanda reference design because I know that works. Fan 1 is the cooler attached to the lattepanda while fan 2 will be some sort of additional inlet or something. I haven’t decided yet but I will figure it out. It’s nice to have either way. > Power switch is simple but actually made me realize I had no way to cut power to anything but the mu, or everything. All or nothing basically. And that is not great for battery life, especially when my battery charging/monitoring circuit NEEDS to maintain power or else I could get a lipo fire (and I can’t charge my battery, and I can’t turn on stuff, etc). So, I split my 5v into two sections. 5v for the battery side and 5v for everything else. Then I put a load switch between the two and wired it to the power button. 90% of the power draw that isn’t the mu is on 5v. 3V3 draws practically nothing and it’s for the best that I maintain 3v3 power, as the Mu needs that for bios stuff. 12v is also needed to stay on as the Mu doesn’t fully lose power, it goes into a shut-down standby mode waiting to be turned back on. This protects your data and whatnot. In desktop PCs, the PSU never actually turns off unless you actively turn it off! The power button just kills everything else. Same philosophy here. Now I think I really am ready to start the pcb. I do want to maybe take a look in cad first to get an idea of what to do, but I could also just take a reserved design approach and work around the pcb. My two main design goals would thus be access to I/O and keeping it thin. Those are pretty simple if you just keep it in mind. I do need to make sure there is space for internal components and the screen and whatnot. PCB Soon!
Keyboard 2 - Electric Boogaloo. So. I fiugred out that my footprint for the keyswitch sockets was wrong as it did not contain the necessary mounting holes for the switches. This meant I had to redo the keyboard. I took this opportunity to also move the brains up top. This makes the keyboard way less wide, allowing me to make the whole deck less wide. Hooray. I also took progress photos this time. I started by organizing the key grid. Because this is an ortholinear keyboard, it really is just a basic grid. Each diode got put in a little slot at the top, where there is a cutout in the key switch. This is important to avoid collisions of the keys with the diodes. Next I wired up the rows and columns. This is always the most time consuming part. Once I had the grid done, I decided to do something I don’t normally do. I adjusted the pin locations to match the physical layout, allowing me to make a MUCH better looking circuit. It went through a few iterations. Here are two of them. The second looks way better. The columns all connect to the sides while the rows attach to roughly the bottom right. This makes the whole circuit very well organized and creates “wings” of sort out of wiring for the columns. I love it. Next was the brains! I challenged myself to make this as compact as posSIble - good practice for when I have to do the Mu board. It looks pretty great! Left to right it goes USB, 3v3 LDO, MCU, and then debug switches. Here is a close up of the usb section. It is so compact! This board is 2 layer too. If I can get this compact on 2 layer, imagine what I can do with 4 or 6 (aka the mu board). I really didn’t want to redo this board but I am very glad I did. It is way narrower, at 228.5mm wide instead of 260mm, allowing me to keep this deck small. Specifically, small enough to fit structural parts on my 3D printers without splitting them up. Because it’s way cooler to not have ugly seams/splits! I am getting really excited for this project. The keyboard board is so good.
Keyboard! I finally decided to do some pcb design for this project and put the whole keyboard together. Did I remember to take progress screenshots? Nope. So. This is the board. I need to add some mounting still but I cannot figure out what fits without messing with cad a bit, as this pcb doesn’t have a representation of the switches. Here was my process. Organize. I started by manually laying out the whole key grid. Easyeda has tools to do this, but they cannot handle multiple components that group together (like switches and diodes). So, I did it all by hand. The keys are on a 17.5x18.5mm grid. This should put 1mm between each key. I then put all the brains on the left of the board for no reason other than I felt like it. In hindsight I maybe should have put them on the top, but I don’t think I want to redo it . Wire the grid. This was tedious as I had to go and do the traces for each diode and key, but I got it done. Wire the brains. This is for 2 layer, so I have no gnd or 3v3 planes, something I have grown very used to. Wire the grid to the brains. This took the most time as I had to keep redoing traces when I figured out I blocked something. That’s it ! A super quick ortholinear 50% keyboard with USBC for my deck. It may be detachable, hence the USBC. I haven’t decided yet but I will soon. That’s the easy part of this project done. Next is a bunch of hard routing. Ugh.
CAD Break! I decided to toss the keyboard pcb in cad so I could get a full mockup with the switches and just get a general vibe for the scale. It turned out really good! I just did it with a simple rectangular pattern, the hardest part was lining up everything initially. The keycaps are an open source design I found called MOTE. https://www.printables.com/model/864126-mote-choc-low-profile-flat-keycaps I really like the flat look. On the real thing I will probably get legended keycaps but I don’t think I will cad that. I mean maybe I could if I feel like placing a ton of decals (I don’t). Maybe I’ll get bored. I actually had to swap out the boot and reset switches 3 seperate times while I was trying to find something low profile enough to fit under the top plate. This will have a solid plate over it after all and I can’t have that hitting the buttons. The original ones were way too tall. The second revision was better but still too tall. So for the third I got the literal lowest profile I could find. These bad boys are half a millimeter tall. They should work though! Was only mildly tedious to export the 3d file, make changes, export again, make changes, export again, make changes, and export for the last time. Just typing that was annoying. But I did it for the love of the game. I really need to stop procrastinating on the mu board. But, I might do some general cad of the whole deck first. Not sure. TBD.
Beginning of the PCB. The big one. And planning. Okay. So. I imported all the pcb stuff and dear lord is there a lot of components. So. What’s the first step? Sort it! I sorted everything by schematic page and then within the pages by section/component. That way I know what capacitors and resistors belong to what just by glancing at my design. During this sorting, I felt that my battery stuff was looking off. There was an excess of components and some weird duplicates. Turns out, I had accidentally copied a couple things that Ti included in their reference circuit that exist only for internal Ti debug. AKA, they are useless to me. So I went and removed those. Extra programming headers mainly, with some resistors paired with em. It’s kinda goofy how big of a spot the battery connector gets but its ok. Anywho, with that out of the way, I now had a sorted design. You can see the clusters of components and whatnot. Looking at it now, I realize that one of the usbc ports should be by the power circuity (bottom right) since it is part of that. Not that you can read the words, but you can see stuff moved. Here it is with ratlines by the way. Completely unreadable. Anywho, game plan. I can’t quite figure out sizing but I can kinda let the pcb decide that. This is gonna be a bit of a thick boi but that’s alright. I think the mu will be on the back of the deck, not the front, as I can put a vent back there. And then the screen can go on the other side. I have a few requirements though: Aim for a max width of 230mm. I have a lot more space in Y than X (x is the 230mm) to expand if needed, because of the screen. External ports on the right if possible. Antennas up top if possible. Internal ports on the bottom if possible. Mu somewhere in the middle! That’s my plan for now. Obviously, I can change where things end up to fit my format better. But I think that plan should work out. I will need some usb male to female cables to make routing everything work I think. Mostly for the internal rtl-sdr. PCB Time!
Power circuitry and some usbc 3.2. So. High speed routing is probably what I hate most in the world right now. It’s so annoying, it’s all diff pairs, you gotta be so careful. Bleh. Impedance and length matching. Bleh. Regardless, I started routing the very first usbc port just because I have to work around it’s traces. This took an hour. This. It’s 8 trace routes. Although because of how easyeda works it’s split into like 16 different configured differential pairs. Each one needs the rules assigned to tell it spacing and width. Then I had to actually route them. TX lines are supposed to get their passives closer to the USBC port while RX lines get it closer to the device, but both kinda got it in the middle because of how the spacing works out. Oh, and they all get piped through ESD diodes. Then I had to length match them within like, 0.1mm. Blehh. After that I worked more on power circuitry. I needed to route I2C lines within the power circuitry so that the ICs could talk to eachother, as well as add more passives that I had forgotten. Mostly decoupling. I also shifted the VBUS line down so I would have room to wire 5v and 3v3 to all the ICs crammed in there. Before that they were all kinda blocked on my power plane, which defeats the point of a power plane. More on usbc. I had to change nets (pins) a bunch in my schematic to get this to work because I needed them to line up with the physical pin and component locations so I wasn’t crossing paths or anything. While doing this, I noticed something. My USBA 3.2 port was doubled up on pins, sharing with my first USBC port. That’s not right… Turns out, I had made a big oopsie. By default the lattepanda mu only exposes 2 usb3.2 paths. Exposing more would require messing up my hdmi or ethernet. And that doesn’t work. So, I actually had to delete my usba 3.2 port! That’s fine, I have two usbc and a usba still, the usba is just 2.0. But, be honest, who actually needs usba 3.2 when you have usbc? Worst case I plug in a hub. This gives me a decent bit more space and actually makes my life easier. Yay. Anywho, I think the power circuitry and first usbc port are actually done? Ish. I need to route 3v3 and 5v still within the power circuit, and I need to connect the USBC port to the Lattepanda Mu. But those will come later as there are a lot of other components those work around. I spent way too long figuring out how to do high speed traces. These usbc traces are all matched to 90 ohms, all length matched within their pairs, all spaced out, connected to ESD diodes, their passives, aaaaah. There is so much to keep track of. This is the net rule menu for the usbc traces. There are 12 more not pictured, roughly. Each one gets assigned the “usbc” rule I wrote, which just defines spacing and width. I believe spacing and width are like 0.254mm and 0.155mm? Something like that, I know the width I said is right. Spacing is less important as it’s just “make pairs close, make not pairs far”. I think. This is all just my interpretation and it could be wrong. We won’t really find out for sure until I try to use the board! Regardless, I made some serious progress and am getting excited for this to be done! I think I can use this to qualify for OutPost! Hopefully. I really want to go to open sauce again. Next I think is the second USBC port and starting the last of the power routing. Yay.
Power circuitry! I wasn’t sure where to start and I certainly didn’t want to start with any highspeed routing. So, we are doing the power circuit first. I started with simply just… trying to get everything connected and compact. This would prove harder than I anticipated. It’s a big mess honestly. I was working without ratlines so that I can actually see what I am doing, and that means I forgot some components. So it actually just got worse for a bit. The big thick trace is 12v main power. This is up to like, 35 watts, so it needs to be super big. Hence the 3mm wide trace. We have roughly: Bottom is 5v. Top middle is 12v. Top right is battery charger. You can kinda see the ICs buried in there. Those are the focal points. The very first thing I did to make this better was move 5v. I realized there’s no reason it needs to be so smushed in there. So, it gets scooted over to the left. Much better. Zooming in on 5v… I did some rearranging to make it less wonky and added the components I had forgotten - mainly decoupling caps. I am really good at forgetting decoupling caps. Since 5v is the main power for the system besides 12v for the mu, it gets a big big decoupling cap. That’s the big thing on the left. There are actually three ICs in here. One is the 5v buck converter, one is the 5v load switch for the system, and one is the 3v3 LDO. I completely forgot 3v3 is in there! Not that it’s easy to tell. This is the current state of the power circuitry. We have from left to right: 5v and 3v3, 12v, battery charger, and charger EEPROM. Plus the battery and thermistor connectors. Here is a view of the internal power layer. I used a mix of wide traces and copper pours for this so that I can guarantee my traces are wide enough. I also used multiple vias for connections in a lot of spots to give more “wire” for the power to go over. It’s way less of a mess now than when we started, and it was annoying to get to this point. I am still not sure if I am super happy with it, but I think it is good enough for now. I still need to wire up the i2c control, but that requires the USBC PD controller be wired. And I haven’t gotten that far yet. I think that will be next? Though I may need to route some high speed traces first so I know what I am working around. Not totally sure, I’ll probably ask one of my smarter PCB friends what to do. I am gonna get this done, whether through perserverance or straight up spite.
The second usbc port! I have decided that differential pairs are my greatest enemy. Truly, this is miserable I worked from the “bottom” up, routing traces through their passives in impedance and length matched pairs. This worked surprisingly well and I ran into minimal issues. Something cool I was able to do was go back and use open channels on existing ESD diodes rather than adding more. Specifically, that one at the top. It had one pair from the first usbc port, and now has a pair from the second port. Since they both had to be routed around the plug legs like that, they end up in the same spot. RX lines get just resistors while TX lines get capacitors and resistors. That’s what the smaller passives are on two of the lines - capacitors. Once I had those 4 lines routed, I get to route the less crucial lines. There’s still a diff pair in these ones, but since it’s usb 2.0, it is way less important where that bad boy goes. It’s lower speed. Higher speed = more fragile = more important. For these routing I had to add the other chips necessary for the port. One for protecting vbus shorts and one for connecting vbus to 5 volt, since this port needs to be a power source, not just a sink. That way it can power other devices. This is what those vbus lines look like. They will be connected to 5v ultimately, but I have yet to route 5v. Soon. With a couple more traces, I had this USBC port complete. This one is a mess. And it was super tedious as always. But after this I get to route just some nice chill usb 2.0 as a break before I route HDMI. Hdmi has waay more passives on the diff pairs for some reason. HDMI and Ethernet also mean I get to deal with writing new differential pair rules as these have different impedances from USBC. Anywho, here’s both usbc ports together. It’s really getting busy in here! Can’t wait to add more. On the logistics side of things, I got approved for super hardware builder for Outpost aswell as got my flight stipends approved. That means I am going to Open Sauce/Outpost! I need to finish this project by July 7 to truly “qualify”, though if I already have flights… I’m not worried, I’ll get it done in time.
I routed 1 hdmi port and 4 usba 2.0 ports! I am making solid progress! First was hdmi. This required defining a new differential pair rule for 100 ohms instead of 90 ohms (usb spec). Easy enough. That’s the rule. Anywho. HDMI has a pretty interesting circuit on it actually. When the device goes to sleep or shuts off, it pulls all the hdmi lines to gnd with a mosfet. I always thought the way computers did sleep for hdmi was something way fancier but no. It literally just shunts the signal to gnd. Pretty neat in my opinion! That’s the big circuit with resistors on the left. All into a mosfet that triggers with sleep or shutdown. The sls_s0 operates that way - only active (low) when the device is in use. Recreating this was a bit of a hassle honestly and really made me think. But I got it figured out in the end. From right to left it goes connector, ESD diodes, resistors, and then ac filtering capacitors. AC filtering capacitors ugh. Doesn’t that sound like it should filter out AC? But actually, they work by blocking DC and only letting AC through. I think that should be named DC filtering but idk I ain’t no electrician. Rant aside, those resistors will get connected to a common line in the signal layer (layer 3) and then to a mosfet. Next was an I2C level shift. The HDMI side of the I2C lines operate on 5 volt while my device side operates on 3 volt. So, I use a little IC to handle the level shift and make sure my data stays clean. Did you know there is I2C in HDMI? I sure didn’t, but it is fascinating. Basically, the I2C lines are how your device figures things out like screen size, resolution, refresh rate, color profiles, etc. Basically, it is how the device and screen “talk” about what each is capable of and what they need from eachother. Over I2C! I’ve personally seen 30 foot hdmi cables. You’re telling me I2C lines can be 30 feet long without issue?? Wow. Fascinating stuff. Second rant aside, the next circuit was my hot plug detection and 5v power. This is the last bit. These just get lumped together because the pins are together. 5V is on the very left with the rectangle thing, that’s a diode. Everything to the right of that is hot plug detect. It basically tells my device that a screen was unplugged/plugged in while my device was on so that it knows to reconfigure everything. Pretty neat. That’s a full hdmi port! It looks like this: Next was the USB ports. One is external and the other three are internal. They are all basically carbon copies save for two of the internal ones sharing an ESD diode module just because they can and I want to cut down on components. They all get ESD filtering on the data pair, plus a fuse and decoupling capacitor on the 5V power line. That way an overcurrent blows the fuse and not my whole board. That’s it for this entry! I am on a roll today and honestly may not sleep for a while to just keep going. Or I will. I don’t know, it’s late. Next is the second HDMI port and the Ethernet port. Not sure which will come first. Probably HDMI since I know how to do it.
I routed the second hdmi port and the ethernet port! HDMI was super straight forward, just a copy of the other one rotated 90 degrees. Did take me a second to remember what I did but I got it done. Next was ethernet. I had no idea what I was doing for this but here we go. I started connecting the diff pairs of the connector to my ethernet controller. This converts the ethernet junk to PCIE for my Mu to deal with. All length matched, impedance matched to 100 ohms, spaced out properly, ESD filtering, etc. All sorts of nonsense. It was at this point, when I went to wire the passives for my ethernet controller that I realized - hey, this needs 1v0. I don’t have 1v0 in my power circuit. Time to speedrun a power circuit. Ready… Set… Go!! I started by pulling up TI WeBench to get a power circuit schematic. I inputed 1v and 500ma and it outputted a couple options. I picked the first one, the cheapest. It gave me this. I used it to make: This. Identical circuit, just some pins moved on the symbol. I threw this onto the Ethernet page because my Power page is full, and because this is gonna be near the ethernet connector as I don’t trust the 1v to survive a path across the board. Just in case. After that, I synced the schematic to my pcb, and threw together the circuit on board. Stupid simple, so it’s stupid reliable. Boom. Power circuit done. With that fixed I could go back to adding all the passives and power hookups for my ethernet controller. Bam. Done. This thing has so many power hookups, it’s unreal. 4 different pins get 1v0, 3 different pins get 3v3. That’s 7 pins. Wtf. It’s ok though, I got it done. I did have to route decoupling internally for a couple pins just because they got placed next to high speed pairs for some reason (stupid placement realtek. stupid placement.). I think if I do this again I will use a TI IC for ethernet because the realtek documentation is mid and 1v0 is stupid. Give me 3v3 and 5v like a sane person. Anywho, with that done, all the ports on the board are wired. Yup. All of them. HUGE progress. But - what do I have left? m.2 slots CMOS battery fans gps lorawan final power routing (5v and 3v3) final signal routing (hook it all up to the mu) That’s it! Only 7 things on my checklist. M.2 slots are more diff pairs because of course they are, but after that it’s smooth sailing stupid logic until the final signal routing. And even then, that is partially stupid logic too (high speed = smart logic, low speed = stupid logic). I guess I’ll tackle M.2 next? TBD.
High speed routing!! I connected everything up to the Mu. This sucked. Things kept overlapping and it was so bleh. I started in the top right with USBC and worked down and to the left. Well. I actually started with the m.2 because they are right next to the Mu, and then went top right to bottom left. It was at this point that I felt like something might be off. Why would the pins for one HDMI port be backwards but not for the other? The answer was simple: I had the pins wrong. Oops. Once I fixed that I could line up everything real nice. But first, after a tip from a friend, I dropped the USBC lines down to the bottom layer so that everything else could be top. This made it so much cleaner looking. SO much better. I am a little worried about EMI from the buck converters but I think it might be ok? I’ll add a bunch of GND vias or something. After I had those all wired up, I did the last few small circuits. LORAWAN. GPS, with the antenna keepout. The power switch. The fans. And last, but certainly not least, the CMOS battery. And with that, all the individual circuits are complete. So what’s left? I literally just have to connect all the low speed lines up to the Mu, and I am done. This is no small task, as I have to weave around and through all the high speed lines, but it is very possible. It will get done soon.
So. I did the pcie ports. This was a doozy. So for my 3V3 setup for this board, I have a 500ma LDO. Because I don’t have much 3V3. I thought. Fun fact - M.2 SSDs draw up to 3 amps. Uh oh. 3 amps??? That’s insane! So, I initially was just adding a 6a circuit. I got that all sorted. Turns out, this needs 2oz copper. I am not doing 2oz copper. That is expensive. So I switched. Each m.2 gets its own 3V3 3A circuit. Not actually that complex! Just annoying. It was at this point that I also realized I had both M.2 on the same PCIE lines. This does not work. So, I had to delete ethernet to get another pcie set. This is fine. I was never really going to use it if we’re being honest and it lets me make the whole board much smaller to get rid of it. The board is like, 120mm wide now! In that photo you can also see the completed M.2 circuits. Each one has a power circuit tapping into the main 12v, and some passives for stuff like filtering high speed lines and a status LED - one per M.2. Here are some closeups! The circuits off to the side of each port are the power circuits. The bottom left two components are the status LEDs, and the top right two components are filtering capacitors for high speed lines. With those updates, the board is now ready to hook up all the high speed pairs to the mu! After that I get to do low speed, power routing, and be done! Woooo. I am so ready to be done with this pcb.
Low speed routing, mounting holes… we are done!!! As the title of this entry suggests, this is the last entry of pcb design. I routed all the low speed traces, which was the only thing left. Besides mounting holes, which I did afterwards. I started at the top left for this and worked my way clockwise around the board. Mostly. At some point I couldn’t keep track of what needed routed so I was just following what DRC said needed routed, working my way down the list. I started doing that about halfway through. This sucked. I had to bob and weave and sneak my way around all the high speed traces, ensuring proper spacing to minimize cross talk and keep trace impedance correct. Having gnd pours or traces close to the high impedance traces changes impedance because of uhh… parasitic capacitance I think? Electromagnetic fields inducing inductance and capacitance. Something like that. Anywho, lets see it! Look at all that spaghetti. I had to route some traces on my power plane it was getting so busy! Good thing I named it power/aux signal. This is the board with gnd pours on top/bottom. The pours are offset 1mm from all traces, which should be enough to protect the high speed. Here’s the signal layer. Yes, I did route some diff pairs on this layer. They are usb 2.0 and do not care. This is my power/aux sig layer. Mostly big ol power traces and pours, but there are a few signals mixed in that I just couldn’t get to route well on other layers. And those are the GND planes! With that, we have a finished board! Well almost. It needs a bit of silkscreen. That’s better. You can also see the mounting holes in that photo! I just used EasyEDA’s Pad feature to add pads with an OD of 5.8mm and an ID of 3.2mm. Should perfectly match M3 socket head screws. So. Where do we go from here? It’s cad time. I LOVE cad time. I need to physically design the deck itself! Which means exporting the 3D models of my pcbs, modeling out the screen, modeling a case, modeling all the internals, etc. This is the fun part!! Pcbs are NOT the fun part. So… CAD soon!!
CAD!! CAD CAD CAD!! I love CAD. Ok, first things first, I exported the Mu carrier board 3D model and imported it into Fusion 360. I needed to add the M.2 accessories and standoffs for the M.2 and Mu stuff. This was fairly straightforward. The standoffs are M2 x 1.5mm and I used M2 pan head phillips screws as those are typically what M.2 hardware kits include. For the M.2 accessories, we have a full size NVME drive and a half size NVME wifi/bluetooth card. These are lines up to the best of my abilities but may be a smidge off. Thankfully, they are just cosmetic, so it does not matter much at all. Anywho, next up. I started laying things out in CAD for the actual deck. I am going for a minimalist flat slab with a metallic top/bottom panel sandwiching a printed frame. So, that’s what I am laying out! You may have noticed (you probably didn’t) that the keyboard usb port/buttons/etc are now on the bottom of the PCB. This is no mistake! I realized I made a bit of an oopsie - the only way a top plate can fit with choc switches is if all that good stuff is on the bottom. Ugh. So, I flipped those components to the other side of my PCB. This required me to reroute a large portion of the matrix (half of it) and all the traces connecting the matrix to the MCU. As you can see in the photo, all the keyswitch footprints are on the bottom now. Flipped. Anywho, with that out of the way, I could now move on to developing the case. First was the top plate. This is a 1.2mm aluminum lasercut plate that I will be getting anodized Red to contrast the Black 3D printed mainframe. I started by making the keyswitch grid. This is a 17.5x18.5mm spaced 12x5 grid of 13.5x13.5mm squares. Quite a mouthfull. The choc switches snap into this plate nicely, and it serves as a structural point of rigidity. From there it gets extended, and the cyberdeck is starting to look like something! I initially went for this clean look where there was no border around the screen besides the one built into the screen - this would later change, but thats for later. I then started building up the black casing. I am targeting 40mm thickness for the printed portion. Which is fairly thick, but it kinda has to be for the lattepanda mu fan stuff to fit. This has a lip for the keyboard pcb to rest on and mounting holes for the keyboard pcb. I will later add bracing under more of the keyboard pcb but for now I am focused on the outermost shell. It then gets extended under the screen! Man, it’s looking awesome. However, it was at this point that I remembered - hey, the ports for my screen are on the outer edge! How would the cables reach the interior with the ports on the exterior…. They wouldn’t. So, it gets extended! Bam. I actually like how the red border ties it all together and think this still looks awesome! Albeit bigger, but that’s ok. At this point I also added a flat back panel to finish the sandwich. This will ultimately have screw holes and ventilation in it, but for now it can stay flat. That’s all for this entry actually! I made a lot of cad progress, but as you may have noticed this entry took a while to get posted. That’s because I went to OutPost IRL! It was a life changing event and I had so much fun. It was so awesome. Anywho. What’s next? Literally just fleshing out the casing. I need to: Add cutouts for the I/O ports Add internal structure/Skeleton Add ventilation/Fans Add Battery Split part into smaller printable sections And then submit! I am getting so close!!!
Final CAD touches. Wow. That went quick. This is the final cad entry though. First things first, I had to split the casing into two sections that would fit on my printer. These sections would be joined with M3 bolts and heat set inserts. This is a simple overlapping butt joint with 4 screws per side. Nothing complex, was just a few sketch and extrudes. Next was building up interior structure, which you can see part of in that screenshot. I basically just needed mounting for the screen and board. This is what I came up with. I also added the port cuouts on the side while I was at it. This one interior strucutre has mounting holes for both the screen and the lattepanda carrier PCB. Here is the other side. Unfortunately, this will need supports to print, as I couldn’t think of a way to avoid them, which hurts me. But it is what it is, I will make do. Here is the interior with the components. Looks good! Lastly, I added 4 antennas. That’s right, 4. One is on the inside in this corner! The square one internally is a GPS antenna. It is a ceramic active patch antenna. The other 3 antennas are simple “rubber ducky” antennas for Wifi+Bluetooth and LORAWAN. Short and simple. That’s it for cad! Now I just need to take renders and put the repo together with a BOM and stuff! Wait, I forgot screws. Now we good. I also added slits to the back for cooling! They will just be lasercut into the aluminum. Okay, alll done for real this time. Now we move on to renders and stuff.
I worked on preparing for shipping this project. I made most of the BOM, took some renders, did some Github Repo formatting. I am so ready to be done with this project but I am worried about budget as my PCB is rather expensive with tariffs/shipping. Maybe I reach out to PCBway for a sponsorship or something. Ugh, I don’t know. Anyways, peep the cool render....
|
1792644910.7178156
|
1793249710.7178156
|
|
26231
|
Fever dream by @dnlbilko | Stardance
|
dnlbilko
|
0
|
71.38
|
0
|
[]
|
[{"post_id": 57668, "ts": "202 [{"post_id": 57668, "ts": "2026-08-29T21:48:56Z", "hours": 10.2503, "text": "Devlog #8 I continued working on the textures for the game and I also added some features to the game: - I made the player swim in world 4 instead of jumping on the platforms to match the pool theme of the level. - I added a mode selector to the main menu. It works by pressing “a” or “d” and the mode in the middle is the one that gets selected. Here are the textures and the menu:"}, {"post_id": 51886, "ts": "2026-08-21T19:43:23Z", "hours": 9.7061, "text": "Devlog #8 I have continued working on textures for the game. Here is a list of what i drew: - The rest of the backgrounds - 2 enemies - 3 platforms - lightning - 1 portal"}, {"post_id": 45737, "ts": "2026-08-12T12:48:02Z", "hours": 8.6381, "text": "Devlog #7 I have continued working on the art for the game: - I improved the portal for the floater world - I made the background for the lightning world"}, {"post_id": 42745, "ts": "2026-08-07T16:55:12Z", "hours": 10.2747, "text": "Devlog #6 - I have fixed some bugs with the floaters and made it so that multiple floaters spawn on screen when starting and also more floaters can keep on spawning during the game - Added an endless mode - Added an endscreen - Fixed some more bugs - Started drawing the textures for the game. So far i drew a portal and the direction sign"}, {"post_id": 37037, "ts": "2026-07-29T14:40:12Z", "hours": 8.0686, "text": "Devlog #5 I made some new features: I have added a new world with a new entity called floater. It sometimes randomly spawns on the screen and when the player touches it, the screen flashes white for a second making the player unable to see. I added pausing. I made it so that when you die, you respawn in the same world instead of the entire game restarting I made a direction sign which shows which way the portal is. And I also made some small tweaks to the rest of the game"}, {"post_id": 31463, "ts": "2026-07-19T20:48:35Z", "hours": 9.8956, "text": "Devlog #4 I have made some new features: -. I have made a generator that chooses random worlds and creates the map for the run. -. I made 2 new enemies: An entity that looks like the pleayer, but it hunts the player instead. It can follow the player and jump. When it touches the player, the player dies. I made it so that when the player or the enemy jump, the enemy cant change direction, so that the player can jump over it or go under it. An enemy called rush, that, for now, looks like a cube, that sometimes quickly moves across the screen. When its about to move, a warning is shown on the screen and the screen starts shaking. When rush starts moving, the waring disappears and the screen starts shaking more violently. Rush moves from one side of the screen to the other and then back and if it touches the player, the player dies."}, {"post_id": 20220, "ts": "2026-07-01T19:26:47Z", "hours": 4.1267, "text": "Devlog #3 I have made the shaking get stronger when i get closer to the portal and i also made lightning Breakdown of the lightning It spawns at a random position on the screen at a random time. It first gives a short warning by spawning on screen for a longer time. I will later change -the texture of the lightning warning. After the warning is gone it strikes and if it touches the player, the player dies. I also made the lighting move with the platforms so that it doesnt just float in space, but i had a silly typo, basically, i wanted to add or remove some amount from the x position of the lightning but instead of -= 7 i accidentally put -+ 7 and i took me like 10 minutes to figure out the issue. Another problem i had is that for some reason when i wanted to check in which stage the lightning is, i tried to to do if …… > 20 > 45, so another 20 minutes of debugging went there"}, {"post_id": 18352, "ts": "2026-06-29T13:59:02Z", "hours": 1.5219, "text": "I made a portal that spawns randomly and i also made the platforms shake (this is for a feature i will make later)"}, {"post_id": 16270, "ts": "2026-06-26T13:37:18Z", "hours": 8.8958, "text": "I started making the game but i forgot to document it, i only have the time tracked by hackatime, but here is what it looks like so far"}]...
|
Title: Fever dream by @dnlbilko | Stardance
Devlo Title: Fever dream by @dnlbilko | Stardance
Devlogs:
I started making the game but i forgot to document it, i only have the time tracked by hackatime, but here is what it looks like so far
I made a portal that spawns randomly and i also made the platforms shake (this is for a feature i will make later)
Devlog #3 I have made the shaking get stronger when i get closer to the portal and i also made lightning Breakdown of the lightning It spawns at a random position on the screen at a random time. It first gives a short warning by spawning on screen for a longer time. I will later change -the texture of the lightning warning. After the warning is gone it strikes and if it touches the player, the player dies. I also made the lighting move with the platforms so that it doesnt just float in space, but i had a silly typo, basically, i wanted to add or remove some amount from the x position of the lightning but instead of -= 7 i accidentally put -+ 7 and i took me like 10 minutes to figure out the issue. Another problem i had is that for some reason when i wanted to check in which stage the lightning is, i tried to to do if …… > 20 > 45, so another 20 minutes of debugging went there
Devlog #4 I have made some new features: -. I have made a generator that chooses random worlds and creates the map for the run. -. I made 2 new enemies: An entity that looks like the pleayer, but it hunts the player instead. It can follow the player and jump. When it touches the player, the player dies. I made it so that when the player or the enemy jump, the enemy cant change direction, so that the player can jump over it or go under it. An enemy called rush, that, for now, looks like a cube, that sometimes quickly moves across the screen. When its about to move, a warning is shown on the screen and the screen starts shaking. When rush starts moving, the waring disappears and the screen starts shaking more violently. Rush moves from one side of the screen to the other and then back and if it touches the player, the player dies.
Devlog #5 I made some new features: I have added a new world with a new entity called floater. It sometimes randomly spawns on the screen and when the player touches it, the screen flashes white for a second making the player unable to see. I added pausing. I made it so that when you die, you respawn in the same world instead of the entire game restarting I made a direction sign which shows which way the portal is. And I also made some small tweaks to the rest of the game
Devlog #6 - I have fixed some bugs with the floaters and made it so that multiple floaters spawn on screen when starting and also more floaters can keep on spawning during the game - Added an endless mode - Added an endscreen - Fixed some more bugs - Started drawing the textures for the game. So far i drew a portal and the direction sign
Devlog #7 I have continued working on the art for the game: - I improved the portal for the floater world - I made the background for the lightning world
Devlog #8 I have continued working on textures for the game. Here is a list of what i drew: - The rest of the backgrounds - 2 enemies - 3 platforms - lightning - 1 portal
Devlog #8 I continued working on the textures for the game and I also added some features to the game: - I made the player swim in world 4 instead of jumping on the platforms to match the pool theme of the level. - I added a mode selector to the main menu. It works by pressing “a” or “d” and the mode in the middle is the one that gets selected. Here are the textures and the menu:...
|
1792709365.6290188
|
1793314165.6290188
|
|
1761
|
Kinetic AHRS by @someonelse | Stardance
|
someonelse
|
1
|
71.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T16:08:31Z", "hours": 71.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is an algorithm to get orientation (roll, pitch and yaw) from raw sensor data. The underlying math was pretty difficult but I’m proud that I got it at least mostly working. Since this is very low level and hardware heavy it was hard to make a demo website for it. But if you have a spare mpu6050 or something give it a try!", "repo": "https://github.com/someonelse20/kinetic", "demo": "https://kinetic.someonelse.net"}]...
|
[{"post_id": 75197, "ts": "202 [{"post_id": 75197, "ts": "2026-09-29T13:44:03Z", "hours": 2.9275, "text": "Finishing up project info To complete the project I started with filling out a readme. I then got my website up and running at kinetic.someonelse.net. I still plan to work on this after I submit it but for now I just want to submit my work."}, {"post_id": 74132, "ts": "2026-09-26T18:47:23Z", "hours": 1.8086, "text": "Added docs I looked into ways of adding documentation for this project and found that doxygen was exactly what I wanted. I went through the quick start and got it running a bit. Then I used my ai to write inline comments for all the functions. I went through all of them and fixed any errors that it made. Then when generating the config with doxygen I ran into the problem where it only made docs for structs and not for functions. After tweaking everything it now works. I changed so much I don’t really know what individual tweak actually fixed it."}, {"post_id": 73110, "ts": "2026-09-24T12:38:09Z", "hours": 8.0983, "text": "Started demo website Since the due date for stardance it coming up quick I shifted to finishing the project and making a demo website for Kinetic. I tried having my ai just try to do it all from scratch but it fell flat on its face. It made a website where the buttons didn’t work and after looking at the source code it merely tried to rewrite the EKF code rather that run the actual library. So I then went to create a python wrapper with pybind11 myself. After reading the docs and fixing countless compiler errors I got it to compile correctly. I then asked my ai to create it from the c++ python wrapper file which it also failed at. I took the bad code it wrote and modified it myself to use the actual python wrapper so it could have a pure python reference. It was finally able to successfully make a website from that. There was a few errors which I then fixed to create a working website. I haven’t started hosting it yet though."}, {"post_id": 68320, "ts": "2026-09-14T22:44:36Z", "hours": 4.2158, "text": "Wrote calibration suite I went to make a calibration python script. I tried using ai pretty heavily for this. At first I directed it to fill out stub files first to get structure and go step by step. Since I’m using dumb self-hosted models it got confused when I asked it to do all of it at once. I got it to write the helper scripts pretty well but it fell flat on its face with the main executable. I copied it over and rewrote pretty much everything except the parsing logic. Even then some of the flags are unused. After writing the core logic myself the script works with a static reference I recorded a bit back. To use it point it at a directory with recording files and it will calibrate as much as it can with the data it gets. I’m using jsonl for the recording format and a ai generated script that reads serial data or just a file and converts it over to the jsonl format. I noticed that comparing with old sensor recordings some of the raw sensor values have changed so I will go through getting all the calibration data next."}, {"post_id": 63579, "ts": "2026-09-07T14:30:04Z", "hours": 0.6919, "text": "Tested against actual implementation I tested the real data I recorded with an actual working implementation of an extended kalman filter , the one I’m roughly following as a guide for my own. I used ai a lot which worked pretty well, the code is very ugly but its just for testing so it doesn’t really matter. After my ai had got it working I went in and tuned the parameters for my dataset and it actually performed kinda worse than my own code! This really encouraged me because it means that my core code works and the errors are with the data processing. Next I think I’ll go through the gauntlet of calibrating my IMU which shouldn’t be too hard because I already did for a very similar project a while ago."}, {"post_id": 62391, "ts": "2026-09-05T18:43:14Z", "hours": 7.2383, "text": "Improved performance with real data Overall most of what I did here was bang my head against a wall trying to make it work. I made a lot of small changes but as you can see with the video still a lot to go. The biggest change I made was originally I used a NED or north east down corresponding to x y z and I switched over for ENU or east north up. I though originally I could just choose at a whim which one to use but different sensors use different reference frames and converting it over is more trouble than its worth. Now the output is a good bit better and I think I can improve it a lot by calibrating the sensor, currently the gyro outputs 3 deg/s when stationary. Next I will also be comparing against a much better kalman filter implementation in python to see how much of it is processing the raw data or the core algorithm."}, {"post_id": 53438, "ts": "2026-08-23T23:55:30Z", "hours": 2.4714, "text": "Finally fixed all memory leaks After running on the rp2040 again after I thought I fixed the memory leaks it still panicked with an out of memory error. So I went to take another look. The main problem is that all the basic matrix math functions allocated a new matrix for their returns. I had an idea of restructuring them to instead input another matrix to store the result and only return an error code. In practice this didn’t do much since I needed to allocate memory most of the time anyway. This did help a little bit but was probably more trouble than it was worth. Along the way of doing this I noticed a few more memory leaks and fixed them as I went. When I was done I got compile error after compile error but I eventually worked through all of them. But once the compiler errors went away it gave an output that was just slightly off. I narrowed it down to being in the math file and I sent my ai of to find the bug. After a long wait the error was simply that I forgot to uncomment some code when I was debugging the compiler errors. After poking around at a few more memory leaks it now gives the same output without losing any memory at all!"}, {"post_id": 51367, "ts": "2026-08-21T00:19:35Z", "hours": 1.3608, "text": "Tested with recorded data Since the hardware I setup spat out gibberish when I first tried running kinetic on it I thought to record the raw imu output and test that on my computer instead. To do this I modified my rp2040 script to print the data to a serial output with a 10ms delay. I then asked my ai to make a script to record the data and save it to a csv file which it was able to do pretty well. On the kinetic side I made a new file that opens a csv file and pipes the data into kinetic which a little more help from ai. I ran it and to my surprise it actually outputted what I would expect. The picture below is the kinetic output from when the imu was sitting on my desk. I did run it again with a few different datasets I recorded and for some reason the angle never went above 1 deg which is a little weird and still wrong but definitely not the erratic output I first saw."}, {"post_id": 49303, "ts": "2026-08-18T01:22:37Z", "hours": 2.9925, "text": "Fixed memory leaks (mostly) This is a bit of a tangent from running on my rp2040 but it’s important. When I did run it on my board it threw an out of memory panic so I began to look for ways to fix that. I found valgrind which is a tool to check for memory leaks in c/c++ programs which was exactly what I need. Running it revealed that my test suite alone ate up ~600 kilobytes of extra memory which is very not good. I began to go through all the errors valgrind gave me and finding ways to free memory. I created a few functions to help with this, mainly for the core functions such as add/sub_matrix and mul_matrix, that run the base function but then free the first argument to make the code a little cleaner. In the end I was able to solve all but two memory leaks in the kinetic code. One I think is a false positive where the error is when the kalman filter state is updated. There were a few more in the simulation code. I tried to fix some but gave up since it doesn’t really mater if that leaks memory."}, {"post_id": 48551, "ts": "2026-08-17T00:09:31Z", "hours": 2.0058, "text": "Got running on real hardware After getting the IMU up and running I went and grabbed an oled display I had kicking around and plugged the whole thing into a breadboard. There is example oled driver code in the pico sdk so I took that and modified it to work for this. I then copied in my kinetic project and had to mess around a lot with cmake to get it to import right. I ended up making a new cmake file to help with this. But when it actually started running the output was nowhere near to correct and had an out of memory panic. I’ll probably figure out how to run it though a linter or something next."}, {"post_id": 48497, "ts": "2026-08-16T21:21:48Z", "hours": 2.6944, "text": "Setting up to test on real hardware So far the project looks good in my simulations, but now I want to move on to testing in real applications on real hardware. To this I grabbed some parts I had laying around including a custom devboard I made for a previous hackclub project. I am using the LSM9DS1 because it has a gyroscope, accelerometer, and a magnetometer in one chip and I happen to have one. I created a new git repo called imu-prototype to store all the files in. In there I set up a raspberry pi pico project and coded a very simple driver for the IMU."}, {"post_id": 46624, "ts": "2026-08-14T00:30:19Z", "hours": 1.1403, "text": "Fixed Initial State Bug As soon as I plugged the kalman filter to the new sin wave tests I noticed that the output was way off. I put off fixing it until first fixing the error function first. To find the bug I first tried asking my ai and it halucinated something that had nothing to do with the problem. I started to look for the bug myself and noticed that for the initial state the y axis had the wrong sign. When it should have had about 57 degrees it had -57 ish. So I went to the code that calculates that and couldn’t find an obvious bug. Since I couldn’t fix the existing code I replaced it with a different method to do the same thing. The old code calculated a rotation matrix with the accelerometer and magnetometer and the new code calculates the euler angles. I’m hoping that because it starts with a static state I won’t run into gimble lock but that’s a future me problem."}, {"post_id": 46567, "ts": "2026-08-13T21:46:57Z", "hours": 1.4194, "text": "Improved error calculation I noticed the error calculation didn’t seem to behave as expected so I did a little research and found an equation to find the angle between two quaternions and I’m using that angle as an error. I had to write two new functions, one to get the conjugate of a quaternion which was pretty simple and one to get the inverse of a quaternion which wasn’t to hard either."}, {"post_id": 45446, "ts": "2026-08-11T22:05:12Z", "hours": 1.2792, "text": "Added new tests Previously I only had one test that linearly integrates between two orientations. Now there are two more, one that’s x axis is a sin wave, and another where all axes are sin waves with an offset."}, {"post_id": 44960, "ts": "2026-08-11T02:09:38Z", "hours": 4.8144, "text": "Put a lot of work into improving tests and simulations I probably put too much effort into the simulations and tests and should work more on the actual code but having good tests is pretty nice. I added some simple alternate orientation algorithms, one that simply inegrates the gyro measurement and another that it a complementary filter. I revamped the simulation code to work with any number of algorithms as long as they have the same format. I then spent a while making a nice error sort of tui that changes based on how many algorithms are being used."}, {"post_id": 44746, "ts": "2026-08-10T18:27:34Z", "hours": 1.3661, "text": "Found bug in simulation, now results are a lot better After a little debugging I noticed a bug in the function in the simulation that calculates the rate of change between orientations used to simulate gyro measurements. After fixing that the kalman filter works almost perfectly from the graph!"}, {"post_id": 44690, "ts": "2026-08-10T16:55:09Z", "hours": 4.4683, "text": "ITS ALMOST WORKING! So much better that before. After I wrote the code to abstract the kalman filter logic, there was still the rest of the algorithm to reimplement. I copied over what I could and for some of the functions I changed the way they worked. The guide I am following went through most of the calculations with the general matrix math and then at the end gave the full calculations to get the final matrix with single numbers. Following the spirit of my rewrite I decided to instead use the matrix math where I could. After this I hoked it up to my graphing program and it almost sorta kinda works! I have no idea what changed that makes it work but I’m not complaining."}, {"post_id": 43294, "ts": "2026-08-08T14:01:56Z", "hours": 3.2003, "text": "Abstracted Kalman filter logic I decided that since the code I already wrote wasn’t working, why not just try again? In all seriousness there was a few reasons for the rewrite, that other parts of the program might need their own kalman filter and it would be easier to understand and maintain but mostly I was sick of the code not working and not knowing why. So I found the basic equations for the extended kalman filter and went to implement that. At first I was using a struct of function pointers to get the input for the ekf (extended kalman filter) but was able to rewrite it to input static matrices instead which was way less clunky."}, {"post_id": 39655, "ts": "2026-08-02T19:38:25Z", "hours": 3.1517, "text": "Still debugging but at least there’s a pretty graph I hooked the kinetic output up to the graph program which only showed that the kinetic part doesn’t work."}, {"post_id": 36767, "ts": "2026-07-29T01:08:26Z", "hours": 2.3639, "text": "Ditched ai code and wrote a better plotting script and a few bug fixes After my ai couldn’t create the graph program I wanted and with calling python from c being so hard I went looking for alternatives. I found gnuplot which isn’t a c library but can be called fairly easily from c using pipes which I still don’t understand completely. I did find some code though that already works so I was able to modify it to what I wanted."}, {"post_id": 35408, "ts": "2026-07-26T19:49:48Z", "hours": 3.9044, "text": "Used Hermes agent to write gnuplot program which still doesn’t work. I’m going back an editing all my devlogs to more than just one line from this devlog to the one titled “Improved error calculation”. I wanted to create a way to visualize what was going on. I initially tried to go with using matplotlib and calling the python from c. I thought this was something my ai could handle. It couldn’t. I don’t think it could make anything that could even compile. To the ai’s credit I was running it myself on my computer so it’s a lot dumber than most but it turned out to be harder than I thought."}, {"post_id": 29227, "ts": "2026-07-16T00:25:01Z", "hours": 0.5828, "text": "Found out my inverse function works, the matrix I’m putting in is invalid"}, {"post_id": 27306, "ts": "2026-07-12T19:25:48Z", "hours": 7.2469, "text": "Getting Kalman Implementation Working Project Overview I’ve done a lot of work here on spare time and I got really behind on making journals so sorry for that. Since this is my first devlog I’ll start with an overview of this project. This is a sensor fusion algorithm (and a full flight controller if I have time) to obtain orientation, speed, direction, and position from raw sensor data. What I Worked On The bulk of the work here was getting the extended kalman filter for the imu working (which it still doesn’t) . I had a lot of trouble getting the initialization function working and after banging my head against a wall most of the problems were in the underlying matrix math functions and the weirdness of the matrix library I’m using. I also had a little side tangent of getting the initial orientation through an easier method but I eventually got it to work. To test all of this I wrote some code to generate fake gyrometer, accelerometer, and magnetometer data with some random rotations. Somewhere here I also decided to convert all doubles to floats and all size_t to uint_8 because this will be running on very minimal hardware. Once I got the init function working I then went on to the main loop function where I realized I did not know matrix math. A lot of my math functions were completely wrong or not the right ones. After fixing this I also did some restructuring to make the code flow better and I got the first half of the kalman filter mostly working. I then stumbled onto my atrocious matrix inversion function where I was just dividing all the elements under 1 which is definitely not how that works and after some research I added a few helper functions and that’s about the point I stopped, with the full inversion function still not working of course."}]...
|
Title: Kinetic AHRS by @someonelse | Stardance
De Title: Kinetic AHRS by @someonelse | Stardance
Devlogs:
Getting Kalman Implementation Working Project Overview I’ve done a lot of work here on spare time and I got really behind on making journals so sorry for that. Since this is my first devlog I’ll start with an overview of this project. This is a sensor fusion algorithm (and a full flight controller if I have time) to obtain orientation, speed, direction, and position from raw sensor data. What I Worked On The bulk of the work here was getting the extended kalman filter for the imu working (which it still doesn’t) . I had a lot of trouble getting the initialization function working and after banging my head against a wall most of the problems were in the underlying matrix math functions and the weirdness of the matrix library I’m using. I also had a little side tangent of getting the initial orientation through an easier method but I eventually got it to work. To test all of this I wrote some code to generate fake gyrometer, accelerometer, and magnetometer data with some random rotations. Somewhere here I also decided to convert all doubles to floats and all size_t to uint_8 because this will be running on very minimal hardware. Once I got the init function working I then went on to the main loop function where I realized I did not know matrix math. A lot of my math functions were completely wrong or not the right ones. After fixing this I also did some restructuring to make the code flow better and I got the first half of the kalman filter mostly working. I then stumbled onto my atrocious matrix inversion function where I was just dividing all the elements under 1 which is definitely not how that works and after some research I added a few helper functions and that’s about the point I stopped, with the full inversion function still not working of course.
Found out my inverse function works, the matrix I’m putting in is invalid
Used Hermes agent to write gnuplot program which still doesn’t work. I’m going back an editing all my devlogs to more than just one line from this devlog to the one titled “Improved error calculation”. I wanted to create a way to visualize what was going on. I initially tried to go with using matplotlib and calling the python from c. I thought this was something my ai could handle. It couldn’t. I don’t think it could make anything that could even compile. To the ai’s credit I was running it myself on my computer so it’s a lot dumber than most but it turned out to be harder than I thought.
Ditched ai code and wrote a better plotting script and a few bug fixes After my ai couldn’t create the graph program I wanted and with calling python from c being so hard I went looking for alternatives. I found gnuplot which isn’t a c library but can be called fairly easily from c using pipes which I still don’t understand completely. I did find some code though that already works so I was able to modify it to what I wanted.
Still debugging but at least there’s a pretty graph I hooked the kinetic output up to the graph program which only showed that the kinetic part doesn’t work.
Abstracted Kalman filter logic I decided that since the code I already wrote wasn’t working, why not just try again? In all seriousness there was a few reasons for the rewrite, that other parts of the program might need their own kalman filter and it would be easier to understand and maintain but mostly I was sick of the code not working and not knowing why. So I found the basic equations for the extended kalman filter and went to implement that. At first I was using a struct of function pointers to get the input for the ekf (extended kalman filter) but was able to rewrite it to input static matrices instead which was way less clunky.
ITS ALMOST WORKING! So much better that before. After I wrote the code to abstract the kalman filter logic, there was still the rest of the algorithm to reimplement. I copied over what I could and for some of the functions I changed the way they worked. The guide I am following went through most of the calculations with the general matrix math and then at the end gave the full calculations to get the final matrix with single numbers. Following the spirit of my rewrite I decided to instead use the matrix math where I could. After this I hoked it up to my graphing program and it almost sorta kinda works! I have no idea what changed that makes it work but I’m not complaining.
Found bug in simulation, now results are a lot better After a little debugging I noticed a bug in the function in the simulation that calculates the rate of change between orientations used to simulate gyro measurements. After fixing that the kalman filter works almost perfectly from the graph!
Put a lot of work into improving tests and simulations I probably put too much effort into the simulations and tests and should work more on the actual code but having good tests is pretty nice. I added some simple alternate orientation algorithms, one that simply inegrates the gyro measurement and another that it a complementary filter. I revamped the simulation code to work with any number of algorithms as long as they have the same format. I then spent a while making a nice error sort of tui that changes based on how many algorithms are being used.
Added new tests Previously I only had one test that linearly integrates between two orientations. Now there are two more, one that’s x axis is a sin wave, and another where all axes are sin waves with an offset.
Improved error calculation I noticed the error calculation didn’t seem to behave as expected so I did a little research and found an equation to find the angle between two quaternions and I’m using that angle as an error. I had to write two new functions, one to get the conjugate of a quaternion which was pretty simple and one to get the inverse of a quaternion which wasn’t to hard either.
Fixed Initial State Bug As soon as I plugged the kalman filter to the new sin wave tests I noticed that the output was way off. I put off fixing it until first fixing the error function first. To find the bug I first tried asking my ai and it halucinated something that had nothing to do with the problem. I started to look for the bug myself and noticed that for the initial state the y axis had the wrong sign. When it should have had about 57 degrees it had -57 ish. So I went to the code that calculates that and couldn’t find an obvious bug. Since I couldn’t fix the existing code I replaced it with a different method to do the same thing. The old code calculated a rotation matrix with the accelerometer and magnetometer and the new code calculates the euler angles. I’m hoping that because it starts with a static state I won’t run into gimble lock but that’s a future me problem.
Setting up to test on real hardware So far the project looks good in my simulations, but now I want to move on to testing in real applications on real hardware. To this I grabbed some parts I had laying around including a custom devboard I made for a previous hackclub project. I am using the LSM9DS1 because it has a gyroscope, accelerometer, and a magnetometer in one chip and I happen to have one. I created a new git repo called imu-prototype to store all the files in. In there I set up a raspberry pi pico project and coded a very simple driver for the IMU.
Got running on real hardware After getting the IMU up and running I went and grabbed an oled display I had kicking around and plugged the whole thing into a breadboard. There is example oled driver code in the pico sdk so I took that and modified it to work for this. I then copied in my kinetic project and had to mess around a lot with cmake to get it to import right. I ended up making a new cmake file to help with this. But when it actually started running the output was nowhere near to correct and had an out of memory panic. I’ll probably figure out how to run it though a linter or something next.
Fixed memory leaks (mostly) This is a bit of a tangent from running on my rp2040 but it’s important. When I did run it on my board it threw an out of memory panic so I began to look for ways to fix that. I found valgrind which is a tool to check for memory leaks in c/c++ programs which was exactly what I need. Running it revealed that my test suite alone ate up ~600 kilobytes of extra memory which is very not good. I began to go through all the errors valgrind gave me and finding ways to free memory. I created a few functions to help with this, mainly for the core functions such as add/sub_matrix and mul_matrix, that run the base function but then free the first argument to make the code a little cleaner. In the end I was able to solve all but two memory leaks in the kinetic code. One I think is a false positive where the error is when the kalman filter state is updated. There were a few more in the simulation code. I tried to fix some but gave up since it doesn’t really mater if that leaks memory.
Tested with recorded data Since the hardware I setup spat out gibberish when I first tried running kinetic on it I thought to record the raw imu output and test that on my computer instead. To do this I modified my rp2040 script to print the data to a serial output with a 10ms delay. I then asked my ai to make a script to record the data and save it to a csv file which it was able to do pretty well. On the kinetic side I made a new file that opens a csv file and pipes the data into kinetic which a little more help from ai. I ran it and to my surprise it actually outputted what I would expect. The picture below is the kinetic output from when the imu was sitting on my desk. I did run it again with a few different datasets I recorded and for some reason the angle never went above 1 deg which is a little weird and still wrong but definitely not the erratic output I first saw.
Finally fixed all memory leaks After running on the rp2040 again after I thought I fixed the memory leaks it still panicked with an out of memory error. So I went to take another look. The main problem is that all the basic matrix math functions allocated a new matrix for their returns. I had an idea of restructuring them to instead input another matrix to store the result and only return an error code. In practice this didn’t do much since I needed to allocate memory most of the time anyway. This did help a little bit but was probably more trouble than it was worth. Along the way of doing this I noticed a few more memory leaks and fixed them as I went. When I was done I got compile error after compile error but I eventually worked through all of them. But once the compiler errors went away it gave an output that was just slightly off. I narrowed it down to being in the math file and I sent my ai of to find the bug. After a long wait the error was simply that I forgot to uncomment some code when I was debugging the compiler errors. After poking around at a few more memory leaks it now gives the same output without losing any memory at all!
Improved performance with real data Overall most of what I did here was bang my head against a wall trying to make it work. I made a lot of small changes but as you can see with the video still a lot to go. The biggest change I made was originally I used a NED or north east down corresponding to x y z and I switched over for ENU or east north up. I though originally I could just choose at a whim which one to use but different sensors use different reference frames and converting it over is more trouble than its worth. Now the output is a good bit better and I think I can improve it a lot by calibrating the sensor, currently the gyro outputs 3 deg/s when stationary. Next I will also be comparing against a much better kalman filter implementation in python to see how much of it is processing the raw data or the core algorithm.
Tested against actual implementation I tested the real data I recorded with an actual working implementation of an extended kalman filter , the one I’m roughly following as a guide for my own. I used ai a lot which worked pretty well, the code is very ugly but its just for testing so it doesn’t really matter. After my ai had got it working I went in and tuned the parameters for my dataset and it actually performed kinda worse than my own code! This really encouraged me because it means that my core code works and the errors are with the data processing. Next I think I’ll go through the gauntlet of calibrating my IMU which shouldn’t be too hard because I already did for a very similar project a while ago.
Wrote calibration suite I went to make a calibration python script. I tried using ai pretty heavily for this. At first I directed it to fill out stub files first to get structure and go step by step. Since I’m using dumb self-hosted models it got confused when I asked it to do all of it at once. I got it to write the helper scripts pretty well but it fell flat on its face with the main executable. I copied it over and rewrote pretty much everything except the parsing logic. Even then some of the flags are unused. After writing the core logic myself the script works with a static reference I recorded a bit back. To use it point it at a directory with recording files and it will calibrate as much as it can with the data it gets. I’m using jsonl for the recording format and a ai generated script that reads serial data or just a file and converts it over to the jsonl format. I noticed that comparing with old sensor recordings some of the raw sensor values have changed so I will go through getting all the calibration data next.
Started demo website Since the due date for stardance it coming up quick I shifted to finishing the project and making a demo website for Kinetic. I tried having my ai just try to do it all from scratch but it fell flat on its face. It made a website where the buttons didn’t work and after looking at the source code it merely tried to rewrite the EKF code rather that run the actual library. So I then went to create a python wrapper with pybind11 myself. After reading the docs and fixing countless compiler errors I got it to compile correctly. I then asked my ai to create it from the c++ python wrapper file which it also failed at. I took the bad code it wrote and modified it myself to use the actual python wrapper so it could have a pure python reference. It was finally able to successfully make a website from that. There was a few errors which I then fixed to create a working website. I haven’t started hosting it yet though.
Added docs I looked into ways of adding documentation for this project and found that doxygen was exactly what I wanted. I went through the quick start and got it running a bit. Then I used my ai to write inline comments for all the functions. I went through all of them and fixed any errors that it made. Then when generating the config with doxygen I ran into the problem where it only made docs for structs and not for functions. After tweaking everything it now works. I changed so much I don’t really know what individual tweak actually fixed it.
Finishing up project info To complete the project I started with filling out a readme. I then got my website up and running at kinetic.someonelse.net. I still plan to work on this after I submit it but for now I just want to submit my work.
Ships:
This is an algorithm to get orientation (roll, pitch and yaw) from raw sensor data. The underlying math was pretty difficult but I’m proud that I got it at least mostly working. Since this is very low level and hardware heavy it was hard to make a demo website for it. But if you have a spare mpu6050 or something give it a try!...
|
1793001166.062667
|
1793087566.062667
|
|
20483
|
Pulse by @mithbhasker | Stardance
|
mithbhasker
|
2
|
71.0
|
378
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T02:27:09Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website to help people like my dad who is a manager manage his team without multiple tools.", "repo": "https://github.com/Mithilessh2010/Pulse", "demo": "https://pulse-beta-nine.vercel.app/"}, {"ship_num": 2, "ts": "2026-08-01T05:26:05Z", "hours": 55.0, "multiplier": 9.75, "payout": 378, "blessing": "neutral", "text": "I did it for part of my startup this is the basic stuff I used a very basic AI looking UI but that is because I wanted base product out first but most core concepts I did.", "repo": "https://github.com/Mithilessh2010/Pulse", "demo": "https://pulse-beta-nine.vercel.app/"}]...
|
[{"post_id": 73434, "ts": "202 [{"post_id": 73434, "ts": "2026-09-25T02:36:18Z", "hours": 15.8133, "text": "I added some animations and to the bottom right corner of the website there is an AI chatbot and since I gave it a proper API key it can do much more making a managers life much easier"}, {"post_id": 36029, "ts": "2026-07-27T21:00:55Z", "hours": 17.9003, "text": "I couldn’t get all the API keys for the integrations so for now I am going to ship this and add things for a later ship"}, {"post_id": 28738, "ts": "2026-07-15T05:36:35Z", "hours": 10.7378, "text": "I added the rest of the buttons and made sure a quick prototype is in work it looks good to me as of now more updates will happen"}, {"post_id": 26057, "ts": "2026-07-10T17:22:29Z", "hours": 17.2972, "text": "I finished cleaning up the UI for the dashboard itself as most buttons and containers were unsatisfactory, I am going to work on getting the API keys next"}, {"post_id": 10952, "ts": "2026-06-17T23:25:23Z", "hours": 1.8375, "text": "Reworked the app shell and related screens to match the latest Pulse UI pass, added the calls surface, refreshed shared styling and auth presentation, and updated mock data, state, and assets to support the new layout. Included the current deliverables and dependency updates tied to the build changes."}, {"post_id": 10717, "ts": "2026-06-17T16:07:40Z", "hours": 1.2131, "text": "The Pulse demo data was moved to a centralized persisted store so changes are saved across navigation, page refreshes, and browser restarts. A reset option was also added in Settings to restore the original sample workspace."}, {"post_id": 10403, "ts": "2026-06-17T03:05:03Z", "hours": 1.0364, "text": "The Ask Pulse AI assistant was improved with better context, smarter fallback responses, and a request timeout to make it more reliable. The system prompt and API were updated for better flexibility, UI components were enhanced with improved interactivity, data fields were made consistent, and the deliverable was updated with the latest changes."}, {"post_id": 10364, "ts": "2026-06-17T01:27:19Z", "hours": 4.725, "text": "I just finished the Home Page, it has cool animations and fonts to really grab the person’s attention and get them more interested in using PULSE and paying to use it. As you scroll many animations will happen and I am now coding the buttons to look at more info."}]...
|
Title: Pulse by @mithbhasker | Stardance
Devlogs: Title: Pulse by @mithbhasker | Stardance
Devlogs:
I just finished the Home Page, it has cool animations and fonts to really grab the person’s attention and get them more interested in using PULSE and paying to use it. As you scroll many animations will happen and I am now coding the buttons to look at more info.
The Ask Pulse AI assistant was improved with better context, smarter fallback responses, and a request timeout to make it more reliable. The system prompt and API were updated for better flexibility, UI components were enhanced with improved interactivity, data fields were made consistent, and the deliverable was updated with the latest changes.
The Pulse demo data was moved to a centralized persisted store so changes are saved across navigation, page refreshes, and browser restarts. A reset option was also added in Settings to restore the original sample workspace.
Reworked the app shell and related screens to match the latest Pulse UI pass, added the calls surface, refreshed shared styling and auth presentation, and updated mock data, state, and assets to support the new layout. Included the current deliverables and dependency updates tied to the build changes.
I finished cleaning up the UI for the dashboard itself as most buttons and containers were unsatisfactory, I am going to work on getting the API keys next
I added the rest of the buttons and made sure a quick prototype is in work it looks good to me as of now more updates will happen
I couldn’t get all the API keys for the integrations so for now I am going to ship this and add things for a later ship
I added some animations and to the bottom right corner of the website there is an AI chatbot and since I gave it a proper API key it can do much more making a managers life much easier
Ships:
I did it for part of my startup this is the basic stuff I used a very basic AI looking UI but that is because I wanted base product out first but most core concepts I did.
I made a website to help people like my dad who is a manager manage his team without multiple tools....
|
1792994149.9695683
|
1793080549.9695683
|
|
33926
|
AEVA by @GamerBolt03 | Stardance
|
GamerBolt03
|
0
|
71.0
|
0
|
[]
|
[{"post_id": 32223, "ts": "202 [{"post_id": 32223, "ts": "2026-07-21T08:07:52Z", "hours": 12.0, "text": "AEVA Devlog #7 Same progress as last time, the model is currently in training. I had some trouble back home and wasn’t able to train a model since my computer kept shutting down however the training will be done soon. Didn’t have an image to share lol."}, {"post_id": 31744, "ts": "2026-07-20T11:50:42Z", "hours": 16.0, "text": "AEVA Devlog #6 The architecture is now very strong and is more than fast enough to reach the goal in 3 hours however I’m having issues creating the perfect dataset since the model becomes to focused on the roleplay datasets. I’m going to try using some online datasets as is for this to see if that helps."}, {"post_id": 31040, "ts": "2026-07-19T03:37:14Z", "hours": 4.0, "text": "AEVA Devlog #5 Running into the same issue as last time but this time I think I have a better fix and will be distilling some model. in the meantime, I created a simple app icon for when I release it and will be working on the UI"}, {"post_id": 30691, "ts": "2026-07-18T14:00:55Z", "hours": 8.0, "text": "AEVA Devlog #4 Training failed again, this is getting tiring but there’s no other real way to test the architecture. This time the training failed due to the dataset and how it was distributed. I was actually only giving about 0.13 tokens per parameter which was leading to it overfitting too. now I’m in the process of making the architecture more memory efficient and faster at processing data, as well as increase dataset size. I also finally started working on creating a github repo as well as an explanation on how it works Updating architecture to handle more data Increasing dataset size Creating github rep Creating explanation document"}, {"post_id": 30200, "ts": "2026-07-17T16:19:58Z", "hours": 3.0, "text": "AEVA Devlog #3 Well bad news, the AI infact did find a loophole, although after a lot of fixing as well as creating a better dataset, I’ve started training once again which will complete in another 3 hours, until then I’ll be working on another one of my projects. This is likely going to happen many times since I did decide to start doing such a hard project, I just wish I can finish the project in time. Also, for now I’m going to use this CLI Logo. Revising architecture Creating new dataset Started training new model"}, {"post_id": 29996, "ts": "2026-07-17T07:01:28Z", "hours": 15.0, "text": "AEVA Devlog #2 After another 16 hours of working on the project, The AI has finally reached a CE of 1.0!!!!! actually it reached a CE of 0.9 to be exact in only 3 hours of training which is just spectacular. Of course, the model still has to be thoroughly tested to see if it’s actually conversational since the model could have found a loophole to get a lower CE than it deserves. After some further testing ill post again within the next 7 hours. Done training model Started testing on the model since goal has apparently been reached Creating GUI"}, {"post_id": 28589, "ts": "2026-07-14T22:40:21Z", "hours": 13.0, "text": "AEVA Devlog #1 This is Project AEVA, an AI I’ve been trying to create completely from scratch on consumer hardware I own to compete with the current SOTA architectures. I originally started creating this AI because i thought that LLM’s although usefull and highly advance come with many issues esspecially on low-end hardware, halucinations, memory limit and the frozen weights after training. instead i want my AI to actually live with a human level life-span and continuously learn during that tmie slowly increasing its parameter size. After months of designing and rewriting, AEVA (The name of the model I’m making) has officially reached its first training run. Instead of using Transformers, I’m building a completely new cognitive AI architecture designed to compete with frontier models while running on consumer hardware. The current architecture scales in O(n), is designed for massive context and persistent memory, and aims to support self-improvement and offline “sleep” learning in the future. Right now, the first model is being trained for 4 hours into training on my RTX 5090, and if everything goes well, it should become conversational soon. This is just the beginning for AEVA. Completed designing and programing the architecture Started creating a better dataset for the model Started Modl Training"}]...
|
Title: AEVA by @GamerBolt03 | Stardance
Devlogs:
Title: AEVA by @GamerBolt03 | Stardance
Devlogs:
AEVA Devlog #1 This is Project AEVA, an AI I’ve been trying to create completely from scratch on consumer hardware I own to compete with the current SOTA architectures. I originally started creating this AI because i thought that LLM’s although usefull and highly advance come with many issues esspecially on low-end hardware, halucinations, memory limit and the frozen weights after training. instead i want my AI to actually live with a human level life-span and continuously learn during that tmie slowly increasing its parameter size. After months of designing and rewriting, AEVA (The name of the model I’m making) has officially reached its first training run. Instead of using Transformers, I’m building a completely new cognitive AI architecture designed to compete with frontier models while running on consumer hardware. The current architecture scales in O(n), is designed for massive context and persistent memory, and aims to support self-improvement and offline “sleep” learning in the future. Right now, the first model is being trained for 4 hours into training on my RTX 5090, and if everything goes well, it should become conversational soon. This is just the beginning for AEVA. Completed designing and programing the architecture Started creating a better dataset for the model Started Modl Training
AEVA Devlog #2 After another 16 hours of working on the project, The AI has finally reached a CE of 1.0!!!!! actually it reached a CE of 0.9 to be exact in only 3 hours of training which is just spectacular. Of course, the model still has to be thoroughly tested to see if it’s actually conversational since the model could have found a loophole to get a lower CE than it deserves. After some further testing ill post again within the next 7 hours. Done training model Started testing on the model since goal has apparently been reached Creating GUI
AEVA Devlog #3 Well bad news, the AI infact did find a loophole, although after a lot of fixing as well as creating a better dataset, I’ve started training once again which will complete in another 3 hours, until then I’ll be working on another one of my projects. This is likely going to happen many times since I did decide to start doing such a hard project, I just wish I can finish the project in time. Also, for now I’m going to use this CLI Logo. Revising architecture Creating new dataset Started training new model
AEVA Devlog #4 Training failed again, this is getting tiring but there’s no other real way to test the architecture. This time the training failed due to the dataset and how it was distributed. I was actually only giving about 0.13 tokens per parameter which was leading to it overfitting too. now I’m in the process of making the architecture more memory efficient and faster at processing data, as well as increase dataset size. I also finally started working on creating a github repo as well as an explanation on how it works Updating architecture to handle more data Increasing dataset size Creating github rep Creating explanation document
AEVA Devlog #5 Running into the same issue as last time but this time I think I have a better fix and will be distilling some model. in the meantime, I created a simple app icon for when I release it and will be working on the UI
AEVA Devlog #6 The architecture is now very strong and is more than fast enough to reach the goal in 3 hours however I’m having issues creating the perfect dataset since the model becomes to focused on the roleplay datasets. I’m going to try using some online datasets as is for this to see if that helps.
AEVA Devlog #7 Same progress as last time, the model is currently in training. I had some trouble back home and wasn’t able to train a model since my computer kept shutting down however the training will be done soon. Didn’t have an image to share lol....
|
1792946887.5701199
|
1793810887.5701199
|
|
53836
|
FOU by @SHREX | Stardance
|
SHREX
|
3
|
71.0
|
1016
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T20:41:24Z", "hours": 50.0, "multiplier": 13.35, "payout": 664, "blessing": "neutral", "text": "FOU is my first serious programming project, and honestly, I never thought it would come this far. It started as a small Python CLI because I wanted an easy way to track crypto prices without opening an exchange every time. Slowly, I added live prices, coin validation, saving, and my own backend. And now, with v2.5, I’ve finally turned it into a proper desktop app! FOU now has three themes — FOU DEFAULT, THE FOOL, and VOID , each with its own companion and six different reactions. The hardest part was definitely building the GUI, especially getting the characters, decorative frames, and layouts to work properly when resizing the window. I spent way too much time fixing tiny details 😭 I also tried to work on almost every piece of feedback from my previous ships. A lot of people said my README and devlogs weren’t clear enough, so this time I’ve added better explanations, installation instructions, a full demo video, and more details about how I built everything. 💜 Please read this before testing! ⏳ First-time loading: Adding your first coin or loading saved prices might take around 60 seconds because my free hosted backend sometimes goes to sleep. Please give it a little time! 🛡️ Windows: I’ve tested the released app on two Windows laptops, and it worked fine. However, the executable is still unsigned, so Windows might show a security warning. I’ve already applied for code signing. Please don’t disable your security settings just to test it. 🐧 Linux and macOS: Both builds completed successfully, but I couldn’t test them on real Linux or Mac computers. So please treat them as experimental. If something doesn’t work, I’d really appreciate it if you could watch the demo video before rating, rather than judging FOU only by an untested build. 🐛 Bugs: Some recent tests found a few rare issues with saving and unexpected API responses. I’ve started fixing them, but those fixes aren’t in this release yet. If you find anything, please let me know! 🚀 How to try it Download the ZIP for your OS from the GitHub Release. On Windows, extract everything and open FOU.exe . Try adding BTC, ETH, or SOL, refreshing prices, saving your portfolio, and switching themes. FOU isn’t a wallet or trading app. It’s just a watchlist for coins you’re interested in. Release: https://github.com/FOU-SHREX/FOU/releases/tag/v2.5.0 README + Demo Video: https://github.com/FOU-SHREX/FOU I’m still learning Python, and this project taught me so much about coding, APIs, GUI development, and fixing things that randomly stop working. I also used ChatGPT, and AI image tools to help with coding, debugging, and artwork throughout development. I’m really happy with how far FOU has come, even though it’s still not perfect. Thanks to everyone who gave feedback on my earlier versions and helped me improve it. I hope you enjoy trying FOU! 💜 Please give feedback and good rating <(_ _)>", "repo": "https://github.com/FOU-SHREX/FOU", "demo": "https://github.com/FOU-SHREX/FOU/releases/tag/v2.5.0"}, {"ship_num": 2, "ts": "2026-09-22T14:25:57Z", "hours": 20.0, "multiplier": 17.33, "payout": 346, "blessing": "neutral", "text": "FOU is my first serious programming project and I made most of it while I was still learning Python. The idea actually came from a small problem I had myself. There were a lot of crypto coins I wanted to keep an eye on, but I didn’t want to open an exchange or search each coin again and again just to check the price. So I thought, why not make a small program where I can add the coins I care about once and then just open it whenever I want to check them. That’s how FOU started. V1.1 was very simple. It was just a CLI watchlist where you could add, remove, save and load coin symbols. While making V2 I learned a lot more and slowly upgraded it with live prices, valid coin checking, adding multiple coins, better save handling, error handling and builds for Windows, Linux and macOS. One of the hardest parts for me was learning how APIs and backend stuff work. I didn’t want to put the CoinGecko API key inside the app, so I built my own FastAPI backend and deployed it. I also learned caching, rate limiting, GitHub Actions, PyInstaller and a lot of testing while doing this. I also worked on the feedback from my V1.1 ship. A lot of people said the README and devlogs were not explaining the project enough, and some people didn’t even understand what a crypto watchlist was or thought it was related to wallets. So for V2 I added a beginner guide, clearer explanation of what FOU does, why I made it, better installation steps and I’m also adding better screenshots and more detailed devlogs. FOU does not connect to wallets, trade crypto or use real money. It is just a simple personal watchlist to track coins you are interested in. To test it, download the build for your OS from the V2 release, open FOU, add coins like BTC, ETH or SOL, type DONE, then open View Portfolio to see the live prices. Save it, close the app, reopen it and your watchlist should still be there. I’m still a beginner and this project is mainly how I’m learning by actually building something, so feedback really helps me improve it. If you try it and like what I made, I’d really appreciate a good rating and an honest review. And if something feels confusing or broken, please tell me that too so I can work on it in the next update.", "repo": "https://github.com/FOU-SHREX/FOU", "demo": "https://github.com/FOU-SHREX/FOU/releases/tag/v2.5.0"}, {"ship_num": 3, "ts": "2026-09-02T16:11:07Z", "hours": 1.0, "multiplier": 4.25, "payout": 6, "blessing": "neutral", "text": "I made FOU V1.1, a Python command-line cryptocurrency watchlist where users can add, view, remove, save, and reload coin symbols. The most challenging part was making the save system reliable both when running the Python file and when running the packaged Windows .exe . I also learned how to handle missing or corrupted save files and how to package the project with PyInstaller. I’m most proud that I took a simple Python project and turned it into a working standalone Windows release that other people can actually download and run. I also improved the code structure, added better error handling, and learned more about Git, GitHub releases, and project shipping. People should know that FOU V1.1 is still a watchlist-style project, not a full live crypto tracker yet. V2 is planned to add live prices and coin validation.", "repo": "https://github.com/FOU-SHREX/FOU", "demo": "https://github.com/FOU-SHREX/FOU/releases/tag/v2.5.0"}]...
|
[{"post_id": 79151, "ts": "202 [{"post_id": 79151, "ts": "2026-10-12T20:29:06Z", "hours": 4.8217, "text": "DEVLOG- 35: About to ship this here is important thing please read this if you encounter with and security issue please click run anyway as I applied for the authorized ownership but that will take weeks to fulfill so please co-operate and Linux and windows user if you want you can skip as i don’t have any system to test them, Thank you all for this journey will make more and be better if you rating me please rate me good. <(_ _)><(_ _)>"}, {"post_id": 78470, "ts": "2026-10-10T21:32:57Z", "hours": 2.5167, "text": "DEVLOG- 34: Here is the look of second theme the name is THE FOOL and the companion name is Mr. FOOL , the border around the portfolio takes so much time and effort of mine like in the end i need to use codex for calculation part as i learn MATH but the calculation is quiet complex so uses that, Appart from this I think i had done most of the work on feedback : 1st Feedback : Make a UI -> Now my project is shifted from cli to gui and have a proper UI 2nd Feedback : Timestap -> Added that in portfolio frame you can see the time its feacting the prices 3rd Feedback : Help -> Addded a help button at the bottom and that will open a youtube video that explain everything from how to use and what is for what! 4th Feedback : Nothing - > so everything is done so far ╰( °▽° )╯╰( °▽° )╯ BTW, working on the third theme too maybe ship tomorrow so don’t forget to try and Rate good my project ."}, {"post_id": 78181, "ts": "2026-10-09T21:53:47Z", "hours": 3.5731, "text": "DEVLOG- 33: Worked on so many things today, like adding the overall background in the second theme and living the frames that hiding that giving each frame its own border frame as per theme, created cards icon for change theme option using DRAW and also create local saving icon to use. i really think i cover most of the feedback as majorities of feedback were about UI which is done mostly and one feedback was about help option so I created a help button at the right bottom which will have a go through video of FOU explain everything if u needed help! will reveled the final look of second theme so stay tuned. - - () - -"}, {"post_id": 77929, "ts": "2026-10-08T20:20:52Z", "hours": 2.1711, "text": "DEVLOG- 32: After struggling and finding the result of the problem i learned math module and ceil and after learning this its so complicated for me that i need to take help from chat_gpt for the calculation part and then i got the desire result but still raise a another issue like the border of companion frame is not retracking its placement so I think i need to fix that next stay tuned ! ಥ_ಥ ┑( ̄Д  ̄)┍"}, {"post_id": 77643, "ts": "2026-10-07T18:38:28Z", "hours": 2.0833, "text": "DEVLOG - 31: Working on a same problem from yesterday but it didn’t fixed yet learned the new concepts and apply them but nothing happened will keep trying until crack that so stay tuned, if you can help please comment me the problem is i want a png border file to get perfectly fix around my portfolio and that file is not fitting perfectly so if anybody know i am using python only and making UI using coustomTkinter."}, {"post_id": 77375, "ts": "2026-10-06T18:17:46Z", "hours": 3.3803, "text": "DEVLOG - 30: Currently working on the second theme and just fixed done the companion frame and part like the emotion part and struggling in the frame of portfolio so i need to learn and understand some more concepts to fix that stay tuned! ( ̄┰ ̄*) ಥ_ಥ"}, {"post_id": 77134, "ts": "2026-10-05T19:03:05Z", "hours": 2.1525, "text": "DEVLOG- 29: Today I finally completed the FOU default theme UI and this is the locked result done some refinement today as remove button draw the prefect remove button icon and the companion sizing and placement the header of companion given a companion a 3D look ) and make companion fame fits to it as the upcoming theme will use that logic stay tuned may ship this this sunday or monday!)"}, {"post_id": 76822, "ts": "2026-10-04T18:27:03Z", "hours": 4.2847, "text": "DEVLOG- 28: So this is my default theme look today i fixed the style like the text fonts and placement and size worked on the activity section like the tick part take a lot just learned the image draw in python and use that to make the search icon clock and tick and loading so it take a while what do you think about this theme there will be more i give you a hint the second is from anime which is so mysterious! (⊙ (⊙ ⊙)_⊙) ( ̄┰ ̄ )( ̄┰ ̄ )"}, {"post_id": 76487, "ts": "2026-10-03T18:48:30Z", "hours": 4.4256, "text": "DEVLOG- 27: Today I fixed the major issue i am facing the image sizing part like when minimize and maximize done some calculation learn new concepts and do some compromise and apart from that added the logo section so the displayed coin will display there logo too and added the help button later when this finish will create a youtube video to guide it threw. The UI is taking the target set shape need some refinement and clarity the the default theme is done yes there will be more then one theme. ^0^ ^0^╰( °▽° )╯╰( °▽° )╯"}, {"post_id": 76239, "ts": "2026-10-02T20:22:19Z", "hours": 3.3644, "text": "DEVLOG- 26: Today I am working on the companion part of my GUI and from the morning working on the correct size fitting of the .png still didn’t get that like when minimize and maximize the size is getting larger and cropped or smaller then the frame and never fits if anybody know how to fix that issue do comment i am using CustomTkinter for this GUI. <(_ _)><(_ _)>o(TヘTo)o(TヘTo)"}, {"post_id": 75986, "ts": "2026-10-01T20:57:10Z", "hours": 2.2486, "text": "DEVLOG- 25: Today I worked on the enhancing the UI and making the default theme till now done the background part and color and border part screen size issue clear and ore UI fixed now working on the complete look and will update when the FOU Theme done."}, {"post_id": 75670, "ts": "2026-09-30T18:12:55Z", "hours": 3.1133, "text": "DEVLOG- 24: Today worked on the left side panels and activity tracer part and done both the part currently generating images as introducing the companion in the GUI with is image based for now but For V3 will change that too motion one. (❁´◡ ❁)(❁´◡ ❁)"}, {"post_id": 75298, "ts": "2026-09-29T17:46:30Z", "hours": 1.5606, "text": "DEVLOG- 23: ADDED some color and themes too, this V2.1 will have 6 theme to choose and currently working on the 2 of them then others right now leaning color change and multiple theme changer in CustomTkinter and apply them here. So far Done the border and background and button stuff will work on coin selection now see you soon."}, {"post_id": 74949, "ts": "2026-09-28T17:31:46Z", "hours": 1.7661, "text": "DEVLOG-22: Today i worked on adding functions to the buttons and handling the possible errors that could happened till now done the view_portfolio , remove_coin, add_coin part with there respective button now work on selection of coin and coin preview as a 3D image if possible. (〃 ̄︶ ̄)人( ̄︶ ̄〃)"}, {"post_id": 74476, "ts": "2026-09-27T13:48:46Z", "hours": 3.055, "text": "DEVLOG- 21: Currently working on the GUI structure and just done timeout error handling with this as a base structure the whole UI will be amazing and will take a while I am new to coustomTkinter so I need to learn first."}, {"post_id": 74143, "ts": "2026-09-26T19:20:12Z", "hours": 1.9086, "text": "DEVLOG-20: Done the refactor with the main.py and build some core functions so the same function will be used buy both CLI and GUI and now working on GUI skeleton stucture will update when finish do comment and like please."}, {"post_id": 73939, "ts": "2026-09-26T11:28:10Z", "hours": 1.1467, "text": "DEVLOG-19: Done with the test_GUI learned the major concepts and basics too no moving forward to work on actual FOU. (~ ̄▽ ̄)~(~ ̄▽ ̄)~"}, {"post_id": 73475, "ts": "2026-09-25T06:14:15Z", "hours": 1.5586, "text": "DEVLOG-18: Guys currently working on GUI and testing it while learning so this will take time i think. Do share some UI layouts ideas to put that."}, {"post_id": 73218, "ts": "2026-09-24T16:50:55Z", "hours": 0.5897, "text": "DEVLOG-17: Thanks everyone for reviews working on the reviews and fixed some issue too, currenty working on GUI as many suggest a good UI ,testing the GUI and learning it too will ship the V2.1 with GUI and fixed things as per feedback. THANKS EVERYONE! DO SUGGEST ME SOME GUI THEMES FOR UI."}, {"post_id": 71370, "ts": "2026-09-20T18:26:30Z", "hours": 1.005, "text": "DEVLOG-16: Guys, Finally the V2 is done and live check my github and try & test and do give the feedback and reviews its been a great journey I learned a lot while making this do like and follow. I can’t ship it right now my previous ship is still pending its been more then 2 week about 3 week still pending if anyone could help do reply please that’s it thanks for connecting. V3 will be delayed bcz of college stuff but will work on the feedback for sure. ☆ : .。. o(≧▽≦)o .。.: ☆☆ : .。. o(≧▽≦)o .。.: ☆ here is the whole story: FOU started as my first serious Python project and was originally just a simple CLI watchlist where you could add, remove, save and reload coin symbols. V1.1 made that version more stable and usable with better structure, save handling and a standalone Windows build. V2 is the biggest jump so far. I added live prices, coin validation, multiple-coin adding, better formatting, safer save-file handling, and a hosted FastAPI backend so the CoinGecko API key stays off the client. I also added caching, rate limiting, network error handling, and cross-platform builds for Windows, Linux and macOS using GitHub Actions. The V1.1 reviews also showed me that the project explanation was still too technical for beginners. Some people didn’t understand what a crypto watchlist was or thought it involved wallets. So I’m improving that too: clearer README beginner guide screenshots better devlogs simpler explanation of what FOU does and why I built it FOU is still a learning project and my first serious one, so a big part of this has been learning by building. Next I’m focusing on V2 feedback and polish before moving toward V3."}, {"post_id": 70741, "ts": "2026-09-19T17:59:07Z", "hours": 0.7525, "text": "DEVLOG-15: Don’t know why still pending if anyone seeing from the team please check my project the V2 is done and i want to ship that if the V1.1 will stay pending i will not able to ship it please team stardance help. BTW done the package part and multiple OS support too and testing there is still work needed but will finish tomorrow."}, {"post_id": 69844, "ts": "2026-09-17T21:52:56Z", "hours": 0.5375, "text": "DEVLOG-14: Done making the backend now some refactors and packages left to build and then V2 is done. if any shipwrights watching this please review my project so i can ship V2. BTW anyone wants to team up on the new programm by hack club “Third space” please comment on this devlog."}, {"post_id": 68760, "ts": "2026-09-15T18:12:26Z", "hours": 2.0439, "text": "DEVLOG-13: Currently working on Backend Error handling like time limit and request limits and after that will do the final cleanup and touch ups and then work on the package part will release the V2 for all os its currenty limited to window’s but V2 will be for linux and mac too. ^0^"}, {"post_id": 68214, "ts": "2026-09-14T18:21:46Z", "hours": 1.1408, "text": "DEVLOG- 12: Today Done some what robusting and will final this didn’t work much today cause of college but will wrap this V2 in 2 days hopely its going to be best thanks. For me learning backend then Appling it was a headache task but done it and learn about it more. try project and give ideas like what i can add in this next and reviews."}, {"post_id": 67588, "ts": "2026-09-13T18:52:15Z", "hours": 1.9956, "text": "DEVLOG-11: Guy Today worked on the Backend created the backend and test it its working and now the sunday feels worth drop the API robustness before but now work on that hope is that it will finished in 3-4 days. will update when API & Network Robustness done. ☆ : .。. o(≧▽≦)o .。.: ☆"}, {"post_id": 66486, "ts": "2026-09-12T10:16:00Z", "hours": 1.9486, "text": "DEVLOG- 10: Today I Done the view_portfolio part and now it shows the current_price of the coin and also a better UI is there to as I ass separator and anchor too add short part too where the coins with high market rank will appear at the top. Now work on the API handling will update soon. ( /ω\ )"}, {"post_id": 65507, "ts": "2026-09-10T18:18:00Z", "hours": 2.4475, "text": "DEVLOG-9: Today worked on the view_portfolio and add the almost every features, testing it now for a while and fixing the bugs and errors here GLM is useful as it test the code and returning the exact error that I am fixing hopply finish the view part tomorrow and move to something next. btw I take off from college for this still learning and then implementing it make it long (~ ̄▽ ̄)~ . will go college tomorrow hopply this will end. Please do follow me and like my log as i am working hard and who gonna like my log i will like there all log. (〃 ̄︶ ̄)人( ̄︶ ̄〃)"}, {"post_id": 64954, "ts": "2026-09-09T18:07:02Z", "hours": 1.3367, "text": "DEVLOG-8: Finally Fixed the add function part and API errors it take a lot of time and learnings to do so now starts working on view_portfolio function hopefully it get done quickly ( /ω\ )."}, {"post_id": 64386, "ts": "2026-09-08T18:26:31Z", "hours": 1.1236, "text": "DEVLOG-7: Work on the add function still handling API and debugging the problems as per my first project this is going to be crazy and lately getting busy as I had join a college for my BBA degree and classes are long ಥ_ಥಥ_ಥ"}, {"post_id": 63720, "ts": "2026-09-07T17:33:31Z", "hours": 1.8575, "text": "DEVLOG-6: Guys working the the API debugging part and it’s frustrating ಥ_ಥ since its keep failing and i had tried all the things asking AI for diagnosis, btw this hard work will be paid of once it’s made cause its gonna add the exciting components.(❁´◡`❁)"}, {"post_id": 62830, "ts": "2026-09-06T11:12:36Z", "hours": 1.7642, "text": "DEVLOG-5: Guys just completed the API function and working on the sorting , price reflecting , listing , and ranking so the V2 will be a considerable hit ╰( °▽° )╯"}, {"post_id": 62153, "ts": "2026-09-05T12:27:18Z", "hours": 0.9586, "text": "DEVLOG-4: Testing API and learning concepts its really time consuming guys please follow and share your reviews"}, {"post_id": 61750, "ts": "2026-09-04T20:10:07Z", "hours": 0.2939, "text": "DEVLOG-3: The Work on the V2 is going on write now the things are complicated for me cause as a learner and a beginner I have to learn before implementation so this will take the time I don’t know why my ship1 is not rated yet if anybody knows please comment. Do try my project and give feedbacks"}, {"post_id": 61487, "ts": "2026-09-04T13:03:38Z", "hours": 0.4081, "text": "DEVLOG-2: Complete the refactor part and now working on the V2 main comp. the API part will update soon"}, {"post_id": 61327, "ts": "2026-09-04T05:44:52Z", "hours": 0.3233, "text": "DEVLOG-1: Started Working on V2 before major updates just refactoring the code as per feedback adding loops in ADD and REMOVE feature and also making package for macos and linux"}, {"post_id": 60297, "ts": "2026-09-02T15:56:41Z", "hours": 0.6444, "text": "Just completed the packaging part now my project is in .exe and going to ship it now"}, {"post_id": 60097, "ts": "2026-09-02T07:41:35Z", "hours": 0.3394, "text": "Devlog 2 -_- Working on the packaging part making it a .exe for you guys so u could try and share reviews and soon shipping it too"}, {"post_id": 57119, "ts": "2026-08-29T06:50:58Z", "hours": 0.4653, "text": "Devlog:1 -_- Today I refactor my FOU-V1 add the separate function for all the functions and ready to move on the V2 of it.Please try and give reviews"}]...
|
Title: FOU by @SHREX | Stardance
Devlogs:
Devlog: Title: FOU by @SHREX | Stardance
Devlogs:
Devlog:1 -_- Today I refactor my FOU-V1 add the separate function for all the functions and ready to move on the V2 of it.Please try and give reviews
Devlog 2 -_- Working on the packaging part making it a .exe for you guys so u could try and share reviews and soon shipping it too
Just completed the packaging part now my project is in .exe and going to ship it now
DEVLOG-1: Started Working on V2 before major updates just refactoring the code as per feedback adding loops in ADD and REMOVE feature and also making package for macos and linux
DEVLOG-2: Complete the refactor part and now working on the V2 main comp. the API part will update soon
DEVLOG-3: The Work on the V2 is going on write now the things are complicated for me cause as a learner and a beginner I have to learn before implementation so this will take the time I don’t know why my ship1 is not rated yet if anybody knows please comment. Do try my project and give feedbacks
DEVLOG-4: Testing API and learning concepts its really time consuming guys please follow and share your reviews
DEVLOG-5: Guys just completed the API function and working on the sorting , price reflecting , listing , and ranking so the V2 will be a considerable hit ╰( °▽° )╯
DEVLOG-6: Guys working the the API debugging part and it’s frustrating ಥ_ಥ since its keep failing and i had tried all the things asking AI for diagnosis, btw this hard work will be paid of once it’s made cause its gonna add the exciting components.(❁´◡`❁)
DEVLOG-7: Work on the add function still handling API and debugging the problems as per my first project this is going to be crazy and lately getting busy as I had join a college for my BBA degree and classes are long ಥ_ಥಥ_ಥ
DEVLOG-8: Finally Fixed the add function part and API errors it take a lot of time and learnings to do so now starts working on view_portfolio function hopefully it get done quickly ( /ω\ ).
DEVLOG-9: Today worked on the view_portfolio and add the almost every features, testing it now for a while and fixing the bugs and errors here GLM is useful as it test the code and returning the exact error that I am fixing hopply finish the view part tomorrow and move to something next. btw I take off from college for this still learning and then implementing it make it long (~ ̄▽ ̄)~ . will go college tomorrow hopply this will end. Please do follow me and like my log as i am working hard and who gonna like my log i will like there all log. (〃 ̄︶ ̄)人( ̄︶ ̄〃)
DEVLOG- 10: Today I Done the view_portfolio part and now it shows the current_price of the coin and also a better UI is there to as I ass separator and anchor too add short part too where the coins with high market rank will appear at the top. Now work on the API handling will update soon. ( /ω\ )
DEVLOG-11: Guy Today worked on the Backend created the backend and test it its working and now the sunday feels worth drop the API robustness before but now work on that hope is that it will finished in 3-4 days. will update when API & Network Robustness done. ☆ : .。. o(≧▽≦)o .。.: ☆
DEVLOG- 12: Today Done some what robusting and will final this didn’t work much today cause of college but will wrap this V2 in 2 days hopely its going to be best thanks. For me learning backend then Appling it was a headache task but done it and learn about it more. try project and give ideas like what i can add in this next and reviews.
DEVLOG-13: Currently working on Backend Error handling like time limit and request limits and after that will do the final cleanup and touch ups and then work on the package part will release the V2 for all os its currenty limited to window’s but V2 will be for linux and mac too. ^0^
DEVLOG-14: Done making the backend now some refactors and packages left to build and then V2 is done. if any shipwrights watching this please review my project so i can ship V2. BTW anyone wants to team up on the new programm by hack club “Third space” please comment on this devlog.
DEVLOG-15: Don’t know why still pending if anyone seeing from the team please check my project the V2 is done and i want to ship that if the V1.1 will stay pending i will not able to ship it please team stardance help. BTW done the package part and multiple OS support too and testing there is still work needed but will finish tomorrow.
DEVLOG-16: Guys, Finally the V2 is done and live check my github and try & test and do give the feedback and reviews its been a great journey I learned a lot while making this do like and follow. I can’t ship it right now my previous ship is still pending its been more then 2 week about 3 week still pending if anyone could help do reply please that’s it thanks for connecting. V3 will be delayed bcz of college stuff but will work on the feedback for sure. ☆ : .。. o(≧▽≦)o .。.: ☆☆ : .。. o(≧▽≦)o .。.: ☆ here is the whole story: FOU started as my first serious Python project and was originally just a simple CLI watchlist where you could add, remove, save and reload coin symbols. V1.1 made that version more stable and usable with better structure, save handling and a standalone Windows build. V2 is the biggest jump so far. I added live prices, coin validation, multiple-coin adding, better formatting, safer save-file handling, and a hosted FastAPI backend so the CoinGecko API key stays off the client. I also added caching, rate limiting, network error handling, and cross-platform builds for Windows, Linux and macOS using GitHub Actions. The V1.1 reviews also showed me that the project explanation was still too technical for beginners. Some people didn’t understand what a crypto watchlist was or thought it involved wallets. So I’m improving that too: clearer README beginner guide screenshots better devlogs simpler explanation of what FOU does and why I built it FOU is still a learning project and my first serious one, so a big part of this has been learning by building. Next I’m focusing on V2 feedback and polish before moving toward V3.
DEVLOG-17: Thanks everyone for reviews working on the reviews and fixed some issue too, currenty working on GUI as many suggest a good UI ,testing the GUI and learning it too will ship the V2.1 with GUI and fixed things as per feedback. THANKS EVERYONE! DO SUGGEST ME SOME GUI THEMES FOR UI.
DEVLOG-18: Guys currently working on GUI and testing it while learning so this will take time i think. Do share some UI layouts ideas to put that.
DEVLOG-19: Done with the test_GUI learned the major concepts and basics too no moving forward to work on actual FOU. (~ ̄▽ ̄)~(~ ̄▽ ̄)~
DEVLOG-20: Done the refactor with the main.py and build some core functions so the same function will be used buy both CLI and GUI and now working on GUI skeleton stucture will update when finish do comment and like please.
DEVLOG- 21: Currently working on the GUI structure and just done timeout error handling with this as a base structure the whole UI will be amazing and will take a while I am new to coustomTkinter so I need to learn first.
DEVLOG-22: Today i worked on adding functions to the buttons and handling the possible errors that could happened till now done the view_portfolio , remove_coin, add_coin part with there respective button now work on selection of coin and coin preview as a 3D image if possible. (〃 ̄︶ ̄)人( ̄︶ ̄〃)
DEVLOG- 23: ADDED some color and themes too, this V2.1 will have 6 theme to choose and currently working on the 2 of them then others right now leaning color change and multiple theme changer in CustomTkinter and apply them here. So far Done the border and background and button stuff will work on coin selection now see you soon.
DEVLOG- 24: Today worked on the left side panels and activity tracer part and done both the part currently generating images as introducing the companion in the GUI with is image based for now but For V3 will change that too motion one. (❁´◡ ❁)(❁´◡ ❁)
DEVLOG- 25: Today I worked on the enhancing the UI and making the default theme till now done the background part and color and border part screen size issue clear and ore UI fixed now working on the complete look and will update when the FOU Theme done.
DEVLOG- 26: Today I am working on the companion part of my GUI and from the morning working on the correct size fitting of the .png still didn’t get that like when minimize and maximize the size is getting larger and cropped or smaller then the frame and never fits if anybody know how to fix that issue do comment i am using CustomTkinter for this GUI. <(_ _)><(_ _)>o(TヘTo)o(TヘTo)
DEVLOG- 27: Today I fixed the major issue i am facing the image sizing part like when minimize and maximize done some calculation learn new concepts and do some compromise and apart from that added the logo section so the displayed coin will display there logo too and added the help button later when this finish will create a youtube video to guide it threw. The UI is taking the target set shape need some refinement and clarity the the default theme is done yes there will be more then one theme. ^0^ ^0^╰( °▽° )╯╰( °▽° )╯
DEVLOG- 28: So this is my default theme look today i fixed the style like the text fonts and placement and size worked on the activity section like the tick part take a lot just learned the image draw in python and use that to make the search icon clock and tick and loading so it take a while what do you think about this theme there will be more i give you a hint the second is from anime which is so mysterious! (⊙ (⊙ ⊙)_⊙) ( ̄┰ ̄ )( ̄┰ ̄ )
DEVLOG- 29: Today I finally completed the FOU default theme UI and this is the locked result done some refinement today as remove button draw the prefect remove button icon and the companion sizing and placement the header of companion given a companion a 3D look ) and make companion fame fits to it as the upcoming theme will use that logic stay tuned may ship this this sunday or monday!)
DEVLOG - 30: Currently working on the second theme and just fixed done the companion frame and part like the emotion part and struggling in the frame of portfolio so i need to learn and understand some more concepts to fix that stay tuned! ( ̄┰ ̄*) ಥ_ಥ
DEVLOG - 31: Working on a same problem from yesterday but it didn’t fixed yet learned the new concepts and apply them but nothing happened will keep trying until crack that so stay tuned, if you can help please comment me the problem is i want a png border file to get perfectly fix around my portfolio and that file is not fitting perfectly so if anybody know i am using python only and making UI using coustomTkinter.
DEVLOG- 32: After struggling and finding the result of the problem i learned math module and ceil and after learning this its so complicated for me that i need to take help from chat_gpt for the calculation part and then i got the desire result but still raise a another issue like the border of companion frame is not retracking its placement so I think i need to fix that next stay tuned ! ಥ_ಥ ┑( ̄Д  ̄)┍
DEVLOG- 33: Worked on so many things today, like adding the overall background in the second theme and living the frames that hiding that giving each frame its own border frame as per theme, created cards icon for change theme option using DRAW and also create local saving icon to use. i really think i cover most of the feedback as majorities of feedback were about UI which is done mostly and one feedback was about help option so I created a help button at the right bottom which will have a go through video of FOU explain everything if u needed help! will reveled the final look of second theme so stay tuned. - - () - -
DEVLOG- 34: Here is the look of second theme the name is THE FOOL and the companion name is Mr. FOOL , the border around the portfolio takes so much time and effort of mine like in the end i need to use codex for calculation part as i learn MATH but the calculation is quiet complex so uses that, Appart from this I think i had done most of the work on feedback : 1st Feedback : Make a UI -> Now my project is shifted from cli to gui and have a proper UI 2nd Feedback : Timestap -> Added that in portfolio frame you can see the time its feacting the prices 3rd Feedback : Help -> Addded a help button at the bottom and that will open a youtube video that explain everything from how to use and what is for what! 4th Feedback : Nothing - > so everything is done so far ╰( °▽° )╯╰( °▽° )╯ BTW, working on the third theme too maybe ship tomorrow so don’t forget to try and Rate good my project .
DEVLOG- 35: About to ship this here is important thing please read this if you encounter with and security issue please click run anyway as I applied for the authorized ownership but that will take weeks to fulfill so please co-operate and Linux and windows user if you want you can skip as i don’t have any system to test them, Thank you all for this journey will make more and be better if you rating me please rate me good. <(_ _)><(_ _)>
Ships:
I made FOU V1.1, a Python command-line cryptocurrency watchlist where users can add, view, remove, save, and reload coin symbols. The most challenging part was making the save system reliable both when running the Python file and when running the packaged Windows .exe . I also learned how to handle missing or corrupted save files and how to package the project with PyInstaller. I’m most proud that I took a simple Python project and turned it into a working standalone Windows release that other people can actually download and run. I also improved the code structure, added better error handling, and learned more about Git, GitHub releases, and project shipping. People should know that FOU V1.1 is still a watchlist-style project, not a full live crypto tracker yet. V2 is planned to add live prices and coin validation.
FOU is my first serious programming project and I made most of it while I was still learning Python. The idea actually came from a small problem I had myself. There were a lot of crypto coins I wanted to keep an eye on, but I didn’t want to open an exchange or search each coin again and again just to check the price. So I thought, why not make a small program where I can add the coins I care about once and then just open it whenever I want to check them. That’s how FOU started. V1.1 was very simple. It was just a CLI watchlist where you could add, remove, save and load coin symbols. While making V2 I learned a lot more and slowly upgraded it with live prices, valid coin checking, adding multiple coins, better save handling, error handling and builds for Windows, Linux and macOS. One of the hardest parts for me was learning how APIs and backend stuff work. I didn’t want to put the CoinGecko API key inside the app, so I built my own FastAPI backend and deployed it. I also learned caching, rate limiting, GitHub Actions, PyInstaller and a lot of testing while doing this. I also worked on the feedback from my V1.1 ship. A lot of people said the README and devlogs were not explaining the project enough, and some people didn’t even understand what a crypto watchlist was or thought it was related to wallets. So for V2 I added a beginner guide, clearer explanation of what FOU does, why I made it, better installation steps and I’m also adding better screenshots and more detailed devlogs. FOU does not connect to wallets, trade crypto or use real money. It is just a simple personal watchlist to track coins you are interested in. To test it, download the build for your OS from the V2 release, open FOU, add coins like BTC, ETH or SOL, type DONE, then open View Portfolio to see the live prices. Save it, close the app, reopen it and your watchlist should still be there. I’m still a beginner and this project is mainly how I’m learning by actually building something, so feedback really helps me improve it. If you try it and like what I made, I’d really appreciate a good rating and an honest review. And if something feels confusing or broken, please tell me that too so I can work on it in the next update.
FOU is my first serious programming project, and honestly, I never thought it would come this far. It started as a small Python CLI because I wanted an easy way to track crypto prices without opening an exchange every time. Slowly, I added live prices, coin validation, saving, and my own backend. And now, with v2.5, I’ve finally turned it into a proper desktop app! FOU now has three themes — FOU DEFAULT, THE FOOL, and VOID , each with its own companion and six different reactions. The hardest part was definitely building the GUI, especially getting the characters, decorative frames, and layouts to work properly when resizing the window. I spent way too much time fixing tiny details 😭 I also tried to work on almost every piece of feedback from my previous ships. A lot of people said my README and devlogs weren’t clear enough, so this time I’ve added better explanations, installation instructions, a full demo video, and more details about how I built everything. 💜 Please read this before testing! ⏳ First-time loading: Adding your first coin or loading saved prices might take around 60 seconds because my free hosted backend sometimes goes to sleep. Please give it a little time! 🛡️ Windows: I’ve tested the released app on two Windows laptops, and it worked fine. However, the executable is still unsigned, so Windows might show a security warning. I’ve already applied for code signing. Please don’t disable your security settings just to test it. 🐧 Linux and macOS: Both builds completed successfully, but I couldn’t test them on real Linux or Mac computers. So please treat them as experimental. If something doesn’t work, I’d really appreciate it if you could watch the demo video before rating, rather than judging FOU only by an untested build. 🐛 Bugs: Some recent tests found a few rare issues with saving and unexpected API responses. I’ve started fixing them, but those fixes aren’t in this release yet. If you find anything, please let me know! 🚀 How to try it Download the ZIP for your OS from the GitHub Release. On Windows, extract everything and open FOU.exe . Try adding BTC, ETH, or SOL, refreshing prices, saving your portfolio, and switching themes. FOU isn’t a wallet or trading app. It’s just a watchlist for coins you’re interested in. Release: https://github.com/FOU-SHREX/FOU/releases/tag/v2.5.0 README + Demo Video: https://github.com/FOU-SHREX/FOU I’m still learning Python, and this project taught me so much about coding, APIs, GUI development, and fixing things that randomly stop working. I also used ChatGPT, and AI image tools to help with coding, debugging, and artwork throughout development. I’m really happy with how far FOU has come, even though it’s still not perfect. Thanks to everyone who gave feedback on my earlier versions and helped me improve it. I hope you enjoy trying FOU! 💜 Please give feedback and good rating <(_ _)>...
|
1792993728.6464317
|
1793080128.6464317
|
|
57800
|
AEGIS by @aron_roger | Stardance
|
aron_roger
|
2
|
71.0
|
795
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T19:55:05Z", "hours": 21.0, "multiplier": 14.56, "payout": 301, "blessing": "neutral", "text": "A NFC tag tracker app, it is on the web right now, for designing and prototyping purpose, although I have written much greater detail in my previous ship, this is just a contiuation to my last ship. So, from the previous feedback, I have fixed few thing worked more on the representation and then also added a instruction page to the routes. I want to say I am happy with where I have reached as said in my previous dev-log, I have decided to get this project a halt, due to other responsibilities and priorities. I wanted to do more than that, but I am glad with whatever I learned along the way, it was all fun. As of now it is still not a native application rather a web hosted testing prototype, you can use the graphs and toggle option to change option, and yeah for now i haven’t yet added different user option, although I started with it. I might be signing off after this, would try to comeback but till then, may everyone do well in anything they do, I would still like to receive feedback, and yeah Ik I have sm things in mind to do and add, but yet again sadly it is kinda hard for me as of now.", "repo": "https://github.com/aron-roger/aegis", "demo": "https://aronnn.pythonanywhere.com/hydration"}, {"ship_num": 2, "ts": "2026-09-19T09:57:04Z", "hours": 50.0, "multiplier": 9.92, "payout": 494, "blessing": "neutral", "text": "AEGIS General intro I made a NFC tracker application, even though it is on the web rn, I have deployed it to pythonanywhere for use, currently. Story-Time: I might be a strange guy but I like to track my habits and count everything, and I surely have done tracking across both digitally and manually on my journal. That is when I knew about NFC stickers where a person showcased how he is using it to track his stuff, and i thought it to be so cool if i can do it too, so I began searching… later, here I am. Challenges I tried my best to make this as best i can, ngl I kinda tripped, and hit so many walls, at some point I was about to give up, but nah, I was more determined to complete it. I watched few HTML videos and CSS workaround, as i learned them through this project too, I learned a lot of stuff, I do not regret it, And the java-script was so hard to learn with my studies and in this short amount of time, that i must day i used AI to get me through it. Happy? Yeah I am so happy, with all I could do I wish i could do more, but as ever I’m not giving up. I am so happy about it, also when i discussed it with my cousin and he was like he wanted to track his water intake, it was hard for him. And i instantly knew, I can do it and I might can help him too. NOTE: I uses a NFC sticker on the objects, for example; water bottle, where the user can scan it whenever he can log his intake, and I have shared the link to where the person can use it, I am sorry not everyone can get a sticker, but I can make sure if they do have it it is most best UX for them. Otherwise, I have added an approach to to manually log the intake, Since, it is suppose to be an app and i haven’t yet made it an app, so i deployed it on pythonanywhere you can try out manual logging into my db. but as soon as the project is completed i will produce it such way the users have their local db to store their intake which is when a mobile app comes in. This a WIP PROJECT and I have so many things in mind to add, as I progress, lets hope I can do it, I believe i can do more pages faster as I have whole workflow in my head. Thank you for reading it this farrrr, arigato gozaimasu.", "repo": "https://github.com/aron-roger/aegis", "demo": "https://aronnn.pythonanywhere.com/hydration"}]...
|
[{"post_id": 75273, "ts": "202 [{"post_id": 75273, "ts": "2026-09-29T16:39:51Z", "hours": 4.0106, "text": "This might be my last dev-log I hate to admit but my study have been over-whelming. I am in 12th grade and catching up with my studies + preparing for a screening test olympiads. It is like juggling them but can’t do anything, I must eliminate something to keep up with everything else. Not gonna lie, it has been so much fun and learning during my time in Star-dance. I would miss this. I wanted to complete aegis-project but I still seem to have a long way to go especially learning dart or xml to host my app. Actually there might a bit more longer way because i haven’t really picked up on java-script either. I am kinda sad because I can not put in my everything, but I am happy with whatever I have learnt, plus all the new people I have met and then also able to tell more people about it. For this dev-log I’d like to showcase my whole app and designs Ive been working on. I have tried learning a lil bit of schema, but unable to give my whole time towards it also, I have also sent my code to ai to help me too. Things I have done instruction route is done for now re-newed the db for new schema (which i would not use after this decision) tweaked some design for my all routes and html which I have attached ss to it."}, {"post_id": 74088, "ts": "2026-09-26T17:15:09Z", "hours": 7.4475, "text": "#YOPP! I tried re-designing my home page and here is hat Ive come up with I used this pale-yellow green. I don’t know if i would change it or keep it. Any-ways here is what Ive been up to and what I did I have read the reasons that came through with the shipment results, and few reviewers claimed that they can’t understand they way it works, which for what i would like to apologize for I should’ve made an instruction screen, or smth more prominent of the usage of my system. I am glad they have pointed it out! So, I have tried making a Home-screen and a simple instruction screen. It was fun and quick process, although few designing got me time tinkering. Here is a overview to what I have done, I used lapse to record my Figma designing hours and then, later tried implementing it inside my code. although there have been so many inconsistencies that I had to use ai to help me, but Im glas with what im at. Then, also I have changed date selector bar which was again fun, because this time there was less friction than before, I’m kinda disappointed that I couldn’t manipulate JS on my own. Aside naturally, everything worked well, now I would like to complete it soon, because my other responsibilities have been hiking. BTW, I am tweaking myself I am kinda super glad with my hydration and sleep routes they are peaking, I would like to highlight them at next dev post, keep getting posted, I am sure you guys would like it"}, {"post_id": 72246, "ts": "2026-09-22T15:00:37Z", "hours": 8.0583, "text": "YO - I’m back I have posted my app to what I designed and where I am rn, first picture is my figma design, second is my where I am… I’ve been wanting to add those animated giphy, let me know how you guys do it. I tweaked my route kinda completed it, I’m kinda happy with this, some of the things are repetitive but so far here is what i did: re-made my date selector bar changed the background for sleep tracker theme sleep button toggle, it was kinda hard to learn DOM manipulation, so I let ai do it (will learn it) set-up routes in the backend, kinda fun to tweak it and used ai to help me clear my mess Honestly, I think must showcase my result properly, it is not a web but an app, soon converting it to a whole app, as im finished with logic routes. NFC is working, soon uploading it on Github. You can send me your reviews as you like my app to be, I would be happy to view them and react to them."}, {"post_id": 70771, "ts": "2026-09-19T18:52:19Z", "hours": 1.18, "text": "IRONY So, I have been flagged, to be using ai styled design, which is sad truly because, I myself had came up with the layout, in figma, and then later i tweaked the design in dark theme, because i probably my eyes hurt working with bright screen lol. light theme I was hoping to use this design, later, for customizing theme option in settings. Apparently, I am switching back to it, after some tweaks, I will be able to push it on github Clarification Also, I want to tell that I wanted to make an app out of it, and all i did rn is just made it on a web, so i got a long way to go, I was am soon using flutter for my application and deployment. I believe i wont be flagged next because yeah, It is my design, i wonder if it is that good or that much slop."}, {"post_id": 70461, "ts": "2026-09-19T07:31:03Z", "hours": 4.5711, "text": "FINALLY, I THINK MY HYDRATION PAGE IS DONE. Changes; First of all I have graphss, like it is working the one day graph is supposed to be a cumulative graph and its working well. fixed few bugs i was facing when i was testing it, i still cannot test 1w and 1 month graph due to limited logs, It was a long way, honestly, i have put my design i made on figma in the later image, and the first one is what Im at rn. If you scroll through my other dev logs you might stumble upon my whole design phase. However, I am glad with what I got to, it is just as expected, I am ship this as a WIP project, please I really put my heart at it, learning and idealizing, I really appreciate your rating and help, Thanks for reading it this farr, really thank you. I will add more details, when i will ship this."}, {"post_id": 69699, "ts": "2026-09-17T16:36:31Z", "hours": 6.0686, "text": "HYDRATION TRACKER TLDR; deployed it on pythonanywhere removed variable input created tables for history I’ve re- the whole hydration.html, due to the reasons my javascript wasn’t performing well with variable input. so now i backed off from it and start to complete the basics. Deployed my project on pythonanywhere so now i can officially use the sticker when i go outside too, please acknowledy this my first time making a dedicated project and i have learned a lot of stuff, yet i try to keep on improving ##Future plans… making graphsss (tuff) ig, i always liked visual representation. sleep.html but diff cards mihi med tracker (custom medication) Will work on better dev posts."}, {"post_id": 67561, "ts": "2026-09-13T18:15:53Z", "hours": 8.3778, "text": "It was supposed to be a mobile app but it looks cool anyways, YEPP i worked on backend, again and yet got to this new screen with new cardsss. NOW user can adjust the amount logs, there is bug i found while testing but then i got message that i must dev post soon, anyways les goo, i would like to know and hear more suggestion on anything about my project."}, {"post_id": 66661, "ts": "2026-09-12T14:55:37Z", "hours": 8.1722, "text": "Worked on Backend and front end both, i cant decide which theme to choose, that blue one or white one, Anyways, backend for hydration route is all set i might not need to tweak it anymore or i must say much. front end, im honestly enjoying all of this, i learnt a lot…"}, {"post_id": 65883, "ts": "2026-09-11T10:07:28Z", "hours": 3.1342, "text": "Worked on the back-end, css html too. i took few courses from html to get started with it, next im refining my page to make it look more like my figma design and also im re-building backend py code. Till, i receive my stickers, ordered from a store, imma work on on making front end better and re doing my py files for a formal structure."}, {"post_id": 64210, "ts": "2026-09-08T13:21:21Z", "hours": 3.7906, "text": "Honestly for now im done with the design all thing sive made myself everything took lotta time to get to this point and it is only design, i will tweak more like get home page and more tacker with more features soon, maybe add badges and its tab, There is still a lot to do. (sorry for poor quality video i still cant figure out how to use obs screen rec.) SO, IM DONE FOR NOW WITH DESIGNING, I am starting at backend code using flutter i have shared the files to test my backend and it is going good fo rnow next we adding pages and its logic. It is all new im learning midway. I would like if you can suggest me any idea for tracker although i might add a medicine tracker and brush at night tracker because i believe there are many people who do not brush at night too, correct me and share your review, thankss."}, {"post_id": 62356, "ts": "2026-09-05T18:00:09Z", "hours": 7.4225, "text": "Today, I have made more buttons and started at both hydration and sleep tracker page. From last time, I have been more consistent with so many things. Next, I am adding graphs to the system, so finally start at code. And would probably post a preview to the design. For those who don’t know, im building nfc tracker system for day to day life and for now i am only integrating 2 trackers for now."}, {"post_id": 61705, "ts": "2026-09-04T19:02:13Z", "hours": 8.2783, "text": "OK, it was my first time using figma, started my design (ui) for my app: Aegis. There a lot more to go…"}]...
|
Title: AEGIS by @aron_roger | Stardance
Devlogs:
Title: AEGIS by @aron_roger | Stardance
Devlogs:
OK, it was my first time using figma, started my design (ui) for my app: Aegis. There a lot more to go…
Today, I have made more buttons and started at both hydration and sleep tracker page. From last time, I have been more consistent with so many things. Next, I am adding graphs to the system, so finally start at code. And would probably post a preview to the design. For those who don’t know, im building nfc tracker system for day to day life and for now i am only integrating 2 trackers for now.
Honestly for now im done with the design all thing sive made myself everything took lotta time to get to this point and it is only design, i will tweak more like get home page and more tacker with more features soon, maybe add badges and its tab, There is still a lot to do. (sorry for poor quality video i still cant figure out how to use obs screen rec.) SO, IM DONE FOR NOW WITH DESIGNING, I am starting at backend code using flutter i have shared the files to test my backend and it is going good fo rnow next we adding pages and its logic. It is all new im learning midway. I would like if you can suggest me any idea for tracker although i might add a medicine tracker and brush at night tracker because i believe there are many people who do not brush at night too, correct me and share your review, thankss.
Worked on the back-end, css html too. i took few courses from html to get started with it, next im refining my page to make it look more like my figma design and also im re-building backend py code. Till, i receive my stickers, ordered from a store, imma work on on making front end better and re doing my py files for a formal structure.
Worked on Backend and front end both, i cant decide which theme to choose, that blue one or white one, Anyways, backend for hydration route is all set i might not need to tweak it anymore or i must say much. front end, im honestly enjoying all of this, i learnt a lot…
It was supposed to be a mobile app but it looks cool anyways, YEPP i worked on backend, again and yet got to this new screen with new cardsss. NOW user can adjust the amount logs, there is bug i found while testing but then i got message that i must dev post soon, anyways les goo, i would like to know and hear more suggestion on anything about my project.
HYDRATION TRACKER TLDR; deployed it on pythonanywhere removed variable input created tables for history I’ve re- the whole hydration.html, due to the reasons my javascript wasn’t performing well with variable input. so now i backed off from it and start to complete the basics. Deployed my project on pythonanywhere so now i can officially use the sticker when i go outside too, please acknowledy this my first time making a dedicated project and i have learned a lot of stuff, yet i try to keep on improving ##Future plans… making graphsss (tuff) ig, i always liked visual representation. sleep.html but diff cards mihi med tracker (custom medication) Will work on better dev posts.
FINALLY, I THINK MY HYDRATION PAGE IS DONE. Changes; First of all I have graphss, like it is working the one day graph is supposed to be a cumulative graph and its working well. fixed few bugs i was facing when i was testing it, i still cannot test 1w and 1 month graph due to limited logs, It was a long way, honestly, i have put my design i made on figma in the later image, and the first one is what Im at rn. If you scroll through my other dev logs you might stumble upon my whole design phase. However, I am glad with what I got to, it is just as expected, I am ship this as a WIP project, please I really put my heart at it, learning and idealizing, I really appreciate your rating and help, Thanks for reading it this farr, really thank you. I will add more details, when i will ship this.
IRONY So, I have been flagged, to be using ai styled design, which is sad truly because, I myself had came up with the layout, in figma, and then later i tweaked the design in dark theme, because i probably my eyes hurt working with bright screen lol. light theme I was hoping to use this design, later, for customizing theme option in settings. Apparently, I am switching back to it, after some tweaks, I will be able to push it on github Clarification Also, I want to tell that I wanted to make an app out of it, and all i did rn is just made it on a web, so i got a long way to go, I was am soon using flutter for my application and deployment. I believe i wont be flagged next because yeah, It is my design, i wonder if it is that good or that much slop.
YO - I’m back I have posted my app to what I designed and where I am rn, first picture is my figma design, second is my where I am… I’ve been wanting to add those animated giphy, let me know how you guys do it. I tweaked my route kinda completed it, I’m kinda happy with this, some of the things are repetitive but so far here is what i did: re-made my date selector bar changed the background for sleep tracker theme sleep button toggle, it was kinda hard to learn DOM manipulation, so I let ai do it (will learn it) set-up routes in the backend, kinda fun to tweak it and used ai to help me clear my mess Honestly, I think must showcase my result properly, it is not a web but an app, soon converting it to a whole app, as im finished with logic routes. NFC is working, soon uploading it on Github. You can send me your reviews as you like my app to be, I would be happy to view them and react to them.
#YOPP! I tried re-designing my home page and here is hat Ive come up with I used this pale-yellow green. I don’t know if i would change it or keep it. Any-ways here is what Ive been up to and what I did I have read the reasons that came through with the shipment results, and few reviewers claimed that they can’t understand they way it works, which for what i would like to apologize for I should’ve made an instruction screen, or smth more prominent of the usage of my system. I am glad they have pointed it out! So, I have tried making a Home-screen and a simple instruction screen. It was fun and quick process, although few designing got me time tinkering. Here is a overview to what I have done, I used lapse to record my Figma designing hours and then, later tried implementing it inside my code. although there have been so many inconsistencies that I had to use ai to help me, but Im glas with what im at. Then, also I have changed date selector bar which was again fun, because this time there was less friction than before, I’m kinda disappointed that I couldn’t manipulate JS on my own. Aside naturally, everything worked well, now I would like to complete it soon, because my other responsibilities have been hiking. BTW, I am tweaking myself I am kinda super glad with my hydration and sleep routes they are peaking, I would like to highlight them at next dev post, keep getting posted, I am sure you guys would like it
This might be my last dev-log I hate to admit but my study have been over-whelming. I am in 12th grade and catching up with my studies + preparing for a screening test olympiads. It is like juggling them but can’t do anything, I must eliminate something to keep up with everything else. Not gonna lie, it has been so much fun and learning during my time in Star-dance. I would miss this. I wanted to complete aegis-project but I still seem to have a long way to go especially learning dart or xml to host my app. Actually there might a bit more longer way because i haven’t really picked up on java-script either. I am kinda sad because I can not put in my everything, but I am happy with whatever I have learnt, plus all the new people I have met and then also able to tell more people about it. For this dev-log I’d like to showcase my whole app and designs Ive been working on. I have tried learning a lil bit of schema, but unable to give my whole time towards it also, I have also sent my code to ai to help me too. Things I have done instruction route is done for now re-newed the db for new schema (which i would not use after this decision) tweaked some design for my all routes and html which I have attached ss to it.
Ships:
AEGIS General intro I made a NFC tracker application, even though it is on the web rn, I have deployed it to pythonanywhere for use, currently. Story-Time: I might be a strange guy but I like to track my habits and count everything, and I surely have done tracking across both digitally and manually on my journal. That is when I knew about NFC stickers where a person showcased how he is using it to track his stuff, and i thought it to be so cool if i can do it too, so I began searching… later, here I am. Challenges I tried my best to make this as best i can, ngl I kinda tripped, and hit so many walls, at some point I was about to give up, but nah, I was more determined to complete it. I watched few HTML videos and CSS workaround, as i learned them through this project too, I learned a lot of stuff, I do not regret it, And the java-script was so hard to learn with my studies and in this short amount of time, that i must day i used AI to get me through it. Happy? Yeah I am so happy, with all I could do I wish i could do more, but as ever I’m not giving up. I am so happy about it, also when i discussed it with my cousin and he was like he wanted to track his water intake, it was hard for him. And i instantly knew, I can do it and I might can help him too. NOTE: I uses a NFC sticker on the objects, for example; water bottle, where the user can scan it whenever he can log his intake, and I have shared the link to where the person can use it, I am sorry not everyone can get a sticker, but I can make sure if they do have it it is most best UX for them. Otherwise, I have added an approach to to manually log the intake, Since, it is suppose to be an app and i haven’t yet made it an app, so i deployed it on pythonanywhere you can try out manual logging into my db. but as soon as the project is completed i will produce it such way the users have their local db to store their intake which is when a mobile app comes in. This a WIP PROJECT and I have so many things in mind to add, as I progress, lets hope I can do it, I believe i can do more pages faster as I have whole workflow in my head. Thank you for reading it this farrrr, arigato gozaimasu.
A NFC tag tracker app, it is on the web right now, for designing and prototyping purpose, although I have written much greater detail in my previous ship, this is just a contiuation to my last ship. So, from the previous feedback, I have fixed few thing worked more on the representation and then also added a instruction page to the routes. I want to say I am happy with where I have reached as said in my previous dev-log, I have decided to get this project a halt, due to other responsibilities and priorities. I wanted to do more than that, but I am glad with whatever I learned along the way, it was all fun. As of now it is still not a native application rather a web hosted testing prototype, you can use the graphs and toggle option to change option, and yeah for now i haven’t yet added different user option, although I started with it. I might be signing off after this, would try to comeback but till then, may everyone do well in anything they do, I would still like to receive feedback, and yeah Ik I have sm things in mind to do and add, but yet again sadly it is kinda hard for me as of now....
|
1793005019.9099567
|
1793091419.9099567
|
|
44193
|
FFEP (Fraud for educational purposes) by @Lazyllam FFEP (Fraud for educational purposes) by @Lazyllama | Stardance...
|
Lazyllama
|
0
|
70.97
|
0
|
[]
|
[{"post_id": 41289, "ts": "202 [{"post_id": 41289, "ts": "2026-08-05T12:40:50Z", "hours": 70.9708, "text": "fsq dont ban pls thank"}]...
|
Title: FFEP (Fraud for educational purposes) by @L Title: FFEP (Fraud for educational purposes) by @Lazyllama | Stardance
Devlogs:
fsq dont ban pls thank...
|
1792911147.0396564
|
1793775147.0396564
|
|
19818
|
Circuitel by @Thepdi | Stardance
|
Thepdi
|
0
|
70.94
|
0
|
[]
|
[{"post_id": 80710, "ts": "202 [{"post_id": 80710, "ts": "2026-10-18T16:14:29Z", "hours": 10.1894, "text": "I made the mobile view, the website is responsive now! I started the live notifs part, added the reset password feature, and only need to add the angular part for the live notifs to work, and then design them! Next week most likely the project will be pushed to production!"}, {"post_id": 77932, "ts": "2026-10-08T20:39:07Z", "hours": 9.6656, "text": "I have worked on the overall design and added the circuit time form, you now can add record times to any circuit based on a car! Still need to add some things on the display part, and resolve live notifs and the admin dashboard. Getting there!"}, {"post_id": 75976, "ts": "2026-10-01T19:56:51Z", "hours": 10.9531, "text": "I started designing the front-end, added pagination and search on /circuits and on /cars, will stick a bit on the design part, then get to add circuit time, leaderbord of friends, live notifs, and the symfony admin dashboard"}, {"post_id": 72797, "ts": "2026-09-23T19:12:04Z", "hours": 9.9614, "text": "Created the add car feature, update car feature & everything that has a relation with the friend requests. I know get along way more with Angular, and get a little bit of happiness from it, still a lot to learn."}, {"post_id": 68858, "ts": "2026-09-15T21:46:44Z", "hours": 12.3469, "text": "Started developing the angular part, it’s cruel, I got so many errors, and also the learning path I think is at like 85 degrees, anyways I think at least the profile part is done(without symfony tests), nothing pretty still"}, {"post_id": 65049, "ts": "2026-09-09T21:39:15Z", "hours": 13.1917, "text": "I worked so much on the API side, I added the CarController, ProfileController, ResetPassword feature, and all type of things, but most important the login request-response works, the user is authenticated and the refresh-token works. Still a lot to do, like write tests, the overall design, and most of the angular part:))))"}, {"post_id": 58461, "ts": "2026-08-30T21:34:15Z", "hours": 4.6281, "text": "Hello, this is an time circuit tracker app, it is based on Symfony as the REST API and on Angular as the SPA, it will save a users track time. It will many cool features like JWT auth, private chats between friends, and many more. I will do my best, because I want this app to check all the points for a php junior job. Have a nice day! Will keep up with updates."}]...
|
Title: Circuitel by @Thepdi | Stardance
Devlogs:
Title: Circuitel by @Thepdi | Stardance
Devlogs:
Hello, this is an time circuit tracker app, it is based on Symfony as the REST API and on Angular as the SPA, it will save a users track time. It will many cool features like JWT auth, private chats between friends, and many more. I will do my best, because I want this app to check all the points for a php junior job. Have a nice day! Will keep up with updates.
I worked so much on the API side, I added the CarController, ProfileController, ResetPassword feature, and all type of things, but most important the login request-response works, the user is authenticated and the refresh-token works. Still a lot to do, like write tests, the overall design, and most of the angular part:))))
Started developing the angular part, it’s cruel, I got so many errors, and also the learning path I think is at like 85 degrees, anyways I think at least the profile part is done(without symfony tests), nothing pretty still
Created the add car feature, update car feature & everything that has a relation with the friend requests. I know get along way more with Angular, and get a little bit of happiness from it, still a lot to learn.
I started designing the front-end, added pagination and search on /circuits and on /cars, will stick a bit on the design part, then get to add circuit time, leaderbord of friends, live notifs, and the symfony admin dashboard
I have worked on the overall design and added the circuit time form, you now can add record times to any circuit based on a car! Still need to add some things on the display part, and resolve live notifs and the admin dashboard. Getting there!
I made the mobile view, the website is responsive now! I started the live notifs part, added the reset password feature, and only need to add the angular part for the live notifs to work, and then design them! Next week most likely the project will be pushed to production!...
|
1792515242.2512953
|
1793120042.2512953
|
|
3751
|
MAV by @baconwaffledonut | Stardance
|
baconwaffledonut
|
1
|
70.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-03T23:38:23Z", "hours": 70.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a basic game engine in Rust and Vulkan, doesn’t do much other than render an object ten times in a row. It does have movement support about the camera along with rotation of the camera allowing you to move around the scene. It was of course very challenging to get to this point and I had to reference a variety of like wiki’s and documents because none of it was very clearly explained in one place, and Vulkan is a low profile API where you need to code eveything. Anyways I had a lot of fun writing it, learned a lot about how it works this time as well.", "repo": "https://github.com/BaconWaffleDonut/MAV/tree/master", "demo": "https://youtu.be/2d5tLUQpuWg"}]...
|
[{"post_id": 76561, "ts": "202 [{"post_id": 76561, "ts": "2026-10-03T23:34:25Z", "hours": 3.1708, "text": "Very last devlog, just added some finishing touches, tried to get LOD’s working but they still appear too close to the camera. Yeah that’s really it, have a good rest of the year :3"}, {"post_id": 33779, "ts": "2026-07-23T23:26:07Z", "hours": 2.8714, "text": "Finally got the movement system for the camera all smoothed out. Now it moves relative to the direction of the camera instead of along the world grid. Also smoothed out the motion."}, {"post_id": 33293, "ts": "2026-07-23T02:35:22Z", "hours": 6.8494, "text": "Finally manage to get rotation properly implemented and bound to various keys. Still need to change the movement system so that the camera axis rotates with the camera instead of being fixed to the same rotational state of the world."}, {"post_id": 23910, "ts": "2026-07-07T03:36:54Z", "hours": 3.6447, "text": "Well I finally managed to fix the memory leak somehow, currently it only supports a single model however my next goal is to add support for different models. Currently it can change the number of models displayed on screen at once along with the brightness of each model."}, {"post_id": 23289, "ts": "2026-07-06T04:54:09Z", "hours": 8.3117, "text": "I replaced my code for allocating buffer memory using vk-mem-rs. Still trying to track down the memory leak. Now I need to fix the rendering issues as something happened when switching the buffer systems out causing the brightness to significantly decrease and rendering to be locationally based on the cursor for some reason, and also now it would require a seizure warning for any video/gif which is suboptimal. Only during closing the application does brightness return to expected ranges as seen in photo below."}, {"post_id": 17252, "ts": "2026-06-27T23:34:59Z", "hours": 1.8019, "text": "It finally runs with no real errors this time and produces expected behavior. Next I want to figure out how to change the brightness with a key input."}, {"post_id": 16719, "ts": "2026-06-27T05:03:58Z", "hours": 7.22, "text": "I finally got it to run and render more than one frame before crashing. Now I just need to figure out how to get it to render an actual image. Probably just messed up a section of the code."}, {"post_id": 15974, "ts": "2026-06-25T22:54:22Z", "hours": 5.9689, "text": "I have no idea how to fix this error. I have tried not initializing sync objects, changing the order in which functions are initialized. Maybe its not working because of an empty field somewhere…"}, {"post_id": 15427, "ts": "2026-06-25T02:14:58Z", "hours": 2.0947, "text": "Code is running but now I have a segfault error"}, {"post_id": 14923, "ts": "2026-06-24T07:05:22Z", "hours": 11.3683, "text": "The majority of the code is ready to run… just three more errors that I spent a few hours on remain… At least I think it was a few hours, might have been just one or two…"}, {"post_id": 13934, "ts": "2026-06-22T21:09:55Z", "hours": 9.9392, "text": "Created a ton of functions. Still just boilerplate code that I eventually want to replace a lot of the hardcoded configs with variables for an eventual config file. I managed to extract a few variables that get reused consistently into an impl for a single write/ multiple reader structure because one of them should only be created once. Other than that I am relearning why I didn’t really do much with vulkan… Well time to go code some more :3"}, {"post_id": 3232, "ts": "2026-06-06T01:56:45Z", "hours": 2.4022, "text": "Worked on testing imports from other files. Setup some guidelines for the main video engine. Created a bunch of functions for use in the main function for the engine, still empty. Next comes the fun part of trying to figure out the actual code…"}, {"post_id": 1132, "ts": "2026-06-02T23:36:52Z", "hours": 2.7244, "text": "Got a simple window created for testing, now onto Vulkan…"}, {"post_id": 585, "ts": "2026-06-02T02:33:41Z", "hours": 1.4103, "text": "Tried some stuff to get started, really need to find a good tutorial for Ash."}]...
|
Title: MAV by @baconwaffledonut | Stardance
Devlo Title: MAV by @baconwaffledonut | Stardance
Devlogs:
Tried some stuff to get started, really need to find a good tutorial for Ash.
Got a simple window created for testing, now onto Vulkan…
Worked on testing imports from other files. Setup some guidelines for the main video engine. Created a bunch of functions for use in the main function for the engine, still empty. Next comes the fun part of trying to figure out the actual code…
Created a ton of functions. Still just boilerplate code that I eventually want to replace a lot of the hardcoded configs with variables for an eventual config file. I managed to extract a few variables that get reused consistently into an impl for a single write/ multiple reader structure because one of them should only be created once. Other than that I am relearning why I didn’t really do much with vulkan… Well time to go code some more :3
The majority of the code is ready to run… just three more errors that I spent a few hours on remain… At least I think it was a few hours, might have been just one or two…
Code is running but now I have a segfault error
I have no idea how to fix this error. I have tried not initializing sync objects, changing the order in which functions are initialized. Maybe its not working because of an empty field somewhere…
I finally got it to run and render more than one frame before crashing. Now I just need to figure out how to get it to render an actual image. Probably just messed up a section of the code.
It finally runs with no real errors this time and produces expected behavior. Next I want to figure out how to change the brightness with a key input.
I replaced my code for allocating buffer memory using vk-mem-rs. Still trying to track down the memory leak. Now I need to fix the rendering issues as something happened when switching the buffer systems out causing the brightness to significantly decrease and rendering to be locationally based on the cursor for some reason, and also now it would require a seizure warning for any video/gif which is suboptimal. Only during closing the application does brightness return to expected ranges as seen in photo below.
Well I finally managed to fix the memory leak somehow, currently it only supports a single model however my next goal is to add support for different models. Currently it can change the number of models displayed on screen at once along with the brightness of each model.
Finally manage to get rotation properly implemented and bound to various keys. Still need to change the movement system so that the camera axis rotates with the camera instead of being fixed to the same rotational state of the world.
Finally got the movement system for the camera all smoothed out. Now it moves relative to the direction of the camera instead of along the world grid. Also smoothed out the motion.
Very last devlog, just added some finishing touches, tried to get LOD’s working but they still appear too close to the camera. Yeah that’s really it, have a good rest of the year :3
Ships:
I made a basic game engine in Rust and Vulkan, doesn’t do much other than render an object ten times in a row. It does have movement support about the camera along with rotation of the camera allowing you to move around the scene. It was of course very challenging to get to this point and I had to reference a variety of like wiki’s and documents because none of it was very clearly explained in one place, and Vulkan is a low profile API where you need to code eveything. Anyways I had a lot of fun writing it, learned a lot about how it works this time as well....
|
1793004691.9538658
|
1793091091.9538658
|
|
7303
|
chess-engin-c by @Leonhard | Stardance
|
Leonhard
|
1
|
70.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T07:39:08Z", "hours": 70.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Chees-Engin in C. It only lets you play legal moves, and handles all edge chases with Pins, Checks, Chasteling and Blocking. Finding which moves are legal and which illegal, was probably the hardest part about this project, because I do not just use a normal 8 by 8 array for the field but instead a 64Bit int for each piecetype and color where each bit reprecents a square. The bitmanipulation was a nightmare to say the least. The actuall engin itself wasn’t a walk in the park either, but by then I have allready gotten used to it. The projekt is on my Github, but only for LINUX. (Sorry, didn’t really bother making a Windows version, because I personaly avoid using Windows at all cost)", "repo": "https://github.com/Leonhard4321/chess-engin-c", "demo": "https://github.com/Leonhard4321/chess-engin-c/releases/tag/v1.0.0"}]...
|
[{"post_id": 23343, "ts": "202 [{"post_id": 23343, "ts": "2026-07-06T07:23:34Z", "hours": 5.0869, "text": "I addet a negative maximum funktion, with some other optimizations. The time spent to make the engin better isn’t addjustivied. I am gona leave it just like it is. It is better than me and that is good enough."}, {"post_id": 22004, "ts": "2026-07-04T07:19:23Z", "hours": 4.3028, "text": "I addet dynamic depth, so the fewer pieces are on the board the deeper the position gets analyzed."}, {"post_id": 21498, "ts": "2026-07-03T14:14:18Z", "hours": 4.3489, "text": "After some big optimizations, like moveordering and alpha-beta pruning, we are at a point where the engin actually beginns to get good. This engin is now comportable able to beat me. (I am about 1400 elo). It struggels a bit on endgames, and log-term development. I wasn’t really able to get a high depthed search, like other engins have it. I will have to take a good look why that might be. Thats gona be my next step."}, {"post_id": 21357, "ts": "2026-07-03T07:49:08Z", "hours": 6.4661, "text": "First test on the engin. I use a recursive minimax funktion. Look a couple of moves into the futer and evaluate the positions. The bot already understands the idea of captures. But it has no positional play at all. It is also terreable at checkmating."}, {"post_id": 18638, "ts": "2026-06-29T20:38:27Z", "hours": 2.1597, "text": "I am not really sure how to structure my next few blogs. It will defenitly take 20h+ until the engin is somewhere playable. And I don’t want to log such a long time in on go. So I think I am just gona give small updates inbetween to show the inside of a chess engin. The codepiece here is a basic evaluation funktion. It tells me exaclty which side is better at any given point. Although right now it is only counting material and not the quallity of the pieces that they contribute in the game."}, {"post_id": 18507, "ts": "2026-06-29T17:54:39Z", "hours": 0.8172, "text": "Now with all of the groundlaying rules done, it is time to focus on the bot. I have already worked on the way the bot is gona be implemented. But the implementation itsself is still the biggest thing to work on. Right here you can see a bot that does a random legal move on the board. I didn’t even bother to check what elo this would be, but i would assume 150 to 250 elo. Next I will work on a evaluation funktion, which should be pretty easy."}, {"post_id": 18462, "ts": "2026-06-29T16:57:40Z", "hours": 6.8078, "text": "This was the most frustrating error jet. Took me forever to figur out what even was going on. And I took me even longer fixing it. So what keept happening was this: Every time we look for a mate we simulate all of the opponents moves If a pawn on the second or seventh rankt(one square away from queening) was just sitting idle the programm simulated the promotion Because the promotion was just a simple scanf the complete programm came to a halt. To fix this I have implemented a way to queen as user and also, one for the Bot, later down the line. Although the bot one only queens for now. I am not sure jet if it is even nessecery to programm it to promot to any other piece, because it is almost never really the only winning idea."}, {"post_id": 16271, "ts": "2026-06-26T13:39:25Z", "hours": 1.8681, "text": "Checkmate has been addet, also the ability to draw, by stalemate and the 50 move rule. I won’t do the draw for insuficient material jet, maybe later down the road. But while testing I found a terrific but with pawnpromotion, It sometimes giliches out and ask you for a piece even if your not on the first or eightest rang."}, {"post_id": 16219, "ts": "2026-06-26T10:59:34Z", "hours": 1.1925, "text": "I honestly expected the castling to be more complicated. But it is done now. With all rules implemented. No castling, afte moving the rook, the king, or if the king is in check, or if a rook has been taken. There is only one thing missing to make this game really playable, in a Player vs Player sense. Checkmate!"}, {"post_id": 16181, "ts": "2026-06-26T09:12:58Z", "hours": 1.6783, "text": "Got it! Now blocks, checks, pins, and captures work. Everything works. The only missing thing is chastling wich might be a bit tricky to implement. The way the code works now, is the following: Every possable move from a piece gets calculated Every possition after the move gets looked at If the king is attacked in any possition delet the move from the possable moves. This may not ultimatle be the fasters way, but it’s fast enough for now. I might implement a even faster algorithem in the futur, but I like this one because it is just so clean and readable."}, {"post_id": 16140, "ts": "2026-06-26T07:22:38Z", "hours": 0.8508, "text": "With the new logic it was a easy to add the legal moves for the king back in. Now lets get back at tackeling the blocking and check, and block mechanics."}, {"post_id": 16116, "ts": "2026-06-26T06:25:44Z", "hours": 1.2175, "text": "All pieces are back to the right way the shouldm except the king. I know have some super clean funktions, that should make position calculation extreamly fast. I also heard about some optimizations with shifting bit array, to make the movecalculation for a sigle piece even faster. Not really shure how that works jet, but I am planing on implementing that to in the futer. The faster my legal moves calculator is now, the better the engin is gona get later on."}, {"post_id": 15912, "ts": "2026-06-25T21:18:34Z", "hours": 7.3344, "text": "I realized that the way my current isKingInCheck funktion works, would just be way to slow, to make a powerfull engin later on. I did a quick search on the internet, and it turns out I need to split between legal and pseudo legal moves. Where the pseudo legal moves, disregard checks. So I started rewriting the last 400 lines of code. There is not much to show here."}, {"post_id": 7597, "ts": "2026-06-12T18:21:37Z", "hours": 0.4103, "text": "Finally got the check logic on the king correctly. You are now unable to move a piece, if you are in check. Of course the blocking mecaniks are still missing. And I also should start working on the castlingmechaniks. But then I would me pretty much ready to start on the actual engin."}, {"post_id": 7580, "ts": "2026-06-12T17:51:04Z", "hours": 0.4639, "text": "Quick update, I solved the file capturing error of pawns. It was only a wrong < and > sign."}, {"post_id": 7367, "ts": "2026-06-12T08:39:37Z", "hours": 6.1, "text": "I am slowly getting the realization, how hard this actually gone be. Protected pieces now can’t be captured by the king. But I am still struggeling with the concept of check. It only works for pawns currently, there seems to be a big bug somewhere in the code. And pawns are able to capture from file a to h."}, {"post_id": 6263, "ts": "2026-06-10T15:03:30Z", "hours": 4.7922, "text": "Addet the complete movementlogic ecxept for the king. Even promotions and the sneaky en passant. The kings still proves to be a bit of a challange. But I will get it soon"}, {"post_id": 5722, "ts": "2026-06-09T16:52:46Z", "hours": 2.4717, "text": "I started on some legal checks for the pawn, rook and knight for now. Everything moves as expected. Even with captures and pieces of the own color blocking you. I have also added the blue indecators witch squares are allowed and witch are blocked. The other pieces will come soon."}, {"post_id": 5616, "ts": "2026-06-09T14:12:19Z", "hours": 4.8439, "text": "The piece moving logic is now implemented. You could now theoreticly play the game(exept for promoting pawns). But there are still no legal checks, this will be the next thing to add."}, {"post_id": 4431, "ts": "2026-06-07T19:09:00Z", "hours": 3.5058, "text": "I have addet some logic to mark specific squares if they have a piece on them, and am currently working on a way to move pieces across the board, for storring the possitions of pieces I have decidet to use bitmaps. They are basicly just a long int with 64 bits, each representing one square, one bitmap for every piece type. This may seem slow at the beginning but this will probably be faster for the engin itsself later on."}, {"post_id": 4143, "ts": "2026-06-07T10:50:19Z", "hours": 3.51, "text": "i am able now to display the board and the pieces whereever i want."}]...
|
Title: chess-engin-c by @Leonhard | Stardance
Dev Title: chess-engin-c by @Leonhard | Stardance
Devlogs:
i am able now to display the board and the pieces whereever i want.
I have addet some logic to mark specific squares if they have a piece on them, and am currently working on a way to move pieces across the board, for storring the possitions of pieces I have decidet to use bitmaps. They are basicly just a long int with 64 bits, each representing one square, one bitmap for every piece type. This may seem slow at the beginning but this will probably be faster for the engin itsself later on.
The piece moving logic is now implemented. You could now theoreticly play the game(exept for promoting pawns). But there are still no legal checks, this will be the next thing to add.
I started on some legal checks for the pawn, rook and knight for now. Everything moves as expected. Even with captures and pieces of the own color blocking you. I have also added the blue indecators witch squares are allowed and witch are blocked. The other pieces will come soon.
Addet the complete movementlogic ecxept for the king. Even promotions and the sneaky en passant. The kings still proves to be a bit of a challange. But I will get it soon
I am slowly getting the realization, how hard this actually gone be. Protected pieces now can’t be captured by the king. But I am still struggeling with the concept of check. It only works for pawns currently, there seems to be a big bug somewhere in the code. And pawns are able to capture from file a to h.
Quick update, I solved the file capturing error of pawns. It was only a wrong < and > sign.
Finally got the check logic on the king correctly. You are now unable to move a piece, if you are in check. Of course the blocking mecaniks are still missing. And I also should start working on the castlingmechaniks. But then I would me pretty much ready to start on the actual engin.
I realized that the way my current isKingInCheck funktion works, would just be way to slow, to make a powerfull engin later on. I did a quick search on the internet, and it turns out I need to split between legal and pseudo legal moves. Where the pseudo legal moves, disregard checks. So I started rewriting the last 400 lines of code. There is not much to show here.
All pieces are back to the right way the shouldm except the king. I know have some super clean funktions, that should make position calculation extreamly fast. I also heard about some optimizations with shifting bit array, to make the movecalculation for a sigle piece even faster. Not really shure how that works jet, but I am planing on implementing that to in the futer. The faster my legal moves calculator is now, the better the engin is gona get later on.
With the new logic it was a easy to add the legal moves for the king back in. Now lets get back at tackeling the blocking and check, and block mechanics.
Got it! Now blocks, checks, pins, and captures work. Everything works. The only missing thing is chastling wich might be a bit tricky to implement. The way the code works now, is the following: Every possable move from a piece gets calculated Every possition after the move gets looked at If the king is attacked in any possition delet the move from the possable moves. This may not ultimatle be the fasters way, but it’s fast enough for now. I might implement a even faster algorithem in the futur, but I like this one because it is just so clean and readable.
I honestly expected the castling to be more complicated. But it is done now. With all rules implemented. No castling, afte moving the rook, the king, or if the king is in check, or if a rook has been taken. There is only one thing missing to make this game really playable, in a Player vs Player sense. Checkmate!
Checkmate has been addet, also the ability to draw, by stalemate and the 50 move rule. I won’t do the draw for insuficient material jet, maybe later down the road. But while testing I found a terrific but with pawnpromotion, It sometimes giliches out and ask you for a piece even if your not on the first or eightest rang.
This was the most frustrating error jet. Took me forever to figur out what even was going on. And I took me even longer fixing it. So what keept happening was this: Every time we look for a mate we simulate all of the opponents moves If a pawn on the second or seventh rankt(one square away from queening) was just sitting idle the programm simulated the promotion Because the promotion was just a simple scanf the complete programm came to a halt. To fix this I have implemented a way to queen as user and also, one for the Bot, later down the line. Although the bot one only queens for now. I am not sure jet if it is even nessecery to programm it to promot to any other piece, because it is almost never really the only winning idea.
Now with all of the groundlaying rules done, it is time to focus on the bot. I have already worked on the way the bot is gona be implemented. But the implementation itsself is still the biggest thing to work on. Right here you can see a bot that does a random legal move on the board. I didn’t even bother to check what elo this would be, but i would assume 150 to 250 elo. Next I will work on a evaluation funktion, which should be pretty easy.
I am not really sure how to structure my next few blogs. It will defenitly take 20h+ until the engin is somewhere playable. And I don’t want to log such a long time in on go. So I think I am just gona give small updates inbetween to show the inside of a chess engin. The codepiece here is a basic evaluation funktion. It tells me exaclty which side is better at any given point. Although right now it is only counting material and not the quallity of the pieces that they contribute in the game.
First test on the engin. I use a recursive minimax funktion. Look a couple of moves into the futer and evaluate the positions. The bot already understands the idea of captures. But it has no positional play at all. It is also terreable at checkmating.
After some big optimizations, like moveordering and alpha-beta pruning, we are at a point where the engin actually beginns to get good. This engin is now comportable able to beat me. (I am about 1400 elo). It struggels a bit on endgames, and log-term development. I wasn’t really able to get a high depthed search, like other engins have it. I will have to take a good look why that might be. Thats gona be my next step.
I addet dynamic depth, so the fewer pieces are on the board the deeper the position gets analyzed.
I addet a negative maximum funktion, with some other optimizations. The time spent to make the engin better isn’t addjustivied. I am gona leave it just like it is. It is better than me and that is good enough.
Ships:
I made a Chees-Engin in C. It only lets you play legal moves, and handles all edge chases with Pins, Checks, Chasteling and Blocking. Finding which moves are legal and which illegal, was probably the hardest part about this project, because I do not just use a normal 8 by 8 array for the field but instead a 64Bit int for each piecetype and color where each bit reprecents a square. The bitmanipulation was a nightmare to say the least. The actuall engin itself wasn’t a walk in the park either, but by then I have allready gotten used to it. The projekt is on my Github, but only for LINUX. (Sorry, didn’t really bother making a Windows version, because I personaly avoid using Windows at all cost)...
|
1793001010.9056516
|
1793865010.9056516
|
|
12084
|
fraktalized by @swedishsplidney | Stardance
|
swedishsplidney
|
1
|
70.0
|
1361
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-02T06:36:27Z", "hours": 70.0, "multiplier": 19.43, "payout": 1361, "blessing": "neutral", "text": "fraktalized ship: fraktalized is an an open-source, cross-platform, ultra smooth real time fractal explorer built using a hybrid architecture of Qt6 (QML/C++) and openGL (GLSL 330 core / 4.3 compute shaders). fraktalized currently has 10 fractal sets: mandelbrot set: the classic fractal set julia set: cool swirly stuff, complete with adjustable constant coords burning ship set: cool pointy stuff newton set: kinda spidery looking buddhabrot: like the mandelbrot but galaxy looking anti-buddhabrot: reverse buddhabrot barnsley fern: looks very naturey mandelbulb: like the mandelbrot but 3d menger sponge: cube, but with infinite* surface ar a icebox: spiky box! there is both a set of 3 precompiled binaries on the github and a demo video: https://youtu.be/x9lH_pPzvbw", "repo": "https://github.com/swedishsplidney/fraktalized", "demo": "https://github.com/swedishsplidney/fraktalized/releases"}]...
|
[{"post_id": 20591, "ts": "202 [{"post_id": 20591, "ts": "2026-07-02T06:34:20Z", "hours": 0.7767, "text": "extra ui tweaks and readme updates added some images of 3d fractals to the readme, did some general ui tweaks, and some idiot proofing now its time to ship!!!"}, {"post_id": 20559, "ts": "2026-07-02T05:22:07Z", "hours": 4.9961, "text": "probably the final commit :o most of this was spent idiot proofing, going through all my code and making sure that everything works well and actually makes sense i also updated the tutorial to be a bit better a major amount of time was spent figuring out how to get windows to actually compile i swear windows is the bane of my entire existence its not reflected in the devlog hours, but i did also make a demo video to show off some of the features mystery link other than that, it was mostly ui and readme updates :)"}, {"post_id": 19733, "ts": "2026-07-01T03:52:28Z", "hours": 9.76, "text": "i set up a full tutorial system the hard part was doing the whole thing where it darkens everywhere except the thing the tutorial is yapping about… also, right now, the tutorial is really really easy to break, so i might have to implement some idiot proofing or something to be honest, adding the whole darkening thing was really simple, but actually getting it to work was really annoying for some reason. it essentially just gets the xy coord for each corner of the specified element, and then makes a dark block everywhere except inside those 4 corners. also, i made it so the tutorial saves to the same json file as the preset manager, so that you only have to do the tutorial one time and it doesnt just get in your way every single time you open it. aside from that, most of this time was spent trying to figure out how to get it to automatically build on github when i push a release. i did this successfully for my other project, but the problem so far has been linking the qml for the binaries on the different platforms. specifically, windows just really really doesnt want to behave, its starting to feel like getting a discord mod to eat anything other than gamersupps and pizza rolls overall, maybe getting close to shipping? it honestly just depends on how much more features and idiot proofing i want to add if this sounds interesting, check out (and star ) the repo here"}, {"post_id": 14222, "ts": "2026-06-23T07:20:06Z", "hours": 8.5239, "text": "3d wasd controls (wowie zowie) the math for this was super hard, especially because i want it to work alongside with the other classic orbit style controls lol i ended up adding a toggle in the sidebar, which felt like the cleanest way to do it, but did mean doing more qml also, i pretty much had to guess when setting up all my vectors so i spent like 15 presidential terms messing around with positives and negatives and 1.0f / 0.0f everywhere until doing stuff in the right directions actually did the right thing, which was hard also had to implement auto horizon correction so things d also added some live 3d settings, which took a while, but now theres a live slider for both the mandelbulb power (exponent), and the brightness (which was hard) and, theres now a math section in the readme, which i spent a lot of time pondering while making, but if you’re at all, check out the “mathy information” section of the readme https://github.com/swedishsplidney/fraktalized (also star the repo ) exploring the mandelbulb in wasd mode genuinely feels like exploring an alien planet in a spaceship, lowk super fun"}, {"post_id": 11771, "ts": "2026-06-19T04:47:05Z", "hours": 8.7492, "text": "3d is finally working!!!!! i have been having an epic samurai battle against opengl and 3d fractal math for what feels like forever, but it finally works, and I have a working 3d mandelbulb explorer!!! i have actually been working on getting 3d working for the past multiple devlogs, it just took me sooo incredibly long to actually figure it out that i never really mentioned it. the longest step was figuring out the controls. when i first started working on the 3d mode, then it was literally just a cube, and i had to figure out a good way to be able to rotate it the hard part wasn’t even trying to figure out how to do the math to rotate the vertices, the hard part was trying to figure out how the thing should actually rotate what i figured out how to do is having an orbit style camera, where dragging side to side rotates the model along its own local yaw, and then dragging up and down changes the camera’s global pitch. this way the model’s roll never changes (because that makes the model look tilted or skewed). i had to spend an embarassingly long amount of time trying to figure the logic of an orbital camera… the camera is also slerped (like lerping but 3d) so it feels smooth color mappping on the 3d was actually surprisingly easy, i just did it in a very similar way to the 2d escape time ones, except with an extra dimension (its not as hard as it sounds) one other major change was when i added the ability to add and remove gradient stops. this way, instead of always having 4 gradient stops, you can have anywhere from 2 to 16 stops, for more customizeability. also, the readme is updated, go check it out! (and star the repo ) https://github.com/swedishsplidney/fraktalized below: video demonstrating the 3d and camera system"}, {"post_id": 10469, "ts": "2026-06-17T06:25:16Z", "hours": 7.9178, "text": "added iterative function system fractals basically, iterative function fractals are fractals that start at a set point, then repeatedly apply the same affine transformations (scaling, rotating, shifting), making an infinitely repeating, self-same fractal. as far as actually getting this setup and working, i had to make a whole new compute shader that involves a lot of math and for loops to iterate forever getting ifs fractals to render was a particular challenge, and i almost exploded my gpu and accidentally caused a vram cache overflow causing my display output to break. in the end, it turns out the trick was to not send 4,000,000 worker threads to the gpu all at once, and to do them 3-4 at a time also finally got working on the whole 3d system, which will likely take forever, and completely does not work right now, but hopefully i will have figured out how in the world to get working 3d stuff by the next devlog 🙏 check out the github! -> https://github.com/swedishsplidney/fraktalized image: barnsley fern, rendered in 4k"}, {"post_id": 9130, "ts": "2026-06-15T08:45:47Z", "hours": 6.9228, "text": "added support for trajectory based fractals most people know the normal fractals (the ones ive covered so far), such as the mandelbrot and julia sets, that test wether or not a point escapes and maps how long it takes to escape trajectory fractals look really cool, and the difference is that they map the trajectory that 𝑧 takes on its way out, while incrementing a counter for every pixel it steps on. getting this to work was a lot of work, and required to write a whole new shader file from scratch, except instead of a .frag/.vert combo, it was a compute shader (.glsl). instead of simply running a loop and writing color data to each independent pixel like with the escape-time fractals do, the trajectory shader has to pick a random (x, y) starting coord, and then track its orbit across the complex plane, writing data to random pixels as it goes. this required me to use atomics, because if 2 orbits cross, instead of one overwriting each other, you have to use imageAtomicAdd() to make sure that the brightness stacks up. one other issue was that at first it was super grainy, which was fixed by assigning each gpu thread 50 random sampled to increase detail substantially. i also nearly exploded my gpu because i accidentally had the render system run 50+ compute sequences at the same time, so i now have each compute wait for the one before it to finish in other happenings, there is now a preset feature that writes your current color setup set, zoom, center, etc. to a JSON file to be loaded later also added the newton set, but its a less interesting escape-time fractal, so not covered in as much detail image: buddhabrot set, rendered at 4k"}, {"post_id": 7949, "ts": "2026-06-13T08:09:58Z", "hours": 5.9558, "text": "added the burning ship fractal, anti aliasing, and completely overhauled the color system to use a gradient input instead of one color. burning ship fractal: so the burning ship fractal is made when you take the mandelbrot equation, but you take the absolute value of the real and imaginary parts before squaring, basically destroying the symmetry: 𝑧ₙ₊₁ = (|𝑅𝑒(𝑍ₙ)| + 𝑖|𝐼𝑚(𝑍ₙ)|)² + 𝐶 this makes it look super duper cool (as seen in the image below) gradient-based color mapping so before, the color was just calculated using one color tint and boosting brightness quadratically near the edges. now, it takes in a gradient (calculated between 4 color inputs), and does the same color mapping but essentially moves what color it uses as the iterations increase. the hard part is figuring out how to get a good input system in qml with this, but I was able to do it using some colordialogues and a lot of trial and error. the new color input system is kinda like creating a gradient in photoshop or illustrator, with 4 little handles that you can drag across and change their colors. anti aliasing also added anti aliasing, or more specifically, ssaa (super sampling anti aliasing), with a selector to choose between off, 2x, and 3x so basically it renders the entire fractal at a higher resolution (2x or 3x) and then averages the color of every pixel block (2x2 or 3x3 respectively) and then displays that. this results in a much, much smoother image at the cost of much higher resource usage. while i was screwing around with dynamic resolutions, i also added a resolution slider to change the rendered resolution to anywhere from 25 to 150% of the window resolution. turning it up past 100% basically just gives the ssaa architecture more information to work with, making it even smoother my graphics card isnt very powerful and it basically stays pinned at 99% usage and 100% clock when i have anti aliasing turned on and the iterations above like 200. image: burning ship fractal, rendered at 4k with 150% resolution scale and 3x ssaa"}, {"post_id": 6713, "ts": "2026-06-11T07:42:55Z", "hours": 4.1331, "text": "now has a render to file feature basically you just import a custom resolution and it takes your current center and renders at that resolution with your current parameters. the hard part is that it uses a completely different framebuffer object from the regular viewport. while testing i did almost explode my gpu when pushing the resolution to almost 32k, which is kinda unreasonable, but this was a good opportunity to add a tiled render system basically it just splits up the image into 2000x2000 pixel sections and renders them, and then it does some math to position it the weird thing is that opengl is kinda goofy and likes to mirror stuff for some reason (literally no idea why) so theres some math to render it in reverse (which means that its actually correct) also increased the rendering to 64 bit, meaning it is now 536,870,912 times more accurate compared to the 32 bit one, and also means you can zoom in more than twice as far with better quality, but it is much more gpu intensive… this image is one of the cooler ones i rendered out at 4k, it kinda looks like colliding galaxies or something"}, {"post_id": 6139, "ts": "2026-06-10T10:13:47Z", "hours": 6.7264, "text": "is now fully interactive and honestly feels super great, especially compared to my last devlog where it was static and unchanging entirely added working real-time render parameters such as panning and zooming with mouse, and custom iteration setup and color setup on the sidebar. lots and lots and lots of quality of life features, such as: the reset button for if you get lost adjustable iteration slider min/max direct text enter for iterations hideable iteration min/max menu camera smoothing color clamping so it doesnt look deep fried also added the julia set (which is what is in the image) so basically, both the mandelbrot and julia sets are the same quadratic recurrence relation on the complex plane: 𝑧ₙ₊₁ = (𝑧ₙ)² + 𝑐 the main difference is that you start at the origin (𝑧₀ = 0) and change the constant 𝑐 for every single pixel on the screen based on its coordinates, but with the julia set the constant 𝑐 is the same everywhere, and the starting point 𝑧₀ changes based on the pixel’s coordinate, so you are testing how different starting points react to the same gravitational pull of 𝑐. the nice thing is that you can change the constant 𝑐 in the julia set, and completely change how the fractal looks, so i added that as an input field too looks really really cool lowk"}, {"post_id": 4855, "ts": "2026-06-08T12:00:00Z", "hours": 5.5808, "text": "working mandelbrot fractal rendering through opengl!!!!! using qt/qml and raw opengl shaders together was a mistake they really dont like working together and i had to spend 3 straight hours (its 5:42am at the time of this devlog) debugging an eternal tug of war between qt and opengl because qt kept overwriting what i wanted to happen the worst part is that an opengl fragment shader cant really debug to the log so if something is on fire over there i just kinda have to guess to fix it eventually i just gave up and switched to framebuffer objects, which i lowk should have done from the start the funnest part was actually writing the equations for the mandelbrot set lol (it also looks super pretty): so basically the Mandelbrot set is the set of all complex parameters 𝑐 ∈ ℂ for which the orbit of 𝑧₀ = 0 under quadratic recurrence remains bounded. in the shader, i just separate its multiplication into real and imaginary components: Re(𝑧ₙ₊₁) = 𝑥² + 𝑦² + Re(𝑐) Im(𝑧ₙ₊₁) = 2𝑥𝑦 + Im(𝑐) also infinity is impossible so the iterations are capped at 100 sorry if this was too nerdy or long lmao"}]...
|
Title: fraktalized by @swedishsplidney | Stardance Title: fraktalized by @swedishsplidney | Stardance
Devlogs:
working mandelbrot fractal rendering through opengl!!!!! using qt/qml and raw opengl shaders together was a mistake they really dont like working together and i had to spend 3 straight hours (its 5:42am at the time of this devlog) debugging an eternal tug of war between qt and opengl because qt kept overwriting what i wanted to happen the worst part is that an opengl fragment shader cant really debug to the log so if something is on fire over there i just kinda have to guess to fix it eventually i just gave up and switched to framebuffer objects, which i lowk should have done from the start the funnest part was actually writing the equations for the mandelbrot set lol (it also looks super pretty): so basically the Mandelbrot set is the set of all complex parameters 𝑐 ∈ ℂ for which the orbit of 𝑧₀ = 0 under quadratic recurrence remains bounded. in the shader, i just separate its multiplication into real and imaginary components: Re(𝑧ₙ₊₁) = 𝑥² + 𝑦² + Re(𝑐) Im(𝑧ₙ₊₁) = 2𝑥𝑦 + Im(𝑐) also infinity is impossible so the iterations are capped at 100 sorry if this was too nerdy or long lmao
is now fully interactive and honestly feels super great, especially compared to my last devlog where it was static and unchanging entirely added working real-time render parameters such as panning and zooming with mouse, and custom iteration setup and color setup on the sidebar. lots and lots and lots of quality of life features, such as: the reset button for if you get lost adjustable iteration slider min/max direct text enter for iterations hideable iteration min/max menu camera smoothing color clamping so it doesnt look deep fried also added the julia set (which is what is in the image) so basically, both the mandelbrot and julia sets are the same quadratic recurrence relation on the complex plane: 𝑧ₙ₊₁ = (𝑧ₙ)² + 𝑐 the main difference is that you start at the origin (𝑧₀ = 0) and change the constant 𝑐 for every single pixel on the screen based on its coordinates, but with the julia set the constant 𝑐 is the same everywhere, and the starting point 𝑧₀ changes based on the pixel’s coordinate, so you are testing how different starting points react to the same gravitational pull of 𝑐. the nice thing is that you can change the constant 𝑐 in the julia set, and completely change how the fractal looks, so i added that as an input field too looks really really cool lowk
now has a render to file feature basically you just import a custom resolution and it takes your current center and renders at that resolution with your current parameters. the hard part is that it uses a completely different framebuffer object from the regular viewport. while testing i did almost explode my gpu when pushing the resolution to almost 32k, which is kinda unreasonable, but this was a good opportunity to add a tiled render system basically it just splits up the image into 2000x2000 pixel sections and renders them, and then it does some math to position it the weird thing is that opengl is kinda goofy and likes to mirror stuff for some reason (literally no idea why) so theres some math to render it in reverse (which means that its actually correct) also increased the rendering to 64 bit, meaning it is now 536,870,912 times more accurate compared to the 32 bit one, and also means you can zoom in more than twice as far with better quality, but it is much more gpu intensive… this image is one of the cooler ones i rendered out at 4k, it kinda looks like colliding galaxies or something
added the burning ship fractal, anti aliasing, and completely overhauled the color system to use a gradient input instead of one color. burning ship fractal: so the burning ship fractal is made when you take the mandelbrot equation, but you take the absolute value of the real and imaginary parts before squaring, basically destroying the symmetry: 𝑧ₙ₊₁ = (|𝑅𝑒(𝑍ₙ)| + 𝑖|𝐼𝑚(𝑍ₙ)|)² + 𝐶 this makes it look super duper cool (as seen in the image below) gradient-based color mapping so before, the color was just calculated using one color tint and boosting brightness quadratically near the edges. now, it takes in a gradient (calculated between 4 color inputs), and does the same color mapping but essentially moves what color it uses as the iterations increase. the hard part is figuring out how to get a good input system in qml with this, but I was able to do it using some colordialogues and a lot of trial and error. the new color input system is kinda like creating a gradient in photoshop or illustrator, with 4 little handles that you can drag across and change their colors. anti aliasing also added anti aliasing, or more specifically, ssaa (super sampling anti aliasing), with a selector to choose between off, 2x, and 3x so basically it renders the entire fractal at a higher resolution (2x or 3x) and then averages the color of every pixel block (2x2 or 3x3 respectively) and then displays that. this results in a much, much smoother image at the cost of much higher resource usage. while i was screwing around with dynamic resolutions, i also added a resolution slider to change the rendered resolution to anywhere from 25 to 150% of the window resolution. turning it up past 100% basically just gives the ssaa architecture more information to work with, making it even smoother my graphics card isnt very powerful and it basically stays pinned at 99% usage and 100% clock when i have anti aliasing turned on and the iterations above like 200. image: burning ship fractal, rendered at 4k with 150% resolution scale and 3x ssaa
added support for trajectory based fractals most people know the normal fractals (the ones ive covered so far), such as the mandelbrot and julia sets, that test wether or not a point escapes and maps how long it takes to escape trajectory fractals look really cool, and the difference is that they map the trajectory that 𝑧 takes on its way out, while incrementing a counter for every pixel it steps on. getting this to work was a lot of work, and required to write a whole new shader file from scratch, except instead of a .frag/.vert combo, it was a compute shader (.glsl). instead of simply running a loop and writing color data to each independent pixel like with the escape-time fractals do, the trajectory shader has to pick a random (x, y) starting coord, and then track its orbit across the complex plane, writing data to random pixels as it goes. this required me to use atomics, because if 2 orbits cross, instead of one overwriting each other, you have to use imageAtomicAdd() to make sure that the brightness stacks up. one other issue was that at first it was super grainy, which was fixed by assigning each gpu thread 50 random sampled to increase detail substantially. i also nearly exploded my gpu because i accidentally had the render system run 50+ compute sequences at the same time, so i now have each compute wait for the one before it to finish in other happenings, there is now a preset feature that writes your current color setup set, zoom, center, etc. to a JSON file to be loaded later also added the newton set, but its a less interesting escape-time fractal, so not covered in as much detail image: buddhabrot set, rendered at 4k
added iterative function system fractals basically, iterative function fractals are fractals that start at a set point, then repeatedly apply the same affine transformations (scaling, rotating, shifting), making an infinitely repeating, self-same fractal. as far as actually getting this setup and working, i had to make a whole new compute shader that involves a lot of math and for loops to iterate forever getting ifs fractals to render was a particular challenge, and i almost exploded my gpu and accidentally caused a vram cache overflow causing my display output to break. in the end, it turns out the trick was to not send 4,000,000 worker threads to the gpu all at once, and to do them 3-4 at a time also finally got working on the whole 3d system, which will likely take forever, and completely does not work right now, but hopefully i will have figured out how in the world to get working 3d stuff by the next devlog 🙏 check out the github! -> https://github.com/swedishsplidney/fraktalized image: barnsley fern, rendered in 4k
3d is finally working!!!!! i have been having an epic samurai battle against opengl and 3d fractal math for what feels like forever, but it finally works, and I have a working 3d mandelbulb explorer!!! i have actually been working on getting 3d working for the past multiple devlogs, it just took me sooo incredibly long to actually figure it out that i never really mentioned it. the longest step was figuring out the controls. when i first started working on the 3d mode, then it was literally just a cube, and i had to figure out a good way to be able to rotate it the hard part wasn’t even trying to figure out how to do the math to rotate the vertices, the hard part was trying to figure out how the thing should actually rotate what i figured out how to do is having an orbit style camera, where dragging side to side rotates the model along its own local yaw, and then dragging up and down changes the camera’s global pitch. this way the model’s roll never changes (because that makes the model look tilted or skewed). i had to spend an embarassingly long amount of time trying to figure the logic of an orbital camera… the camera is also slerped (like lerping but 3d) so it feels smooth color mappping on the 3d was actually surprisingly easy, i just did it in a very similar way to the 2d escape time ones, except with an extra dimension (its not as hard as it sounds) one other major change was when i added the ability to add and remove gradient stops. this way, instead of always having 4 gradient stops, you can have anywhere from 2 to 16 stops, for more customizeability. also, the readme is updated, go check it out! (and star the repo ) https://github.com/swedishsplidney/fraktalized below: video demonstrating the 3d and camera system
3d wasd controls (wowie zowie) the math for this was super hard, especially because i want it to work alongside with the other classic orbit style controls lol i ended up adding a toggle in the sidebar, which felt like the cleanest way to do it, but did mean doing more qml also, i pretty much had to guess when setting up all my vectors so i spent like 15 presidential terms messing around with positives and negatives and 1.0f / 0.0f everywhere until doing stuff in the right directions actually did the right thing, which was hard also had to implement auto horizon correction so things d also added some live 3d settings, which took a while, but now theres a live slider for both the mandelbulb power (exponent), and the brightness (which was hard) and, theres now a math section in the readme, which i spent a lot of time pondering while making, but if you’re at all, check out the “mathy information” section of the readme https://github.com/swedishsplidney/fraktalized (also star the repo ) exploring the mandelbulb in wasd mode genuinely feels like exploring an alien planet in a spaceship, lowk super fun
i set up a full tutorial system the hard part was doing the whole thing where it darkens everywhere except the thing the tutorial is yapping about… also, right now, the tutorial is really really easy to break, so i might have to implement some idiot proofing or something to be honest, adding the whole darkening thing was really simple, but actually getting it to work was really annoying for some reason. it essentially just gets the xy coord for each corner of the specified element, and then makes a dark block everywhere except inside those 4 corners. also, i made it so the tutorial saves to the same json file as the preset manager, so that you only have to do the tutorial one time and it doesnt just get in your way every single time you open it. aside from that, most of this time was spent trying to figure out how to get it to automatically build on github when i push a release. i did this successfully for my other project, but the problem so far has been linking the qml for the binaries on the different platforms. specifically, windows just really really doesnt want to behave, its starting to feel like getting a discord mod to eat anything other than gamersupps and pizza rolls overall, maybe getting close to shipping? it honestly just depends on how much more features and idiot proofing i want to add if this sounds interesting, check out (and star ) the repo here
probably the final commit :o most of this was spent idiot proofing, going through all my code and making sure that everything works well and actually makes sense i also updated the tutorial to be a bit better a major amount of time was spent figuring out how to get windows to actually compile i swear windows is the bane of my entire existence its not reflected in the devlog hours, but i did also make a demo video to show off some of the features mystery link other than that, it was mostly ui and readme updates :)
extra ui tweaks and readme updates added some images of 3d fractals to the readme, did some general ui tweaks, and some idiot proofing now its time to ship!!!
Ships:
fraktalized ship: fraktalized is an an open-source, cross-platform, ultra smooth real time fractal explorer built using a hybrid architecture of Qt6 (QML/C++) and openGL (GLSL 330 core / 4.3 compute shaders). fraktalized currently has 10 fractal sets: mandelbrot set: the classic fractal set julia set: cool swirly stuff, complete with adjustable constant coords burning ship set: cool pointy stuff newton set: kinda spidery looking buddhabrot: like the mandelbrot but galaxy looking anti-buddhabrot: reverse buddhabrot barnsley fern: looks very naturey mandelbulb: like the mandelbrot but 3d menger sponge: cube, but with infinite* surface ar a icebox: spiky box! there is both a set of 3 precompiled binaries on the github and a demo video: https://youtu.be/x9lH_pPzvbw...
|
1793065649.6420991
|
1793152049.6420991
|
|
13539
|
MewoOS by @subhansh | Stardance
|
|
2
|
70.0
|
497
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-09T14:12:55Z", "hours": 56.0, "multiplier": 19.42, "payout": 497, "blessing": "neutral", "text": "Made the most productive web operating system ever created comes with a browser, terminal, music player, gallery, customizable wallpapers, draggable windows, and doomscroll — because no operating system is complete without destroying your attention span… built with react, typescript, and questionable life choices :3 new features :- functional file system voice assistant with vocal modulation and os control 4 desktop workspace mewo store (more apps that u can actually install !!)", "repo": "https://github.com/subhansh-dev/MewoOS", "demo": "https://mewoos.vercel.app"}, {"ship_num": 2, "ts": "2026-06-15T20:05:47Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made the most productive web operating system ever created comes with a browser, terminal, music player, gallery, customizable wallpapers, draggable windows, and doomscroll — because no operating system is complete without destroying your attention span and we must scroll and larp… built with react, typescript, and questionable life choices :3", "repo": "https://github.com/subhansh-dev/MewoOS", "demo": "https://mewoos.vercel.app"}]...
|
[{"post_id": 25288, "ts": "202 [{"post_id": 25288, "ts": "2026-07-09T14:01:57Z", "hours": 5.5736, "text": "final devlog for mewo os 🍓😺 okay so guess wat… i was debugging mewo again and again for a bug that wasnt even real 💔… what happened is.. i opened mewo saw that nothing is functional and i was like everything looks gud why its not wokring… and then i saw my mails and found out that vercel and supabase paused my web cause i ran out of the free tier 💔😭… anyways aside from this i added ts js for the vibes lol Window Switcher Open 2+ apps (e.g. Calculator + Terminal + Notes) Press Ctrl+Shift+A — overlay appears with all open windows Press Tab to cycle forward, Shift+Tab to cycle backward Release Shift or click a window to switch to it Escape to cancel also i did optimized mewo earlier but it was still lagging a bit cause of overlaying animations and effects so i fixed that too ts time redeployed on vercel again!! try it out ^-^ :- https://mewoos.vercel.app"}, {"post_id": 24814, "ts": "2026-07-08T16:49:19Z", "hours": 26.8408, "text": "MewoOS Devlog #8 🍓😺 Pixel Cat Redesign redesigned the pixel cat that follows ur cursor around the desktop. she looks way better now ngl…more detailed sprite, smoother animation, and shes silver now which fits the dark theme way more. u can click her to toggle between following ur cursor or staying pinned. small thing but it makes the whole desktop feel alive fr Meo Can Control The OS (waw..dem ) this ones big. meo can now literally control the whole os. tell her “open the calculator” and she opens it. “open the terminal” — done. “minimize all windows” — gone. she parses whatever u say and does OS actions through action tags. supports open, close, min, max, focus, minimizeAll, closeAll. feels like ur actually talking to the os not just a chatbot Voice & Emotions Rework improved meos voice n emotions big time. she now detects what ur saying and adjusts — happy, excited, concerned, playful, calm, tired, urgent. each one has its own rate, pitch, personality. the voice sounds way less robotic now and more natural. also fixed that annoying thing where the reply would show up in the chat 4 seconds before the tts spoke it. now they happen at the same time so its smooth 4 Desktop Workspaces added a desktop workspace system. u get 4 separate desktops switch between them with ctrl 1 2 3 4. each desktop has its own windows so u can have coding stuff on desktop 1 music and browser on desktop 2 etc. ctrl left right cycles between them. feels like a real os now not just a web page Mewo Store(new feature…yey) built a full app store for mewoos. premium dock style icons glassmorphism ui category filters search the works. and the apps u can actually install and they actually work when u open them Installable Apps weather — 5 cities 7 day forecast animated temp bars humidity wind stats kanban board — drag and drop 3 columns colored tags 7 pre loaded tasks focus timer — working pomodoro timer svg ring progress 3 modes focus short long session stats type racer — typing speed test real time character highlighting green red wpm calc 8 sentences paint studio — actual working canvas color picker brush size clear button u can draw on it image editor — 8 filter presets original warm cool b&w vintage vivid fade noir brightness contrast saturation sliders uses a real image Store Features when u install an app theres a progress bar animation then the app icon shows up in the dock with a premium dock style icon. and u can uninstall apps too removes from dock and closes any open windows…. mewo meow mewo"}, {"post_id": 22867, "ts": "2026-07-05T14:22:43Z", "hours": 23.1842, "text": "OKAAAA WE’RE BACCKKK.. aaa so i did all of the basic stuffs in the webos1 (mandatory features, basic glass morph for the windows, parallax effects on the wallpaper etc) so now in the part 2… its time to take this further… so i started with fixing the lag and some minor bugs and then we redesigned every window and dock with an aurora tint and enhanced glassmorphism with glare and then came the features that i added… i mean they are not complete but the base is ready the dock got upgraded added a Files app(new feature..yey) to the dock with a sky blue gradient icon. the file manager opens with a proper glassmorphic window. breadcrumbs for navigation, grid and list views, right click menus, inline rename… the whole deal. double click a file and it opens in an editor with Ctrl+S to save. tab inserts spaces. its got the mewoOS glass treatment on everything what is meo (new feature…yey) so meo is basically the AI assistant that lives inside MewoOS. think of it like Siri but actually useful and with personality….a menace on silicon. u tap the orb, speak to her, and she responds. she can open apps, close them, minimize, maximize — basically control the whole OS with voice. she has emotions too — happy, excited, concerned, playful, calm, tired, urgent — and her voice changes based on that. she roasts u but its from love. like a best friend who also happens to be an AI running inside an operating system the whole thing runs on Gemini — both the brain (chat) and the voice (TTS). she uses Gemini 2.5 Flash for thinking and Gemini 2.5 Flash Preview TTS for speaking back to u with different voices depending on her mood now the part that took forever — making meo actually work bruh so making meo work took some work… idk how many times i debugged for her to actually listen to me the STT problem so the original problem was the Web Speech API — that thing is just unreliable as hell. it only works in Chrome, needs HTTPS or localhost, and half the time it just doesnt fire onresult at all. like u speak, it says “listening…”, then nothing happens. the text never shows up. no transcription, no response, nothing i tried fixing it multiple times — started recognition immediately instead of waiting for mic permission, added error handling, changed the flow… still broken. the Web Speech API is just built different (bad different) so i ripped it out completely. replaced it with MediaRecorder + Gemini for transcription. now when u tap the orb it records audio using the MediaRecorder API, sends the audio blob to Gemini, and Gemini transcribes it. way more reliable because it doesnt depend on browser-specific speech engines. it just works the gemini model error THEN the gemini model error… we had the wrong model names everywhere lol the chat model was set to gemini-3.5-flash which literally doesnt exist the TTS was gemini-2.5-flash-preview-tts which kept failing silently and falling back to browser TTS the STT was using gemini-2.0-flash which was mid so we updated everything to the right models: chat: gemini-2.5-flash (the actual latest flash model) TTS: gemini-2.5-flash-preview-tts (the dedicated TTS model with audio output) STT: gemini-2.5-flash (for transcribing the recorded audio) and added detailed console logging so we can actually see whats happening when things break. because before it was just silently falling back to browser TTS and we had no idea why the final pipeline: u tap the orb MediaRecorder starts capturing audio from the mic waveforms animate while u speak u tap again to stop audio blob gets sent to Gemini for transcription transcription goes to Gemini for the actual response Gemini responds with text + emotion response gets spoken back using Gemini TTS with the right voice"}, {"post_id": 6232, "ts": "2026-06-10T14:05:36Z", "hours": 3.2247, "text": "devlog#6 added a guide app and 3 new live wallpapers with parallax effect restyled dock and app icons a bit new songs and covers feature to resize window’s length and breadth Go check it out!! :3 its done now (hopefully, i dont want more bugs 💔✌) https://mewoos.vercel.app"}, {"post_id": 6116, "ts": "2026-06-10T09:02:37Z", "hours": 4.6342, "text": "devlog #5 waawaw so i did a complete ui uphaul and polished everything and then added that analog watch and calendar too. also add parallax effect for the wallpapers, then added 2 more songs and then updated the song covers too. then fixed alot of bugs and animation issues. added 3 more static wallpapers and 3 new live wallpapers (ima show that in the next devlog). and then i also added a cute pet which follows ur cursor and if u tap on it u can make her sit!!, tap again and she will start following ur cursor again. should i add more reels tho ? 🥀"}, {"post_id": 5782, "ts": "2026-06-09T18:11:43Z", "hours": 0.6644, "text": "the most app is finally here 😭😭🥀…. drumrolls DOOMSCROLL! 🥀… y a u can now watch 38 exclusive reels on MewoOS now (gonna add more later 😺) and then i added 3 static interactive bagrounds and now working on live wallpapers too andd thennn aaaa ye i added those good looking app icons created from figma and agagin fixed allat of bugs ofc 🥀…. then improved the animations and glass morphism effect and restyled all of the panels and basically the whole ui lol 😭…. and added more gud pics in the gallery and the song count in the music player app went from 6 to 20!! and yes they are real songs and not js some random ahh chimes lol anddddd aaa idk more… maybe that was it for this devlog holdup now lemme cook the livewallpapers and polish things up"}, {"post_id": 5745, "ts": "2026-06-09T17:25:41Z", "hours": 3.8269, "text": "devlog #3 - MewoOS Added a booting animation and fixed allat of bugs and improved dock , animations , and ui (will show these in the next devlog)"}, {"post_id": 5555, "ts": "2026-06-09T11:47:16Z", "hours": 0.9858, "text": "Devlog 2 — MewoOS yayyayayay its finally coming together… basic version is done now ive add some more features and apps and just polish the whole ui a bit too should i add an app for doomscrolling 🥀 ? anyways heres the details of what it has rn :- -added an iframe browser because the jam said “be creative” and my creativity said “put the entire internet inside a window inside a fake OS inside a browser.” it loads Wikipedia and GitHub reliably. most other sites block iframes so its basically a very expensive Wikipedia viewer. but it works and im counting it as a feature also the basic version of music player was alr done but my first thought was “the music player needs REAL music” — not some placeholder beeps, actual songs. so i set up yt-dlp and went on a downloading spree at unholy hours. we got Cruel Angel’s Thesis, YOASOBI’s Idol, Ado’s Usseewa, Night Dancer, Fly Me to the Moon, Feeling Good by Nina Simone, Chopin Ballade No.4 in G minor, Rachmaninoff Piano Concerto No.2 (the full 37MB concerto because i have no concept of file size restraint), Paganini Caprice No.24, and some jazz tracks for the cultured folks. HTML5 audio API handles all of it — play, pause, skip, progress bar, the whole thing. no npm packages, no dependencies, just vibes and tags the UI went through approximately 47 iterations of “is this too pink” vs “is this dark enough” — settled on a deep black (#0A0709) with sakura pink accents and floating ambient glow orbs that drift around the screen like little ghosts of my questionable design choices. windows have glass panels with backdrop blur, the dock has custom SVG icons (not emojis, im not a monster), and the whole thing radiates “what if a gothic cathedral had a kawaii phase” energy 💔💔"}, {"post_id": 5528, "ts": "2026-06-09T10:39:01Z", "hours": 0.6197, "text": "wawawa basic frontend almost done (js have to polish it now )"}]...
|
Title: MewoOS by @subhansh | Stardance
Devlogs:
w Title: MewoOS by @subhansh | Stardance
Devlogs:
wawawa basic frontend almost done (js have to polish it now )
Devlog 2 — MewoOS yayyayayay its finally coming together… basic version is done now ive add some more features and apps and just polish the whole ui a bit too should i add an app for doomscrolling 🥀 ? anyways heres the details of what it has rn :- -added an iframe browser because the jam said “be creative” and my creativity said “put the entire internet inside a window inside a fake OS inside a browser.” it loads Wikipedia and GitHub reliably. most other sites block iframes so its basically a very expensive Wikipedia viewer. but it works and im counting it as a feature also the basic version of music player was alr done but my first thought was “the music player needs REAL music” — not some placeholder beeps, actual songs. so i set up yt-dlp and went on a downloading spree at unholy hours. we got Cruel Angel’s Thesis, YOASOBI’s Idol, Ado’s Usseewa, Night Dancer, Fly Me to the Moon, Feeling Good by Nina Simone, Chopin Ballade No.4 in G minor, Rachmaninoff Piano Concerto No.2 (the full 37MB concerto because i have no concept of file size restraint), Paganini Caprice No.24, and some jazz tracks for the cultured folks. HTML5 audio API handles all of it — play, pause, skip, progress bar, the whole thing. no npm packages, no dependencies, just vibes and tags the UI went through approximately 47 iterations of “is this too pink” vs “is this dark enough” — settled on a deep black (#0A0709) with sakura pink accents and floating ambient glow orbs that drift around the screen like little ghosts of my questionable design choices. windows have glass panels with backdrop blur, the dock has custom SVG icons (not emojis, im not a monster), and the whole thing radiates “what if a gothic cathedral had a kawaii phase” energy 💔💔
devlog #3 - MewoOS Added a booting animation and fixed allat of bugs and improved dock , animations , and ui (will show these in the next devlog)
the most app is finally here 😭😭🥀…. drumrolls DOOMSCROLL! 🥀… y a u can now watch 38 exclusive reels on MewoOS now (gonna add more later 😺) and then i added 3 static interactive bagrounds and now working on live wallpapers too andd thennn aaaa ye i added those good looking app icons created from figma and agagin fixed allat of bugs ofc 🥀…. then improved the animations and glass morphism effect and restyled all of the panels and basically the whole ui lol 😭…. and added more gud pics in the gallery and the song count in the music player app went from 6 to 20!! and yes they are real songs and not js some random ahh chimes lol anddddd aaa idk more… maybe that was it for this devlog holdup now lemme cook the livewallpapers and polish things up
devlog #5 waawaw so i did a complete ui uphaul and polished everything and then added that analog watch and calendar too. also add parallax effect for the wallpapers, then added 2 more songs and then updated the song covers too. then fixed alot of bugs and animation issues. added 3 more static wallpapers and 3 new live wallpapers (ima show that in the next devlog). and then i also added a cute pet which follows ur cursor and if u tap on it u can make her sit!!, tap again and she will start following ur cursor again. should i add more reels tho ? 🥀
devlog#6 added a guide app and 3 new live wallpapers with parallax effect restyled dock and app icons a bit new songs and covers feature to resize window’s length and breadth Go check it out!! :3 its done now (hopefully, i dont want more bugs 💔✌) https://mewoos.vercel.app
OKAAAA WE’RE BACCKKK.. aaa so i did all of the basic stuffs in the webos1 (mandatory features, basic glass morph for the windows, parallax effects on the wallpaper etc) so now in the part 2… its time to take this further… so i started with fixing the lag and some minor bugs and then we redesigned every window and dock with an aurora tint and enhanced glassmorphism with glare and then came the features that i added… i mean they are not complete but the base is ready the dock got upgraded added a Files app(new feature..yey) to the dock with a sky blue gradient icon. the file manager opens with a proper glassmorphic window. breadcrumbs for navigation, grid and list views, right click menus, inline rename… the whole deal. double click a file and it opens in an editor with Ctrl+S to save. tab inserts spaces. its got the mewoOS glass treatment on everything what is meo (new feature…yey) so meo is basically the AI assistant that lives inside MewoOS. think of it like Siri but actually useful and with personality….a menace on silicon. u tap the orb, speak to her, and she responds. she can open apps, close them, minimize, maximize — basically control the whole OS with voice. she has emotions too — happy, excited, concerned, playful, calm, tired, urgent — and her voice changes based on that. she roasts u but its from love. like a best friend who also happens to be an AI running inside an operating system the whole thing runs on Gemini — both the brain (chat) and the voice (TTS). she uses Gemini 2.5 Flash for thinking and Gemini 2.5 Flash Preview TTS for speaking back to u with different voices depending on her mood now the part that took forever — making meo actually work bruh so making meo work took some work… idk how many times i debugged for her to actually listen to me the STT problem so the original problem was the Web Speech API — that thing is just unreliable as hell. it only works in Chrome, needs HTTPS or localhost, and half the time it just doesnt fire onresult at all. like u speak, it says “listening…”, then nothing happens. the text never shows up. no transcription, no response, nothing i tried fixing it multiple times — started recognition immediately instead of waiting for mic permission, added error handling, changed the flow… still broken. the Web Speech API is just built different (bad different) so i ripped it out completely. replaced it with MediaRecorder + Gemini for transcription. now when u tap the orb it records audio using the MediaRecorder API, sends the audio blob to Gemini, and Gemini transcribes it. way more reliable because it doesnt depend on browser-specific speech engines. it just works the gemini model error THEN the gemini model error… we had the wrong model names everywhere lol the chat model was set to gemini-3.5-flash which literally doesnt exist the TTS was gemini-2.5-flash-preview-tts which kept failing silently and falling back to browser TTS the STT was using gemini-2.0-flash which was mid so we updated everything to the right models: chat: gemini-2.5-flash (the actual latest flash model) TTS: gemini-2.5-flash-preview-tts (the dedicated TTS model with audio output) STT: gemini-2.5-flash (for transcribing the recorded audio) and added detailed console logging so we can actually see whats happening when things break. because before it was just silently falling back to browser TTS and we had no idea why the final pipeline: u tap the orb MediaRecorder starts capturing audio from the mic waveforms animate while u speak u tap again to stop audio blob gets sent to Gemini for transcription transcription goes to Gemini for the actual response Gemini responds with text + emotion response gets spoken back using Gemini TTS with the right voice
MewoOS Devlog #8 🍓😺 Pixel Cat Redesign redesigned the pixel cat that follows ur cursor around the desktop. she looks way better now ngl…more detailed sprite, smoother animation, and shes silver now which fits the dark theme way more. u can click her to toggle between following ur cursor or staying pinned. small thing but it makes the whole desktop feel alive fr Meo Can Control The OS (waw..dem ) this ones big. meo can now literally control the whole os. tell her “open the calculator” and she opens it. “open the terminal” — done. “minimize all windows” — gone. she parses whatever u say and does OS actions through action tags. supports open, close, min, max, focus, minimizeAll, closeAll. feels like ur actually talking to the os not just a chatbot Voice & Emotions Rework improved meos voice n emotions big time. she now detects what ur saying and adjusts — happy, excited, concerned, playful, calm, tired, urgent. each one has its own rate, pitch, personality. the voice sounds way less robotic now and more natural. also fixed that annoying thing where the reply would show up in the chat 4 seconds before the tts spoke it. now they happen at the same time so its smooth 4 Desktop Workspaces added a desktop workspace system. u get 4 separate desktops switch between them with ctrl 1 2 3 4. each desktop has its own windows so u can have coding stuff on desktop 1 music and browser on desktop 2 etc. ctrl left right cycles between them. feels like a real os now not just a web page Mewo Store(new feature…yey) built a full app store for mewoos. premium dock style icons glassmorphism ui category filters search the works. and the apps u can actually install and they actually work when u open them Installable Apps weather — 5 cities 7 day forecast animated temp bars humidity wind stats kanban board — drag and drop 3 columns colored tags 7 pre loaded tasks focus timer — working pomodoro timer svg ring progress 3 modes focus short long session stats type racer — typing speed test real time character highlighting green red wpm calc 8 sentences paint studio — actual working canvas color picker brush size clear button u can draw on it image editor — 8 filter presets original warm cool b&w vintage vivid fade noir brightness contrast saturation sliders uses a real image Store Features when u install an app theres a progress bar animation then the app icon shows up in the dock with a premium dock style icon. and u can uninstall apps too removes from dock and closes any open windows…. mewo meow mewo
final devlog for mewo os 🍓😺 okay so guess wat… i was debugging mewo again and again for a bug that wasnt even real 💔… what happened is.. i opened mewo saw that nothing is functional and i was like everything looks gud why its not wokring… and then i saw my mails and found out that vercel and supabase paused my web cause i ran out of the free tier 💔😭… anyways aside from this i added ts js for the vibes lol Window Switcher Open 2+ apps (e.g. Calculator + Terminal + Notes) Press Ctrl+Shift+A — overlay appears with all open windows Press Tab to cycle forward, Shift+Tab to cycle backward Release Shift or click a window to switch to it Escape to cancel also i did optimized mewo earlier but it was still lagging a bit cause of overlaying animations and effects so i fixed that too ts time redeployed on vercel again!! try it out ^-^ :- https://mewoos.vercel.app
Ships:
Made the most productive web operating system ever created comes with a browser, terminal, music player, gallery, customizable wallpapers, draggable windows, and doomscroll — because no operating system is complete without destroying your attention span and we must scroll and larp… built with react, typescript, and questionable life choices :3
Made the most productive web operating system ever created comes with a browser, terminal, music player, gallery, customizable wallpapers, draggable windows, and doomscroll — because no operating system is complete without destroying your attention span… built with react, typescript, and questionable life choices :3 new features :- functional file system voice assistant with vocal modulation and os control 4 desktop workspace mewo store (more apps that u can actually install !!)...
|
1793091158.0281417
|
1793177558.0281417
|
|
14492
|
Tides simulation by @kuba_ch101 | Stardance
|
kuba_ch101
|
2
|
70.0
|
1308
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-25T17:20:40Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Ship #2 Many peaple in the reviews suggested adding some type of tutorial, so I added one. It was written with no AI, there might still be some grammar mistakes, but I hope the tutorial will be helpful.", "repo": "https://github.com/kubach101/tides-symulation", "demo": "https://kubach101.github.io/tides-symulation/"}, {"ship_num": 2, "ts": "2026-09-09T18:13:23Z", "hours": 67.0, "multiplier": 19.43, "payout": 1308, "blessing": "neutral", "text": "I made a simualation of tides generated on a planet by a satelite. I made it in C and OpenGL which I compiled(using emscriptem) to WebAssembly and WebGL. Then I added controls to make it interractive. I am verry proud that I menaged to compute the shape of the water almost entirely on a GPU shader. I also made a custom camera system which enables rotating along vectors other than the 3 main axes. The simulation isnt super accurate but it can serve for eg. educational purposes.", "repo": "https://github.com/kubach101/tides-symulation", "demo": "https://kubach101.github.io/tides-symulation/"}]...
|
[{"post_id": 82696, "ts": "202 [{"post_id": 82696, "ts": "2026-10-25T16:56:20Z", "hours": 0.7083, "text": "Added a reopening button for the tutorial and polished other things, project ready to ship :)"}, {"post_id": 71044, "ts": "2026-09-20T07:39:59Z", "hours": 1.6219, "text": "I added the tutorial, I wrote it by myself so there might be some uncought mistakes left, since English is not my native language. I think I explained it well and now the what some simulation parameters doshould be clear. Drawing is also made by me."}, {"post_id": 66249, "ts": "2026-09-11T23:31:02Z", "hours": 0.7003, "text": "Hello everyone It is my first devlog after the ship. People who rated my project had a great suggestion to make a tutorial, so I got to work. It will be in a form of a toggled window with instructions and explanations."}, {"post_id": 64810, "ts": "2026-09-09T14:19:19Z", "hours": 3.5808, "text": "I added different screen size support and a mobile layout. I also chaneged the UI SO now the whole canvas is likę a trackpad and you can zoom with scroll/fingers"}, {"post_id": 40430, "ts": "2026-08-03T22:52:15Z", "hours": 1.4511, "text": "I wrote the readme and I am almost ready to ship! Photos of progress:"}, {"post_id": 39663, "ts": "2026-08-02T19:50:11Z", "hours": 2.835, "text": "I improved the camera movement by making the rotation not based on the 3 main axes and instead based on the new ones created by the movement on the touchpad. It was quite hard to integrate everything but now the camera moves verry smooth. I also fixed a bug in the fragment shader which was breaking the alpha value of the oceanand now it looks much better."}, {"post_id": 38164, "ts": "2026-07-31T12:42:44Z", "hours": 9.9228, "text": "I added a UI to the web page! It features: -camera controls: rotating, zooming and home position -simulation parameters which you can change with sliders. Everything is conected to the simulation via “cwrap”, which makes you able to use some of your functions, from the c program, in java script. I went through multiple layout and I am still not shure if I will keep this one. This was my first time building something like this so I took some help from the AI while making the trackpad and the sliders."}, {"post_id": 30380, "ts": "2026-07-17T21:15:25Z", "hours": 3.7669, "text": "I added a trail behind the satelite to make this more interesting and a direction indicator(which you can turn off) so you know where the satelite is when you zoom in. I also started working on the shell file which basically grabs the render and ads html features. All the info and other thing will be in this grey area(for now, maybe I will change them later)."}, {"post_id": 29838, "ts": "2026-07-16T23:55:00Z", "hours": 2.7969, "text": "BIG NEWS! I was finally able to convert my C code to WASM using emscripten. I run it on local hosted server but I still cant make it work on github pages. I also moved part of physics calculations to a specified shader which should significantly boost the performace."}, {"post_id": 29122, "ts": "2026-07-15T19:47:38Z", "hours": 6.1136, "text": "I optimized my simulation and added a camera orientation indicator(top-right corner). It was much harder than I expected but It looks cool."}, {"post_id": 16529, "ts": "2026-06-26T21:50:43Z", "hours": 2.1425, "text": "I am now working on rewriting may program so I can later convert it to WASM using emscriptem. I also made the satelite distance modifiable."}, {"post_id": 15170, "ts": "2026-06-24T17:22:23Z", "hours": 1.9231, "text": "Added an option for user input. Now I will focus on adding friction to the moving ocean."}, {"post_id": 14889, "ts": "2026-06-24T05:27:16Z", "hours": 3.1589, "text": "I fixed some scaling bugs, but there still some left and i cant figure how to fix them. I also need to add friction soon. View after fixing radious bug:"}, {"post_id": 13728, "ts": "2026-06-22T14:36:56Z", "hours": 1.1089, "text": "I replaced some floats with doubles for better precision and improved the information tab."}, {"post_id": 13324, "ts": "2026-06-21T20:22:08Z", "hours": 6.9411, "text": "Made a huge rework today: -Reworked the entire pipeline and data structures to make code cleaner and more efficient. -Fixed some physics mistakes with scales I made before. -Fixed rendering bug which appeared when I chaned rendering order to a propper one."}, {"post_id": 12781, "ts": "2026-06-20T21:58:28Z", "hours": 1.9731, "text": "Made a custom Information tab, It shows simulation data. This took me some time, but I am happy with the results."}, {"post_id": 12635, "ts": "2026-06-20T17:10:22Z", "hours": 2.8864, "text": "I added camera movement, for now the camera is centered on the planet but I might change it in the future. I neede to add and rework few functions to make this work. There was also a major problem, which I learnt is called “gimbal lock”. Before I fixed It the camera was getting flipped when It rotated 90 degrees. There is also a zoom option(2’nd picture)."}, {"post_id": 12466, "ts": "2026-06-20T11:04:40Z", "hours": 3.9556, "text": "I scaled everything to real proportions of earth and moon. Improved pipeline by adding rendering functions and reducing the number of shaders. Made the moon orbit, to see it move I added a second time scale(not based on SI) to make the orbits fast without affecting other scales. I still need to correct the water based on updated moon position."}, {"post_id": 11516, "ts": "2026-06-18T20:13:46Z", "hours": 3.4372, "text": "Finaly the geometry is calculated by the satelite’s gravity. In a normal scenario the wouldn’t be visible in that scale so I needed to bring the moon verry close to the planet(It is now invisible) and increese its mass. I am planning to make a zoom options so the deformations will be vissible even with the real data"}, {"post_id": 7363, "ts": "2026-06-12T08:29:15Z", "hours": 0.3783, "text": "I tested the fluid deformation in real time(made a small menu to debug it). It wasnt calculated based on physics, i was just incrementing position(this is position of the right peak, the rest is calculated based on that). Of course i needed to scale it a bit, so you can see the water deformation. It looks realy cool when the water is “streched” too much:"}, {"post_id": 7128, "ts": "2026-06-11T22:11:05Z", "hours": 2.5839, "text": "Fixed a huge geometry bug, made a shader for the water layer. The hardest part was configuring the pipeline so that the water layer and core don’t interfere whith themselfs and break. Current view:"}, {"post_id": 6862, "ts": "2026-06-11T14:49:20Z", "hours": 1.865, "text": "I improved my shader for solid bodies: -shading responds to motion(previously it looked like the light sorce was moving with the object) -now the shading is done per pixel(not per vertex) -a bit of color is added to the opposite side Here you can see before and after:"}, {"post_id": 6373, "ts": "2026-06-10T18:47:00Z", "hours": 2.5058, "text": "Today i focused on the physics part of the fluid shape. I used quadrupolar tidal bulge approximation via P₂ Legendre polynomial. In terms of physics it sounds complicated, but was easier than i exepected. However I spend a lot of time trying to get the geometry right, becaose my sphere generating algorithm is pretty weird."}, {"post_id": 5897, "ts": "2026-06-09T21:18:17Z", "hours": 1.9833, "text": "Made basic pipeline for my symulation, improved shader use by creating helpful functions. This will be the core of the planet(it wont change geometry) so that was the easier part."}]...
|
Title: Tides simulation by @kuba_ch101 | Stardance Title: Tides simulation by @kuba_ch101 | Stardance
Devlogs:
Made basic pipeline for my symulation, improved shader use by creating helpful functions. This will be the core of the planet(it wont change geometry) so that was the easier part.
Today i focused on the physics part of the fluid shape. I used quadrupolar tidal bulge approximation via P₂ Legendre polynomial. In terms of physics it sounds complicated, but was easier than i exepected. However I spend a lot of time trying to get the geometry right, becaose my sphere generating algorithm is pretty weird.
I improved my shader for solid bodies: -shading responds to motion(previously it looked like the light sorce was moving with the object) -now the shading is done per pixel(not per vertex) -a bit of color is added to the opposite side Here you can see before and after:
Fixed a huge geometry bug, made a shader for the water layer. The hardest part was configuring the pipeline so that the water layer and core don’t interfere whith themselfs and break. Current view:
I tested the fluid deformation in real time(made a small menu to debug it). It wasnt calculated based on physics, i was just incrementing position(this is position of the right peak, the rest is calculated based on that). Of course i needed to scale it a bit, so you can see the water deformation. It looks realy cool when the water is “streched” too much:
Finaly the geometry is calculated by the satelite’s gravity. In a normal scenario the wouldn’t be visible in that scale so I needed to bring the moon verry close to the planet(It is now invisible) and increese its mass. I am planning to make a zoom options so the deformations will be vissible even with the real data
I scaled everything to real proportions of earth and moon. Improved pipeline by adding rendering functions and reducing the number of shaders. Made the moon orbit, to see it move I added a second time scale(not based on SI) to make the orbits fast without affecting other scales. I still need to correct the water based on updated moon position.
I added camera movement, for now the camera is centered on the planet but I might change it in the future. I neede to add and rework few functions to make this work. There was also a major problem, which I learnt is called “gimbal lock”. Before I fixed It the camera was getting flipped when It rotated 90 degrees. There is also a zoom option(2’nd picture).
Made a custom Information tab, It shows simulation data. This took me some time, but I am happy with the results.
Made a huge rework today: -Reworked the entire pipeline and data structures to make code cleaner and more efficient. -Fixed some physics mistakes with scales I made before. -Fixed rendering bug which appeared when I chaned rendering order to a propper one.
I replaced some floats with doubles for better precision and improved the information tab.
I fixed some scaling bugs, but there still some left and i cant figure how to fix them. I also need to add friction soon. View after fixing radious bug:
Added an option for user input. Now I will focus on adding friction to the moving ocean.
I am now working on rewriting may program so I can later convert it to WASM using emscriptem. I also made the satelite distance modifiable.
I optimized my simulation and added a camera orientation indicator(top-right corner). It was much harder than I expected but It looks cool.
BIG NEWS! I was finally able to convert my C code to WASM using emscripten. I run it on local hosted server but I still cant make it work on github pages. I also moved part of physics calculations to a specified shader which should significantly boost the performace.
I added a trail behind the satelite to make this more interesting and a direction indicator(which you can turn off) so you know where the satelite is when you zoom in. I also started working on the shell file which basically grabs the render and ads html features. All the info and other thing will be in this grey area(for now, maybe I will change them later).
I added a UI to the web page! It features: -camera controls: rotating, zooming and home position -simulation parameters which you can change with sliders. Everything is conected to the simulation via “cwrap”, which makes you able to use some of your functions, from the c program, in java script. I went through multiple layout and I am still not shure if I will keep this one. This was my first time building something like this so I took some help from the AI while making the trackpad and the sliders.
I improved the camera movement by making the rotation not based on the 3 main axes and instead based on the new ones created by the movement on the touchpad. It was quite hard to integrate everything but now the camera moves verry smooth. I also fixed a bug in the fragment shader which was breaking the alpha value of the oceanand now it looks much better.
I wrote the readme and I am almost ready to ship! Photos of progress:
I added different screen size support and a mobile layout. I also chaneged the UI SO now the whole canvas is likę a trackpad and you can zoom with scroll/fingers
Hello everyone It is my first devlog after the ship. People who rated my project had a great suggestion to make a tutorial, so I got to work. It will be in a form of a toggled window with instructions and explanations.
I added the tutorial, I wrote it by myself so there might be some uncought mistakes left, since English is not my native language. I think I explained it well and now the what some simulation parameters doshould be clear. Drawing is also made by me.
Added a reopening button for the tutorial and polished other things, project ready to ship :)
Ships:
I made a simualation of tides generated on a planet by a satelite. I made it in C and OpenGL which I compiled(using emscriptem) to WebAssembly and WebGL. Then I added controls to make it interractive. I am verry proud that I menaged to compute the shape of the water almost entirely on a GPU shader. I also made a custom camera system which enables rotating along vectors other than the 3 main axes. The simulation isnt super accurate but it can serve for eg. educational purposes.
Ship #2 Many peaple in the reviews suggested adding some type of tutorial, so I added one. It was written with no AI, there might still be some grammar mistakes, but I hope the tutorial will be helpful....
|
1793004909.373205
|
1793091309.373205
|
|
21737
|
Jarvis by @Xavier | Stardance
|
|
1
|
70.0
|
234
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-15T14:57:50Z", "hours": 70.0, "multiplier": 7.79, "payout": 234, "blessing": "neutral", "text": "Hey everyone! I really enjoyed developing this personal assistant. While it has its limitations, its cool to have a group of programmers sharing ideas and cool concepts. This first part will give a small peek into the errors i ran into during development. Development Environment and Python 3.13 Using Python 3 as the foundation for the backend was the simplest part of the project, but certainly not the easiest. Because Python 3.13 is so new, several critical packages lacked prebuilt wheels. I had to manually check GitHub releases and pull pre-release wheels directly from CI artifacts. I pinned these specific versions to maintain stability. When that became unsustainable, I fell back to Python 3.12, utilizing virtual environment isolation for those specific packages. FastAPI and SSE Streaming Streaming LLM tokens over Server-Sent Events (SSE) is not well-documented, and it caused significant friction. The primary challenge was that the LLM returns a standard generator, while FastAPI’s StreamingResponse requires compatibility with async generators; they do not compose cleanly with synchronous LLM clients. My solution was to wrap the DeepSeek client in an async adapter using asyncio.to_thread(). This ensured the blocking API calls did not stall the event loop, allowing me to yield each token as an SSE-formatted string. Stability and Error Handling Under heavy load, I found that DeepSeek could occasionally return 503 errors. To manage this, I implemented an exponential backoff strategy with a maximum of three retries to maintain stability without overloading the service. A major challenge was ensuring that errors were caught before the SSE stream began, preventing the user from receiving a “half-finished” response. Consequently, I only initialize the stream once the connection is confirmed as alive. Voice Integration and Reliability I chose to integrate ElevenLabs for the voice component to provide a more human-like touch. However, API-based voice services introduce their own reliability constraints. To ensure the assistant remains functional even when hitting the ElevenLabs free-tier limits, I implemented a fallback mechanism. If the API fails, the system reverts to basic browser-based Text-to-Speech (TTS)—a less polished experience, but necessary for overall system reliability. Deployment and Connectivity The backend is currently running locally on my PC and exposed via a Cloudflare Tunnel. I ran into a limitation where every restart of the tunnel generates a new URL. I have had to accept this for now, but I am currently looking for a permanent workaround to ensure a consistent connection point. Now - if you have read this far, you probably want to know what i enjoyed about this project. Building up this backend architecture was certainly not an easy task. For some people this would have been a complete bore, and would’ve been a dreaded chore, but I enjoyed the challenge, and learning opportunity of dealing with Python 3.13 challenges. After I ship this project, I will be working more with python backend, potentially with another webapp. Thanks for reading (:", "repo": "https://github.com/runercode/jarvis", "demo": "https://slim-lasting-pavilion-rec.trycloudflare.com"}]...
|
[{"post_id": 28475, "ts": "202 [{"post_id": 28475, "ts": "2026-07-14T18:47:33Z", "hours": 32.8625, "text": "Final Devlog 🤖 Hey everyone! This is my final devlog for this project. I’ve been working on JARVIS every day, and it’s pretty much been all I’ve been doing. It’s been a challenging but rewarding project, and I’ve learned a ton along the way. Here’s a quick summary of some of the biggest technical challenges I ran into. Dual Database Architecture One of the hardest parts was managing two databases at the same time. Every message gets saved twice: SQLite stores the raw chat history, while ChromaDB stores vector embeddings for semantic memory. Every write has to handle the possibility of ChromaDB being unavailable, and every read has to combine recent chat history with similarity based memory retrieval. If either system breaks, JARVIS still works, but it loses its long term memory. Replacing PyTorch with ONNX PyTorch turned out to be a huge problem for deployment. The sentence-transformers package pulls in roughly 1.5GB of CUDA libraries, while most free hosting platforms only provide 512MB of RAM. I switched to ChromaDB’s ONNX embedding runtime instead, which reduced the model to around 30MB. Getting ChromaDB to consistently use ONNX instead of falling back to PyTorch took a lot of configuration, and if the embedding function changes between deployments, the entire vector database has to be rebuilt. Authentication Even though JARVIS is a personal assistant, I still wanted authentication to be done properly. User accounts use bcrypt password hashing, username validation, password validation, duplicate username checks, and identical login error messages to prevent username enumeration. It’s definitely overkill for a project like this, but it was a great learning experience. Overall, this project taught me a lot about AI systems, deployment, databases, authentication, and building software that actually has to work reliably. I’m really happy with how JARVIS turned out, and I’m excited to keep improving it even after this project is over. The boring stuff is all done now."}, {"post_id": 23101, "ts": "2026-07-05T20:55:36Z", "hours": 11.7422, "text": "Hey everyone! From my last dev-log I have a lot to showcase before the final shipment that is impending. I have used Render - a website used for putting live complicated webapps on the internet as a sort of backbone for everyone to access. This will be the main point of access of this project, and the last milestone I hit. I still have a lot to work on past this such as implementing real note taking, as well as a full AI verbal based communication network. After this is finished, I will be moving on to my next project, a game."}, {"post_id": 20102, "ts": "2026-07-01T16:57:27Z", "hours": 25.4867, "text": "Hey everyone! This is my first official dev-log for my project. This project has so-far since been very fruitful, and i have been able to complete many of the milestones i wanted to reach. Keystone goals: Long term data storage (SQLite) SentenceTransformers (local) For language processing Ai retrieval system (retrieving memory for usage) Vector database (for ai retrievall AI reasoning layer(LLM) User layer(web app) System orchistration(Python backend with fastAPI) I have completed all of the integral parts of the project so far, and will continue to optimize and improve the assistant until it is the best it can be. Now that the original milestones have been reached, i wanted to share the next moving of the goal posts: Full account creation which facilitates the storage of all chat history. Full memory acquisition to store previous chats as well as the ability to use google maps, and google business for deep research Research tab to show active research and knowledge acquisition."}]...
|
Title: Jarvis by @Xavier | Stardance
Devlogs:
Hey Title: Jarvis by @Xavier | Stardance
Devlogs:
Hey everyone! This is my first official dev-log for my project. This project has so-far since been very fruitful, and i have been able to complete many of the milestones i wanted to reach. Keystone goals: Long term data storage (SQLite) SentenceTransformers (local) For language processing Ai retrieval system (retrieving memory for usage) Vector database (for ai retrievall AI reasoning layer(LLM) User layer(web app) System orchistration(Python backend with fastAPI) I have completed all of the integral parts of the project so far, and will continue to optimize and improve the assistant until it is the best it can be. Now that the original milestones have been reached, i wanted to share the next moving of the goal posts: Full account creation which facilitates the storage of all chat history. Full memory acquisition to store previous chats as well as the ability to use google maps, and google business for deep research Research tab to show active research and knowledge acquisition.
Hey everyone! From my last dev-log I have a lot to showcase before the final shipment that is impending. I have used Render - a website used for putting live complicated webapps on the internet as a sort of backbone for everyone to access. This will be the main point of access of this project, and the last milestone I hit. I still have a lot to work on past this such as implementing real note taking, as well as a full AI verbal based communication network. After this is finished, I will be moving on to my next project, a game.
Final Devlog 🤖 Hey everyone! This is my final devlog for this project. I’ve been working on JARVIS every day, and it’s pretty much been all I’ve been doing. It’s been a challenging but rewarding project, and I’ve learned a ton along the way. Here’s a quick summary of some of the biggest technical challenges I ran into. Dual Database Architecture One of the hardest parts was managing two databases at the same time. Every message gets saved twice: SQLite stores the raw chat history, while ChromaDB stores vector embeddings for semantic memory. Every write has to handle the possibility of ChromaDB being unavailable, and every read has to combine recent chat history with similarity based memory retrieval. If either system breaks, JARVIS still works, but it loses its long term memory. Replacing PyTorch with ONNX PyTorch turned out to be a huge problem for deployment. The sentence-transformers package pulls in roughly 1.5GB of CUDA libraries, while most free hosting platforms only provide 512MB of RAM. I switched to ChromaDB’s ONNX embedding runtime instead, which reduced the model to around 30MB. Getting ChromaDB to consistently use ONNX instead of falling back to PyTorch took a lot of configuration, and if the embedding function changes between deployments, the entire vector database has to be rebuilt. Authentication Even though JARVIS is a personal assistant, I still wanted authentication to be done properly. User accounts use bcrypt password hashing, username validation, password validation, duplicate username checks, and identical login error messages to prevent username enumeration. It’s definitely overkill for a project like this, but it was a great learning experience. Overall, this project taught me a lot about AI systems, deployment, databases, authentication, and building software that actually has to work reliably. I’m really happy with how JARVIS turned out, and I’m excited to keep improving it even after this project is over. The boring stuff is all done now.
Ships:
Hey everyone! I really enjoyed developing this personal assistant. While it has its limitations, its cool to have a group of programmers sharing ideas and cool concepts. This first part will give a small peek into the errors i ran into during development. Development Environment and Python 3.13 Using Python 3 as the foundation for the backend was the simplest part of the project, but certainly not the easiest. Because Python 3.13 is so new, several critical packages lacked prebuilt wheels. I had to manually check GitHub releases and pull pre-release wheels directly from CI artifacts. I pinned these specific versions to maintain stability. When that became unsustainable, I fell back to Python 3.12, utilizing virtual environment isolation for those specific packages. FastAPI and SSE Streaming Streaming LLM tokens over Server-Sent Events (SSE) is not well-documented, and it caused significant friction. The primary challenge was that the LLM returns a standard generator, while FastAPI’s StreamingResponse requires compatibility with async generators; they do not compose cleanly with synchronous LLM clients. My solution was to wrap the DeepSeek client in an async adapter using asyncio.to_thread(). This ensured the blocking API calls did not stall the event loop, allowing me to yield each token as an SSE-formatted string. Stability and Error Handling Under heavy load, I found that DeepSeek could occasionally return 503 errors. To manage this, I implemented an exponential backoff strategy with a maximum of three retries to maintain stability without overloading the service. A major challenge was ensuring that errors were caught before the SSE stream began, preventing the user from receiving a “half-finished” response. Consequently, I only initialize the stream once the connection is confirmed as alive. Voice Integration and Reliability I chose to integrate ElevenLabs for the voice component to provide a more human-like touch. However, API-based voice services introduce their own reliability constraints. To ensure the assistant remains functional even when hitting the ElevenLabs free-tier limits, I implemented a fallback mechanism. If the API fails, the system reverts to basic browser-based Text-to-Speech (TTS)—a less polished experience, but necessary for overall system reliability. Deployment and Connectivity The backend is currently running locally on my PC and exposed via a Cloudflare Tunnel. I ran into a limitation where every restart of the tunnel generates a new URL. I have had to accept this for now, but I am currently looking for a permanent workaround to ensure a consistent connection point. Now - if you have read this far, you probably want to know what i enjoyed about this project. Building up this backend architecture was certainly not an easy task. For some people this would have been a complete bore, and would’ve been a dreaded chore, but I enjoyed the challenge, and learning opportunity of dealing with Python 3.13 challenges. After I ship this project, I will be working more with python backend, potentially with another webapp. Thanks for reading (:...
|
1792986616.8423584
|
1793073016.8423584
|
|
49502
|
smart-reliability-predictor by @Matrix | Stardance
|
Matrix
|
2
|
70.0
|
1044
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-08T11:39:10Z", "hours": 9.0, "multiplier": 17.9, "payout": 159, "blessing": "neutral", "text": "I have made an smart reliability predictor analysis which dedects anomaly in the systems and flags it . I have made it using prob and stats concepts like z-score , poission formula , bayes etc . i wrapped this section in v1_v2 . And than i created another section V3 where i added an official NASA SMAP and MSL dataset . this was an tough job because i spended lots of days studying data , plotting it on graphs , trying to find patterns in the anomlies . Than i tried multuple models like linear regression and random forest but they just didnt perform well( i also added this models section where user can choose and see results) . Than i moved towards implementing an lstm (RNN) which also performed much bettrt than other models . Than i created an calibration system to choose threshold and persistance itself on training on the validation set and than test it on test set . And created a dashbaord for it and changed it a lots of time and finalize the theme of the dashbaord .", "repo": "https://github.com/Matrix-09x/Smart-Reliability-Predictor", "demo": "https://smart-reliability-predictor.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-28T16:48:40Z", "hours": 61.0, "multiplier": 14.5, "payout": 885, "blessing": "neutral", "text": "I have made an smart reliability predictor analysis which dedects anomaly in the systems and flags it . I have made it using prob and stats concepts like z-score , poission formula , bayes etc . i wrapped this section in v1_v2 . And than i created another section V3 where i added an official NASA SMAP and MSL dataset . this was an tough job because i spended lots of days studying data , plotting it on graphs , trying to find patterns in the anomlies . Than i tried multuple models like linear regression and random forest but they just didnt perform well( i also added this models section where user can choose and see results) . Than i moved towards implementing an lstm (RNN) which also performed much bettrt than other models . Than i created an calibration system to choose threshold and persistance itself on training on the validation set and than test it on test set . And than created an dashboard for it", "repo": "https://github.com/Matrix-09x/Smart-Reliability-Predictor", "demo": "https://smart-reliability-predictor.vercel.app/"}]...
|
[{"post_id": 77806, "ts": "202 [{"post_id": 77806, "ts": "2026-10-08T11:35:57Z", "hours": 0.3933, "text": "Like i still have 9 hours left to ship as i logged 9 hours more for satisfying the changes required , so i was going to ship again but like i dont want to ship the project again with no change so instead i changed the theme from plain to this theme , like i played with color wheel for a bit and decide to implement this theme . As i read the ratings a lot of you said my project was exceptional the only thing needed work was the theme as it was plain so i changed it ."}, {"post_id": 76387, "ts": "2026-10-03T11:35:02Z", "hours": 3.7606, "text": "Rewrited and completely changed the frontend by hand ."}, {"post_id": 75891, "ts": "2026-10-01T14:51:56Z", "hours": 1.1089, "text": "Added more cool feature to the dashbaord . Just saw an reel and got an idea , so i implemented it right away ."}, {"post_id": 75587, "ts": "2026-09-30T14:20:19Z", "hours": 1.9786, "text": "i wroted the index.html the frontend part myself this time . I learned html , css and js according the requirement .Like i think html is basically nested boxes it was not that complicated and the documentation was also simple i understood it . Css was also good but js takes time . I think it was pretty similar to the streamlit experience liek the logic was same but this time i was writing it in different langugae i just needed the documenatiton for that . Than i deployed it again . I wanted to make the dashbaord looks like exactly like previous one so i treid to keep the theme same as i liked it ."}, {"post_id": 75268, "ts": "2026-09-29T16:27:32Z", "hours": 1.6183, "text": "I just got to know that we cant use streamlit for dashboard . So i switched to vercel . I wrote the code and everything was fine but in deployment process everytime some problem comes i am working and solving it from past 8 hours continuoulsly . hope it get accepted now . Also one thing to clarify if you open the url intially it will show api offlinne its not an problem or error in code . if you click the run analysis button api will be online and will show you the output so its not the problem . Bye"}, {"post_id": 74928, "ts": "2026-09-28T16:39:18Z", "hours": 0.9422, "text": "I have successfully deployed the app on streamlit . Although i faced many problems but i have finally done it . I also added an killer readme check it out . Thats it bye ."}, {"post_id": 74870, "ts": "2026-09-28T14:08:26Z", "hours": 2.5158, "text": "Final Devlog – this is going to be my last devlog . I have finally compelted the project . I have pretrained the model and save it in models file and used added ‘pretrain’ mode and ‘inference’ mode for my funtions for different model . So basically i used the pretrain model for pretraining the models and save it in the models file and used inference mode in the app.py my dashboard where it take the outputs from the models folder directly so it doesnt need to train again . Only readme is left for my project than i will ship it . Bye"}, {"post_id": 74403, "ts": "2026-09-27T10:13:16Z", "hours": 4.7556, "text": "I have improved and completed the final dashboard for the project . I have added more things like line chart , analysis summary , limitations also improved many other things and polished it . Done same to v1/v2 section improved it more and added more things . I also worked on the thing and added css code for it , as plain white was not up to the mark so i choosed this color .Now deploying it is left . But there is one problem like as it will on free cloud service by streamlit , i think it cant run heavy models like lstm , so i think i am gonna pre train the models save the outputs and than deploy it ."}, {"post_id": 73551, "ts": "2026-09-25T11:42:30Z", "hours": 8.8828, "text": "My research with Nasa dataset has officialy ended today , i tried the things that i can possibly do till now and now the time is almost up and i need the remaining time to focus on different things . so my V3.2 of project the calibration layer has also ended , but i found out that the fixes threshold plus persistance is working better than the calibration layer as it produces more precision and recall compare to others , so i think i am gonna keep it . As the dataset is the official and real dataset from NASA so it was expected . By i learned a lot throught this journey , started with Probability and statistics concepts and ended up making an system with real NASA dataset and implementing lstm (RNN) , and other ml models ."}, {"post_id": 70660, "ts": "2026-09-19T15:22:10Z", "hours": 8.7031, "text": "so i mainly focused on two things from past week . I was adding the calibration layer , in which my system is gonna select the best combination of persistance(continuous anomalies) and threshold my itself . For that first i am generating its threshold combination on the validation dataset , where i myself has injected fake anomalies in it . Than i am gonna test those threshold on the testing dataset(currently in progress) . I also completed adding the linear regression and random forest model to the dahboard so the user can choose it and run the model to see the results for that i created 2 more funtions for linear regressiona and random forest and connected it ."}, {"post_id": 66529, "ts": "2026-09-12T11:29:36Z", "hours": 6.9347, "text": "I was studying the outputs produced by my system across various channels , and was plotting multiple graphs , comparing multiple parameters to understand it .And i found out what i need to do next to increase my model efficiency , i know i cant make it perfect because i am currently working on a real dataset by NASA , also i dont have enough time because of my exams . so my next plan is to add an intelligence layer . Like before i was hardcoding the the thresholds like 2std or 3std and the min_consecutive value logic . so i decided to let my system decide it what is best for it . like i am gonna first train my lstm model on validation set and than like compute threshold with the validation error and also the min_consecutive logic and find the best pair and than test it with the testing dataset . and in past hours i also tried to add the option for user to select the model himself to see the output and result , implemented the random forest one , linear regression is left i think i will do it after the lstm improvement .so stay tuned"}, {"post_id": 63000, "ts": "2026-09-06T15:53:39Z", "hours": 4.4397, "text": "Update – Like i made an basic dashboard for my system .Like i separated it in 2 parts , first my previous stimulator based on my maths concept where i myselft created the random anomlies by inputing the no of request and prob of failures and than used z_Score or poission distirbution accorfing to which conditon it satisdy to conclude the results . Thats was V1 of my project , than added bayes concept like where my system pretend it doesnt know the cause , and it finf the p(cause|evidence) which is finding the prob of cause given evidence , that was v2 . now for v3 i created an different system where i added the nasa dataset and than run the models . So i put both of those to show my actual progress , and like user can play with both ones . now i think i will polish it more and than focus on improving the accuracy of lstm ."}, {"post_id": 61585, "ts": "2026-09-04T15:48:56Z", "hours": 1.8197, "text": "I implemented lstm , but its not that accurate , it works great and precision results are awesome , some channel precision were even 100 , but recall is mostly average i need to improve it like its 26 - 45 % . But heres the problem , my school exams are coming and i need to start prepare for that urgently and cherry on top i have this weekend where i can try to give more hours but next week schedule is gonna be tough but i will still try to code and debug and plan everything and solve the problem . so i have decided first to make a dashboard using streamlit in python . That will include V1+V2 and V3 section where user can choose input like channels from NASA dataset and see the results and found anomalies in the system .So i am working on that and postponding my schedule to improve lstm later , because if i try to improve lstm now i dont know how much time it can take and like time will left for making dashbaord so i need to do this first because we get voting on usability section also and i dont it to be cli ."}, {"post_id": 60760, "ts": "2026-09-03T10:53:43Z", "hours": 5.1192, "text": "Update – i completed my analysis with linear regression and random forest model . I calculated the perdect tuning by changing window size to 10 and found out the best threshold for anomalies , my formula for threshold was x * std + mean , and chosing 0.5 as x gave us the best result and it makes as i realize because prediction errors during anomaly range arent that much bigger compare to errors in normal range . so thats why lowering down the x helped us . Also i created confusion matrix and get result for random forest and linear regression model, catching around 42 percent anomaly though only 12-13 % catched were actually correct . Tested the setup on multiple channels , some channels work perfectly and give some good results but some not and with no cleat pattern i end my case with lienar regression model and random forest here and moved towards implementing LSTM . Currently implemeting it and testing it and trying to improve the results . LSTM update will come in next devlog ."}, {"post_id": 57988, "ts": "2026-08-30T10:08:00Z", "hours": 4.3997, "text": "Update , like i finshed anlayzing the sensors . I plotted multiple sensors on graph and like for point i can observe pattern in the graph for changes like high spike in anomaly zone , but for contextual there was no similarity or pattern . even for point the spikes are not similar for every sensors . Some magintude and std is more compare to other . So i conclude that we cant make an rule based system for this dataset . I have to move towards implementing ml . So i used linear regression model first to train on first 10 input and than predict the 11th ouput , as i am doing time series analysis because my dataset is continuous data , so i have kept my window size 10 . so i am currently analyzing how many errors lie in our anoamly zone . If linear regression model didnt perfectly work i will try differnet model like random forest and if they also didnt work i have to move towards lstm ."}, {"post_id": 55099, "ts": "2026-08-26T15:38:14Z", "hours": 4.1028, "text": "I added real Nasa dataset to my system . Its NASA Anomaly Detection Dataset SMAP MSL . Its vast dataset have different sensors sendsing the telemary and giving the values i have been studying the data from the past 4 hours like across different channels to observe pattern . i currently found that channels of point like p-1 , e-11 have different pattern compared to contextual . like i calculated the changes in their consecutive values , and check the values under anomaly range provided inside the dataset . point sensors have very large amount of change inside their anomaly range and contextual have long runs of zero inside their anomaly range . I am still studying the data to conclude more information and patterns ."}, {"post_id": 52909, "ts": "2026-08-23T09:02:31Z", "hours": 2.0408, "text": "After building Bayes, I added a 3x3 confusion matrix to check its accuracy , it tracks how many predictions were correct versus which causes got mixed up with each other. Then I ran the simulation 10,000 times and saved the accuracy from each run into a list, and the average accuracy came out to about 98% . Next step is adding the NASA dataset to make it an real stimulation system ."}, {"post_id": 51877, "ts": "2026-08-21T19:19:37Z", "hours": 2.525, "text": "So after hours of work i successfully added Bayes logic , it was not an easy task because to find p(cause|evidence) i needed to find p(evidence|cause) and p(cause) and p(evidence) for each possible cause . And i was so confused because i used lots of loops to implement this , and after hours i finally did it . And now for every given evidence i have the most probable cause . The bayes is gonna be more useful in future when i will add real dataset from Nasa and ml concepts also ."}, {"post_id": 51140, "ts": "2026-08-20T17:11:34Z", "hours": 3.8539, "text": "Been learning probability and statistics for my ai engineer roadmap for the past month but it was all theory, no projects, so when i found stardance I figured this was a good chance to actually build something with it instead of just reading. The project stimulates a system getting a bunch of requests with some chance of failing, then uses stats to check if the number of failures is normal or if somethings actually wrong, using binomial and poisson to figure out how many failures we’d expect and comparing that to what we actually got. First version used a z-score for this but while testing with small numbers I noticed the results got weird, turned out z-scores don’t work well when the expected failure count is small because the math assumes a symmetric bell curve and at small numbers the real distribution is skewed, so I ended up building an exact fix using the actual poissonon formula instead of the approximation for those cases. After that I started working on figuring out not just that something’s wrong but why, so now every failure gets assigned a hidden cause like database overload, network issues or server overload along with evidence that actually matches it, like high db load for database issues and high latency for network stuff, but with enough overlap that it’s not too obvious or easy. Next up is bayes theorem, where the program only sees the evidence and has to figure out the probability of each cause itself, which is when it goes from just flagging that something’s off to actually explaining why."}]...
|
Title: smart-reliability-predictor by @Matrix | St Title: smart-reliability-predictor by @Matrix | Stardance
Devlogs:
Been learning probability and statistics for my ai engineer roadmap for the past month but it was all theory, no projects, so when i found stardance I figured this was a good chance to actually build something with it instead of just reading. The project stimulates a system getting a bunch of requests with some chance of failing, then uses stats to check if the number of failures is normal or if somethings actually wrong, using binomial and poisson to figure out how many failures we’d expect and comparing that to what we actually got. First version used a z-score for this but while testing with small numbers I noticed the results got weird, turned out z-scores don’t work well when the expected failure count is small because the math assumes a symmetric bell curve and at small numbers the real distribution is skewed, so I ended up building an exact fix using the actual poissonon formula instead of the approximation for those cases. After that I started working on figuring out not just that something’s wrong but why, so now every failure gets assigned a hidden cause like database overload, network issues or server overload along with evidence that actually matches it, like high db load for database issues and high latency for network stuff, but with enough overlap that it’s not too obvious or easy. Next up is bayes theorem, where the program only sees the evidence and has to figure out the probability of each cause itself, which is when it goes from just flagging that something’s off to actually explaining why.
So after hours of work i successfully added Bayes logic , it was not an easy task because to find p(cause|evidence) i needed to find p(evidence|cause) and p(cause) and p(evidence) for each possible cause . And i was so confused because i used lots of loops to implement this , and after hours i finally did it . And now for every given evidence i have the most probable cause . The bayes is gonna be more useful in future when i will add real dataset from Nasa and ml concepts also .
After building Bayes, I added a 3x3 confusion matrix to check its accuracy , it tracks how many predictions were correct versus which causes got mixed up with each other. Then I ran the simulation 10,000 times and saved the accuracy from each run into a list, and the average accuracy came out to about 98% . Next step is adding the NASA dataset to make it an real stimulation system .
I added real Nasa dataset to my system . Its NASA Anomaly Detection Dataset SMAP MSL . Its vast dataset have different sensors sendsing the telemary and giving the values i have been studying the data from the past 4 hours like across different channels to observe pattern . i currently found that channels of point like p-1 , e-11 have different pattern compared to contextual . like i calculated the changes in their consecutive values , and check the values under anomaly range provided inside the dataset . point sensors have very large amount of change inside their anomaly range and contextual have long runs of zero inside their anomaly range . I am still studying the data to conclude more information and patterns .
Update , like i finshed anlayzing the sensors . I plotted multiple sensors on graph and like for point i can observe pattern in the graph for changes like high spike in anomaly zone , but for contextual there was no similarity or pattern . even for point the spikes are not similar for every sensors . Some magintude and std is more compare to other . So i conclude that we cant make an rule based system for this dataset . I have to move towards implementing ml . So i used linear regression model first to train on first 10 input and than predict the 11th ouput , as i am doing time series analysis because my dataset is continuous data , so i have kept my window size 10 . so i am currently analyzing how many errors lie in our anoamly zone . If linear regression model didnt perfectly work i will try differnet model like random forest and if they also didnt work i have to move towards lstm .
Update – i completed my analysis with linear regression and random forest model . I calculated the perdect tuning by changing window size to 10 and found out the best threshold for anomalies , my formula for threshold was x * std + mean , and chosing 0.5 as x gave us the best result and it makes as i realize because prediction errors during anomaly range arent that much bigger compare to errors in normal range . so thats why lowering down the x helped us . Also i created confusion matrix and get result for random forest and linear regression model, catching around 42 percent anomaly though only 12-13 % catched were actually correct . Tested the setup on multiple channels , some channels work perfectly and give some good results but some not and with no cleat pattern i end my case with lienar regression model and random forest here and moved towards implementing LSTM . Currently implemeting it and testing it and trying to improve the results . LSTM update will come in next devlog .
I implemented lstm , but its not that accurate , it works great and precision results are awesome , some channel precision were even 100 , but recall is mostly average i need to improve it like its 26 - 45 % . But heres the problem , my school exams are coming and i need to start prepare for that urgently and cherry on top i have this weekend where i can try to give more hours but next week schedule is gonna be tough but i will still try to code and debug and plan everything and solve the problem . so i have decided first to make a dashboard using streamlit in python . That will include V1+V2 and V3 section where user can choose input like channels from NASA dataset and see the results and found anomalies in the system .So i am working on that and postponding my schedule to improve lstm later , because if i try to improve lstm now i dont know how much time it can take and like time will left for making dashbaord so i need to do this first because we get voting on usability section also and i dont it to be cli .
Update – Like i made an basic dashboard for my system .Like i separated it in 2 parts , first my previous stimulator based on my maths concept where i myselft created the random anomlies by inputing the no of request and prob of failures and than used z_Score or poission distirbution accorfing to which conditon it satisdy to conclude the results . Thats was V1 of my project , than added bayes concept like where my system pretend it doesnt know the cause , and it finf the p(cause|evidence) which is finding the prob of cause given evidence , that was v2 . now for v3 i created an different system where i added the nasa dataset and than run the models . So i put both of those to show my actual progress , and like user can play with both ones . now i think i will polish it more and than focus on improving the accuracy of lstm .
I was studying the outputs produced by my system across various channels , and was plotting multiple graphs , comparing multiple parameters to understand it .And i found out what i need to do next to increase my model efficiency , i know i cant make it perfect because i am currently working on a real dataset by NASA , also i dont have enough time because of my exams . so my next plan is to add an intelligence layer . Like before i was hardcoding the the thresholds like 2std or 3std and the min_consecutive value logic . so i decided to let my system decide it what is best for it . like i am gonna first train my lstm model on validation set and than like compute threshold with the validation error and also the min_consecutive logic and find the best pair and than test it with the testing dataset . and in past hours i also tried to add the option for user to select the model himself to see the output and result , implemented the random forest one , linear regression is left i think i will do it after the lstm improvement .so stay tuned
so i mainly focused on two things from past week . I was adding the calibration layer , in which my system is gonna select the best combination of persistance(continuous anomalies) and threshold my itself . For that first i am generating its threshold combination on the validation dataset , where i myself has injected fake anomalies in it . Than i am gonna test those threshold on the testing dataset(currently in progress) . I also completed adding the linear regression and random forest model to the dahboard so the user can choose it and run the model to see the results for that i created 2 more funtions for linear regressiona and random forest and connected it .
My research with Nasa dataset has officialy ended today , i tried the things that i can possibly do till now and now the time is almost up and i need the remaining time to focus on different things . so my V3.2 of project the calibration layer has also ended , but i found out that the fixes threshold plus persistance is working better than the calibration layer as it produces more precision and recall compare to others , so i think i am gonna keep it . As the dataset is the official and real dataset from NASA so it was expected . By i learned a lot throught this journey , started with Probability and statistics concepts and ended up making an system with real NASA dataset and implementing lstm (RNN) , and other ml models .
I have improved and completed the final dashboard for the project . I have added more things like line chart , analysis summary , limitations also improved many other things and polished it . Done same to v1/v2 section improved it more and added more things . I also worked on the thing and added css code for it , as plain white was not up to the mark so i choosed this color .Now deploying it is left . But there is one problem like as it will on free cloud service by streamlit , i think it cant run heavy models like lstm , so i think i am gonna pre train the models save the outputs and than deploy it .
Final Devlog – this is going to be my last devlog . I have finally compelted the project . I have pretrained the model and save it in models file and used added ‘pretrain’ mode and ‘inference’ mode for my funtions for different model . So basically i used the pretrain model for pretraining the models and save it in the models file and used inference mode in the app.py my dashboard where it take the outputs from the models folder directly so it doesnt need to train again . Only readme is left for my project than i will ship it . Bye
I have successfully deployed the app on streamlit . Although i faced many problems but i have finally done it . I also added an killer readme check it out . Thats it bye .
I just got to know that we cant use streamlit for dashboard . So i switched to vercel . I wrote the code and everything was fine but in deployment process everytime some problem comes i am working and solving it from past 8 hours continuoulsly . hope it get accepted now . Also one thing to clarify if you open the url intially it will show api offlinne its not an problem or error in code . if you click the run analysis button api will be online and will show you the output so its not the problem . Bye
i wroted the index.html the frontend part myself this time . I learned html , css and js according the requirement .Like i think html is basically nested boxes it was not that complicated and the documentation was also simple i understood it . Css was also good but js takes time . I think it was pretty similar to the streamlit experience liek the logic was same but this time i was writing it in different langugae i just needed the documenatiton for that . Than i deployed it again . I wanted to make the dashbaord looks like exactly like previous one so i treid to keep the theme same as i liked it .
Added more cool feature to the dashbaord . Just saw an reel and got an idea , so i implemented it right away .
Rewrited and completely changed the frontend by hand .
Like i still have 9 hours left to ship as i logged 9 hours more for satisfying the changes required , so i was going to ship again but like i dont want to ship the project again with no change so instead i changed the theme from plain to this theme , like i played with color wheel for a bit and decide to implement this theme . As i read the ratings a lot of you said my project was exceptional the only thing needed work was the theme as it was plain so i changed it .
Ships:
I have made an smart reliability predictor analysis which dedects anomaly in the systems and flags it . I have made it using prob and stats concepts like z-score , poission formula , bayes etc . i wrapped this section in v1_v2 . And than i created another section V3 where i added an official NASA SMAP and MSL dataset . this was an tough job because i spended lots of days studying data , plotting it on graphs , trying to find patterns in the anomlies . Than i tried multuple models like linear regression and random forest but they just didnt perform well( i also added this models section where user can choose and see results) . Than i moved towards implementing an lstm (RNN) which also performed much bettrt than other models . Than i created an calibration system to choose threshold and persistance itself on training on the validation set and than test it on test set . And than created an dashboard for it
I have made an smart reliability predictor analysis which dedects anomaly in the systems and flags it . I have made it using prob and stats concepts like z-score , poission formula , bayes etc . i wrapped this section in v1_v2 . And than i created another section V3 where i added an official NASA SMAP and MSL dataset . this was an tough job because i spended lots of days studying data , plotting it on graphs , trying to find patterns in the anomlies . Than i tried multuple models like linear regression and random forest but they just didnt perform well( i also added this models section where user can choose and see results) . Than i moved towards implementing an lstm (RNN) which also performed much bettrt than other models . Than i created an calibration system to choose threshold and persistance itself on training on the validation set and than test it on test set . And created a dashbaord for it and changed it a lots of time and finalize the theme of the dashbaord ....
|
1793004693.1443372
|
1793091093.1443372
|
|
51684
|
StarkOS web by @srinivasa07 | Stardance
|
srinivasa07
|
1
|
70.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-27T00:48:19Z", "hours": 70.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This project was inspired from MCU and think it looks cool and Its an all in one dashboard", "repo": "https://github.com/srinivasagudi0/StarkOS-Web", "demo": "https://stark-os-web-eight.vercel.app/"}]...
|
[{"post_id": 50687, "ts": "202 [{"post_id": 50687, "ts": "2026-08-20T00:18:58Z", "hours": 70.1458, "text": "I am changing this project from another program and so here it is the finished product"}]...
|
Title: StarkOS web by @srinivasa07 | Stardance
De Title: StarkOS web by @srinivasa07 | Stardance
Devlogs:
I am changing this project from another program and so here it is the finished product
Ships:
This project was inspired from MCU and think it looks cool and Its an all in one dashboard...
|
1792878563.8525417
|
1793742563.8525417
|
|
19677
|
modOS by @Huseyin | Stardance
|
Huseyin
|
2
|
69.87
|
203
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T14:51:27Z", "hours": 47.0, "multiplier": 4.4, "payout": 203, "blessing": "neutral", "text": "modOS Sevda Çiçeği: A fully open-source, modular, and multi-platform webOS. Features: modOS, unlike other webOS projects, has a plentiful of unique features allowing more customization: Modular build. Developer friendly API’s Pre-built desktop Account service And many more! Usage: modOS can be used everywhere by anyone, making it a great option for people on the move. Development: modOS comes with API’s to allow integration and make it easier for developers to make new packages.", "repo": "https://github.com/krambo345/modOS", "demo": "https://modos.krambo.space"}, {"ship_num": 2, "ts": "2026-06-30T18:15:01Z", "hours": 17.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Welcome to modOS v1.0.0 Cambaz. It is a full webOS that comes with the basics of a computer. This full (almost) stable release is modular, flexible, and heavily optimized to up stand multiple situations. There were many challenges when it came to converting what I did from the guide into a modular system. It came with many problems, errors, lack of sleep, so on and so forth. Thanks to Lil ’G(PT), I was able to automate small tasks like converting HTML apps to a format that could be published in JSON. Features of modOS Cambaz: A fully modular system, with the ability to publish your own JS files with others. A small “terminal” named run. Package/App manager. Bartender(the bar of modOS) WER (Window Manager of modOS) Automated system set up. Developer friendly design. An aesthetic that combines 2000s retro and today’s modern. From here, the future releases of modOS will focus on making a full, complete package manager which makes distributing and receiving applications across modOS more easy. NOTE: In order to use many of the special features of modOS, you have to download and run modOS locally on your device. The picture shows what you would get in an out-of-the-box experience.", "repo": "https://github.com/krambo345/modOS", "demo": "https://modos.krambo.space"}]...
|
[{"post_id": 68315, "ts": "202 [{"post_id": 68315, "ts": "2026-09-14T22:29:25Z", "hours": 2.7064, "text": "SO MUCH BETTER! modOS is now more than just a template for your OS. It now makes it easier to template your own web OS! New Additions Settings package Splash Screen(you can turn it off in settings!) Saving settings 💾 Uses With these new features, your modOS account will officially have a working function. You can open your environment wherever you want. Future Plans Saving installed packages Saving user-made files/folders(There is already a immature version, however it does not work). Package development IDE. Customized Splash Screen Notification Daemon D-Bus Events 😟 Problems That Occured Resetting custom CSS. New user check(supposed to work. literally no reason it should not) Send Recommendations/Suggestions Sorry for excess use of EMOJIS they are fun"}, {"post_id": 67589, "ts": "2026-09-13T18:52:38Z", "hours": 3.1647, "text": "A Path to Stable From the previous… and unsuccessful ship… I learned many things that could improve modOS(other than a temporary Firebase bug🙄) First of all, there were a lot of bugs. A plenty of the time reported on this devlog are from bug fixing. Secondly, seems like people want to be able to customize the preinstalled system. So I have been working on a settings package to allow managing your account and CUSTOMIZING your system! DISCOVERY❗! Apperiantly, because modOS is modular by design, and because you can import packages, and because you can edit those packages, it turns out app development in the sense of an IDE is by design built in to modOS! With this, I was able to resolve many package related bugs running in a live environment, and even build packages! This will be utilized even more to hopefully make a full modern IDE package for anyone to use and build packages!!! Check out the video below for demonstration! I am looking for ideas, so please hit me up with some!"}, {"post_id": 47520, "ts": "2026-08-15T14:07:54Z", "hours": 8.6556, "text": "Adding stuff As of now, modOS comes with pre-installed packages to get you, the user, started. These include terminal, desktop, bartender, wer(window manager), editor, and more! With these packages you can install more packages(that do not exist yet). Do you want to be a developer? modOS is made to be one of the most developer friendly webOS’s out there! With over 10 different API’s, you can build applications that are easily integrated into the system. You can check out the source code of each package I made for modOS via first, finding the package with ls packages (in terminal) and then reading them with cat packages/PACKAGE (also in terminal)! oooor just go to the krambools github repository https://github.com/krambo345/krambools Bootstrap recovery Bootstrap works right now, for me. However, if anyone else gets errors while booting modOS, they will have the opportunity to repair it via bootstrap recovery that is presented upon failure. link due to a situation, i can not put modOS link to the information. use this link to access modOS: https://modos.krambo.space Thank yall"}, {"post_id": 45147, "ts": "2026-08-11T13:30:21Z", "hours": 11.2347, "text": "BOOYAH! After so long, we finally have VISUAL IMPROVEMENT!!! Before we start, I would appreciate if y’all followed modOS! Link: modos.krambo.space New Additions: You can now install(via packer get) or remove(via packer remove) ANY PACKAGE(from existing directory, use packer fetch for a list) You get some propriety software for modOS so it is easier for you to do stuff :) Package delivered commands! Developers can implement their own commands and API’s to the modOS ecosystem! API integration into packages Dependencies work flow modOS-VT has officially been made modOS, with the original being retired under modOS-pre. It will be removed from GitHub soon. And MANY more minor updates! Things that are needed to be fixed Guest option does not work, special rules needed to be implemented. packer.get API blindly makes a new blob file every time it is used(potential memory leak) There is no settings feature(yet), so the accounts are pretty useless rn. Sorry. And yeah that’s it to my knowledge DEVELOPERS!!! You can officially use the modOS API to make an application for the modOS ecosystem! Sadly, we do not have any documentation, but you can see the existing packages I made for reference, I tried my best to make it easy on y’all! https://github.com/krambo345/krambools/tree/master Publishing If you are a developer that made an application for modOS(tysm!), there sadly is no official way to register the application to modOS(yet!). It is still being implemented. Please hold on to your application until there is a method. Follow this project to be updated for when it is implemented! Thank you! Disclaimers: AI has been heavily used in this part of the project due to the advanced levels of TS used(that I can’t do myself). In my defense, this is the first project I ever made using TypeScript and Vite. Almost every new feature exposes me to another new thing(and problem) to learn!"}, {"post_id": 42585, "ts": "2026-08-07T12:28:48Z", "hours": 7.7994, "text": "Tada! modOS-VT is SO close to being done! I feel it! Disclaimers AI was heavily used at this point of the project. The reason is that the code was starting to get very messy(and not cool looking), which is why I asked AI to REORGANIZE the code. It basically took what I wrote, made them more organized, and made the connections. It is more than likely that the AI added a few of lines itself. Alongside that, I used AI to COMPLETELY make a terminal system using xterm.js(node module). The reason is, xterm has one of the worst and most incomplete documentations I ever saw. I really couldn’t make it myself after three tries. And finally, I used AI to make a package installation/launching system, as that would lead me into parts of Java/Type Script that I previously had no experience with. I am still trying to learn how to make it myself, however. I am very sorry for the heavy usage of AI. This is a very niche project that you can not find a lot of information for. I believe the code still meets AI requirements of Stardance. New Additions There is a fully set-up(with a Firebase back end) account management system to signup or login users. There is a guest option for people who just want to try it out! System-wide terminal. It is made so different software can be built on it! Package installation and launching: This is HUGE! This is what was needed to make modOS MODULAR ! New API’s Very cool and clean looking code(developer friendly). Future Updates modOS-VT will be rebranded to just modOS. There will be some base packages that are needed to make. A README.md for developers with the instructions on making a package. And yeah that is what’s left for modOS-VT."}, {"post_id": 28076, "ts": "2026-07-14T03:22:04Z", "hours": 9.6597, "text": "Longer Yet Shorter [Dev Post 6] After some long work, modOS is finally getting easier to get done. But it’s not done just yet. What is new? modOS now has some basic API’s, which will be used in the future by developers to make applications that can be fully integrated into the ecosystem. Bootstrap is reaching completion, which will bring us to the next step: display. We also have one of the most important functions of an OS, file management! modOS utilizes zenfs/core to store files and folders(alongside their structure) in memory! This will allow the creation of file explorers, document making, and more! This is also a crucial piece to make a modular OS. What is needed? modOS still needs some more API’s, most which will come from packages. Due to that, the next dev post should be of packer, the official package manager for modOS. It will be the connectiong between users, database, and developers. User <--> Database <--> Developer Meaning dev’s will be able to publish packages, and user’s will be able to download them! And finally, we need an account session thingy to keep track of each user’s installed packages. This also will allow the usage of YOUR modOS anywhere! Final Regards pretty cool"}, {"post_id": 25326, "ts": "2026-07-09T15:28:04Z", "hours": 6.805, "text": "A New Beginning [Dev Post 5] Here is what I got done ever since I announced modOS Sevda Çiçeği! git init So we now have modOS-VT as a GitHub repository. It’s pretty cool. VT stands for Vite Type, indicating how the project utilizes Vite and TypeScript instead of just html and javascript. What is made? I made: A bootstrap, which initializes every service necessary for modOS runtime. Basic system. Firebase!!! Jeez, why did it take 7 hours? Well, my friend, modOS is completely modular. So there is a bit of contradiction when I need to make a bootstrap that launches things, if there is no things . I worked on making a placeholder for almost everything. Core Idea modOS will be just like any other Linux distribution. You have the base system that gives you whatever you need. And you install user-generated content with a package manager! It will be so cool! But right now, I am still working on making the base system part. PSST! Do you want to contribute to modOS by making an app for it? Well you absolutely can! Right now it’s a bit difficult as there is no modOS . However, you can develop applications using typescript any time! Later modOS versions will come with API’s that you can integrate your app into the modOS ecosystem. Challenges The main challenge was getting started with modOS… again… but when I did start, it starts flowing like butter. What I LOVE about modOS right now: Because modOS-VT is built on Vite, I can use packages and make it easier to use with GitHub pages! I did not have to make 15 commits for a bug fix while setting up GitHub pages! Final Regards Thank you. :)"}, {"post_id": 19732, "ts": "2026-07-01T03:52:27Z", "hours": 3.1253, "text": "Announcing modOS Sevda Çiçeği Concept After completing the pretty underdeveloped modOS Cambaz, I think it is time we move on to a full, stable, environment. Plans for modOS Sevda Çiçeği: A fully modular webOS where you can change everything from the window rules to the very development environment. A package manager for distributing, installing, and managing user created packages. A full modOS API for consistency and compatibality. And MANY more. Here is a checklist/roadmap for modOS that you can follow as I check off the tasks: https://docs.google.com/document/d/1H7caegzGowVeYkntmm87eaJ8XJtSyU1Pbvb5vVNmgYI/edit?usp=sharing Logged hours for this dev post come from earlier bug fixes and polishing to modOS Cambaz alongside the making of modOS Sevda Çiçeği"}, {"post_id": 19271, "ts": "2026-06-30T15:17:32Z", "hours": 6.3744, "text": "The End..? [Dev Post 4] With the guide finally being done, I announce modOS v1.0.0 Cambaz . Before I nerd out about everything added, here is more information about Mor ve Ötesi , the band behind Cambaz: https://en.wikipedia.org/wiki/Mor_ve_%C3%B6tesi Why is modOS different? Well, throughout the path of following the guide and making modOS, I completely rejected the idea of a hard-coded anything. Sure, it might be open-source, but what is the point of open-source if changing the source is going to take many hours of coding? modOS competes against a permanent webOS. The following features highlight how modOS achieves that: modOS does not have any hard-coded applications, bar, desktop, etc. Every app is found in a JSON file (apps.json located in /base/system/) which can be modified to install any application you want, easily! Currently this step is manual, and there is no official repository of verified applications. However, that is subject to change. Bartender (the bar system of modOS) is a JavaScript file (bartender.js found in /base/system/bartender.js) which can be modified to make the bar whatever you want! WER (Window Manager for modOS) is a script that inserts window functions such as the minimize and close buttons alongside the name of the window, icon, and movement system. The whole script is launched with initwindow(win) where win is the main window element. Got confused with the initwindow(win) command? Not to worry, modOS comes with the exec command, which follows the format exec(appname, icon) , where you can determine the name of the application ( REQUIRED ) and its icon ( NOT REQUIRED ). Whenever the command is run, the script ( exec.js found in /base/system/ ) looks through apps.json and pulls the necessary content and scripts, giving you a fully functional app. Note: If you decide to use a custom icon with an existing app, exec.js will still use the icon used in the database to maintain the developers creativity! So are you even more lazy? Cuz modOS desktop shows every app in apps.json for easier access. All you need is the ability to double click the app you want! Note: Psst! There are hidden applications. You need to run showhidden() to show them, and hidehidden() if you would like to hide them back. You can customize modOS off of the base CSS by editing config.css (config.css found in /system/user/) Default Applications List App Template: It is a template for you to make your own app! (hidden by default) run: An alternative for the developer console that comes with modern browsers. A great option for mobile users or older, unsupported browsers. Release Notes: Your updated news for modOS! Theme Song: The theme song of modOS! Plays Cambaz by Mor ve Ötesi. Future Updates A signup/login system is planned to be added for cross-platform sync ability (e.g. apps, settings, customizations, etc). This will be optional and you can still use modOS as a guest. modOS developer mode: A way for you to build applications for you and others on modOS! Window minimization: Currently, windows do get minimized. However, you really cannot un-minimize them without running the command document.querySelector(\".win\").style.display=\"block\" , which is unreliable and annoying. More applications: You will use modOS developer mode to develop applications for the ecosystem. No more work for me."}, {"post_id": 18381, "ts": "2026-06-29T14:53:03Z", "hours": 7.1789, "text": "A Big Jump [Dev Post 3] Here is an update of what I’ve been working on over the weekend. And there is a lot! Window Movement I followed the guide to make windows movable. However, there was a challenge. Challenge If I want to make modOS modular, how could I identify user-made windows? The guide showed a hard-coded movement system, but that would mean other people couldn’t make their own apps! Solution I used .querySelector to give every window of the same class movement functionality while keeping each instance separate. This means no matter how many windows of the same app you make, they’ll all be movable! So yes, you could have 30 copies of the same ping pong app ( not on modOS… yet ) and every window would work normally. Account Feature (Still in Progress) This is mainly what took most of the 7 hours I logged today. What was used? I used Firebase to establish a backend where user info would be stored. The info consists of a username, password, and user data. The first two are self-explanatory, but the data will store user changes to their OS so they can jump back in where they left off. Challenges The account creation script should theoretically work. However, I didn’t build the project around a package manager. Firebase works much better with one, meaning the project would need to be migrated to a framework like Vite. Solution There is a solution: create a new repository with Vite installed, then move everything over. I really didn’t want to deal with that right now, so the account feature will be implemented once the base build of modOS is complete. App Launching You can now use a terminal interface to launch apps! Challenges To keep apps modular while still being… apps, I couldn’t just say “open this app.” I needed users to be able to define a preferred name, icon, and content. The first two were easy, but I also needed a list of apps and their content. This way, future modOS developers can publish their applications to the modOS environment. Solution There is now an apps.json file with a full list of apps ( 1 app right now ). Whenever you launch an app via exec(name, icon) from the Dev Console, it checks whether the app exists in the JSON file and, if it does, fetches its corresponding content. A Step Towards Modular… modOS is officially MODULAR ! What is modular as of now? Many things! I scratched the modular clock idea from the previous Dev Post… AND REPLACED IT WITH A COMPLETELY MODULAR BAR!!! So now the entire bar is modular. :) Apps are now modular too! You can launch any app via exec(name, icon) in the Dev Console (often opened with F12) to render a new window with your preferred name and icon. The clock idea was scratched… BUT THE CLOCK ITSELF IS STILL MODULAR! Challenges Making things modular takes a lot of time. You don’t just write your program in HTML anymore—you have to generate it through JavaScript. To make it modular, individual variables need to go through their own processes before everything connects together. And of course… that usually comes with a bug or two. Solution Uh… yeah, that was the challenge. Doesn’t really need a solution. Releases From now on, every new release will be named after a song from a 2000s Turkish Alternative Rock band. The next major release will be called: modOS v0.x.x-alpha [Mor Ve Ötesi - Cambaz] Make sure you give it a listen. It’s a banger! Final Thoughts I think the project is going very well. It’s taking a lot of time, but it’s worthwhile since I’m learning new things about a programming language I’ve been using for five years now. I’m hoping to add more features, finish the base build, and finally move on to the backend side of things."}, {"post_id": 10467, "ts": "2026-06-17T06:18:54Z", "hours": 2.2683, "text": "Getting Started [Dev Post 2] Today, I did not do much visual progress. However, there is way more that goes on in the background. What’s new? We now have a bar tender. There is a clock now. But it’s not just any clock, this clock is MODULAR ! A very fancy weather widget with a very (not) fancy API. A MODULAR Clock? What does that mean? I’m glad you asked. Unlike a traditional clock, this clock actually is separated in multiple tags. That means you can move the tags around to change the order of the clock values. API This Dev Post is sponsored by wttr.in! With it’s simple, no sign-up, and no data limit, wttr.in is in my top 5 API’s. With a single fetch , we achieve great things like burnin’ hot weather. Notes: The clock is by definition modular, however not too accessible. This will be fixed with future updates. No, this Dev Post is not actually sponsored. You can check out the current state of modOS here ."}, {"post_id": 9757, "ts": "2026-06-16T05:59:35Z", "hours": 1.2353, "text": "modOS v0.0.1-alpha [Dev Post 1] This is a base release for an early preview of the main idea for modOS. Current “features” Website loads. Backgrounds. Base window infrastructure. Cool window hover/leave effect. :D Notes: Although the project is supposed to be modular, it is still in early development. So every line is hard-coded and is not modular."}]...
|
Title: modOS by @Huseyin | Stardance
Devlogs:
mod Title: modOS by @Huseyin | Stardance
Devlogs:
modOS v0.0.1-alpha [Dev Post 1] This is a base release for an early preview of the main idea for modOS. Current “features” Website loads. Backgrounds. Base window infrastructure. Cool window hover/leave effect. :D Notes: Although the project is supposed to be modular, it is still in early development. So every line is hard-coded and is not modular.
Getting Started [Dev Post 2] Today, I did not do much visual progress. However, there is way more that goes on in the background. What’s new? We now have a bar tender. There is a clock now. But it’s not just any clock, this clock is MODULAR ! A very fancy weather widget with a very (not) fancy API. A MODULAR Clock? What does that mean? I’m glad you asked. Unlike a traditional clock, this clock actually is separated in multiple tags. That means you can move the tags around to change the order of the clock values. API This Dev Post is sponsored by wttr.in! With it’s simple, no sign-up, and no data limit, wttr.in is in my top 5 API’s. With a single fetch , we achieve great things like burnin’ hot weather. Notes: The clock is by definition modular, however not too accessible. This will be fixed with future updates. No, this Dev Post is not actually sponsored. You can check out the current state of modOS here .
A Big Jump [Dev Post 3] Here is an update of what I’ve been working on over the weekend. And there is a lot! Window Movement I followed the guide to make windows movable. However, there was a challenge. Challenge If I want to make modOS modular, how could I identify user-made windows? The guide showed a hard-coded movement system, but that would mean other people couldn’t make their own apps! Solution I used .querySelector to give every window of the same class movement functionality while keeping each instance separate. This means no matter how many windows of the same app you make, they’ll all be movable! So yes, you could have 30 copies of the same ping pong app ( not on modOS… yet ) and every window would work normally. Account Feature (Still in Progress) This is mainly what took most of the 7 hours I logged today. What was used? I used Firebase to establish a backend where user info would be stored. The info consists of a username, password, and user data. The first two are self-explanatory, but the data will store user changes to their OS so they can jump back in where they left off. Challenges The account creation script should theoretically work. However, I didn’t build the project around a package manager. Firebase works much better with one, meaning the project would need to be migrated to a framework like Vite. Solution There is a solution: create a new repository with Vite installed, then move everything over. I really didn’t want to deal with that right now, so the account feature will be implemented once the base build of modOS is complete. App Launching You can now use a terminal interface to launch apps! Challenges To keep apps modular while still being… apps, I couldn’t just say “open this app.” I needed users to be able to define a preferred name, icon, and content. The first two were easy, but I also needed a list of apps and their content. This way, future modOS developers can publish their applications to the modOS environment. Solution There is now an apps.json file with a full list of apps ( 1 app right now ). Whenever you launch an app via exec(name, icon) from the Dev Console, it checks whether the app exists in the JSON file and, if it does, fetches its corresponding content. A Step Towards Modular… modOS is officially MODULAR ! What is modular as of now? Many things! I scratched the modular clock idea from the previous Dev Post… AND REPLACED IT WITH A COMPLETELY MODULAR BAR!!! So now the entire bar is modular. :) Apps are now modular too! You can launch any app via exec(name, icon) in the Dev Console (often opened with F12) to render a new window with your preferred name and icon. The clock idea was scratched… BUT THE CLOCK ITSELF IS STILL MODULAR! Challenges Making things modular takes a lot of time. You don’t just write your program in HTML anymore—you have to generate it through JavaScript. To make it modular, individual variables need to go through their own processes before everything connects together. And of course… that usually comes with a bug or two. Solution Uh… yeah, that was the challenge. Doesn’t really need a solution. Releases From now on, every new release will be named after a song from a 2000s Turkish Alternative Rock band. The next major release will be called: modOS v0.x.x-alpha [Mor Ve Ötesi - Cambaz] Make sure you give it a listen. It’s a banger! Final Thoughts I think the project is going very well. It’s taking a lot of time, but it’s worthwhile since I’m learning new things about a programming language I’ve been using for five years now. I’m hoping to add more features, finish the base build, and finally move on to the backend side of things.
The End..? [Dev Post 4] With the guide finally being done, I announce modOS v1.0.0 Cambaz . Before I nerd out about everything added, here is more information about Mor ve Ötesi , the band behind Cambaz: https://en.wikipedia.org/wiki/Mor_ve_%C3%B6tesi Why is modOS different? Well, throughout the path of following the guide and making modOS, I completely rejected the idea of a hard-coded anything. Sure, it might be open-source, but what is the point of open-source if changing the source is going to take many hours of coding? modOS competes against a permanent webOS. The following features highlight how modOS achieves that: modOS does not have any hard-coded applications, bar, desktop, etc. Every app is found in a JSON file (apps.json located in /base/system/) which can be modified to install any application you want, easily! Currently this step is manual, and there is no official repository of verified applications. However, that is subject to change. Bartender (the bar system of modOS) is a JavaScript file (bartender.js found in /base/system/bartender.js) which can be modified to make the bar whatever you want! WER (Window Manager for modOS) is a script that inserts window functions such as the minimize and close buttons alongside the name of the window, icon, and movement system. The whole script is launched with initwindow(win) where win is the main window element. Got confused with the initwindow(win) command? Not to worry, modOS comes with the exec command, which follows the format exec(appname, icon) , where you can determine the name of the application ( REQUIRED ) and its icon ( NOT REQUIRED ). Whenever the command is run, the script ( exec.js found in /base/system/ ) looks through apps.json and pulls the necessary content and scripts, giving you a fully functional app. Note: If you decide to use a custom icon with an existing app, exec.js will still use the icon used in the database to maintain the developers creativity! So are you even more lazy? Cuz modOS desktop shows every app in apps.json for easier access. All you need is the ability to double click the app you want! Note: Psst! There are hidden applications. You need to run showhidden() to show them, and hidehidden() if you would like to hide them back. You can customize modOS off of the base CSS by editing config.css (config.css found in /system/user/) Default Applications List App Template: It is a template for you to make your own app! (hidden by default) run: An alternative for the developer console that comes with modern browsers. A great option for mobile users or older, unsupported browsers. Release Notes: Your updated news for modOS! Theme Song: The theme song of modOS! Plays Cambaz by Mor ve Ötesi. Future Updates A signup/login system is planned to be added for cross-platform sync ability (e.g. apps, settings, customizations, etc). This will be optional and you can still use modOS as a guest. modOS developer mode: A way for you to build applications for you and others on modOS! Window minimization: Currently, windows do get minimized. However, you really cannot un-minimize them without running the command document.querySelector(".win").style.display="block" , which is unreliable and annoying. More applications: You will use modOS developer mode to develop applications for the ecosystem. No more work for me.
Announcing modOS Sevda Çiçeği Concept After completing the pretty underdeveloped modOS Cambaz, I think it is time we move on to a full, stable, environment. Plans for modOS Sevda Çiçeği: A fully modular webOS where you can change everything from the window rules to the very development environment. A package manager for distributing, installing, and managing user created packages. A full modOS API for consistency and compatibality. And MANY more. Here is a checklist/roadmap for modOS that you can follow as I check off the tasks: https://docs.google.com/document/d/1H7caegzGowVeYkntmm87eaJ8XJtSyU1Pbvb5vVNmgYI/edit?usp=sharing Logged hours for this dev post come from earlier bug fixes and polishing to modOS Cambaz alongside the making of modOS Sevda Çiçeği
A New Beginning [Dev Post 5] Here is what I got done ever since I announced modOS Sevda Çiçeği! git init So we now have modOS-VT as a GitHub repository. It’s pretty cool. VT stands for Vite Type, indicating how the project utilizes Vite and TypeScript instead of just html and javascript. What is made? I made: A bootstrap, which initializes every service necessary for modOS runtime. Basic system. Firebase!!! Jeez, why did it take 7 hours? Well, my friend, modOS is completely modular. So there is a bit of contradiction when I need to make a bootstrap that launches things, if there is no things . I worked on making a placeholder for almost everything. Core Idea modOS will be just like any other Linux distribution. You have the base system that gives you whatever you need. And you install user-generated content with a package manager! It will be so cool! But right now, I am still working on making the base system part. PSST! Do you want to contribute to modOS by making an app for it? Well you absolutely can! Right now it’s a bit difficult as there is no modOS . However, you can develop applications using typescript any time! Later modOS versions will come with API’s that you can integrate your app into the modOS ecosystem. Challenges The main challenge was getting started with modOS… again… but when I did start, it starts flowing like butter. What I LOVE about modOS right now: Because modOS-VT is built on Vite, I can use packages and make it easier to use with GitHub pages! I did not have to make 15 commits for a bug fix while setting up GitHub pages! Final Regards Thank you. :)
Longer Yet Shorter [Dev Post 6] After some long work, modOS is finally getting easier to get done. But it’s not done just yet. What is new? modOS now has some basic API’s, which will be used in the future by developers to make applications that can be fully integrated into the ecosystem. Bootstrap is reaching completion, which will bring us to the next step: display. We also have one of the most important functions of an OS, file management! modOS utilizes zenfs/core to store files and folders(alongside their structure) in memory! This will allow the creation of file explorers, document making, and more! This is also a crucial piece to make a modular OS. What is needed? modOS still needs some more API’s, most which will come from packages. Due to that, the next dev post should be of packer, the official package manager for modOS. It will be the connectiong between users, database, and developers. User <--> Database <--> Developer Meaning dev’s will be able to publish packages, and user’s will be able to download them! And finally, we need an account session thingy to keep track of each user’s installed packages. This also will allow the usage of YOUR modOS anywhere! Final Regards pretty cool
Tada! modOS-VT is SO close to being done! I feel it! Disclaimers AI was heavily used at this point of the project. The reason is that the code was starting to get very messy(and not cool looking), which is why I asked AI to REORGANIZE the code. It basically took what I wrote, made them more organized, and made the connections. It is more than likely that the AI added a few of lines itself. Alongside that, I used AI to COMPLETELY make a terminal system using xterm.js(node module). The reason is, xterm has one of the worst and most incomplete documentations I ever saw. I really couldn’t make it myself after three tries. And finally, I used AI to make a package installation/launching system, as that would lead me into parts of Java/Type Script that I previously had no experience with. I am still trying to learn how to make it myself, however. I am very sorry for the heavy usage of AI. This is a very niche project that you can not find a lot of information for. I believe the code still meets AI requirements of Stardance. New Additions There is a fully set-up(with a Firebase back end) account management system to signup or login users. There is a guest option for people who just want to try it out! System-wide terminal. It is made so different software can be built on it! Package installation and launching: This is HUGE! This is what was needed to make modOS MODULAR ! New API’s Very cool and clean looking code(developer friendly). Future Updates modOS-VT will be rebranded to just modOS. There will be some base packages that are needed to make. A README.md for developers with the instructions on making a package. And yeah that is what’s left for modOS-VT.
BOOYAH! After so long, we finally have VISUAL IMPROVEMENT!!! Before we start, I would appreciate if y’all followed modOS! Link: modos.krambo.space New Additions: You can now install(via packer get) or remove(via packer remove) ANY PACKAGE(from existing directory, use packer fetch for a list) You get some propriety software for modOS so it is easier for you to do stuff :) Package delivered commands! Developers can implement their own commands and API’s to the modOS ecosystem! API integration into packages Dependencies work flow modOS-VT has officially been made modOS, with the original being retired under modOS-pre. It will be removed from GitHub soon. And MANY more minor updates! Things that are needed to be fixed Guest option does not work, special rules needed to be implemented. packer.get API blindly makes a new blob file every time it is used(potential memory leak) There is no settings feature(yet), so the accounts are pretty useless rn. Sorry. And yeah that’s it to my knowledge DEVELOPERS!!! You can officially use the modOS API to make an application for the modOS ecosystem! Sadly, we do not have any documentation, but you can see the existing packages I made for reference, I tried my best to make it easy on y’all! https://github.com/krambo345/krambools/tree/master Publishing If you are a developer that made an application for modOS(tysm!), there sadly is no official way to register the application to modOS(yet!). It is still being implemented. Please hold on to your application until there is a method. Follow this project to be updated for when it is implemented! Thank you! Disclaimers: AI has been heavily used in this part of the project due to the advanced levels of TS used(that I can’t do myself). In my defense, this is the first project I ever made using TypeScript and Vite. Almost every new feature exposes me to another new thing(and problem) to learn!
Adding stuff As of now, modOS comes with pre-installed packages to get you, the user, started. These include terminal, desktop, bartender, wer(window manager), editor, and more! With these packages you can install more packages(that do not exist yet). Do you want to be a developer? modOS is made to be one of the most developer friendly webOS’s out there! With over 10 different API’s, you can build applications that are easily integrated into the system. You can check out the source code of each package I made for modOS via first, finding the package with ls packages (in terminal) and then reading them with cat packages/PACKAGE (also in terminal)! oooor just go to the krambools github repository https://github.com/krambo345/krambools Bootstrap recovery Bootstrap works right now, for me. However, if anyone else gets errors while booting modOS, they will have the opportunity to repair it via bootstrap recovery that is presented upon failure. link due to a situation, i can not put modOS link to the information. use this link to access modOS: https://modos.krambo.space Thank yall
A Path to Stable From the previous… and unsuccessful ship… I learned many things that could improve modOS(other than a temporary Firebase bug🙄) First of all, there were a lot of bugs. A plenty of the time reported on this devlog are from bug fixing. Secondly, seems like people want to be able to customize the preinstalled system. So I have been working on a settings package to allow managing your account and CUSTOMIZING your system! DISCOVERY❗! Apperiantly, because modOS is modular by design, and because you can import packages, and because you can edit those packages, it turns out app development in the sense of an IDE is by design built in to modOS! With this, I was able to resolve many package related bugs running in a live environment, and even build packages! This will be utilized even more to hopefully make a full modern IDE package for anyone to use and build packages!!! Check out the video below for demonstration! I am looking for ideas, so please hit me up with some!
SO MUCH BETTER! modOS is now more than just a template for your OS. It now makes it easier to template your own web OS! New Additions Settings package Splash Screen(you can turn it off in settings!) Saving settings 💾 Uses With these new features, your modOS account will officially have a working function. You can open your environment wherever you want. Future Plans Saving installed packages Saving user-made files/folders(There is already a immature version, however it does not work). Package development IDE. Customized Splash Screen Notification Daemon D-Bus Events 😟 Problems That Occured Resetting custom CSS. New user check(supposed to work. literally no reason it should not) Send Recommendations/Suggestions Sorry for excess use of EMOJIS they are fun
Ships:
Welcome to modOS v1.0.0 Cambaz. It is a full webOS that comes with the basics of a computer. This full (almost) stable release is modular, flexible, and heavily optimized to up stand multiple situations. There were many challenges when it came to converting what I did from the guide into a modular system. It came with many problems, errors, lack of sleep, so on and so forth. Thanks to Lil ’G(PT), I was able to automate small tasks like converting HTML apps to a format that could be published in JSON. Features of modOS Cambaz: A fully modular system, with the ability to publish your own JS files with others. A small “terminal” named run. Package/App manager. Bartender(the bar of modOS) WER (Window Manager of modOS) Automated system set up. Developer friendly design. An aesthetic that combines 2000s retro and today’s modern. From here, the future releases of modOS will focus on making a full, complete package manager which makes distributing and receiving applications across modOS more easy. NOTE: In order to use many of the special features of modOS, you have to download and run modOS locally on your device. The picture shows what you would get in an out-of-the-box experience.
modOS Sevda Çiçeği: A fully open-source, modular, and multi-platform webOS. Features: modOS, unlike other webOS projects, has a plentiful of unique features allowing more customization: Modular build. Developer friendly API’s Pre-built desktop Account service And many more! Usage: modOS can be used everywhere by anyone, making it a great option for people on the move. Development: modOS comes with API’s to allow integration and make it easier for developers to make new packages....
|
1792997664.9169457
|
1793084064.9169457
|
|
51229
|
Utility Box by @Avmovito | Stardance
|
Avmovito
|
0
|
69.71
|
0
|
[]
|
[{"post_id": 50112, "ts": "202 [{"post_id": 50112, "ts": "2026-08-19T05:37:58Z", "hours": 69.7072, "text": "i have started this project after june 1 but i didn’t updated any vlog to stardance let bcs i didn’t know that the event is happening but i have saved every thing in not pad so i was giving it here 1 home page(in this log i created a the home page of the website in it we hve a serch bar that we can serch for the tolls we have and te item box was also created and it also created the logo it was not completed ) 2first tool (as the first tool of this project, I decided to create a calculator so for that i first created the logo for it) 3 calculator completed(The tool calculator was completed today. As it was a simple tool, it only took a small time As we have completed the calculator, we established the new tool password generator by generating the logo for it) 4 another section (in this log i have completed the password genarator and the logo for it and made some changes to the logo of the calculator and connected all to the main page ) 5 anther section and a logo update (i have completed an another tool stopwatch and the logo for and we also make some change in the the logo of other tools bcse they arre not matching with the colour theme of the web site) 6 big update(In the past few weeks we have added so many feature and tools .theme switcher .Currency Converter .loan Calculator .BP result .password Genarator .Unit Converter)"}]...
|
Title: Utility Box by @Avmovito | Stardance
Devlo Title: Utility Box by @Avmovito | Stardance
Devlogs:
i have started this project after june 1 but i didn’t updated any vlog to stardance let bcs i didn’t know that the event is happening but i have saved every thing in not pad so i was giving it here 1 home page(in this log i created a the home page of the website in it we hve a serch bar that we can serch for the tolls we have and te item box was also created and it also created the logo it was not completed ) 2first tool (as the first tool of this project, I decided to create a calculator so for that i first created the logo for it) 3 calculator completed(The tool calculator was completed today. As it was a simple tool, it only took a small time As we have completed the calculator, we established the new tool password generator by generating the logo for it) 4 another section (in this log i have completed the password genarator and the logo for it and made some changes to the logo of the calculator and connected all to the main page ) 5 anther section and a logo update (i have completed an another tool stopwatch and the logo for and we also make some change in the the logo of other tools bcse they arre not matching with the colour theme of the web site) 6 big update(In the past few weeks we have added so many feature and tools .theme switcher .Currency Converter .loan Calculator .BP result .password Genarator .Unit Converter)...
|
1792939858.9790218
|
1793803858.9790218
|
|
20070
|
Action Bar by @Joseph-T | Stardance
|
Joseph-T
|
2
|
69.6
|
970
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-18T19:12:56Z", "hours": 21.0, "multiplier": 13.84, "payout": 279, "blessing": "neutral", "text": "Version 2. What changed in Version 2: Safer extension marketplace Far better DDG search and app opening functionality Improved calculator Aliases Fixed a lot of small bugs Added the icon of the app you are opening ====================================== What is it? Action bar an application that more easily allows for quick actions and allows for users to open apps very easily. Challenges: I have never coded anything that people other than me actually use, so there is more pressure to sort out the small bugs and improve the UX How To Use: In order to open the application you can press Alt + Z a shortcut that can be configured. Or press the Icon in the bottom right corner. More information in the read me file.", "repo": "https://github.com/joseph-tighe/Action-Bar", "demo": "https://github.com/joseph-tighe/Action-Bar/releases"}, {"ship_num": 2, "ts": "2026-07-04T23:51:22Z", "hours": 43.0, "multiplier": 16.45, "payout": 691, "blessing": "neutral", "text": "What is it? Action bar an application that more easily allows for quick actions and allows for users to open apps very easily. Challenges: One of the hardest challenges was allowing the user to make their own extensions and to allow for them to share it with others in the end I managed to make an extension “marketplace” (a bit empty but it works). How To Use: In order to open the application you can press Alt + Z a shortcut that can be configured. Or press the Icon in the bottom right corner. More information in the read me file. Features: This application lets you: quickly open apps Run custom extensions Pipe extensions together.", "repo": "https://github.com/joseph-tighe/Action-Bar", "demo": "https://github.com/joseph-tighe/Action-Bar/releases"}]...
|
[{"post_id": 57679, "ts": "202 [{"post_id": 57679, "ts": "2026-08-29T22:15:28Z", "hours": 1.4392, "text": "Changes Made Added a confirmation modal for the extension marketplace, hid the users home path, and Fixed a bunch of bugs. Confirmation Modal I added a modal that warns users against downloading extensions that could be harmful. Hiding the users home directory In the scenario that the user is recording a video or something where they use this app their user name on their computer could have been revealed, which is not good to say the least. Now that is no longer an issue, because we obfuscate the home directory, replacing it with a tilde Bugs The Cancel button on the modal wouldn’t close it. Stuck in the download state when downloading an extension Extension marketplace still showed previously downloaded extensions"}, {"post_id": 44825, "ts": "2026-08-10T21:01:41Z", "hours": 1.2183, "text": "Changes Made I worked on fixing some bugs for linux, so it should now have support for Wayland. Wayland bug fixes Wayland is an API for accessing the user layer of a linux machine. Quite a few distro’s use Wayland for this however my code was not the most compatible with this so I needed to write a bunch of code so some components work with it. The biggest bug was that the global shortcuts were not registering. Sorry about the lack of video"}, {"post_id": 42007, "ts": "2026-08-06T15:29:30Z", "hours": 0.6931, "text": "Changes Made The app now allows for the user to select what extension they want to call using the mouse, it also has a better GitHub action yml, and finally npm tests Mouse selection Before the app was entirely keyboard driven their was nothing for the mouse to even interact with. I prefer it like this but their is now the option to select extensions with the mouse instead. GitHub actions yml The way I publish the app executable is with GitHub actions I will call an action that compiles the app and publishes the compiled app. But now it will also automatically update the version number so I don’t have to Tests I forgot to make tests for the longest time for this app and I finally realized it so I added them"}, {"post_id": 41621, "ts": "2026-08-05T22:49:42Z", "hours": 2.2536, "text": "Changes Made: I added a linux version, it should work on most distros. I also cleaned up the codebase. The linux version It may not work on all distros I only tested Fedora KDE, but from that test it looks like it functions almost fully however I still need to get the code for global shortcuts updated so that also works on linux. The file should download on most distro’s its an AppImage (the executable), not a .deb file I had one but switched to purely AppImage, soon afterwards, it should not affect the user. Cleaned up codebase All functions and classes now have docstrings, this way I can tell what I wrote the function to do later. I also removed some redundant checks."}, {"post_id": 30820, "ts": "2026-07-18T19:02:39Z", "hours": 5.6219, "text": "Changes Made Added an Icon to the app, fixed a hundred different bugs, added a fallback for the duckduckgo extension, and added the extension descriptions to the help menu The icon I added an icon its very simple, and definitely subject to change, but now it does not have the default electron icon in the task bar. Bugs Fixed Changed the codebase to made up of several modules instead of a few giant files (Should have done it a long time ago) Fixed the time formatter for the timer Changed the commit hash of the GitHub extension Changed Priority order Improved Duck duck go extension The duckduckgo extension uses their quick search API, which returns a JSON, in which the answer sometimes is in JSON.abstract and sometimes JSON.relatedTopics[0].text Now the extension looks in both places and returns the most relevant answer. Extension descriptions I recently added descriptions of the extensions in their metadata so now on the help tab you can get small descriptions of each one. Sorry about how their have been no videos but it has all been fixing a lot of small bugs most of which don’t even make it into the dev-log."}, {"post_id": 28479, "ts": "2026-07-14T18:56:43Z", "hours": 1.8217, "text": "Changes Made Added start on boot and safer extension marketplace. Start on boot The app will now set itself up so if in settings you enabled start on boot the app will automatically start itself when you boot up your computer. Safer extension marketplace The way extensions work is all the extensions listed have a GitHub repository linked so when the user downloads the extension they download it off the repository, but the developer can change the GitHub repo so after it is accepted as safe the developer can change that without any warning. So now we grab from a specific point on the git tree. However even still the Dev can change the history so we check that the commit hash matches the stored hash meaning the developer cannot change their extension after approval Sorry for the lack of videos again its really a backend change"}, {"post_id": 28098, "ts": "2026-07-14T04:26:24Z", "hours": 1.9806, "text": "Changes Made I added an auto update code and added metadata to extensions Auto update code Before I added this code a user would have to delete the current code, and reinstall the application from GitHub. However this code will automatically detect and update the app on the users machine. Added metadata to extensions This allows for extensions to give data about them to the extension marketplace giving users a better idea of what they are downloading. Sorry for the lack of videos, it was really a backend change"}, {"post_id": 27800, "ts": "2026-07-13T17:52:46Z", "hours": 2.0631, "text": "Changes Made I added aliases and Improved the search. Aliases Aliases are a user configurable feature that allows the user to type /<Shorthand> which will immediately be turned into some text. For example instead of writing “Google chrome” I can type /google which will be converted to Google Chrome Users can configure as many of these as they want. Improved search On the first ship I got complaints that the search did not always return an answer when asked questions. For example Where is Canada would return an invalid answer whilst Canada returned a valid answer. I added a fallback to make these scenarios less common."}, {"post_id": 26958, "ts": "2026-07-12T01:42:47Z", "hours": 4.9442, "text": "Changes Made Improved fonts and spacing, improved opening apps, shows the icon of the app. I also improved the calculator Improved fonts I was just using the default fonts earlier because I am not very creative, but I decided to change it to Inter and Consolas. Improved app opening Earlier to determine the apps the user has installed as a temporary solution I just scrapped their desktop. But that did not return everything, and I finally fixed it I tried a bunch but the that worked for me was using some commands through power shell. That gets all the apps that windows knows about. The icons Now the program will show the user the icon of the app they want to open. there are three different kinds of app Id’s in windows and I have to assess their photos differently for each, which added alot of complexity and is the whole reason this devlog took so long. Better calculator The calculator has a few improvements the first being it now has the constants pi and e baked into it. It can also now do square roots and trigonometric functions. The trigonometric functions are interesting because they can be done with radians or degrees if the user types sin(90deg) . It will use 90 degrees instead of the default being radians."}, {"post_id": 25475, "ts": "2026-07-09T19:28:27Z", "hours": 2.4711, "text": "Changes Made I added a list extensions feature, added extension specific settings, and removed a few nasty bugs. List all extensions feature All it does is when you press ? it will list all the extensions and you can just select the one you want from there. Extension Specific settings The settings page used to just have settings for the app now under the extensions tab will have extension specific settings that the dev of the extension can use. Bugs The implementation for removing the previous answers did not always remove all of the answers and sometimes left the user with answers that shouldn’t be there. I did a small rewrite which fixed the issue. The autocomplete feature did not like the list all expansions feature because the program will refuse to give answer past a certain amount of them to prevent 20 answers being given at once. But because the list all feature could expand to that point, the autocomplete feature thought there wasn’t enough room for it. But now I delete the previous answers before creating new ones for autocomplete."}, {"post_id": 25056, "ts": "2026-07-09T00:38:11Z", "hours": 1.5983, "text": "Changes made I made a far better readme.md file, and I added documentation for making your own extensions and pipelines Documentation I added very specific documentation for making your own extensions and pipelines. I don’t recommend making your own pipeline, because that is still in early development, but if you don’t have a stardance project yet I would absolutely recommend trying to make your own extension. It is difficult the first time but pretty easy afterwards."}, {"post_id": 22476, "ts": "2026-07-04T23:07:25Z", "hours": 0.8775, "text": "Changes Made I finalized details for easy install and using it for the first time. Simple things like improving the functionality with the tray (the bottom right icons). How to use Whenever you want to open it you can either press Alt + Z or open the tray and press the icon see the image below for an example."}, {"post_id": 21895, "ts": "2026-07-04T02:17:22Z", "hours": 11.1725, "text": "Changes Made I did a lot and forgot to make Dev logs. I allow for the user to download extensions made by anyone to add to the website. And added a feature called pipelines. Downloading Extensions Anyone can make an extension and post it on Github, following the correct format if their extension is not listed you can put the username/extension_name in the text box above. When you restart the app the extension should be downloaded. Pipelines Pipelines let users without any code pipe extensions together so If I have a google translate and a search extension I can pipe them together. so that the result of the search is then translated."}, {"post_id": 15281, "ts": "2026-06-24T20:27:38Z", "hours": 5.7508, "text": "Changes Made: Improved several answers a lot. Added selector for which answer the user wants to interact with. And added a simple settings screen. Settings screen: The settings screen is temporary, but allows users to quickly change and save app settings. Selector: When multiple answers are present one of the answers will be highlighted the user can change which one is highlighted simply using the arrow keys. And when pressing Enter or Tab. They will call that extension. Better multiple answers: The new implementations allows for extensions to better manipulate their specific answer. And gives users a better amount of control through settings over the apps functionality."}, {"post_id": 14421, "ts": "2026-06-23T15:24:46Z", "hours": 4.8994, "text": "Changes Made: I added a color picker and allowed for several tools to output at once. Color Picker Can use an eyedropper of the screen behind the interface or select from the color wheel. You can also just write out hex codes or RGB Multiple answers The main process can now handle and may call several extensions at once. The output order is determined by the order the main process calls the extensions, with an exception for asynchronous functions which get resolved upon completion. Still fixing small errors here and there in the system and may make a more intelligent main process"}, {"post_id": 12726, "ts": "2026-06-20T19:59:54Z", "hours": 3.3439, "text": "Changes Made: Added an image viewer into the file explorer, added a copy button and improved file explorer functionality File explorer The file explorer now will show a preview image if it the target file is an image. The file explorer can also now take in a folder in which the target file is in and uses a search that allows for skipping folder in case the user forgets a folder inbetween. Copy Btn It just copies the result text into the users clipboard"}, {"post_id": 12246, "ts": "2026-06-20T00:24:54Z", "hours": 0.9597, "text": "Changes Made Added autocomplete for which action should be completed and added a music player. All extensions are now properly formatted, and no exceptions are given out. Autocomplete I found it a little difficult to quickly remember and spell out the extensions names but now I only have to type the first few letters and the app will give options for what the extension could be. Music Player Just opens the requested song in YouTube music."}, {"post_id": 12097, "ts": "2026-06-19T18:59:07Z", "hours": 2.0411, "text": "Added a GitHub and Duckduckgo extension so search does not have to be based on Wikipedia. The GitHub extension is made to quickly search for repos and users, however the API used has somewhat strict rate limits, but for occasional searches it should work fine. The DuckDuckGo or the dgg extention is just a search feature"}, {"post_id": 11515, "ts": "2026-06-18T20:09:16Z", "hours": 5.0231, "text": "Added more settings, added an app opener and added a file explorer. The file explorer and app opener used to be separate but I made them the same to simplify the users experience because I think that is what the application will be used for the most. They both work pretty well the file explorer can only fetch files a limited range of files it can use files in downloads, desktop, documents, music, videos, etc, can’t look for system level files and whatnot though. Added way more settings so you can change what the default tool it should use is if it can’t find a good one to use. Updated the readme for proper credit, and a bunch of other small things. I also made it compatible with several screens."}, {"post_id": 10713, "ts": "2026-06-17T16:01:36Z", "hours": 1.6603, "text": "I switched to an extension based thing. So anyone can make their own extensions for the app. The picture is of a JSON that has the data for all the extensions at the moment. I tried making the frosted glass look by adding random noise but I was not able to make it work."}, {"post_id": 10368, "ts": "2026-06-17T01:32:39Z", "hours": 1.7442, "text": "Added settings.json, the ability to open apps, and continued to attempt a frosted glass look. Settings.json will now allow for more customization. The ability to open apps is kind of the whole point its to avoid windows weird search bar thing that’s slow and not great to use. And after doing more looking into the blur effect it looks like the only way to do it is to have some js take screenshots of whats behind the page and then save that png and load it under the transparent thing than use the blur filter but, it seems slow, complicated, and not great for cross platform, so I am still looking for other solutions"}, {"post_id": 10287, "ts": "2026-06-16T22:32:40Z", "hours": 0.8639, "text": "Added a search feature. The feature just looks up what is currently in the search bar. Unfortunately the search feature uses Wikipedia’s API, which does make it much faster, than a bot crawling through google. But is susceptible to misinformation. I don’t think this is a massive problem because I am only taking the first sentence of the article. But I may look into alternatives in the future."}, {"post_id": 10236, "ts": "2026-06-16T21:20:33Z", "hours": 0.7111, "text": "added a timer to the thing, you also can instead of relying on autodetect to figure out what action you want to take you can say @tool_name instead where tool_name is the tool you are calling"}, {"post_id": 10203, "ts": "2026-06-16T20:26:53Z", "hours": 1.2817, "text": "added conversions to the app and a global shortcut to open the app I decided on Alt+Z for the shortcut because I don’t have that mapped to anything right now and the two keys are physically close to each other. The conversion thing was interesting because there are a lot of different units for the same stuff, miles, inches, cm, km, etc. all measure length. I really did not want to make a table for every possible conversion, so I wrote a function that takes a table with enough conversions and uses that to fill out the blanks. For example if I know the conversion between ft and in and in and cm. I can solve for the conversion between ft and cm."}, {"post_id": 10134, "ts": "2026-06-16T18:55:13Z", "hours": 0.8756, "text": "I improved the looks slightly improved the functionality of the calculator. I tried for more than half this time to make the blur working unfortunately it does not appear to be possible maybe doing something with JS canvases. But if I have to use something like that the amount of compute time won’t be worth it. So I decided against doing it until there is an easy way to do that."}, {"post_id": 10092, "ts": "2026-06-16T17:55:54Z", "hours": 1.1422, "text": "Added glassy look and made a calculator app for the program. In the end I want an app that is completely transparent except for the results and search bar. Those should be tinted and blurred, but in electron the app I am using it is impossible to make a single element transparent through the apps behind it and blurred. I can do that for elements in my own app. Or the background for the entire app. So the search bar and results bar’s backgrounds are not blurred, which makes them hard to read over text."}, {"post_id": 10041, "ts": "2026-06-16T16:38:17Z", "hours": 0.9781, "text": "Made a basic looking search bar that opens when you click a little icon in the corner of the screen, doesn’t do anything besides sit there yet. I am using electron and node JS for it."}]...
|
Title: Action Bar by @Joseph-T | Stardance
Devlog Title: Action Bar by @Joseph-T | Stardance
Devlogs:
Made a basic looking search bar that opens when you click a little icon in the corner of the screen, doesn’t do anything besides sit there yet. I am using electron and node JS for it.
Added glassy look and made a calculator app for the program. In the end I want an app that is completely transparent except for the results and search bar. Those should be tinted and blurred, but in electron the app I am using it is impossible to make a single element transparent through the apps behind it and blurred. I can do that for elements in my own app. Or the background for the entire app. So the search bar and results bar’s backgrounds are not blurred, which makes them hard to read over text.
I improved the looks slightly improved the functionality of the calculator. I tried for more than half this time to make the blur working unfortunately it does not appear to be possible maybe doing something with JS canvases. But if I have to use something like that the amount of compute time won’t be worth it. So I decided against doing it until there is an easy way to do that.
added conversions to the app and a global shortcut to open the app I decided on Alt+Z for the shortcut because I don’t have that mapped to anything right now and the two keys are physically close to each other. The conversion thing was interesting because there are a lot of different units for the same stuff, miles, inches, cm, km, etc. all measure length. I really did not want to make a table for every possible conversion, so I wrote a function that takes a table with enough conversions and uses that to fill out the blanks. For example if I know the conversion between ft and in and in and cm. I can solve for the conversion between ft and cm.
added a timer to the thing, you also can instead of relying on autodetect to figure out what action you want to take you can say @tool_name instead where tool_name is the tool you are calling
Added a search feature. The feature just looks up what is currently in the search bar. Unfortunately the search feature uses Wikipedia’s API, which does make it much faster, than a bot crawling through google. But is susceptible to misinformation. I don’t think this is a massive problem because I am only taking the first sentence of the article. But I may look into alternatives in the future.
Added settings.json, the ability to open apps, and continued to attempt a frosted glass look. Settings.json will now allow for more customization. The ability to open apps is kind of the whole point its to avoid windows weird search bar thing that’s slow and not great to use. And after doing more looking into the blur effect it looks like the only way to do it is to have some js take screenshots of whats behind the page and then save that png and load it under the transparent thing than use the blur filter but, it seems slow, complicated, and not great for cross platform, so I am still looking for other solutions
I switched to an extension based thing. So anyone can make their own extensions for the app. The picture is of a JSON that has the data for all the extensions at the moment. I tried making the frosted glass look by adding random noise but I was not able to make it work.
Added more settings, added an app opener and added a file explorer. The file explorer and app opener used to be separate but I made them the same to simplify the users experience because I think that is what the application will be used for the most. They both work pretty well the file explorer can only fetch files a limited range of files it can use files in downloads, desktop, documents, music, videos, etc, can’t look for system level files and whatnot though. Added way more settings so you can change what the default tool it should use is if it can’t find a good one to use. Updated the readme for proper credit, and a bunch of other small things. I also made it compatible with several screens.
Added a GitHub and Duckduckgo extension so search does not have to be based on Wikipedia. The GitHub extension is made to quickly search for repos and users, however the API used has somewhat strict rate limits, but for occasional searches it should work fine. The DuckDuckGo or the dgg extention is just a search feature
Changes Made Added autocomplete for which action should be completed and added a music player. All extensions are now properly formatted, and no exceptions are given out. Autocomplete I found it a little difficult to quickly remember and spell out the extensions names but now I only have to type the first few letters and the app will give options for what the extension could be. Music Player Just opens the requested song in YouTube music.
Changes Made: Added an image viewer into the file explorer, added a copy button and improved file explorer functionality File explorer The file explorer now will show a preview image if it the target file is an image. The file explorer can also now take in a folder in which the target file is in and uses a search that allows for skipping folder in case the user forgets a folder inbetween. Copy Btn It just copies the result text into the users clipboard
Changes Made: I added a color picker and allowed for several tools to output at once. Color Picker Can use an eyedropper of the screen behind the interface or select from the color wheel. You can also just write out hex codes or RGB Multiple answers The main process can now handle and may call several extensions at once. The output order is determined by the order the main process calls the extensions, with an exception for asynchronous functions which get resolved upon completion. Still fixing small errors here and there in the system and may make a more intelligent main process
Changes Made: Improved several answers a lot. Added selector for which answer the user wants to interact with. And added a simple settings screen. Settings screen: The settings screen is temporary, but allows users to quickly change and save app settings. Selector: When multiple answers are present one of the answers will be highlighted the user can change which one is highlighted simply using the arrow keys. And when pressing Enter or Tab. They will call that extension. Better multiple answers: The new implementations allows for extensions to better manipulate their specific answer. And gives users a better amount of control through settings over the apps functionality.
Changes Made I did a lot and forgot to make Dev logs. I allow for the user to download extensions made by anyone to add to the website. And added a feature called pipelines. Downloading Extensions Anyone can make an extension and post it on Github, following the correct format if their extension is not listed you can put the username/extension_name in the text box above. When you restart the app the extension should be downloaded. Pipelines Pipelines let users without any code pipe extensions together so If I have a google translate and a search extension I can pipe them together. so that the result of the search is then translated.
Changes Made I finalized details for easy install and using it for the first time. Simple things like improving the functionality with the tray (the bottom right icons). How to use Whenever you want to open it you can either press Alt + Z or open the tray and press the icon see the image below for an example.
Changes made I made a far better readme.md file, and I added documentation for making your own extensions and pipelines Documentation I added very specific documentation for making your own extensions and pipelines. I don’t recommend making your own pipeline, because that is still in early development, but if you don’t have a stardance project yet I would absolutely recommend trying to make your own extension. It is difficult the first time but pretty easy afterwards.
Changes Made I added a list extensions feature, added extension specific settings, and removed a few nasty bugs. List all extensions feature All it does is when you press ? it will list all the extensions and you can just select the one you want from there. Extension Specific settings The settings page used to just have settings for the app now under the extensions tab will have extension specific settings that the dev of the extension can use. Bugs The implementation for removing the previous answers did not always remove all of the answers and sometimes left the user with answers that shouldn’t be there. I did a small rewrite which fixed the issue. The autocomplete feature did not like the list all expansions feature because the program will refuse to give answer past a certain amount of them to prevent 20 answers being given at once. But because the list all feature could expand to that point, the autocomplete feature thought there wasn’t enough room for it. But now I delete the previous answers before creating new ones for autocomplete.
Changes Made Improved fonts and spacing, improved opening apps, shows the icon of the app. I also improved the calculator Improved fonts I was just using the default fonts earlier because I am not very creative, but I decided to change it to Inter and Consolas. Improved app opening Earlier to determine the apps the user has installed as a temporary solution I just scrapped their desktop. But that did not return everything, and I finally fixed it I tried a bunch but the that worked for me was using some commands through power shell. That gets all the apps that windows knows about. The icons Now the program will show the user the icon of the app they want to open. there are three different kinds of app Id’s in windows and I have to assess their photos differently for each, which added alot of complexity and is the whole reason this devlog took so long. Better calculator The calculator has a few improvements the first being it now has the constants pi and e baked into it. It can also now do square roots and trigonometric functions. The trigonometric functions are interesting because they can be done with radians or degrees if the user types sin(90deg) . It will use 90 degrees instead of the default being radians.
Changes Made I added aliases and Improved the search. Aliases Aliases are a user configurable feature that allows the user to type /<Shorthand> which will immediately be turned into some text. For example instead of writing “Google chrome” I can type /google which will be converted to Google Chrome Users can configure as many of these as they want. Improved search On the first ship I got complaints that the search did not always return an answer when asked questions. For example Where is Canada would return an invalid answer whilst Canada returned a valid answer. I added a fallback to make these scenarios less common.
Changes Made I added an auto update code and added metadata to extensions Auto update code Before I added this code a user would have to delete the current code, and reinstall the application from GitHub. However this code will automatically detect and update the app on the users machine. Added metadata to extensions This allows for extensions to give data about them to the extension marketplace giving users a better idea of what they are downloading. Sorry for the lack of videos, it was really a backend change
Changes Made Added start on boot and safer extension marketplace. Start on boot The app will now set itself up so if in settings you enabled start on boot the app will automatically start itself when you boot up your computer. Safer extension marketplace The way extensions work is all the extensions listed have a GitHub repository linked so when the user downloads the extension they download it off the repository, but the developer can change the GitHub repo so after it is accepted as safe the developer can change that without any warning. So now we grab from a specific point on the git tree. However even still the Dev can change the history so we check that the commit hash matches the stored hash meaning the developer cannot change their extension after approval Sorry for the lack of videos again its really a backend change
Changes Made Added an Icon to the app, fixed a hundred different bugs, added a fallback for the duckduckgo extension, and added the extension descriptions to the help menu The icon I added an icon its very simple, and definitely subject to change, but now it does not have the default electron icon in the task bar. Bugs Fixed Changed the codebase to made up of several modules instead of a few giant files (Should have done it a long time ago) Fixed the time formatter for the timer Changed the commit hash of the GitHub extension Changed Priority order Improved Duck duck go extension The duckduckgo extension uses their quick search API, which returns a JSON, in which the answer sometimes is in JSON.abstract and sometimes JSON.relatedTopics[0].text Now the extension looks in both places and returns the most relevant answer. Extension descriptions I recently added descriptions of the extensions in their metadata so now on the help tab you can get small descriptions of each one. Sorry about how their have been no videos but it has all been fixing a lot of small bugs most of which don’t even make it into the dev-log.
Changes Made: I added a linux version, it should work on most distros. I also cleaned up the codebase. The linux version It may not work on all distros I only tested Fedora KDE, but from that test it looks like it functions almost fully however I still need to get the code for global shortcuts updated so that also works on linux. The file should download on most distro’s its an AppImage (the executable), not a .deb file I had one but switched to purely AppImage, soon afterwards, it should not affect the user. Cleaned up codebase All functions and classes now have docstrings, this way I can tell what I wrote the function to do later. I also removed some redundant checks.
Changes Made The app now allows for the user to select what extension they want to call using the mouse, it also has a better GitHub action yml, and finally npm tests Mouse selection Before the app was entirely keyboard driven their was nothing for the mouse to even interact with. I prefer it like this but their is now the option to select extensions with the mouse instead. GitHub actions yml The way I publish the app executable is with GitHub actions I will call an action that compiles the app and publishes the compiled app. But now it will also automatically update the version number so I don’t have to Tests I forgot to make tests for the longest time for this app and I finally realized it so I added them
Changes Made I worked on fixing some bugs for linux, so it should now have support for Wayland. Wayland bug fixes Wayland is an API for accessing the user layer of a linux machine. Quite a few distro’s use Wayland for this however my code was not the most compatible with this so I needed to write a bunch of code so some components work with it. The biggest bug was that the global shortcuts were not registering. Sorry about the lack of video
Changes Made Added a confirmation modal for the extension marketplace, hid the users home path, and Fixed a bunch of bugs. Confirmation Modal I added a modal that warns users against downloading extensions that could be harmful. Hiding the users home directory In the scenario that the user is recording a video or something where they use this app their user name on their computer could have been revealed, which is not good to say the least. Now that is no longer an issue, because we obfuscate the home directory, replacing it with a tilde Bugs The Cancel button on the modal wouldn’t close it. Stuck in the download state when downloading an extension Extension marketplace still showed previously downloaded extensions
Ships:
What is it? Action bar an application that more easily allows for quick actions and allows for users to open apps very easily. Challenges: One of the hardest challenges was allowing the user to make their own extensions and to allow for them to share it with others in the end I managed to make an extension “marketplace” (a bit empty but it works). How To Use: In order to open the application you can press Alt + Z a shortcut that can be configured. Or press the Icon in the bottom right corner. More information in the read me file. Features: This application lets you: quickly open apps Run custom extensions Pipe extensions together.
Version 2. What changed in Version 2: Safer extension marketplace Far better DDG search and app opening functionality Improved calculator Aliases Fixed a lot of small bugs Added the icon of the app you are opening ====================================== What is it? Action bar an application that more easily allows for quick actions and allows for users to open apps very easily. Challenges: I have never coded anything that people other than me actually use, so there is more pressure to sort out the small bugs and improve the UX How To Use: In order to open the application you can press Alt + Z a shortcut that can be configured. Or press the Icon in the bottom right corner. More information in the read me file....
|
1792983194.4225984
|
1793069594.4225984
|
|
29700
|
unwanted traffic by @hen | Stardance
|
hen
|
0
|
69.22
|
0
|
[]
|
[{"post_id": 76335, "ts": "202 [{"post_id": 76335, "ts": "2026-10-03T07:34:30Z", "hours": 9.0322, "text": "DEVLOG 13 Sprites and stuff Not much to say here. Aside from game balancing, I’m starting to draw out sprites for the game in order to make it more appealing to the players and for whoever is looking at the devlog. Yeah I see you. If you’re curious, I’m drawing all of the sprites myself on Clip Studio Paint, and the linework/coloring will be largely inspired by flash-era games like Alien Hominid and Castle Crashers. (But I can’t draw that well…) Timelapses should be on Lapse if you’re interested. https://lapse.hackclub.com/user/@hen Stick around… again!"}, {"post_id": 74712, "ts": "2026-09-28T01:37:33Z", "hours": 8.9883, "text": "DEVLOG 12 harry potter or something I’ve said this line in a number of devlogs before, but… BLOOD is meant to be both a currency and health, in order to increase the risk in decision making. In this wave of updates, I added abilities, which consume BLOOD but deal massive amounts of damage. Later abilities also grant movement. – Using an ability takes up both your health and currency for future upgrades, but in return you can kill enemies or clusters of enemies for a greater net payout. It can also be used to get out of bad situations. The caveat is to use them wisely, as using them too quickly will leave you weakened. I also added animated icons, but OBS was being too laggy… I still attached some images though. The majority of the gameplay loop is done, so redrawing everything is a very high priority at this moment. Stay tuned!!! The game will look VERY different."}, {"post_id": 72544, "ts": "2026-09-23T05:33:56Z", "hours": 5.2136, "text": "DEVLOG 11 But wait, there’s more… I added two new enemy types: – Tank: Takes more hits to kill, does more damage, collides with the player (forcing the player to either jump over them or risk HP killing them for big bonuses). Encountered at 500m. – Shooter: Slightly more health than a base zombie, and rapidly shoots fast projectiles for the same damage. Sounds annoying, but encountered at 1000m, by which point the player should be either strong enough to facetank it, one-shot it, or attack it from afar with abilities. You can parry the bullets, but it’s very hard. Perhaps it could be extra rewarding. I think this is going to be all the enemies I’m adding in this version, the reason being that I want there to be an end goal (2000m distance) without getting too complex. – The enemies will get higher health and damage as the player travels further, but that will be it. The game is designed around punishing carelessness as well as awarding deliberate decision-making. In an earlier devlog, I mentioned that all obstacles and enemies will be the same each run (for each player). In this sense, the player improves in skill at the same time that they buy upgrades; two improvements per mistake. These are still not the actual sprites… As soon as the gameplay and UI are done, it’s going to be a cramming session of drawing. I just figured out how to use Lapse so maybe you can find my work there. Hint: I posted a video already :) Stay tuned for more…"}, {"post_id": 72026, "ts": "2026-09-22T00:56:16Z", "hours": 8.7139, "text": "DEVLOG 10 The gameplay loop is being further developed… there’s upgrades now! In an earlier devlog, I mentioned that there was a mechanic called REVENGE which drained your blood for a strong, temporary boost. In contrast, UPGRADES are an alternative that gives you small, permanent boosts, but sets you back to the starting position. The point is to choose which path fits your style! I also added a main menu, but the background is coming soon. As a reminder, everything art and music related will be human-made, without AI. If you have any feedback, let me know! Stick around for future updates :)"}, {"post_id": 68540, "ts": "2026-09-15T08:57:46Z", "hours": 10.0889, "text": "DEVLOG 9 In an earlier devlog, I mentioned that I wanted “BLOOD” to simultaneously act as currency, health, and possibly ability points. I also wanted peak blood to play a role as not just a leaderboard stat, but as something important to gameplay. With that in mind, I drafted the following systems: REBIRTH and REVENGE. REBIRTH: When your BLOOD reaches 0, or you end the run early (preserving blood and peak blood) to buy upgrades. Upgrades cost both BLOOD and PEAK BLOOD, so you can either continue using blood to keep the run going (acting as a larger health and ability pool, and having a chance to get blood / peak blood even higher), or end it earlier to spend it on upgrades. REVENGE: Available upon DEATH. Requires PEAK BLOOD to be greater than 100. Continue the run by setting your BLOOD to PEAK BLOOD. BLOOD and PEAK BLOOD will drain to 100 in 30 seconds, but the duration is extended or lowered from BLOOD gain and loss. In exchange, the player has enhanced stats for the duration of REVENGE. ~ In this sense, the player is forced to gamble their resources at all times, at stake to skill but unbeknownst of future obstacles. I believe this will make for a very engaging gameplay loop, but playtesting needs to be done to ensure it’s not frustrating or too punishing. However, I don’t know of any loops similar to this. If it’s the first, I am very excited for it. ~ For Devlog 9, I added buttons that appear on death for REBIRTH and REVENGE, where the former will reset the map and revenge will keep the game going. I also implemented tooltips with these buttons for more in-depth explanation when necessary. However, I recognize that this can eventually make the game text-heavy, so an in-game tutorial will be in the works. ~ And of course, these buttons will have custom assets! As a reminder, although some code is AI-generated, ALL OF THE ARTWORK, SPRITES, 3D MODELS, AND MUSIC ARE AND WILL BE COMPLETELY HUMANMADE. ~ Stick around for future updates :)"}, {"post_id": 53882, "ts": "2026-08-24T16:14:59Z", "hours": 6.2717, "text": "DEVLOG 8 There is DANGER… The enemies are actually real instead of menacing vocaloid pears!! The first type I introduced is a zombie, which can… — Run toward the player — Jump over obstacles (with a varying height according to how high the obstacle actually is) — Kill. I’m actually pretty proud of the jumping solution (though maybe a professional wouldn’t like it…) — First, the zombie casts a raycast in front of itself, from its feet. The length of this raycast depends on how fast it’s going, so that higher speeds don’t make the zombie bump into the obstacle before actually getting over it. — Then, the zombie casts a raycast from the sky and descends until it hits the top of the obstacle. From the feet to the top, this gives obstacle height from which necessary jump strength can be calculated from a kinematics formula. (Yay AP Physics or something) There’s going to be more enemy variations in the future, but it takes a while… here are some plausible ideas though: — An enemy that physically blocks the player — An enemy that shoots projectiles — An enemy that explodes on death and therefore must be avoided instead of killed Aside from enemy variations, I’m going to keep working on things like a lose/restart screen and an upgrade menu. Stay tuned?"}, {"post_id": 48547, "ts": "2026-08-16T23:54:51Z", "hours": 5.0914, "text": "DEVLOG 7 I’m getting excited for how this is gonna turn out. With an actual prototype on hand, I can handle the fun side of the gameplay loop, the others being a respawn and upgrade system. I added procedural generation in order to create the map, which assigns the player a random seed from which a map is created. This makes for a unique but consistent map, and will hopefully reinforce the idea of the player learning from their mistakes because every run will be a chance to correct them. So far, in this map generation, there is a house, trash can, and tree, managed with the ScriptableObjects feature in Unity (which lets me store data for each prop more efficiently). These objects are assigned weights to affect the probability of each appearing on an object spawn. Although I knew probability weights existed, learning it conceptually and applying it was a little weird because I didn’t learn this in my statistics class. The house is tall and solid, but I added a grab feature to jump when approaching high ledges. This should make vertically scaling sections of the map more realistic in the future. The trash cans are also solid but can be knocked over. The tree can be walked through because it’s a background prop, but there will probably be variations that act as obstacles. Next on the list is adding enemy AIs, so the player can lose health to a secondary lose condition and that attacking is just as important as running."}, {"post_id": 44297, "ts": "2026-08-09T23:13:36Z", "hours": 2.1175, "text": "DEVLOG 6 Since this is supposed to be a side scroller, the lose condition is a horde of enemies that comes in from the left side and drains the player’s health. I did a lot of experimenting and reading documentation with Unity’s Mathf class, using it for things like exponential health drain (Pow, FloorToInt, Clamp). In the video is a placeholder sprite… but you can totally see the terror of the monsters… right?"}, {"post_id": 44227, "ts": "2026-08-09T20:53:58Z", "hours": 4.0431, "text": "DEVLOG 5 I added a mechanic that acts as both health and currency: blood. The idea is that killing enemies gives blood, getting hit loses blood, and saving blood can be used for upgrades. Balancing it this way will require a lot of thinking about game theory, but hopefully it’ll make gameplay more risk-intense while still being engaging and rewarding. I designed this UI block based on old Flash games and I’m going to try to lean toward that aesthetic."}, {"post_id": 31524, "ts": "2026-07-20T00:24:54Z", "hours": 2.4925, "text": "DEVLOG 4 Another main mechanic: attacking, and enemies that can die. After a few more critical mechanics are added, such as player health and enemy behaviors, I’ll finally be able to make this more unique."}, {"post_id": 25106, "ts": "2026-07-09T03:09:11Z", "hours": 3.3958, "text": "DEVLOG 3 REAL SPRITES!! Kind of… I drew out a bunch of prototype sprites on Clip Studio Paint and used an online website to generate a sprite sheet. Afterward, I sliced that sprite sheet into individual frames that could be selected in groups for each animation. Then, I had to use an Animation Controller to control when each animations played under certain conditions. I think I’ve said it in another devlog, but it’s way harder than it looks for the first time around. I have years of experience in Scratch but this is the complexity that comes with professional tools (Unity). Also, if you’re curious, I attached reference art for the character; lore coming soon? (It might relate to future gameplay mechanics…)"}, {"post_id": 20726, "ts": "2026-07-02T12:28:47Z", "hours": 2.5383, "text": "DEVLOG 2 I added jumping, but it took way longer than I thought. The plan was to make this high-action, so a simple up and down jump, like in many traditional platformers, would’ve been “restrictive” by putting the player a predefined amount of time in the air. Instead, I implemented variable jumping, where if you release the jump button early, you fall earlier. I drew inspiration from Hollow Knight (a metroidvania), but this was popularized by Super Mario Bros. Next on my priority list would either be coyote time (giving the player a small window to jump when off the platform) or working on attack hitboxes for the main gameplay loop. I’ll add actual sprites soon!! I have some concept art, they just need to be animation-ready and blend into the game."}, {"post_id": 20574, "ts": "2026-07-02T05:58:36Z", "hours": 1.2333, "text": "DEVLOG 1 My first proof-of-concept for this game: horizontal movement. It doesn’t look like much for an hour of work, but it turns out Unity can be very hard to learn… But anyways, it exists and that means it can continue to improve. I’ll also explain why the game is called ‘unwanted traffic’ in a future devlog. The player character does have a backstory."}]...
|
Title: unwanted traffic by @hen | Stardance
Devlo Title: unwanted traffic by @hen | Stardance
Devlogs:
DEVLOG 1 My first proof-of-concept for this game: horizontal movement. It doesn’t look like much for an hour of work, but it turns out Unity can be very hard to learn… But anyways, it exists and that means it can continue to improve. I’ll also explain why the game is called ‘unwanted traffic’ in a future devlog. The player character does have a backstory.
DEVLOG 2 I added jumping, but it took way longer than I thought. The plan was to make this high-action, so a simple up and down jump, like in many traditional platformers, would’ve been “restrictive” by putting the player a predefined amount of time in the air. Instead, I implemented variable jumping, where if you release the jump button early, you fall earlier. I drew inspiration from Hollow Knight (a metroidvania), but this was popularized by Super Mario Bros. Next on my priority list would either be coyote time (giving the player a small window to jump when off the platform) or working on attack hitboxes for the main gameplay loop. I’ll add actual sprites soon!! I have some concept art, they just need to be animation-ready and blend into the game.
DEVLOG 3 REAL SPRITES!! Kind of… I drew out a bunch of prototype sprites on Clip Studio Paint and used an online website to generate a sprite sheet. Afterward, I sliced that sprite sheet into individual frames that could be selected in groups for each animation. Then, I had to use an Animation Controller to control when each animations played under certain conditions. I think I’ve said it in another devlog, but it’s way harder than it looks for the first time around. I have years of experience in Scratch but this is the complexity that comes with professional tools (Unity). Also, if you’re curious, I attached reference art for the character; lore coming soon? (It might relate to future gameplay mechanics…)
DEVLOG 4 Another main mechanic: attacking, and enemies that can die. After a few more critical mechanics are added, such as player health and enemy behaviors, I’ll finally be able to make this more unique.
DEVLOG 5 I added a mechanic that acts as both health and currency: blood. The idea is that killing enemies gives blood, getting hit loses blood, and saving blood can be used for upgrades. Balancing it this way will require a lot of thinking about game theory, but hopefully it’ll make gameplay more risk-intense while still being engaging and rewarding. I designed this UI block based on old Flash games and I’m going to try to lean toward that aesthetic.
DEVLOG 6 Since this is supposed to be a side scroller, the lose condition is a horde of enemies that comes in from the left side and drains the player’s health. I did a lot of experimenting and reading documentation with Unity’s Mathf class, using it for things like exponential health drain (Pow, FloorToInt, Clamp). In the video is a placeholder sprite… but you can totally see the terror of the monsters… right?
DEVLOG 7 I’m getting excited for how this is gonna turn out. With an actual prototype on hand, I can handle the fun side of the gameplay loop, the others being a respawn and upgrade system. I added procedural generation in order to create the map, which assigns the player a random seed from which a map is created. This makes for a unique but consistent map, and will hopefully reinforce the idea of the player learning from their mistakes because every run will be a chance to correct them. So far, in this map generation, there is a house, trash can, and tree, managed with the ScriptableObjects feature in Unity (which lets me store data for each prop more efficiently). These objects are assigned weights to affect the probability of each appearing on an object spawn. Although I knew probability weights existed, learning it conceptually and applying it was a little weird because I didn’t learn this in my statistics class. The house is tall and solid, but I added a grab feature to jump when approaching high ledges. This should make vertically scaling sections of the map more realistic in the future. The trash cans are also solid but can be knocked over. The tree can be walked through because it’s a background prop, but there will probably be variations that act as obstacles. Next on the list is adding enemy AIs, so the player can lose health to a secondary lose condition and that attacking is just as important as running.
DEVLOG 8 There is DANGER… The enemies are actually real instead of menacing vocaloid pears!! The first type I introduced is a zombie, which can… — Run toward the player — Jump over obstacles (with a varying height according to how high the obstacle actually is) — Kill. I’m actually pretty proud of the jumping solution (though maybe a professional wouldn’t like it…) — First, the zombie casts a raycast in front of itself, from its feet. The length of this raycast depends on how fast it’s going, so that higher speeds don’t make the zombie bump into the obstacle before actually getting over it. — Then, the zombie casts a raycast from the sky and descends until it hits the top of the obstacle. From the feet to the top, this gives obstacle height from which necessary jump strength can be calculated from a kinematics formula. (Yay AP Physics or something) There’s going to be more enemy variations in the future, but it takes a while… here are some plausible ideas though: — An enemy that physically blocks the player — An enemy that shoots projectiles — An enemy that explodes on death and therefore must be avoided instead of killed Aside from enemy variations, I’m going to keep working on things like a lose/restart screen and an upgrade menu. Stay tuned?
DEVLOG 9 In an earlier devlog, I mentioned that I wanted “BLOOD” to simultaneously act as currency, health, and possibly ability points. I also wanted peak blood to play a role as not just a leaderboard stat, but as something important to gameplay. With that in mind, I drafted the following systems: REBIRTH and REVENGE. REBIRTH: When your BLOOD reaches 0, or you end the run early (preserving blood and peak blood) to buy upgrades. Upgrades cost both BLOOD and PEAK BLOOD, so you can either continue using blood to keep the run going (acting as a larger health and ability pool, and having a chance to get blood / peak blood even higher), or end it earlier to spend it on upgrades. REVENGE: Available upon DEATH. Requires PEAK BLOOD to be greater than 100. Continue the run by setting your BLOOD to PEAK BLOOD. BLOOD and PEAK BLOOD will drain to 100 in 30 seconds, but the duration is extended or lowered from BLOOD gain and loss. In exchange, the player has enhanced stats for the duration of REVENGE. ~ In this sense, the player is forced to gamble their resources at all times, at stake to skill but unbeknownst of future obstacles. I believe this will make for a very engaging gameplay loop, but playtesting needs to be done to ensure it’s not frustrating or too punishing. However, I don’t know of any loops similar to this. If it’s the first, I am very excited for it. ~ For Devlog 9, I added buttons that appear on death for REBIRTH and REVENGE, where the former will reset the map and revenge will keep the game going. I also implemented tooltips with these buttons for more in-depth explanation when necessary. However, I recognize that this can eventually make the game text-heavy, so an in-game tutorial will be in the works. ~ And of course, these buttons will have custom assets! As a reminder, although some code is AI-generated, ALL OF THE ARTWORK, SPRITES, 3D MODELS, AND MUSIC ARE AND WILL BE COMPLETELY HUMANMADE. ~ Stick around for future updates :)
DEVLOG 10 The gameplay loop is being further developed… there’s upgrades now! In an earlier devlog, I mentioned that there was a mechanic called REVENGE which drained your blood for a strong, temporary boost. In contrast, UPGRADES are an alternative that gives you small, permanent boosts, but sets you back to the starting position. The point is to choose which path fits your style! I also added a main menu, but the background is coming soon. As a reminder, everything art and music related will be human-made, without AI. If you have any feedback, let me know! Stick around for future updates :)
DEVLOG 11 But wait, there’s more… I added two new enemy types: – Tank: Takes more hits to kill, does more damage, collides with the player (forcing the player to either jump over them or risk HP killing them for big bonuses). Encountered at 500m. – Shooter: Slightly more health than a base zombie, and rapidly shoots fast projectiles for the same damage. Sounds annoying, but encountered at 1000m, by which point the player should be either strong enough to facetank it, one-shot it, or attack it from afar with abilities. You can parry the bullets, but it’s very hard. Perhaps it could be extra rewarding. I think this is going to be all the enemies I’m adding in this version, the reason being that I want there to be an end goal (2000m distance) without getting too complex. – The enemies will get higher health and damage as the player travels further, but that will be it. The game is designed around punishing carelessness as well as awarding deliberate decision-making. In an earlier devlog, I mentioned that all obstacles and enemies will be the same each run (for each player). In this sense, the player improves in skill at the same time that they buy upgrades; two improvements per mistake. These are still not the actual sprites… As soon as the gameplay and UI are done, it’s going to be a cramming session of drawing. I just figured out how to use Lapse so maybe you can find my work there. Hint: I posted a video already :) Stay tuned for more…
DEVLOG 12 harry potter or something I’ve said this line in a number of devlogs before, but… BLOOD is meant to be both a currency and health, in order to increase the risk in decision making. In this wave of updates, I added abilities, which consume BLOOD but deal massive amounts of damage. Later abilities also grant movement. – Using an ability takes up both your health and currency for future upgrades, but in return you can kill enemies or clusters of enemies for a greater net payout. It can also be used to get out of bad situations. The caveat is to use them wisely, as using them too quickly will leave you weakened. I also added animated icons, but OBS was being too laggy… I still attached some images though. The majority of the gameplay loop is done, so redrawing everything is a very high priority at this moment. Stay tuned!!! The game will look VERY different.
DEVLOG 13 Sprites and stuff Not much to say here. Aside from game balancing, I’m starting to draw out sprites for the game in order to make it more appealing to the players and for whoever is looking at the devlog. Yeah I see you. If you’re curious, I’m drawing all of the sprites myself on Clip Studio Paint, and the linework/coloring will be largely inspired by flash-era games like Alien Hominid and Castle Crashers. (But I can’t draw that well…) Timelapses should be on Lapse if you’re interested. https://lapse.hackclub.com/user/@hen Stick around… again!...
|
1792713050.0902178
|
1793317850.0902178
|
|
21137
|
Colosseus by @gauss | Stardance
|
gauss
|
0
|
69.15
|
0
|
[]
|
[{"post_id": 78908, "ts": "202 [{"post_id": 78908, "ts": "2026-10-12T00:22:17Z", "hours": 5.0272, "text": "IT WORKSSSSS ok sit tight brodini cuz i got a lot of stuff to tell you I burned another PCB! yea, u sure heard that right. I found out what the issue with the PCB was: the motor driver was in the wrong orientation, which connected the +12V rail itself to a gpio pin, frying the rp2040 entirely. Instead of using my hot air station to de-solder and rotate the driver, I decided to just make another board because I was lazy. The second board ended up not working either, and when I pressed down on one of the legs of the buck converter with a multimeter, the IC caught on fire and started smoking. I ended up needing to use a hot air station to replace the buck converter on that board, so I used it to heat up and fix the driver on my previous board while I was at it. I now have two working boards but does it really work? yup. how do you know? because I’m built like that I dont think so stfu ANYWAY…FIRMWARE TIMEEEE The best way to verify the board works is to test out its main feature: controlling Colosseus’ motors (goddamn I’ve spent so much time on the pcb that I’m still not comfortable with the actual name of the robot). I wrote some code in C to blink the KineticBoard’s onboard led, built and flashed the .uf2 to the pico, connected it to the board, andd… … … … IT DIDN’T CATCH ON FIRE! (that’s a first) it actually blinked the LED like it was supposed to. wow. With that boost in confidence, I was more inclined to write code for the robot itself. I started scaffolding a library for the robot, which I’m calling KineticLib . So far, I’ve written code to simplify PWM channels because the TB6612FNG motor driver relies on two of them. I tested my library by adding a demo project that makes the robot incrementally increase in speed, and then come back in the same manner. It worked too! things I HAVEN’T tested yet connecting the Pico to USB while it’s attached to the hat using the usb-c rececptacle to power other stuff (like a regular rpi) observing the effect of forcing the motors to spin while they are connected to the KineticBoard (I tried this briefly and I smelled some type of smoke, but I could very well just be paranoid) but yea all in all 11/10 experience i would highly recommend trying to make one of these on your own. if you happen to be brave enough to test these before I do, lmk what happens on slack (if you survive)."}, {"post_id": 77207, "ts": "2026-10-06T03:02:31Z", "hours": 0.9836, "text": "THE BOARD IS ON FIRE Not really, but it kinda is. After soldering all of the components on with an iron and hot plate, I connected the Pi Pico to the HAT via the female header sockets. I wrote a simple blinky script and verified that it worked when powered by my regular laptop. However, when I powered the KineticBoard HAT with the Pico, the RP2040 chip started smoking and I was able to capture a brief orange glow on camera. What now?? I’ll have to carefully look at what could have gone wrong. I tested the voltage readings from the multimeter and found that VSYS reads +5.1V when switched on, which makes sense because the Pico can accept that much. I did notice a constant 0.5V on the +3V3 pin for whatever reason (before attaching the pico). I’ll isolate the Pico on a breadboard and attach jumper wires only where needed, and gradually close in on the part that caused the failure. On a side note, I figured out why one of the LEDs isn’t working. It happens to not be connected to GND; however, everything else seems to be connected just fine."}, {"post_id": 74265, "ts": "2026-09-27T03:10:38Z", "hours": 4.0342, "text": "Custom Enclosure for the PCB After the board had travelled across the Pacific Ocean and the United States, it finally reached its destination at the core of Colosseus. UPDATE: THE PCB AND THE LCSC PARTS HAVE ARRIVED!!!! Whadidyado? I started creating a case for the KineticBoard. So far, I copied the layout of the board from KiCAD and added cutouts for parts that were meant to have user interaction. I tested out three prototypes before settling on one that actually fit (a lot of issues were solved by adding extra clearance and gaps). Potential Issues I’m 70% certain that the case won’t fit the bottom floor of the chassis, but that’s a problem for later. For now, I’m just designing the most badass case I can."}, {"post_id": 67863, "ts": "2026-09-14T04:29:30Z", "hours": 0.8228, "text": "Sent out the order! After finalizing the last parts of the extension board, I used my hardware grant to send the PCB over to JLC for fabrication. I separately purchased parts from LCSC."}, {"post_id": 63987, "ts": "2026-09-08T02:41:10Z", "hours": 2.2825, "text": "Finished the PCB The final coat of copper pavement was carefully laid out as the green city was unified at last. Changes I routed the motor driver’s pins to the two 6-pin adapters on the bottom right of the board. I connected the last pads, and added some finishing touches such as screw holes for a 3D-printed enclosure and some custom silkscreen cuz why not. I also filleted the edges as I read that it was a good practice online. What’s Next? All of the GND pads are isolated, so I need to make a copper fill zone or something to link all of them. I also plan on adding a little silkscreen on the back, and then we should be good to go!"}, {"post_id": 62644, "ts": "2026-09-06T03:28:09Z", "hours": 3.9669, "text": "Almost Done with the Layout With the components oriented in their city-like pattern, all that was left to do was to pave the final roads through the green adhesive base, connecting the motor driver to the 6-pin adapters. Changes? I decided to drop the 12V to 3.3V buck because the Pico has one internally, and I could just keep my 5V buck and feed its output into VSYS and extract 3.3V from the Pico’s +3V3 pin. I also ended up changing the orientation of some adapters because I couldn’t comprehend the fact that the PCB exists in 3 dimensions? Lastly, I greedily extended the bottom of the PCB so that both partitions could access one large +12V trace (the GPIO sockets were interfering). What next? All I have to do is wire up the connections to the motor driver and adapters, and we should be good to manufacture ts."}, {"post_id": 57735, "ts": "2026-08-30T00:13:42Z", "hours": 3.4392, "text": "Finished KineticBoard HAT Schematic I spent a few hours finishing the schematic for the KineticBoard HAT, an extension board that allows the Pi Pico to control motors. Additions Rather than using a standard Li-Ion to power the Pico and a really small power bank to power the Pi, I decided to just use one: the Li-Ion. For this to happen, the PCB would need to convert 12V to 5V and expose this voltage through a USB-C connector. I decided to copy & paste my old buck converter schematic, but I had to pick different resistance values such that this formula V = 0.925 * (1 + R1/R2) yielded ~5.1V. This seems easy, but I wanted to use some resistors that I already had. I decided to make a C program that picked the most optimal values for this voltage divider. The program works by following a 2 pointer algorithm which adjusts the numerator and the denominator by shuffling through a sorted list of the resistance values, and finding the ones that are closest to the target voltage. I also expanded on my old buck converter by making the +3V3 net controlled by a switch, just so that no weird stuff happens if I connect both the PC and battery to the board at the same time. Lastly, I added the 6-pin JST connectors, the motor driver, and a few status LEDs. I put everything in the PCB editor in the end, and I’m honestly terrified of routing this thing, but that’s a problem for later lol."}, {"post_id": 52037, "ts": "2026-08-22T02:18:59Z", "hours": 2.0181, "text": "Another PCB????? I’m creating a second motor driver board, but this time instead of being a standalone devboard, it is only a hat. Schematic Stuff I added symbols for header sockets, the barrel jacks, a buck converter, and the usual dozens of resistors and caps. The pinout for the buck converter was so annoying and something about putting non-connecting wires on top of each other pissed me off a lot. It’s an eyesore, and I can already tell that I have to use a billion vias to get everything working once I’ll hit the layout stage."}, {"post_id": 41542, "ts": "2026-08-05T20:17:20Z", "hours": 1.6042, "text": "So I Almost Burned My Finger I was trying to get the encoders to work, but in the process of reading data through USB serial, I got a mild shock How Did This Happen? To configure hall effect encoders, you need to give each wheel a good spin to determine how many “pulses” are detected by the Pico. The detection part is quite simple: whenever the wheel turns a certain amount, motor encoders A and B change state. This can be detected through an interrupt and then printed out (in the main loop, not the callback). However, in the process of printing it out, I touched the USB-C receptacle and felt it get extremely hot, and later realized that something got shorted somewhere. Any Guesses Where? Looking back at the situation, I had connected the battery and USB power from my laptop to the board at the same time, so something might have gone wrong there. Another thing that was going wrong was that the receptacle itself was coming off, so it could be that one of the pads, say +5V for instance, came in contact with like GND or smth, inducing shock if someone were to touch it. Here’s an image from the timelapse right before I plugged the board into my laptop and fried it:"}, {"post_id": 41002, "ts": "2026-08-04T21:46:57Z", "hours": 0.25, "text": "Soldered the GPIO pins Yea idk why I didn’t do this earlier but I needed the GPIO pins to read data from the motor encoders."}, {"post_id": 37990, "ts": "2026-07-31T02:44:53Z", "hours": 2.0092, "text": "First Drive I checked the devboard for any last errors and connected it to the motors on the robot! Final checks I verified that the KineticBoard Leaf works when it’s powered by USB and by the 5000mAh Li-Ion battery. I did this by writing a simple program that toggles a GPIO pin, and used a multimeter to read the oscillating voltages. It worked!! Test Drive! I already had firmware from the design stage, but it was written for a different motor driver so I decided to start from scratch. I created a basic motor drive “class” (structs/functions to go with the struct) in C and set up my CMake project in a way that I could add a demos folder later. Now that I had custom firmware for the TB6612FNG, I wired up each screw terminal pair to the M1 and M2 pins on each motor, and flipped the switch to see it drive perfectly! It was really relieving to see everything work on first try, and I gained a huge confidence boost in my embedded programming skills. Future Enhancements The motors came with 6-pin connectors, and I should have included appropriate receivers for these connectors on the KineticBoard Leaf rather than just generic screw terminals. Currently, I have to connect the 6-pin connector to 6 jumper wires, which is quite the eyesore."}, {"post_id": 37353, "ts": "2026-07-30T00:32:38Z", "hours": 0.35, "text": "Lab Visit + THE DEVBOARD WORKS NOW WOHOOO After inhaling a mole of lead-based solder fumes, I finally got the devboard to work!!! It’s my first ever PCB so I’m really stoked!! I visited my friend’s lab at the university where he works and we were able to debug and fix the devboard in a few hours. Unfortunately, I remembered that I had to record the whole thing in lapse in the last 20 minutes, but I guess that’s just karma for taking 9 hours ( ) to hand solder/debug a PCB in my last devlog (yes ik i suck). Issues My previous attempt at soldering failed because I set the temperature of my hot air gun too low, and I overestimated surface tension’s effect on my hot plate. I used a high-res microscope at the lab and saw that most of the QFN components were only partially soldered. I could quite literally see a tiny gap between the two pads. Another thing I saw was some obvious bridging, which I quickly fixed with a soldering iron. One of my biggest takeaways from the lab was that THE TYPE OF SOLDER FLUX MATTERS!!! I previously used some generic $14 flux from Amazon, but it was so bad that even some of the most powerful ultrasonic flux cleaners couldn’t get it off easily. It was also so thick that even the infrared lamp couldn’t get the RP2040 to stick down. My friend used (and recommended) water-soluble flux, which makes it easy to clean off without messy isopropyl alcohol. I ended up salvaging the parts from my old PCB to build a new one from scratch. I learned how to solder QFP packages, 0603s, and even 0402s with an iron. In the end, a soldering iron is THE BEST way to guarantee that your components are soldered down, especially when verified with a microscope. I also learned how to solder using an infrared lamp and hot air (properly, this time). Results??? Right as I finished soldering the last component, I connected it to my computer and held down bootselect….and IT WAS DETECTED AS A MASS STORAGE DEVICE!!! I was so excited at this time that I finally rekindled my motivation to keep building more of these PCBs (I was pretty close to giving up on PCB-related projects ngl). Anyway, right before leaving, I put it in the ultrasonic washer they have for PCBs (which is just a tiny container with water and ultrasonic waves being fired it at from all directions to take the flux off. I’m currently waiting until tomorrow for it to air dry, and then I’ll incorporate it in the robot!"}, {"post_id": 32135, "ts": "2026-07-21T02:56:44Z", "hours": 9.7003, "text": "Broken Devboard So this was my first time ever soldering a PCB, and I didn’t go easy on myself especially considering I used 0402 footprints on a 4-layer double-sided layout. I had hoped that it would work after soldering all the parts but unfortunately, it did not. Areas of Error The front portion was soldered using a hot plate, and the back was soldered with a hot air gun. This was my first time using a hot air gun, so I had my dad (a former electronics hobbyist) help me out a little. Turns out we both couldn’t fix it. One potential error is that the back side wasn’t properly soldered because we ran the air gun at 220 degrees fahrenheit, wihch could have meant that the core of the gun was that hot but outside it could be 150 or something. Another thing that could have gone wrong is the ICs could have been overheated and cooked, or a tiny bridge on the RP2040 could have shorted the whole thing. Next Steps and Debug I asked a friend (a guy who has a PhD in computer/rf engineering) to help me debug the board, and he said he’ll be more than happy to in a few weeks. In the meantime, I guess I’ll just make a bunch of more projects!"}, {"post_id": 28924, "ts": "2026-07-15T15:07:31Z", "hours": 3.2167, "text": "SMD Soldering Attempt The parts from LCSC and JLCPCB had arrived! This meant that I could finally build the final part of the robot: the KineticBoard controller (yk, the devboard with a motor driver on it?). It’s gonna be difficult because I have to solder both sides of the PCB, but so far I only soldered the first side. Some parts were misaligned but it looks mostly ok."}, {"post_id": 27967, "ts": "2026-07-13T22:31:13Z", "hours": 2.4608, "text": "Rebuilt the Robot The new standoffs had finished 3D printing, so I could finally replace the faulty old ones. Since I had to tear the robot down anyway, I decided to fix the motor slant problem as well. The solution to the motor slant problem was relatively simple: some foam padding to lift the motors up to the horizontal. This solution not only worked perfectly, but also gave the robot a little bit of shock absorbance. After that, all I had to do was build the robot with the new standoffs, which was actually quite a chore because it’s hard to use a screwdriver at an angle."}, {"post_id": 26870, "ts": "2026-07-11T22:02:49Z", "hours": 0.9167, "text": "Standoff Redesign The old standoffs had an issue because they weren’t properly threaded, which meant that there really wasn’t much aside from minimal friction that was holding the screws in place. The Fix I redesigned the standoffs by making them wider, thoroughly hollow, and exposed on one half. This allowed me to slide nuts and screws inside the standoffs, which will guarantee a perfect lock. Another issue that this redesign fixed was the blocked hole problem. Essentially, when I put a screw in a hole on the middle chassis, I couldn’t then use that same hole for another standoff to connect the other side. This solves that issue since a single screw on the middle chassis can now go through two standoffs at once, allowing me to connect both sides."}, {"post_id": 24486, "ts": "2026-07-08T01:50:07Z", "hours": 2.2497, "text": "Assembly Time! Alas, the fun part officially begins! At the time of writing this, most of the parts I ordered online have arrived, with the exception of the custom PCB from JLC. The parts for the chassis just came out of the 3D printer an hour before I started my session, so I had enough parts to finally build the robot! Challenges Building the actual robot brought tiny errors that I had previously overlooked to light. For starters, the 2.5mm trough, while looking very aesthetic, caused the motors to tilt slightly upwards. Additionally, the custom 3D-printed standoffs didn’t really hold on to the M3 screws, so I’m just hoping gravity does its thing. I might have to hot glue them later if more issues arise out of this. Lastly, the motors come with female-to-female cables, but my KineticBoard Leaf expects female-to-male. I might add male headers to the next iteration of the KineticBoard Leaf."}, {"post_id": 23890, "ts": "2026-07-07T03:00:11Z", "hours": 2.5553, "text": "Quality-of-life Updates for the Chassis I had used horseshoe-type straps previously in an RC Car design but those had a tendency to slide horizontally. With that in mind, I decided to use the motor’s 2 M3 screws to build a strap on each side of the chassis to lock the motors in place. I’ll still keep one horseshoe clamp for each motor in addition to this for stability purposes."}, {"post_id": 15868, "ts": "2026-06-25T19:55:35Z", "hours": 3.5669, "text": "Fixing the KineticBoard Did you know that something as simple as a double-sided version of a Pi Pico can cost around $150 to manufacture from JLC? Yea, I didn’t either. Silkscreen Redesigns! I made some newer art to put as a silkscreen. I think what I had before was okay, but it seemed a bit sloppy. GitHub submodule stuff I updated the KineticBoard Repo and added it as a submodule to my main repository. Capacitor Fix From my last session, I ended with picking a capacitor that had a higher voltage rating since passing 12V through a 6.3V capacitor will definitely cause dielectric breakdown. My solution last time was to use an 25V electrolytic aluminum capacitor, which ended up being too big. To resolve the overlap, I just chose a different SMD Capacitor footprint—this time for a tantalum capacitor since they’re much smaller. Inverted Screw Terminals Apparently the screw terminals were inverted this whole time. I realized this since the arrows were pointing toward the terminals from the center of the board, rather from the outside (the arrows indicate the direction that the wire will enter). I fixed this by rotating each screw terminal by 180 but this just caused 19 DRC violations. Of course, I had to reroute all of the traces that were flipped, and of course I had made it so that fixing one trace blocks the other trace from passing through. I ended up solving this problem by dropping a via and routing the board through one of the 2 middle layers. And it costs WHAT??? Yup. The board itself costs $7, but then JLCPCBA decided to ramp up the cost to $150 with a $50 setup fee, $30 “loading into the feeder” fee, and so on. I’m thinking of buying a hot plate to “solder” all of the SMD parts on the board at home, but some of my caps are 0402 and those things are genuinely microscopic."}, {"post_id": 15472, "ts": "2026-06-25T04:59:34Z", "hours": 4.2003, "text": "CAD Touch-ups I had previously built a chassis for this robot before in Stasis, but I had never shipped it. Today, I looked at the BOM for the assembly and saw that the metal standoffs that hold the layers together cost more than $2 per piece. I avoided this fee by modeling my own plastic standoffs that had M3 holes on both ends. I also updated the wheels to fit better with the chassis and use less filament. Unfortunately, this increased the mass moment of inertia of the wheels so stopping them and getting them to start might be a future issue? (I hope not tho plsplspls). You have a devboard too? Whatttt Yep! At Stasis, I also made a devboard known as the KineticBoard for this robot. This wasn’t shipped either. Since the devboard was almost complete, I decided to start looking up how to use JLCPCB and realized that I had yet another BOM to fill. Yayyyy🫠. I spent a solid hour figuring JLC out and also saw that one of my capacitor footprints needs to be updated because they don’t make 100uF capacitors in a size that’s expected of the 22pF ones (oopsie). Unfortunately, doing so resulted in another issue which is that the new capacitor is colliding with the motor driver, so fixing that is gonna be a lot of fun 🫠🫠🫠🫠. Anyway that’s a task for tomorrow."}, {"post_id": 14801, "ts": "2026-06-24T01:22:15Z", "hours": 1.2106, "text": "Dual-motor…drive? I added a second motor and added support for turning in the Pico’s firmware. The main challenge in this session was figuring out how the robot will turn. Since the entire purpose of the Pico is to be the Pi’s personal uber driver, it should have the ability to process almost every command on its own without reliance on the Pi. To put it simply, the Pi won’t say “hey, turn one motor this way and the other one in the opposite direction to create a torque to make the robot spin,”; instead, it will simply say something like “turn this way!” and the Pi will figure out the angle in which it should turn and it will internally compute how it should control the motors. The new command structure is now 2 bits for direction + 2 dummy bits + 4 control bits . Having the 2 bits for direction allows for 4 possible outputs. Since my histogram from the algorithm used intervals of 45 degrees, having 4 of those 45 degree chunks is enough to cover a 180 degree arc. With turning support in both the left and right direction using the command nibbles 0xD and 0xE , respectively, it is possible to complete a full rotation. INFINITE RECURSIONNNNNN Since the robot is supposed to only rotate for a little bit and then resume moving in whatever direction it was going in, I implemented this by using a recursive call to the control function itself and passing in the value of the old command as the new command to execute. This recursive behavior was only meant for turns, not straight movement. As you could guess from the header, this resulted in the program calling itself over and over if I did two turns (since the last command was a turn and it’s last command, by my stupid function call, is also a turn). I patched this by making the program only recall straight moves and not turns, that way it would never have a old_cmd encoding for another turn."}, {"post_id": 13518, "ts": "2026-06-22T03:51:37Z", "hours": 0.4742, "text": "It’s running on the Pi! I used a docker container to allow the web app to be easily hosted on a Raspberry Pi 4. Docker provided a somewhat seamless transition from my local linux environment to the Pi, but I still had to cross compile it for the ARM64 architecture and had to modify a few things Andddd of course I got stuck somewhere in the middle So web apps in docker apparently dont use localhost , instead, they use 0.0.0.0 and expose their port at runtime. This made it quite complicated, because the JavaScript needed to call its websocket from…itself (but on the browser end aka localhost), whereas the Python server would serve 0.0.0.0, which would be then connected to localhost by the daemon. This took me some time to realize, and it was more annoying to recompile the image every time I wanted to make a subtle change."}, {"post_id": 13303, "ts": "2026-06-21T19:42:03Z", "hours": 3.5881, "text": "Hardware Setup + Communication Interfaces drive me crazy Before you look at the time and freak out, I ran into like a dozen errors and each could have been caused by at least ten different independent variables 😭. What did you do? Anyway, I set up a Raspberry Pi 4 (the thing I’m also currently using for my website, www.StatixLabs.org ) and a Pi Pico. I soldered the pins on a DRV8833 motor driver module and connected it to the Pico. I then created 2 UART lines from the Pi to the Pi Pico, allowing them to communicate serially. I then attached a mini N20 motor (with encoders) to the Pico’s motor driver, but this will change when I get the funding to buy motors that can actually sustain the weight of the robot. I then created a command structure in which the Pi transmits a single byte of data to control the motor. The structure of the packet (well, at least I think it’s a packet?) is 4 bits for speed + 4 bits for command . On the regular Pi, I created a script that accepted user input in the form command,speed in which speed was a normalized float, being optional for the command stop which assumes a speed of 0. Commands like forward and backward transmit 0x?A and 0x?B , respectively, and the ? is just a placeholder for the speed nibble. Sooooo, why three and a half hours? Great question! It took me a solid hour to figure out how to use the motors with the Pi Pico. This is because I initially had one of the Undercity themed Pico Devboards, and I thought they were really cool so I didn’t wanna mistakenly ruin the design because of my lousy soldering. So, I just decided to use header pins and sandwiched the devboard in between the header pins and the breadboard. It partially worked, but it was unreliable for the entire right half of the board. I ended up having to use one of my Pico 2’s that I had already soldered, and I also had to change the CMake to account for this. I was extra confused because UART communication worked perfectly fine with my previous sandwich approach, but simple PWM motor control didn’t. Oh well, at least everything worked out in the end after the switch 🫠."}, {"post_id": 12819, "ts": "2026-06-20T23:57:18Z", "hours": 2.4442, "text": "Added Web UI Since the robot is targeted towards a more non-technical audience, I decided that a web interface is much better than a pygame window. This will also be a key part in a “ship” since it’s meant to be “published” and you can’t really publish a pygame script that first of all isn’t even a game lol. I learned how WebSockets work and I made a copy of the graphing script but stripped away the pygame API and added a web server to it. Some challenges I ran into were synchronization, so I solved it by creating a different thread in which the LiDAR runs and sends its data to a buffer, while the main thread runs the web server and sends the buffered data."}, {"post_id": 12150, "ts": "2026-06-19T21:00:23Z", "hours": 2.5475, "text": "Rework + Better Navigation I decided to rewrite the entire pygame display since whoever wrote it before did it totally backwards and it had caused my algorithms to break and a bunch of other problems. So after that pygame refresher, I also reworked my algorithm because tuning the linear max offset seemed to be too unreliable for a broad range of environments and using something like a reciprocal function would make the algorithm amplify noise because my lidar often picks up random particles that are super close to it’s surface (I tried wiping it with a dry cloth; it didn’t work). Anyway, the new algorithm turns the unit circle into a histogram of angles and then calculates the average distance in each interval to determine which direction is the furthest away. The algorithm then picks that direction since it is the best direction that the robot can move in for autonomous navigation (you know, finding new areas?). Anyway, this algorithm is still pretty elementary but it worked first try (well, technically second because of an optimization)."}, {"post_id": 11670, "ts": "2026-06-19T00:41:24Z", "hours": 1.6672, "text": "Basic Navigation Algorithm I implemented a naive navigation algorithm for the robot. the algorithm uses an obstacle avoidance strategy. So far, it uses a linear transform that pushes the robot away from nearby items. However, I noticed that IRL, the LiDAR doesn’t feel the push in the opposite direction until the obstacle gets too close. I’m planning on fixing this later by using an inversion function or something rather than just subtraction."}, {"post_id": 10941, "ts": "2026-06-17T22:49:12Z", "hours": 1.565, "text": "I created a basic scanner by using an RPLiDAR library from a YouTube Video . I adjusted the script for my LiDAR type and fixed a few bugs in the code such as angular positioning inversions. I also started working on the readjustment logic in which the frame is held still when the robot turns by rotating every point on the frame in the opposite direction that it is turning in. I also improved the color logic by using an actual gradient-based shader."}]...
|
Title: Colosseus by @gauss | Stardance
Devlogs:
I Title: Colosseus by @gauss | Stardance
Devlogs:
I created a basic scanner by using an RPLiDAR library from a YouTube Video . I adjusted the script for my LiDAR type and fixed a few bugs in the code such as angular positioning inversions. I also started working on the readjustment logic in which the frame is held still when the robot turns by rotating every point on the frame in the opposite direction that it is turning in. I also improved the color logic by using an actual gradient-based shader.
Basic Navigation Algorithm I implemented a naive navigation algorithm for the robot. the algorithm uses an obstacle avoidance strategy. So far, it uses a linear transform that pushes the robot away from nearby items. However, I noticed that IRL, the LiDAR doesn’t feel the push in the opposite direction until the obstacle gets too close. I’m planning on fixing this later by using an inversion function or something rather than just subtraction.
Rework + Better Navigation I decided to rewrite the entire pygame display since whoever wrote it before did it totally backwards and it had caused my algorithms to break and a bunch of other problems. So after that pygame refresher, I also reworked my algorithm because tuning the linear max offset seemed to be too unreliable for a broad range of environments and using something like a reciprocal function would make the algorithm amplify noise because my lidar often picks up random particles that are super close to it’s surface (I tried wiping it with a dry cloth; it didn’t work). Anyway, the new algorithm turns the unit circle into a histogram of angles and then calculates the average distance in each interval to determine which direction is the furthest away. The algorithm then picks that direction since it is the best direction that the robot can move in for autonomous navigation (you know, finding new areas?). Anyway, this algorithm is still pretty elementary but it worked first try (well, technically second because of an optimization).
Added Web UI Since the robot is targeted towards a more non-technical audience, I decided that a web interface is much better than a pygame window. This will also be a key part in a “ship” since it’s meant to be “published” and you can’t really publish a pygame script that first of all isn’t even a game lol. I learned how WebSockets work and I made a copy of the graphing script but stripped away the pygame API and added a web server to it. Some challenges I ran into were synchronization, so I solved it by creating a different thread in which the LiDAR runs and sends its data to a buffer, while the main thread runs the web server and sends the buffered data.
Hardware Setup + Communication Interfaces drive me crazy Before you look at the time and freak out, I ran into like a dozen errors and each could have been caused by at least ten different independent variables 😭. What did you do? Anyway, I set up a Raspberry Pi 4 (the thing I’m also currently using for my website, www.StatixLabs.org ) and a Pi Pico. I soldered the pins on a DRV8833 motor driver module and connected it to the Pico. I then created 2 UART lines from the Pi to the Pi Pico, allowing them to communicate serially. I then attached a mini N20 motor (with encoders) to the Pico’s motor driver, but this will change when I get the funding to buy motors that can actually sustain the weight of the robot. I then created a command structure in which the Pi transmits a single byte of data to control the motor. The structure of the packet (well, at least I think it’s a packet?) is 4 bits for speed + 4 bits for command . On the regular Pi, I created a script that accepted user input in the form command,speed in which speed was a normalized float, being optional for the command stop which assumes a speed of 0. Commands like forward and backward transmit 0x?A and 0x?B , respectively, and the ? is just a placeholder for the speed nibble. Sooooo, why three and a half hours? Great question! It took me a solid hour to figure out how to use the motors with the Pi Pico. This is because I initially had one of the Undercity themed Pico Devboards, and I thought they were really cool so I didn’t wanna mistakenly ruin the design because of my lousy soldering. So, I just decided to use header pins and sandwiched the devboard in between the header pins and the breadboard. It partially worked, but it was unreliable for the entire right half of the board. I ended up having to use one of my Pico 2’s that I had already soldered, and I also had to change the CMake to account for this. I was extra confused because UART communication worked perfectly fine with my previous sandwich approach, but simple PWM motor control didn’t. Oh well, at least everything worked out in the end after the switch 🫠.
It’s running on the Pi! I used a docker container to allow the web app to be easily hosted on a Raspberry Pi 4. Docker provided a somewhat seamless transition from my local linux environment to the Pi, but I still had to cross compile it for the ARM64 architecture and had to modify a few things Andddd of course I got stuck somewhere in the middle So web apps in docker apparently dont use localhost , instead, they use 0.0.0.0 and expose their port at runtime. This made it quite complicated, because the JavaScript needed to call its websocket from…itself (but on the browser end aka localhost), whereas the Python server would serve 0.0.0.0, which would be then connected to localhost by the daemon. This took me some time to realize, and it was more annoying to recompile the image every time I wanted to make a subtle change.
Dual-motor…drive? I added a second motor and added support for turning in the Pico’s firmware. The main challenge in this session was figuring out how the robot will turn. Since the entire purpose of the Pico is to be the Pi’s personal uber driver, it should have the ability to process almost every command on its own without reliance on the Pi. To put it simply, the Pi won’t say “hey, turn one motor this way and the other one in the opposite direction to create a torque to make the robot spin,”; instead, it will simply say something like “turn this way!” and the Pi will figure out the angle in which it should turn and it will internally compute how it should control the motors. The new command structure is now 2 bits for direction + 2 dummy bits + 4 control bits . Having the 2 bits for direction allows for 4 possible outputs. Since my histogram from the algorithm used intervals of 45 degrees, having 4 of those 45 degree chunks is enough to cover a 180 degree arc. With turning support in both the left and right direction using the command nibbles 0xD and 0xE , respectively, it is possible to complete a full rotation. INFINITE RECURSIONNNNNN Since the robot is supposed to only rotate for a little bit and then resume moving in whatever direction it was going in, I implemented this by using a recursive call to the control function itself and passing in the value of the old command as the new command to execute. This recursive behavior was only meant for turns, not straight movement. As you could guess from the header, this resulted in the program calling itself over and over if I did two turns (since the last command was a turn and it’s last command, by my stupid function call, is also a turn). I patched this by making the program only recall straight moves and not turns, that way it would never have a old_cmd encoding for another turn.
CAD Touch-ups I had previously built a chassis for this robot before in Stasis, but I had never shipped it. Today, I looked at the BOM for the assembly and saw that the metal standoffs that hold the layers together cost more than $2 per piece. I avoided this fee by modeling my own plastic standoffs that had M3 holes on both ends. I also updated the wheels to fit better with the chassis and use less filament. Unfortunately, this increased the mass moment of inertia of the wheels so stopping them and getting them to start might be a future issue? (I hope not tho plsplspls). You have a devboard too? Whatttt Yep! At Stasis, I also made a devboard known as the KineticBoard for this robot. This wasn’t shipped either. Since the devboard was almost complete, I decided to start looking up how to use JLCPCB and realized that I had yet another BOM to fill. Yayyyy🫠. I spent a solid hour figuring JLC out and also saw that one of my capacitor footprints needs to be updated because they don’t make 100uF capacitors in a size that’s expected of the 22pF ones (oopsie). Unfortunately, doing so resulted in another issue which is that the new capacitor is colliding with the motor driver, so fixing that is gonna be a lot of fun 🫠🫠🫠🫠. Anyway that’s a task for tomorrow.
Fixing the KineticBoard Did you know that something as simple as a double-sided version of a Pi Pico can cost around $150 to manufacture from JLC? Yea, I didn’t either. Silkscreen Redesigns! I made some newer art to put as a silkscreen. I think what I had before was okay, but it seemed a bit sloppy. GitHub submodule stuff I updated the KineticBoard Repo and added it as a submodule to my main repository. Capacitor Fix From my last session, I ended with picking a capacitor that had a higher voltage rating since passing 12V through a 6.3V capacitor will definitely cause dielectric breakdown. My solution last time was to use an 25V electrolytic aluminum capacitor, which ended up being too big. To resolve the overlap, I just chose a different SMD Capacitor footprint—this time for a tantalum capacitor since they’re much smaller. Inverted Screw Terminals Apparently the screw terminals were inverted this whole time. I realized this since the arrows were pointing toward the terminals from the center of the board, rather from the outside (the arrows indicate the direction that the wire will enter). I fixed this by rotating each screw terminal by 180 but this just caused 19 DRC violations. Of course, I had to reroute all of the traces that were flipped, and of course I had made it so that fixing one trace blocks the other trace from passing through. I ended up solving this problem by dropping a via and routing the board through one of the 2 middle layers. And it costs WHAT??? Yup. The board itself costs $7, but then JLCPCBA decided to ramp up the cost to $150 with a $50 setup fee, $30 “loading into the feeder” fee, and so on. I’m thinking of buying a hot plate to “solder” all of the SMD parts on the board at home, but some of my caps are 0402 and those things are genuinely microscopic.
Quality-of-life Updates for the Chassis I had used horseshoe-type straps previously in an RC Car design but those had a tendency to slide horizontally. With that in mind, I decided to use the motor’s 2 M3 screws to build a strap on each side of the chassis to lock the motors in place. I’ll still keep one horseshoe clamp for each motor in addition to this for stability purposes.
Assembly Time! Alas, the fun part officially begins! At the time of writing this, most of the parts I ordered online have arrived, with the exception of the custom PCB from JLC. The parts for the chassis just came out of the 3D printer an hour before I started my session, so I had enough parts to finally build the robot! Challenges Building the actual robot brought tiny errors that I had previously overlooked to light. For starters, the 2.5mm trough, while looking very aesthetic, caused the motors to tilt slightly upwards. Additionally, the custom 3D-printed standoffs didn’t really hold on to the M3 screws, so I’m just hoping gravity does its thing. I might have to hot glue them later if more issues arise out of this. Lastly, the motors come with female-to-female cables, but my KineticBoard Leaf expects female-to-male. I might add male headers to the next iteration of the KineticBoard Leaf.
Standoff Redesign The old standoffs had an issue because they weren’t properly threaded, which meant that there really wasn’t much aside from minimal friction that was holding the screws in place. The Fix I redesigned the standoffs by making them wider, thoroughly hollow, and exposed on one half. This allowed me to slide nuts and screws inside the standoffs, which will guarantee a perfect lock. Another issue that this redesign fixed was the blocked hole problem. Essentially, when I put a screw in a hole on the middle chassis, I couldn’t then use that same hole for another standoff to connect the other side. This solves that issue since a single screw on the middle chassis can now go through two standoffs at once, allowing me to connect both sides.
Rebuilt the Robot The new standoffs had finished 3D printing, so I could finally replace the faulty old ones. Since I had to tear the robot down anyway, I decided to fix the motor slant problem as well. The solution to the motor slant problem was relatively simple: some foam padding to lift the motors up to the horizontal. This solution not only worked perfectly, but also gave the robot a little bit of shock absorbance. After that, all I had to do was build the robot with the new standoffs, which was actually quite a chore because it’s hard to use a screwdriver at an angle.
SMD Soldering Attempt The parts from LCSC and JLCPCB had arrived! This meant that I could finally build the final part of the robot: the KineticBoard controller (yk, the devboard with a motor driver on it?). It’s gonna be difficult because I have to solder both sides of the PCB, but so far I only soldered the first side. Some parts were misaligned but it looks mostly ok.
Broken Devboard So this was my first time ever soldering a PCB, and I didn’t go easy on myself especially considering I used 0402 footprints on a 4-layer double-sided layout. I had hoped that it would work after soldering all the parts but unfortunately, it did not. Areas of Error The front portion was soldered using a hot plate, and the back was soldered with a hot air gun. This was my first time using a hot air gun, so I had my dad (a former electronics hobbyist) help me out a little. Turns out we both couldn’t fix it. One potential error is that the back side wasn’t properly soldered because we ran the air gun at 220 degrees fahrenheit, wihch could have meant that the core of the gun was that hot but outside it could be 150 or something. Another thing that could have gone wrong is the ICs could have been overheated and cooked, or a tiny bridge on the RP2040 could have shorted the whole thing. Next Steps and Debug I asked a friend (a guy who has a PhD in computer/rf engineering) to help me debug the board, and he said he’ll be more than happy to in a few weeks. In the meantime, I guess I’ll just make a bunch of more projects!
Lab Visit + THE DEVBOARD WORKS NOW WOHOOO After inhaling a mole of lead-based solder fumes, I finally got the devboard to work!!! It’s my first ever PCB so I’m really stoked!! I visited my friend’s lab at the university where he works and we were able to debug and fix the devboard in a few hours. Unfortunately, I remembered that I had to record the whole thing in lapse in the last 20 minutes, but I guess that’s just karma for taking 9 hours ( ) to hand solder/debug a PCB in my last devlog (yes ik i suck). Issues My previous attempt at soldering failed because I set the temperature of my hot air gun too low, and I overestimated surface tension’s effect on my hot plate. I used a high-res microscope at the lab and saw that most of the QFN components were only partially soldered. I could quite literally see a tiny gap between the two pads. Another thing I saw was some obvious bridging, which I quickly fixed with a soldering iron. One of my biggest takeaways from the lab was that THE TYPE OF SOLDER FLUX MATTERS!!! I previously used some generic $14 flux from Amazon, but it was so bad that even some of the most powerful ultrasonic flux cleaners couldn’t get it off easily. It was also so thick that even the infrared lamp couldn’t get the RP2040 to stick down. My friend used (and recommended) water-soluble flux, which makes it easy to clean off without messy isopropyl alcohol. I ended up salvaging the parts from my old PCB to build a new one from scratch. I learned how to solder QFP packages, 0603s, and even 0402s with an iron. In the end, a soldering iron is THE BEST way to guarantee that your components are soldered down, especially when verified with a microscope. I also learned how to solder using an infrared lamp and hot air (properly, this time). Results??? Right as I finished soldering the last component, I connected it to my computer and held down bootselect….and IT WAS DETECTED AS A MASS STORAGE DEVICE!!! I was so excited at this time that I finally rekindled my motivation to keep building more of these PCBs (I was pretty close to giving up on PCB-related projects ngl). Anyway, right before leaving, I put it in the ultrasonic washer they have for PCBs (which is just a tiny container with water and ultrasonic waves being fired it at from all directions to take the flux off. I’m currently waiting until tomorrow for it to air dry, and then I’ll incorporate it in the robot!
First Drive I checked the devboard for any last errors and connected it to the motors on the robot! Final checks I verified that the KineticBoard Leaf works when it’s powered by USB and by the 5000mAh Li-Ion battery. I did this by writing a simple program that toggles a GPIO pin, and used a multimeter to read the oscillating voltages. It worked!! Test Drive! I already had firmware from the design stage, but it was written for a different motor driver so I decided to start from scratch. I created a basic motor drive “class” (structs/functions to go with the struct) in C and set up my CMake project in a way that I could add a demos folder later. Now that I had custom firmware for the TB6612FNG, I wired up each screw terminal pair to the M1 and M2 pins on each motor, and flipped the switch to see it drive perfectly! It was really relieving to see everything work on first try, and I gained a huge confidence boost in my embedded programming skills. Future Enhancements The motors came with 6-pin connectors, and I should have included appropriate receivers for these connectors on the KineticBoard Leaf rather than just generic screw terminals. Currently, I have to connect the 6-pin connector to 6 jumper wires, which is quite the eyesore.
Soldered the GPIO pins Yea idk why I didn’t do this earlier but I needed the GPIO pins to read data from the motor encoders.
So I Almost Burned My Finger I was trying to get the encoders to work, but in the process of reading data through USB serial, I got a mild shock How Did This Happen? To configure hall effect encoders, you need to give each wheel a good spin to determine how many “pulses” are detected by the Pico. The detection part is quite simple: whenever the wheel turns a certain amount, motor encoders A and B change state. This can be detected through an interrupt and then printed out (in the main loop, not the callback). However, in the process of printing it out, I touched the USB-C receptacle and felt it get extremely hot, and later realized that something got shorted somewhere. Any Guesses Where? Looking back at the situation, I had connected the battery and USB power from my laptop to the board at the same time, so something might have gone wrong there. Another thing that was going wrong was that the receptacle itself was coming off, so it could be that one of the pads, say +5V for instance, came in contact with like GND or smth, inducing shock if someone were to touch it. Here’s an image from the timelapse right before I plugged the board into my laptop and fried it:
Another PCB????? I’m creating a second motor driver board, but this time instead of being a standalone devboard, it is only a hat. Schematic Stuff I added symbols for header sockets, the barrel jacks, a buck converter, and the usual dozens of resistors and caps. The pinout for the buck converter was so annoying and something about putting non-connecting wires on top of each other pissed me off a lot. It’s an eyesore, and I can already tell that I have to use a billion vias to get everything working once I’ll hit the layout stage.
Finished KineticBoard HAT Schematic I spent a few hours finishing the schematic for the KineticBoard HAT, an extension board that allows the Pi Pico to control motors. Additions Rather than using a standard Li-Ion to power the Pico and a really small power bank to power the Pi, I decided to just use one: the Li-Ion. For this to happen, the PCB would need to convert 12V to 5V and expose this voltage through a USB-C connector. I decided to copy & paste my old buck converter schematic, but I had to pick different resistance values such that this formula V = 0.925 * (1 + R1/R2) yielded ~5.1V. This seems easy, but I wanted to use some resistors that I already had. I decided to make a C program that picked the most optimal values for this voltage divider. The program works by following a 2 pointer algorithm which adjusts the numerator and the denominator by shuffling through a sorted list of the resistance values, and finding the ones that are closest to the target voltage. I also expanded on my old buck converter by making the +3V3 net controlled by a switch, just so that no weird stuff happens if I connect both the PC and battery to the board at the same time. Lastly, I added the 6-pin JST connectors, the motor driver, and a few status LEDs. I put everything in the PCB editor in the end, and I’m honestly terrified of routing this thing, but that’s a problem for later lol.
Almost Done with the Layout With the components oriented in their city-like pattern, all that was left to do was to pave the final roads through the green adhesive base, connecting the motor driver to the 6-pin adapters. Changes? I decided to drop the 12V to 3.3V buck because the Pico has one internally, and I could just keep my 5V buck and feed its output into VSYS and extract 3.3V from the Pico’s +3V3 pin. I also ended up changing the orientation of some adapters because I couldn’t comprehend the fact that the PCB exists in 3 dimensions? Lastly, I greedily extended the bottom of the PCB so that both partitions could access one large +12V trace (the GPIO sockets were interfering). What next? All I have to do is wire up the connections to the motor driver and adapters, and we should be good to manufacture ts.
Finished the PCB The final coat of copper pavement was carefully laid out as the green city was unified at last. Changes I routed the motor driver’s pins to the two 6-pin adapters on the bottom right of the board. I connected the last pads, and added some finishing touches such as screw holes for a 3D-printed enclosure and some custom silkscreen cuz why not. I also filleted the edges as I read that it was a good practice online. What’s Next? All of the GND pads are isolated, so I need to make a copper fill zone or something to link all of them. I also plan on adding a little silkscreen on the back, and then we should be good to go!
Sent out the order! After finalizing the last parts of the extension board, I used my hardware grant to send the PCB over to JLC for fabrication. I separately purchased parts from LCSC.
Custom Enclosure for the PCB After the board had travelled across the Pacific Ocean and the United States, it finally reached its destination at the core of Colosseus. UPDATE: THE PCB AND THE LCSC PARTS HAVE ARRIVED!!!! Whadidyado? I started creating a case for the KineticBoard. So far, I copied the layout of the board from KiCAD and added cutouts for parts that were meant to have user interaction. I tested out three prototypes before settling on one that actually fit (a lot of issues were solved by adding extra clearance and gaps). Potential Issues I’m 70% certain that the case won’t fit the bottom floor of the chassis, but that’s a problem for later. For now, I’m just designing the most badass case I can.
THE BOARD IS ON FIRE Not really, but it kinda is. After soldering all of the components on with an iron and hot plate, I connected the Pi Pico to the HAT via the female header sockets. I wrote a simple blinky script and verified that it worked when powered by my regular laptop. However, when I powered the KineticBoard HAT with the Pico, the RP2040 chip started smoking and I was able to capture a brief orange glow on camera. What now?? I’ll have to carefully look at what could have gone wrong. I tested the voltage readings from the multimeter and found that VSYS reads +5.1V when switched on, which makes sense because the Pico can accept that much. I did notice a constant 0.5V on the +3V3 pin for whatever reason (before attaching the pico). I’ll isolate the Pico on a breadboard and attach jumper wires only where needed, and gradually close in on the part that caused the failure. On a side note, I figured out why one of the LEDs isn’t working. It happens to not be connected to GND; however, everything else seems to be connected just fine.
IT WORKSSSSS ok sit tight brodini cuz i got a lot of stuff to tell you I burned another PCB! yea, u sure heard that right. I found out what the issue with the PCB was: the motor driver was in the wrong orientation, which connected the +12V rail itself to a gpio pin, frying the rp2040 entirely. Instead of using my hot air station to de-solder and rotate the driver, I decided to just make another board because I was lazy. The second board ended up not working either, and when I pressed down on one of the legs of the buck converter with a multimeter, the IC caught on fire and started smoking. I ended up needing to use a hot air station to replace the buck converter on that board, so I used it to heat up and fix the driver on my previous board while I was at it. I now have two working boards but does it really work? yup. how do you know? because I’m built like that I dont think so stfu ANYWAY…FIRMWARE TIMEEEE The best way to verify the board works is to test out its main feature: controlling Colosseus’ motors (goddamn I’ve spent so much time on the pcb that I’m still not comfortable with the actual name of the robot). I wrote some code in C to blink the KineticBoard’s onboard led, built and flashed the .uf2 to the pico, connected it to the board, andd… … … … IT DIDN’T CATCH ON FIRE! (that’s a first) it actually blinked the LED like it was supposed to. wow. With that boost in confidence, I was more inclined to write code for the robot itself. I started scaffolding a library for the robot, which I’m calling KineticLib . So far, I’ve written code to simplify PWM channels because the TB6612FNG motor driver relies on two of them. I tested my library by adding a demo project that makes the robot incrementally increase in speed, and then come back in the same manner. It worked too! things I HAVEN’T tested yet connecting the Pico to USB while it’s attached to the hat using the usb-c rececptacle to power other stuff (like a regular rpi) observing the effect of forcing the motors to spin while they are connected to the KineticBoard (I tried this briefly and I smelled some type of smoke, but I could very well just be paranoid) but yea all in all 11/10 experience i would highly recommend trying to make one of these on your own. if you happen to be brave enough to test these before I do, lmk what happens on slack (if you survive)....
|
1792691240.7314546
|
1793296040.7314546
|
|
41369
|
Duos by @winwon23 | Stardance
|
winwon23
|
0
|
69.04
|
0
|
[]
|
[{"post_id": 80630, "ts": "202 [{"post_id": 80630, "ts": "2026-10-18T10:46:02Z", "hours": 9.1008, "text": "Devlog #13 - New maps! Progress TLDR: I made 3 new maps that replace the old test map, being indoor, forest and beach, which are all super cool, and I’ve started working on the tutorial. 2 of the 3 new maps (forrest and beach) were made via the terrain feature so I have some nice landscape for both, but I decided to keep them relatively simple The indoor map looks kinda scary like backrooms vibes which idk about, I’m not that great with lighting and stuff, and it also has a super cursed ground texture if you look outside of the indoor area… The tutorial is going along pretty well without much trouble and so far you can learn to bump and to set which is nice What’s next? As mentioned previously, I’m going to work on the scoring and graphics, and obv I want to get the tutorial done ASAP I’ll also add free practice mode bc I get that the game will probably be kinda hard for beginners I don’t have enough time in Stardance left to make cool multiplayer or even local multiplayer or difficulties, so those will come in a future event, hopefully Terra if I can stay consistent."}, {"post_id": 78015, "ts": "2026-10-09T06:46:59Z", "hours": 6.3503, "text": "Devlog #12 - New screens! Progress TLDR: I made a new splash, menu, and settings screen on the same canvas using a separate script to switch between the pages, with a transition! I’m genuinely super excited bc Duos is starting to turn into like an actual game. I used Canva to handmake all my assets and stuff which was a bit of a trek bc it doesn’t get counted toward hours but it was worth it bc the design is original I used separate scripts for buttons to enlarge on hover, dot ribbons to scroll across, and to change the text on the different modes This took quite a while since I’ve never really done much in UI other than like a basic button/canvas, so I’m pretty proud of what I’ve done. Also, I hit 60 hrs on Duos What’s next? I’m gonna work on the three maps, indoor, beach, and forrest, which should be pretty easy I’m then going to implement some graphics, so like a UI scoreboard and setboard(idk is that a thing lol) I’m also going to make the 3rd person view way better, it’s really impractical rn, I’m thinking like just volleyball style (new vb game that came out recently) Side note I’m coming close to shipping, I was previously trying to work up to 44 hrs but I realised I should probably get maybe 60-70 hrs to be safe, bc I really want to get the Bambu Lab A1 Mini…"}, {"post_id": 77239, "ts": "2026-10-06T07:44:01Z", "hours": 8.3558, "text": "Devlog #11 - Point distribution and new loading screen (?) Progress TLDR: I finished a ground detection system that sees when the ball hits the ground and gives appropriate pts. I’m also working on a new pre-menu/splash screen! The ground detection system uses a collider check that looks for when the ball hits the ground and sees where the ball was last and the last player to touch the ball, giving points accordingly There were issues with ground hits giving double points because the ball would bounce, so I had to add a cooldown that prevented this The ground hitting detection made me realise the bots kept letting the ball hit the ground first , so I had to fix that up by getting bots to hit earlier which I did by reducing hit cooldown (idk why it worked) I’m also working on a new splash screen! (check below) What’s next? Hopefully I can get the splash screen done fairly quickly now that I think I’ve finalised a design I want to make a menu screen and a tutorial I’m going to add some kind of animations for the characters I’ll also eventually add some sort of score-keeping graphics and animations"}, {"post_id": 75164, "ts": "2026-09-29T10:52:48Z", "hours": 8.5981, "text": "Devlog #10 - Gameplay systems Progress TLDR: Fine tuned bot spikes to be more consistent with a diff system, made a starting serving procedure I’m not kidding when I say I must’ve spent like 4 hours just trying to make the bots way more consistent in spiking so I switched from a fixed delay to waiting until the ball is at a certain point in order to spike Bots and players now tp to default positions at the start of gameplay and bots have a serving procedure TPs and positioning took some 3-4 hours because character controllers tend to conflict with teleporting using transform.position, which is smth I didn’t know till chat(ai) told me What’s next Going to keep working on the gameplay system so that you can play a full set at least I’m gonna hopefully then work on the menu to make it look nice I’m also going to make a tutorial since I think the game would be relatively difficult for beginners"}, {"post_id": 73533, "ts": "2026-09-25T10:35:47Z", "hours": 9.1533, "text": "Devlog #9 - Teammate Progress TLDR: Made the teammate who can make plays and spent LOTS of time fine-tuning gameplay and spikes I essentially used a similar set of code for the teammate compared to the opponent bots, except with a few changes such as decision making It took maybe 2 hrs to fine tune and fix bugs related to the spike to a point where it is somewhat consistent I also improved the touch system so each bot knows who the last player to touch the ball was which took the bulk of the time What’s next I’m planning on improving the difficulty by making the bots spike steeper angles depending on the distance from the net I’m then going to try and make the game management for point counting and stuff I’m also planning on improving the menu so that it feels more immersive Below: I must’ve written like over 1000 lines of code for the whole project"}, {"post_id": 71689, "ts": "2026-09-21T09:52:11Z", "hours": 8.9931, "text": "Devlog #8 - Bots Progress TLDR: Built a position predictor/tracker for the ball and made bots able to go to the ball/hit It took about 2-3 hrs to make the ball tracker, which uses physics/math (SUVAT equations) to solve for the general predicted position of the ball after a hit I then spent about 5-6 hrs trying to figure out how to implement the bots, as even trying to get them to move reliably to the ball position was difficult The bots can return your first ball you hit at them What’s next I’m now gonna try and make these bots able to decipher between who last touched the ball and then do sets and hits and stuff to complete playsJ I also need to figure out the teammate, which should be easier"}, {"post_id": 67056, "ts": "2026-09-13T03:09:38Z", "hours": 2.5928, "text": "Devlog #7 - Third Person Progress TLDR: Made a toggleable third person orbiting view This took a really long time because I’ve never actually made a proper third person view in Unity before It took quite a lot of code (140 lines), mainly because trying to make the camera orbit properly and not just tilt is way more complicated than it looks What’s next I’m finally get a move on and make the game manager and the teammates/opponents cpus After that, I’m hoping to do some refining work on the menus and stuff and make Duos more polished as a game, not just like a one trick pony project"}, {"post_id": 65918, "ts": "2026-09-11T11:42:45Z", "hours": 8.7131, "text": "Devlog #6 - Menu (kinda) Progress TLDR: Made a menu w/ environment and play button I haven’t worked on the game for a while bc of exams in the past few weeks, but I should hopefully still be able to complete the game before the challenge finishes. I designed a few elements in Canva and tried to pair them with an environment, which took forever bc the grass wouldn’t sway properly and kept shifting around. I linked the play button to reach the main volleyball game part, but I will probably make a submenu What’s next I’m going to start working on a 3rd person view for the character since it is pretty hard to play in first person I’m going to make a tracker for the ball so there can be more visual cues as to where its going I should hopefully be able to start making the opponents/teammate which I’ve been procrastinating on Please offer any feedback, it’s been really useful!"}, {"post_id": 40661, "ts": "2026-08-04T10:49:46Z", "hours": 1.0389, "text": "Devlog #5 - Set Progress TLDR: Added set, rerouted dive button, unified hitting system The main thing I added was a set, which is now F (for front set). If you don’t play vb, the set basically hits it high for someone else to spike (hit) the ball Changed the dive button from F to Q Moved all the hitting stuff to a unified system, so basically clicking a certain button registers a type of hit via a string that determines if you set, spike or bump. This should make it easier in the long term Any feedback’s great! Suggested gamemodes, features, arts, nitpicks are all welcome!"}, {"post_id": 40070, "ts": "2026-08-03T13:18:13Z", "hours": 1.3219, "text": "Devlog #4 - Crosshair cooldown timer Progress Made a crosshair that basically goes clear(ish) once you hit, and then goes back to opaque once the cooldown timers over (1 s) Also made the sky a little bluer All suggestions are welcome btw, I’m happy to hear what sports, features, etc you want to see in the game! Attached a vid of gameplay below and another Goober portrait"}, {"post_id": 39396, "ts": "2026-08-02T10:38:47Z", "hours": 2.6408, "text": "Devlog #3 - Dive Progress This genuinely took way too much math and testing values, but I finally got a somewhat decent looking dive implemented. When you press F, your character hits a dive and saves the ball. It uses this rectangle hitbox area, and balls that go in that area are hittable. Also shout out to @aayanalikhan09 for the idea to move the light source, now the shadows are much more unnoticeable :) Please feel free to make some suggestions, whether that be small features like lighting or big things like gamemodes/sports you’d like to see! I’ve linked a video of the dive in action below and today’s Goober photo:"}, {"post_id": 38858, "ts": "2026-08-01T12:50:17Z", "hours": 1.2911, "text": "Devlog #2 - Hit cooldown Progress Before this cooldown timer, you could basically double hit the balls and send them to space. Now, you have to wait one second between hits. Feel free to make suggestions, should I make drills, volleyball-soccer cross minigames in the future, etc Enjoy a portrait of Goober below (swipe right):"}, {"post_id": 38064, "ts": "2026-07-31T08:10:55Z", "hours": 0.8853, "text": "Devlog #1 - Foundations of Duos What’s Duos? Duos is a Unity-based 3D sports game that’s going to involve sports such as volleyball, soccer, etc. Feel free to make any suggestions on how you think I could make the game more fun :) The game will be free on Steam when I get the volleyball and soccer parts done. Progress So far, I’ve gotten down the WASD movement and jumping along with the bumping and spiking (hitting) for the volleyball. I’m starting with volleyball, then I’ll move onto soccer. The reason I haven’t made any devlogs before is because I only discovered Stardance from a teacher recently. Stay safe and have fun with your projects :) AI disclosure To be straight up, I have used a bit of Gemini/ChatGPT in some of the bugfixing for my code. Sometime’s I’ll come across some error message or smth that I have no idea what it means, so I’ll just get ai to tell me. Otherwise, the code’s all written originally by me, and I am using some free assets off the unity store for Goober and his sports equipment! I’ve also attached some portraits of the main character, Goober, and some test gameplay."}]...
|
Title: Duos by @winwon23 | Stardance
Devlogs:
Dev Title: Duos by @winwon23 | Stardance
Devlogs:
Devlog #1 - Foundations of Duos What’s Duos? Duos is a Unity-based 3D sports game that’s going to involve sports such as volleyball, soccer, etc. Feel free to make any suggestions on how you think I could make the game more fun :) The game will be free on Steam when I get the volleyball and soccer parts done. Progress So far, I’ve gotten down the WASD movement and jumping along with the bumping and spiking (hitting) for the volleyball. I’m starting with volleyball, then I’ll move onto soccer. The reason I haven’t made any devlogs before is because I only discovered Stardance from a teacher recently. Stay safe and have fun with your projects :) AI disclosure To be straight up, I have used a bit of Gemini/ChatGPT in some of the bugfixing for my code. Sometime’s I’ll come across some error message or smth that I have no idea what it means, so I’ll just get ai to tell me. Otherwise, the code’s all written originally by me, and I am using some free assets off the unity store for Goober and his sports equipment! I’ve also attached some portraits of the main character, Goober, and some test gameplay.
Devlog #2 - Hit cooldown Progress Before this cooldown timer, you could basically double hit the balls and send them to space. Now, you have to wait one second between hits. Feel free to make suggestions, should I make drills, volleyball-soccer cross minigames in the future, etc Enjoy a portrait of Goober below (swipe right):
Devlog #3 - Dive Progress This genuinely took way too much math and testing values, but I finally got a somewhat decent looking dive implemented. When you press F, your character hits a dive and saves the ball. It uses this rectangle hitbox area, and balls that go in that area are hittable. Also shout out to @aayanalikhan09 for the idea to move the light source, now the shadows are much more unnoticeable :) Please feel free to make some suggestions, whether that be small features like lighting or big things like gamemodes/sports you’d like to see! I’ve linked a video of the dive in action below and today’s Goober photo:
Devlog #4 - Crosshair cooldown timer Progress Made a crosshair that basically goes clear(ish) once you hit, and then goes back to opaque once the cooldown timers over (1 s) Also made the sky a little bluer All suggestions are welcome btw, I’m happy to hear what sports, features, etc you want to see in the game! Attached a vid of gameplay below and another Goober portrait
Devlog #5 - Set Progress TLDR: Added set, rerouted dive button, unified hitting system The main thing I added was a set, which is now F (for front set). If you don’t play vb, the set basically hits it high for someone else to spike (hit) the ball Changed the dive button from F to Q Moved all the hitting stuff to a unified system, so basically clicking a certain button registers a type of hit via a string that determines if you set, spike or bump. This should make it easier in the long term Any feedback’s great! Suggested gamemodes, features, arts, nitpicks are all welcome!
Devlog #6 - Menu (kinda) Progress TLDR: Made a menu w/ environment and play button I haven’t worked on the game for a while bc of exams in the past few weeks, but I should hopefully still be able to complete the game before the challenge finishes. I designed a few elements in Canva and tried to pair them with an environment, which took forever bc the grass wouldn’t sway properly and kept shifting around. I linked the play button to reach the main volleyball game part, but I will probably make a submenu What’s next I’m going to start working on a 3rd person view for the character since it is pretty hard to play in first person I’m going to make a tracker for the ball so there can be more visual cues as to where its going I should hopefully be able to start making the opponents/teammate which I’ve been procrastinating on Please offer any feedback, it’s been really useful!
Devlog #7 - Third Person Progress TLDR: Made a toggleable third person orbiting view This took a really long time because I’ve never actually made a proper third person view in Unity before It took quite a lot of code (140 lines), mainly because trying to make the camera orbit properly and not just tilt is way more complicated than it looks What’s next I’m finally get a move on and make the game manager and the teammates/opponents cpus After that, I’m hoping to do some refining work on the menus and stuff and make Duos more polished as a game, not just like a one trick pony project
Devlog #8 - Bots Progress TLDR: Built a position predictor/tracker for the ball and made bots able to go to the ball/hit It took about 2-3 hrs to make the ball tracker, which uses physics/math (SUVAT equations) to solve for the general predicted position of the ball after a hit I then spent about 5-6 hrs trying to figure out how to implement the bots, as even trying to get them to move reliably to the ball position was difficult The bots can return your first ball you hit at them What’s next I’m now gonna try and make these bots able to decipher between who last touched the ball and then do sets and hits and stuff to complete playsJ I also need to figure out the teammate, which should be easier
Devlog #9 - Teammate Progress TLDR: Made the teammate who can make plays and spent LOTS of time fine-tuning gameplay and spikes I essentially used a similar set of code for the teammate compared to the opponent bots, except with a few changes such as decision making It took maybe 2 hrs to fine tune and fix bugs related to the spike to a point where it is somewhat consistent I also improved the touch system so each bot knows who the last player to touch the ball was which took the bulk of the time What’s next I’m planning on improving the difficulty by making the bots spike steeper angles depending on the distance from the net I’m then going to try and make the game management for point counting and stuff I’m also planning on improving the menu so that it feels more immersive Below: I must’ve written like over 1000 lines of code for the whole project
Devlog #10 - Gameplay systems Progress TLDR: Fine tuned bot spikes to be more consistent with a diff system, made a starting serving procedure I’m not kidding when I say I must’ve spent like 4 hours just trying to make the bots way more consistent in spiking so I switched from a fixed delay to waiting until the ball is at a certain point in order to spike Bots and players now tp to default positions at the start of gameplay and bots have a serving procedure TPs and positioning took some 3-4 hours because character controllers tend to conflict with teleporting using transform.position, which is smth I didn’t know till chat(ai) told me What’s next Going to keep working on the gameplay system so that you can play a full set at least I’m gonna hopefully then work on the menu to make it look nice I’m also going to make a tutorial since I think the game would be relatively difficult for beginners
Devlog #11 - Point distribution and new loading screen (?) Progress TLDR: I finished a ground detection system that sees when the ball hits the ground and gives appropriate pts. I’m also working on a new pre-menu/splash screen! The ground detection system uses a collider check that looks for when the ball hits the ground and sees where the ball was last and the last player to touch the ball, giving points accordingly There were issues with ground hits giving double points because the ball would bounce, so I had to add a cooldown that prevented this The ground hitting detection made me realise the bots kept letting the ball hit the ground first , so I had to fix that up by getting bots to hit earlier which I did by reducing hit cooldown (idk why it worked) I’m also working on a new splash screen! (check below) What’s next? Hopefully I can get the splash screen done fairly quickly now that I think I’ve finalised a design I want to make a menu screen and a tutorial I’m going to add some kind of animations for the characters I’ll also eventually add some sort of score-keeping graphics and animations
Devlog #12 - New screens! Progress TLDR: I made a new splash, menu, and settings screen on the same canvas using a separate script to switch between the pages, with a transition! I’m genuinely super excited bc Duos is starting to turn into like an actual game. I used Canva to handmake all my assets and stuff which was a bit of a trek bc it doesn’t get counted toward hours but it was worth it bc the design is original I used separate scripts for buttons to enlarge on hover, dot ribbons to scroll across, and to change the text on the different modes This took quite a while since I’ve never really done much in UI other than like a basic button/canvas, so I’m pretty proud of what I’ve done. Also, I hit 60 hrs on Duos What’s next? I’m gonna work on the three maps, indoor, beach, and forrest, which should be pretty easy I’m then going to implement some graphics, so like a UI scoreboard and setboard(idk is that a thing lol) I’m also going to make the 3rd person view way better, it’s really impractical rn, I’m thinking like just volleyball style (new vb game that came out recently) Side note I’m coming close to shipping, I was previously trying to work up to 44 hrs but I realised I should probably get maybe 60-70 hrs to be safe, bc I really want to get the Bambu Lab A1 Mini…
Devlog #13 - New maps! Progress TLDR: I made 3 new maps that replace the old test map, being indoor, forest and beach, which are all super cool, and I’ve started working on the tutorial. 2 of the 3 new maps (forrest and beach) were made via the terrain feature so I have some nice landscape for both, but I decided to keep them relatively simple The indoor map looks kinda scary like backrooms vibes which idk about, I’m not that great with lighting and stuff, and it also has a super cursed ground texture if you look outside of the indoor area… The tutorial is going along pretty well without much trouble and so far you can learn to bump and to set which is nice What’s next? As mentioned previously, I’m going to work on the scoring and graphics, and obv I want to get the tutorial done ASAP I’ll also add free practice mode bc I get that the game will probably be kinda hard for beginners I don’t have enough time in Stardance left to make cool multiplayer or even local multiplayer or difficulties, so those will come in a future event, hopefully Terra if I can stay consistent....
|
1792802922.227178
|
1793407722.227178
|
|
6376
|
Soundboword by @Axwabo | Stardance
|
Axwabo
|
1
|
69.0
|
995
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-05T23:05:38Z", "hours": 69.0, "multiplier": 14.42, "payout": 995, "blessing": "neutral", "text": "Soundboword is an actually usable desktop soundboard for (primarily) Linux and (with apparent support for) windows tired of other soundboards paywalling slots? not anymore! [insert Phil Swift Flex Tape meme, not sponsored] this is a .NET app built with Avalonia, SoundFlow, and YoutubeExplode you don’t need to install .NET, it’s compiled into a native binary the SoundFlow backend in use is based on miniaudio, so the app only supports mp3 and wav files download audio from YouTube (paste a link or search) for Linux, there is additional PipeWire support use the PipeWire wizard to create a virtual device named “Soundboword Microphone” which you can select in apps (e.g. Discord) after setting up the microphone, you can use the toggles in the bottom left to manage some node links (connect/disconnect audio nodes) Hear Sounds: plays the soundboard to your headphones Mic Sounds: plays the soundboard into the virtual microphone Mic Passthrough: connects the selected physical microphone to the virtual mic Hear Myself: connects your physical mic to your headphones, echoing what you say windows support is partial, macos support will not be provided global hotkeys should work out of the box on losedows the Linux version uses xdg-desktop-portal for global shortcuts if you have a Launchpad Mini MKII lying around, you can use it with this program :3", "repo": "https://github.com/Axwabo/Soundboword", "demo": "https://github.com/Axwabo/Soundboword/releases/tag/v1.0.0"}]...
|
[{"post_id": 62313, "ts": "202 [{"post_id": 62313, "ts": "2026-09-05T16:50:40Z", "hours": 3.6683, "text": "most likely the last devlog before i outgrow hackclub :’3 finalized the project, improved the CI workflow to bundle the program properly and include 3rd party licenses completed the README added a simple sound “editor” that lets you specify the following: start time: where to begin playback loop start: where to jump when restarting on loop (start of file by default) loop end: the point where loop triggers (end of file by default) made the sidebar (Sounds and Inputs views) consistent added icons to almost every window (Linux crashed because the PipeWire icon wasn’t in that project lol) message to future self: you need the leading slash in the Icon property (e.g. /Assets/sus.ico works but not Assets/sus.ico ) the video shows the new configure sound on trigger click feature, resembling the behavior of Voicemod implemented the missing “Auto Mic Passthrough” (as described in the README) the physical microphone preference is now saved fixed the hidden toggles taking up space on slopdows RowDefinitions don’t support binding, not even OnPlatform :( hopefully i don’t gotta fix anything, and it’s ready to ship"}, {"post_id": 60689, "ts": "2026-09-03T07:25:41Z", "hours": 9.5664, "text": "I’M GONNA TWEAK OUT 9 hours on slopdows bullshit… IT FINALLY WORKS (except not really because removing keybinds doesn’t..?) okay so i restored some of the styling, 0 padding in the Inputs listbox looked bad not sure what else i did that isn’t losedows suffering lmao sooooooo “win”dows is special if you hold Ctrl, it doesn’t call the TextInput event, meaning that i have to translate the Key enum the TextInput event isn’t flawless either, it can be ambiguous (e.g. hungarian layout: AltGr+J = í, AltGr+I = Í, Soundboword makes them uppercase) should i remove the automatic uppercase conversion? i spent a lot of time “debugging” (as in, having the CI build it, download the zip, transfer it to a slopdows machine, since native cross-compilation is not supported) the biggest headache was the shortcut list update handler… i negated the TryAdd call, which meant that the global hotkey would only get registered if the same gesture has been added to the dictionary already (therefore it would only work on subsequent binds) i spent way too much time figuring this out another oversight was the lack of Target assignment when you clicked ⚙️ on an input method, meaning that binding shortcuts did nothing idk why the entire panel is bold, gotta fix that hotkeys are temporarily removed while you’re assigning a shortcut however, as mentioned before, this doesn’t work xd i tried it on a slopdows laptop, and removing the A hotkey made the A key unusable until i closed Soundboword setting up CI wasn’t difficult, gotta make sure to separate rm commands and use -f so files not found don’t error using || doesn’t run the latter command if the first one succeeds, i should’ve known that"}, {"post_id": 41841, "ts": "2026-08-06T09:41:33Z", "hours": 2.6206, "text": "i did mostly polishing work during this time, now i can torture myself with windows global shortcuts gotta crash out first though cuz this wonderful website has 3 different markdown renderers somehow, and i’ve been using --- to make sections actually separate changed the TabControl to a TabStrip so i can use my on page switching logic most views are only created once now, which gives a slight performance boost i’d noticed that quickly switching between tabs while using TabControl lead to slight crackles in audio, that’s taken care of now oh and you can use the Tab key to navigate, cuz TabStrip can magically do that getting the lazy-ish loading was pretty funky though, UserControls are lazy by default so i had to hack around it to preload the views by setting IsVisible to false after the control loads (i think that’s what i did, i kinda forgor) fixed the YouTube stream loader, and added a local error display so you can immediately see if something went wrong made it so non-bound XDG-Desktop-Portal shortcuts are no longer detected removed the sound edit button for now, i would like to ship without having to figure all that out made StackPanel spacing mostly uniform using a style selector, though it looks pretty bad in device selectors general settings & logging settings are now saved and loaded added Rescan and Relink All buttons Rescan checks not found files again to locate them Relink All lets you pick directories to look for not found sounds by their filenames in the video, i unmounted the disk that had some files, then relinked sounds to locate it elsewhere"}, {"post_id": 36680, "ts": "2026-07-28T21:57:59Z", "hours": 4.8294, "text": "dev log about logging, crazy added logging in-app and also to files you can configure log levels, None disables file logging altogether i was looking around to find a simple file logger for Microsoft.Extensions.Logging, but i didn’t like it so i made my own, even simpler version took a bunch of attempts to make the architecture bearable, but it’s still kinda jank with the existence of LogPreferences.Instance (instead of using the service provider… but whatever, i make the rules :3) turns out that MultiBinding doesn’t work for a bool that hides the bottom bar (idk why), so i did some wiring by subscribing to PropertyChanged in the preferences and the log list only at the time of recording did i realize that the initial value isn’t set properly, so i gotta fix that tried to set PublishAot to true for all projects (so i don’t have to specify it in dotnet publish ), but that breaks the preview, so i had to revert the change unhandled UI exceptions are now written to the file the unobserved task exception event just… doesn’t seem to fire… i got rid of that tried to use SemaphoreSlim to make the exiting thread block until an in-progress write operation completes, but that probably caused a deadlock because the app wouldn’t close if a log entry happens to be in the middle of being written while you’re quitting, it gets cut in half, oh well fun fact: the ItemsRepeater Avalonia control exists on GitHub, even the docs describe how to use it, but it just didn’t show up for me despite using the latest Avalonia version this made me use a ListBox, which has selection (although you can’t see it because of the background of each log entry)"}, {"post_id": 34591, "ts": "2026-07-25T13:27:50Z", "hours": 4.0242, "text": "made settings sections with a whole lot of unnecessary abstractions for the funny [FromKeyedServices] when i could just access a static instance? absolutely yes!! i couldn’t figure out how to style the children of an ItemsControl externally, so i had to give it an ItemTemplate with a class (which would be unnecessary if i could style the thing) all that for a separator line… and padding… and margin… what if i just nuke this idea and simply have some spacing between the sections? i tried organizing classes into vertical slices architecture, but i gave up and only did it for the Linux project instead the using updates would’ve been funky + some global usings would become useless PipeWire the toggle list now no longer “flickers” on/off when refreshing devices, as i only set the link manager after PipeWire objects have been queried device lists and link toggles are now disabled when switching devices so the user doesn’t accidentally break the linking process added a button that refreshes links (in case things go wrong somehow) you can now select the physical microphone from the PipeWire list, and it will update links this preference isn’t saved to disk just yet in my last devlog i mentioned some issues, which have now been fixed: upon startup, the first two switches don’t work sometimes (race condition maybe?) turns out that i had forgotten to add a potentially valid node to the list after looping through all lines, so it just discarded the last entry certain links might not reconnect properly when switching the output device what did i do to fix that? i’m not sure anymore maybe it was a bit of delay? this one might be linked related to the former issue"}, {"post_id": 34223, "ts": "2026-07-24T19:01:37Z", "hours": 8.9867, "text": "PIPEWIRE WORKS!!1!1! spent almost all day adding PipeWire node linking support i was genuinely tweaking when i found out that the pw-cli create-link command doesn’t create a link… it does NOTHING wishful thinking to assume that i can simply tell PipeWire to connect nodes automatically now i have to query the ports, too, and connect those automatically; make sure to sort them, otherwise the channels might be mixed up ahaha (a0b498e7 khm khm) i spent plenty of the time debugging, the parser i wrote had some funky stuff how to use it there are 4 toggles you can activate, as shown in the video: sounds to primary output: this will play the soundboard’s audio in your headphones/primary speakers sounds to virtual mic: forwards soundboard audio to the virtual microphone, letting others (e.g. in a call or in a game) hear the sounds mic passthrough: connects your “real” microphone to the virtual microphone, allowing others to hear your voice when using the virtual mic hear myself: connects your real microphone to your primary output device more issues upon startup, the first two switches don’t work sometimes (race condition maybe?) certain links might not reconnect properly when switching the output device (it used to be worse when i queried links every time; it would connect only one port to the destination because the port ID was now assigned to something else) some miscellaneous fixes: fixed certain issues with xdg-desktop-portal shortcut assignments removed the upload date from YouTube video views fixed the NativeAOT build (an attribute was missing that let the ServiceProvider know not to strip view & viewmodel constructors) added a DataToggle control that inherits from ToggleSwitch : clicking on it doesn’t toggle it automatically, the binding controls the state"}, {"post_id": 32372, "ts": "2026-07-21T14:38:36Z", "hours": 6.5217, "text": "FINALLY figured out how to interface with xdg-desktop-portal, global shortcuts now work on Linux!!! (with a caveat ofc) subsequent bind requests to the same action will just be ignored by the portal, even if you closed the dialog without binding any shortcuts you should still be abe to bind them in System Settings props to Pinta for the example on how to do this (the DBus flow kinda sucks ngl) making this was partially possible because Avalonia updated to the latest Tmds.DBus version adjusted the YouTube downloader layout: removed the description in favor of a stream selector that also got rid of the upload date, oops added a dummy ✏️ button to sounds (basic editor coming soon) i don’t even want to think about how i’ll render waveforms without making the system go kaboom also added a number input for volume, letting users type in the desired percentage Avalonia magically handles the percentage conversion, i didn’t have to make a converter that multiplies the input by 0.01 made pages dynamic, fixing the inconsistent layout this will make it easier to add platform-specific tabs instead of having to dump everything into settings TabStrip just didn’t work properly, so i’ll stick with the TabControl (which doesn’t have… tab… focus…) OtherSoundInteraction now lets you mute, pause or stop other sounds when a new playback is triggered adopted Injectio so i can slap a [RegisterSingleton] attribute on each class i want in dependency injection without having to go to a different place to add a statement the “Stop All Instances” button is now replaced by the “Relink” button for files that were not found you can now drag-and-drop sounds into the board from the file manager"}, {"post_id": 9155, "ts": "2026-06-15T10:26:57Z", "hours": 6.5614, "text": "Did a bit of refactoring to accomodate for later NativeAOT support: Each view & viewmodel has to be registered as a service Moved to source-generated JSON handling Hopefully, NativeAOT will make the app noticeably faster when I publish the project Added global usings, and split up the project for better platform-specific service organization Fixed the delete button not stopping the sound (how did I manage to fail that??) Replaced the loop toggle with an Assign Shortcut button for quick access I think the latter will be used more often, but having the loop toggle update two buttons at once was really cool Sounds can now be added from YouTube; they are cached for fast access (how else would it work xd) The window is not a dialog, so you can still interact with the soundboard while waiting for download(s) (Idk if dialogs prevent interactions on some desktop environments tbh) This is not the final layout, but it looks decent for now: clicking on a video (left side) takes you to the details page (right side) in the same window Fun fact: pasting a youtube link automatically opens the video view, letting you download it even while the details are loading (will have to fix that up a little)"}, {"post_id": 7556, "ts": "2026-06-12T17:03:41Z", "hours": 5.6711, "text": "More (almost zero) progress on global shortcuts: I’ve figured out the object path & destination from the Kotlin library zugaldia/stargate , but xdg-desktop-portal just crashes now upon calling CreateSession Nothing usable yet Added a devices page to select the output device I tried to implement device switching by creating a separate Mixer, but SoundFlow already has functionality for that, so it became much simpler Refactored code to use the new SoundFlowDeviceManager A “Stop All Sounds” shortcut can now be assigned to each input when clicking the gear icon next to it Fixed shortcut assignment not working after switching pages Editing context is reopened on page change The SelectionChanged event fired for every child control, not just the TabControl -> I now check for the source of the event Attempted to add consistent text alignment in tab headers, that turned out to be stupid, so I just added a space after the Playbacks emoji Removed the “Raise Maximum Volume” (a 0-150% range makes more sense imo) Adjusted buttons in the sound editing view, this is not yet final On the image you can see a pipewire graph I created, this is similar to how I want it to work A sink for soundboard output which can be forwarded to the primary output device (e.g. headphones) A mixer virtual device (discord doesn’t support sinks) that combines the microphone input and the soundboard sink, acting as a virtual mic which can be selected in apps From a bit of testing, it turns out that connecting a sink to the primary output device produces some annoying popping, so I’ll probably just link/unlink the app’s playback to/from the primary output device, too"}, {"post_id": 6330, "ts": "2026-06-10T17:29:02Z", "hours": 4.1664, "text": "Added pages & tabs to better separate UI Activated inputs are now saved and loaded Sound state is now displayed better, it includes missing file detection (exceptions are not yet handled) Using a MultiBinding and an IMultiValueConverter with an enum didn’t work for some reason New page: playbacks It shows all sounds, their current time Will need a redesign Pro tip: don’t call Dispatcher.Post in a method you called Dispatcher.Post in (it will keep updating the UI but prevents user input, you can’t even close the window normally) Did a bit of refactoring: AudioManager is now a service Removed the Host service, the desktop lifetime and the TopLevel will be injected Added an overlay when a file dialog is open (because unlike windows, not all OSes/desktop environments prevent interactions in this situation)"}, {"post_id": 5129, "ts": "2026-06-08T20:23:24Z", "hours": 5.0069, "text": "Implemented input handling for the Launchpad Mini, now I’ll be able to press pads to play sounds Creating the shortcuts system took a few iterations, I wasn’t happy with the code I wrote Shortcuts can be removed even when the input method isn’t active, which wasn’t possible in an earlier iteration Also implemented settings saving when the app exits"}, {"post_id": 2246, "ts": "2026-06-04T17:06:50Z", "hours": 5.5297, "text": "Added a proper UI for triggering sounds with modes similar to that of voicemod (start -> stop, start -> restart, play -> pause, duplicate) I played around with 2 rows below the big button but that seemed to take up too much space, so I moved them to the sound editor (which isn’t fully functional yet) On the right side you can see input methods, which will include global shortcuts later (DBus is confusing af, the win32 api might actually be easier to work with 💀) (Yes, I’ve half-made a global keyboard handler for windows previously) Emojis are fairly expressive imo, but there are tooltips that describe what each button does The layout definitely needs improvements, but it’s something ig Also implemented loading sounds on startup, as well as saving when a new sound is added"}, {"post_id": 1536, "ts": "2026-06-03T16:49:22Z", "hours": 1.8456, "text": "Created the very base of the project with Avalonia and SoundFlow, sound playback works Spent a bunch of time trying to figure out the DBus interface for XDG global shortcuts (Linux part of keybinds): Somehow I grabbed the impl xml, not the one i needed It still doesn’t work, gonna need to debug it later I was trying to write abysmal code based on what Avalonia has: https://github.com/AvaloniaUI/Avalonia/blob/12.0.4/src/Avalonia.FreeDesktop/DBusSystemDialog.cs The source generator used in the latest Avalonia release is a different source generator from what i saw on master, that caused a bit of a headache"}]...
|
Title: Soundboword by @Axwabo | Stardance
Devlogs Title: Soundboword by @Axwabo | Stardance
Devlogs:
Created the very base of the project with Avalonia and SoundFlow, sound playback works Spent a bunch of time trying to figure out the DBus interface for XDG global shortcuts (Linux part of keybinds): Somehow I grabbed the impl xml, not the one i needed It still doesn’t work, gonna need to debug it later I was trying to write abysmal code based on what Avalonia has: https://github.com/AvaloniaUI/Avalonia/blob/12.0.4/src/Avalonia.FreeDesktop/DBusSystemDialog.cs The source generator used in the latest Avalonia release is a different source generator from what i saw on master, that caused a bit of a headache
Added a proper UI for triggering sounds with modes similar to that of voicemod (start -> stop, start -> restart, play -> pause, duplicate) I played around with 2 rows below the big button but that seemed to take up too much space, so I moved them to the sound editor (which isn’t fully functional yet) On the right side you can see input methods, which will include global shortcuts later (DBus is confusing af, the win32 api might actually be easier to work with 💀) (Yes, I’ve half-made a global keyboard handler for windows previously) Emojis are fairly expressive imo, but there are tooltips that describe what each button does The layout definitely needs improvements, but it’s something ig Also implemented loading sounds on startup, as well as saving when a new sound is added
Implemented input handling for the Launchpad Mini, now I’ll be able to press pads to play sounds Creating the shortcuts system took a few iterations, I wasn’t happy with the code I wrote Shortcuts can be removed even when the input method isn’t active, which wasn’t possible in an earlier iteration Also implemented settings saving when the app exits
Added pages & tabs to better separate UI Activated inputs are now saved and loaded Sound state is now displayed better, it includes missing file detection (exceptions are not yet handled) Using a MultiBinding and an IMultiValueConverter with an enum didn’t work for some reason New page: playbacks It shows all sounds, their current time Will need a redesign Pro tip: don’t call Dispatcher.Post in a method you called Dispatcher.Post in (it will keep updating the UI but prevents user input, you can’t even close the window normally) Did a bit of refactoring: AudioManager is now a service Removed the Host service, the desktop lifetime and the TopLevel will be injected Added an overlay when a file dialog is open (because unlike windows, not all OSes/desktop environments prevent interactions in this situation)
More (almost zero) progress on global shortcuts: I’ve figured out the object path & destination from the Kotlin library zugaldia/stargate , but xdg-desktop-portal just crashes now upon calling CreateSession Nothing usable yet Added a devices page to select the output device I tried to implement device switching by creating a separate Mixer, but SoundFlow already has functionality for that, so it became much simpler Refactored code to use the new SoundFlowDeviceManager A “Stop All Sounds” shortcut can now be assigned to each input when clicking the gear icon next to it Fixed shortcut assignment not working after switching pages Editing context is reopened on page change The SelectionChanged event fired for every child control, not just the TabControl -> I now check for the source of the event Attempted to add consistent text alignment in tab headers, that turned out to be stupid, so I just added a space after the Playbacks emoji Removed the “Raise Maximum Volume” (a 0-150% range makes more sense imo) Adjusted buttons in the sound editing view, this is not yet final On the image you can see a pipewire graph I created, this is similar to how I want it to work A sink for soundboard output which can be forwarded to the primary output device (e.g. headphones) A mixer virtual device (discord doesn’t support sinks) that combines the microphone input and the soundboard sink, acting as a virtual mic which can be selected in apps From a bit of testing, it turns out that connecting a sink to the primary output device produces some annoying popping, so I’ll probably just link/unlink the app’s playback to/from the primary output device, too
Did a bit of refactoring to accomodate for later NativeAOT support: Each view & viewmodel has to be registered as a service Moved to source-generated JSON handling Hopefully, NativeAOT will make the app noticeably faster when I publish the project Added global usings, and split up the project for better platform-specific service organization Fixed the delete button not stopping the sound (how did I manage to fail that??) Replaced the loop toggle with an Assign Shortcut button for quick access I think the latter will be used more often, but having the loop toggle update two buttons at once was really cool Sounds can now be added from YouTube; they are cached for fast access (how else would it work xd) The window is not a dialog, so you can still interact with the soundboard while waiting for download(s) (Idk if dialogs prevent interactions on some desktop environments tbh) This is not the final layout, but it looks decent for now: clicking on a video (left side) takes you to the details page (right side) in the same window Fun fact: pasting a youtube link automatically opens the video view, letting you download it even while the details are loading (will have to fix that up a little)
FINALLY figured out how to interface with xdg-desktop-portal, global shortcuts now work on Linux!!! (with a caveat ofc) subsequent bind requests to the same action will just be ignored by the portal, even if you closed the dialog without binding any shortcuts you should still be abe to bind them in System Settings props to Pinta for the example on how to do this (the DBus flow kinda sucks ngl) making this was partially possible because Avalonia updated to the latest Tmds.DBus version adjusted the YouTube downloader layout: removed the description in favor of a stream selector that also got rid of the upload date, oops added a dummy ✏️ button to sounds (basic editor coming soon) i don’t even want to think about how i’ll render waveforms without making the system go kaboom also added a number input for volume, letting users type in the desired percentage Avalonia magically handles the percentage conversion, i didn’t have to make a converter that multiplies the input by 0.01 made pages dynamic, fixing the inconsistent layout this will make it easier to add platform-specific tabs instead of having to dump everything into settings TabStrip just didn’t work properly, so i’ll stick with the TabControl (which doesn’t have… tab… focus…) OtherSoundInteraction now lets you mute, pause or stop other sounds when a new playback is triggered adopted Injectio so i can slap a [RegisterSingleton] attribute on each class i want in dependency injection without having to go to a different place to add a statement the “Stop All Instances” button is now replaced by the “Relink” button for files that were not found you can now drag-and-drop sounds into the board from the file manager
PIPEWIRE WORKS!!1!1! spent almost all day adding PipeWire node linking support i was genuinely tweaking when i found out that the pw-cli create-link command doesn’t create a link… it does NOTHING wishful thinking to assume that i can simply tell PipeWire to connect nodes automatically now i have to query the ports, too, and connect those automatically; make sure to sort them, otherwise the channels might be mixed up ahaha (a0b498e7 khm khm) i spent plenty of the time debugging, the parser i wrote had some funky stuff how to use it there are 4 toggles you can activate, as shown in the video: sounds to primary output: this will play the soundboard’s audio in your headphones/primary speakers sounds to virtual mic: forwards soundboard audio to the virtual microphone, letting others (e.g. in a call or in a game) hear the sounds mic passthrough: connects your “real” microphone to the virtual microphone, allowing others to hear your voice when using the virtual mic hear myself: connects your real microphone to your primary output device more issues upon startup, the first two switches don’t work sometimes (race condition maybe?) certain links might not reconnect properly when switching the output device (it used to be worse when i queried links every time; it would connect only one port to the destination because the port ID was now assigned to something else) some miscellaneous fixes: fixed certain issues with xdg-desktop-portal shortcut assignments removed the upload date from YouTube video views fixed the NativeAOT build (an attribute was missing that let the ServiceProvider know not to strip view & viewmodel constructors) added a DataToggle control that inherits from ToggleSwitch : clicking on it doesn’t toggle it automatically, the binding controls the state
made settings sections with a whole lot of unnecessary abstractions for the funny [FromKeyedServices] when i could just access a static instance? absolutely yes!! i couldn’t figure out how to style the children of an ItemsControl externally, so i had to give it an ItemTemplate with a class (which would be unnecessary if i could style the thing) all that for a separator line… and padding… and margin… what if i just nuke this idea and simply have some spacing between the sections? i tried organizing classes into vertical slices architecture, but i gave up and only did it for the Linux project instead the using updates would’ve been funky + some global usings would become useless PipeWire the toggle list now no longer “flickers” on/off when refreshing devices, as i only set the link manager after PipeWire objects have been queried device lists and link toggles are now disabled when switching devices so the user doesn’t accidentally break the linking process added a button that refreshes links (in case things go wrong somehow) you can now select the physical microphone from the PipeWire list, and it will update links this preference isn’t saved to disk just yet in my last devlog i mentioned some issues, which have now been fixed: upon startup, the first two switches don’t work sometimes (race condition maybe?) turns out that i had forgotten to add a potentially valid node to the list after looping through all lines, so it just discarded the last entry certain links might not reconnect properly when switching the output device what did i do to fix that? i’m not sure anymore maybe it was a bit of delay? this one might be linked related to the former issue
dev log about logging, crazy added logging in-app and also to files you can configure log levels, None disables file logging altogether i was looking around to find a simple file logger for Microsoft.Extensions.Logging, but i didn’t like it so i made my own, even simpler version took a bunch of attempts to make the architecture bearable, but it’s still kinda jank with the existence of LogPreferences.Instance (instead of using the service provider… but whatever, i make the rules :3) turns out that MultiBinding doesn’t work for a bool that hides the bottom bar (idk why), so i did some wiring by subscribing to PropertyChanged in the preferences and the log list only at the time of recording did i realize that the initial value isn’t set properly, so i gotta fix that tried to set PublishAot to true for all projects (so i don’t have to specify it in dotnet publish ), but that breaks the preview, so i had to revert the change unhandled UI exceptions are now written to the file the unobserved task exception event just… doesn’t seem to fire… i got rid of that tried to use SemaphoreSlim to make the exiting thread block until an in-progress write operation completes, but that probably caused a deadlock because the app wouldn’t close if a log entry happens to be in the middle of being written while you’re quitting, it gets cut in half, oh well fun fact: the ItemsRepeater Avalonia control exists on GitHub, even the docs describe how to use it, but it just didn’t show up for me despite using the latest Avalonia version this made me use a ListBox, which has selection (although you can’t see it because of the background of each log entry)
i did mostly polishing work during this time, now i can torture myself with windows global shortcuts gotta crash out first though cuz this wonderful website has 3 different markdown renderers somehow, and i’ve been using --- to make sections actually separate changed the TabControl to a TabStrip so i can use my on page switching logic most views are only created once now, which gives a slight performance boost i’d noticed that quickly switching between tabs while using TabControl lead to slight crackles in audio, that’s taken care of now oh and you can use the Tab key to navigate, cuz TabStrip can magically do that getting the lazy-ish loading was pretty funky though, UserControls are lazy by default so i had to hack around it to preload the views by setting IsVisible to false after the control loads (i think that’s what i did, i kinda forgor) fixed the YouTube stream loader, and added a local error display so you can immediately see if something went wrong made it so non-bound XDG-Desktop-Portal shortcuts are no longer detected removed the sound edit button for now, i would like to ship without having to figure all that out made StackPanel spacing mostly uniform using a style selector, though it looks pretty bad in device selectors general settings & logging settings are now saved and loaded added Rescan and Relink All buttons Rescan checks not found files again to locate them Relink All lets you pick directories to look for not found sounds by their filenames in the video, i unmounted the disk that had some files, then relinked sounds to locate it elsewhere
I’M GONNA TWEAK OUT 9 hours on slopdows bullshit… IT FINALLY WORKS (except not really because removing keybinds doesn’t..?) okay so i restored some of the styling, 0 padding in the Inputs listbox looked bad not sure what else i did that isn’t losedows suffering lmao sooooooo “win”dows is special if you hold Ctrl, it doesn’t call the TextInput event, meaning that i have to translate the Key enum the TextInput event isn’t flawless either, it can be ambiguous (e.g. hungarian layout: AltGr+J = í, AltGr+I = Í, Soundboword makes them uppercase) should i remove the automatic uppercase conversion? i spent a lot of time “debugging” (as in, having the CI build it, download the zip, transfer it to a slopdows machine, since native cross-compilation is not supported) the biggest headache was the shortcut list update handler… i negated the TryAdd call, which meant that the global hotkey would only get registered if the same gesture has been added to the dictionary already (therefore it would only work on subsequent binds) i spent way too much time figuring this out another oversight was the lack of Target assignment when you clicked ⚙️ on an input method, meaning that binding shortcuts did nothing idk why the entire panel is bold, gotta fix that hotkeys are temporarily removed while you’re assigning a shortcut however, as mentioned before, this doesn’t work xd i tried it on a slopdows laptop, and removing the A hotkey made the A key unusable until i closed Soundboword setting up CI wasn’t difficult, gotta make sure to separate rm commands and use -f so files not found don’t error using || doesn’t run the latter command if the first one succeeds, i should’ve known that
most likely the last devlog before i outgrow hackclub :’3 finalized the project, improved the CI workflow to bundle the program properly and include 3rd party licenses completed the README added a simple sound “editor” that lets you specify the following: start time: where to begin playback loop start: where to jump when restarting on loop (start of file by default) loop end: the point where loop triggers (end of file by default) made the sidebar (Sounds and Inputs views) consistent added icons to almost every window (Linux crashed because the PipeWire icon wasn’t in that project lol) message to future self: you need the leading slash in the Icon property (e.g. /Assets/sus.ico works but not Assets/sus.ico ) the video shows the new configure sound on trigger click feature, resembling the behavior of Voicemod implemented the missing “Auto Mic Passthrough” (as described in the README) the physical microphone preference is now saved fixed the hidden toggles taking up space on slopdows RowDefinitions don’t support binding, not even OnPlatform :( hopefully i don’t gotta fix anything, and it’s ready to ship
Ships:
Soundboword is an actually usable desktop soundboard for (primarily) Linux and (with apparent support for) windows tired of other soundboards paywalling slots? not anymore! [insert Phil Swift Flex Tape meme, not sponsored] this is a .NET app built with Avalonia, SoundFlow, and YoutubeExplode you don’t need to install .NET, it’s compiled into a native binary the SoundFlow backend in use is based on miniaudio, so the app only supports mp3 and wav files download audio from YouTube (paste a link or search) for Linux, there is additional PipeWire support use the PipeWire wizard to create a virtual device named “Soundboword Microphone” which you can select in apps (e.g. Discord) after setting up the microphone, you can use the toggles in the bottom left to manage some node links (connect/disconnect audio nodes) Hear Sounds: plays the soundboard to your headphones Mic Sounds: plays the soundboard into the virtual microphone Mic Passthrough: connects the selected physical microphone to the virtual mic Hear Myself: connects your physical mic to your headphones, echoing what you say windows support is partial, macos support will not be provided global hotkeys should work out of the box on losedows the Linux version uses xdg-desktop-portal for global shortcuts if you have a Launchpad Mini MKII lying around, you can use it with this program :3...
|
1793004537.1196828
|
1793090937.1196828
|
|
21949
|
fantasy game by @jonathanwillner | Stardance
|
jonathanwillner
|
0
|
69.0
|
0
|
[]
|
[{"post_id": 13325, "ts": "202 [{"post_id": 13325, "ts": "2026-06-21T20:27:05Z", "hours": 23.0, "text": "i added player, animations,and deth"}, {"post_id": 15901, "ts": "2026-06-25T20:55:51Z", "hours": 29.0, "text": "ok so this is a mix of my 3d godot game and my fantasy game idk why but i added dying animations to godot game and added sword and sword animations to fantasy game and debuged"}, {"post_id": 18432, "ts": "2026-06-29T16:16:52Z", "hours": 15.0, "text": "this did not take 15h my hacktime is gliched Devlog — Switched from 3rd Person to First Person Camera System and added map I switched my project from a 3rd-person camera setup to a full first-person controller, which meant completely removing the camera pivot system and rebuilding movement to feel correct without a visible character model guiding direction. The hardest part was fixing movement and facing direction after the switch — my original system used camera-relative controls and a rotating model, but in first-person that broke everything and made movement feel backwards or disconnected. I ended up rewriting the movement to be cleaner and removing the dependency on camera-based rotation entirely. It took a while to get the character to stop going the wrong way, but after removing the old camera logic, and the animations since thay were still expecting the third-person model rotation. the controller now works in first-person, with movement and animations aligned properly, and I can start adding combat and other features. the video is the third person camera not working well now the animations dont show so im going to try and fix the third persion camera and i made a video but i cant show it so"}, {"post_id": 19547, "ts": "2026-06-30T21:27:45Z", "hours": 1.0, "text": "I built the first real version of my inventory system where items can be dragged between slots and now picked up from the world. The biggest change is that the inventory is no longer just UI — it actually connects to gameplay through item pickups and world objects. The hardest part was getting Godot’s drag-and-drop system working correctly. At first, items would disappear or not register drops because I was clearing slots too early and missing the proper _get_drag_data() flow. I also had to fix mouse filtering so the slots would actually receive input. After that, I added a simple world item system using an Area3D, so walking into the sword adds it directly into the first empty inventory slot. Wiring the inventory as a global group took a bit of trial and error, but it finally connects cleanly now. Right now it’s still very basic — no stacking or hotbar yet — but the foundation is solid: items exist in the world, can be picked up, and moved freely between slots. This is the first step toward a full RPG inventory system."}, {"post_id": 19612, "ts": "2026-06-30T23:48:30Z", "hours": 1.0, "text": "i added hotbar to tired to make a paragraph"}]...
|
Title: fantasy game by @jonathanwillner | Stardanc Title: fantasy game by @jonathanwillner | Stardance
Devlogs:
i added player, animations,and deth
ok so this is a mix of my 3d godot game and my fantasy game idk why but i added dying animations to godot game and added sword and sword animations to fantasy game and debuged
this did not take 15h my hacktime is gliched Devlog — Switched from 3rd Person to First Person Camera System and added map I switched my project from a 3rd-person camera setup to a full first-person controller, which meant completely removing the camera pivot system and rebuilding movement to feel correct without a visible character model guiding direction. The hardest part was fixing movement and facing direction after the switch — my original system used camera-relative controls and a rotating model, but in first-person that broke everything and made movement feel backwards or disconnected. I ended up rewriting the movement to be cleaner and removing the dependency on camera-based rotation entirely. It took a while to get the character to stop going the wrong way, but after removing the old camera logic, and the animations since thay were still expecting the third-person model rotation. the controller now works in first-person, with movement and animations aligned properly, and I can start adding combat and other features. the video is the third person camera not working well now the animations dont show so im going to try and fix the third persion camera and i made a video but i cant show it so
I built the first real version of my inventory system where items can be dragged between slots and now picked up from the world. The biggest change is that the inventory is no longer just UI — it actually connects to gameplay through item pickups and world objects. The hardest part was getting Godot’s drag-and-drop system working correctly. At first, items would disappear or not register drops because I was clearing slots too early and missing the proper _get_drag_data() flow. I also had to fix mouse filtering so the slots would actually receive input. After that, I added a simple world item system using an Area3D, so walking into the sword adds it directly into the first empty inventory slot. Wiring the inventory as a global group took a bit of trial and error, but it finally connects cleanly now. Right now it’s still very basic — no stacking or hotbar yet — but the foundation is solid: items exist in the world, can be picked up, and moved freely between slots. This is the first step toward a full RPG inventory system.
i added hotbar to tired to make a paragraph...
|
1792936420.812668
|
1793800420.812668
|
|
23257
|
website by @elaowl10 | Stardance
|
elaowl10
|
1
|
69.0
|
666
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T03:44:33Z", "hours": 69.0, "multiplier": 16.31, "payout": 666, "blessing": "neutral", "text": "I created a website to promote my mother and I’s creative projects, and the book we made. As someone with limited coding experience, especially in website building, starting this project off was quite a learning curve and often felt overwhelming/frustrating. However, I’m glad I stayed with it, because I feel a lot more comfortable with my coding capabilities AND I have my very own website! I am still getting the hang of website building, but I think this turned out good for a first time project!", "repo": "https://github.com/elaowl10-bot/personalwebsite", "demo": "https://elaowl10-bot.github.io/personalwebsite/"}]...
|
[{"post_id": 44392, "ts": "202 [{"post_id": 44392, "ts": "2026-08-10T03:11:52Z", "hours": 3.5961, "text": "dev log #7 exciting news!! the website its basically done ^_^!! updates: finished the current projects page, played around with formatting minor adjustments to other pages for consistency and little tweaks finished store page : well, to be fair the store won’t really exist for a while until i publish my website and can link insite payments…. but the scaffold with a few example display products are there! finished about page : the about page is finished, though i might change some of the css styling because there’s some thigns im not in love with adjusted to smaller screen sizes i went through and fixed all the pages so they can now be viewed ona mobile screen! idk how it looks on an ipad screen though… that might still need some work overall, the website is just about ready to be published! its just down to making small revisions, checking over for any bugs, and final adjustments! im hoping to ship it by next devlog!! yay!"}, {"post_id": 42732, "ts": "2026-08-07T16:25:12Z", "hours": 3.3158, "text": "dev log #6 (but its actually the 6th one this time my last dev log was my 5th– ignore my brain fart >^< anyways —– exciting update! the current projects page is finished now! heres what i updated: - finished the three article sections : these are the little sections that introduce/focus on each of my current projects– they’re what the whole page is about -i also decided to play around with a different style/layout for this section to help me get more comfortable and stronger with using css to make different format/section styles next steps -start and finish the about page and revamp the store page -format the entire website for mobile screen (oh god) BUT we are seeing the light at the end of the tunnel! i’m hoping to ship the project soon!"}, {"post_id": 38852, "ts": "2026-08-01T12:42:11Z", "hours": 5.1206, "text": "dev log #6!!! hi guys! sorry for the brief pause. i just havent had much time to code recently so this will be a smaller update. art lessons page : the art lessons page has finally been completed! new features —–– finished the supplies lists for each kind of lesson- now each lesson has a specific list of materials w/images/directing links to make finding suggested supplies easier! i also reused the code from the comissions FAQ section to create an FAQ section for the art lessons page <3 lastly, i created a new contact form specifically for requesting art lessons! current projects page : i am now working on the current projects page!!! i want this page to sort of be like a bunch of seperate articles/sections that show the current art projects i’m working on i began working on the first article section thing, which details the painting im working on, but there is still a lot of formatitng changes i want to make i’m thinking about whether i should keep it more text heavy, like a traditional article, or keep the images and little slide thingies -tbh i hate writing but i feel like it would be more polished with more of an article format TwT"}, {"post_id": 30933, "ts": "2026-07-18T22:43:30Z", "hours": 5.84, "text": "dev log #4 :DDD I’m going to do my best to continue be more comprehensive here. Homepage updates added a book preview element : thanks to a youtube tutorial by hankthetank, I was able to create a small preview that shows some of the books pages what makes this element so cool (in my opinion) is the animation, which mimics a real turning page (you could say its a real page turner hahaha im so funny) huge credits to www.turnjs.com for the js code that made this possible! removed iframes *: as much as the iframes on the home page were fun, i don’t think they really made it easy to go the website and purchase the book, especially since they were aligned on the page more decoratively then utility minded… instead, i replaced them with simply embedding links into the text. this felt more straightforward and made more sense, even tho iframes are fun art lesson page updates created form to sign up for art lessons finished small bio section/lesson info i am now working on finishing the needed materials section, which is so tedious because i want to link every product/material to make it easier to find them anyways, thats all for now!"}, {"post_id": 29893, "ts": "2026-07-17T01:53:21Z", "hours": 22.3981, "text": "Dev Log (^w^) It’s been… a while since my last update, so here’s a big catch-up! I’m trying to document everything properly from now on instead of relying on my goldfish memory. Homepage Updates Glassmorphism Added reusable glassmorphism cards. Replaced a plain gray border with a gradient pseudo-element for more depth. Credit to the Hype4 Glassmorphism Generator for the base effect. Animations Added floating stars to make the homepage feel more alive. Implemented scroll reveal animations so sections appear as users scroll. Created a reusable .swing class using CSS keyframes for playful hover animations. Hover Effects Added several interactions to make the site feel less static: Growing navigation buttons Lifting image cards 3D tilt effects Wobbling hanging images Animated logos Art Page Created a dedicated Art page that serves as a navigation hub. Current features: Navigation bar “Ela’s Art Emporium” logo AP Art portfolio showcase Eventually I’d like to add preview sections for the other art pages. Art Lessons Page Started building the Art Lessons page. Current features: About Me section Lesson preview cards Images and descriptions Consistent card styling Hover animations Still a WIP, but I’m really happy with the direction it’s going. Commission Page This has become one of the biggest pages on the website. Features include: Accordion timeline explaining the commission process Pricing section Interactive commission builder that generates price estimates FAQ accordion The commission builder was definitely the hardest feature I’ve coded so far, but also one of my favorites. Art Gallery Created a gallery using polaroid-style flip cards. Since every painting has different dimensions, I added a full image viewer so users can see artwork at its original size. I may replace the buttons with a click-to-expand feature later to reduce clutter. Next Steps Finish the Art Lessons page Create the Current Projects page Finish the About page Finish the Store page Make the website fully mobile-friendly (task of doom and despair…)"}, {"post_id": 24149, "ts": "2026-07-07T15:07:44Z", "hours": 25.4569, "text": "Okay I cant lie I slacked off on updating my dev log for like way too long oops! but we made a lot of progress!!! First of all, I finished the home page!! Yay!! I added a nav bar to the other pages (which aren’t yet finished) interactive elements liek slideshows, and other fun little sections. I am honestly loving the progress that is happening its come a long way for sure. There was a pretty steep learning curve at the beginning but now like 200 video tutorial later I finally feel like I know what im doing. Lets gooooo"}, {"post_id": 14479, "ts": "2026-06-23T16:44:40Z", "hours": 2.9353, "text": "I am working on adjusting the layout and creating the basic structure for my website."}]...
|
Title: website by @elaowl10 | Stardance
Devlogs:
Title: website by @elaowl10 | Stardance
Devlogs:
I am working on adjusting the layout and creating the basic structure for my website.
Okay I cant lie I slacked off on updating my dev log for like way too long oops! but we made a lot of progress!!! First of all, I finished the home page!! Yay!! I added a nav bar to the other pages (which aren’t yet finished) interactive elements liek slideshows, and other fun little sections. I am honestly loving the progress that is happening its come a long way for sure. There was a pretty steep learning curve at the beginning but now like 200 video tutorial later I finally feel like I know what im doing. Lets gooooo
Dev Log (^w^) It’s been… a while since my last update, so here’s a big catch-up! I’m trying to document everything properly from now on instead of relying on my goldfish memory. Homepage Updates Glassmorphism Added reusable glassmorphism cards. Replaced a plain gray border with a gradient pseudo-element for more depth. Credit to the Hype4 Glassmorphism Generator for the base effect. Animations Added floating stars to make the homepage feel more alive. Implemented scroll reveal animations so sections appear as users scroll. Created a reusable .swing class using CSS keyframes for playful hover animations. Hover Effects Added several interactions to make the site feel less static: Growing navigation buttons Lifting image cards 3D tilt effects Wobbling hanging images Animated logos Art Page Created a dedicated Art page that serves as a navigation hub. Current features: Navigation bar “Ela’s Art Emporium” logo AP Art portfolio showcase Eventually I’d like to add preview sections for the other art pages. Art Lessons Page Started building the Art Lessons page. Current features: About Me section Lesson preview cards Images and descriptions Consistent card styling Hover animations Still a WIP, but I’m really happy with the direction it’s going. Commission Page This has become one of the biggest pages on the website. Features include: Accordion timeline explaining the commission process Pricing section Interactive commission builder that generates price estimates FAQ accordion The commission builder was definitely the hardest feature I’ve coded so far, but also one of my favorites. Art Gallery Created a gallery using polaroid-style flip cards. Since every painting has different dimensions, I added a full image viewer so users can see artwork at its original size. I may replace the buttons with a click-to-expand feature later to reduce clutter. Next Steps Finish the Art Lessons page Create the Current Projects page Finish the About page Finish the Store page Make the website fully mobile-friendly (task of doom and despair…)
dev log #4 :DDD I’m going to do my best to continue be more comprehensive here. Homepage updates added a book preview element : thanks to a youtube tutorial by hankthetank, I was able to create a small preview that shows some of the books pages what makes this element so cool (in my opinion) is the animation, which mimics a real turning page (you could say its a real page turner hahaha im so funny) huge credits to www.turnjs.com for the js code that made this possible! removed iframes *: as much as the iframes on the home page were fun, i don’t think they really made it easy to go the website and purchase the book, especially since they were aligned on the page more decoratively then utility minded… instead, i replaced them with simply embedding links into the text. this felt more straightforward and made more sense, even tho iframes are fun art lesson page updates created form to sign up for art lessons finished small bio section/lesson info i am now working on finishing the needed materials section, which is so tedious because i want to link every product/material to make it easier to find them anyways, thats all for now!
dev log #6!!! hi guys! sorry for the brief pause. i just havent had much time to code recently so this will be a smaller update. art lessons page : the art lessons page has finally been completed! new features —–– finished the supplies lists for each kind of lesson- now each lesson has a specific list of materials w/images/directing links to make finding suggested supplies easier! i also reused the code from the comissions FAQ section to create an FAQ section for the art lessons page <3 lastly, i created a new contact form specifically for requesting art lessons! current projects page : i am now working on the current projects page!!! i want this page to sort of be like a bunch of seperate articles/sections that show the current art projects i’m working on i began working on the first article section thing, which details the painting im working on, but there is still a lot of formatitng changes i want to make i’m thinking about whether i should keep it more text heavy, like a traditional article, or keep the images and little slide thingies -tbh i hate writing but i feel like it would be more polished with more of an article format TwT
dev log #6 (but its actually the 6th one this time my last dev log was my 5th– ignore my brain fart >^< anyways —– exciting update! the current projects page is finished now! heres what i updated: - finished the three article sections : these are the little sections that introduce/focus on each of my current projects– they’re what the whole page is about -i also decided to play around with a different style/layout for this section to help me get more comfortable and stronger with using css to make different format/section styles next steps -start and finish the about page and revamp the store page -format the entire website for mobile screen (oh god) BUT we are seeing the light at the end of the tunnel! i’m hoping to ship the project soon!
dev log #7 exciting news!! the website its basically done ^_^!! updates: finished the current projects page, played around with formatting minor adjustments to other pages for consistency and little tweaks finished store page : well, to be fair the store won’t really exist for a while until i publish my website and can link insite payments…. but the scaffold with a few example display products are there! finished about page : the about page is finished, though i might change some of the css styling because there’s some thigns im not in love with adjusted to smaller screen sizes i went through and fixed all the pages so they can now be viewed ona mobile screen! idk how it looks on an ipad screen though… that might still need some work overall, the website is just about ready to be published! its just down to making small revisions, checking over for any bugs, and final adjustments! im hoping to ship it by next devlog!! yay!
Ships:
I created a website to promote my mother and I’s creative projects, and the book we made. As someone with limited coding experience, especially in website building, starting this project off was quite a learning curve and often felt overwhelming/frustrating. However, I’m glad I stayed with it, because I feel a lot more comfortable with my coding capabilities AND I have my very own website! I am still getting the hang of website building, but I think this turned out good for a first time project!...
|
1792997607.4204147
|
1793084007.4204147
|
|
29443
|
Highlightly by @hasan | Stardance
|
hasan
|
1
|
69.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T22:48:52Z", "hours": 69.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Highlightly; https://highlightly.xyz/ ; A clip edititng tool for Valorant. Input clips from clipping softwares like medal.tv or record your own in game highlights, and then edit them into a youtube/tiktok format with auto generated captions, kill detection using AI, and special customizable effects.", "repo": "https://github.com/HasanRazaRawjani/Highlightly", "demo": "https://highlightly.xyz"}]...
|
[{"post_id": 23789, "ts": "202 [{"post_id": 23789, "ts": "2026-07-06T22:42:49Z", "hours": 8.4386, "text": "I made/compiled the .exe, I completely redid the website UI too."}, {"post_id": 23483, "ts": "2026-07-06T14:15:01Z", "hours": 23.2231, "text": "I trained my own ai using yolo v8 and a public database of valorant banners on roboflow for kill detection and optimized it to run in 5-10 seconds max on every 60 second clip."}, {"post_id": 22195, "ts": "2026-07-04T15:27:42Z", "hours": 16.9403, "text": "I worked on UI and style for my app."}, {"post_id": 21767, "ts": "2026-07-03T21:23:24Z", "hours": 15.7669, "text": "I have been working on the app"}, {"post_id": 21187, "ts": "2026-07-03T00:15:22Z", "hours": 2.9544, "text": "I finished the website: highlightly.xyz"}, {"post_id": 20866, "ts": "2026-07-02T16:14:09Z", "hours": 1.9142, "text": "Prototype 1, I can input files, and the program outputs them with auto-generated captions, music, and cropped out video format perfect for Youtube and TikTok."}]...
|
Title: Highlightly by @hasan | Stardance
Devlogs: Title: Highlightly by @hasan | Stardance
Devlogs:
Prototype 1, I can input files, and the program outputs them with auto-generated captions, music, and cropped out video format perfect for Youtube and TikTok.
I finished the website: highlightly.xyz
I have been working on the app
I worked on UI and style for my app.
I trained my own ai using yolo v8 and a public database of valorant banners on roboflow for kill detection and optimized it to run in 5-10 seconds max on every 60 second clip.
I made/compiled the .exe, I completely redid the website UI too.
Ships:
I made Highlightly; https://highlightly.xyz/ ; A clip edititng tool for Valorant. Input clips from clipping softwares like medal.tv or record your own in game highlights, and then edit them into a youtube/tiktok format with auto generated captions, kill detection using AI, and special customizable effects....
|
1792990288.3254473
|
1793076688.3254473
|
|
31853
|
KuuppaOS by @suklaasukkulayt | Stardance
|
suklaasukkulayt
|
2
|
69.0
|
823
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-10T10:31:12Z", "hours": 59.0, "multiplier": 14.44, "payout": 823, "blessing": "neutral", "text": "KuuppaOS A WebOS with many different apps and features . This has 17 apps , desktop icons, a taskbar with a start menu (for settings), weather and a calendar/clock . You can have a custom wallpaper , change app background color , blur and transparency or even turn on RGB mode . This even has a rubber-band selector . You can open, close, minimize, maximize and resize the apps. KuuppaOS also has many animations and a dog gallery that has photos of my dogs! More info on GitHub: https://github.com/suklaasukkulayt/kuuppaos GitHub has screenshots and link to a showcase video. (if you have already used this for some reason, go to Start Menu -> Open Settings -> Reset to defaults -> Save to local storage)", "repo": "https://github.com/suklaasukkulayt/kuuppaos", "demo": "https://kuuppaos.suklaasukkula.dev"}, {"ship_num": 2, "ts": "2026-07-14T14:56:01Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a webos for the webos 1 mission. It has draggable, resizable and closable windows, desktop icons, a bottom bar with a working clock and an open all windows button. There is six apps: Welcome which is just the welcome screen, TeXtpad which is a notepad, but it only supports one note at a time and it saves it locally to your browser, Weather which shows your local temperature, location and weather condition as an emoji and as text, Clock which is just an analog clock, KuuppaMusic (spotify) which plays the “lofi beats” spotify playlist from the spotify embed (it only plays the first 30s of every song) and KuuppaVid (YouTube) which plays Never Gonna Give You Up by Rick Astley from the YouTube embed. Github copilot is used for fixing some problems and for help and instructions for features like the weather app and autoplay when you open KuuppaVid.", "repo": "https://github.com/suklaasukkulayt/kuuppaos", "demo": "https://kuuppaos.suklaasukkula.dev"}]...
|
[{"post_id": 78296, "ts": "202 [{"post_id": 78296, "ts": "2026-10-10T10:21:32Z", "hours": 0.5611, "text": "Devlog 20 This devlog wasn’t supposed to happen, because of that I lost 2 hours. I have now fixed more bugs and finished the README. Link to GitHub I’m gonna ship now. (please read my other devlogs they are better than this)"}, {"post_id": 77325, "ts": "2026-10-06T15:23:33Z", "hours": 12.0486, "text": "Devlog 19 The final devlog I have made many improvements. Also this is the final devlog of KuuppaOS before my second ship, it’s been a long journey. Last devlog I promised Now playing support to KuuppaBrowser but unfortunately, detecting if iframes are making sound isn’t possible with javascript. 2. I added an AI chatbot, KuuppaAI . It’s very kuuppa . It can detect some keywords and have different answers, it can for example code. 3. I removed the Weather desktop app and turned it into a taskbar app . Now if you have allowed location permission, it shows up next to clock . You can still click it and it opens the old weather app, but in a taskbar app style. 4. I changed the default app color , to a more transparent and blueish one. I think it looks a bit better . 5. I added more animations for a smoother experience. For example animations for the apps in the taskbar . 6. I added more dog photos . To be more specific, I added over a hundred dog photos more . When you open it for the first time, it takes a really long time to load them. That’s why I added a service worker (with help from AI) to keep the photos cached . 7. I added fonts to everything so it looks more professional and hopefully made the background higher resolution . 8. Now the cursor changes from grab to grabbing when dragging the windows around. 9. I added a hamburger menu icon so the start menu button looks more like a start menu button . 10. I also added an animation for closing the photos for the different dogs. 11. I added a maximise (/fullscreen) button for apps ! It also has an animation. 12. I added an RGB mode button to settings menu. It makes the apps constantly change their background color (I used a bit of help from AI to make it change through all colors) 13. I added a file type selector to TeXtpad , so now you can choose from .txt, .md, .html and .csv when exporting your TeXtpad text. Also this new functionality now shows in app store and about. I also made the textarea look a bit better . 14. I updated the project README . It still lacks a new screenshot though. 15. I fixed many bugs . Here is some of them: KuuppaMusic wouldn’t show up in the taskbar because of the animation I added for taskbar apps Terminal not showing about command defaults properly Bugs with fullscreen Fixes with dog photos Ghost game iframe having fixed with so it didn’t resize Shutdown and Reboot icons (for start menu) not loading on page load Reset to defaults button not working properly Dog gallery icon not showing in App store And some others! It has been a fun journey, thanks for supporting!"}, {"post_id": 73166, "ts": "2026-09-24T14:55:23Z", "hours": 8.5747, "text": "Devlog 18 Another big update I fixed the app store issue by adding a save button in the app store so make sure to click it after installing or removing many apps at a time . I added reboot and shutdown commands to Terminal. I also made it so you can’t type new commands during longer processes like installing apps with Terminal. I added a start menu ! It isn’t the craziest, but it has reboot, shutdown, open welcome screen and open settings buttons . (yes I removed the settings button from the taskbar!) There is also a now playing thing in the start menu . It supports both KuuppaVid and KuuppaMusic , and it shows the currently playing song. You can even stop the playback. I might update it to support KuuppaBrowser in the next (final) devlog. I also updated the opening/closing animations for the taskbar menus. I also added a export as .txt button to TeXtpad so now you can actually use it for something! I made it so the dog gallery images are only loaded when you want to see the images to speed up the loading process for the website . This is also because i’m adding more dog images in the next devlog! There is also a small loading animation now. I also fixed some stuff and added a simple how-to-use to the welcome screen . That’s all for now, but in the next and hopefully final devlog i’m adding: Now playing support to KuuppaBrowser, Weather to the taskbar, More dog images, Update about to admire TeXtpad’s new functionality, and maybe something else! who knows"}, {"post_id": 65473, "ts": "2026-09-10T17:03:52Z", "hours": 6.6594, "text": "Devlog 17 Big update I added a camera selector to Camera and a microphone selector to Recorder. I added a Dog gallery app where you can view photos of my dogs! (I might add more photos) I finally added the app store . Now you have to install all the apps and they save to your browser’s local storage. (If you install them too quickly the saving can fail, I will fix it) You can also install apps using the install command in Terminal . I updated some terminal commands. Now you can use the rubber band selector next to the app icons. I also made the login screen fade smoother. Idk that’s probably all (or maybe not). (I used help from AI to implement a proper local storage saving thing) I will ship soon! (hopefully)"}, {"post_id": 57373, "ts": "2026-08-29T14:35:39Z", "hours": 2.7381, "text": "Devlog 16 I added an audio recorder app . It’s pretty simple, you just hit record. (I used a tutorial for help) I added a loading/login screen that shows for a few seconds. (I used a tutorial for help) I added funny filters to Camera (like saturation, blur, greyscale, hue rotation etc.) I also added a color command to Terminal . I also updated some terminal commands like ‘about’ (I used a bit of AI for help) Current resolution now shows in Camera."}, {"post_id": 57241, "ts": "2026-08-29T10:49:19Z", "hours": 3.4614, "text": "Devlog 15 I added the About app (that I started last devlog). You can click the buttons that show info about that app . I added app background color changing to settings and also changed the Reset wallpaper button to instead a Reset to defaults button. I made the radio animation in KuuppaMusic smaller and it now scales better. I also fixed bugs with the taskbar music playing thing. Clock and HackCMD are now properly centered . Camera now records in 4K or the closest resolution instead of 720p. I also added a custom scrollbar so it fits the green theme. I also updated some terminal commands and fixed some bugs ."}, {"post_id": 54419, "ts": "2026-08-25T12:53:25Z", "hours": 6.2053, "text": "Devlog 14 I updated KuuppaVid , so now you can actually search YouTube videos ! (I used some help from AI) I also updated KuuppaMusic ! Now you can listen to Estonia’s radio station XFM ! (idk why I picked it) And when you minimize it, the song title shows up in the taskbar ! Also it has a cool radio animation . (I used a tutorial for the base of the custom player) I fixed many window bugs (like when resizing the window could go out of bounds). I updated terminal so now (some of) the commands are better and more up to date. I also added an info app, but it currently has no content. KuuppaOS is now almost completed!"}, {"post_id": 48730, "ts": "2026-08-17T08:01:40Z", "hours": 3.3106, "text": "Devlog 13 I added a camera app . You can take photos and they save to your device. (I used a tutorial for help) I added a new game . It’s a game I made in a coding class a while back. It’s a pacman like game where you run from ghosts. Your objective is to shoot the ghosts from WASD and you move from arrow keys. I also fixed some bugs."}, {"post_id": 46136, "ts": "2026-08-13T04:40:52Z", "hours": 3.3364, "text": "Devlog 12 This is a smaller update. I added tooltips to desktop app icons (text that shows up when you hover over the icons). I updated the header on apps so you can now drag the apps around easier . I fixed some bugs and changed some styling , like changing Hacking terminal’s name to HackCMD (I also changed the icon ). I added a normal terminal (inspired by @Makkonen ‘s LuckyOS terminal, go check his projects out!). It’s not finished, but you can type “help” to see all currently available commands!"}, {"post_id": 45024, "ts": "2026-08-11T05:27:08Z", "hours": 5.6133, "text": "Devlog 11 This is a bigger update than usual. I added pong so now you can play pong in KuuppaOS! Calendar now scales better on smaller screens. Settings and calendar buttons now have a hover effect . I added a minimize button!! Open and minimized apps are now in taskbar . I added closing and opening animations . Calculator now looks better . I added a rubber band selector (the funny blue box that comes up when you hold and drag your mouse on the desktop)! I also fixed some bugs . (AI used for debugging) Soon I will add an app store!"}, {"post_id": 43152, "ts": "2026-08-08T08:19:25Z", "hours": 2.6486, "text": "Devlog 10 I added a calculator app so now you can calculate :D Settings app is now connected to the taskbar and it looks better . It also saves locally to your browser I also added a calendar to the taskbar that opens when clicking the clock in the taskbar Icons are now properly visible also on smaller screens! Next devlog I will add a game and animations or a minimize button!"}, {"post_id": 41789, "ts": "2026-08-06T06:09:05Z", "hours": 1.3828, "text": "Devlog 9 I added a customization menu/settings . You can add a custom wallpaper and change app blur and transparency (i used help from github copilot for javascript). The settings app “icon” is currently in the taskbar, I might change it later. I added a working browser (with a little help from AI for javascript). It uses iframe so it can’t load all sites, but now you can have KuuppaOS in KuuppaOS in KuuppaOS :D Lastly I added google fonts to the site. Currently it’s only in the settings app and one button so I will add more. I will also make the desktop icons scale better for different sizes of screens."}, {"post_id": 40704, "ts": "2026-08-04T12:10:30Z", "hours": 2.5092, "text": "Devlog 8 I’m starting webos 2 and after it this webos will be pretty good. I added a hacking terminal (inspired by @Makkonen ‘s hacking terminal project. I used the same tutorial as him, but I removed all the useless code. I used github copilot to make it so you don’t type the full code snippet with every key press. I updated KuuppaVid . You can now watch any YT video with it if you enter the video ID. Javascript for it was made with github copilot. I added a painting app (inspired by @Makkonen ) using a tutorial I found. You can change the size and color of the pen and use the eraser. I found another tutorial I used for the download function (yes you can download your painting!) and then I used github copilot for the date in the file name. I also used github copilot to fix the bug where the drawing would not appear at your cursor. I also updated the OS with a new font and I removed the “open all windows” button from the taskbar! Also clicking the desktop icon again no longer closes the app. Next devlog i’m gonna add a customization menu!"}, {"post_id": 28243, "ts": "2026-07-14T11:57:03Z", "hours": 0.7064, "text": "Okay this is actually the final devlog. I added spotify(kuuppamusic) and youtube(kuuppavid) apps. They don’t really have any purpose but I still added them. From the spotify app you can listen to lofi beats, but because it’s an embed it doesn’t even play the full song. From the youtube app you can watch Never gonna give you up by Rick Astley (i didn’t know what else to put). For the youtube app i used github copilot to make the function to start autoplay only when the app is opened. I also updated readme. Now the project is ready to ship."}, {"post_id": 27750, "ts": "2026-07-13T16:07:23Z", "hours": 0.9994, "text": "Final devlog before first ship. Updated readme and added weather forecast emoji and location show with the help of github copilot. The location may or may not work depending on your device, it worked on my phone but i couldn’t get it working with my steam deck. I also fixed the problem where the clock app icon was bigger than the others. The weather now also updates every 10 mins."}, {"post_id": 27107, "ts": "2026-07-12T11:31:18Z", "hours": 1.4472, "text": "Finished the last part of the WebOS mission guide. I added a weather app (I got instructions from copilot in vs code), a clock app (I found a tutorial online), made all windows resizable, fixed some bugs (hopefully) like taskbar being too long and the website being too tall so the scroll bar would always show. I also fixed the bug where you could drag windows and then you couldn’t reach them (with a little help from copilot in vscode). The resize thing is kinda hidden in the window border but you can see it a little."}, {"post_id": 26749, "ts": "2026-07-11T18:36:58Z", "hours": 2.5356, "text": "Finally finished the fourth part of the WebOS mission guide. I had some problems with scripts for the new app so I used github copilot in vscode to fix some. Yes, i also added a second app! It’s not the best but it’s like notepad but worse (atleast right now). It only supports one note at a time, but at least it saves locally to your browser so hopefully you don’t lose your one note :D. It also has a desktop icon that opens and closes the app. Many things will change later, like all the 100+ meaningless commits that actually will hopefully stop right NOW, because I got a new way to test the site without deploying: Live server vs code extension. I guess that’s all for now"}, {"post_id": 25973, "ts": "2026-07-10T14:46:38Z", "hours": 3.0603, "text": "Finally completed the third part of the WebOS mission guide (it took so long because I had problems with customization). Made the top bar a bottom bar and added rounded corners, you can now drag the window from the window title (tell me how to make the title smaller and centered while the close button being in the right corner because that stopped working when I made the two divs be at the same row) you can also close it from the red close button and you can reopen it from the bottom bar. I also changed the welcome screen a little. Also the code is now split in three parts."}, {"post_id": 24240, "ts": "2026-07-07T17:47:16Z", "hours": 0.6725, "text": "Just finished the second part of the WebOS mission guide. Now it has top bar with working clock(and font and blur), wallpaper, welcome window with colored background and dashed border with rounded corners. I also added a second link to the welcome screen. Starting to look better already."}, {"post_id": 24096, "ts": "2026-07-07T13:18:38Z", "hours": 0.6594, "text": "I just finished the first part of the WebOS mission guide (and started the second). I will still probably edit the welcome screen after this devlog. There’s nothing special about this yet, but it has a font, text and background color, image with custom size and rounded corners, link to stardance website and text."}]...
|
Title: KuuppaOS by @suklaasukkulayt | Stardance
D Title: KuuppaOS by @suklaasukkulayt | Stardance
Devlogs:
I just finished the first part of the WebOS mission guide (and started the second). I will still probably edit the welcome screen after this devlog. There’s nothing special about this yet, but it has a font, text and background color, image with custom size and rounded corners, link to stardance website and text.
Just finished the second part of the WebOS mission guide. Now it has top bar with working clock(and font and blur), wallpaper, welcome window with colored background and dashed border with rounded corners. I also added a second link to the welcome screen. Starting to look better already.
Finally completed the third part of the WebOS mission guide (it took so long because I had problems with customization). Made the top bar a bottom bar and added rounded corners, you can now drag the window from the window title (tell me how to make the title smaller and centered while the close button being in the right corner because that stopped working when I made the two divs be at the same row) you can also close it from the red close button and you can reopen it from the bottom bar. I also changed the welcome screen a little. Also the code is now split in three parts.
Finally finished the fourth part of the WebOS mission guide. I had some problems with scripts for the new app so I used github copilot in vscode to fix some. Yes, i also added a second app! It’s not the best but it’s like notepad but worse (atleast right now). It only supports one note at a time, but at least it saves locally to your browser so hopefully you don’t lose your one note :D. It also has a desktop icon that opens and closes the app. Many things will change later, like all the 100+ meaningless commits that actually will hopefully stop right NOW, because I got a new way to test the site without deploying: Live server vs code extension. I guess that’s all for now
Finished the last part of the WebOS mission guide. I added a weather app (I got instructions from copilot in vs code), a clock app (I found a tutorial online), made all windows resizable, fixed some bugs (hopefully) like taskbar being too long and the website being too tall so the scroll bar would always show. I also fixed the bug where you could drag windows and then you couldn’t reach them (with a little help from copilot in vscode). The resize thing is kinda hidden in the window border but you can see it a little.
Final devlog before first ship. Updated readme and added weather forecast emoji and location show with the help of github copilot. The location may or may not work depending on your device, it worked on my phone but i couldn’t get it working with my steam deck. I also fixed the problem where the clock app icon was bigger than the others. The weather now also updates every 10 mins.
Okay this is actually the final devlog. I added spotify(kuuppamusic) and youtube(kuuppavid) apps. They don’t really have any purpose but I still added them. From the spotify app you can listen to lofi beats, but because it’s an embed it doesn’t even play the full song. From the youtube app you can watch Never gonna give you up by Rick Astley (i didn’t know what else to put). For the youtube app i used github copilot to make the function to start autoplay only when the app is opened. I also updated readme. Now the project is ready to ship.
Devlog 8 I’m starting webos 2 and after it this webos will be pretty good. I added a hacking terminal (inspired by @Makkonen ‘s hacking terminal project. I used the same tutorial as him, but I removed all the useless code. I used github copilot to make it so you don’t type the full code snippet with every key press. I updated KuuppaVid . You can now watch any YT video with it if you enter the video ID. Javascript for it was made with github copilot. I added a painting app (inspired by @Makkonen ) using a tutorial I found. You can change the size and color of the pen and use the eraser. I found another tutorial I used for the download function (yes you can download your painting!) and then I used github copilot for the date in the file name. I also used github copilot to fix the bug where the drawing would not appear at your cursor. I also updated the OS with a new font and I removed the “open all windows” button from the taskbar! Also clicking the desktop icon again no longer closes the app. Next devlog i’m gonna add a customization menu!
Devlog 9 I added a customization menu/settings . You can add a custom wallpaper and change app blur and transparency (i used help from github copilot for javascript). The settings app “icon” is currently in the taskbar, I might change it later. I added a working browser (with a little help from AI for javascript). It uses iframe so it can’t load all sites, but now you can have KuuppaOS in KuuppaOS in KuuppaOS :D Lastly I added google fonts to the site. Currently it’s only in the settings app and one button so I will add more. I will also make the desktop icons scale better for different sizes of screens.
Devlog 10 I added a calculator app so now you can calculate :D Settings app is now connected to the taskbar and it looks better . It also saves locally to your browser I also added a calendar to the taskbar that opens when clicking the clock in the taskbar Icons are now properly visible also on smaller screens! Next devlog I will add a game and animations or a minimize button!
Devlog 11 This is a bigger update than usual. I added pong so now you can play pong in KuuppaOS! Calendar now scales better on smaller screens. Settings and calendar buttons now have a hover effect . I added a minimize button!! Open and minimized apps are now in taskbar . I added closing and opening animations . Calculator now looks better . I added a rubber band selector (the funny blue box that comes up when you hold and drag your mouse on the desktop)! I also fixed some bugs . (AI used for debugging) Soon I will add an app store!
Devlog 12 This is a smaller update. I added tooltips to desktop app icons (text that shows up when you hover over the icons). I updated the header on apps so you can now drag the apps around easier . I fixed some bugs and changed some styling , like changing Hacking terminal’s name to HackCMD (I also changed the icon ). I added a normal terminal (inspired by @Makkonen ‘s LuckyOS terminal, go check his projects out!). It’s not finished, but you can type “help” to see all currently available commands!
Devlog 13 I added a camera app . You can take photos and they save to your device. (I used a tutorial for help) I added a new game . It’s a game I made in a coding class a while back. It’s a pacman like game where you run from ghosts. Your objective is to shoot the ghosts from WASD and you move from arrow keys. I also fixed some bugs.
Devlog 14 I updated KuuppaVid , so now you can actually search YouTube videos ! (I used some help from AI) I also updated KuuppaMusic ! Now you can listen to Estonia’s radio station XFM ! (idk why I picked it) And when you minimize it, the song title shows up in the taskbar ! Also it has a cool radio animation . (I used a tutorial for the base of the custom player) I fixed many window bugs (like when resizing the window could go out of bounds). I updated terminal so now (some of) the commands are better and more up to date. I also added an info app, but it currently has no content. KuuppaOS is now almost completed!
Devlog 15 I added the About app (that I started last devlog). You can click the buttons that show info about that app . I added app background color changing to settings and also changed the Reset wallpaper button to instead a Reset to defaults button. I made the radio animation in KuuppaMusic smaller and it now scales better. I also fixed bugs with the taskbar music playing thing. Clock and HackCMD are now properly centered . Camera now records in 4K or the closest resolution instead of 720p. I also added a custom scrollbar so it fits the green theme. I also updated some terminal commands and fixed some bugs .
Devlog 16 I added an audio recorder app . It’s pretty simple, you just hit record. (I used a tutorial for help) I added a loading/login screen that shows for a few seconds. (I used a tutorial for help) I added funny filters to Camera (like saturation, blur, greyscale, hue rotation etc.) I also added a color command to Terminal . I also updated some terminal commands like ‘about’ (I used a bit of AI for help) Current resolution now shows in Camera.
Devlog 17 Big update I added a camera selector to Camera and a microphone selector to Recorder. I added a Dog gallery app where you can view photos of my dogs! (I might add more photos) I finally added the app store . Now you have to install all the apps and they save to your browser’s local storage. (If you install them too quickly the saving can fail, I will fix it) You can also install apps using the install command in Terminal . I updated some terminal commands. Now you can use the rubber band selector next to the app icons. I also made the login screen fade smoother. Idk that’s probably all (or maybe not). (I used help from AI to implement a proper local storage saving thing) I will ship soon! (hopefully)
Devlog 18 Another big update I fixed the app store issue by adding a save button in the app store so make sure to click it after installing or removing many apps at a time . I added reboot and shutdown commands to Terminal. I also made it so you can’t type new commands during longer processes like installing apps with Terminal. I added a start menu ! It isn’t the craziest, but it has reboot, shutdown, open welcome screen and open settings buttons . (yes I removed the settings button from the taskbar!) There is also a now playing thing in the start menu . It supports both KuuppaVid and KuuppaMusic , and it shows the currently playing song. You can even stop the playback. I might update it to support KuuppaBrowser in the next (final) devlog. I also updated the opening/closing animations for the taskbar menus. I also added a export as .txt button to TeXtpad so now you can actually use it for something! I made it so the dog gallery images are only loaded when you want to see the images to speed up the loading process for the website . This is also because i’m adding more dog images in the next devlog! There is also a small loading animation now. I also fixed some stuff and added a simple how-to-use to the welcome screen . That’s all for now, but in the next and hopefully final devlog i’m adding: Now playing support to KuuppaBrowser, Weather to the taskbar, More dog images, Update about to admire TeXtpad’s new functionality, and maybe something else! who knows
Devlog 19 The final devlog I have made many improvements. Also this is the final devlog of KuuppaOS before my second ship, it’s been a long journey. Last devlog I promised Now playing support to KuuppaBrowser but unfortunately, detecting if iframes are making sound isn’t possible with javascript. 2. I added an AI chatbot, KuuppaAI . It’s very kuuppa . It can detect some keywords and have different answers, it can for example code. 3. I removed the Weather desktop app and turned it into a taskbar app . Now if you have allowed location permission, it shows up next to clock . You can still click it and it opens the old weather app, but in a taskbar app style. 4. I changed the default app color , to a more transparent and blueish one. I think it looks a bit better . 5. I added more animations for a smoother experience. For example animations for the apps in the taskbar . 6. I added more dog photos . To be more specific, I added over a hundred dog photos more . When you open it for the first time, it takes a really long time to load them. That’s why I added a service worker (with help from AI) to keep the photos cached . 7. I added fonts to everything so it looks more professional and hopefully made the background higher resolution . 8. Now the cursor changes from grab to grabbing when dragging the windows around. 9. I added a hamburger menu icon so the start menu button looks more like a start menu button . 10. I also added an animation for closing the photos for the different dogs. 11. I added a maximise (/fullscreen) button for apps ! It also has an animation. 12. I added an RGB mode button to settings menu. It makes the apps constantly change their background color (I used a bit of help from AI to make it change through all colors) 13. I added a file type selector to TeXtpad , so now you can choose from .txt, .md, .html and .csv when exporting your TeXtpad text. Also this new functionality now shows in app store and about. I also made the textarea look a bit better . 14. I updated the project README . It still lacks a new screenshot though. 15. I fixed many bugs . Here is some of them: KuuppaMusic wouldn’t show up in the taskbar because of the animation I added for taskbar apps Terminal not showing about command defaults properly Bugs with fullscreen Fixes with dog photos Ghost game iframe having fixed with so it didn’t resize Shutdown and Reboot icons (for start menu) not loading on page load Reset to defaults button not working properly Dog gallery icon not showing in App store And some others! It has been a fun journey, thanks for supporting!
Devlog 20 This devlog wasn’t supposed to happen, because of that I lost 2 hours. I have now fixed more bugs and finished the README. Link to GitHub I’m gonna ship now. (please read my other devlogs they are better than this)
Ships:
I made a webos for the webos 1 mission. It has draggable, resizable and closable windows, desktop icons, a bottom bar with a working clock and an open all windows button. There is six apps: Welcome which is just the welcome screen, TeXtpad which is a notepad, but it only supports one note at a time and it saves it locally to your browser, Weather which shows your local temperature, location and weather condition as an emoji and as text, Clock which is just an analog clock, KuuppaMusic (spotify) which plays the “lofi beats” spotify playlist from the spotify embed (it only plays the first 30s of every song) and KuuppaVid (YouTube) which plays Never Gonna Give You Up by Rick Astley from the YouTube embed. Github copilot is used for fixing some problems and for help and instructions for features like the weather app and autoplay when you open KuuppaVid.
KuuppaOS A WebOS with many different apps and features . This has 17 apps , desktop icons, a taskbar with a start menu (for settings), weather and a calendar/clock . You can have a custom wallpaper , change app background color , blur and transparency or even turn on RGB mode . This even has a rubber-band selector . You can open, close, minimize, maximize and resize the apps. KuuppaOS also has many animations and a dog gallery that has photos of my dogs! More info on GitHub: https://github.com/suklaasukkulayt/kuuppaos GitHub has screenshots and link to a showcase video. (if you have already used this for some reason, go to Start Menu -> Open Settings -> Reset to defaults -> Save to local storage)...
|
1792986707.0269902
|
1793073107.0269902
|
|
32292
|
Cozy cafè demo by @dragoncat404 | Stardance
|
dragoncat404
|
2
|
69.0
|
623
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T20:10:23Z", "hours": 34.0, "multiplier": 5.4, "payout": 183, "blessing": "neutral", "text": "Hi, this is the second ship for my game cozy cafe. This version adds a lot of features, and bug fixes, altough it’s more boring compared to the last one because of some drastic changes I made that will benefit the game in the next version. The most challenging thing in this version was making the shift system that makes the player able to play the game for an undefined amount of time. The most time consuming thing to do was the new drink since the way I made drinks work sucks, it’s very unnecessary complicated. The thing I’m very proud of is the end of shift summary sequence and the drawing, I can’t even describe with words how much I’m proud of it (especially the drawing) Before you play the project and rate it you should know that I’m aware that the game-loop is boring, in the next version I’m gonna change the game loop so that your view is from behing the counter and change a lot of things (kinda like in great pizza good pizza). If you would like to leave feedback of any kind like what you would like to see in the next version, suggestion on new drinks or upgrades feel free to tell them I’ll try to implement all of them as best as I can. In the next version I’m gonna try to also do a tutorial but I can’t promise anything. I don’t have any screenshots that can represent the project in action, so here you go the GIF from github and a picture of cozy, the games mascot", "repo": "https://github.com/Dragon-cat98/Cozy-cafe-demo", "demo": "https://dragoncat420.itch.io/cozy-cafe-demo"}, {"ship_num": 2, "ts": "2026-08-04T18:54:08Z", "hours": 35.0, "multiplier": 12.47, "payout": 440, "blessing": "neutral", "text": "I made a cozy game where you manage a coffe shop in the forest. The most challenging part of making the game was the coffe making mechanic and everything related to it, because there was a lot of problems and there weren’t many tutorials that were useful, so I had to think of ideas and re-think those ideas when they didn’t work. The thing I’m the most proud of is the game art since I’m not the best at drawing, and I think it turned out really well, but the main menu Background is my favourite that I made. This game is a demo and has a really short gameplay(10 min), for the next version I have a lot of things I want to add they’re all written in my notebook, and since the core mechanics are already made adding new features is gonna be easier. The project can be both played in browser on itch.io and be downloaded on itch.io(the instructions on how to install are both on itch and the github readme). Since the controls are mouse and click it can be kinda played on mobile, just that the resolution isn’t made for mobile, but it’s playable", "repo": "https://github.com/Dragon-cat98/Cozy-cafe-demo", "demo": "https://dragoncat420.itch.io/cozy-cafe-demo"}]...
|
[{"post_id": 63765, "ts": "202 [{"post_id": 63765, "ts": "2026-09-07T18:42:17Z", "hours": 3.6419, "text": "Hey everyone, this is the last devlog before shipping the project for the second time. Since last time I’ve done some touch ups like Making some art for the game like the lock so that people understand that it’s locked behind the completion of day 2 Changing the “¥” symbol with a custom made icon Adding the description to the Items in the shop ecc. fixed a bug where the fade in and out effect for starting a new shift would be way too long fixed all the minor bugs that we’re making the playing the uncomfortable had to disable the custom cursor because it would look giant in the actual build of the game And that should be it, I may have forgot something but please forgive me, I finished my notebook where I would write down all the stuff I did Thanks everyone for the support, I can’t wait to rebuild the new gameloop"}, {"post_id": 62376, "ts": "2026-09-05T18:21:25Z", "hours": 9.6569, "text": "Hey Everyone! you might already hev guessed it, The 10 hour limit is very close so I’m making a devlog. things done since last one finished making the shift system in it’s entirety(even if it’s still a bit buggy) the shift system also resets the customers position I’m adding a shop for after the shift where you can buy the drinks and upgrades upgrades and drink upgrades have been moved to the shop (I know it’s a drastic decision but I’ll explain why at the end) I made the art for the end of the shift summary, I’m super proud of it it looks way too good I locked the Orange juice behind the completition of day 2 made the start new shift system I’ve also fixed some leftover bugs from the time system of the shift system done the fade in fade out effect, that I need to tweeak because in some areas it takes too much time explanations I’ve moved the upgrades to the new shop area because after I ship the new version I’ll rework completely the gameplay, if anyone has ever played good pizza, great pizza is going to be familiar with the gameplay, I’ll change the look of it so that you see behing the counter, this is going to make the game way easier to manage and more fun, since this way the customer are going to be a lot easier to implement, and the drink making process is going to be more fun. Hope you’ll understand my decision, I’ve spoken to my friend that also does game dev and he said it’s a good idea. Now the gameplay is more boring? sure but in the next ship it’s going to be (hopefully) a completely different game P.S. the videos aren’t everything I added."}, {"post_id": 58834, "ts": "2026-08-31T12:42:53Z", "hours": 9.4953, "text": "Hey everybody, Sorry if I again went on radio silence but I was partecipating in the brackey game jam 2026.2 with jame gam. Anyways as always I’m being forced to post because of the 10 hour limit so some things are WIP what I’ve done I’ve read the feedback from the ship and a lot of people wanted a tutorial at the start, for now I can’t do that since the game is still in rough shape , but I added a tooltip so that people hopefully understand better how to play Now I’ve got some bad news, in this version I won’t be able to add the custom music changer I talked about in the last devlog, simply because it’s very hard and I couldn’t find any useful tutorials, hopefully in the next version I’ll be able to add it, I’ve like spent 3 hours searching ways to do it but I can’t figure it out I’m adding a shift system where you complete the day and it gives you all the statistics of the day, and maybe I’ll re-work the upgrade feature so that you can upgrade only after the shift ends and maybe add something like rush hour at certain hours, but to do that I’ll need to rework hoe the customers work thanks for the feedback I want to say thank you to all the people that gave feedback to the game I’ll try implementing your feedback, and also thanks for all the comoliments for the game I appreciate it very much Now I’m going back to work see you in the next devlog"}, {"post_id": 45382, "ts": "2026-08-11T19:59:49Z", "hours": 2.2286, "text": "After the last devlog I’ve finished the new drink feature and done some other things, so here’s what Changed: I’ve finished the New drink feature and implemented it with the game I’ve finished the menu where you have to purchase the drinks before having the option to make them, when I’ll add new drinks I’ll put having purchased the previous drink as a requirement to unlock the next one I’ve added a custom cursor I’ve solved the bug where when you dragged an object the object would’nt follow the cursor exactly and would just fly forward, turns out the canvas that was being used was changing into the wrong one since it was manually put in, I’ve changed it to automatically assign the canvas now at the start the kitchen is empty and by purchasing the coffe drink that makes appear the utensils to make coffe Now the next thing to implement is more SFX and other kinds of tracks , I’ll be adding something cool to change the music that’s playing and give the option to import songs to play, this will be the next feature along with some UI improvements like some animations for the menus . I won’t tell yet what the thing to change the music is, because first I want to see if it’s doable Anyways I wont’t be able to work on the game for a few days, because I’ll be away from home and won’t have internet access, but I’ll be doing some redesigns of the game art on my sketchbook during the time being and also researching if the feature can be done."}, {"post_id": 45114, "ts": "2026-08-11T12:13:00Z", "hours": 8.9111, "text": "I’m being forced to post because of the 10h limit this is still work in progress For now since the last post I’ve done: The new drink with all the filling and serving functions Added the new drink as a possible order for the customer added a menu where you purchase the new drinks added a dropdown to select the drink you want to make As I expected adding the new features with the core game logic already done is much easier, I stilll run into bugs but I fix them way more easily, after finishing implementing the drink feature I think I’ll improve the UI, but after that I have to decide on what to do since I do have an idea but I don’t know how long it will take to add and if it’s even worth it, anyway I’ll go back to finishing the new feature"}, {"post_id": 40854, "ts": "2026-08-04T17:20:31Z", "hours": 4.6403, "text": "Hey everyone this is the last devlog of the demo for cozy cafe because the demo version is finished. The last things that I’ve done before finishing it were: -solving some leftover minor bugs -Fixed the random customer skin change because the one customer would have the same skin as the other customer -I’ve made the main menu for the game -I’ve added music to the game -I’ve adde an SFX for when the customers pay For the next version of the game I’ve got a lot of ideas wrote in my notebook, and since the core logic of the game has already been made, these additions should be easy to add, since most of them are visual changes and adding features to already existing mechanics"}, {"post_id": 36471, "ts": "2026-07-28T16:36:15Z", "hours": 9.8586, "text": "Hi everyone, sorry for the radio silence but I was perticipating in the GMTK2026. I’m being forced to post because of the 10h limit, I’ve done a lot of things since the last devlog. I’ve: -Done the core game mechanic of preparing the coffes -Done a LOT of game art, I think I finished all the art for now -I fixed the leftover bugs, now the current version is bug free (I think), they were a lot and many were time consuming -I implemented a random skin change for the customer so that the customer doesn’t feel repetitive I know I’ve said I’ve done a lot of things, but the great majority of the things done were bug fixes and it would take a lot to list them all"}, {"post_id": 30247, "ts": "2026-07-17T17:48:45Z", "hours": 9.6956, "text": "In the last few days I focused on Adding one of the core features of the game and also solving problems about UI and code not collaborating: -I added the new feature that I’ll be expanding in the next few days, for now you prepare the coffes by clicking the button then take the coffes and drag them with the mouse to the white square that sends them to the shelf and increases the counter, by using the third upgrade you can increase the amount of coffes you can make and have on the shelf at the same time, in the next days I’ll be focusing on making art for the game -I drew and added the new coffe shop art -I added a drag&drop system for the kitchen panel -Added the third upgrade with it’s related info, and added real time upgrade prices in the info panel -While making the kitchen panel feature I ran in a logic problem that afer a lot of hours spent trying many ways to fix it, I had to ask claude to help me fix it, the AI actually came up with a genius solution to the problem since my logic for the bool variable was a total mess that I don’t even know how it got so messy -I fixed a bug where if both customers where near the shop you could only serve the one on the right, it was a simple fix, the two canvas where only overlapping eachother -I had to give up the idea of the coffes directly moving on the shelf after preparing them because of transform issues, and use a coffe counter that’s displayed on the shelf, however I like how it turned out -I changed the font to one that Augie from jame gam made, I think it turned out great -It might look like I didn’t do much for having 9h for this devlog, but I swear the problems where mainly caused by addding the new features because the UI just wouldn’t collaborate I geniuenely spent half of the logged time triying to make it work,in the end I asked claude for help and he came up with a genius solution(in my opinion). As I said earlier, I also spent a lot of time triying to make the phisical coffes appear on the shelf but I think the solution i found withe the counetr is better."}, {"post_id": 26822, "ts": "2026-07-11T20:43:58Z", "hours": 2.5356, "text": "Hi everyone, Today I again focused on the UI: -I gave text to the upgrade buttons by giving information on what levek they where, I also made (in my opinion) a pretty good sistem for changingthe level etxt as you upgarde -I added a button that gives information about what each upgrade does, in the future I want show the information by just hovering over the upgrade button -I implemented a feature that my friend suggested, when customers are leaving, above their heads gets displayed how much they’ve payed, this feature wasn’t too easy to program, because I again had to find a way for the game to know when the customer was leaving, but I always haev fun programming these things because I learn a lot of ways, like the fact that if you use a while() loop in the update function, when you press play unity freezes, anyway that wasn’t the real issue, the real issue is that while wanting to delete a gameobject taht I didn’t need, I accidentally deleted the SCRIPTS FOLDER, I panicked when I saw the message and I clicked “cancel” but it was too late, after failing at trying to save the files that I had in VS code, I was about to go retrieve my github code and lose hours of todays progress + hours setting up again the scripts, but then I remembered that if you delete something in unity on windows, the thing doesn’t get totally deleted but goes to the trash bin, so I went to the trash bin with hope and succeded, I restored the folder and magically in unity everything went back to it’s original position, I think I lost 10 years of life by this problem -On the good side I found a super cool font made by Augie from hackclub, she’s the one that runs tha jame gam on slack"}, {"post_id": 26194, "ts": "2026-07-10T21:06:53Z", "hours": 2.7431, "text": "Today i focused on improving the games UI: -I fixed the problem of the ballon by using a UI image and changing it’s sprite(before i has the ballon sprite like a normal game object, to be honest it didn’t take as much as I thought it would to fix this) -The most time was spent making the second upgrade work, because it was a pain understanding the logic to implement the upgrade, wich shortens the time of customers arriving, but it was actually very fun implementig this upgrade bevause I had to think of workarounds around the problems that were coming up -quick side note: in the first devlog i was saying how cool it was VS code autocompletition, quick update it’s starting to piss me off because it’s suggestions aren’t very helpful when i’m implementing totally new features -I added a pause button, wich wasn’t really simple but it’s because I kept getting distracted when setting it up in the UI -added a window that opens and shows a red panel, tomorrow I’ll tell what’s it for -lastly I sent my friend a quick demo to playtest so he can give me some ideas, best decison ever, he gave me some amazing suggestions and gave me inspiration for some other ideas, I did it because I didn’t know what else to add, I hope tomorrow I’ll be able to add some of the ideas"}, {"post_id": 25508, "ts": "2026-07-09T20:30:43Z", "hours": 3.6728, "text": "Today I: -added UI that displays the amount of money you have -Added a very simple ballon that displays a button wich makes you serve the customer -Added one upgrade that increases the money you get from selling, when adding this the panel behind the button kept disappearing when serving the customers, and then I freaked out because the customers weren’t moving after the order, i spent something like 45-50 minutes trying to understand why, in the end somehow the panel of the upgrade somehow ended up in the gamemanagers code, where it should have been the customers ballon panel -added a limit to the amount you could upgrade the shop -then I spent like 30 minutes trying to make a second customer, using the same script as the first one, in the and I made a new script because the previous script was connected to the other scripts and it would have taken too long to do rather than a new script(wich still took long to setup with the other logic in the game), but in the future I hope to find a way to optimize creating new customers by making it easier -after like an hour of me starting todays work when setting up the ballons and trying them by running some playtests, I ran into the most timewasting problem I’ve encountered for now, wich was so stupid but at the same time so frustrating, during the playtests when changing the game window size evrything going out of place especially the buttons and the ballon, I spent most of the time trying what was the problem then I realized that I didn’t change the canvas scale mode to “scale eith screen size”, it doesn’t need to eb said that I felt very dumb after that(I still don’t know why but the ballon + the button still give me problems) -in the next devlog I hope to: fix the ballon problem and to improve it, complete the upgrade list by adding at least 2/3 upgrades"}, {"post_id": 24863, "ts": "2026-07-08T18:30:08Z", "hours": 2.1375, "text": "-Did basic customer logic -Spent 30 minutes trying to understand why the collision trigger didn’t work, discovered that i also needed at least 1 rigidbody 2D -Discovered better ways to exchange data between scripts -Was surprised about how accurate is Visual Studio code auto completition -Unfortunately I only did only the customer basic logic(very basic) because of the time it took to fix all the errors and functions -Next devlog I hope to add a UI that displays Data and implement the game loop by adding upgrades"}]...
|
Title: Cozy cafè demo by @dragoncat404 | Stardance Title: Cozy cafè demo by @dragoncat404 | Stardance
Devlogs:
-Did basic customer logic -Spent 30 minutes trying to understand why the collision trigger didn’t work, discovered that i also needed at least 1 rigidbody 2D -Discovered better ways to exchange data between scripts -Was surprised about how accurate is Visual Studio code auto completition -Unfortunately I only did only the customer basic logic(very basic) because of the time it took to fix all the errors and functions -Next devlog I hope to add a UI that displays Data and implement the game loop by adding upgrades
Today I: -added UI that displays the amount of money you have -Added a very simple ballon that displays a button wich makes you serve the customer -Added one upgrade that increases the money you get from selling, when adding this the panel behind the button kept disappearing when serving the customers, and then I freaked out because the customers weren’t moving after the order, i spent something like 45-50 minutes trying to understand why, in the end somehow the panel of the upgrade somehow ended up in the gamemanagers code, where it should have been the customers ballon panel -added a limit to the amount you could upgrade the shop -then I spent like 30 minutes trying to make a second customer, using the same script as the first one, in the and I made a new script because the previous script was connected to the other scripts and it would have taken too long to do rather than a new script(wich still took long to setup with the other logic in the game), but in the future I hope to find a way to optimize creating new customers by making it easier -after like an hour of me starting todays work when setting up the ballons and trying them by running some playtests, I ran into the most timewasting problem I’ve encountered for now, wich was so stupid but at the same time so frustrating, during the playtests when changing the game window size evrything going out of place especially the buttons and the ballon, I spent most of the time trying what was the problem then I realized that I didn’t change the canvas scale mode to “scale eith screen size”, it doesn’t need to eb said that I felt very dumb after that(I still don’t know why but the ballon + the button still give me problems) -in the next devlog I hope to: fix the ballon problem and to improve it, complete the upgrade list by adding at least 2/3 upgrades
Today i focused on improving the games UI: -I fixed the problem of the ballon by using a UI image and changing it’s sprite(before i has the ballon sprite like a normal game object, to be honest it didn’t take as much as I thought it would to fix this) -The most time was spent making the second upgrade work, because it was a pain understanding the logic to implement the upgrade, wich shortens the time of customers arriving, but it was actually very fun implementig this upgrade bevause I had to think of workarounds around the problems that were coming up -quick side note: in the first devlog i was saying how cool it was VS code autocompletition, quick update it’s starting to piss me off because it’s suggestions aren’t very helpful when i’m implementing totally new features -I added a pause button, wich wasn’t really simple but it’s because I kept getting distracted when setting it up in the UI -added a window that opens and shows a red panel, tomorrow I’ll tell what’s it for -lastly I sent my friend a quick demo to playtest so he can give me some ideas, best decison ever, he gave me some amazing suggestions and gave me inspiration for some other ideas, I did it because I didn’t know what else to add, I hope tomorrow I’ll be able to add some of the ideas
Hi everyone, Today I again focused on the UI: -I gave text to the upgrade buttons by giving information on what levek they where, I also made (in my opinion) a pretty good sistem for changingthe level etxt as you upgarde -I added a button that gives information about what each upgrade does, in the future I want show the information by just hovering over the upgrade button -I implemented a feature that my friend suggested, when customers are leaving, above their heads gets displayed how much they’ve payed, this feature wasn’t too easy to program, because I again had to find a way for the game to know when the customer was leaving, but I always haev fun programming these things because I learn a lot of ways, like the fact that if you use a while() loop in the update function, when you press play unity freezes, anyway that wasn’t the real issue, the real issue is that while wanting to delete a gameobject taht I didn’t need, I accidentally deleted the SCRIPTS FOLDER, I panicked when I saw the message and I clicked “cancel” but it was too late, after failing at trying to save the files that I had in VS code, I was about to go retrieve my github code and lose hours of todays progress + hours setting up again the scripts, but then I remembered that if you delete something in unity on windows, the thing doesn’t get totally deleted but goes to the trash bin, so I went to the trash bin with hope and succeded, I restored the folder and magically in unity everything went back to it’s original position, I think I lost 10 years of life by this problem -On the good side I found a super cool font made by Augie from hackclub, she’s the one that runs tha jame gam on slack
In the last few days I focused on Adding one of the core features of the game and also solving problems about UI and code not collaborating: -I added the new feature that I’ll be expanding in the next few days, for now you prepare the coffes by clicking the button then take the coffes and drag them with the mouse to the white square that sends them to the shelf and increases the counter, by using the third upgrade you can increase the amount of coffes you can make and have on the shelf at the same time, in the next days I’ll be focusing on making art for the game -I drew and added the new coffe shop art -I added a drag&drop system for the kitchen panel -Added the third upgrade with it’s related info, and added real time upgrade prices in the info panel -While making the kitchen panel feature I ran in a logic problem that afer a lot of hours spent trying many ways to fix it, I had to ask claude to help me fix it, the AI actually came up with a genius solution to the problem since my logic for the bool variable was a total mess that I don’t even know how it got so messy -I fixed a bug where if both customers where near the shop you could only serve the one on the right, it was a simple fix, the two canvas where only overlapping eachother -I had to give up the idea of the coffes directly moving on the shelf after preparing them because of transform issues, and use a coffe counter that’s displayed on the shelf, however I like how it turned out -I changed the font to one that Augie from jame gam made, I think it turned out great -It might look like I didn’t do much for having 9h for this devlog, but I swear the problems where mainly caused by addding the new features because the UI just wouldn’t collaborate I geniuenely spent half of the logged time triying to make it work,in the end I asked claude for help and he came up with a genius solution(in my opinion). As I said earlier, I also spent a lot of time triying to make the phisical coffes appear on the shelf but I think the solution i found withe the counetr is better.
Hi everyone, sorry for the radio silence but I was perticipating in the GMTK2026. I’m being forced to post because of the 10h limit, I’ve done a lot of things since the last devlog. I’ve: -Done the core game mechanic of preparing the coffes -Done a LOT of game art, I think I finished all the art for now -I fixed the leftover bugs, now the current version is bug free (I think), they were a lot and many were time consuming -I implemented a random skin change for the customer so that the customer doesn’t feel repetitive I know I’ve said I’ve done a lot of things, but the great majority of the things done were bug fixes and it would take a lot to list them all
Hey everyone this is the last devlog of the demo for cozy cafe because the demo version is finished. The last things that I’ve done before finishing it were: -solving some leftover minor bugs -Fixed the random customer skin change because the one customer would have the same skin as the other customer -I’ve made the main menu for the game -I’ve added music to the game -I’ve adde an SFX for when the customers pay For the next version of the game I’ve got a lot of ideas wrote in my notebook, and since the core logic of the game has already been made, these additions should be easy to add, since most of them are visual changes and adding features to already existing mechanics
I’m being forced to post because of the 10h limit this is still work in progress For now since the last post I’ve done: The new drink with all the filling and serving functions Added the new drink as a possible order for the customer added a menu where you purchase the new drinks added a dropdown to select the drink you want to make As I expected adding the new features with the core game logic already done is much easier, I stilll run into bugs but I fix them way more easily, after finishing implementing the drink feature I think I’ll improve the UI, but after that I have to decide on what to do since I do have an idea but I don’t know how long it will take to add and if it’s even worth it, anyway I’ll go back to finishing the new feature
After the last devlog I’ve finished the new drink feature and done some other things, so here’s what Changed: I’ve finished the New drink feature and implemented it with the game I’ve finished the menu where you have to purchase the drinks before having the option to make them, when I’ll add new drinks I’ll put having purchased the previous drink as a requirement to unlock the next one I’ve added a custom cursor I’ve solved the bug where when you dragged an object the object would’nt follow the cursor exactly and would just fly forward, turns out the canvas that was being used was changing into the wrong one since it was manually put in, I’ve changed it to automatically assign the canvas now at the start the kitchen is empty and by purchasing the coffe drink that makes appear the utensils to make coffe Now the next thing to implement is more SFX and other kinds of tracks , I’ll be adding something cool to change the music that’s playing and give the option to import songs to play, this will be the next feature along with some UI improvements like some animations for the menus . I won’t tell yet what the thing to change the music is, because first I want to see if it’s doable Anyways I wont’t be able to work on the game for a few days, because I’ll be away from home and won’t have internet access, but I’ll be doing some redesigns of the game art on my sketchbook during the time being and also researching if the feature can be done.
Hey everybody, Sorry if I again went on radio silence but I was partecipating in the brackey game jam 2026.2 with jame gam. Anyways as always I’m being forced to post because of the 10 hour limit so some things are WIP what I’ve done I’ve read the feedback from the ship and a lot of people wanted a tutorial at the start, for now I can’t do that since the game is still in rough shape , but I added a tooltip so that people hopefully understand better how to play Now I’ve got some bad news, in this version I won’t be able to add the custom music changer I talked about in the last devlog, simply because it’s very hard and I couldn’t find any useful tutorials, hopefully in the next version I’ll be able to add it, I’ve like spent 3 hours searching ways to do it but I can’t figure it out I’m adding a shift system where you complete the day and it gives you all the statistics of the day, and maybe I’ll re-work the upgrade feature so that you can upgrade only after the shift ends and maybe add something like rush hour at certain hours, but to do that I’ll need to rework hoe the customers work thanks for the feedback I want to say thank you to all the people that gave feedback to the game I’ll try implementing your feedback, and also thanks for all the comoliments for the game I appreciate it very much Now I’m going back to work see you in the next devlog
Hey Everyone! you might already hev guessed it, The 10 hour limit is very close so I’m making a devlog. things done since last one finished making the shift system in it’s entirety(even if it’s still a bit buggy) the shift system also resets the customers position I’m adding a shop for after the shift where you can buy the drinks and upgrades upgrades and drink upgrades have been moved to the shop (I know it’s a drastic decision but I’ll explain why at the end) I made the art for the end of the shift summary, I’m super proud of it it looks way too good I locked the Orange juice behind the completition of day 2 made the start new shift system I’ve also fixed some leftover bugs from the time system of the shift system done the fade in fade out effect, that I need to tweeak because in some areas it takes too much time explanations I’ve moved the upgrades to the new shop area because after I ship the new version I’ll rework completely the gameplay, if anyone has ever played good pizza, great pizza is going to be familiar with the gameplay, I’ll change the look of it so that you see behing the counter, this is going to make the game way easier to manage and more fun, since this way the customer are going to be a lot easier to implement, and the drink making process is going to be more fun. Hope you’ll understand my decision, I’ve spoken to my friend that also does game dev and he said it’s a good idea. Now the gameplay is more boring? sure but in the next ship it’s going to be (hopefully) a completely different game P.S. the videos aren’t everything I added.
Hey everyone, this is the last devlog before shipping the project for the second time. Since last time I’ve done some touch ups like Making some art for the game like the lock so that people understand that it’s locked behind the completion of day 2 Changing the “¥” symbol with a custom made icon Adding the description to the Items in the shop ecc. fixed a bug where the fade in and out effect for starting a new shift would be way too long fixed all the minor bugs that we’re making the playing the uncomfortable had to disable the custom cursor because it would look giant in the actual build of the game And that should be it, I may have forgot something but please forgive me, I finished my notebook where I would write down all the stuff I did Thanks everyone for the support, I can’t wait to rebuild the new gameloop
Ships:
I made a cozy game where you manage a coffe shop in the forest. The most challenging part of making the game was the coffe making mechanic and everything related to it, because there was a lot of problems and there weren’t many tutorials that were useful, so I had to think of ideas and re-think those ideas when they didn’t work. The thing I’m the most proud of is the game art since I’m not the best at drawing, and I think it turned out really well, but the main menu Background is my favourite that I made. This game is a demo and has a really short gameplay(10 min), for the next version I have a lot of things I want to add they’re all written in my notebook, and since the core mechanics are already made adding new features is gonna be easier. The project can be both played in browser on itch.io and be downloaded on itch.io(the instructions on how to install are both on itch and the github readme). Since the controls are mouse and click it can be kinda played on mobile, just that the resolution isn’t made for mobile, but it’s playable
Hi, this is the second ship for my game cozy cafe. This version adds a lot of features, and bug fixes, altough it’s more boring compared to the last one because of some drastic changes I made that will benefit the game in the next version. The most challenging thing in this version was making the shift system that makes the player able to play the game for an undefined amount of time. The most time consuming thing to do was the new drink since the way I made drinks work sucks, it’s very unnecessary complicated. The thing I’m very proud of is the end of shift summary sequence and the drawing, I can’t even describe with words how much I’m proud of it (especially the drawing) Before you play the project and rate it you should know that I’m aware that the game-loop is boring, in the next version I’m gonna change the game loop so that your view is from behing the counter and change a lot of things (kinda like in great pizza good pizza). If you would like to leave feedback of any kind like what you would like to see in the next version, suggestion on new drinks or upgrades feel free to tell them I’ll try to implement all of them as best as I can. In the next version I’m gonna try to also do a tutorial but I can’t promise anything. I don’t have any screenshots that can represent the project in action, so here you go the GIF from github and a picture of cozy, the games mascot...
|
1793000828.7049277
|
1793087228.7049277
|
|
42229
|
Storm Glide by @thenetheritedog | Stardance
|
thenetheritedog
|
1
|
69.0
|
430
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-28T01:20:17Z", "hours": 69.0, "multiplier": 6.27, "payout": 430, "blessing": "neutral", "text": "Storm glide is a 3D action platformer where you are gliding down a stormy mountain. In order to do you must use the caves meaning you must keep your glider intact and avoid the obstacles. Holding onto the glider will cause it to fall faster meaning you have to manage how long you stay on it. Your able to grapple and wall run for extra help. You can test it in the Itch.io page on your web, however it needs a PC to run with keyboard and mouse. The struggles of creation were just as expected with how games are made and were in the beginning mostly physics related. They were fixed through trial and error or just left out of the final game. Originally the glider would of had mechanics where you go glide and then soar by pulling back up which never made it to the final game. The models were relatively easy to make however the first design of the character was a cat. Also I had major issues with making the music so it ended up not being the best. I am proud of the renders. Apparently they reminded people so much of the PS1 that a bad edit of one render on a PS1 disc holder was enough for people to think it was real. Even if sent into an art channel. I am also proud of the controls and how fun it was even though it took so long to get the levels right. I don’t know much about how to ship these games to be honest, I have turned in 1 other project and it got lower results due to lack of dev logging and history so hopefully the read me and other stuff is good enough for this.", "repo": "https://github.com/thenetheritedog/StarDance-Platformer", "demo": "https://netheritedog.itch.io/storm-glide"}]...
|
[{"post_id": 74700, "ts": "202 [{"post_id": 74700, "ts": "2026-09-28T01:09:28Z", "hours": 7.1181, "text": "It has been completed the and is on Itch.io We have added decorations and a win screen. Everything that was used for debugging is removed. The game is able to be played on web and everything is now over. It is all done"}, {"post_id": 70437, "ts": "2026-09-19T05:59:06Z", "hours": 8.6503, "text": "Levels are made I honestly forgot to track unity time so it’s a lot more time then actually logged. Ok first of all we have a win screen added and a new glider model, next we have a lock on indicator for your grapple. Bugs: Physics bugs exist and make me mad Potential solutions: Remove rotating player model on sloped surfaces. limit slopes. ignore it. I am probably going to finish it this weekend as I just want the CPU grant at this point. Also I did a lot of shader testing and this was the best i could do"}, {"post_id": 48682, "ts": "2026-08-17T05:53:35Z", "hours": 4.5081, "text": "NEW LEVELS, now when you reach the end of a level with your glider you win the level. This is done by just deleting the level and finding the level with the next number in the resources.load. I feel as if I am another 10-20 hours away from finishing this as I still need more levels. Better visuals for said levels. Title screen and maybe some simple 90s CGI animations. A new PS1 filter . And maybe a wind mechanic? I’ll keep you all updated on this. Also there is a release to test this"}, {"post_id": 46569, "ts": "2026-08-13T21:54:55Z", "hours": 8.1131, "text": "Storm Glide has a new banner and new levels are in the works. Also a CGI character built for renders is made using high subdivision counts, procedural texturing, procedural effects and a rendering system that is low intensive to really recreate that 90s CGI look"}, {"post_id": 44879, "ts": "2026-08-10T22:25:28Z", "hours": 6.7169, "text": "While I did not finish the cave like I said I would I did make a prerelease build available now and add a pause menu. I will either make a title screen next or the cave. Please check it out I want play testers, however it does not work on the web. I just realized the pause menu is broken so I’ll fix that too"}, {"post_id": 43811, "ts": "2026-08-09T07:38:03Z", "hours": 6.8208, "text": "It took me a while but I finished the animations and had to fight unity about the way the animations were shown however it is done. For some reason Unity instead of making forward for the animation what I said in the modeling program just made up forward based on the hip rotation? So I fixed that by changing import settings. Model is based off a paraglider I thought of in my head and the animations show that. I was going to make a glider animation but the grapple animation already fits with it so I might not. Slight CRT filter added will refine, stone texture as place holder I will make a new cave for the next devlog, maybe I’ll also fix the glider. I’m tired as hell so I’m going to bed now"}, {"post_id": 43177, "ts": "2026-08-08T09:20:56Z", "hours": 4.7072, "text": "Music and Model have been actually added into the game. So in the game now you have some visuals and audio to look at besides the most basic things. Animations are not finished and should end up being finished tomorrow. The running, walking and idle are in the game though. Music is probably final unless I really hate it. Also in the video you can see spikes and the void killing you."}, {"post_id": 42451, "ts": "2026-08-07T05:40:44Z", "hours": 2.2183, "text": "Spikes, effects and speed lines have been added. A song and model are in progress I am nearing the end of the features I want to add to the game. Next I will work on the visuals and story. Story is currently you are performing a stunt where you paraglide through a storm. In order to do this you are going through caves down a mountain. I will probably refine both the model and music but for now they work. Spikes are just if you hit them it resets everything, speedlines and running smoke are both particles, speedlines just being out of view at lower FOVs which go up as you gain speed. Smoke becomes more and more the faster you go. Gliding can go through spikes (Will change but rn need for testing levels) Also I added a cat model project I was thinking of adding into the game so I got the time from it, so a half hour of this was from that."}, {"post_id": 41851, "ts": "2026-08-06T10:12:52Z", "hours": 5.1969, "text": "Glider and Grapple update. What was added Well I have added a glider that you can grapple on to, increasing the weight and falling speed of it while doing so. You also can use your speed to push it faster. The grapple also now has a normal stat that lets me set the players rotation once in it allowing for smoother wall running. Reason why it took so long I wanted some aerodynamic glider but got stuck between it being overpowered, broken, or not fun in its intended use. Game idea is now Decided You are a mountain climber needing to get down, you have a glider however due to the storm you cannot dive through normally meaning you have to go down the mountain through the caves. The deeper you go the more you unveil. Next is probably music."}, {"post_id": 40602, "ts": "2026-08-04T08:05:22Z", "hours": 5.2825, "text": "Grappling hook added, polished, terrain testing and a new obstacle course added…. also I tried fixing slopes again and they still are alright So I currently don’t know what to add next or what the main character will be, I have an old model I might be able to use that I made for a different game that I didn’t finish. I did turn it in however as part of a website so I might not be able to use it. My ideas for what next will be added is particles, character, environment and maybe some new cool ability. Issues: Wallrun acts weird on curved surfaces Slopes are still buggy Camera is a bit weird I will probably start a thread on slack about this. I don’t have a clue what to do for 3d platforming. (Maybe something involving a mountain and gliding?) Hard to keep motivation, might just deal with the weird bugs and wait to fix them. Probably will do music or art next devlog."}, {"post_id": 39329, "ts": "2026-08-02T07:37:15Z", "hours": 6.4725, "text": "Wall slide is here, slopes also have been fixed and give you a velocity boost to show you gaining speed while going down and losing speed going up. Otherwise I have a cat model made but I don’t know if imma keep it."}, {"post_id": 38469, "ts": "2026-07-31T21:10:23Z", "hours": 2.8192, "text": "Basic controls added. Character can move jump, hold jump, walk up and down slopes, turn camera and have a little bit of time after falling to jump (coyote time). Next I will probably add a sprint. fix up collision issues and make a model for the character."}]...
|
Title: Storm Glide by @thenetheritedog | Stardance Title: Storm Glide by @thenetheritedog | Stardance
Devlogs:
Basic controls added. Character can move jump, hold jump, walk up and down slopes, turn camera and have a little bit of time after falling to jump (coyote time). Next I will probably add a sprint. fix up collision issues and make a model for the character.
Wall slide is here, slopes also have been fixed and give you a velocity boost to show you gaining speed while going down and losing speed going up. Otherwise I have a cat model made but I don’t know if imma keep it.
Grappling hook added, polished, terrain testing and a new obstacle course added…. also I tried fixing slopes again and they still are alright So I currently don’t know what to add next or what the main character will be, I have an old model I might be able to use that I made for a different game that I didn’t finish. I did turn it in however as part of a website so I might not be able to use it. My ideas for what next will be added is particles, character, environment and maybe some new cool ability. Issues: Wallrun acts weird on curved surfaces Slopes are still buggy Camera is a bit weird I will probably start a thread on slack about this. I don’t have a clue what to do for 3d platforming. (Maybe something involving a mountain and gliding?) Hard to keep motivation, might just deal with the weird bugs and wait to fix them. Probably will do music or art next devlog.
Glider and Grapple update. What was added Well I have added a glider that you can grapple on to, increasing the weight and falling speed of it while doing so. You also can use your speed to push it faster. The grapple also now has a normal stat that lets me set the players rotation once in it allowing for smoother wall running. Reason why it took so long I wanted some aerodynamic glider but got stuck between it being overpowered, broken, or not fun in its intended use. Game idea is now Decided You are a mountain climber needing to get down, you have a glider however due to the storm you cannot dive through normally meaning you have to go down the mountain through the caves. The deeper you go the more you unveil. Next is probably music.
Spikes, effects and speed lines have been added. A song and model are in progress I am nearing the end of the features I want to add to the game. Next I will work on the visuals and story. Story is currently you are performing a stunt where you paraglide through a storm. In order to do this you are going through caves down a mountain. I will probably refine both the model and music but for now they work. Spikes are just if you hit them it resets everything, speedlines and running smoke are both particles, speedlines just being out of view at lower FOVs which go up as you gain speed. Smoke becomes more and more the faster you go. Gliding can go through spikes (Will change but rn need for testing levels) Also I added a cat model project I was thinking of adding into the game so I got the time from it, so a half hour of this was from that.
Music and Model have been actually added into the game. So in the game now you have some visuals and audio to look at besides the most basic things. Animations are not finished and should end up being finished tomorrow. The running, walking and idle are in the game though. Music is probably final unless I really hate it. Also in the video you can see spikes and the void killing you.
It took me a while but I finished the animations and had to fight unity about the way the animations were shown however it is done. For some reason Unity instead of making forward for the animation what I said in the modeling program just made up forward based on the hip rotation? So I fixed that by changing import settings. Model is based off a paraglider I thought of in my head and the animations show that. I was going to make a glider animation but the grapple animation already fits with it so I might not. Slight CRT filter added will refine, stone texture as place holder I will make a new cave for the next devlog, maybe I’ll also fix the glider. I’m tired as hell so I’m going to bed now
While I did not finish the cave like I said I would I did make a prerelease build available now and add a pause menu. I will either make a title screen next or the cave. Please check it out I want play testers, however it does not work on the web. I just realized the pause menu is broken so I’ll fix that too
Storm Glide has a new banner and new levels are in the works. Also a CGI character built for renders is made using high subdivision counts, procedural texturing, procedural effects and a rendering system that is low intensive to really recreate that 90s CGI look
NEW LEVELS, now when you reach the end of a level with your glider you win the level. This is done by just deleting the level and finding the level with the next number in the resources.load. I feel as if I am another 10-20 hours away from finishing this as I still need more levels. Better visuals for said levels. Title screen and maybe some simple 90s CGI animations. A new PS1 filter . And maybe a wind mechanic? I’ll keep you all updated on this. Also there is a release to test this
Levels are made I honestly forgot to track unity time so it’s a lot more time then actually logged. Ok first of all we have a win screen added and a new glider model, next we have a lock on indicator for your grapple. Bugs: Physics bugs exist and make me mad Potential solutions: Remove rotating player model on sloped surfaces. limit slopes. ignore it. I am probably going to finish it this weekend as I just want the CPU grant at this point. Also I did a lot of shader testing and this was the best i could do
It has been completed the and is on Itch.io We have added decorations and a win screen. Everything that was used for debugging is removed. The game is able to be played on web and everything is now over. It is all done
Ships:
Storm glide is a 3D action platformer where you are gliding down a stormy mountain. In order to do you must use the caves meaning you must keep your glider intact and avoid the obstacles. Holding onto the glider will cause it to fall faster meaning you have to manage how long you stay on it. Your able to grapple and wall run for extra help. You can test it in the Itch.io page on your web, however it needs a PC to run with keyboard and mouse. The struggles of creation were just as expected with how games are made and were in the beginning mostly physics related. They were fixed through trial and error or just left out of the final game. Originally the glider would of had mechanics where you go glide and then soar by pulling back up which never made it to the final game. The models were relatively easy to make however the first design of the character was a cat. Also I had major issues with making the music so it ended up not being the best. I am proud of the renders. Apparently they reminded people so much of the PS1 that a bad edit of one render on a PS1 disc holder was enough for people to think it was real. Even if sent into an art channel. I am also proud of the controls and how fun it was even though it took so long to get the levels right. I don’t know much about how to ship these games to be honest, I have turned in 1 other project and it got lower results due to lack of dev logging and history so hopefully the read me and other stuff is good enough for this....
|
1793004480.7582178
|
1793090880.7582178
|
|
56600
|
AmateurOS by @amateur_tech_guy | Stardance
|
amateur_tech_guy
|
3
|
69.0
|
558
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T17:45:53Z", "hours": 35.0, "multiplier": 7.59, "payout": 245, "blessing": "neutral", "text": "AmateurOS:Ship 3 AmateurOS is a web operating system that is fully functional and has the basic needs of a human being, it will get more apps on the last ship and more bugs will be debugged, but for now, i’m trying to see what the reviewers think of it, the main challenges i faced was debugging and def organizing my files, as you can clearly see from my github repo it is very messy. My main reason of shipping this NOW, is because I lost all of my work while organizing the website, so yes there will be more, but I need to make sure I don’t lose progress every now and then, if it wasn’t for github I would’ve lost everything and quit tech, genuinely. Tho I have to say I am very proud of how this is turning out to be like, I never expected to be so capable:D", "repo": "https://github.com/amateurtechguy/AmateurOS", "demo": "https://amateurtechguy.github.io/AmateurOS/"}, {"ship_num": 2, "ts": "2026-09-10T18:12:38Z", "hours": 27.0, "multiplier": 11.4, "payout": 313, "blessing": "neutral", "text": "AmateurOS This is an operating system website made with the amateur tech guy color scheme and also lots of effort:) it is unfinished sure, but I’m just shipping for the mission part, I have spent hours on this project and I really hope people rate it well, cause honestly I’m trying my hardest to show people that I am capable of making good websites, the settings part is unfinished but that’s for the 3rd ship. Please rate well, and I hope you like this project:D", "repo": "https://github.com/amateurtechguy/AmateurOS", "demo": "https://amateurtechguy.github.io/AmateurOS/"}, {"ship_num": 3, "ts": "2026-09-04T15:37:53Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Amateur0S This is an OS inspired by Edex UI, a UI that makes you feel like Mr.Robot hehe, it’s a combination of Mr.Robot and the amateur tech guy’s color scheme, now it only has draggable windows and a working clock, and also only one calculator app, but it falls with the requirements:) I’m really proud of how I executed the design and how things look like right now, either way I will be working on resizeable windows and the settings and more apps for ship 2, I really owe it all to Bro Code he’s goated he literally taught me half the stuff you see in this operating system!:D", "repo": "https://github.com/amateurtechguy/AmateurOS", "demo": "https://amateurtechguy.github.io/AmateurOS/"}]...
|
[{"post_id": 68174, "ts": "202 [{"post_id": 68174, "ts": "2026-09-14T17:26:45Z", "hours": 4.0361, "text": "devlog #21: OH MY GOD I WAS TRYING TO ORGANIZE MY FILES BY PUTTING THEM IN FOLDERS AND I LOST EVERYTHING HOLY COOKED"}, {"post_id": 67610, "ts": "2026-09-13T19:08:43Z", "hours": 2.9133, "text": "devlog #20: now I finished setting up the snake game, i still have problems with my weather API setup, ill fix it by the next devlog, but i did listen to a review and made a feature in settings functional hehe anyways not much intel in this devlog other than that, going to be adding more soon! look forward to seeing either a terminal or a car racing game next devlog:)"}, {"post_id": 67266, "ts": "2026-09-13T10:35:06Z", "hours": 12.9453, "text": "devlog #19: I vibecoded and made my javascript a LOT shorter, i tried doing the same for my css but it couldnt work so ima live with it, anyways i watched 2 youtube tutorials, i made my snake game and styled it, and my weather app but its still not working for some reason, maybe ill use AI to debug cause its frustrating me i tried everything but first im going to wait for my friend to respond to see if he can help, also going to add a car game suggestion by a very talented person👀👀👀👀 anyways im going to sleep now cause im tired i havent slept all day, ill code later and for the record i only made the games on a seperate files i havent connected them to my OS yet"}, {"post_id": 66708, "ts": "2026-09-12T16:25:33Z", "hours": 3.2939, "text": "devlog #18: so the code is getting longer and longer which is making it harder to code, if anyone has any tip pls let me know and also, i learned how to make a weather app so next devlog ill show the full product, im also planning on adding a snake game and maybe a bit more? idk yet"}, {"post_id": 66567, "ts": "2026-09-12T12:28:59Z", "hours": 3.4222, "text": "devlog #17: I finally fixed the functionality of my settings, the apps in the “apps” section can now also change color, the display can change sizes and the clock can be switched between 24 hour clock to the 12 hour clock one! however the 12 hour clock one is the default so.. we’re done with the settings feature tho! now it’s time to add more apps"}, {"post_id": 66434, "ts": "2026-09-12T08:20:18Z", "hours": 7.56, "text": "devlog #16: LESS GOO I GOT MY TIME BACK also guys i made the apps go light aswell, i hate light mode but someone suggested it on my reviews so i guess here u go"}, {"post_id": 66092, "ts": "2026-09-11T17:50:41Z", "hours": 0.7306, "text": "devlog #15: bro im so mad, they didnt count ALL my work im actually so mad ive been coding for 7 hours now and on stardance only 1 counts barely even one i hate this and everything about this omg and iit literally even shows the hackatime as 43hrs LOGGED, anyways i made a settings feature i guess its functional"}, {"post_id": 65926, "ts": "2026-09-11T12:01:43Z", "hours": 0.2961, "text": "devlog #14: okay so, i shipped my project for the second time but i got changes requested, for this specific page and in this devlog im just letting you guys know ima work real hard on this feature and finish it by tonight then ill add more apps and we’ll see what we make after that but it wont be easy so wish me luck:)"}, {"post_id": 65501, "ts": "2026-09-10T18:05:22Z", "hours": 7.2028, "text": "devlog #13: okay so today was HELL i made a files app, i tried my best and did lots of research but i just couldnt find any tutorials that showed how to connect the files file to the html ones so i just kept it as a seperate file feature that works normally but lowkey doesnt even control the desktop apps and files, im sorry yall it was just too difficult"}, {"post_id": 65040, "ts": "2026-09-09T21:01:11Z", "hours": 1.8961, "text": "devlog #12: added a news app, now making apps in my OS is becoming progressively easy, anyways thats it for tonight also might add a couple more apps and then i’ll move on to the files part:P"}, {"post_id": 64973, "ts": "2026-09-09T18:42:22Z", "hours": 3.36, "text": "devlog #11: In this update, i added a new feature, the search bar! and I even made the journal and search bar look neat in my OS and I’m really proud of how it turned out to be completely honest its so neat"}, {"post_id": 64422, "ts": "2026-09-08T19:53:02Z", "hours": 0.2628, "text": "devlog #10: shouldnt even count as a devlog but meh, quick little preview of my journal app, yk what it should look like:) OH and also, the power button now works, if u click it, it’ll kick you out"}, {"post_id": 64410, "ts": "2026-09-08T19:31:30Z", "hours": 5.1575, "text": "devlog #9: added a fully functional new journal app:) i just need to fix the CSS and ill be done with the journal feature, and then ill add a search bar in the tool bar aswell!"}, {"post_id": 63711, "ts": "2026-09-07T17:26:07Z", "hours": 1.3486, "text": "devlog #8: fixed the whole glitch with the draggable windows, now it works perfectly and the resize buttons are fully functional now!"}, {"post_id": 63066, "ts": "2026-09-06T17:36:55Z", "hours": 0.6139, "text": "devlog #7: finished debugging and even added a date :) now the calculator automatically pulls up the right size and thats pretty much it for this devlog!"}, {"post_id": 62951, "ts": "2026-09-06T14:40:44Z", "hours": 4.7283, "text": "devlog #6: worked hard on this debugging session, I still got ALOT of work to do tho, the tabs are now officially resizeable which means MORE ISSUES YAY!!😭😭😭😭😭😭😭😭😭😭😭😭 the calculator still has bugs it functions well but im tryna work on its size and stuff cause it doesnt work well for some people, i changed the positioning for the toolbar and swaped the text out with emojis cause that was fortunately the easiest thing to do, also I added a blink animation to the Online dot cause it seemed neat and yea thats all for now:)"}, {"post_id": 62217, "ts": "2026-09-05T14:07:58Z", "hours": 2.9214, "text": "devlog #5: just redid my code and debugged a bit:) it still needs ALOT of work but this should be good for mission 1, i hope, now the files and apps and settings dont work BUT im planning on making them functional on ship 2"}, {"post_id": 61572, "ts": "2026-09-04T15:31:30Z", "hours": 2.1894, "text": "devlog #4: now i finally added a calculator app, you can find it in the apps section and i used a youtube tutorial for the draggable pages thing, I’m ready for the first ship:)"}, {"post_id": 60941, "ts": "2026-09-03T16:49:27Z", "hours": 1.4261, "text": "devlog #3: for some reason hackatime isnt logging all my time in but it’s whatever, the first ship isnt even hour based so i dont mind for now, anyways i ran into a problem while making my home screen for the OS i had this but then i fixed the issue, check the second picture:O Before anyone says anything yes i know its crappy rn but itll improve, as for the files, apps and settings, theyre temporarily text, ill change them to files some time soon"}, {"post_id": 60486, "ts": "2026-09-02T20:59:57Z", "hours": 2.7281, "text": "devlog #1: I finally understand how this OS is supposed to work all thanks to @253_Mathilde_IYKYK everybody make sure to show her some support. Anyways I took inspo from the edex UI theme and added my color scheme into it, hope you guys like it cause theres going to be a lot more of this:)"}, {"post_id": 59813, "ts": "2026-09-01T19:27:42Z", "hours": 1.1214, "text": "devlog #1: hey guys! im currently working on my very own OS, heres the thing, im confused because it feels like im making a website.. i had to read further and go back and check some stuff, still im not sure how this works but ill figure it out"}]...
|
Title: AmateurOS by @amateur_tech_guy | Stardance
Title: AmateurOS by @amateur_tech_guy | Stardance
Devlogs:
devlog #1: hey guys! im currently working on my very own OS, heres the thing, im confused because it feels like im making a website.. i had to read further and go back and check some stuff, still im not sure how this works but ill figure it out
devlog #1: I finally understand how this OS is supposed to work all thanks to @253_Mathilde_IYKYK everybody make sure to show her some support. Anyways I took inspo from the edex UI theme and added my color scheme into it, hope you guys like it cause theres going to be a lot more of this:)
devlog #3: for some reason hackatime isnt logging all my time in but it’s whatever, the first ship isnt even hour based so i dont mind for now, anyways i ran into a problem while making my home screen for the OS i had this but then i fixed the issue, check the second picture:O Before anyone says anything yes i know its crappy rn but itll improve, as for the files, apps and settings, theyre temporarily text, ill change them to files some time soon
devlog #4: now i finally added a calculator app, you can find it in the apps section and i used a youtube tutorial for the draggable pages thing, I’m ready for the first ship:)
devlog #5: just redid my code and debugged a bit:) it still needs ALOT of work but this should be good for mission 1, i hope, now the files and apps and settings dont work BUT im planning on making them functional on ship 2
devlog #6: worked hard on this debugging session, I still got ALOT of work to do tho, the tabs are now officially resizeable which means MORE ISSUES YAY!!😭😭😭😭😭😭😭😭😭😭😭😭 the calculator still has bugs it functions well but im tryna work on its size and stuff cause it doesnt work well for some people, i changed the positioning for the toolbar and swaped the text out with emojis cause that was fortunately the easiest thing to do, also I added a blink animation to the Online dot cause it seemed neat and yea thats all for now:)
devlog #7: finished debugging and even added a date :) now the calculator automatically pulls up the right size and thats pretty much it for this devlog!
devlog #8: fixed the whole glitch with the draggable windows, now it works perfectly and the resize buttons are fully functional now!
devlog #9: added a fully functional new journal app:) i just need to fix the CSS and ill be done with the journal feature, and then ill add a search bar in the tool bar aswell!
devlog #10: shouldnt even count as a devlog but meh, quick little preview of my journal app, yk what it should look like:) OH and also, the power button now works, if u click it, it’ll kick you out
devlog #11: In this update, i added a new feature, the search bar! and I even made the journal and search bar look neat in my OS and I’m really proud of how it turned out to be completely honest its so neat
devlog #12: added a news app, now making apps in my OS is becoming progressively easy, anyways thats it for tonight also might add a couple more apps and then i’ll move on to the files part:P
devlog #13: okay so today was HELL i made a files app, i tried my best and did lots of research but i just couldnt find any tutorials that showed how to connect the files file to the html ones so i just kept it as a seperate file feature that works normally but lowkey doesnt even control the desktop apps and files, im sorry yall it was just too difficult
devlog #14: okay so, i shipped my project for the second time but i got changes requested, for this specific page and in this devlog im just letting you guys know ima work real hard on this feature and finish it by tonight then ill add more apps and we’ll see what we make after that but it wont be easy so wish me luck:)
devlog #15: bro im so mad, they didnt count ALL my work im actually so mad ive been coding for 7 hours now and on stardance only 1 counts barely even one i hate this and everything about this omg and iit literally even shows the hackatime as 43hrs LOGGED, anyways i made a settings feature i guess its functional
devlog #16: LESS GOO I GOT MY TIME BACK also guys i made the apps go light aswell, i hate light mode but someone suggested it on my reviews so i guess here u go
devlog #17: I finally fixed the functionality of my settings, the apps in the “apps” section can now also change color, the display can change sizes and the clock can be switched between 24 hour clock to the 12 hour clock one! however the 12 hour clock one is the default so.. we’re done with the settings feature tho! now it’s time to add more apps
devlog #18: so the code is getting longer and longer which is making it harder to code, if anyone has any tip pls let me know and also, i learned how to make a weather app so next devlog ill show the full product, im also planning on adding a snake game and maybe a bit more? idk yet
devlog #19: I vibecoded and made my javascript a LOT shorter, i tried doing the same for my css but it couldnt work so ima live with it, anyways i watched 2 youtube tutorials, i made my snake game and styled it, and my weather app but its still not working for some reason, maybe ill use AI to debug cause its frustrating me i tried everything but first im going to wait for my friend to respond to see if he can help, also going to add a car game suggestion by a very talented person👀👀👀👀 anyways im going to sleep now cause im tired i havent slept all day, ill code later and for the record i only made the games on a seperate files i havent connected them to my OS yet
devlog #20: now I finished setting up the snake game, i still have problems with my weather API setup, ill fix it by the next devlog, but i did listen to a review and made a feature in settings functional hehe anyways not much intel in this devlog other than that, going to be adding more soon! look forward to seeing either a terminal or a car racing game next devlog:)
devlog #21: OH MY GOD I WAS TRYING TO ORGANIZE MY FILES BY PUTTING THEM IN FOLDERS AND I LOST EVERYTHING HOLY COOKED
Ships:
Amateur0S This is an OS inspired by Edex UI, a UI that makes you feel like Mr.Robot hehe, it’s a combination of Mr.Robot and the amateur tech guy’s color scheme, now it only has draggable windows and a working clock, and also only one calculator app, but it falls with the requirements:) I’m really proud of how I executed the design and how things look like right now, either way I will be working on resizeable windows and the settings and more apps for ship 2, I really owe it all to Bro Code he’s goated he literally taught me half the stuff you see in this operating system!:D
AmateurOS This is an operating system website made with the amateur tech guy color scheme and also lots of effort:) it is unfinished sure, but I’m just shipping for the mission part, I have spent hours on this project and I really hope people rate it well, cause honestly I’m trying my hardest to show people that I am capable of making good websites, the settings part is unfinished but that’s for the 3rd ship. Please rate well, and I hope you like this project:D
AmateurOS:Ship 3 AmateurOS is a web operating system that is fully functional and has the basic needs of a human being, it will get more apps on the last ship and more bugs will be debugged, but for now, i’m trying to see what the reviewers think of it, the main challenges i faced was debugging and def organizing my files, as you can clearly see from my github repo it is very messy. My main reason of shipping this NOW, is because I lost all of my work while organizing the website, so yes there will be more, but I need to make sure I don’t lose progress every now and then, if it wasn’t for github I would’ve lost everything and quit tech, genuinely. Tho I have to say I am very proud of how this is turning out to be like, I never expected to be so capable:D...
|
1792997465.9149792
|
1793083865.9149792
|
|
69561
|
WebBuilder by @futurus | Stardance
|
futurus
|
0
|
68.83
|
0
|
[]
|
[{"post_id": 79413, "ts": "202 [{"post_id": 79413, "ts": "2026-10-13T21:16:55Z", "hours": 68.8281, "text": "I did this project for the Macondo event, but it was handled terribly, they banned me from the Fraud Squad, I proved my innocence, they unbanned me, and now, they kicked me straight out of the event, don’t ask me why, I have no idea, so im shipping this project here, so yeah, this projec is already finished, idk what to say, all in the readme, i had even a video for a small tutorial, but i can’t upload it here bc it is 80mb and i can load here max 50mb"}]...
|
Title: WebBuilder by @futurus | Stardance
Devlogs Title: WebBuilder by @futurus | Stardance
Devlogs:
I did this project for the Macondo event, but it was handled terribly, they banned me from the Fraud Squad, I proved my innocence, they unbanned me, and now, they kicked me straight out of the event, don’t ask me why, I have no idea, so im shipping this project here, so yeah, this projec is already finished, idk what to say, all in the readme, i had even a video for a small tutorial, but i can’t upload it here bc it is 80mb and i can load here max 50mb...
|
1792857123.352126
|
1793721123.352126
|
|
5061
|
Novara - Learning Website by @Cassetu | Stardance
|
Cassetu
|
3
|
68.14
|
325
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T03:00:54Z", "hours": 19.0, "multiplier": 12.44, "payout": 121, "blessing": "neutral", "text": "Novara v1.04.67 Novara is a free learning website, It has multiple courses with varying lesson types, so information is presented and tested in many ways. Our Goal: Build a library of curriculums so users can get the same learning opportunities of school, with more ways to learn than reading and note-taking, and at no cost to the users. (Verbatim from homepage) ##New Features from Previous Ship include: NEW UI: Earlier versions were apparently too “ai” so I created a new version that hopefully doesn’t look like ai. Since if people think that any part of the website is ai, the website in the whole is low quality rubbish, which Novara is NOT and will NOT allow itself to be. Inline css has been replaced with classes and seperate css files. Those css files are soon to be further seperated into smaller css files to make css navigation easier. Enhanced Privacy Policy: Now includes direct links allowing users to do self-study as well as a profit section. New Syllabus Flow: Now uses a sidebar with the section names and # of lessons. Clicking on the section opens up the lesson on the right side workspace. Mayor Bob: THE MASCOT TO GUIDE ALL!! He hopefully has more character. (I feel like hes better now but idk) Paced Mode!!!: Lessons lock until you reach the current day’s target, missing a day triggers a review quiz scaled to how long you were gone, and every 7 completed lessons triggers a module exam gate (80% to pass, locks further progress until you clear it). Because it matches the real school format of teaching, and i feel like the information will be better retained by ppl if its taught over several days instead of all being shoved down ur throught. AI Courses: ALL GONE!! Looking for proffesionals in single subjects to assist in new proper course creation. Ai work will never replace us!! URL Routing: You can share links and bookmark pages and since its all the same html file, it wouldn’t work, but now it does bc we have the “?=###” things that work now. ##Difficulties: Forever the bane of my existence, the typos an missing semicolons or braces. Also working through the css to ensure that the content is structured how i like it. Also did a fix where my previous thing would break if a course file was missing when the catalog json had it listed, now it just skips over it. The bonus question was fiting weirdly so i js removed it entirely. At some point i made the dialogue boxes have the typing animation, but i forgot about new lines and whitespaces also have to be considered in that logic, so at some point the dialogue would just trail off the end of the text box lol, without any spaces or new lines. Css bugs also. I js realized i also forgot to style the scrollbars, but ill work on that later. side note: i figured out how to sign my commits using a SHA encryption service so every commit will say “Verified” (ONLY REMAINS ONE AI COURSE THAT IS NOW PROPERLY ATTRIBUTED IN ITS DETAILS MENU, THE AI DISCLAIMER IS DISCONTINUED) README + More Details here: https://github.com/Cassetu/Novara#table-of-contents PRIVACY POLICY: https://cassetu.github.io/Novara/html/privacy.html TRY IT HERE!: https://cassetu.github.io/Novara/index.html (To access full content you must sign in/register, u can trust Novara, and if you don’t, read the Privacy Policy!)", "repo": "https://github.com/Cassetu/Novara", "demo": "https://github.com/Cassetu/Novara#website-usage"}, {"ship_num": 2, "ts": "2026-07-28T04:01:17Z", "hours": 11.0, "multiplier": 9.98, "payout": 105, "blessing": "neutral", "text": "Novara v1.03.97 Novara is a free learning website, It has multiple courses with varying lesson types, so information is presented and tested in many ways. New Features from Previous Ship include: Architecture Simulation: A new lesson type where the user can design an simple floor plan, complete with an accurate scale, rectangle tool, and eraser. Privacy Policy: Users can understand how their data is stored within Novara, and feel safer using the relativly unknown website. New Lesson Flow: Topbar no longer uses Opacity, and instead has a back button neatly placed at the top instead of the usual navigation buttons. Alerts: Almost all of the alerts have been moved to custom inline boxes to be more user intuitive and welcoming. I think i missed a few somewhere here and there tho. AI USAGE DISCLAIMER AI is used in the generation of our courses. We have not yet received assistance from subject-matter experts in developing our curricula. (I’m working on finding people, hopefully soon) To maintain quality, the AI is guided by strict instructions designed to reduce low-quality content (“slop lessons”) and encourage materials that engage students in critical thinking and active learning. Despite these safeguards, mistakes and errors may still occur. If you find an issue, please report it by emailing: [email protected] (Responses take 3-5 business days). Thank you for helping us improve. README + More Details here: https://github.com/Cassetu/Novara#table-of-contents PRIVACY POLICY: https://cassetu.github.io/Novara/html/privacy.html TRY IT HERE!: https://cassetu.github.io/Novara/index.html (To access full content you must sign in/register)", "repo": "https://github.com/Cassetu/Novara", "demo": "https://github.com/Cassetu/Novara#website-usage"}, {"ship_num": 3, "ts": "2026-06-18T15:21:19Z", "hours": 7.0, "multiplier": 14.37, "payout": 99, "blessing": "neutral", "text": "Novara v1.03.56 Novara is a free learning website, It has multiple courses with varying lesson types, so information is presented and tested in many ways. Features include: Focused Learning : Enrollment is limited to a maximum of 3 curriculums at a time to encourage focus and prevent overwhelm. Structured Content : Curriculums contain courses, and courses contain modular lessons. Knowledge Checks : Built-in quizzes to test your knowledge at the end of courses. Progress Tracking : Visual indicators to show completed lessons and remaining coursework. The main architecture is designed using HTML, CSS and JS. Designed to be modular, so adding another course/curriculum is easily done by writing one single json data file. AI USAGE DISCLAIMER AI is used in the generation of our courses. We have not yet received assistance from subject-matter experts in developing our curricula. To maintain quality, the AI is guided by strict instructions designed to reduce low-quality content (“slop lessons”) and encourage materials that engage students in critical thinking and active learning. Despite these safeguards, mistakes and errors may still occur. If you find an issue, please report it by emailing: [email protected] (Responses take 3-5 business days). Thank you for helping us improve. README + More Details here: https://github.com/Cassetu/Novara#table-of-contents TRY IT HERE!: https://cassetu.github.io/Novara/index.html (To access full content you must sign in/register)", "repo": "https://github.com/Cassetu/Novara", "demo": "https://github.com/Cassetu/Novara#website-usage"}]...
|
[{"post_id": 74744, "ts": "202 [{"post_id": 74744, "ts": "2026-09-28T03:47:35Z", "hours": 8.6992, "text": "v1.05.77 Site is becoming more usable!! Changes: Has a working branch vs a master branch, so in progress updates will not effect the current version on the web. made image label block logic cleared old logic for renderers did a whole lot of SEO things fix sw.js with real file paths (not the ancient ones) more styling in css node.js to automatically create html things for web crawlers ( auto-generate-curriculum-pages ) update homepage to look wayyy better fully rebuilt practice/exam system for block-based lessons logical fallicies notes lesson end screen with nature Problems Encountered: Incorrect formatting (always happens when u type fast) Bad css Difficult logic with complicated storage format (e.g., looking through .sections, .lessons, etc) check out the latest build: novaraedu.org"}, {"post_id": 70975, "ts": "2026-09-20T04:33:45Z", "hours": 7.0331, "text": "v1.05.26 Site is still somewhat unusable currently Changes: fixed getAllQuestionsForEntry build render functions for all the different block types: renderSubmitBlock , renderMultipleChoiceBLock , etc purged a few bugs yayy moved the workspace thing so it has a new sidebar and is familiar to the course syllabus view. did a whole buncha formatting troubleshooting bought a domain!!!! go to novaraedu.org . which means you can find it on search enginges now (i think)"}, {"post_id": 58235, "ts": "2026-08-30T16:19:55Z", "hours": 2.3939, "text": "v1.04.98 Site is still unusable currently *Continuing the data refactoring, I fixed some of the references in openSyllabus. I also completly removed the faulty references to isBundle() , i accidentaly messed up the case of loadIndex to LoadIndex but luckily a simple glance at the console pinpointed it for me :D (Thank god for descriptive error messages) Added the hackatime lapse links to the notes (since i want to use nice formatting without ai accusations i lowkey need to do that) Started doing notes on “The Science of Logical Reasoning specifically for: Jerome Bruner Theory of Cognitive Development.” Its for building good curriculums and proper teaching, they have this cool thing called a “spiral curriculum” that you should search up. (I’m also trying out a recording timelapse system, that should be better than lapse since lapse only takes like a picture every minute and stiches it together, this takes a picture every second and then compresses it) the video is only of v1.04.97 -> v1.04.98 editing portion Thanks for your support! :D"}, {"post_id": 51423, "ts": "2026-08-21T03:48:03Z", "hours": 3.8747, "text": "v1.04.91 Celebrating my 250th commit!! :D fully deleted the curriculum tool since its frustrating and too hard rn and i’m going to do it later after i do my data refactor removed the ai detector thing, the link still works for now, but I don’t think i want to use it because its too unreliable, and is too much of a project in its own right than a small tool I’m doing a major refactor of my data structure. Previously, my curriculum information all sat in one MASSIVE json. but now i have a complex folder network. Each curriculum will have an index.json file, so the catalog.json routes to the index.json that leads into the courses, then to the sections, and down to the individual lessons. Its kinda like a phonebook… i think. Every lesson will be its own json with its own list of “blocks” that are pieces that i can take apart or put together to make lessons unique! Kinda like its own mini programming language lol. Currently the site is unusable since the course.js isn’t fully complete to understand the new data structure. :P"}, {"post_id": 49323, "ts": "2026-08-18T02:26:42Z", "hours": 2.2892, "text": "v1.04.76 Taking a break from psychology notes to do some coding again. began working on a curriculum tool so educators can easily build em without having to work through the complicated json structure. its a bit hard since i want to export a zip, and im not entirely sure how that would work, and also i need to double check how my course.js processes the json so i can get exactly all the information to put into it. ai detector thing. examines github repositories and find all comments and flags exessive amounts, or exessive explanations in them (classic ai fingerprints) as well as flagging verbose function names and shows the time it would take to make the project at 70 wpm and detects inconsistencies in commit times (eg 1000 new code typed after 2 minutes of another commit that would be flagged) then gives a % of confidence. 0-30% is prob human, 30-50% is mixed unsure, 50-100% is definetly full ai. Before you accuse someone, make sure to do througouh like questioning and interviews and such because this tool is imperfect. This way i can easily identify projects that have disgenuine work and report them to stardance to take care of. ( https://cassetu.github.io/Novara/html/aisubTool.html ) I got gemini to help reformat the code since it was a bit of a mess, dw i had a full disclaimer. (ai vibe coders take notes.) It was a big challenge getting the github token to work, but it functions now and doesn’t steal your information!! :D also i ran my own project through it once, it was clear, and then i ran it again after commiting it, and now it thinks my project is ai, because the code scans for these specific traces, that are present in the code itself, meaning that if it scans itself, it will find everything its looking for. T - T (false positive in the first image) leave a comment to help! thx!"}, {"post_id": 47623, "ts": "2026-08-15T17:08:58Z", "hours": 2.7478, "text": "v1.04.74 EVEN MORE PSYCHOLOGY Covered more things for my next course: “Attachment, Love & Social Dynamics” John Bowlby’s Attachment Theory Internal Working Model (IWM) Adult Attachment Styles (Secure vs. Insecure) (Look at the image) Sternberg’s Triangular Theory of Love Social Exchange Theory (SET) Read the notes!: https://github.com/Cassetu/Novara/blob/master/journal/relationship/notesTheScienceOfRelationships.md#attachment-love--social-dynamics Timelapse: https://lapse.hackclub.com/timelapse/PppFJPZGUgEp https://lapse.hackclub.com/timelapse/YqlfYCCx08j7"}, {"post_id": 46561, "ts": "2026-08-13T21:40:14Z", "hours": 2.5925, "text": "v1.04.72 More psychology hooray Covered more things for my next course: “Stage Models & Communication” Knapp’s Relationship Model Social Penetration Theory Evolutionary Explanation for Physical Attractiveness Johari Window Uncertainty Reduction Theory (URT) Read the notes!: https://github.com/Cassetu/Novara/blob/master/journal/relationship/notesTheScienceOfRelationships.md#stage-models--communication Timelapse: https://lapse.hackclub.com/timelapse/1LwshB7x8AEr https://lapse.hackclub.com/timelapse/ir_E9ROtKHUr I can actually use nice formatting without getting ai accusations cuz i got timelapses lol"}, {"post_id": 45862, "ts": "2026-08-12T16:18:00Z", "hours": 1.5094, "text": "v1.04.69 Yes, i really am studying “The Science of Relationships” to create a curriculum on it. I researched on the Halo Effect, Mere Exposure Effect, Propinquity Effect, and Social Exchange Theory. These are for the first course in the curriculum: Human Attraction & Opportunity. Read the notes: https://github.com/Cassetu/Novara/blob/master/journal/relationship/notesTheScienceOfRelationships.md And Timelapse: https://lapse.hackclub.com/timelapse/cPdZpEF6u5YJ"}, {"post_id": 44035, "ts": "2026-08-09T15:21:36Z", "hours": 3.5253, "text": "v1.04.66 to v1.04.67 | 8-8-26 Moved the return button, description link, and progress bar into the syllabus sidebar instead of a separate meta block up top. Added a course description modal you can open from the sidebar. Reworked the syllabus layout to fill the viewport height properly, cleaned up border and shadow inconsistencies, and shrunk the details modal width. v1.04.65 | 8-8-26 Big CSS pass across course.css , landing.css , and style.css . Reworked the syllabus sidebar to include a course title, progress bar, and a dedicated test button styled with the accent color. v1.04.63 to v1.04.64 | 8-8-26 Removed the old Godot scene renderer, its CSS, and the leftover import in course.js . Not used anymore. (It was made with ai help) v1.04.62 | 8-7-26 Added a line to the landing page footer noting no generative AI was used in building the site. (just need to remove the last ai curriculum.) v1.04.61 | 8-6-26 Cleaned up mainpage CSS spacing and rewrote the landing copy. Turned the trust badge area into a short blurb on why Novara exists, moved the Hackatime badge inline with the time spent text, and added a dedicated trust button linking to the privacy page. Thanks for reading this! Have a good day yall!"}, {"post_id": 42986, "ts": "2026-08-08T00:16:05Z", "hours": 4.3114, "text": "v1.04.56 to v1.04.60 | 8-6-26 Rebuilt the public course catalog page and gave the about page its own CSS file instead of riding on landing styles, plus a new brand lockup (logo + NOVARA wordmark) in the nav headers across pages. Added a goals section to the about page. Added a “don’t trust us, go check yourself” section and a profit disclaimer to the privacy policy. Swapped “we” language for “I” across the README and privacy policy since it’s a solo project and someone got confused. Small homepage copy tweak too, swapped the trust blurb for a direction to the privacy policy and added a “Time Spent” label above the hackatime badge. v1.04.44 to v1.04.55 | 8-5-26 Kept moving inline styles into real CSS classes across course.js (loading states, lesson complete screens, onboarding highlight, dialogue boxes, 404 page). Pulled the privacy policy’s inline style block out into its own privacy.css file. Rebuilt the homepage hero into a two column layout with trust info on one side and quick action buttons on the other, replacing the old split image hero. Changed the footer message, revised the README copy, swapped a few README screenshots, and bumped the hackatime badge color. Now that the inline is gone, it will be easier to adjust the ui. v1.04.36 to v1.04.43 | 8-4-26 Kept clearing inline CSS out of course.js , this round hitting the explorer cards, syllabus sidebar, section buttons, and the course details modal. Added a null check so progress calculation doesn’t break when a course file is missing. Fixed a syntax typo (stray brace) in the syllabus section click handler. Removed the old Godot core AI generated course from the catalog. Added a small watermark comment to files generated by the theme tool, and created a dialog-btn-container class to clean up some remaining inline button styling. I also figured out how to sign my commits using a SHA encryption service so every commit will say “Verified”"}, {"post_id": 41050, "ts": "2026-08-05T00:21:07Z", "hours": 1.8708, "text": "I’ve been testing out some different ui’s, since yall keep saying mine is AI, which I’ll have you know, is not, its called modern. (i have screenshot of testing out an like windows 98 kinda retro ish ui idk what its called.) I do want to know this though, What does a NOT AI ui look like? If my project looks like AI, people will not be keen to trusting my courses, much less learning about them. If you have any ideas, PLEASE WRITE A COMMENT!! :D (Also on progress with Novara: v1.04.29, fix for course.js v1.04.30, adjust length for the standard practice since if you only do one lesson, and then try to do the practice, you’ll answer 30 questions about that one lesson, mostly repeating the same questions. v1.04.31, new mastery icon cuz i forgot to do it earlier v1.04.32, better cover progress with padlock v1.04.33, remove bonus questions, since they kinda fit weirdly and dont really help even if the science is behind it v1.04.33, give Mayor Bob more character cuz he sounds like a robot. v1.04.34, move style.css into css/style.css v1.04.35, new layout for lessons and sections view.)"}, {"post_id": 39205, "ts": "2026-08-02T00:29:05Z", "hours": 4.7878, "text": "v1.04.27 to v1.04.28 | 8-1-26 Merged the practice hub into one combined view across all enrolled curriculums instead of a separate card per course, so standard and survival practice now pull questions from everything you’re enrolled in at once. Added a countdown banner showing when paced mode lessons renew, and cleaned up the settings label wording twice. (cuz i didn’t like how it sounded) v1.04.24 to v1.04.26 | 8-1-26 Paced mode is now fully wired in. Lessons lock until you reach the current day’s target, missing a day triggers a review quiz scaled to how long you were gone, and every 7 completed lessons triggers a module exam gate (80% to pass, locks further progress until you clear it). Also fixed the dialogue box to support multiline text properly and fixed the onboarding highlight so it targets dropdown menus correctly instead of the wrong element. (check image to see how it failed lol) v1.04.19 to v1.04.23 | 8-1-26 Added the paced mode toggle itself (1 lesson a day). Onboarding got swapped from static tooltip cards over to the new dialogue box system, then the dialogue box was made to type itself out letter by letter instead of dumping all the text at once. Along the way: fixed onboarding skipping missing elements, handled rapid clicking through steps, fixed a broken const reference, and fixed reset behavior when onboarding reopens. v1.04.17 to v1.04.18 | 7-31-26 Deleted a pile of AI-generated lesson bundles that were just cluttering the catalog (architecture, conlang-mythology, html-mastery), keeping only a couple test lessons around. Added question pooling so a lesson can define a questionCount and pull a random shuffled slice instead of showing every question every time. v1.04.14 to v1.04.16 | 7-30-26 Rebuilt the about page into proper sectioned content instead of one big hero block, swapped in a new header image, fixed a dumb black border bug on the landing page from a leftover CSS class, and moved the difficulty badge over next to the details button. If you read all this, consider reposting so I can get more attention, thanks!! :D"}, {"post_id": 37956, "ts": "2026-07-31T00:31:16Z", "hours": 4.8406, "text": "v1.04.11 to v1.04.13 | 7-29-26 New course card layout with a proper title/kicker header block and reworked filter buttons, ditching the old boxed style for underline tabs cuz its more dense. Added an orange accent color filled progress bar for anything not enrolled yet. Added a dev time badge to the hero using Hackatime in the main thing. Ripped out the entire theme system, one look only now cuz its better. v1.04.09 to v1.04.10 | 7-29-26 Full hero section overhaul. New copy, new photo instead of the old doorway SVG, new grid layout instead of flexbox, added a soft noise texture to the landing background. (tryina copy like concrete) Fixed a wrong journal link pointing at the wrong repo path. v1.04.06 to v1.04.08 | 7-29-26 Pulled a markdown course entry out of the catalog for good, both the JSON data and the catalog listing. (its not good) Small dropdown structure fix in the topbar CSS. v1.04.04 to v1.04.05 | 7-29-26 Added a course details overlay with author, published/updated dates, and sources. Fixed a typo where the close button ID didn’t match, so the overlay wouldn’t close. (SLOPPY CODDEE FREE MEE FROM ITT AAAAAA) v1.04.03 | 7-29-26 Added URL routing for logged out users. Course catalog and sign in views now update the URL with pushState and respond correctly on refresh, instead of only working for logged in users. Same stuf. v1.03.98 to v1.04.02 | 7-28-26 Reorganized assets into an img subfolder and added minibit sprites. Built a reusable dialogue box component with a typewriter-style next button flow, wired it into the landing page as a mayor NPC introduction, then cleaned up its sizing and added a completion message. Updated INFO.txt to match the actual lesson type naming convention and added entries for architectureSim and cookingSim . Looking for coding profesionalls to help build a curriculum, email me or create an issue on my github!"}, {"post_id": 36128, "ts": "2026-07-28T00:34:46Z", "hours": 7.4111, "text": "Novara Devlog: Architecture Sim Notice, the sim is very sloppy and is most definetly gonna be subject to more additions later. v1.03.97 | 7-25-26 Reworked drawDimension so tick marks always offset perpendicular to the wall, instead of one shared calc for both axes. Room labels now use two separate font scales instead of one. (definetly subject to change) Started tracking a global bounding box so each room draws its own outer footprint dimensions, not just per wall. v1.03.96 | 7-9-26 Added a Rectangle tool (R key) next to the draw tool, so you can drag out four walls at once. Split drawMeasuredLine into drawWall (just the line) and drawDimension (offset line, ticks, label). Added a live HUD showing length and angle in draw mode, or width and height in rect mode, while dragging. v1.03.95 | 7-8-26 Built a real toolbar with pen and eraser buttons with my new assets. Eraser uses point to line distance to find and remove walls. Added a confirm modal before doing the full clearing canvas, and replaced the old gradient fade label background with a plain rect. v1.03.90 to v1.03.94 | 7-7-26 Rewrote room detection as extractRooms using a proper planar graph traversal: build an adjacency list, sort each node’s neighbors by angle, then walk faces with the right hand rule to pull out every enclosed room as its own polygon. This finally supports multiple separate rooms on one canvas. Also fixed a null vs empty array bug, scaled room labels by area, reorganized brand assets, and added eraser, house, and trash icons. (from: https://game-icons.net ) v1.03.87 to v1.03.89 | 7-5-26 First pass at room detection using an adjacency graph, assuming a single closed loop. Fixed several bugs in the adjacency keys and neighbor tracking, added shoelace formula area calculation, and split wall segments at T-intersections so room boundaries follow them correctly. (everything boils down to math and calculations) v1.03.84 to v1.03.86 | 7-3-26 to 7-4-26 Pulled measurement drawing into its own function so every wall, not just the active drag, shows its length. (very crucial) Bumped the grid scale for easier snapping and more detail when i later add features such as chairs and tables that you can drag in. Added a gradient fade behind dimension labels, then small tick marks at each wall end. (visual aids) v1.03.82 to v1.03.83 | 7-1-26 to 7-2-26 Wired the sim into the real course system. added a lesson entry so i can properly test it now, imported the renderer into course.js , and fixed leftover syntax typos. (my work has been a bit sloppy recently) Built the actual studio layout with a brief panel and drafting canvas, then added the mouse listeners for drawing walls, with Shift locking to cardinal directions for more percise drawing. v1.03.79 to v1.03.81 | 6-30-26 Scaffolded the drafting canvas: pixels to feet scale, snap to grid, and the first working render loop with simple grid and stuf. Fixed a small topbar CSS bug where button heights jumped on hover. If you read all this, thanks :D"}, {"post_id": 17391, "ts": "2026-06-28T04:45:21Z", "hours": 1.51, "text": "v1.03.78 | 6-27-26 Refactored how navigation flows when a user enters an active lesson block. Previously, I had the topbar fade down to opacity: 0.5 via a body class state, and a separate, clunky #lesson-back-btn floating fixed at the top-left of the viewport. It wasn’t great, and I thought i could do way better. So instead i cleaned it up, removed the fade, and pretty much “hijacked” the main elements. The standard topbar elements were set to display:none; with the user profile button getting set to half opacity and non-clickable. changed existing #nav-explorer slot by transforming its text to ← Return and changing its weight. also changed the if (!confirm()) basic alert for my better error alert box. duplicated the old alert box and made another for this one, fit with a cancel button and all. The main obstacle was handling the application’s default click-routing initialization handlers. Simply changing the .onclick property didn’t work because hidden layout listeners attached via .addEventListener() were catching the event bubbles and dumping the user back to the main curriculum selector immediately anyway. (because remember were hijacking the explore btn) Fixed it by utilizing Event Capturing: topNavBtn.addEventListener(\"click\", window.activeTopbarGate, true); by passing true, the browser catches the user’s click at the absolute top of the DOM tree before the default routers can see it. Inside the wrapper, i ran e.stopPropagation() to stalls the execution chain while the custom gate logic processes. standard browser alerts freeze javascript synchronously, but custom DOM boxes are asynchronous so a normal return gate wouldn’t cut it. i solved it by wrapping all my navigation cleanup loops inside a functional callback and passing it straight into the dialog box. hit OK, the callback fires and drops you out of the lesson; hit cancel, it just clears the overlay div out of the DOM tree so you can keep working. its like weaving a thread in a spiderweb (T - T) also wut u guys feel about the better formatting lemme know, i don’t want it to sound like i just copy pasted chatgpt but i want to explain it better so im a bit conflicted"}, {"post_id": 12602, "ts": "2026-06-20T16:18:52Z", "hours": 1.6108, "text": "v1.03.65 | 6-20-26 Refactored URL routing logic so it sits in one function routeFromURL making it easier to reuse. Before I just had the code duplicated in two places as a quick implementation, and also the back/forward buttons didn’t do anything because there wasn’t a popstate listener yet. Now i have window.addEventListener(\"popstate\", routeFromURL) to fix that issue. Added a Privacy Policy page matching the Journal Layout, now users can trust Novara (little more than before at least) to keep their information safe when they sign in. Started a test cooking curriculum, using the cookingSim and HeatControl additions. Also added an Abstract0, Abstract1, Abstract2 assets to be used later. Abstract2 already implemented into an 404 page and the practice panel when the user isn’t enrolled in any curriculums. fetchCourseData now wraps its fetch in a try/catch and calls show404() on failure."}, {"post_id": 10280, "ts": "2026-06-16T22:26:00Z", "hours": 2.0617, "text": "v1.03.55 | 6-16-26 I added a new lesson type, “cookingSim”, it currently only has one simulation “heatControl”. Its a simple minigame for monitoring heat. Later I will have several cooking simulations, and use them in a cooking curriculum. The reason for creating special simulations, is because cooking is a visual and hands on thing, you can’t learn to cook by simply reading and answering questions about it. I’m also working on wiring together a way for the url to reflect the current view, that way you can bookmark specific courses or share specific curriculums. The main focus of it is: history.pushState() and window.addEventListener(\"popstate\") . Another important part is this: const params = new URLSearchParams(window.location.search); const view = params.get(“view”); const id = params.get(“id”); so on page load, you can get the right viewport, eg: ?view=syllabus&id=js-course , would show \"syllabus\" and \"js-course\". Since its on page load the code is primarly residing in window.firebaseAuth.onAuthStateChanged since that part automatically signs in the user and skips over the authentication and homepage process if the user has signed in before."}, {"post_id": 8237, "ts": "2026-06-13T18:17:39Z", "hours": 2.1694, "text": "Added a custom theme tool, automatically generates the code so users can easily build a unique & polished ui. Easy access in topbar for signed in users and non-signed in users. Test it out here: https://cassetu.github.io/Novara/html/themeTool.html (STOP CONSOLTING AI FOR THEMES: Too generic Awful “Extreme Glassy Gloss” style Always weirdly rounded corners )"}, {"post_id": 7187, "ts": "2026-06-12T00:15:17Z", "hours": 0.3694, "text": "fixed some bugs as the focus for today (v1.03.37) error overlays were stacking in the DOM, so i made a showError() function instead of copy pasting the same code everywhere also fixed activeCourseRef being stale after practice sessions, was sending users to the wrong place"}, {"post_id": 6562, "ts": "2026-06-11T00:48:52Z", "hours": 1.0597, "text": "Onboarding, 4 cards, teaches user to enroll in curriculums, and navigate the topbar"}, {"post_id": 5754, "ts": "2026-06-09T17:33:47Z", "hours": 0.5056, "text": "Added README.md (And related images) https://github.com/Cassetu/Novara/blob/master/README.md"}, {"post_id": 5716, "ts": "2026-06-09T16:44:04Z", "hours": 0.7136, "text": "Novara is actually a project of mine that I’ve been working on for a while. (Since May 6th) I just got back into it and added an inline alert box, since the native alert box is shown to be less intuitive and more hostile to users. Most Devlogs here will be some form of iteration of my onsite Journal, but more in depth, and more focused."}]...
|
Title: Novara - Learning Website by @Cassetu | Sta Title: Novara - Learning Website by @Cassetu | Stardance
Devlogs:
Novara is actually a project of mine that I’ve been working on for a while. (Since May 6th) I just got back into it and added an inline alert box, since the native alert box is shown to be less intuitive and more hostile to users. Most Devlogs here will be some form of iteration of my onsite Journal, but more in depth, and more focused.
Added README.md (And related images) https://github.com/Cassetu/Novara/blob/master/README.md
Onboarding, 4 cards, teaches user to enroll in curriculums, and navigate the topbar
fixed some bugs as the focus for today (v1.03.37) error overlays were stacking in the DOM, so i made a showError() function instead of copy pasting the same code everywhere also fixed activeCourseRef being stale after practice sessions, was sending users to the wrong place
Added a custom theme tool, automatically generates the code so users can easily build a unique & polished ui. Easy access in topbar for signed in users and non-signed in users. Test it out here: https://cassetu.github.io/Novara/html/themeTool.html (STOP CONSOLTING AI FOR THEMES: Too generic Awful “Extreme Glassy Gloss” style Always weirdly rounded corners )
v1.03.55 | 6-16-26 I added a new lesson type, “cookingSim”, it currently only has one simulation “heatControl”. Its a simple minigame for monitoring heat. Later I will have several cooking simulations, and use them in a cooking curriculum. The reason for creating special simulations, is because cooking is a visual and hands on thing, you can’t learn to cook by simply reading and answering questions about it. I’m also working on wiring together a way for the url to reflect the current view, that way you can bookmark specific courses or share specific curriculums. The main focus of it is: history.pushState() and window.addEventListener("popstate") . Another important part is this: const params = new URLSearchParams(window.location.search); const view = params.get(“view”); const id = params.get(“id”); so on page load, you can get the right viewport, eg: ?view=syllabus&id=js-course , would show "syllabus" and "js-course". Since its on page load the code is primarly residing in window.firebaseAuth.onAuthStateChanged since that part automatically signs in the user and skips over the authentication and homepage process if the user has signed in before.
v1.03.65 | 6-20-26 Refactored URL routing logic so it sits in one function routeFromURL making it easier to reuse. Before I just had the code duplicated in two places as a quick implementation, and also the back/forward buttons didn’t do anything because there wasn’t a popstate listener yet. Now i have window.addEventListener("popstate", routeFromURL) to fix that issue. Added a Privacy Policy page matching the Journal Layout, now users can trust Novara (little more than before at least) to keep their information safe when they sign in. Started a test cooking curriculum, using the cookingSim and HeatControl additions. Also added an Abstract0, Abstract1, Abstract2 assets to be used later. Abstract2 already implemented into an 404 page and the practice panel when the user isn’t enrolled in any curriculums. fetchCourseData now wraps its fetch in a try/catch and calls show404() on failure.
v1.03.78 | 6-27-26 Refactored how navigation flows when a user enters an active lesson block. Previously, I had the topbar fade down to opacity: 0.5 via a body class state, and a separate, clunky #lesson-back-btn floating fixed at the top-left of the viewport. It wasn’t great, and I thought i could do way better. So instead i cleaned it up, removed the fade, and pretty much “hijacked” the main elements. The standard topbar elements were set to display:none; with the user profile button getting set to half opacity and non-clickable. changed existing #nav-explorer slot by transforming its text to ← Return and changing its weight. also changed the if (!confirm()) basic alert for my better error alert box. duplicated the old alert box and made another for this one, fit with a cancel button and all. The main obstacle was handling the application’s default click-routing initialization handlers. Simply changing the .onclick property didn’t work because hidden layout listeners attached via .addEventListener() were catching the event bubbles and dumping the user back to the main curriculum selector immediately anyway. (because remember were hijacking the explore btn) Fixed it by utilizing Event Capturing: topNavBtn.addEventListener("click", window.activeTopbarGate, true); by passing true, the browser catches the user’s click at the absolute top of the DOM tree before the default routers can see it. Inside the wrapper, i ran e.stopPropagation() to stalls the execution chain while the custom gate logic processes. standard browser alerts freeze javascript synchronously, but custom DOM boxes are asynchronous so a normal return gate wouldn’t cut it. i solved it by wrapping all my navigation cleanup loops inside a functional callback and passing it straight into the dialog box. hit OK, the callback fires and drops you out of the lesson; hit cancel, it just clears the overlay div out of the DOM tree so you can keep working. its like weaving a thread in a spiderweb (T - T) also wut u guys feel about the better formatting lemme know, i don’t want it to sound like i just copy pasted chatgpt but i want to explain it better so im a bit conflicted
Novara Devlog: Architecture Sim Notice, the sim is very sloppy and is most definetly gonna be subject to more additions later. v1.03.97 | 7-25-26 Reworked drawDimension so tick marks always offset perpendicular to the wall, instead of one shared calc for both axes. Room labels now use two separate font scales instead of one. (definetly subject to change) Started tracking a global bounding box so each room draws its own outer footprint dimensions, not just per wall. v1.03.96 | 7-9-26 Added a Rectangle tool (R key) next to the draw tool, so you can drag out four walls at once. Split drawMeasuredLine into drawWall (just the line) and drawDimension (offset line, ticks, label). Added a live HUD showing length and angle in draw mode, or width and height in rect mode, while dragging. v1.03.95 | 7-8-26 Built a real toolbar with pen and eraser buttons with my new assets. Eraser uses point to line distance to find and remove walls. Added a confirm modal before doing the full clearing canvas, and replaced the old gradient fade label background with a plain rect. v1.03.90 to v1.03.94 | 7-7-26 Rewrote room detection as extractRooms using a proper planar graph traversal: build an adjacency list, sort each node’s neighbors by angle, then walk faces with the right hand rule to pull out every enclosed room as its own polygon. This finally supports multiple separate rooms on one canvas. Also fixed a null vs empty array bug, scaled room labels by area, reorganized brand assets, and added eraser, house, and trash icons. (from: https://game-icons.net ) v1.03.87 to v1.03.89 | 7-5-26 First pass at room detection using an adjacency graph, assuming a single closed loop. Fixed several bugs in the adjacency keys and neighbor tracking, added shoelace formula area calculation, and split wall segments at T-intersections so room boundaries follow them correctly. (everything boils down to math and calculations) v1.03.84 to v1.03.86 | 7-3-26 to 7-4-26 Pulled measurement drawing into its own function so every wall, not just the active drag, shows its length. (very crucial) Bumped the grid scale for easier snapping and more detail when i later add features such as chairs and tables that you can drag in. Added a gradient fade behind dimension labels, then small tick marks at each wall end. (visual aids) v1.03.82 to v1.03.83 | 7-1-26 to 7-2-26 Wired the sim into the real course system. added a lesson entry so i can properly test it now, imported the renderer into course.js , and fixed leftover syntax typos. (my work has been a bit sloppy recently) Built the actual studio layout with a brief panel and drafting canvas, then added the mouse listeners for drawing walls, with Shift locking to cardinal directions for more percise drawing. v1.03.79 to v1.03.81 | 6-30-26 Scaffolded the drafting canvas: pixels to feet scale, snap to grid, and the first working render loop with simple grid and stuf. Fixed a small topbar CSS bug where button heights jumped on hover. If you read all this, thanks :D
v1.04.11 to v1.04.13 | 7-29-26 New course card layout with a proper title/kicker header block and reworked filter buttons, ditching the old boxed style for underline tabs cuz its more dense. Added an orange accent color filled progress bar for anything not enrolled yet. Added a dev time badge to the hero using Hackatime in the main thing. Ripped out the entire theme system, one look only now cuz its better. v1.04.09 to v1.04.10 | 7-29-26 Full hero section overhaul. New copy, new photo instead of the old doorway SVG, new grid layout instead of flexbox, added a soft noise texture to the landing background. (tryina copy like concrete) Fixed a wrong journal link pointing at the wrong repo path. v1.04.06 to v1.04.08 | 7-29-26 Pulled a markdown course entry out of the catalog for good, both the JSON data and the catalog listing. (its not good) Small dropdown structure fix in the topbar CSS. v1.04.04 to v1.04.05 | 7-29-26 Added a course details overlay with author, published/updated dates, and sources. Fixed a typo where the close button ID didn’t match, so the overlay wouldn’t close. (SLOPPY CODDEE FREE MEE FROM ITT AAAAAA) v1.04.03 | 7-29-26 Added URL routing for logged out users. Course catalog and sign in views now update the URL with pushState and respond correctly on refresh, instead of only working for logged in users. Same stuf. v1.03.98 to v1.04.02 | 7-28-26 Reorganized assets into an img subfolder and added minibit sprites. Built a reusable dialogue box component with a typewriter-style next button flow, wired it into the landing page as a mayor NPC introduction, then cleaned up its sizing and added a completion message. Updated INFO.txt to match the actual lesson type naming convention and added entries for architectureSim and cookingSim . Looking for coding profesionalls to help build a curriculum, email me or create an issue on my github!
v1.04.27 to v1.04.28 | 8-1-26 Merged the practice hub into one combined view across all enrolled curriculums instead of a separate card per course, so standard and survival practice now pull questions from everything you’re enrolled in at once. Added a countdown banner showing when paced mode lessons renew, and cleaned up the settings label wording twice. (cuz i didn’t like how it sounded) v1.04.24 to v1.04.26 | 8-1-26 Paced mode is now fully wired in. Lessons lock until you reach the current day’s target, missing a day triggers a review quiz scaled to how long you were gone, and every 7 completed lessons triggers a module exam gate (80% to pass, locks further progress until you clear it). Also fixed the dialogue box to support multiline text properly and fixed the onboarding highlight so it targets dropdown menus correctly instead of the wrong element. (check image to see how it failed lol) v1.04.19 to v1.04.23 | 8-1-26 Added the paced mode toggle itself (1 lesson a day). Onboarding got swapped from static tooltip cards over to the new dialogue box system, then the dialogue box was made to type itself out letter by letter instead of dumping all the text at once. Along the way: fixed onboarding skipping missing elements, handled rapid clicking through steps, fixed a broken const reference, and fixed reset behavior when onboarding reopens. v1.04.17 to v1.04.18 | 7-31-26 Deleted a pile of AI-generated lesson bundles that were just cluttering the catalog (architecture, conlang-mythology, html-mastery), keeping only a couple test lessons around. Added question pooling so a lesson can define a questionCount and pull a random shuffled slice instead of showing every question every time. v1.04.14 to v1.04.16 | 7-30-26 Rebuilt the about page into proper sectioned content instead of one big hero block, swapped in a new header image, fixed a dumb black border bug on the landing page from a leftover CSS class, and moved the difficulty badge over next to the details button. If you read all this, consider reposting so I can get more attention, thanks!! :D
I’ve been testing out some different ui’s, since yall keep saying mine is AI, which I’ll have you know, is not, its called modern. (i have screenshot of testing out an like windows 98 kinda retro ish ui idk what its called.) I do want to know this though, What does a NOT AI ui look like? If my project looks like AI, people will not be keen to trusting my courses, much less learning about them. If you have any ideas, PLEASE WRITE A COMMENT!! :D (Also on progress with Novara: v1.04.29, fix for course.js v1.04.30, adjust length for the standard practice since if you only do one lesson, and then try to do the practice, you’ll answer 30 questions about that one lesson, mostly repeating the same questions. v1.04.31, new mastery icon cuz i forgot to do it earlier v1.04.32, better cover progress with padlock v1.04.33, remove bonus questions, since they kinda fit weirdly and dont really help even if the science is behind it v1.04.33, give Mayor Bob more character cuz he sounds like a robot. v1.04.34, move style.css into css/style.css v1.04.35, new layout for lessons and sections view.)
v1.04.56 to v1.04.60 | 8-6-26 Rebuilt the public course catalog page and gave the about page its own CSS file instead of riding on landing styles, plus a new brand lockup (logo + NOVARA wordmark) in the nav headers across pages. Added a goals section to the about page. Added a “don’t trust us, go check yourself” section and a profit disclaimer to the privacy policy. Swapped “we” language for “I” across the README and privacy policy since it’s a solo project and someone got confused. Small homepage copy tweak too, swapped the trust blurb for a direction to the privacy policy and added a “Time Spent” label above the hackatime badge. v1.04.44 to v1.04.55 | 8-5-26 Kept moving inline styles into real CSS classes across course.js (loading states, lesson complete screens, onboarding highlight, dialogue boxes, 404 page). Pulled the privacy policy’s inline style block out into its own privacy.css file. Rebuilt the homepage hero into a two column layout with trust info on one side and quick action buttons on the other, replacing the old split image hero. Changed the footer message, revised the README copy, swapped a few README screenshots, and bumped the hackatime badge color. Now that the inline is gone, it will be easier to adjust the ui. v1.04.36 to v1.04.43 | 8-4-26 Kept clearing inline CSS out of course.js , this round hitting the explorer cards, syllabus sidebar, section buttons, and the course details modal. Added a null check so progress calculation doesn’t break when a course file is missing. Fixed a syntax typo (stray brace) in the syllabus section click handler. Removed the old Godot core AI generated course from the catalog. Added a small watermark comment to files generated by the theme tool, and created a dialog-btn-container class to clean up some remaining inline button styling. I also figured out how to sign my commits using a SHA encryption service so every commit will say “Verified”
v1.04.66 to v1.04.67 | 8-8-26 Moved the return button, description link, and progress bar into the syllabus sidebar instead of a separate meta block up top. Added a course description modal you can open from the sidebar. Reworked the syllabus layout to fill the viewport height properly, cleaned up border and shadow inconsistencies, and shrunk the details modal width. v1.04.65 | 8-8-26 Big CSS pass across course.css , landing.css , and style.css . Reworked the syllabus sidebar to include a course title, progress bar, and a dedicated test button styled with the accent color. v1.04.63 to v1.04.64 | 8-8-26 Removed the old Godot scene renderer, its CSS, and the leftover import in course.js . Not used anymore. (It was made with ai help) v1.04.62 | 8-7-26 Added a line to the landing page footer noting no generative AI was used in building the site. (just need to remove the last ai curriculum.) v1.04.61 | 8-6-26 Cleaned up mainpage CSS spacing and rewrote the landing copy. Turned the trust badge area into a short blurb on why Novara exists, moved the Hackatime badge inline with the time spent text, and added a dedicated trust button linking to the privacy page. Thanks for reading this! Have a good day yall!
v1.04.69 Yes, i really am studying “The Science of Relationships” to create a curriculum on it. I researched on the Halo Effect, Mere Exposure Effect, Propinquity Effect, and Social Exchange Theory. These are for the first course in the curriculum: Human Attraction & Opportunity. Read the notes: https://github.com/Cassetu/Novara/blob/master/journal/relationship/notesTheScienceOfRelationships.md And Timelapse: https://lapse.hackclub.com/timelapse/cPdZpEF6u5YJ
v1.04.72 More psychology hooray Covered more things for my next course: “Stage Models & Communication” Knapp’s Relationship Model Social Penetration Theory Evolutionary Explanation for Physical Attractiveness Johari Window Uncertainty Reduction Theory (URT) Read the notes!: https://github.com/Cassetu/Novara/blob/master/journal/relationship/notesTheScienceOfRelationships.md#stage-models--communication Timelapse: https://lapse.hackclub.com/timelapse/1LwshB7x8AEr https://lapse.hackclub.com/timelapse/ir_E9ROtKHUr I can actually use nice formatting without getting ai accusations cuz i got timelapses lol
v1.04.74 EVEN MORE PSYCHOLOGY Covered more things for my next course: “Attachment, Love & Social Dynamics” John Bowlby’s Attachment Theory Internal Working Model (IWM) Adult Attachment Styles (Secure vs. Insecure) (Look at the image) Sternberg’s Triangular Theory of Love Social Exchange Theory (SET) Read the notes!: https://github.com/Cassetu/Novara/blob/master/journal/relationship/notesTheScienceOfRelationships.md#attachment-love--social-dynamics Timelapse: https://lapse.hackclub.com/timelapse/PppFJPZGUgEp https://lapse.hackclub.com/timelapse/YqlfYCCx08j7
v1.04.76 Taking a break from psychology notes to do some coding again. began working on a curriculum tool so educators can easily build em without having to work through the complicated json structure. its a bit hard since i want to export a zip, and im not entirely sure how that would work, and also i need to double check how my course.js processes the json so i can get exactly all the information to put into it. ai detector thing. examines github repositories and find all comments and flags exessive amounts, or exessive explanations in them (classic ai fingerprints) as well as flagging verbose function names and shows the time it would take to make the project at 70 wpm and detects inconsistencies in commit times (eg 1000 new code typed after 2 minutes of another commit that would be flagged) then gives a % of confidence. 0-30% is prob human, 30-50% is mixed unsure, 50-100% is definetly full ai. Before you accuse someone, make sure to do througouh like questioning and interviews and such because this tool is imperfect. This way i can easily identify projects that have disgenuine work and report them to stardance to take care of. ( https://cassetu.github.io/Novara/html/aisubTool.html ) I got gemini to help reformat the code since it was a bit of a mess, dw i had a full disclaimer. (ai vibe coders take notes.) It was a big challenge getting the github token to work, but it functions now and doesn’t steal your information!! :D also i ran my own project through it once, it was clear, and then i ran it again after commiting it, and now it thinks my project is ai, because the code scans for these specific traces, that are present in the code itself, meaning that if it scans itself, it will find everything its looking for. T - T (false positive in the first image) leave a comment to help! thx!
v1.04.91 Celebrating my 250th commit!! :D fully deleted the curriculum tool since its frustrating and too hard rn and i’m going to do it later after i do my data refactor removed the ai detector thing, the link still works for now, but I don’t think i want to use it because its too unreliable, and is too much of a project in its own right than a small tool I’m doing a major refactor of my data structure. Previously, my curriculum information all sat in one MASSIVE json. but now i have a complex folder network. Each curriculum will have an index.json file, so the catalog.json routes to the index.json that leads into the courses, then to the sections, and down to the individual lessons. Its kinda like a phonebook… i think. Every lesson will be its own json with its own list of “blocks” that are pieces that i can take apart or put together to make lessons unique! Kinda like its own mini programming language lol. Currently the site is unusable since the course.js isn’t fully complete to understand the new data structure. :P
v1.04.98 Site is still unusable currently *Continuing the data refactoring, I fixed some of the references in openSyllabus. I also completly removed the faulty references to isBundle() , i accidentaly messed up the case of loadIndex to LoadIndex but luckily a simple glance at the console pinpointed it for me :D (Thank god for descriptive error messages) Added the hackatime lapse links to the notes (since i want to use nice formatting without ai accusations i lowkey need to do that) Started doing notes on “The Science of Logical Reasoning specifically for: Jerome Bruner Theory of Cognitive Development.” Its for building good curriculums and proper teaching, they have this cool thing called a “spiral curriculum” that you should search up. (I’m also trying out a recording timelapse system, that should be better than lapse since lapse only takes like a picture every minute and stiches it together, this takes a picture every second and then compresses it) the video is only of v1.04.97 -> v1.04.98 editing portion Thanks for your support! :D
v1.05.26 Site is still somewhat unusable currently Changes: fixed getAllQuestionsForEntry build render functions for all the different block types: renderSubmitBlock , renderMultipleChoiceBLock , etc purged a few bugs yayy moved the workspace thing so it has a new sidebar and is familiar to the course syllabus view. did a whole buncha formatting troubleshooting bought a domain!!!! go to novaraedu.org . which means you can find it on search enginges now (i think)
v1.05.77 Site is becoming more usable!! Changes: Has a working branch vs a master branch, so in progress updates will not effect the current version on the web. made image label block logic cleared old logic for renderers did a whole lot of SEO things fix sw.js with real file paths (not the ancient ones) more styling in css node.js to automatically create html things for web crawlers ( auto-generate-curriculum-pages ) update homepage to look wayyy better fully rebuilt practice/exam system for block-based lessons logical fallicies notes lesson end screen with nature Problems Encountered: Incorrect formatting (always happens when u type fast) Bad css Difficult logic with complicated storage format (e.g., looking through .sections, .lessons, etc) check out the latest build: novaraedu.org
Ships:
Novara v1.03.56 Novara is a free learning website, It has multiple courses with varying lesson types, so information is presented and tested in many ways. Features include: Focused Learning : Enrollment is limited to a maximum of 3 curriculums at a time to encourage focus and prevent overwhelm. Structured Content : Curriculums contain courses, and courses contain modular lessons. Knowledge Checks : Built-in quizzes to test your knowledge at the end of courses. Progress Tracking : Visual indicators to show completed lessons and remaining coursework. The main architecture is designed using HTML, CSS and JS. Designed to be modular, so adding another course/curriculum is easily done by writing one single json data file. AI USAGE DISCLAIMER AI is used in the generation of our courses. We have not yet received assistance from subject-matter experts in developing our curricula. To maintain quality, the AI is guided by strict instructions designed to reduce low-quality content (“slop lessons”) and encourage materials that engage students in critical thinking and active learning. Despite these safeguards, mistakes and errors may still occur. If you find an issue, please report it by emailing: [email protected] (Responses take 3-5 business days). Thank you for helping us improve. README + More Details here: https://github.com/Cassetu/Novara#table-of-contents TRY IT HERE!: https://cassetu.github.io/Novara/index.html (To access full content you must sign in/register)
Novara v1.03.97 Novara is a free learning website, It has multiple courses with varying lesson types, so information is presented and tested in many ways. New Features from Previous Ship include: Architecture Simulation: A new lesson type where the user can design an simple floor plan, complete with an accurate scale, rectangle tool, and eraser. Privacy Policy: Users can understand how their data is stored within Novara, and feel safer using the relativly unknown website. New Lesson Flow: Topbar no longer uses Opacity, and instead has a back button neatly placed at the top instead of the usual navigation buttons. Alerts: Almost all of the alerts have been moved to custom inline boxes to be more user intuitive and welcoming. I think i missed a few somewhere here and there tho. AI USAGE DISCLAIMER AI is used in the generation of our courses. We have not yet received assistance from subject-matter experts in developing our curricula. (I’m working on finding people, hopefully soon) To maintain quality, the AI is guided by strict instructions designed to reduce low-quality content (“slop lessons”) and encourage materials that engage students in critical thinking and active learning. Despite these safeguards, mistakes and errors may still occur. If you find an issue, please report it by emailing: [email protected] (Responses take 3-5 business days). Thank you for helping us improve. README + More Details here: https://github.com/Cassetu/Novara#table-of-contents PRIVACY POLICY: https://cassetu.github.io/Novara/html/privacy.html TRY IT HERE!: https://cassetu.github.io/Novara/index.html (To access full content you must sign in/register)
Novara v1.04.67 Novara is a free learning website, It has multiple courses with varying lesson types, so information is presented and tested in many ways. Our Goal: Build a library of curriculums so users can get the same learning opportunities of school, with more ways to learn than reading and note-taking, and at no cost to the users. (Verbatim from homepage) ##New Features from Previous Ship include: NEW UI: Earlier versions were apparently too “ai” so I created a new version that hopefully doesn’t look like ai. Since if people think that any part of the website is ai, the website in the whole is low quality rubbish, which Novara is NOT and will NOT allow itself to be. Inline css has been replaced with classes and seperate css files. Those css files are soon to be further seperated into smaller css files to make css navigation easier. Enhanced Privacy Policy: Now includes direct links allowing users to do self-study as well as a profit section. New Syllabus Flow: Now uses a sidebar with the section names and # of lessons. Clicking on the section opens up the lesson on the right side workspace. Mayor Bob: THE MASCOT TO GUIDE ALL!! He hopefully has more character. (I feel like hes better now but idk) Paced Mode!!!: Lessons lock until you reach the current day’s target, missing a day triggers a review quiz scaled to how long you were gone, and every 7 completed lessons triggers a module exam gate (80% to pass, locks further progress until you clear it). Because it matches the real school format of teaching, and i feel like the information will be better retained by ppl if its taught over several days instead of all being shoved down ur throught. AI Courses: ALL GONE!! Looking for proffesionals in single subjects to assist in new proper course creation. Ai work will never replace us!! URL Routing: You can share links and bookmark pages and since its all the same html file, it wouldn’t work, but now it does bc we have the “?=###” things that work now. ##Difficulties: Forever the bane of my existence, the typos an missing semicolons or braces. Also working through the css to ensure that the content is structured how i like it. Also did a fix where my previous thing would break if a course file was missing when the catalog json had it listed, now it just skips over it. The bonus question was fiting weirdly so i js removed it entirely. At some point i made the dialogue boxes have the typing animation, but i forgot about new lines and whitespaces also have to be considered in that logic, so at some point the dialogue would just trail off the end of the text box lol, without any spaces or new lines. Css bugs also. I js realized i also forgot to style the scrollbars, but ill work on that later. side note: i figured out how to sign my commits using a SHA encryption service so every commit will say “Verified” (ONLY REMAINS ONE AI COURSE THAT IS NOW PROPERLY ATTRIBUTED IN ITS DETAILS MENU, THE AI DISCLAIMER IS DISCONTINUED) README + More Details here: https://github.com/Cassetu/Novara#table-of-contents PRIVACY POLICY: https://cassetu.github.io/Novara/html/privacy.html TRY IT HERE!: https://cassetu.github.io/Novara/index.html (To access full content you must sign in/register, u can trust Novara, and if you don’t, read the Privacy Policy!)...
|
1793098190.4556634
|
1793184590.4556634
|
|
32108
|
Atlas by @NITHIN | Stardance
|
NITHIN
|
1
|
68.0
|
342
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-12T01:54:29Z", "hours": 68.0, "multiplier": 5.54, "payout": 342, "blessing": "neutral", "text": "Atlas is an interactive visual explorer that turns any GitHub repository into a 3D digital universe. Instead of scrolling through thousands of lines of text files, Atlas lets you explore your codebase like a map visualizing folder structures as glowing skyscrapers, watching functions execute along neon roads in real-time, and using an AI companion to fly you directly to the code you need.", "repo": "https://github.com/Nithinfgs/Atlas", "demo": "https://symphonious-praline-025cbe.netlify.app/"}]...
|
[{"post_id": 26964, "ts": "202 [{"post_id": 26964, "ts": "2026-07-12T01:51:04Z", "hours": 8.0, "text": "Have Pushed all the files project is fully completed With this I am fully finished with my project"}, {"post_id": 26704, "ts": "2026-07-11T17:31:02Z", "hours": 7.0, "text": "Completed two major modules today.Finished gitmachine.js, which contains the Atlas Git Time Machine Scrubber & Replay Morph module.Finished ai.js, which contains the Atlas AI Assistant & Explain Mode panel coordinator, including AI Review and Camera Fly-To functionality.At this point, I have around five source files remaining, along with the README. Based on the remaining work, I’m estimating another 15–20 hours before the project reaches its first complete version.I’ve also pushed the latest changes to GitHub, so the repository is up to date.The remaining work is focused on implementing the final modules, polishing the codebase, writing the documentation, and preparing the project for release."}, {"post_id": 26329, "ts": "2026-07-11T01:58:00Z", "hours": 7.0, "text": "Completed style.css and pushed all styling changes to GitHub. The project’s UI is now largely complete. Overall project completion is approximately 70%, with the remaining work focused on JavaScript functionality, testing, and final deployment."}, {"post_id": 26122, "ts": "2026-07-10T18:39:54Z", "hours": 8.0, "text": "A major portion of the CSS has been finished—I’d say around 40%. I haven’t pushed the changes to GitHub yet, but I’ll do that later today once I’m fully done with style.css.With the completion of style.css, I will have finished index.html, app.js, and style.css, marking a major milestone in the overall project. At that point, the project will be approximately 70% complete."}, {"post_id": 25653, "ts": "2026-07-10T02:05:09Z", "hours": 12.0, "text": "Just wrapped up the app.js file and pushed the latest changes to GitHub. This marks a major milestone in the project, with a significant portion of the core functionality now complete. It’s been a solid learning experience so far, and I’m looking forward to building out the remaining features and polishing the application.On to the next milestone."}, {"post_id": 25171, "ts": "2026-07-09T06:56:32Z", "hours": 9.0, "text": "I have fully completed the index.html file and have already pushed it to GitHub. I’m mostly done with my app.js file and expect to finish it today."}, {"post_id": 24776, "ts": "2026-07-08T15:54:50Z", "hours": 13.0, "text": "Completed the index.html file for the most part and pushed the changes to GitHub. Next, I’ll start working on app.js, and I expect to have it finished by tomorrow."}, {"post_id": 24153, "ts": "2026-07-07T15:11:53Z", "hours": 0.0, "text": "Completed the idea generation and planning phase. I’ve now pushed the complete project file structure to GitHub and added all the initial project files. With the setup in place, I’ve started working on the index.html file and will continue building the core UI from here."}]...
|
Title: Atlas by @NITHIN | Stardance
Devlogs:
Comp Title: Atlas by @NITHIN | Stardance
Devlogs:
Completed the idea generation and planning phase. I’ve now pushed the complete project file structure to GitHub and added all the initial project files. With the setup in place, I’ve started working on the index.html file and will continue building the core UI from here.
Completed the index.html file for the most part and pushed the changes to GitHub. Next, I’ll start working on app.js, and I expect to have it finished by tomorrow.
I have fully completed the index.html file and have already pushed it to GitHub. I’m mostly done with my app.js file and expect to finish it today.
Just wrapped up the app.js file and pushed the latest changes to GitHub. This marks a major milestone in the project, with a significant portion of the core functionality now complete. It’s been a solid learning experience so far, and I’m looking forward to building out the remaining features and polishing the application.On to the next milestone.
A major portion of the CSS has been finished—I’d say around 40%. I haven’t pushed the changes to GitHub yet, but I’ll do that later today once I’m fully done with style.css.With the completion of style.css, I will have finished index.html, app.js, and style.css, marking a major milestone in the overall project. At that point, the project will be approximately 70% complete.
Completed style.css and pushed all styling changes to GitHub. The project’s UI is now largely complete. Overall project completion is approximately 70%, with the remaining work focused on JavaScript functionality, testing, and final deployment.
Completed two major modules today.Finished gitmachine.js, which contains the Atlas Git Time Machine Scrubber & Replay Morph module.Finished ai.js, which contains the Atlas AI Assistant & Explain Mode panel coordinator, including AI Review and Camera Fly-To functionality.At this point, I have around five source files remaining, along with the README. Based on the remaining work, I’m estimating another 15–20 hours before the project reaches its first complete version.I’ve also pushed the latest changes to GitHub, so the repository is up to date.The remaining work is focused on implementing the final modules, polishing the codebase, writing the documentation, and preparing the project for release.
Have Pushed all the files project is fully completed With this I am fully finished with my project
Ships:
Atlas is an interactive visual explorer that turns any GitHub repository into a 3D digital universe. Instead of scrolling through thousands of lines of text files, Atlas lets you explore your codebase like a map visualizing folder structures as glowing skyscrapers, watching functions execute along neon roads in real-time, and using an AI companion to fly you directly to the code you need....
|
1792882118.7040606
|
1793746118.7040606
|
|
37161
|
Mission Control by @NITHIN | Stardance
|
NITHIN
|
1
|
68.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-25T02:31:57Z", "hours": 68.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Mission Control is an immersive, browser-based aerospace simulator that transforms users into Flight Directors supervising real-time orbital missions. Unlike arcade games, this platform bridges the gap between raw physics and user experience, rendering a high-fidelity, dark sci-fi command terminal that looks and feels like a real NASA control room. As Flight Director, you dynamically engineer multi-stage rockets, verify critical pre-launch checklists under shifting meteorological conditions, and map out complex orbital paths—all while monitoring live speed, altitude, and aerodynamic pressure charts driven by realistic Newtonian physics engines. Behind the responsive 3D WebGL canvases and glassmorphism interface lies a highly optimized, folderless architecture built with React and Three.js. To push the boundary of what web applications can do, the simulator is equipped with an integrated AI Flight Assistant that audits your rocket designs, calculates thrust-to-weight ratios (TWR), and diagnoses flight anomalies in real time. By packing complex Keplerian mechanics, interactive 3D rendering, and automated checklists into a sleek, zero-dependency interface, Mission Control proves that advanced orbital engineering can be made accessible, educational, and visually breathtaking.", "repo": "https://github.com/Nithinfgs/-Mission-Control", "demo": "https://thunderous-stardust-d4cc3a.netlify.app/"}]...
|
[{"post_id": 34581, "ts": "202 [{"post_id": 34581, "ts": "2026-07-25T13:03:59Z", "hours": 0.0, "text": "have made the required changes to the read me and have finished"}, {"post_id": 34391, "ts": "2026-07-25T02:26:07Z", "hours": 9.0, "text": "I am fully done with the project you can check the github repo and have added a demo link check it out - https://thunderous-stardust-d4cc3a.netlify.app/"}, {"post_id": 34133, "ts": "2026-07-24T17:10:30Z", "hours": 6.0, "text": "Currently working on my ui/css file ig by next devlog i will finish my project and will be pushing all the files to github and deploy it"}, {"post_id": 33821, "ts": "2026-07-24T01:57:33Z", "hours": 8.0, "text": "done with the jsx. file with this i am done with most of my project the css file json file and config .js is pending will finish that within 20 or so hours"}, {"post_id": 33612, "ts": "2026-07-23T17:45:43Z", "hours": 5.0, "text": "still working on the jsx file by next devlog i will push to github"}, {"post_id": 33275, "ts": "2026-07-23T01:52:06Z", "hours": 9.0, "text": "working on the entry point loigc around 5-6 hours of work is left most probably today or tmr i will push to github"}, {"post_id": 33043, "ts": "2026-07-22T16:31:49Z", "hours": 5.0, "text": "working on ui for the jsx file maybe another 20 or so hours and I will finish"}, {"post_id": 32747, "ts": "2026-07-22T02:55:30Z", "hours": 12.0, "text": "Started working on the jsx file"}, {"post_id": 32310, "ts": "2026-07-21T12:15:30Z", "hours": 4.0, "text": "Done with both the java script files the orbital mechanics including the radius gravity as well as the rocket physics check it out on github have made the push next will work on the JavaScript XML file"}, {"post_id": 31773, "ts": "2026-07-20T12:52:14Z", "hours": 7.0, "text": "working on the java script logic"}]...
|
Title: Mission Control by @NITHIN | Stardance
Dev Title: Mission Control by @NITHIN | Stardance
Devlogs:
working on the java script logic
Done with both the java script files the orbital mechanics including the radius gravity as well as the rocket physics check it out on github have made the push next will work on the JavaScript XML file
Started working on the jsx file
working on ui for the jsx file maybe another 20 or so hours and I will finish
working on the entry point loigc around 5-6 hours of work is left most probably today or tmr i will push to github
still working on the jsx file by next devlog i will push to github
done with the jsx. file with this i am done with most of my project the css file json file and config .js is pending will finish that within 20 or so hours
Currently working on my ui/css file ig by next devlog i will finish my project and will be pushing all the files to github and deploy it
I am fully done with the project you can check the github repo and have added a demo link check it out - https://thunderous-stardust-d4cc3a.netlify.app/
have made the required changes to the read me and have finished
Ships:
Mission Control is an immersive, browser-based aerospace simulator that transforms users into Flight Directors supervising real-time orbital missions. Unlike arcade games, this platform bridges the gap between raw physics and user experience, rendering a high-fidelity, dark sci-fi command terminal that looks and feels like a real NASA control room. As Flight Director, you dynamically engineer multi-stage rockets, verify critical pre-launch checklists under shifting meteorological conditions, and map out complex orbital paths—all while monitoring live speed, altitude, and aerodynamic pressure charts driven by realistic Newtonian physics engines. Behind the responsive 3D WebGL canvases and glassmorphism interface lies a highly optimized, folderless architecture built with React and Three.js. To push the boundary of what web applications can do, the simulator is equipped with an integrated AI Flight Assistant that audits your rocket designs, calculates thrust-to-weight ratios (TWR), and diagnoses flight anomalies in real time. By packing complex Keplerian mechanics, interactive 3D rendering, and automated checklists into a sleek, zero-dependency interface, Mission Control proves that advanced orbital engineering can be made accessible, educational, and visually breathtaking....
|
1792882128.5531192
|
1793746128.5531192
|
|
45209
|
PLANETARIUM LLM BENCHMARK by @MAYANK-MAHAUR | Star PLANETARIUM LLM BENCHMARK by @MAYANK-MAHAUR | Stardance...
|
MAYANK-MAHAUR
|
0
|
68.0
|
0
|
[]
|
[{"post_id": 50095, "ts": "202 [{"post_id": 50095, "ts": "2026-08-19T04:57:18Z", "hours": 10.8547, "text": "Devlog #6 Today I changed the website theme from black to white. added open ai adapter so someone can test the benchmark and llm with their own api key made a clear readme with insturctions on how to run, with other things. organised the codebase so it becomes modular, easy to grasp cleaned up stale code from each file added and connected things to config.yml so every change dont need a deep dive in codebase refactored some python files manually Here is sneak peak of how new dashboard looks like"}, {"post_id": 48236, "ts": "2026-08-16T15:19:15Z", "hours": 8.6778, "text": "Devlog #5 Today i finally evaluated gpt 5.6-sol on the benchmark and found many things that we can change and tweak to improve the benchmark more and its detailed trajectory for research use! after that i cleaned up the codebase added docs images etc. for production release Here’s a sneak peak of Gpt-5.6-sol walked path."}, {"post_id": 46392, "ts": "2026-08-13T15:55:45Z", "hours": 6.9331, "text": "Devlog #4: the live progress site is up, and a real model is on screen Date: 2026-08-13 Short one today. We finished a website that shows a model’s progress through the world as it happens. It’s working. You can watch the path take shape live instead of waiting on a final score.The run you’re looking at right now is being walked by GPT-5.6 Luna, set to medium reasoning. That’s our first model actually moving through the world on the live view.The site does its job, but it’s rough in spots. We’ll keep polishing it slowly rather than trying to rewrite everything at once. We also know the benchmark isn’t balanced yet. We need to tweak some settings so every part of what a model can do gets a fair chance to show. Right now some things are easier to see than others, and that’s not good enough. A bunch of smaller changes and fixes went in since the last update. Nothing flashy, just steady work. This is still a development run. Nothing here counts as an official result yet. But seeing a real model move on the screen is a long way from a few days ago."}, {"post_id": 45678, "ts": "2026-08-12T10:07:44Z", "hours": 7.9069, "text": "Devlog #4 Today i dont have much progress because we evaluated model and several gaps were identified so all the time gone in fixing them! Wait for 2 or more days thanks"}, {"post_id": 45229, "ts": "2026-08-11T15:51:58Z", "hours": 24.0794, "text": "Devlog #2: our test world is ready to try, first real run tomorrow Date: 2026-08-11 Hey everyone, here’s a update on what we’ve been building with Planetarium. What we’re building: We’re making a benchmark. That’s a pretend little world where we put an AI in charge and see if it can survive and get useful stuff done on its own. No remote control, no holding its hand. Just the AI, the world, and a job to do. What got done lately: We locked in the size and shape of the world. It’s now a real, proper size, about a thousand squares by a thousand squares, and we’ve confirmed it’s actually built that way and not just sketched on paper.We finished the safety plumbing too. All the behind the scenes machinery that lets us safely drop an AI into the world and watch what it does is in place now. The AI’s private login details stay out of the saved results, and everything we produce is clearly marked as a practice run rather than an official score.We also cleaned up our own decision notes so the record of what we agreed on is tidy and signed off.On top of that, we ran a quick practice round with a fake stand-in, basically a scripted dummy and not a real AI, just to check the world and the recording system work from start to finish. They did.Where things standThis is still a practice version. No real AI model has been tested in it yet, and nothing we make counts as an official result. We call it “not yet certified” on purpose. We don’t want to claim a score we haven’t actually earned. What’s next: The benchmark needs a bit more finishing, but it’s close. Tomorrow we’re running our very first real AI model through it, and we’re paying for it ourselves with our own credits, not a free trial. That’ll be the first time a genuine model tries to survive and make progress in our world.After that there are still a few owner-only steps before any result can be called official. Proper sign-off, locking the setup so results can’t be messed with. First real run."}, {"post_id": 43904, "ts": "2026-08-09T10:55:43Z", "hours": 9.5514, "text": "I am building Planetarium, a benchmark for autonomous AI agents that measures something harder than answering questions. Can an agent actually operate in a world, discover things, build, survive, trade, and adapt over a long horizon, reproducibly, without gaming the score? It is a deterministic, content-addressed simulation. An agent gets observations, takes actions, and the world reduces them through a sealed, hash-chained event store. Same inputs produce byte-identical outputs every time, with no floating-point flakiness and no hidden randomness. It has a built-in anti-cheat with two worlds: a public sample world and a hidden scoring world. In the hidden world only the agent starting position is randomized per run, so a model that memorized coordinates from a past attempt gains nothing. The layout is frozen by the world seed. 13 roadmap phases are done at the dev-fixture level: deterministic kernel, observation/action, scientific discovery, engineering, survival/ecology, production/logistics, population/organizations, markets/economy, civilization/adaptation, long-horizon memory, evaluation/scoring, dashboard, and adversarial release validation. 2287 tests pass with 0 failures. My favorite part is the honesty guardrail. The release validator is structurally incapable of claiming verified without evidence. I am very excited to release this benchmark!"}]...
|
Title: PLANETARIUM LLM BENCHMARK by @MAYANK-MAHAUR Title: PLANETARIUM LLM BENCHMARK by @MAYANK-MAHAUR | Stardance
Devlogs:
I am building Planetarium, a benchmark for autonomous AI agents that measures something harder than answering questions. Can an agent actually operate in a world, discover things, build, survive, trade, and adapt over a long horizon, reproducibly, without gaming the score? It is a deterministic, content-addressed simulation. An agent gets observations, takes actions, and the world reduces them through a sealed, hash-chained event store. Same inputs produce byte-identical outputs every time, with no floating-point flakiness and no hidden randomness. It has a built-in anti-cheat with two worlds: a public sample world and a hidden scoring world. In the hidden world only the agent starting position is randomized per run, so a model that memorized coordinates from a past attempt gains nothing. The layout is frozen by the world seed. 13 roadmap phases are done at the dev-fixture level: deterministic kernel, observation/action, scientific discovery, engineering, survival/ecology, production/logistics, population/organizations, markets/economy, civilization/adaptation, long-horizon memory, evaluation/scoring, dashboard, and adversarial release validation. 2287 tests pass with 0 failures. My favorite part is the honesty guardrail. The release validator is structurally incapable of claiming verified without evidence. I am very excited to release this benchmark!
Devlog #2: our test world is ready to try, first real run tomorrow Date: 2026-08-11 Hey everyone, here’s a update on what we’ve been building with Planetarium. What we’re building: We’re making a benchmark. That’s a pretend little world where we put an AI in charge and see if it can survive and get useful stuff done on its own. No remote control, no holding its hand. Just the AI, the world, and a job to do. What got done lately: We locked in the size and shape of the world. It’s now a real, proper size, about a thousand squares by a thousand squares, and we’ve confirmed it’s actually built that way and not just sketched on paper.We finished the safety plumbing too. All the behind the scenes machinery that lets us safely drop an AI into the world and watch what it does is in place now. The AI’s private login details stay out of the saved results, and everything we produce is clearly marked as a practice run rather than an official score.We also cleaned up our own decision notes so the record of what we agreed on is tidy and signed off.On top of that, we ran a quick practice round with a fake stand-in, basically a scripted dummy and not a real AI, just to check the world and the recording system work from start to finish. They did.Where things standThis is still a practice version. No real AI model has been tested in it yet, and nothing we make counts as an official result. We call it “not yet certified” on purpose. We don’t want to claim a score we haven’t actually earned. What’s next: The benchmark needs a bit more finishing, but it’s close. Tomorrow we’re running our very first real AI model through it, and we’re paying for it ourselves with our own credits, not a free trial. That’ll be the first time a genuine model tries to survive and make progress in our world.After that there are still a few owner-only steps before any result can be called official. Proper sign-off, locking the setup so results can’t be messed with. First real run.
Devlog #4 Today i dont have much progress because we evaluated model and several gaps were identified so all the time gone in fixing them! Wait for 2 or more days thanks
Devlog #4: the live progress site is up, and a real model is on screen Date: 2026-08-13 Short one today. We finished a website that shows a model’s progress through the world as it happens. It’s working. You can watch the path take shape live instead of waiting on a final score.The run you’re looking at right now is being walked by GPT-5.6 Luna, set to medium reasoning. That’s our first model actually moving through the world on the live view.The site does its job, but it’s rough in spots. We’ll keep polishing it slowly rather than trying to rewrite everything at once. We also know the benchmark isn’t balanced yet. We need to tweak some settings so every part of what a model can do gets a fair chance to show. Right now some things are easier to see than others, and that’s not good enough. A bunch of smaller changes and fixes went in since the last update. Nothing flashy, just steady work. This is still a development run. Nothing here counts as an official result yet. But seeing a real model move on the screen is a long way from a few days ago.
Devlog #5 Today i finally evaluated gpt 5.6-sol on the benchmark and found many things that we can change and tweak to improve the benchmark more and its detailed trajectory for research use! after that i cleaned up the codebase added docs images etc. for production release Here’s a sneak peak of Gpt-5.6-sol walked path.
Devlog #6 Today I changed the website theme from black to white. added open ai adapter so someone can test the benchmark and llm with their own api key made a clear readme with insturctions on how to run, with other things. organised the codebase so it becomes modular, easy to grasp cleaned up stale code from each file added and connected things to config.yml so every change dont need a deep dive in codebase refactored some python files manually Here is sneak peak of how new dashboard looks like...
|
1792615961.8737648
|
1793220761.8737648
|
|
50955
|
THE LAST DIG by @MuhammadAayanMirza | Stardance
|
MuhammadAayanMirza
|
1
|
68.0
|
1009
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T11:16:35Z", "hours": 68.0, "multiplier": 12.37, "payout": 1009, "blessing": "neutral", "text": "This Is the first ever 2D Game I made, a digging game where the player’s objective is to dig to the bottom of the world. There is an inbuilt starting Tutorial in the game which explains the basics of it. There is a battery feature for the jetpack which helps you to come up to the base which is the cobble floor, if the battery is completely depleted you die and all the minerals in your inventory get destroyed. Currently the game only goes till the iron mineral layer and after that it is empty so that I can expand on it in the next ship of this game. (This is only the first version and it is not fully complete yet) Have fun playing it!!", "repo": "https://github.com/MuhammadAayanMirza/A-Game-about-digging", "demo": "https://muhammadaayanmirza.itch.io/the-last-dig"}]...
|
[{"post_id": 71141, "ts": "202 [{"post_id": 71141, "ts": "2026-09-20T10:49:22Z", "hours": 1.735, "text": "Added the Readme.md file in the game’s repository and did some final changes including an hour long hunt on why the sounds weren’t working in the itch.io page when publishing the game, that is fixed now. The game is ready to be shipped!! (This is the first version of course)"}, {"post_id": 70998, "ts": "2026-09-20T05:44:54Z", "hours": 1.3831, "text": "Completed adding all the sound effects and running them through code. Also made changes to the colour and positioning of the tutorial text. Now when you dig a tile the background colour is no longer the sky colour it is a solid dark grey so you can distinguish between the dug up area and undug area easily. Also added a story scene so you know what the goal is in the game. The First Version of the game is complete now. I just need to create a readme file and Build the game so that it can uploaded online! See you soon :)"}, {"post_id": 69208, "ts": "2026-09-16T16:27:16Z", "hours": 3.3253, "text": "We are so back!! The Title Screen went through some changes but it is this newish display now. Major thing this session is that I added sound effects!! I had never added sound effects to a game before so this was a huge learning curve especially with linking the sound to the animation and stuff. Also finding a sound you like is very time consuming. I think I’m very close to shipping the firs version of the game. I don’t think I’ll be able to complete this game for Stardance because I have the SAT exam soon so yeah… I hope you guys will still like the completist version of this."}, {"post_id": 67148, "ts": "2026-09-13T06:42:50Z", "hours": 2.7692, "text": "In this session I completed making the interactive tutorial for the starting of the game. It tells you how to move, dig up dirt, collect coal, and use the shop to sell minerals and buy upgrades. Also created the Title Screen for the game."}, {"post_id": 66505, "ts": "2026-09-12T10:42:22Z", "hours": 3.2131, "text": "Alot of stuff happened in this session; I went back and forth on the background alot and settled on this new background with some trees and bushes with no secondary sky colour behind it, I play tested the game to see that all the code is running smoothly, made some bullet points for what I want to add before the first ship and now I’m currently working on an Interactive starting tutorial for the game."}, {"post_id": 63532, "ts": "2026-09-07T13:25:51Z", "hours": 1.3167, "text": "Working on the background art of the game, added some trees which took ages to make them look good. I hope they are unto the standard of the game theme."}, {"post_id": 62921, "ts": "2026-09-06T13:42:40Z", "hours": 1.9444, "text": "Added the Iron tile!!! I know it doesn’t look the best but I think you can cut me some slack as this is still my first 2D Game. the iron tile is worth “15M” coins so you can use it to refill your battery or save up more to consume the coins in the upgrades section. The sell button sells all the minerals (coal and iron) together. Now you can upgrade everything quicker!! yayayayay. What should I add next? Secret dungeon fight under the Iron ores? Sound fx? more Ores? Better Sky? Interactive starting tutorial? Starting Lore Animation?"}, {"post_id": 62720, "ts": "2026-09-06T06:54:26Z", "hours": 2.4569, "text": "Created a Battery Refill button so that you can refill your battery bar when you are running low on it. It is “15M” right now which Is half the price of the first upgrade so you have to contemplate if you wanna dig more for the upgrade or just keep refilling the battery. Also working on a new mineral for the game, the iron tile."}, {"post_id": 62245, "ts": "2026-09-05T14:50:16Z", "hours": 4.2864, "text": "Alot has happened since the last devlog… The upgrades screen now tells you what happens when you upgrade an item to its next form. This took alot of time to figure out the code for but in the end it worked out! :D The Battery drainage icon has been slightly updated and now when you upgrade the battery feature the battery refills to full battery and the inventory now has a “full inventory” pop up screen whenever you mine a mineral and your inventory is already full so it doesn’t count that mineral so it is basically destroyed. Worked on art aswell for the background which I’m still not happy about but at least the upgrades section is complete for the first ship!!"}, {"post_id": 61963, "ts": "2026-09-05T04:45:56Z", "hours": 0.9844, "text": "The Battery feature now has a UI display to visualise how much battery you have left. It is present at the bottom left of the game screen and it is upgradable in the shop as well just like before. Very Fun!! No I think I’ll work on the inventory feature to set a limit to it and then make that upgradable aswell!!"}, {"post_id": 61615, "ts": "2026-09-04T16:27:01Z", "hours": 1.4547, "text": "There is a battery feature now in the game and when you are using the jetpack for too long your battery runs out and you “die” which means you lose all the minerals that were in your inventory but your coins balance remains the same. The Battery is also upgradable in the shop with your coins. A battery ui bar will come soon…"}, {"post_id": 60278, "ts": "2026-09-02T15:30:17Z", "hours": 1.2728, "text": "The jetpack function now has an animation whenever you are using it. Fully upgradable through the shop. Though it doesn’t have separate animations for the jetpack yet. I am trying to leave the less important artwork towards the end of the project now so then I’ll only work on aesthetic like background and polishing sprites for in game animation."}, {"post_id": 59576, "ts": "2026-09-01T14:05:23Z", "hours": 2.5778, "text": "There is an upgradable jetpack feature in the game now!! Which was an extremely hard job to pull off because the initial version of it had a million bugs. Because I want there to be zero gravity on the cobble tiles so it is like the base platform and the jetpack doesn’t work there and when the player gets near the ground/dirt tiles gravity should apply so the player falls downwards after digging but when any up keys (up arrow, W key or Spacebar) are pressed it should drop back to zero gravity so the player can use the jetpack to go back up to the “home” cobble tiles. This took so long to make it usable and I’m quite happy with it. Just have to make the actual jetpack item now."}, {"post_id": 58133, "ts": "2026-08-30T14:20:32Z", "hours": 1.7342, "text": "Still working on the sky, mainly the bottom terrain now. And also adjusting alot of tiles in unity. I also made the camera boundary (the place where the camera stops following the player) a bit smaller because I don’t think I wanna make that big of a game. This is supposed to be a fun game which you can come back to and have a mission to complete."}, {"post_id": 57892, "ts": "2026-08-30T06:48:28Z", "hours": 2.9675, "text": "New Sky in the game now!! Still trying to add more things to it so stay tuned for that. Also fixed a major bug in the upgrades digging script for the shovel as it would only dig up one block instead of four if it is upgraded because it only detected tiles to the right of it and if they were already dug up it would appear as though the upgrade didn’t work and only one block has been dug."}, {"post_id": 57094, "ts": "2026-08-29T05:55:44Z", "hours": 1.9014, "text": "The Shop is now in the game!!! and it is fully functional. Now when you mine a coal tile the newly added GameManager tracks it and updates your total coal count which then you can sell to get 10M per Coal and upgrade your shovel. First upgrade costs 50M and the upgrade button works aswell, first upgrade increases the dig size from 1x1 –> 2x2. Now the game is an actually playable game where your objective could be to get rid of a whole area and make it easier for your self by getting upgrades. But that is not the game I’m making, I’ll make it a bit more fun than that. Your Goal will be to dig to the bottom to find Secret Treasure…more on that later!!"}, {"post_id": 56589, "ts": "2026-08-28T12:25:34Z", "hours": 1.2194, "text": "Coal Mineral is now in the game. Made three different sprite styles of the coal so it doesn’t look repititive I know the placement of coal looks a bit cluttered right now. I’m still experimenting with them. I’m currently going to be working on the script to count how many coal ‘tiles’ have been dug up so you can sell em in the shop. Hope you like this!"}, {"post_id": 55532, "ts": "2026-08-27T13:22:04Z", "hours": 1.6694, "text": "The upgrade button for the Shovel works now!! It has 4 upgrades and the tile dig size increases on each upgrade. Also made the player flip alongside its animation if they dig a tile which is on their opposite side which is pretty cool to me. There is new grass on the intersection of the cobble floor and ground tiles. The game is pretty fun to play if you just like to dig dirt, I know that sounds weird but just getting a rid of an area and upgrading your shovel is pretty fun in itself."}, {"post_id": 55033, "ts": "2026-08-26T13:47:27Z", "hours": 2.6097, "text": "Added the Shovel item finally took way too long for this to finally come even though it’s a digging game. Now when the player is near the dirt/undergroundtiles a shovel item pops up in the hand of the player and when you click the tile you want to dig a nice little animation plays of the player digging the tile!! (Getting this animation to work was very stressful at one point it broke my movements script somehow, but all is well that ends well)"}, {"post_id": 54905, "ts": "2026-08-26T03:59:01Z", "hours": 2.2394, "text": "New Sky!! The sky has a Sun and plenty of clouds to make the game look and feel nice to play. Also worked in the Upgrades Menu a bit to make the buttons working, still working on that. Hopefully its not that hard."}, {"post_id": 54432, "ts": "2026-08-25T13:21:57Z", "hours": 1.5167, "text": "I think the Upgrades Menu is now aesthetically complete with all the essential items I want upgraded for the game and I like the colour combination and layout of it aswell. I’m quite happy with it now, but I’m always open to suggestions! Now time to finally make it functional."}, {"post_id": 53830, "ts": "2026-08-24T15:05:49Z", "hours": 0.8, "text": "Still upgrading the Upgrades Menu. Added a new Font, Spaces between how many times you can upgrade the item and a money “button” next to it to buy the upgrade. Still not functional as I haven’t opened VisualStudio Code yet, I’m not the best with code so I thought getting the visuals down first would be a good idea. Do you guys like it??"}, {"post_id": 53763, "ts": "2026-08-24T13:22:54Z", "hours": 0.8, "text": "New Upgrades Menu!!! I like this design way better, still need to add actual buttons and functionality into this but now I feel better about the game. Hopefully you all like it aswell!"}, {"post_id": 53685, "ts": "2026-08-24T11:14:34Z", "hours": 2.38, "text": "Working on the Upgrades menu at the moment. Also now when you move left the player actually changes direction which is cool and I adjusted the animations and speed of them a bit. I really want this game to feel good and look good as presentation and gameplay both matter alot. Currently I’m not really happy with the Upgrades Menu so, I’m gonna try make it way better."}, {"post_id": 53070, "ts": "2026-08-23T14:02:38Z", "hours": 1.8325, "text": "Learned animation for the first time in unity! And it takes a whole lot of time when you are making all the animation sprites yourself. Added the idle animation and movement animation as of now. I added the movement animation code to the PlayerMovements script so that it only appears when you are moving left or right."}, {"post_id": 52916, "ts": "2026-08-23T09:18:54Z", "hours": 0.9167, "text": "The player sprite is finally a normal player!! Now all the rigid body, collider and scripts are on this new player. Some minor adjustments were also made to the cobble floor. Now I have to make the game actually fun to play and the background look cool aswell. What would you like to see in this game? It is a digging game."}, {"post_id": 52851, "ts": "2026-08-23T06:42:13Z", "hours": 1.5167, "text": "Changed the tile set again because I wasn’t fond of em, if I want to make a good game I need to pay attention to every detail. Also changed the background, I’m gonna make it better soon! I want the game to have a summer vibe, that’s why I changed everything except the house. The house is cool :D"}, {"post_id": 52519, "ts": "2026-08-22T17:43:38Z", "hours": 1.8044, "text": "Made the player sprite finally, I still don’t like it that much but it is a start! I also tweaked the upgrades Canvas a bit. I’m a bit roadblocked for the scripts of the upgrades but I hope I can do that."}, {"post_id": 52265, "ts": "2026-08-22T11:26:13Z", "hours": 1.6456, "text": "Added an Upgrades Canavs UI with two options for now, Shovel and Jetpack upgrades, I’m yet to make the buttons for them. Also made a script so that this Canvas only pops up when you are in contact with the house. The house now serves a functional purpose!! made the shovel and jetpack pixel art myself and I think they look quite good."}, {"post_id": 52158, "ts": "2026-08-22T07:55:31Z", "hours": 1.9897, "text": "Added a whole jump feature in the game after a lot of iterations because I am still new to coding and C# but after everything worked, I decided to remove the whole feature because I want a jetpack which you can upgrade using coins by digging up minerals. So now when you press Spacebar it feels like you are using a very slow jetpack."}, {"post_id": 52091, "ts": "2026-08-22T05:04:11Z", "hours": 1.1686, "text": "Created a script for changing gravity between tiles as I want the player to move freely in the cobble area as it is the base area ‘home camp” If you will and whenever the player goes to dig a block of dirt the gravity changes so that the player falls in the hole they dug. I also messed around with the lighting setting and changes the background colour, It’s not the final colour yet. This session was more about game mechanics than art."}, {"post_id": 52055, "ts": "2026-08-22T03:05:19Z", "hours": 2.0786, "text": "I made a new house because I don’t think the old one fit the theme, I think this looks way cleaner, I also changed the colours of the cobblestone floor to match the ew house’s stone colour. This session was very aesthetic based and I think that is gonna be the theme for the starting few devlogs. The dirt and grass look weird to me now, do you guys think it’s weird too?"}, {"post_id": 51744, "ts": "2026-08-21T15:59:51Z", "hours": 3.1611, "text": "Made the Ground tiles, with alot of iteration because the pixels looked too small in unity. I made separate tilemaps for each layer and added the ground layer to the digging script of the player which is still a basic capsule (Will work on making it a sprite soon). I have to now make ores and make them a separate special tile map which when dug up are counted so they can be used to be sold in the shop that I will make."}, {"post_id": 51077, "ts": "2026-08-20T15:43:04Z", "hours": 2.1114, "text": "In this session I started making the core game concept in unity and used the tile system for the first time as this is my first ever 2D game!! I added the most important C# scripts in the game, the movement script and the tile remover script as this is a digging game. Next up, I’m gonna focus a bit on aesthetics and then back to coding."}, {"post_id": 50353, "ts": "2026-08-19T15:08:37Z", "hours": 1.2167, "text": "New Game Alert 🚨!! This new game Is inspired from the 3D game “A game about digging a hole” but I’m making it 2D with all my own sprites and scripts and I started with the Hut/House where you go upgrade your digging tool, e.t.c. Keep in mind this is my very first time creating a Sprite, Hope you guys like it!"}]...
|
Title: THE LAST DIG by @MuhammadAayanMirza | Stard Title: THE LAST DIG by @MuhammadAayanMirza | Stardance
Devlogs:
New Game Alert 🚨!! This new game Is inspired from the 3D game “A game about digging a hole” but I’m making it 2D with all my own sprites and scripts and I started with the Hut/House where you go upgrade your digging tool, e.t.c. Keep in mind this is my very first time creating a Sprite, Hope you guys like it!
In this session I started making the core game concept in unity and used the tile system for the first time as this is my first ever 2D game!! I added the most important C# scripts in the game, the movement script and the tile remover script as this is a digging game. Next up, I’m gonna focus a bit on aesthetics and then back to coding.
Made the Ground tiles, with alot of iteration because the pixels looked too small in unity. I made separate tilemaps for each layer and added the ground layer to the digging script of the player which is still a basic capsule (Will work on making it a sprite soon). I have to now make ores and make them a separate special tile map which when dug up are counted so they can be used to be sold in the shop that I will make.
I made a new house because I don’t think the old one fit the theme, I think this looks way cleaner, I also changed the colours of the cobblestone floor to match the ew house’s stone colour. This session was very aesthetic based and I think that is gonna be the theme for the starting few devlogs. The dirt and grass look weird to me now, do you guys think it’s weird too?
Created a script for changing gravity between tiles as I want the player to move freely in the cobble area as it is the base area ‘home camp” If you will and whenever the player goes to dig a block of dirt the gravity changes so that the player falls in the hole they dug. I also messed around with the lighting setting and changes the background colour, It’s not the final colour yet. This session was more about game mechanics than art.
Added a whole jump feature in the game after a lot of iterations because I am still new to coding and C# but after everything worked, I decided to remove the whole feature because I want a jetpack which you can upgrade using coins by digging up minerals. So now when you press Spacebar it feels like you are using a very slow jetpack.
Added an Upgrades Canavs UI with two options for now, Shovel and Jetpack upgrades, I’m yet to make the buttons for them. Also made a script so that this Canvas only pops up when you are in contact with the house. The house now serves a functional purpose!! made the shovel and jetpack pixel art myself and I think they look quite good.
Made the player sprite finally, I still don’t like it that much but it is a start! I also tweaked the upgrades Canvas a bit. I’m a bit roadblocked for the scripts of the upgrades but I hope I can do that.
Changed the tile set again because I wasn’t fond of em, if I want to make a good game I need to pay attention to every detail. Also changed the background, I’m gonna make it better soon! I want the game to have a summer vibe, that’s why I changed everything except the house. The house is cool :D
The player sprite is finally a normal player!! Now all the rigid body, collider and scripts are on this new player. Some minor adjustments were also made to the cobble floor. Now I have to make the game actually fun to play and the background look cool aswell. What would you like to see in this game? It is a digging game.
Learned animation for the first time in unity! And it takes a whole lot of time when you are making all the animation sprites yourself. Added the idle animation and movement animation as of now. I added the movement animation code to the PlayerMovements script so that it only appears when you are moving left or right.
Working on the Upgrades menu at the moment. Also now when you move left the player actually changes direction which is cool and I adjusted the animations and speed of them a bit. I really want this game to feel good and look good as presentation and gameplay both matter alot. Currently I’m not really happy with the Upgrades Menu so, I’m gonna try make it way better.
New Upgrades Menu!!! I like this design way better, still need to add actual buttons and functionality into this but now I feel better about the game. Hopefully you all like it aswell!
Still upgrading the Upgrades Menu. Added a new Font, Spaces between how many times you can upgrade the item and a money “button” next to it to buy the upgrade. Still not functional as I haven’t opened VisualStudio Code yet, I’m not the best with code so I thought getting the visuals down first would be a good idea. Do you guys like it??
I think the Upgrades Menu is now aesthetically complete with all the essential items I want upgraded for the game and I like the colour combination and layout of it aswell. I’m quite happy with it now, but I’m always open to suggestions! Now time to finally make it functional.
New Sky!! The sky has a Sun and plenty of clouds to make the game look and feel nice to play. Also worked in the Upgrades Menu a bit to make the buttons working, still working on that. Hopefully its not that hard.
Added the Shovel item finally took way too long for this to finally come even though it’s a digging game. Now when the player is near the dirt/undergroundtiles a shovel item pops up in the hand of the player and when you click the tile you want to dig a nice little animation plays of the player digging the tile!! (Getting this animation to work was very stressful at one point it broke my movements script somehow, but all is well that ends well)
The upgrade button for the Shovel works now!! It has 4 upgrades and the tile dig size increases on each upgrade. Also made the player flip alongside its animation if they dig a tile which is on their opposite side which is pretty cool to me. There is new grass on the intersection of the cobble floor and ground tiles. The game is pretty fun to play if you just like to dig dirt, I know that sounds weird but just getting a rid of an area and upgrading your shovel is pretty fun in itself.
Coal Mineral is now in the game. Made three different sprite styles of the coal so it doesn’t look repititive I know the placement of coal looks a bit cluttered right now. I’m still experimenting with them. I’m currently going to be working on the script to count how many coal ‘tiles’ have been dug up so you can sell em in the shop. Hope you like this!
The Shop is now in the game!!! and it is fully functional. Now when you mine a coal tile the newly added GameManager tracks it and updates your total coal count which then you can sell to get 10M per Coal and upgrade your shovel. First upgrade costs 50M and the upgrade button works aswell, first upgrade increases the dig size from 1x1 –> 2x2. Now the game is an actually playable game where your objective could be to get rid of a whole area and make it easier for your self by getting upgrades. But that is not the game I’m making, I’ll make it a bit more fun than that. Your Goal will be to dig to the bottom to find Secret Treasure…more on that later!!
New Sky in the game now!! Still trying to add more things to it so stay tuned for that. Also fixed a major bug in the upgrades digging script for the shovel as it would only dig up one block instead of four if it is upgraded because it only detected tiles to the right of it and if they were already dug up it would appear as though the upgrade didn’t work and only one block has been dug.
Still working on the sky, mainly the bottom terrain now. And also adjusting alot of tiles in unity. I also made the camera boundary (the place where the camera stops following the player) a bit smaller because I don’t think I wanna make that big of a game. This is supposed to be a fun game which you can come back to and have a mission to complete.
There is an upgradable jetpack feature in the game now!! Which was an extremely hard job to pull off because the initial version of it had a million bugs. Because I want there to be zero gravity on the cobble tiles so it is like the base platform and the jetpack doesn’t work there and when the player gets near the ground/dirt tiles gravity should apply so the player falls downwards after digging but when any up keys (up arrow, W key or Spacebar) are pressed it should drop back to zero gravity so the player can use the jetpack to go back up to the “home” cobble tiles. This took so long to make it usable and I’m quite happy with it. Just have to make the actual jetpack item now.
The jetpack function now has an animation whenever you are using it. Fully upgradable through the shop. Though it doesn’t have separate animations for the jetpack yet. I am trying to leave the less important artwork towards the end of the project now so then I’ll only work on aesthetic like background and polishing sprites for in game animation.
There is a battery feature now in the game and when you are using the jetpack for too long your battery runs out and you “die” which means you lose all the minerals that were in your inventory but your coins balance remains the same. The Battery is also upgradable in the shop with your coins. A battery ui bar will come soon…
The Battery feature now has a UI display to visualise how much battery you have left. It is present at the bottom left of the game screen and it is upgradable in the shop as well just like before. Very Fun!! No I think I’ll work on the inventory feature to set a limit to it and then make that upgradable aswell!!
Alot has happened since the last devlog… The upgrades screen now tells you what happens when you upgrade an item to its next form. This took alot of time to figure out the code for but in the end it worked out! :D The Battery drainage icon has been slightly updated and now when you upgrade the battery feature the battery refills to full battery and the inventory now has a “full inventory” pop up screen whenever you mine a mineral and your inventory is already full so it doesn’t count that mineral so it is basically destroyed. Worked on art aswell for the background which I’m still not happy about but at least the upgrades section is complete for the first ship!!
Created a Battery Refill button so that you can refill your battery bar when you are running low on it. It is “15M” right now which Is half the price of the first upgrade so you have to contemplate if you wanna dig more for the upgrade or just keep refilling the battery. Also working on a new mineral for the game, the iron tile.
Added the Iron tile!!! I know it doesn’t look the best but I think you can cut me some slack as this is still my first 2D Game. the iron tile is worth “15M” coins so you can use it to refill your battery or save up more to consume the coins in the upgrades section. The sell button sells all the minerals (coal and iron) together. Now you can upgrade everything quicker!! yayayayay. What should I add next? Secret dungeon fight under the Iron ores? Sound fx? more Ores? Better Sky? Interactive starting tutorial? Starting Lore Animation?
Working on the background art of the game, added some trees which took ages to make them look good. I hope they are unto the standard of the game theme.
Alot of stuff happened in this session; I went back and forth on the background alot and settled on this new background with some trees and bushes with no secondary sky colour behind it, I play tested the game to see that all the code is running smoothly, made some bullet points for what I want to add before the first ship and now I’m currently working on an Interactive starting tutorial for the game.
In this session I completed making the interactive tutorial for the starting of the game. It tells you how to move, dig up dirt, collect coal, and use the shop to sell minerals and buy upgrades. Also created the Title Screen for the game.
We are so back!! The Title Screen went through some changes but it is this newish display now. Major thing this session is that I added sound effects!! I had never added sound effects to a game before so this was a huge learning curve especially with linking the sound to the animation and stuff. Also finding a sound you like is very time consuming. I think I’m very close to shipping the firs version of the game. I don’t think I’ll be able to complete this game for Stardance because I have the SAT exam soon so yeah… I hope you guys will still like the completist version of this.
Completed adding all the sound effects and running them through code. Also made changes to the colour and positioning of the tutorial text. Now when you dig a tile the background colour is no longer the sky colour it is a solid dark grey so you can distinguish between the dug up area and undug area easily. Also added a story scene so you know what the goal is in the game. The First Version of the game is complete now. I just need to create a readme file and Build the game so that it can uploaded online! See you soon :)
Added the Readme.md file in the game’s repository and did some final changes including an hour long hunt on why the sounds weren’t working in the itch.io page when publishing the game, that is fixed now. The game is ready to be shipped!! (This is the first version of course)
Ships:
This Is the first ever 2D Game I made, a digging game where the player’s objective is to dig to the bottom of the world. There is an inbuilt starting Tutorial in the game which explains the basics of it. There is a battery feature for the jetpack which helps you to come up to the base which is the cobble floor, if the battery is completely depleted you die and all the minerals in your inventory get destroyed. Currently the game only goes till the iron mineral layer and after that it is empty so that I can expand on it in the next ship of this game. (This is only the first version and it is not fully complete yet) Have fun playing it!!...
|
1793004822.7075596
|
1793091222.7075596
|
|
50711
|
Godot Platformer by @Ethen | Stardance
|
Ethen
|
0
|
67.99
|
0
|
[]
|
[{"post_id": 78947, "ts": "202 [{"post_id": 78947, "ts": "2026-10-12T04:04:22Z", "hours": 11.8467, "text": "Godot Platformer What I added: I added a light Occluder in the level costumes to add shadows to the game I made a button (not fully working) I made button art in affinity I added (almost done!) a 3rd level I added disappearing platforms with animations of fading I almost got teleport gates to work (but then I broke them DX) I made teleporter art in (again) affinity Added normal maps to the button and teleporters, to make them look cool Added more point ligh2ds to things like the button and teleport gates to make them shiny without the players point light2d node What the buttons are meant to do: The buttons are a toggle for the disappearing and appearing platforms, so when the player or the ball enters the buttons collision shape, the level will disappear, and it will appear when the object comes off. What the teleport gates are meant to do: When the player stands in one, and the ball stands in the other, they switch places. I got the player and ball to teleport to each other’s places, but that eventually lead to them just teleporting when only one was touching one of the teleporters."}, {"post_id": 76262, "ts": "2026-10-02T23:35:53Z", "hours": 7.535, "text": "Godot platformer Better art!!!!! What I did: Made golf ball art in affinity I added a normal map and lighting to make golf ball and the goal art look 3d-ish (with help from @Robodog81 ) I also updated a bit of the level art to look more realistic. What I’m wanting to do next: Add teleport gates, when the player stands on one, and the ball goes on one, the player and the ball swap places. Grass, I want to make this a shader so I can animate it to the player’s and ball’s movement. I’ve been learning a bit of shader code in Godot, but I still need more experience."}, {"post_id": 75426, "ts": "2026-09-30T02:01:54Z", "hours": 9.6878, "text": "Godot Platformer What I’ve done I made 2 more levels Fixed a really annoying bug Fully resets the player’s animations on reset Made the player and ball spawn in set places for each level Made better particles A level transition for switching levels What I’m planning on doing next is adding more levels, getting the transition more smooth, maybe adding teleport gates, and adding a menu :D (I’ll probably think of more things to add later)"}, {"post_id": 74221, "ts": "2026-09-26T23:18:49Z", "hours": 9.2856, "text": "Godot platformer What I’ve added: A cool background Better looking timer Timer can reset if you click ‘r’ after reaching goal (with some help) I’m also trying to get level changing working with a transition :D"}, {"post_id": 68486, "ts": "2026-09-15T06:37:59Z", "hours": 8.7456, "text": "Godot platformer I did quite a lot! (with quite a lot of help) What I added: Waterfalls (made with particles) Timer reset Ball reset Player idle and player jump animations A finish flag Particles for getting to the flag Made the level green Timer stops when you get to the flag"}, {"post_id": 61876, "ts": "2026-09-05T01:06:55Z", "hours": 7.4656, "text": "Godot platformer What I added: Added an on screen timer (Tutorial) Made it so the ball can respawn when fallen off (With help)"}, {"post_id": 57983, "ts": "2026-08-30T09:59:47Z", "hours": 3.4069, "text": "Godot platformer What I added/changed: Made better particles Added ball physics (with a bit of help from a tutorial to get good collisions) Made ‘r’ the restart button"}, {"post_id": 56904, "ts": "2026-08-28T22:24:25Z", "hours": 6.4389, "text": "Godot platformer What I added: A double jump indicator Cool music (from pixabay) Player and bg particles More level A pointer for the player"}, {"post_id": 54358, "ts": "2026-08-25T09:54:26Z", "hours": 3.1353, "text": "A Godot platformer! What I added/changed: I decided to make a shooter with a neon-glowy art style I redid the player and level art I added double jump I added smooth scrolling I added a smooth friction movement system I made it so you can fall off the map and get reset Made the player and level glow This is my first game in Godot, so most of the code I had to search up how to do from a video or a website, but the art is made by me"}, {"post_id": 49382, "ts": "2026-08-18T05:20:43Z", "hours": 0.4436, "text": "A Godot platformer Learning Godot Made art Added in basic character movement"}]...
|
Title: Godot Platformer by @Ethen | Stardance
Dev Title: Godot Platformer by @Ethen | Stardance
Devlogs:
A Godot platformer Learning Godot Made art Added in basic character movement
A Godot platformer! What I added/changed: I decided to make a shooter with a neon-glowy art style I redid the player and level art I added double jump I added smooth scrolling I added a smooth friction movement system I made it so you can fall off the map and get reset Made the player and level glow This is my first game in Godot, so most of the code I had to search up how to do from a video or a website, but the art is made by me
Godot platformer What I added: A double jump indicator Cool music (from pixabay) Player and bg particles More level A pointer for the player
Godot platformer What I added/changed: Made better particles Added ball physics (with a bit of help from a tutorial to get good collisions) Made ‘r’ the restart button
Godot platformer What I added: Added an on screen timer (Tutorial) Made it so the ball can respawn when fallen off (With help)
Godot platformer I did quite a lot! (with quite a lot of help) What I added: Waterfalls (made with particles) Timer reset Ball reset Player idle and player jump animations A finish flag Particles for getting to the flag Made the level green Timer stops when you get to the flag
Godot platformer What I’ve added: A cool background Better looking timer Timer can reset if you click ‘r’ after reaching goal (with some help) I’m also trying to get level changing working with a transition :D
Godot Platformer What I’ve done I made 2 more levels Fixed a really annoying bug Fully resets the player’s animations on reset Made the player and ball spawn in set places for each level Made better particles A level transition for switching levels What I’m planning on doing next is adding more levels, getting the transition more smooth, maybe adding teleport gates, and adding a menu :D (I’ll probably think of more things to add later)
Godot platformer Better art!!!!! What I did: Made golf ball art in affinity I added a normal map and lighting to make golf ball and the goal art look 3d-ish (with help from @Robodog81 ) I also updated a bit of the level art to look more realistic. What I’m wanting to do next: Add teleport gates, when the player stands on one, and the ball goes on one, the player and the ball swap places. Grass, I want to make this a shader so I can animate it to the player’s and ball’s movement. I’ve been learning a bit of shader code in Godot, but I still need more experience.
Godot Platformer What I added: I added a light Occluder in the level costumes to add shadows to the game I made a button (not fully working) I made button art in affinity I added (almost done!) a 3rd level I added disappearing platforms with animations of fading I almost got teleport gates to work (but then I broke them DX) I made teleporter art in (again) affinity Added normal maps to the button and teleporters, to make them look cool Added more point ligh2ds to things like the button and teleport gates to make them shiny without the players point light2d node What the buttons are meant to do: The buttons are a toggle for the disappearing and appearing platforms, so when the player or the ball enters the buttons collision shape, the level will disappear, and it will appear when the object comes off. What the teleport gates are meant to do: When the player stands in one, and the ball stands in the other, they switch places. I got the player and ball to teleport to each other’s places, but that eventually lead to them just teleporting when only one was touching one of the teleporters....
|
1792641152.5343616
|
1793245952.5343616
|
|
36002
|
Shelf-fish by @Ansh904 | Stardance
|
Ansh904
|
0
|
67.69
|
0
|
[]
|
[{"post_id": 81554, "ts": "202 [{"post_id": 81554, "ts": "2026-10-21T17:48:39Z", "hours": 9.8519, "text": "5 days plan ready Self-fish devlog #11 (Very Important) So in the last devlog I had completed the add item screen, since then I have been making plans for the future of this app, and i think I am finally ready to reveal it. What have I done? Added tiers and a ration norm to the item and detection table, I will explain later in this devlog, what they do Made the whole backend more secure from wrong answers generated by gemini: since I am using gemini, there is a possiblity that it does not follow the schema I gave it, if that happens, the backend would crash, but now have added field validators for all crucial columns where the the model is most likely to generate wrong answers. While testing I also found out that at sometimes, the model would face a lot of traffic and it would return a 503 and the server crashed, but now the backend has 2 models, gemini-3.1-flash-lite and gemini-2.5-flash-lite, each with 5 retries. So if gemini-3.1-flash-lite, which was getting a lot of traffic, fails, the backend fallsback to 2.5, which I believe should have less traffic Also in the last devlog I had forgot the add tag button which I have added, I already had the function to add but I think the 25 day gap made me forgot that, I also added tiers to page but I still haven’t added ration_norm cuz I have to devlog first What’s the plan? A lot of people don’t actually know what communism is, so I will explain it first, communism is a stateless, moneyless and classless society where the people own the methods of production, It is a type of socialism that came into existence through Karl Marx So in true communist state, there is no money, therefore I dropped the price column from my items table. Instead I have divided everything into 3 categories: **1. Essentials - These items are basic necessities that are needed to surve, example: food, water, soap, clothes, etc. These would be distributed equally to everyone who uses the app, ie the people of the state. **2. Useful Items - These items are not necessary but they improve your quality of life, these include things like a normal mouse, a laptop, etc. These are not distributed equally, instead you have to write 2 lines, just 2 cuz I know when others would review my project, they wouldn’t want to write a whole para to check the working of my app, so those 2 lines would go to gemini once again and it would check if the person gets the item or not. 3. Wants - These items are not necessary and do not improve the quality of life, but they are important to satisfy the personal wishes of the user. These include top tier laptops, high end gaming mouses etc. For this I want to connect to hackatime, I had seen some project on stardance that connected to hackatime, so the plan would be to connect to hackatime and get the no. of hours coded by the user. These hours would be used as labor hours. Whenever the user wants to get these items with the want tier, they would give some of their labor hours to get their item along 2 lines to satisfy the model. So that’s how the app would work, I have just finished the first part of the app, this probably is the 2nd hardest part of the project, the next step would be to create a page where all the items are listed, this would be very easy but after that would be the hardest part of the project, it would be the form where the user can request the item. The images: Well they are both the same, As you can see I have Tiers and add button to this page, everything else is the same, there are 3 buttons (pressables) with the tiers, the default tier is selected by gemini, the user can change them, The ‘+’ button would be present next to the last tag, It can toggle adding, the user can then enter the tag name and press the + button next to the input field. The section below the tag selector displays the description of the tags."}, {"post_id": 81000, "ts": "2026-10-19T15:36:48Z", "hours": 9.7072, "text": "I spent 10 hrs on single page (screen) Shelf-fish Devlog # 10 I didn’t knew it would take that long So the add item page took around 10 hours to make, more than 10 hours if we include the time I spent 25 days ago to make it work, so here is what I have done: Completely change the design of the page, the previous design really sucked, It was there just so to make everything work, my previous self, for some reason, didn’t care about the design The new design uses something similar to drop-shadow except there is no box or drop/box shadow in native-wind, so i had to come up with a way to make my own, i used a self-closing View tag with absolute positioning, no inset and translated to some ammount with a background color… This offset View works as a drop shadow or box, it really doesn’t make difference here as I am working with rectangles. The Offset component worked when I using with a static color and size but for some parts of the design I needed different colors of shadow like the item image which uses red shadow or the tags which require small shadows as they themselves are pretty small. I made it dynamic by using inline css cuz native-wind calculates colors statically Though for some parts I didn’t used the component but used another View in the same way as the component cuz I was frustated and wanted flexibility which the component lacked at that time. The whole app now has a communist theme as explained in the previous devlog I have switched from using native-wind colors to using my own, these are the same i used for my earlier project I have also changed how inputs look, they really sucked previously as they didn’t had titles and the design was low effort too, now the title sits above the main input field and the input field has a sharp look with borders and drop-shadow The tags took the most amount of time, I tried so many designs, but all looked very repetitive with the inputs and I wanted them to fit in too. Also I needed to have 2 designs for the tags, as i have a button to toggle removing, when not removing the tags are small and cute but when you toggle removing, they become big so that it is easier to touch them. The final add button also took a lot of time, the same issue as the tags, since it is the main call-to-action, it needs to be unique, so I had to make it different, It incorporates all the three colors in the design, black, gold and black along with the communist logo. It also has 2 states, the normal state is what is in the attached screenshot, but when it is submitting the add request to the backend, it sticks to its shadow by translating to its shadow, i mean it just animation That’s it for this devlog, since the last devlog was very short, I had to compensate for that and I over-explained in this one The next steps would probably be to connect the detecting code to route to this page with the item object, and also work on the main distribution part which i think would be the hardest."}, {"post_id": 80296, "ts": "2026-10-17T05:20:55Z", "hours": 6.8294, "text": "Where I’ve been Soooooo It’s been 25 days since my last devlog, that means I haven’t coded for 25 days, the culprit for this is my exams, I literally have forgotten where I was in the project, also the hours associated with this devlog are also 25 days old, soo this devlog won’t tell you much, the only thing i remember is that I was making the add item page and it was working, i just had to do the ui for it. My next steps would be to figure out where I was and create some kind of plan to complete the project also since an inventory management app would not be unique, I want to give it my touch and make it communist, I would try to incorporate accuratee communist economy make this the inventory of the people."}, {"post_id": 72221, "ts": "2026-09-22T14:09:34Z", "hours": 5.5131, "text": "Ooopppss I exposed jwt tokens in github Shelf-fish Devlog #8 Yepp I exposed my jwt tokens in my github, but trust me I knew what I was doing, those tokens are long expired, my backend isn’t published yet and i will change the exposed passwords, which was 12345678, cuz why not Anyways I have done a lot things, in the last devlog, i had connected the frontend with the backend and made the detection endpoint work with the frontend. i had to manually type the authentication tokens cuz i had not set up auth in the frontend, but I have now fixed this Here’s what I have done: Created tokenStorage.js - it handles getting the tokens, saving them and clearing them using expo-secure-store, i used expo-secure-store cuz it saves tokens in keychains rather than files that makes them much less likely to leak or read by anyone/app/malwares Created authService.js - this one handles send the get and post requests for registering, logging in and getting current user data Added interceptors to Api, i am using a single api instance using axios.create() across the app, so i have added interceptors to attach auth tokens and check if they are valid or expired Created the login and register screens, they don’t look good now but will work on the ui after i get everything set up, I will make everything exist first, the designs can be taken care of afterwards I also created a new api route at ‘/users’, this one is responsible for getting user data, right now it just gets the user info but I think i would also make it update it… I also added navigation using react-navigation What’s next ? I haven’t finished the home screen yet, well nothing is finished yet, but the home screen just greets the user, i will add buttons to navigate to camera and upload components I will also create the item related pages, that will show all items and let the user create items after detecting the product The images: They look soo bad but as I said I will make everything exist first and then make the ui good The register page The login page, it’s not even filled yet, cuz i want to add text and a logo, i will create a logo too lol i forgot about that The home page, empty page with a greeting and a sign out button, it was made to check if everything is working or not"}, {"post_id": 71725, "ts": "2026-09-21T11:55:08Z", "hours": 6.1961, "text": "Frontend Connected Shelf-fish devlog # 7 In the last devlog, I had finished creating the detection logic using gemini api, after that I have done a lot of things and suffered a lot of headaches too What have I done?? Created api endpoints for detections at /detections and added it to the fastapi app. Added authentication dependency to the detection api so that only authenticated users can upload images and we can know who detects which item. Created the Camera and Upload image logic, I have used expo-camera and expo-imagepicker for that, it was pretty easy, expo’s docs are straight forward and I have used them before Created the uploading function that will send a post request containing the image to the backend. I also added storage fn to upload the captured/picked image to cloud using cloudinary. What’s next? Now I will work on the ui and create login and register screens cuz manually typing the authentication token to the uploading fn is really frustrating I also have an idea for this project which would make it very unique cuz at this point it just looks like just any other inventory management systems. The images- console log of the item after it was detected by gemini and saved to database, the image being displayed after clicking the url, the images in cloudinary, the other one is stock image and was there automatically."}, {"post_id": 70482, "ts": "2026-09-19T08:27:30Z", "hours": 5.4297, "text": "Detection Working!!! Shelf-fish Devlog #6 TL;DR What have done? Created a basic jwt auth Used Gemini Api and Gemini 3.1 Flash Lite to create the product detection logic What’s next? I will now make api routes for detection that would output the brand, item name and category of the item Got lots of time? Sooo the auth and detection logic is complete, we are now close to ending the backend, earlier after dropping the plan of using a classification model, I had decided to use an ocr to detect text from the input photo and then use that text as an input for openai api and ask it to identify the brand name, item name and category from the image, but since I am broke , I couldn’t use openai api as it costs money and then learned that gemini has free api plans that include multi-modal inputs like images and give out text, so I swited to that and it works flawlessly, the rate limits are also generous, at 500 requests per day and 15 per minute. I tested it with 6 text images and it gave 100% acc but the sample size is pretty small to say that it is 100% accurate, but it does work. The detection logic, at this point, is just a function, i need to make api routes for that and add a detection log table, the log table would be useful at providing data about rate limits and is also nice to have if the project get bigger, I also have to make a list of categories out of which gemini would choose the category of the product cuz at this point, it outputs anything it likes as a category"}, {"post_id": 69694, "ts": "2026-09-17T16:22:17Z", "hours": 3.2419, "text": "Backend is Up Shelf-fish Devlog #5 What have I done?? Set up FastAPI and SQLModel - I have successfully connected and set up the backend with the database, I am using neon’s postgres db Created Item table - I also created the first table of item, it has the following columns- Name, id, quantity, category and price Set up CRUD - set up basic crud end points for the item table What’s next?? I will now create auth using pyjwt and passlib Next I will work on the core mechanism for extracting name from the product image using ocr"}, {"post_id": 69500, "ts": "2026-09-17T06:01:39Z", "hours": 1.8783, "text": "Dropping the plan Shelf-fish Devlog #4 Heyy gng, since the past few days I have been just editing and reviewing images and they don’t seem to finish any time soon but stardance is finishing soon and I want to finish this project before that so I am dropping the workplan of using a classification model for identifying items That approach was flawed, I had not thought about that earlier instead I was biased by my previous successful project using the classification approach to identify pokemon I think a better approach would be to use an ocr and then ask an llm to parse that into brand name, item name and weight and other things Despite the my orignal plan failing, I want to highlight that engineering, in all forms, is itterative, no one finds the solution to the problem in their first try and the things I have made before, ie- my scraper, is not obselete at all, it works so good, like it scraped 150k images in 6 hours, that’s really insane and very useful too, I will make it as another seperate project in the future cuz I think it deserves some more recognition and will improve it too first 3 images- images of clean dataset, products are cropped and all noises are deleted last image - for comparison, an unclean dataset, a lot of noises in it like people and some images dont even have the product"}, {"post_id": 67508, "ts": "2026-09-13T17:04:56Z", "hours": 4.1303, "text": "Who is Who - Shelf-Fish devlog #3 There were so many duplicate images So in the last devlog, I told my scraper scraped nearly 150k images, but when I began cleaning them I noticed a lot of images were exact duplicates, I thought it was just for a class or two but It was for every single one of them , except Oreo After manually cleaning 14 classes with duplicates, I gave up, and decided to use python to delete duplicates, I used hashlib and md5 hash to detect exact duplicate images inside all folders of my root train images folder which each represent one class, and I used os.remove to delete those duplicates. I ended up deleting around 34k images which brings my dataset from 150k to 100k images, but this would change too cuz the 100k maybe unique but they still have a lot of discrepencies, like random products and all. I also used matplotlib to plot a graph of the images remaining, and the results dont look good for a few classes which have now less than 300 images, others are in range 500 - 800, remember they were around 1100 images earlier, so around 800 images were duplicates of the remaining 300. I know what’s causing this, multiple search queries, since google images only displays a fixed 400 images per search, I made my scraper in a way that it searches for the same product multiple times but with a different query which causes popular images to be duplicates One more thing, the dataset would not only decrease in number, but after cleaning the images, I would augment them which would drastically increase the number of images and also make the model less likely to overfit. Also the graph is really ugly cuz there are like 130 classes on the x axis and they dont really fit well and I am not an expert in pyplot so I dont know how to make it look good"}, {"post_id": 64891, "ts": "2026-09-09T16:30:10Z", "hours": 5.8064, "text": "Shelf-Fish Devlog #2 My Scraper is on steroids !!! I scraped 150,000 images Yooooo guys the scraper worked too good now, it scraped roughly 150,000 images in just 6 hours , that is insane, the speed was around 7 images per second or 420 images per minute, that is really crazy, my old scraper took a full day for 75k images, this is like a million times faster!!! In the last devlog, I acheived a speed of around 1079 images in 10 minutes or around 100 images per hour, so since then I have made it 4x times faster. Here’s what I did: Added premature scrolling - earlier the scraper would miss a lot of images or would wait for a long period of time for the images to load and then scroll, but now as soon as the main div appears on the screen, the scraper scrolls down a bit triggering lazy load instantly and then scrolls down to the bottom triggering te lazy load 2 times in a cycle, this made the whole scrolling thing so much quicker. Fixed downloads not cancelling - I am storing some extra urls so that if one or more of the urls failed to download, I have backup for completing the target, but I am using a ThreadPoolExecutor to download images concurrently, when it reaches the target the executor used to just break but this didnt prevent it from downloading all other images stored in my array even tho they aren’t saved on the disc, this caused the scraper to wait indefinitely for a long time, since it now has to fetch double or sometimes more the amount, but I have now fixed that Next steps? I will now clean the dataset, and since by cleaning the dataset I am actively contributing to the completion of the project, I have got permission to use lapse to record that time"}, {"post_id": 57888, "ts": "2026-08-30T06:43:01Z", "hours": 9.1103, "text": "Shelf-Fish Devlog #1 What is Shelf-Fish? It is a computer vision based cross platform inventory management and billing system that I am making with react native as frontend and probably a fastapi backend. How will the project work? The project would be made in several phases that are listed below: Phase 01 - Scraper In this phase I will make a fast scraper with selenium that would scrape 1000-1500 images for over 130 grocery items that I have listed. Phase 02 - Training In this phase I would clean the dataset and train the model!! Phase 03 - Backend I would build a basic cors backend in fastapi and add some user relations Phase 04 - Frontend This phase involves building a cross platform fronend with react native. Phase 05 - ESP 32 This one is not confirmed yet, but if i get the time, instead of using a phone, I would use the esp 32 and esp32 cam to register objects and create bills, or perhaps I should make this the main focus of the project and make this a hardware project, I am still not sure. What have I done till now? I am modifying my old scraper that I used for my previous pokedex project, which was very very slow, I have changed it completely, It now directly goes to the image search url instead of going to google.images.com and then manually typing the words. It now also downloads images concurrently using the ThreadPoolExecutor , earlier this part was the slowest but in just 2 seconds, it downloads 125 images, But it is still pretty slow, It took over 10 min to scrape 1079 images, and it was a bit short of the 1125 target images which is due to slow network that caused the images to not load. For the next devlog I will try to make it sub 8 min or faster"}]...
|
Title: Shelf-fish by @Ansh904 | Stardance
Devlogs Title: Shelf-fish by @Ansh904 | Stardance
Devlogs:
Shelf-Fish Devlog #1 What is Shelf-Fish? It is a computer vision based cross platform inventory management and billing system that I am making with react native as frontend and probably a fastapi backend. How will the project work? The project would be made in several phases that are listed below: Phase 01 - Scraper In this phase I will make a fast scraper with selenium that would scrape 1000-1500 images for over 130 grocery items that I have listed. Phase 02 - Training In this phase I would clean the dataset and train the model!! Phase 03 - Backend I would build a basic cors backend in fastapi and add some user relations Phase 04 - Frontend This phase involves building a cross platform fronend with react native. Phase 05 - ESP 32 This one is not confirmed yet, but if i get the time, instead of using a phone, I would use the esp 32 and esp32 cam to register objects and create bills, or perhaps I should make this the main focus of the project and make this a hardware project, I am still not sure. What have I done till now? I am modifying my old scraper that I used for my previous pokedex project, which was very very slow, I have changed it completely, It now directly goes to the image search url instead of going to google.images.com and then manually typing the words. It now also downloads images concurrently using the ThreadPoolExecutor , earlier this part was the slowest but in just 2 seconds, it downloads 125 images, But it is still pretty slow, It took over 10 min to scrape 1079 images, and it was a bit short of the 1125 target images which is due to slow network that caused the images to not load. For the next devlog I will try to make it sub 8 min or faster
Shelf-Fish Devlog #2 My Scraper is on steroids !!! I scraped 150,000 images Yooooo guys the scraper worked too good now, it scraped roughly 150,000 images in just 6 hours , that is insane, the speed was around 7 images per second or 420 images per minute, that is really crazy, my old scraper took a full day for 75k images, this is like a million times faster!!! In the last devlog, I acheived a speed of around 1079 images in 10 minutes or around 100 images per hour, so since then I have made it 4x times faster. Here’s what I did: Added premature scrolling - earlier the scraper would miss a lot of images or would wait for a long period of time for the images to load and then scroll, but now as soon as the main div appears on the screen, the scraper scrolls down a bit triggering lazy load instantly and then scrolls down to the bottom triggering te lazy load 2 times in a cycle, this made the whole scrolling thing so much quicker. Fixed downloads not cancelling - I am storing some extra urls so that if one or more of the urls failed to download, I have backup for completing the target, but I am using a ThreadPoolExecutor to download images concurrently, when it reaches the target the executor used to just break but this didnt prevent it from downloading all other images stored in my array even tho they aren’t saved on the disc, this caused the scraper to wait indefinitely for a long time, since it now has to fetch double or sometimes more the amount, but I have now fixed that Next steps? I will now clean the dataset, and since by cleaning the dataset I am actively contributing to the completion of the project, I have got permission to use lapse to record that time
Who is Who - Shelf-Fish devlog #3 There were so many duplicate images So in the last devlog, I told my scraper scraped nearly 150k images, but when I began cleaning them I noticed a lot of images were exact duplicates, I thought it was just for a class or two but It was for every single one of them , except Oreo After manually cleaning 14 classes with duplicates, I gave up, and decided to use python to delete duplicates, I used hashlib and md5 hash to detect exact duplicate images inside all folders of my root train images folder which each represent one class, and I used os.remove to delete those duplicates. I ended up deleting around 34k images which brings my dataset from 150k to 100k images, but this would change too cuz the 100k maybe unique but they still have a lot of discrepencies, like random products and all. I also used matplotlib to plot a graph of the images remaining, and the results dont look good for a few classes which have now less than 300 images, others are in range 500 - 800, remember they were around 1100 images earlier, so around 800 images were duplicates of the remaining 300. I know what’s causing this, multiple search queries, since google images only displays a fixed 400 images per search, I made my scraper in a way that it searches for the same product multiple times but with a different query which causes popular images to be duplicates One more thing, the dataset would not only decrease in number, but after cleaning the images, I would augment them which would drastically increase the number of images and also make the model less likely to overfit. Also the graph is really ugly cuz there are like 130 classes on the x axis and they dont really fit well and I am not an expert in pyplot so I dont know how to make it look good
Dropping the plan Shelf-fish Devlog #4 Heyy gng, since the past few days I have been just editing and reviewing images and they don’t seem to finish any time soon but stardance is finishing soon and I want to finish this project before that so I am dropping the workplan of using a classification model for identifying items That approach was flawed, I had not thought about that earlier instead I was biased by my previous successful project using the classification approach to identify pokemon I think a better approach would be to use an ocr and then ask an llm to parse that into brand name, item name and weight and other things Despite the my orignal plan failing, I want to highlight that engineering, in all forms, is itterative, no one finds the solution to the problem in their first try and the things I have made before, ie- my scraper, is not obselete at all, it works so good, like it scraped 150k images in 6 hours, that’s really insane and very useful too, I will make it as another seperate project in the future cuz I think it deserves some more recognition and will improve it too first 3 images- images of clean dataset, products are cropped and all noises are deleted last image - for comparison, an unclean dataset, a lot of noises in it like people and some images dont even have the product
Backend is Up Shelf-fish Devlog #5 What have I done?? Set up FastAPI and SQLModel - I have successfully connected and set up the backend with the database, I am using neon’s postgres db Created Item table - I also created the first table of item, it has the following columns- Name, id, quantity, category and price Set up CRUD - set up basic crud end points for the item table What’s next?? I will now create auth using pyjwt and passlib Next I will work on the core mechanism for extracting name from the product image using ocr
Detection Working!!! Shelf-fish Devlog #6 TL;DR What have done? Created a basic jwt auth Used Gemini Api and Gemini 3.1 Flash Lite to create the product detection logic What’s next? I will now make api routes for detection that would output the brand, item name and category of the item Got lots of time? Sooo the auth and detection logic is complete, we are now close to ending the backend, earlier after dropping the plan of using a classification model, I had decided to use an ocr to detect text from the input photo and then use that text as an input for openai api and ask it to identify the brand name, item name and category from the image, but since I am broke , I couldn’t use openai api as it costs money and then learned that gemini has free api plans that include multi-modal inputs like images and give out text, so I swited to that and it works flawlessly, the rate limits are also generous, at 500 requests per day and 15 per minute. I tested it with 6 text images and it gave 100% acc but the sample size is pretty small to say that it is 100% accurate, but it does work. The detection logic, at this point, is just a function, i need to make api routes for that and add a detection log table, the log table would be useful at providing data about rate limits and is also nice to have if the project get bigger, I also have to make a list of categories out of which gemini would choose the category of the product cuz at this point, it outputs anything it likes as a category
Frontend Connected Shelf-fish devlog # 7 In the last devlog, I had finished creating the detection logic using gemini api, after that I have done a lot of things and suffered a lot of headaches too What have I done?? Created api endpoints for detections at /detections and added it to the fastapi app. Added authentication dependency to the detection api so that only authenticated users can upload images and we can know who detects which item. Created the Camera and Upload image logic, I have used expo-camera and expo-imagepicker for that, it was pretty easy, expo’s docs are straight forward and I have used them before Created the uploading function that will send a post request containing the image to the backend. I also added storage fn to upload the captured/picked image to cloud using cloudinary. What’s next? Now I will work on the ui and create login and register screens cuz manually typing the authentication token to the uploading fn is really frustrating I also have an idea for this project which would make it very unique cuz at this point it just looks like just any other inventory management systems. The images- console log of the item after it was detected by gemini and saved to database, the image being displayed after clicking the url, the images in cloudinary, the other one is stock image and was there automatically.
Ooopppss I exposed jwt tokens in github Shelf-fish Devlog #8 Yepp I exposed my jwt tokens in my github, but trust me I knew what I was doing, those tokens are long expired, my backend isn’t published yet and i will change the exposed passwords, which was 12345678, cuz why not Anyways I have done a lot things, in the last devlog, i had connected the frontend with the backend and made the detection endpoint work with the frontend. i had to manually type the authentication tokens cuz i had not set up auth in the frontend, but I have now fixed this Here’s what I have done: Created tokenStorage.js - it handles getting the tokens, saving them and clearing them using expo-secure-store, i used expo-secure-store cuz it saves tokens in keychains rather than files that makes them much less likely to leak or read by anyone/app/malwares Created authService.js - this one handles send the get and post requests for registering, logging in and getting current user data Added interceptors to Api, i am using a single api instance using axios.create() across the app, so i have added interceptors to attach auth tokens and check if they are valid or expired Created the login and register screens, they don’t look good now but will work on the ui after i get everything set up, I will make everything exist first, the designs can be taken care of afterwards I also created a new api route at ‘/users’, this one is responsible for getting user data, right now it just gets the user info but I think i would also make it update it… I also added navigation using react-navigation What’s next ? I haven’t finished the home screen yet, well nothing is finished yet, but the home screen just greets the user, i will add buttons to navigate to camera and upload components I will also create the item related pages, that will show all items and let the user create items after detecting the product The images: They look soo bad but as I said I will make everything exist first and then make the ui good The register page The login page, it’s not even filled yet, cuz i want to add text and a logo, i will create a logo too lol i forgot about that The home page, empty page with a greeting and a sign out button, it was made to check if everything is working or not
Where I’ve been Soooooo It’s been 25 days since my last devlog, that means I haven’t coded for 25 days, the culprit for this is my exams, I literally have forgotten where I was in the project, also the hours associated with this devlog are also 25 days old, soo this devlog won’t tell you much, the only thing i remember is that I was making the add item page and it was working, i just had to do the ui for it. My next steps would be to figure out where I was and create some kind of plan to complete the project also since an inventory management app would not be unique, I want to give it my touch and make it communist, I would try to incorporate accuratee communist economy make this the inventory of the people.
I spent 10 hrs on single page (screen) Shelf-fish Devlog # 10 I didn’t knew it would take that long So the add item page took around 10 hours to make, more than 10 hours if we include the time I spent 25 days ago to make it work, so here is what I have done: Completely change the design of the page, the previous design really sucked, It was there just so to make everything work, my previous self, for some reason, didn’t care about the design The new design uses something similar to drop-shadow except there is no box or drop/box shadow in native-wind, so i had to come up with a way to make my own, i used a self-closing View tag with absolute positioning, no inset and translated to some ammount with a background color… This offset View works as a drop shadow or box, it really doesn’t make difference here as I am working with rectangles. The Offset component worked when I using with a static color and size but for some parts of the design I needed different colors of shadow like the item image which uses red shadow or the tags which require small shadows as they themselves are pretty small. I made it dynamic by using inline css cuz native-wind calculates colors statically Though for some parts I didn’t used the component but used another View in the same way as the component cuz I was frustated and wanted flexibility which the component lacked at that time. The whole app now has a communist theme as explained in the previous devlog I have switched from using native-wind colors to using my own, these are the same i used for my earlier project I have also changed how inputs look, they really sucked previously as they didn’t had titles and the design was low effort too, now the title sits above the main input field and the input field has a sharp look with borders and drop-shadow The tags took the most amount of time, I tried so many designs, but all looked very repetitive with the inputs and I wanted them to fit in too. Also I needed to have 2 designs for the tags, as i have a button to toggle removing, when not removing the tags are small and cute but when you toggle removing, they become big so that it is easier to touch them. The final add button also took a lot of time, the same issue as the tags, since it is the main call-to-action, it needs to be unique, so I had to make it different, It incorporates all the three colors in the design, black, gold and black along with the communist logo. It also has 2 states, the normal state is what is in the attached screenshot, but when it is submitting the add request to the backend, it sticks to its shadow by translating to its shadow, i mean it just animation That’s it for this devlog, since the last devlog was very short, I had to compensate for that and I over-explained in this one The next steps would probably be to connect the detecting code to route to this page with the item object, and also work on the main distribution part which i think would be the hardest.
5 days plan ready Self-fish devlog #11 (Very Important) So in the last devlog I had completed the add item screen, since then I have been making plans for the future of this app, and i think I am finally ready to reveal it. What have I done? Added tiers and a ration norm to the item and detection table, I will explain later in this devlog, what they do Made the whole backend more secure from wrong answers generated by gemini: since I am using gemini, there is a possiblity that it does not follow the schema I gave it, if that happens, the backend would crash, but now have added field validators for all crucial columns where the the model is most likely to generate wrong answers. While testing I also found out that at sometimes, the model would face a lot of traffic and it would return a 503 and the server crashed, but now the backend has 2 models, gemini-3.1-flash-lite and gemini-2.5-flash-lite, each with 5 retries. So if gemini-3.1-flash-lite, which was getting a lot of traffic, fails, the backend fallsback to 2.5, which I believe should have less traffic Also in the last devlog I had forgot the add tag button which I have added, I already had the function to add but I think the 25 day gap made me forgot that, I also added tiers to page but I still haven’t added ration_norm cuz I have to devlog first What’s the plan? A lot of people don’t actually know what communism is, so I will explain it first, communism is a stateless, moneyless and classless society where the people own the methods of production, It is a type of socialism that came into existence through Karl Marx So in true communist state, there is no money, therefore I dropped the price column from my items table. Instead I have divided everything into 3 categories: **1. Essentials - These items are basic necessities that are needed to surve, example: food, water, soap, clothes, etc. These would be distributed equally to everyone who uses the app, ie the people of the state. **2. Useful Items - These items are not necessary but they improve your quality of life, these include things like a normal mouse, a laptop, etc. These are not distributed equally, instead you have to write 2 lines, just 2 cuz I know when others would review my project, they wouldn’t want to write a whole para to check the working of my app, so those 2 lines would go to gemini once again and it would check if the person gets the item or not. 3. Wants - These items are not necessary and do not improve the quality of life, but they are important to satisfy the personal wishes of the user. These include top tier laptops, high end gaming mouses etc. For this I want to connect to hackatime, I had seen some project on stardance that connected to hackatime, so the plan would be to connect to hackatime and get the no. of hours coded by the user. These hours would be used as labor hours. Whenever the user wants to get these items with the want tier, they would give some of their labor hours to get their item along 2 lines to satisfy the model. So that’s how the app would work, I have just finished the first part of the app, this probably is the 2nd hardest part of the project, the next step would be to create a page where all the items are listed, this would be very easy but after that would be the hardest part of the project, it would be the form where the user can request the item. The images: Well they are both the same, As you can see I have Tiers and add button to this page, everything else is the same, there are 3 buttons (pressables) with the tiers, the default tier is selected by gemini, the user can change them, The ‘+’ button would be present next to the last tag, It can toggle adding, the user can then enter the tag name and press the + button next to the input field. The section below the tag selector displays the description of the tags....
|
1792659126.2009447
|
1793263926.2009447
|
|
55130
|
VoskFlow by @EVINJSUBIN | Stardance
|
EVINJSUBIN
|
0
|
67.47
|
0
|
[]
|
[{"post_id": 62375, "ts": "202 [{"post_id": 62375, "ts": "2026-09-05T18:20:19Z", "hours": 10.6131, "text": "🎙️ VoskFlow Devlog — Offline Speech Intelligence Desktop App Building VoskFlow — an entirely offline, privacy-first voice dictation engine with an Apple/VOID-inspired minimalist HUD that works across any Windows app. Here’s everything built, debugged, and polished over the latest development sprint! 🚀 ⚡ What We Built & Accomplished 1. 🌌 The “VOID” Minimalist HUD & Pill Widget Idle State : A discreet, 4px Warm Ochre ( #DCA54C ) dash docked right above the Windows taskbar. Active State : Hold the global push-to-talk hotkey ( Ctrl + Space ), and the dash smoothly expands into a floating pill with live symmetrical audio waveform visualizer bars. Hands-Free Auto Mode : Double-tap Ctrl to lock into hands-free streaming dictation. Zero Distraction : When released, it transcribes offline in milliseconds and types your text directly into whatever window/app has focus. 2. 🛠️ Frameless 6-Step Onboarding & Calibration Wizard Custom frameless Tauri + Webview2 window with dynamic particle starfield canvas. Hardware RAM auto-detection to automatically recommend the right offline model ( tiny.en , base.en , small.en ). Interactive Microphone Tuning & Voice Calibration step with live audio peak meters and immediate dictation verification. Seamless transition to the full system Dashboard upon completion. 3. 🧵 Bulletproof AI STT Worker & Windows Engine Architecture CTranslate2 & OpenMP Multi-threading Fix : Solved the infamous OpenMP CPU inference deadlock on Windows by isolating model initialization and transcription into a dedicated Python Queue worker loop. float32 Universal Compute Engine : Standardized compute format to ensure compatibility across all CPU architectures (Intel & AMD) without quantization crashes. Thread-Safe Qt Signal Dispatching : Re-architected background thread-to-GUI communication to eliminate GetDC (Invalid window handle) errors. 4. 🔕 Stealth Tray Engine & Lifecycle Management Persistent Background Daemon : Closing the Dashboard now cleanly minimizes VoskFlow to the system tray so speech dictation is always on standby. Auto-Cleanup for Stale Processes : Built automated socket & process-mutex cleanup to prevent orphan zombie backends when restarting or developing. Tray Bridge : Open/close Dashboard anytime directly from the Windows notification tray menu. 🧠 Tech Stack Frontend : Tauri v2, Rust, HTML5/CSS3 Canvas (Particle Physics), JetBrains Mono AI Core : Faster-Whisper (CTranslate2 offline speech models) Audio & System : PyAudio, NumPy, PyQt6 (Translucent GUI overlays), Pynput (Low-level global hotkeys) Platform : Windows 11 / 10 🔮 What’s Next Exportable custom voice shortcuts and automation macros. Local custom vocabulary & dictionary substitution rules. Packaging into a self-contained one-click .exe installer. 100% offline. Zero telemetry. Your voice stays on your machine. 🔒"}, {"post_id": 60597, "ts": "2026-09-03T01:43:38Z", "hours": 8.3567, "text": "🎙️ VoskFlow Devlog: Ready for V1 Ship! 🚀 Spent the last sprint squashing bugs and polishing VoskFlow (100% offline, privacy-first voice-to-text) for its V1 release! What got done: 🛡️ True 100% Offline Mode: Patched faster-whisper from pinging HuggingFace API on startup. If local weights exist, it loads straight from disk—zero network required. 🎨 Midnight Study UI: Overhauled the web dashboard with our official palette (Espresso #1C1917 + Warm Ochre #DCA54C ), serif typography, and a live status indicator. ⌨️ Bulletproof Push-to-Talk: Replaced basic key listeners with a low-level global hook ( keyboard.hook ), fixing combo hotkeys like Ctrl+Space without crashes. 📦 PyInstaller Monolith: Built a custom .spec bundling the models, CTranslate2 DLLs, and web UI into a clean, windowed .exe (no ugly terminal popup). Next up: final .exe compilation and shipping! Don’t type, just speak. ✨"}, {"post_id": 58789, "ts": "2026-08-31T11:25:36Z", "hours": 8.8806, "text": "Finaaly trinaed a llm and connetced it"}, {"post_id": 56629, "ts": "2026-08-28T13:44:54Z", "hours": 3.6719, "text": "Today we overhauled the core engine for commercial-grade speed and accuracy. We migrated to Faster-Whisper, which gives us flawless auto-punctuation and capitalization. To achieve a zero-latency feel, we built a background worker that streams and processes audio chunks every 500ms while you hold the hotkey, meaning the final text drops instantly on release. Finally, we engineered a dynamic disfluency filter that automatically strips out filler words like umms and ahhs before typing. Up next: connecting a local LLM to turn spoken commands into OS-level keyboard shortcuts!"}, {"post_id": 56467, "ts": "2026-08-28T07:42:41Z", "hours": 35.9483, "text": "[Update] - Landing Page is Live fr 🚀 Ngl, the landing page we just dropped absolutely ate and left no crumbs. Added screenshots of our black glassmorphism pill and the bouncing voice bubbles, and the aesthetic is heavily based. Wispr Flow is literally shaking rn. No cap, the UI is serving looks. Now that the site is up, we’re ready to plug in the Vosk ML model and actually let it cook. Huge W. 🔥 https://evinjsubin.github.io/VoskFlow/landing/"}]...
|
Title: VoskFlow by @EVINJSUBIN | Stardance
Devlog Title: VoskFlow by @EVINJSUBIN | Stardance
Devlogs:
[Update] - Landing Page is Live fr 🚀 Ngl, the landing page we just dropped absolutely ate and left no crumbs. Added screenshots of our black glassmorphism pill and the bouncing voice bubbles, and the aesthetic is heavily based. Wispr Flow is literally shaking rn. No cap, the UI is serving looks. Now that the site is up, we’re ready to plug in the Vosk ML model and actually let it cook. Huge W. 🔥 https://evinjsubin.github.io/VoskFlow/landing/
Today we overhauled the core engine for commercial-grade speed and accuracy. We migrated to Faster-Whisper, which gives us flawless auto-punctuation and capitalization. To achieve a zero-latency feel, we built a background worker that streams and processes audio chunks every 500ms while you hold the hotkey, meaning the final text drops instantly on release. Finally, we engineered a dynamic disfluency filter that automatically strips out filler words like umms and ahhs before typing. Up next: connecting a local LLM to turn spoken commands into OS-level keyboard shortcuts!
Finaaly trinaed a llm and connetced it
🎙️ VoskFlow Devlog: Ready for V1 Ship! 🚀 Spent the last sprint squashing bugs and polishing VoskFlow (100% offline, privacy-first voice-to-text) for its V1 release! What got done: 🛡️ True 100% Offline Mode: Patched faster-whisper from pinging HuggingFace API on startup. If local weights exist, it loads straight from disk—zero network required. 🎨 Midnight Study UI: Overhauled the web dashboard with our official palette (Espresso #1C1917 + Warm Ochre #DCA54C ), serif typography, and a live status indicator. ⌨️ Bulletproof Push-to-Talk: Replaced basic key listeners with a low-level global hook ( keyboard.hook ), fixing combo hotkeys like Ctrl+Space without crashes. 📦 PyInstaller Monolith: Built a custom .spec bundling the models, CTranslate2 DLLs, and web UI into a clean, windowed .exe (no ugly terminal popup). Next up: final .exe compilation and shipping! Don’t type, just speak. ✨
🎙️ VoskFlow Devlog — Offline Speech Intelligence Desktop App Building VoskFlow — an entirely offline, privacy-first voice dictation engine with an Apple/VOID-inspired minimalist HUD that works across any Windows app. Here’s everything built, debugged, and polished over the latest development sprint! 🚀 ⚡ What We Built & Accomplished 1. 🌌 The “VOID” Minimalist HUD & Pill Widget Idle State : A discreet, 4px Warm Ochre ( #DCA54C ) dash docked right above the Windows taskbar. Active State : Hold the global push-to-talk hotkey ( Ctrl + Space ), and the dash smoothly expands into a floating pill with live symmetrical audio waveform visualizer bars. Hands-Free Auto Mode : Double-tap Ctrl to lock into hands-free streaming dictation. Zero Distraction : When released, it transcribes offline in milliseconds and types your text directly into whatever window/app has focus. 2. 🛠️ Frameless 6-Step Onboarding & Calibration Wizard Custom frameless Tauri + Webview2 window with dynamic particle starfield canvas. Hardware RAM auto-detection to automatically recommend the right offline model ( tiny.en , base.en , small.en ). Interactive Microphone Tuning & Voice Calibration step with live audio peak meters and immediate dictation verification. Seamless transition to the full system Dashboard upon completion. 3. 🧵 Bulletproof AI STT Worker & Windows Engine Architecture CTranslate2 & OpenMP Multi-threading Fix : Solved the infamous OpenMP CPU inference deadlock on Windows by isolating model initialization and transcription into a dedicated Python Queue worker loop. float32 Universal Compute Engine : Standardized compute format to ensure compatibility across all CPU architectures (Intel & AMD) without quantization crashes. Thread-Safe Qt Signal Dispatching : Re-architected background thread-to-GUI communication to eliminate GetDC (Invalid window handle) errors. 4. 🔕 Stealth Tray Engine & Lifecycle Management Persistent Background Daemon : Closing the Dashboard now cleanly minimizes VoskFlow to the system tray so speech dictation is always on standby. Auto-Cleanup for Stale Processes : Built automated socket & process-mutex cleanup to prevent orphan zombie backends when restarting or developing. Tray Bridge : Open/close Dashboard anytime directly from the Windows notification tray menu. 🧠 Tech Stack Frontend : Tauri v2, Rust, HTML5/CSS3 Canvas (Particle Physics), JetBrains Mono AI Core : Faster-Whisper (CTranslate2 offline speech models) Audio & System : PyAudio, NumPy, PyQt6 (Translucent GUI overlays), Pynput (Low-level global hotkeys) Platform : Windows 11 / 10 🔮 What’s Next Exportable custom voice shortcuts and automation macros. Local custom vocabulary & dictionary substitution rules. Packaging into a self-contained one-click .exe installer. 100% offline. Zero telemetry. Your voice stays on your machine. 🔒...
|
1792482867.9627106
|
1793087667.9627106
|
|
39862
|
asistende holograma con ia by @jdaviddg077 | Stard asistende holograma con ia by @jdaviddg077 | Stardance...
|
jdaviddg077
|
1
|
67.42
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T01:28:11Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "este es un prototipo del proyecto no es la parte funcional lei e investige en youtube que esto se podia hacer y mi intencion es que ustedes vean que estoy trabajando en el esta es la parte base del peroyecto tambien agrege una ia es llama 3.2 3b en un redmi note 14 para que respondiera y lo hace muy rapido tambien lo intente con una 7b pero aunque respondio se tardo mucho en si esta es una muestra del proyecto", "repo": "https://github.com/jdaviddg077/holograma-asistente-de-ia-", "demo": ""}]...
|
[{"post_id": 61940, "ts": "202 [{"post_id": 61940, "ts": "2026-09-05T03:44:40Z", "hours": 0.5672, "text": "Hi, today we were working on adding more lighting and creating some more detailed spaces."}, {"post_id": 52059, "ts": "2026-08-22T03:16:23Z", "hours": 2.4222, "text": "Hi, today we assembled the sliding system for the hologram projector’s glass; should we paint it or leave it as is?"}, {"post_id": 51404, "ts": "2026-08-21T02:42:19Z", "hours": 1.5711, "text": "Hi! Today we were working on the system to make the hologram move 360 degrees."}, {"post_id": 50720, "ts": "2026-08-20T01:58:48Z", "hours": 1.3008, "text": "Hello again. Today we were cutting the glass and designing a mount that allows it to rotate 360 degrees."}, {"post_id": 45537, "ts": "2026-08-12T02:57:45Z", "hours": 4.0842, "text": "Hi! Today, we finally managed to integrate an AI into the HTML file."}, {"post_id": 44983, "ts": "2026-08-11T03:25:08Z", "hours": 0.3503, "text": "Hi, I’ve been doing quite a lot of things but I’ve had problems with Lapse, so I can’t post many hours at the moment, but I’ll keep in touch."}, {"post_id": 43676, "ts": "2026-08-09T02:31:52Z", "hours": 0.4533, "text": "Hi, today we built the prism for the project; it works quite well, but I’m going to try to improve it."}, {"post_id": 43039, "ts": "2026-08-08T02:54:22Z", "hours": 5.3339, "text": "Hi! Today we worked on the physical part of the hologram. It was a bit complicated, but it is fully functional. Templates for replicating it will be added soon."}, {"post_id": 42407, "ts": "2026-08-07T03:02:07Z", "hours": 9.9328, "text": "Hi, I’m building the website today. A lot of progress has already been made; the only thing left is to connect the AI to the HTML file."}, {"post_id": 41115, "ts": "2026-08-05T03:26:37Z", "hours": 10.4061, "text": "Day 6 of the hologram project: we made quite a few changes today. We started 3D animation, finished the personal website, and began work on the assistant’s website."}, {"post_id": 40461, "ts": "2026-08-04T00:25:13Z", "hours": 8.9503, "text": "Day 5, today we were doing some cheering and also some programming and"}, {"post_id": 39842, "ts": "2026-08-03T03:06:11Z", "hours": 7.3939, "text": "Day 4 of the hologram assistant project: today we built the base of the webpage and added some more animation. Yesterday I asked for a name for the female character, and the winner was @puerta , who suggested “Sisi”—so that’s her new name. Now we need a name for the Minecraft character."}, {"post_id": 39218, "ts": "2026-08-02T01:27:22Z", "hours": 6.8336, "text": "Day 3: Today I animated our second hologram assistant character, but I don’t know what name to give it. If anyone has any ideas for the characters, please write them in the comments."}, {"post_id": 38531, "ts": "2026-07-31T23:47:49Z", "hours": 5.1969, "text": "Day 2: Today I started doing a bit of everything. I began by practicing how to create HTML, then I worked on fixing the model, and after that, I started creating the first animation for the assistant I chose a Minecraft character. Here are the videos."}, {"post_id": 37883, "ts": "2026-07-30T21:29:37Z", "hours": 1.3939, "text": "Day 1: We modeled the base of the hologram where the objects will be placed for it to work"}, {"post_id": 37634, "ts": "2026-07-30T14:50:21Z", "hours": 1.57, "text": "Hello! Day 1 of the hologram assistant project. Today I’m drafting the project plans to give it its final shape; I’ll also be creating digital versions. This is just the first one—there are three in total—and I’ll be posting them later."}]...
|
Title: asistende holograma con ia by @jdaviddg077 Title: asistende holograma con ia by @jdaviddg077 | Stardance
Devlogs:
Hello! Day 1 of the hologram assistant project. Today I’m drafting the project plans to give it its final shape; I’ll also be creating digital versions. This is just the first one—there are three in total—and I’ll be posting them later.
Day 1: We modeled the base of the hologram where the objects will be placed for it to work
Day 2: Today I started doing a bit of everything. I began by practicing how to create HTML, then I worked on fixing the model, and after that, I started creating the first animation for the assistant I chose a Minecraft character. Here are the videos.
Day 3: Today I animated our second hologram assistant character, but I don’t know what name to give it. If anyone has any ideas for the characters, please write them in the comments.
Day 4 of the hologram assistant project: today we built the base of the webpage and added some more animation. Yesterday I asked for a name for the female character, and the winner was @puerta , who suggested “Sisi”—so that’s her new name. Now we need a name for the Minecraft character.
Day 5, today we were doing some cheering and also some programming and
Day 6 of the hologram project: we made quite a few changes today. We started 3D animation, finished the personal website, and began work on the assistant’s website.
Hi, I’m building the website today. A lot of progress has already been made; the only thing left is to connect the AI to the HTML file.
Hi! Today we worked on the physical part of the hologram. It was a bit complicated, but it is fully functional. Templates for replicating it will be added soon.
Hi, today we built the prism for the project; it works quite well, but I’m going to try to improve it.
Hi, I’ve been doing quite a lot of things but I’ve had problems with Lapse, so I can’t post many hours at the moment, but I’ll keep in touch.
Hi! Today, we finally managed to integrate an AI into the HTML file.
Hello again. Today we were cutting the glass and designing a mount that allows it to rotate 360 degrees.
Hi! Today we were working on the system to make the hologram move 360 degrees.
Hi, today we assembled the sliding system for the hologram projector’s glass; should we paint it or leave it as is?
Hi, today we were working on adding more lighting and creating some more detailed spaces.
Ships:
este es un prototipo del proyecto no es la parte funcional lei e investige en youtube que esto se podia hacer y mi intencion es que ustedes vean que estoy trabajando en el esta es la parte base del peroyecto tambien agrege una ia es llama 3.2 3b en un redmi note 14 para que respondiera y lo hace muy rapido tambien lo intente con una 7b pero aunque respondio se tardo mucho en si esta es una muestra del proyecto...
|
1792990567.70449
|
1793076967.70449
|
|
57535
|
Atom Simulator by @Rezz | Stardance
|
Rezz
|
1
|
67.08
|
1350
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T13:44:19Z", "hours": 65.0, "multiplier": 17.4, "payout": 1350, "blessing": "neutral", "text": "ATOM SIMULATOR!! Simulate an atom by adding subatomic particles manually or selecting elements directly from the periodic table and learn about every ground state isotope humanity has ever discovered! When I was starting this project I wanted to make something that I could show to others and be proud of it and this is what I have made! You can add any amount of subatomic particles and see the details of the isotope you have created. (Trust me there are many surprising combinations which actually exist). There are 3588 isotopes which exist in ground state and all are in the database of this project. This is a great opportunity to learn about the properties of every isotope in a fun and interactive way! What I built: :> The main canvas with the simulation of the atom. :> The element panel shows the information of the element you have created. :> The isotope panel gives you all the information about the current isotope you created and also visually highlights invalid isotopes, :> The control buttons let you ADD/REMOVE subatomic particles with full control. :> The periodic table with all the elements with proper buttons to jump to elements. :> Proper animation of the atom in the canvas. How I made it easy to use: :>Deployed it to GitHub pages so that anyone can easily access it without having to clone the repository. :> +10/-10 button help users to jump between atoms easily as well as see a satisfying animation. :> Added the ability to type in the desired number of subatomic particles for even more accessibility. :> The periodic table lets people jump to any desired element they want, so they do not have to struggle to reach any desired element. :> Made it so that the periodic table pops up with one click and disappears instantly when the user clicks an element or outside the table for a smooth and fast user experience. :> Colour coded each element in the periodic table depending on their types. :> If the user creates an invalid isotope, the isotope panels visually highlight it so that the user does not get confused. Technicalities A lot of things have been used in this project I have listed the things I learnt below: HTML5 Canvas Canvas Drawing Canvas Coordinate Systems requestAnimationFrame() Graphics / Animation Loops Mathematical Animation Polar / Circular Positioning Trigonometry in Programming Canvas Transformations 2.5D / Depth Illusion Painter’s Algorithm / Draw Order Dynamic Geometry State-Driven Graphics Data-Driven Application Design Managing Dynamic Object Collections Animation State Interpolated Animation Dynamic Numbers of Animated Objects Dynamic Shell Allocation UI State I am currently learning web development and these are my early steps. This is my first time using canvas so I gave it my best. The project may look very long in itself but it would have been way longer if you add the time spent reading documentation and watching videos about canvas Api. Since I started in stardance I have gone from not even knowing html syntax to here and I plan to further improve my understanding of canvas by making a game next. So, wish me luck. Please read the README for detailed explanation of my project!", "repo": "https://github.com/KartikeyaMishra-Ark/Atom-Simulation", "demo": "https://kartikeyamishra-ark.github.io/Atom-Simulation/"}]...
|
[{"post_id": 70719, "ts": "202 [{"post_id": 70719, "ts": "2026-09-19T17:27:55Z", "hours": 2.0822, "text": "Complete UI change!! The shipwrights told me my theme was very generic and looked very AI generated so I changed it into the theme of star charts used by astronomers in 17th-18th centuries. Renamed the periodic table to the atlas and over all made everything look like a diagram made on parchment. Also added a trail to the electrons to make it look a little bit more unique. My project is based on the Bohr model which was based on astronomy of that time which emerged from these star charts so I decided to use this theme to have a little personality and originality. Thanks for reading!!"}, {"post_id": 70545, "ts": "2026-09-19T10:33:05Z", "hours": 0.8514, "text": "Final Devlog is here guys after so many hours!! I have redone the UI to look less generic and a little more unique. The canvas is now having invisible borders so it blends in with the background. Added a header. Added red colour in case of invalid isotope and moved status to the to for better user experience. Also set the cap to 118 on both electrons and protons. Fixed the plus 10 button so it goes up to 118 instead of stopping if there is less than 10 electrons left to 118. That will be all I will ship this and other features will come in future updates like exit animations and ion panel. There is a lot more I could do but I have refined everything I made in this and that will be all for now as adding new things will create an unrefined product. I have set the default atom to chromium-24 just because it is not too small and not too big to help the users go lower and upward pretty quick. It was a long run and genuinely tough project. The amount of documentation I had to read was unreal. Thanks for reading!!!!!!!!!!!!!!"}, {"post_id": 70489, "ts": "2026-09-19T08:45:53Z", "hours": 5.8706, "text": "I have completed the animation now. The other electrons now move slowly into their new positions and make space for the incoming electron. I also made it so that it is fluid for +10 electrons as well. I also am moving towards my final UI so everything is black now instead of blue and I plan on making it more space like. Now comes the part where I tell you my struggles. I spent a lot of time trying to perfect the animation. To do this I had to make changes in a lot of my functions and I finally was at the end of my struggles after about 3 hours of work and there was just one bug I was unable to fix which was that whenever I spam added electrons they would go into one place and then teleport into their dedicated locations. To fix that I made a lot of changes. The problem was that the canvas was not giving new space assignment to the electron when it was being spam added and foolish me without committing decided to fix it and broke everything. I managed to break it so bad that program broke when adding a new shell. And because I had made so many changes I was not gonna spend another 3 hours fixing them one by one so I had no choice but to delete everything since the last commit which was my last devlog. and then I had to remake it from there. Lesson learnt. Thanks for reading!!!"}, {"post_id": 69615, "ts": "2026-09-17T12:54:50Z", "hours": 3.5044, "text": "I have finally added an animation to the addition of the electrons!! You can see in the video I have made it so that every added electron comes from outside the canvas and takes its place in the orbit. It is far from perfect right now but it’s the first step. The biggest problem in this was making sure it came in at the proper angle so it feels smooth and injects itself properly. I am thinking of animating the other electrons to slowly move and make space for the new electron so it doesn’t look like a flicker every electron added. The nucleus is still the same I am leaving it alone I will fix it in the end it’s too much for me. Also did a lot of CSS changes in the periodic table and the isotope panel and the control buttons. I am trying to make it look like an instrument more Than a button so hopefully it can happen. The next move is refining this animation and once it’s done I will redo the entire CSS to a space, science, observatory theme. Thanks for reading!!"}, {"post_id": 69163, "ts": "2026-09-16T14:35:00Z", "hours": 5.3294, "text": "This is making me give up guys. I cannot fix this nucleus this just isn’t working. I have been spending so many hours on this I used to do so much more daily but I just rage quit when I can’t fix this. You can see in the video is is still working in a sequence I cannot fix it. I did fix the flicker which happens every time a particle is added so it is very smooth now. also I added rotation to the shells by adjusting my already existing drawshell function. I made some changes in css though they are not noticable in the video as I removed most of them because the light theme didn’t suit the project. I am trying to make the theme more space and science like more like an observatory. I really wanna start on animations but I am holding it off for everything else to start working first. Thanks for reading!!"}, {"post_id": 68152, "ts": "2026-09-14T16:32:40Z", "hours": 6.3133, "text": "I am so freaking done with this!! I have been sitting here for so many hours trying to fix the nucleus and for some reason it is never working. I have created multiple new functions deleted those, changed those and one time is became a spiral pattern. Then I tried to randomise it and it became like a random splash. then the neutrons disappeared. then the count got messed up so every ten neutrons added get on screen. Then neutrons did not show up until we reached 24 of them. I tried every different way I could think of solving this but this is not working. At last I thought I should just go back to my old configuration because it was good enough but now it became like this and is overlapping into the first shell. I guess I deleted my old function where I had set its parameter to not overlap the inner shell but here we are. Also I found a way to make the periodic table work properly. It now pops up on screen so the user doesn’t have to scroll and disappears with th user input or if the user clicks the background. I will make it transparent in the future. Also I hope I can fix this nucleus this is so not it. Thanks for reading."}, {"post_id": 67356, "ts": "2026-09-13T13:10:52Z", "hours": 4.5983, "text": "COMPLETE CSS OVERHAUL. I have redone the entire CSS to make it look WAYYY better and you can see the results. I am adopting a dark theme. I do want it to look more like space but I will see to it later. I added a toggle function for the periodic table. It looks kind of useless now but what I wanna do is make it appear on the screen instead of appearing below so that the use can select without having to scroll. Also the nucleus must be catching your eye. I tried to randomise it but for some reason it is randomising every frame so I have to figure out how to fix it. I am pretty sure it is a very simple fix that I am wasting so much time on. Also changed the colour of the shell, electrons and nucleus and gave the particles a little glow for dramatic effect. Also gave the elements in the periodic table colours according to their categories like Alkali metals, noble gases etc. Next I am going to fix the nucleus. Make the periodic table appear on screen and try to make the UI look better. I am also thing of any features I can add. Thanks for reading!!"}, {"post_id": 66047, "ts": "2026-09-11T16:36:57Z", "hours": 8.6878, "text": "Sorry for so long undevlogged hours. First time I got a warning. I really procrastinate on devlogs. There are many changes I made, the first being the addition of radioactive/stable status, half-life, decay mode, spin/parity, and atomic mass into the isotope tab. My vision is that I want people to explore the isotopes when they play around manually with the subatomic particles. This increased my database for isotopes to 45k lines, hopefully the person who told me it’s ok to use AI for data collection was true. And for enhanced UX I added +10 and -10 buttons as well as the ability to type the number of electrons in. And the biggest and the most obvious update was the periodic table. I spent so long figuring it out. At first I tried doing the entire thing in CSS, but thankfully the array of elements with so many seemingly useless information I created at the start helped out and I was able to assign each of them groups and periods to look like a periodic table through JavaScript, but La and Ac were acting up because they kept going down to the f block. I moved them up but it still looks not as good. I then added each element on the table to be clickable and the user would instantly move to the desired element and be able to test what isotopes it has and also all their properties. Also I removed the configuration because I am making the Bohr model visible so it’s inaccurate to have the Aufbau configuration. I am 1000% going to do frequent devlogs please forgive me for my past 3 devlogs. Also I made sure the most commonly used isotope is there by default on the isotope panel when the periodic table is clicked. I think I will look how to make the UI better first as the periodic table being on the bottom feels so weird and bad UI because the user needs to scroll to see the change. I’ll think for a fix. Thanks for reading!!!!!"}, {"post_id": 63762, "ts": "2026-09-07T18:39:18Z", "hours": 8.0033, "text": "Now this is a big one! I have spent hours trying different ways to add isotopes to this. I thought I would add some common isotopes and not let the user make any other atom. Then I ditched it and tried to just say not in data. Then I tried to reduce the number of elements then I thought that how many isotopes can I actually add? So Iooked up on how many isotopes exist of all known elements I found a study of NUBASE in 2022 with 3588 ground state isotopes in their website. It had a lot of detail. I have used clause to parse it into a json file and it has 25k lines. I have asked the shipwrights and they said it’s fine so I did it. So now I have each possible ground state isotope and its basic properties in my project so I just linked it to javascript and then decided I wanted an entire window dedicated to isotopes and as my project had been bad for so long so I redid the html and finally touched css. Didn’t take me too long it has become very easy to create basic cards after my last project. Then I created a few functions for the isotopes which basically act as a validator which I made previously for protons. Also I deleted a lot of my code. So as seen in the video, Isotopes are divided into stable, radioactive and invalid. Any isotope which my database doesn’t have does not exist in ground state which is way bigger of a scale I was thinking about so I am proud of it. Also the name and symbol have been changed as well. the css looks very bad as I just did it very fast so that it at least looks like it is real. Next is redoing the nucleus to increase the randomisation and maybe I am thinking of redoing the isotopes window and the UI. Mostly thinking of working on UI now but idk what I do tomorrow. Thanks for reading!!"}, {"post_id": 62851, "ts": "2026-09-06T11:40:28Z", "hours": 6.7181, "text": "Very long devlog here. I have added a lot of stuff and have failed to add a lot of stuff too. The first task at my hand was making the nucleus into individual particles.The problem I ran into was when there were less than 14 nuclear particles they were too far away from each other. So I made a few if statements for better alignment in lower atomic number elements. Then I added colours for identification I will change them in the future. After adding colour I saw that the protons and neutrons aren’t mixing and are forming rings instead and so far I cannot fix it. Next thing I added was electronic configuration. I have used Aufbau’s principle for the electronic configuration which is kinda inaccurate as my model doesn’t use it but I added it because I can. Also I have not added all the exceptions like chromium. The next step was adding ions and isotopes. I spent so much time adding isotopes and failed terribly but the ions have been working out. Currently they are also inaccurate because I have yet to add a block for impossible structures and also the names just add ion instead of saying oxide or chloride. There is a type section currently because I first added just anion neutral and cation detector but then decided I want all ions and isotopes as well. The most amount of time spent this time is for sure the failure of my isotopes addition. Also I have been tweaking the tilts to make them look better. My devlog makes it look simple but it took so much freaking trial and error to do all this I am seriously burned out now. But it’s too fun for me to stop. Thanks for reading!!"}, {"post_id": 62205, "ts": "2026-09-05T13:55:38Z", "hours": 2.9883, "text": "I have now added buttons for user to add and remove subatomic particles. The neutrons are kind of useless because I have currently linked it to the periodic table I added to the code (yes I added all the elements as mentioned in previous devlogs). So the atomic mass is hardcoded for every element but in the future I will switch back to mass number when I add isotopes to the this. And now the most obvious change. I have added a tilt to all the electron paths and the shells so that I can have a 3d effect. I looked up on how to make this 3d and decided it was wayyy too out of my league, though what I am doing is already out of it, but I decided I will try a 2.5d style and this is as far as I have gotten. I have also made it so that the outer shells move faster than inner ones for better effect. It looks kinda ugly as I have neglected css but I am waiting for a general structure to be finished before I do that. I have to say that canvas is very complicated. And I am having to use a lot of loops and I am having difficulty understanding my own code. I hope by moving forwards I can get more comfortable with all this. Thanks for reading!!"}, {"post_id": 62052, "ts": "2026-09-05T08:52:41Z", "hours": 2.5119, "text": "I have added functions to calculate the mass number and the charge on each configuration. Then I have added the properties of each element in the periodic table into the code and made a div so that it can be seen in the web page. In the video below I am changing the number of electrons and protons to showcase it working I am yet to add an input on the screen. Also for each element I have added its atomic number, symbol, name, atomic mass, period, group and category. I believe it will prove useful in the future when I add a proper description. I am also going to add isotopes in the future. It was very boring to copy all the elements from he periodic table though. Thanks for reading!! edit: I just noticed a bug. I am not changing the number of neutrons so the mass number is wrong in every case. As I set the detection of each element by the number of protons I didn’t realise it. Sorry for the error"}, {"post_id": 61724, "ts": "2026-09-04T19:24:00Z", "hours": 2.265, "text": "The visual difference in this update may not look a lot but the code has changed a lot. Previously all of the stuff was just hardcoded values and now I have turned them all into proper dynamic values. I have given it a configuration to accommodate all 118 elements properly. Also made it so that the increasing number of shells reduces the spacing so the shells don’t clip out of bounds. Also having lesser shells spreads them out more so it looks zoomed in. All seems to work fine now. Almost all hardcoded values are turned into functions so I am going to try to add a way so the user can directly add an electron to the system. I am yet to touch the protons it’s still just balls revolving in a certain configuration, far from my vision. Thanks for reading!!"}, {"post_id": 61588, "ts": "2026-09-04T16:00:47Z", "hours": 4.2703, "text": "So I redid all the code of the javascript. I created different functions for the shells, nucleus and the electrons. After that I made a loop for the electrons so that they spawn in the shell structure of 2,8,8 and don’t overlap and another loop inside that to make sure that they all are revolving around the nucleus in their own shells. Then I made a loop for the shells with the same calculation of the radius so that they form properly along the revolving electrons. And damn was all of that hard to understand and create. In my previous projects I had not worked much with loops so I had to learn all about them and damn does this project use a lot of maths. It’s lowkey kind of fun playing with numbers and seeing varying results on screen. I think I will have to ditch these functions in the future because my end goal is to get all the 118 elements in there but this is an important learning step for me. Thanks for reading!!"}, {"post_id": 61336, "ts": "2026-09-04T06:26:06Z", "hours": 0.7969, "text": "Finally figured out how to move the electron along the path. Had to use Sine and Cosines to designate the movement. One problem which came up was that the new frame was not erasing the previous position of the electron so I did a clearRect so erase the previous frame but it currently is clearing everything including the shell and the nucleus. I am going to re write everything into separate functions to fix it."}, {"post_id": 61172, "ts": "2026-09-03T23:32:27Z", "hours": 1.9469, "text": "This project is kind of ambitious for me as it is a complicated one, but as a science. student I have always wanted to build something like this. I just spent a couple of hours experimenting and learning about canvas. First time using it. I really love that I have to use maths, physics and chemistry to make a project. The vision I have with this project is having a way to add electrons and protons and neutrons to make different elements and their isotopes. I will try to get then entire periodic table. And as my previous projects I don’t know how I will do it. I will learn as I build. This is very fun so far and I hope it doesn’t take as long as the last one. Thanks for reading!!"}]...
|
Title: Atom Simulator by @Rezz | Stardance
Devlog Title: Atom Simulator by @Rezz | Stardance
Devlogs:
This project is kind of ambitious for me as it is a complicated one, but as a science. student I have always wanted to build something like this. I just spent a couple of hours experimenting and learning about canvas. First time using it. I really love that I have to use maths, physics and chemistry to make a project. The vision I have with this project is having a way to add electrons and protons and neutrons to make different elements and their isotopes. I will try to get then entire periodic table. And as my previous projects I don’t know how I will do it. I will learn as I build. This is very fun so far and I hope it doesn’t take as long as the last one. Thanks for reading!!
Finally figured out how to move the electron along the path. Had to use Sine and Cosines to designate the movement. One problem which came up was that the new frame was not erasing the previous position of the electron so I did a clearRect so erase the previous frame but it currently is clearing everything including the shell and the nucleus. I am going to re write everything into separate functions to fix it.
So I redid all the code of the javascript. I created different functions for the shells, nucleus and the electrons. After that I made a loop for the electrons so that they spawn in the shell structure of 2,8,8 and don’t overlap and another loop inside that to make sure that they all are revolving around the nucleus in their own shells. Then I made a loop for the shells with the same calculation of the radius so that they form properly along the revolving electrons. And damn was all of that hard to understand and create. In my previous projects I had not worked much with loops so I had to learn all about them and damn does this project use a lot of maths. It’s lowkey kind of fun playing with numbers and seeing varying results on screen. I think I will have to ditch these functions in the future because my end goal is to get all the 118 elements in there but this is an important learning step for me. Thanks for reading!!
The visual difference in this update may not look a lot but the code has changed a lot. Previously all of the stuff was just hardcoded values and now I have turned them all into proper dynamic values. I have given it a configuration to accommodate all 118 elements properly. Also made it so that the increasing number of shells reduces the spacing so the shells don’t clip out of bounds. Also having lesser shells spreads them out more so it looks zoomed in. All seems to work fine now. Almost all hardcoded values are turned into functions so I am going to try to add a way so the user can directly add an electron to the system. I am yet to touch the protons it’s still just balls revolving in a certain configuration, far from my vision. Thanks for reading!!
I have added functions to calculate the mass number and the charge on each configuration. Then I have added the properties of each element in the periodic table into the code and made a div so that it can be seen in the web page. In the video below I am changing the number of electrons and protons to showcase it working I am yet to add an input on the screen. Also for each element I have added its atomic number, symbol, name, atomic mass, period, group and category. I believe it will prove useful in the future when I add a proper description. I am also going to add isotopes in the future. It was very boring to copy all the elements from he periodic table though. Thanks for reading!! edit: I just noticed a bug. I am not changing the number of neutrons so the mass number is wrong in every case. As I set the detection of each element by the number of protons I didn’t realise it. Sorry for the error
I have now added buttons for user to add and remove subatomic particles. The neutrons are kind of useless because I have currently linked it to the periodic table I added to the code (yes I added all the elements as mentioned in previous devlogs). So the atomic mass is hardcoded for every element but in the future I will switch back to mass number when I add isotopes to the this. And now the most obvious change. I have added a tilt to all the electron paths and the shells so that I can have a 3d effect. I looked up on how to make this 3d and decided it was wayyy too out of my league, though what I am doing is already out of it, but I decided I will try a 2.5d style and this is as far as I have gotten. I have also made it so that the outer shells move faster than inner ones for better effect. It looks kinda ugly as I have neglected css but I am waiting for a general structure to be finished before I do that. I have to say that canvas is very complicated. And I am having to use a lot of loops and I am having difficulty understanding my own code. I hope by moving forwards I can get more comfortable with all this. Thanks for reading!!
Very long devlog here. I have added a lot of stuff and have failed to add a lot of stuff too. The first task at my hand was making the nucleus into individual particles.The problem I ran into was when there were less than 14 nuclear particles they were too far away from each other. So I made a few if statements for better alignment in lower atomic number elements. Then I added colours for identification I will change them in the future. After adding colour I saw that the protons and neutrons aren’t mixing and are forming rings instead and so far I cannot fix it. Next thing I added was electronic configuration. I have used Aufbau’s principle for the electronic configuration which is kinda inaccurate as my model doesn’t use it but I added it because I can. Also I have not added all the exceptions like chromium. The next step was adding ions and isotopes. I spent so much time adding isotopes and failed terribly but the ions have been working out. Currently they are also inaccurate because I have yet to add a block for impossible structures and also the names just add ion instead of saying oxide or chloride. There is a type section currently because I first added just anion neutral and cation detector but then decided I want all ions and isotopes as well. The most amount of time spent this time is for sure the failure of my isotopes addition. Also I have been tweaking the tilts to make them look better. My devlog makes it look simple but it took so much freaking trial and error to do all this I am seriously burned out now. But it’s too fun for me to stop. Thanks for reading!!
Now this is a big one! I have spent hours trying different ways to add isotopes to this. I thought I would add some common isotopes and not let the user make any other atom. Then I ditched it and tried to just say not in data. Then I tried to reduce the number of elements then I thought that how many isotopes can I actually add? So Iooked up on how many isotopes exist of all known elements I found a study of NUBASE in 2022 with 3588 ground state isotopes in their website. It had a lot of detail. I have used clause to parse it into a json file and it has 25k lines. I have asked the shipwrights and they said it’s fine so I did it. So now I have each possible ground state isotope and its basic properties in my project so I just linked it to javascript and then decided I wanted an entire window dedicated to isotopes and as my project had been bad for so long so I redid the html and finally touched css. Didn’t take me too long it has become very easy to create basic cards after my last project. Then I created a few functions for the isotopes which basically act as a validator which I made previously for protons. Also I deleted a lot of my code. So as seen in the video, Isotopes are divided into stable, radioactive and invalid. Any isotope which my database doesn’t have does not exist in ground state which is way bigger of a scale I was thinking about so I am proud of it. Also the name and symbol have been changed as well. the css looks very bad as I just did it very fast so that it at least looks like it is real. Next is redoing the nucleus to increase the randomisation and maybe I am thinking of redoing the isotopes window and the UI. Mostly thinking of working on UI now but idk what I do tomorrow. Thanks for reading!!
Sorry for so long undevlogged hours. First time I got a warning. I really procrastinate on devlogs. There are many changes I made, the first being the addition of radioactive/stable status, half-life, decay mode, spin/parity, and atomic mass into the isotope tab. My vision is that I want people to explore the isotopes when they play around manually with the subatomic particles. This increased my database for isotopes to 45k lines, hopefully the person who told me it’s ok to use AI for data collection was true. And for enhanced UX I added +10 and -10 buttons as well as the ability to type the number of electrons in. And the biggest and the most obvious update was the periodic table. I spent so long figuring it out. At first I tried doing the entire thing in CSS, but thankfully the array of elements with so many seemingly useless information I created at the start helped out and I was able to assign each of them groups and periods to look like a periodic table through JavaScript, but La and Ac were acting up because they kept going down to the f block. I moved them up but it still looks not as good. I then added each element on the table to be clickable and the user would instantly move to the desired element and be able to test what isotopes it has and also all their properties. Also I removed the configuration because I am making the Bohr model visible so it’s inaccurate to have the Aufbau configuration. I am 1000% going to do frequent devlogs please forgive me for my past 3 devlogs. Also I made sure the most commonly used isotope is there by default on the isotope panel when the periodic table is clicked. I think I will look how to make the UI better first as the periodic table being on the bottom feels so weird and bad UI because the user needs to scroll to see the change. I’ll think for a fix. Thanks for reading!!!!!
COMPLETE CSS OVERHAUL. I have redone the entire CSS to make it look WAYYY better and you can see the results. I am adopting a dark theme. I do want it to look more like space but I will see to it later. I added a toggle function for the periodic table. It looks kind of useless now but what I wanna do is make it appear on the screen instead of appearing below so that the use can select without having to scroll. Also the nucleus must be catching your eye. I tried to randomise it but for some reason it is randomising every frame so I have to figure out how to fix it. I am pretty sure it is a very simple fix that I am wasting so much time on. Also changed the colour of the shell, electrons and nucleus and gave the particles a little glow for dramatic effect. Also gave the elements in the periodic table colours according to their categories like Alkali metals, noble gases etc. Next I am going to fix the nucleus. Make the periodic table appear on screen and try to make the UI look better. I am also thing of any features I can add. Thanks for reading!!
I am so freaking done with this!! I have been sitting here for so many hours trying to fix the nucleus and for some reason it is never working. I have created multiple new functions deleted those, changed those and one time is became a spiral pattern. Then I tried to randomise it and it became like a random splash. then the neutrons disappeared. then the count got messed up so every ten neutrons added get on screen. Then neutrons did not show up until we reached 24 of them. I tried every different way I could think of solving this but this is not working. At last I thought I should just go back to my old configuration because it was good enough but now it became like this and is overlapping into the first shell. I guess I deleted my old function where I had set its parameter to not overlap the inner shell but here we are. Also I found a way to make the periodic table work properly. It now pops up on screen so the user doesn’t have to scroll and disappears with th user input or if the user clicks the background. I will make it transparent in the future. Also I hope I can fix this nucleus this is so not it. Thanks for reading.
This is making me give up guys. I cannot fix this nucleus this just isn’t working. I have been spending so many hours on this I used to do so much more daily but I just rage quit when I can’t fix this. You can see in the video is is still working in a sequence I cannot fix it. I did fix the flicker which happens every time a particle is added so it is very smooth now. also I added rotation to the shells by adjusting my already existing drawshell function. I made some changes in css though they are not noticable in the video as I removed most of them because the light theme didn’t suit the project. I am trying to make the theme more space and science like more like an observatory. I really wanna start on animations but I am holding it off for everything else to start working first. Thanks for reading!!
I have finally added an animation to the addition of the electrons!! You can see in the video I have made it so that every added electron comes from outside the canvas and takes its place in the orbit. It is far from perfect right now but it’s the first step. The biggest problem in this was making sure it came in at the proper angle so it feels smooth and injects itself properly. I am thinking of animating the other electrons to slowly move and make space for the new electron so it doesn’t look like a flicker every electron added. The nucleus is still the same I am leaving it alone I will fix it in the end it’s too much for me. Also did a lot of CSS changes in the periodic table and the isotope panel and the control buttons. I am trying to make it look like an instrument more Than a button so hopefully it can happen. The next move is refining this animation and once it’s done I will redo the entire CSS to a space, science, observatory theme. Thanks for reading!!
I have completed the animation now. The other electrons now move slowly into their new positions and make space for the incoming electron. I also made it so that it is fluid for +10 electrons as well. I also am moving towards my final UI so everything is black now instead of blue and I plan on making it more space like. Now comes the part where I tell you my struggles. I spent a lot of time trying to perfect the animation. To do this I had to make changes in a lot of my functions and I finally was at the end of my struggles after about 3 hours of work and there was just one bug I was unable to fix which was that whenever I spam added electrons they would go into one place and then teleport into their dedicated locations. To fix that I made a lot of changes. The problem was that the canvas was not giving new space assignment to the electron when it was being spam added and foolish me without committing decided to fix it and broke everything. I managed to break it so bad that program broke when adding a new shell. And because I had made so many changes I was not gonna spend another 3 hours fixing them one by one so I had no choice but to delete everything since the last commit which was my last devlog. and then I had to remake it from there. Lesson learnt. Thanks for reading!!!
Final Devlog is here guys after so many hours!! I have redone the UI to look less generic and a little more unique. The canvas is now having invisible borders so it blends in with the background. Added a header. Added red colour in case of invalid isotope and moved status to the to for better user experience. Also set the cap to 118 on both electrons and protons. Fixed the plus 10 button so it goes up to 118 instead of stopping if there is less than 10 electrons left to 118. That will be all I will ship this and other features will come in future updates like exit animations and ion panel. There is a lot more I could do but I have refined everything I made in this and that will be all for now as adding new things will create an unrefined product. I have set the default atom to chromium-24 just because it is not too small and not too big to help the users go lower and upward pretty quick. It was a long run and genuinely tough project. The amount of documentation I had to read was unreal. Thanks for reading!!!!!!!!!!!!!!
Complete UI change!! The shipwrights told me my theme was very generic and looked very AI generated so I changed it into the theme of star charts used by astronomers in 17th-18th centuries. Renamed the periodic table to the atlas and over all made everything look like a diagram made on parchment. Also added a trail to the electrons to make it look a little bit more unique. My project is based on the Bohr model which was based on astronomy of that time which emerged from these star charts so I decided to use this theme to have a little personality and originality. Thanks for reading!!
Ships:
ATOM SIMULATOR!! Simulate an atom by adding subatomic particles manually or selecting elements directly from the periodic table and learn about every ground state isotope humanity has ever discovered! When I was starting this project I wanted to make something that I could show to others and be proud of it and this is what I have made! You can add any amount of subatomic particles and see the details of the isotope you have created. (Trust me there are many surprising combinations which actually exist). There are 3588 isotopes which exist in ground state and all are in the database of this project. This is a great opportunity to learn about the properties of every isotope in a fun and interactive way! What I built: :> The main canvas with the simulation of the atom. :> The element panel shows the information of the element you have created. :> The isotope panel gives you all the information about the current isotope you created and also visually highlights invalid isotopes, :> The control buttons let you ADD/REMOVE subatomic particles with full control. :> The periodic table with all the elements with proper buttons to jump to elements. :> Proper animation of the atom in the canvas. How I made it easy to use: :>Deployed it to GitHub pages so that anyone can easily access it without having to clone the repository. :> +10/-10 button help users to jump between atoms easily as well as see a satisfying animation. :> Added the ability to type in the desired number of subatomic particles for even more accessibility. :> The periodic table lets people jump to any desired element they want, so they do not have to struggle to reach any desired element. :> Made it so that the periodic table pops up with one click and disappears instantly when the user clicks an element or outside the table for a smooth and fast user experience. :> Colour coded each element in the periodic table depending on their types. :> If the user creates an invalid isotope, the isotope panels visually highlight it so that the user does not get confused. Technicalities A lot of things have been used in this project I have listed the things I learnt below: HTML5 Canvas Canvas Drawing Canvas Coordinate Systems requestAnimationFrame() Graphics / Animation Loops Mathematical Animation Polar / Circular Positioning Trigonometry in Programming Canvas Transformations 2.5D / Depth Illusion Painter’s Algorithm / Draw Order Dynamic Geometry State-Driven Graphics Data-Driven Application Design Managing Dynamic Object Collections Animation State Interpolated Animation Dynamic Numbers of Animated Objects Dynamic Shell Allocation UI State I am currently learning web development and these are my early steps. This is my first time using canvas so I gave it my best. The project may look very long in itself but it would have been way longer if you add the time spent reading documentation and watching videos about canvas Api. Since I started in stardance I have gone from not even knowing html syntax to here and I plan to further improve my understanding of canvas by making a game next. So, wish me luck. Please read the README for detailed explanation of my project!...
|
1793004986.1143143
|
1793091386.1143143
|
|
26680
|
An Awwwards-level portfolio website by @trung_nguy An Awwwards-level portfolio website by @trung_nguyen | Stardance...
|
trung_nguyen
|
0
|
67.05
|
0
|
[]
|
[{"post_id": 32378, "ts": "202 [{"post_id": 32378, "ts": "2026-07-21T14:47:36Z", "hours": 4.4678, "text": "it’s been a hot minute since the last log. i went home for the holidays and fully unplugged — didn’t touch the repo for like 1 week, so the portfolio just sat there gathering dust. anyway i’m back and i actually shipped a good chunk, so let me catch up. manifesto: a quiet moment on the site, no webgpu, just four lines of text. i split them with SplitText and clip a gray→ink gradient to the glyphs, then scroll slides the background so the dark ink fills each line in from the left. once they’re all dark the whole section fades to ink and the text flips to cream — it inverts into the footer palette right before it unpins. annoying bug: the pin adds 300% scroll and the footer triggers (created earlier) fired too early, so i sort into document order and refresh after the split. footer: classic big mailto headline with a hover underline wipe, socials, and a bottom bar. everything reveals on one timeline when it scrolls in. back-to-top routes through lenis for a smooth scroll with an instant fallback. footer image: the starry-night img has a tiny webgpu canvas on top that copies its object-cover crop, so mousing over it warps the pixels with a little chromatic aberration. the distortion is a cpu grid (base 15, capped 128) — splat pointer velocity into nearby cells, relax back to zero each frame, write it into an 8-bit RG DataTexture the shader samples. and it’s lazy: an IntersectionObserver only mounts the canvas near the viewport, frameloop off when it’s not on screen, plain as the fallback. costs nothing till you scroll to it."}, {"post_id": 27168, "ts": "2026-07-12T14:17:35Z", "hours": 5.2806, "text": "featured work section: the design is the classic table: four columns — website, category, services, year — with a massive “Featured Work” headline on top. i made the title do a little type trick: “Featured” is just an outline (transparent fill + text-stroke) and “Work” is solid, both bold and stretched to the full width of the screen. cheap to render, looks like i tried way harder than i did. the fun part is the hover. when you mouse over a row, a preview image of that project fades in and follows your cursor around. i used gsap quickTo for the x/y so the image trails the mouse with this smooth lag instead of being glued to it, and i feed the horizontal mouse velocity into a slight rotation so the card tilts in the direction you’re moving. tiny detail, sells the whole thing. also learned the hard way that you need to snap the preview to the cursor BEFORE the first fade-in, otherwise it flies in from wherever it was last time. one gsap.set and the jank is gone. the annoying part: this section doesn’t live on the page like a normal section. it sits inside the techstack pin from #4, behind that ink parabola that swallows the screen. so a regular scrolltrigger inside it just fires at the wrong time — the element is pinned at the top of the viewport the entire time, the trigger math is meaningless. took me a minute to accept that the reveal can’t belong to the section at all. it has to be part of the parent timeline. so right after the parabola covers everything, the same scrub that drove the logos now raises the title and cascades the rows in one by one. projects in the table are mock data with placeholder svgs for now. the site has a featured work section and no actual featured work. next step is filling it with real projects."}, {"post_id": 24696, "ts": "2026-07-08T13:49:21Z", "hours": 12.2989, "text": "so the face particles look great on my machine but the second i opened the site on a cheaper laptop my heart sank. it was chugging. like slideshow chugging. and this whole project has one rule i promised myself: silky on high-end, but still actually usable on low-end. so a section that only runs well on my own gpu is basically a broken section. i tried everything to save it. dropped the particle count way down, then dropped it again. wired up the frameloop so the canvas only renders when it’s actually on screen and pauses when you scroll away or tab out. all of that helped a bit but not enough — it was still the heaviest thing on the page by a mile and the low-end numbers barely moved. at some point you have to admit the effect just wants more gpu than i’m allowed to spend. so i’m parking the face for now (code’s still there, i’ll come back to it) and building out the tech stack section instead, something that leans on scroll and layout instead of the gpu. the idea: your logos stream across the screen as you scroll while a big “Techstack” headline sits locked in the center. but they don’t just slide past in a straight line — each card arcs above or below the center line and curves around the headline, like the text has gravity and the logos are in orbit around it. cards on even positions bend one way, odd ones bend the other, so it reads as this constant weave flowing past the title. the fun part is the math is all cpu, basically free. the row scrolls horizontally on a pinned scrolltrigger, and every frame i just measure where each card is relative to the headline. the closer a card gets to the title, the more it lifts off the center line to clear it (so nothing ever overlaps the text), and it eases back down as it leaves — that’s the orbit curve. i also give cards a little scale bump right as they cross the middle of the screen so there’s a soft focal point in the center. no shaders, no particles, no webgpu. runs smooth everywhere, which is the whole point."}, {"post_id": 20779, "ts": "2026-07-02T13:59:24Z", "hours": 6.3878, "text": "About me section time. I went looking at how other people do theirs and it’s always the same move: a nice portrait photo, big and confident. which is a problem for me because… I don’t have a single cool picture of myself lol. i’m a bit camera shy and every photo i have looks like a hostage situation. So instead of just taking a better photo like a normal person, my brain went “why not 3d scan your face?”. found out you can do it with just a phone camera, downloaded polycam, walked around my own head like an idiot for 10 minutes and… it looked TERRIBLE. like melted wax figure terrible. i felt genuinely bad about it ngl. So i did what i always do when i feel bad: dumb scrolling through awwwards sites of the day. and one of them saved me — a site with a 3d face made entirely of particles. no skin, no texture, just points floating in space. that was it. Plain particles were kinda monotonous though, everything just sat there dead still. so i ran curl noise over the cloud and now the whole surface drifts like it’s breathing. instant life. of course nothing works first try. my first version had a depth test problem where the BACK of my head was blending through my face, so i had eyes and hair occupying the same pixels :)). ended up going into blender and rendering out a depth image of just the front of my face, then rebuilt the 3d from that depth map instead of the raw scan. each particle samples the portrait for its position, brightness and size, and instead of a real depth-of-field pass i just fade particles the further they sit from a focus plane — looks like bokeh, costs nothing. The section hooks into the opening sequence from #2: the shutter bar squares up, expands out to the screen edges and opens straight onto the face. dither background fades itself out on the way so the particles get a clean dark void to float in."}, {"post_id": 20028, "ts": "2026-07-01T15:05:45Z", "hours": 16.0897, "text": "Ok so this section basically ate my whole week lol. like 15 hours for ONE page?? and the crazy part is i wasn’t even doing design, i just kept trying random ideas until one felt right. The whole thing is based on “The Creation of Adam” (that famous painting with the two hands almost touching). I thought it’d be sick to have two hands slide in from both sides while the hero closes, kinda like the split second before the fingers touch.i built the hands like 3 times ngl: first in 3d with three.js. looked cool but felt way too heavy and kinda too on the nose then i did an ascii version where the letters react to your mouse. way more my style but still not it and finally pixels, which is the one i kept. each hand is a grid of pixels that twinkle by themselves and light up when you hover, and the pixel sizes give it this little depth thing. This one just clickedalso threw in two lines of giant scrolling text with gsap, hellos on top and a lil manifesto on the bottom, they slide in when the shutter covers the hero. The one thing killing me rn is the colors. they’re just kinda mid honestly. so i think i’m gonna do some research, and repaint the whole site properly."}, {"post_id": 17597, "ts": "2026-06-28T13:46:47Z", "hours": 22.5236, "text": "I’ve been working on my portfolio for quite some time now. It’s not just about coding — it also involves design, research, and many other details. Choosing the right color palette, fonts, and sizes turned out to be much harder than I expected. Even though the planning phase took a while, I’ve finally started coding. So far, I’ve completed the preloader and the hero section. Preloader The preloader features a smooth loading bar. Once it fills up, it expands and fades out gracefully, revealing the hero section with a nice fade-in transition. Hero Section (My Favorite Part!) This is the section I’m most proud of. I used GSAP for all the text animations and Three.js for the interactive background. The background combines a dithered Bayer effect with a beautiful liquid flow simulation that reacts to mouse movement. The trailing effect feels incredibly smooth and immersive — it really makes the whole hero section feel special and unique. I already have plans for the upcoming sections and I’m really excited to bring them to life!"}]...
|
Title: An Awwwards-level portfolio website by @tru Title: An Awwwards-level portfolio website by @trung_nguyen | Stardance
Devlogs:
I’ve been working on my portfolio for quite some time now. It’s not just about coding — it also involves design, research, and many other details. Choosing the right color palette, fonts, and sizes turned out to be much harder than I expected. Even though the planning phase took a while, I’ve finally started coding. So far, I’ve completed the preloader and the hero section. Preloader The preloader features a smooth loading bar. Once it fills up, it expands and fades out gracefully, revealing the hero section with a nice fade-in transition. Hero Section (My Favorite Part!) This is the section I’m most proud of. I used GSAP for all the text animations and Three.js for the interactive background. The background combines a dithered Bayer effect with a beautiful liquid flow simulation that reacts to mouse movement. The trailing effect feels incredibly smooth and immersive — it really makes the whole hero section feel special and unique. I already have plans for the upcoming sections and I’m really excited to bring them to life!
Ok so this section basically ate my whole week lol. like 15 hours for ONE page?? and the crazy part is i wasn’t even doing design, i just kept trying random ideas until one felt right. The whole thing is based on “The Creation of Adam” (that famous painting with the two hands almost touching). I thought it’d be sick to have two hands slide in from both sides while the hero closes, kinda like the split second before the fingers touch.i built the hands like 3 times ngl: first in 3d with three.js. looked cool but felt way too heavy and kinda too on the nose then i did an ascii version where the letters react to your mouse. way more my style but still not it and finally pixels, which is the one i kept. each hand is a grid of pixels that twinkle by themselves and light up when you hover, and the pixel sizes give it this little depth thing. This one just clickedalso threw in two lines of giant scrolling text with gsap, hellos on top and a lil manifesto on the bottom, they slide in when the shutter covers the hero. The one thing killing me rn is the colors. they’re just kinda mid honestly. so i think i’m gonna do some research, and repaint the whole site properly.
About me section time. I went looking at how other people do theirs and it’s always the same move: a nice portrait photo, big and confident. which is a problem for me because… I don’t have a single cool picture of myself lol. i’m a bit camera shy and every photo i have looks like a hostage situation. So instead of just taking a better photo like a normal person, my brain went “why not 3d scan your face?”. found out you can do it with just a phone camera, downloaded polycam, walked around my own head like an idiot for 10 minutes and… it looked TERRIBLE. like melted wax figure terrible. i felt genuinely bad about it ngl. So i did what i always do when i feel bad: dumb scrolling through awwwards sites of the day. and one of them saved me — a site with a 3d face made entirely of particles. no skin, no texture, just points floating in space. that was it. Plain particles were kinda monotonous though, everything just sat there dead still. so i ran curl noise over the cloud and now the whole surface drifts like it’s breathing. instant life. of course nothing works first try. my first version had a depth test problem where the BACK of my head was blending through my face, so i had eyes and hair occupying the same pixels :)). ended up going into blender and rendering out a depth image of just the front of my face, then rebuilt the 3d from that depth map instead of the raw scan. each particle samples the portrait for its position, brightness and size, and instead of a real depth-of-field pass i just fade particles the further they sit from a focus plane — looks like bokeh, costs nothing. The section hooks into the opening sequence from #2: the shutter bar squares up, expands out to the screen edges and opens straight onto the face. dither background fades itself out on the way so the particles get a clean dark void to float in.
so the face particles look great on my machine but the second i opened the site on a cheaper laptop my heart sank. it was chugging. like slideshow chugging. and this whole project has one rule i promised myself: silky on high-end, but still actually usable on low-end. so a section that only runs well on my own gpu is basically a broken section. i tried everything to save it. dropped the particle count way down, then dropped it again. wired up the frameloop so the canvas only renders when it’s actually on screen and pauses when you scroll away or tab out. all of that helped a bit but not enough — it was still the heaviest thing on the page by a mile and the low-end numbers barely moved. at some point you have to admit the effect just wants more gpu than i’m allowed to spend. so i’m parking the face for now (code’s still there, i’ll come back to it) and building out the tech stack section instead, something that leans on scroll and layout instead of the gpu. the idea: your logos stream across the screen as you scroll while a big “Techstack” headline sits locked in the center. but they don’t just slide past in a straight line — each card arcs above or below the center line and curves around the headline, like the text has gravity and the logos are in orbit around it. cards on even positions bend one way, odd ones bend the other, so it reads as this constant weave flowing past the title. the fun part is the math is all cpu, basically free. the row scrolls horizontally on a pinned scrolltrigger, and every frame i just measure where each card is relative to the headline. the closer a card gets to the title, the more it lifts off the center line to clear it (so nothing ever overlaps the text), and it eases back down as it leaves — that’s the orbit curve. i also give cards a little scale bump right as they cross the middle of the screen so there’s a soft focal point in the center. no shaders, no particles, no webgpu. runs smooth everywhere, which is the whole point.
featured work section: the design is the classic table: four columns — website, category, services, year — with a massive “Featured Work” headline on top. i made the title do a little type trick: “Featured” is just an outline (transparent fill + text-stroke) and “Work” is solid, both bold and stretched to the full width of the screen. cheap to render, looks like i tried way harder than i did. the fun part is the hover. when you mouse over a row, a preview image of that project fades in and follows your cursor around. i used gsap quickTo for the x/y so the image trails the mouse with this smooth lag instead of being glued to it, and i feed the horizontal mouse velocity into a slight rotation so the card tilts in the direction you’re moving. tiny detail, sells the whole thing. also learned the hard way that you need to snap the preview to the cursor BEFORE the first fade-in, otherwise it flies in from wherever it was last time. one gsap.set and the jank is gone. the annoying part: this section doesn’t live on the page like a normal section. it sits inside the techstack pin from #4, behind that ink parabola that swallows the screen. so a regular scrolltrigger inside it just fires at the wrong time — the element is pinned at the top of the viewport the entire time, the trigger math is meaningless. took me a minute to accept that the reveal can’t belong to the section at all. it has to be part of the parent timeline. so right after the parabola covers everything, the same scrub that drove the logos now raises the title and cascades the rows in one by one. projects in the table are mock data with placeholder svgs for now. the site has a featured work section and no actual featured work. next step is filling it with real projects.
it’s been a hot minute since the last log. i went home for the holidays and fully unplugged — didn’t touch the repo for like 1 week, so the portfolio just sat there gathering dust. anyway i’m back and i actually shipped a good chunk, so let me catch up. manifesto: a quiet moment on the site, no webgpu, just four lines of text. i split them with SplitText and clip a gray→ink gradient to the glyphs, then scroll slides the background so the dark ink fills each line in from the left. once they’re all dark the whole section fades to ink and the text flips to cream — it inverts into the footer palette right before it unpins. annoying bug: the pin adds 300% scroll and the footer triggers (created earlier) fired too early, so i sort into document order and refresh after the split. footer: classic big mailto headline with a hover underline wipe, socials, and a bottom bar. everything reveals on one timeline when it scrolls in. back-to-top routes through lenis for a smooth scroll with an instant fallback. footer image: the starry-night img has a tiny webgpu canvas on top that copies its object-cover crop, so mousing over it warps the pixels with a little chromatic aberration. the distortion is a cpu grid (base 15, capped 128) — splat pointer velocity into nearby cells, relax back to zero each frame, write it into an 8-bit RG DataTexture the shader samples. and it’s lazy: an IntersectionObserver only mounts the canvas near the viewport, frameloop off when it’s not on screen, plain as the fallback. costs nothing till you scroll to it....
|
1792903814.157449
|
1793767814.157449
|
|
41825
|
Asobi by @PAPER_01 | Stardance
|
PAPER_01
|
1
|
67.01
|
1349
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T10:15:24Z", "hours": 62.0, "multiplier": 18.18, "payout": 1349, "blessing": "neutral", "text": "Asobi is a site I am planning to make a mini-game collection. It will be containing tones of games in the future and I am integrating full frontend and backend on it especially for the Leaderbaord and login . Along with to prevent cheating on some game like Guess The Number [sorry , i suck at naming (ᵕ—ᴗ—)]. Currently I have added only one game , but It took me more time as I had to make the inital pages like landing , gamelist, leaderboard, signup and more like that. Please consider reading ReadMe on github for detail explaination , I really hope you will enjoy playing the game . Thank you so much for reading , Have a nice day =)", "repo": "https://github.com/shrestha-01/Asobi", "demo": "https://shrestha-project-08.66ghz.com/"}]...
|
[{"post_id": 63450, "ts": "202 [{"post_id": 63450, "ts": "2026-09-07T09:43:39Z", "hours": 2.5128, "text": "Asobi Devlog #17 Hello everyone, welcome to Devlog #17 of Asobi! (ノ◕ヮ◕)ノ*:・゚ Clicker Game Update Okay, umm.. I’m writing this devlog to update you about the The Clicker game of Asobi . So, I have added a basic CSS design to the game. I also tried a couple of other designs as well. . But decided to go with this design . I will add a screenshot below. Currently, I have this one, but I’m still not sure what I’m going to use . I’m still experimenting with the design, so if I change anything, I’ll let you all know in the next devlog. ( ̄▽ ̄)ゞ That’s It! And yeah, That’s all for this devlog. If you want me to explain something, then please do tell me in the comments. I’ll try my best to explain it as well. (≧▽≦) Thank you so much for reading, and have a very nice day! (ノ´ヮ`)ノ*:・゚✧"}, {"post_id": 60274, "ts": "2026-09-02T15:25:32Z", "hours": 2.5, "text": "Asobi Devlog #16 Hello everyone, welcome to Devlog #16 of Asobi! So, I just started working on the new game, the Clicker . Code Refinement Okay, so talking about the updates, I did some code refinement . I mean, I just cleaned up some code in the old game. Nothing major, but I thought it would be better to clean things up before moving forward. Clicker Game And yeah, I have started working on the Clicker game . Though it looks too empty right now, I have only worked on the HTML and JavaScript part for now. I guess the main thing I worked on this time was working on the precision. Precision Problem I was trying different ways to count the clicks, and I was facing an issue with maintaining the precision . I was not able to get anything more precise than two digits. For example, something like: 3.7 After the 7 , I could not really attain any significant number. But I did search online and looked at other similar games and found out about the performance.now() in JavaScript, which I didn’t know about before. So yeah, that was a lesson for me as well . ( ̄▽ ̄)ゞ Now I can use it to get much more precise timing for calculating the clicks per second. 10 Seconds Challenge For now, I have selected only 10 seconds of time in this game During those 10 seconds, the user can click the button as many times as they can, and the game will count their CPS (Clicks Per Second) . Though this is just the beginning, I’m planning to add lots of things in the future . Current Progress I’ll still add a screenshot of the current progress. Though, honestly, it will be quite empty and blank right now. =D But yeah, this is just the beginning of the Clicker game. That’s It! Yeah, that’s all for this devlog! If you think I did not explain something properly, or you want to know anything about the game, then please do tell me in the comments. I’ll try my best to explain it there. Thank you so much for reading! Have a nice day! (≧▽≦)"}, {"post_id": 56523, "ts": "2026-08-28T10:02:42Z", "hours": 1.0314, "text": "Finally, Shipping Soon! Hello everyone, welcome to Devlog #16 of Asobi! Final Changes Before Shipping So, the few changes I did before shipping are: Site Icon I have added the icon for the site . GIF to WEBM I converted all the GIFs to WEBM files , as there was some glitche with the GIF files because of which the file size was becoming too large. Because of this, the site’s loading screen was sometimes being shown for over a minute . So, I converted them to WEBM to reduce the file size and improve the loading time. Loading Screen I have also added the same loading screen to the Game List page as well . While the images and game list logos are being loaded, it will now show a loading screen instead of leaving the page empty. I guess that’s it! Finally Shipping! You can check out the game here: https://shrestha-project-08.66ghz.com/ Play in full screen for better experience [Press F11] Also I will attach a overview video of the site You can play the game using the link above. Thank you so much for reading, and I hope you all enjoy! Have a nice day! =)"}, {"post_id": 55311, "ts": "2026-08-27T01:47:11Z", "hours": 2.25, "text": "Asobi Devlog #15 Hello everyone, welcome to Devlog #15 of Asobi! Okay, so in this update,I have to inform about the bugs fixed and some hosting issue I am facing … Bug Fixes I fixed some bugs related to the scores . Sometimes, scores were not being updated properly , and sometimes I was being redirected from the username page back to the game list again and again . And yes, I did use AI to help me help me spot and debug these bugs. Leaderboard Icon Removed I also removed the Leaderboard sign from the game list . Obviously, there isn’t really a reason to show the leaderboard there because no game has been selected yet , so there is no specific leaderboard to display. Trying to Ship Asobi Right now, I am trying to ship Asobi as soon as possible , but I haven’t been able to find a reliable hosting site yet. Previously, I used InfinityFree , but due to some problems, I am currently unable to properly ship the site using it. To be more precise, I uploaded a GIF that is around 700 KB , but as soon as I reload the file manager in Infinityfree, for some reason its size increases to around 6 MB . Because the file becomes much larger, the loading time also increases, which makes the site feel slow adn laggy . I found another hosting service as well, but I forgot its name. I will mention it below once I remember. (AwardSpace) The problem with that one is that it **doesn’t provide SSL certification for free **, so the browser keeps showing warnings such as “Not Secure site” . So yeah, if I find a reliable hosting service, or if the problem with InfinityFree gets fixed, I should be able to ship Asobi really soon . Loading Screen One more thing I added is a loading screen . For now,I have only added it to guess.html . README Update I have also added the credits to the README regarding the loading screen design =) That’s It! Yeah, that’s pretty much it for this devlog! If you didn’t understand something or if you think I didnt explain anything properly then please do tell me in the comments, and I will try to explain it again. Also, if anyone knows a reliable hosting site that supports PHP and SQL , please do tell me in the comments. That would be a great help ! Thank you so much for reading, and have a nice day! =)"}, {"post_id": 53788, "ts": "2026-08-24T14:21:36Z", "hours": 6.1097, "text": "Asobi Devlog #14 Hello everyone, welcome to Devlog #14 of Asobi! So this time, I have tried to move almost everything to the backend . Moving Everything to the Backend Previously, things like the number generation, checking, score calculation, and results were handled on the frontend. But that had a pretty obvious problem. When I created this type of game previously, some people would simply console.log the random number and get the correct answer almost like i mean everytime. And Some people even executed the saveScore function themselves (╥﹏╥) So, to avoid that this time, I have moved almost everything to the backend . The number generation, checking, score calculation, and other important game logic are now handled by the server in the backend. Lets hope everything will be fair now (ᵕ—ᴗ—) Best Score on Difficulty Levels Along with that, I have also made some visual changes . Previously, the best score or rather, the number of tries was displayed as plain text at a constant place . Now, whenever you click on a difficulty level, your best result will be displayed at the bottom-right of that particular level label . I will attach a image below , I guess thats the only image i can show for this update (ó﹏ò。) It shows the lowest number of tries in which you have ever completed that difficulty level. And obviously, the lower the number of tries, the better . Points System And I also wanted to make one thing clear. Yes, this time I have used a points system instead of directly using the number of tries for the leaderboard. Let me explain why. Previously, when I made this type of game, I used the number of tries to determine the ranking. For example, if the Beginner difficulty is from 1–10 and you completed it in: 1 try → Rank 1 2 tries → Rank 2 3 tries → Rank 3 And so on… But there was a problem with this system. A lot of people were able to complete the lower-level difficulties in just 1 try . This meant that there could be around 8 or 9 people with Rank 1 on some of the easier levels , it kinda made the rank 1 less special or look cheap tbh. Technically, that was fair, but it didn’t felt quite right. It was something like , Once you got Rank 1, there was also basically nothing more to achieve . So this time, I implemented a points system . The basic idea is: Lower number of tries = More points This gives players more room to compete instead of simply having multiple people stuck at the same rank and maybe also encouraging them to collect more points. ##Responsiveness I will be honest about this , I am not really good at making sites responsive so i took the help of Gemini for making the site responsive. That’s It! I guess thats it, So yeah, that’s basically what I have added this time. Also,I thought of shipping it by today but there is another bug (sometimes the score is not being saved and it is requiring me to logout and login, i honestly havent still figured it out why its happening yet, But I am hoping to fix it soon and Also ship it soon. I hope I was able to explain everything clearly. If something was unclear, please tell me in the comments, and I will try to explain it again. Thank you so much for reading, and have a nice day! =)"}, {"post_id": 52831, "ts": "2026-08-23T05:57:32Z", "hours": 7.3242, "text": "Asobi Devlog #13 Hello everyone, welcome to Devlog #13 of Asobi! Okay, in this devlog, I would say there are quite a few additions , but I assume these two can be considered the main ones. Sign Up & Login The first major addition is the Sign Up and Login feature . When you try to log in for the first time, you will need to create an account first. You don’t really need to verify your email or anything like that. I did think about using OTP verification , but I felt like that would be a bit too much pain tbh So, I tried keeping it simple .૮₍ ´ ꒳ `₎ა You just need to: Enter a unique username Enter a password Confirm your password And you’re ready to start playing! That’s basically it. Leaderboard Time Filters Apart from user authentication, another major and somewhat time-consuming addition was the leaderboard time filter . Now, you can change the leaderboard based on different time periods: Last 24 Hours This Week All Time I thought this would be better because someone who is new to the game shouldn’t have to immediately compete with someone who has been playing for a long time. With the Last 24 Hours leaderboard, new players at least have a chance to compete and get themselves onto the leaderboard. Other Small Changes There are also a few other smaller additions and changes. I have changed the color of some text , including the numbers, and made some other minor visual adjustments. I have also changed some of the text throughout the game . These changes aren’t anything too significant, but they should be noticeable. New Game Banner And finally, I have added a banner for the next game that I will be working on later. The game is going to be a The Clicker . I will be updating it soon, but for now, I’ll be skipping this project and working on other parts of Asobi first. That’s It! And yeah, I guess that’s it for this devlog! I will be working on making the site calculation , like the generating and checking number saving server side so that no one cheats like before (╥﹏╥) .(old story short , I have made similar game before too where many people cheated as everything was done in frontend but it was deleted and I am making better version of it from the scratch) If anything was unclear please tell me in the comments and I will try again to explain . Thank You so much Thank you so much for reading, and have a nice day! =)"}, {"post_id": 51430, "ts": "2026-08-21T04:09:53Z", "hours": 6.5903, "text": "Asobi Devlog #12 Hello everyone, welcome to Devlog #12 of Asobi! So, umm… the main change—or addition, I would say—is the Hint Reaction . Hint Reaction GIFs GIFs are always fun, so to make the game more interesting, I have added GIFs to the game. But their role is actually more than that . For Hardcore Mode players (as well as normal players), the GIFs can sometimes act as a Secret Hint . Let me explain. There are a total of 18 GIFs that will be displayed randomly in the game: (The concept is same as my old game which was taken down, but i m trying to make it even better this time) 3 GIFs hint you to guess lower 3 GIFs hint you to guess higher The other 12 GIFs are just for fun This means there is a 33.33% chance that the GIF you get is actually a hint! =) And dont worry you wont be displayed the gifs to guess higher when the random number choosen is lower =). This feature is applied to all levels and modes . Top 3 Leaderboard Texture Okay, the next change is that I have added a sort of texture to the backgrounds of the Top 3 players . This has been added to both: The leaderboard on the main game page The full leaderboard page Difficulty Backgrounds I have also added a little background color to the difficulty levels , such as: Beginner Normal Hard etc. Before it was plain text and honestly i agree it didnt even seems clickable SVGs on the Navigation Bar Another change is that I have added SVG icons to the navigation bar at the top . あそび — Asobi And finally, I added the Japanese text あそび , meaning Asobi , below the logo. That’s All! I guess that’s all for this devlog! If anything was unclear, please do tell me in the comments, and I will try again to explain it. Thank you for reading, and have a nice day! =)"}, {"post_id": 50123, "ts": "2026-08-19T06:27:55Z", "hours": 6.6922, "text": "Devlog #11 - Asobi (あそび) Hello everyone, welcome to Devlog #11 of Asobi. Update So, I have finally finished working on the leaderboard page , and i have alos added a score card , which will be helping you understand about the pointing system of the game . I will attach a video below instead of explaining what i just made , i guess that would be much better than words =) And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)"}, {"post_id": 46310, "ts": "2026-08-13T13:22:27Z", "hours": 4.5028, "text": "Devlog #10 - Asobi (あそび) Hello everyone, welcome to Devlog #10 of Asobi. Update I just added a point system and am currently working on a seperate page to show leaderbaord and few other info like total games and stuff. so Let me explain the point system. Each difficulty has base point , if you guess the number in just one try , you get the base point ,and if you do it in more no. of tries/attempts you will lose points. Also there is a limit in how much you will get despite the no. of time you attempt , For an example if you even go like 100 attempts to guess the number between 1 to 10 then you will get at least 2 points in the beginner level . Its different for different level. I will try to make a table below. Difficulty | Base Points | Points Lost | Minimum Beginner | 10 | -1 | 2 Normal | 25 | -2 | 5 Hard | 50 | -3 | 10 Expert | 100 | -4 | 20 Master | 200 | -5 | 40 Impossible | 500 | -6 | 100 #Also The custom games are not eligible for Gaining points This devlog might have gotten abit big. Sorry about that, but i need to explain things. Also the main formula to calcualte points Points = Base Points - (Attempts - 1) × Attempt Penalty And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)"}, {"post_id": 45610, "ts": "2026-08-12T06:50:57Z", "hours": 2.6717, "text": "Devlog #09 - Asobi (あそび) Hello everyone, welcome to Devlog #09 of Asobi. Update Finally Database is connected and actually working . I spent half an hour doing everything to fix , but not turning on mariaDB (╥﹏╥) . But anyway Finally the leaderboard is working , but It currently show all the tries , so still need to work on alots of thing, and still have to move the number generation to backend as i dont want to end up like my old Binary Bound . I am still working on backend to conclude , except for a design on the leaderboard players list design. I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)"}, {"post_id": 45128, "ts": "2026-08-11T12:48:02Z", "hours": 2.5367, "text": "Devlog #08 - Asobi (あそび) Hello everyone, welcome to Devlog #08 of Asobi. Update I have completed working on the layout of the gamelist section where all the mini games will be displayed ,currently I have only made Guess the Numeber so i have kept only that for now. Also I have finally started working on the backend (php ,sql). I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)"}, {"post_id": 44602, "ts": "2026-08-10T14:07:37Z", "hours": 2.2981, "text": "Devlog #07 - Asobi (あそび) Hello everyone, welcome to Devlog #07 of Asobi. Update I have just completed working on the html and css part of the Asobi username , where username will be asked to the new users[entire js part is untouched right now]. I will upload a short video , i think that might be better than explain the design. I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)"}, {"post_id": 44523, "ts": "2026-08-10T10:43:41Z", "hours": 6.8644, "text": "Devlog #06 - Asobi (あそび) Hello everyone, welcome to Devlog #06 of Asobi. Update I have completed working on the landing page . Also I wanted to share how I take steps . Umm so basically I first go to chatgpt and tell to generate image of what i am going to make and then i ask it what the site should look like , and later i write code and make my site look same as the reference image (I also keep the reference image in the github, you can check it out). [The screenshot below is image of site itself] I also added some animated button design on the “Play Custom” button . I will put 2 screenshots if I am allowed to . And currently I am working on the page to accept the username . Also I have added sound effect on hover of the each letter of A S O B I I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)"}, {"post_id": 40723, "ts": "2026-08-04T13:15:48Z", "hours": 3.5592, "text": "Devlog #05 - Asobi (あそび) Hello everyone, welcome to Devlog #05 of Asobi. Update I have almost finished the layout .Additionally , I have changed the New Game btn design , and Guess design . I will provide the link of them in the Credits session of readme later on . I will attach a short video rather then explain with words , ig that would be much better =) I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)"}, {"post_id": 39925, "ts": "2026-08-03T07:37:30Z", "hours": 1.8361, "text": "Devlog #04 - Asobi (あそび) Hello everyone, welcome to Devlog #04 of Asobi. Update I actually dont have much to give update about , i have been struggling with the layout , I know tools like figma exists but i dont really know how to use it (and neither tried ) but i am still working the layout, i made a layout design on paint which i will attach here . Sorry , Hopefully i will be able to share something intresting next time (╥﹏╥) Also I have my entrance exam soon , so will not be able to work much for around a week. I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. (Reference img (AI generated) available in GitHub) Thank you so much for reading, and have a nice day. =)"}, {"post_id": 38992, "ts": "2026-08-01T16:51:43Z", "hours": 2.7197, "text": "Devlog #03 - Asobi (あそび) Hello everyone, welcome to Devlog #03 of Asobi. Update I will be trying to keep it short. Custom Game Here you can select the lower and higher limit yourself and choose options like minimum number , maximum number, no of guesses. Colors to the Arrow in history. Input limit Now i have added input limit which means if there its a beginner level with range from 1 to 10 then , and if you try to enter 99 or any number greater than 10 , then it will autocorrect it self to the highest and will also display a range msg =) Still working on the layout… Also I have my entrance exam soon , so will not be able to work much for around a week. I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. ( ̄︶ ̄)↗ Thank you so much for reading, and have a nice day. (≧◡≦)"}, {"post_id": 38162, "ts": "2026-07-31T12:37:26Z", "hours": 3.6875, "text": "Devlog #02 - Asobi (あそび) Hello everyone, welcome to Devlog #02 of Asobi. Update I have added a few more features, and I will try to summarize them in short. Added different levels: Beginner (1-10) Easy (1-50) Normal (1-100) Medium (1-500) Hard (1-1K) Expert (1-10K) Master (1-100K) Impossible (1-1M) Extra hint When your guess is 5% close or lower to the required randomNum , it will show a message like “You are very close.” When your guess is 20% close or lower , it will show a message like “You are close.” And if it’s away by more than 20% , it will show a message like “Nah, too far.” I have also added a history, which shows your recent choices, with an arrow indicating whether your choice was higher or lower than the required number. I know that all these hints will make the game easier, but don’t worry. I will make sure to add things that make the game interesting as well as a bit difficult. ( •̀ ω •́ )✧ I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. ( ̄︶ ̄)↗ Thank you so much for reading, and have a nice day. (≧◡≦) ♡"}, {"post_id": 37488, "ts": "2026-07-30T08:22:18Z", "hours": 1.1131, "text": "Devlog #01 - Asobi (あそび) Hello everyone, welcome to Devlog #01 of Asobi. A lot of things happened, but let’s keep working. I’m currently working on Asobi, あそび (which means “play” in Japanese). It will be a website that will contain a collection of games. Currently working on Guess the number game, will add tones of game soooon I’m planning to add features like leaderboards, achievements, levels, effects, and many more things. I’ll be adding those features one by one over time (if I get enough ideas -_-). Right now, I’ve only finished the simple basic design and js code for the 1 to 100 guessing game. Also, I’m using a neumorphism design (like before, to be honest), but the code is completely different. I’ll keep the link to the website from which I’m taking the design below. (It’s allowed, I asked about it on Slack, so don’t go banning me for that. ( ̄▽ ̄”) ) Neumorphism: https://neumorphism.io/#e0e0e0 I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain you there. ( ̄︶ ̄)↗ Thank you so much for reading and have a nice day. (≧◡≦) Also Thanks @Sam for support =)"}]...
|
Title: Asobi by @PAPER_01 | Stardance
Devlogs:
De Title: Asobi by @PAPER_01 | Stardance
Devlogs:
Devlog #01 - Asobi (あそび) Hello everyone, welcome to Devlog #01 of Asobi. A lot of things happened, but let’s keep working. I’m currently working on Asobi, あそび (which means “play” in Japanese). It will be a website that will contain a collection of games. Currently working on Guess the number game, will add tones of game soooon I’m planning to add features like leaderboards, achievements, levels, effects, and many more things. I’ll be adding those features one by one over time (if I get enough ideas -_-). Right now, I’ve only finished the simple basic design and js code for the 1 to 100 guessing game. Also, I’m using a neumorphism design (like before, to be honest), but the code is completely different. I’ll keep the link to the website from which I’m taking the design below. (It’s allowed, I asked about it on Slack, so don’t go banning me for that. ( ̄▽ ̄”) ) Neumorphism: https://neumorphism.io/#e0e0e0 I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain you there. ( ̄︶ ̄)↗ Thank you so much for reading and have a nice day. (≧◡≦) Also Thanks @Sam for support =)
Devlog #02 - Asobi (あそび) Hello everyone, welcome to Devlog #02 of Asobi. Update I have added a few more features, and I will try to summarize them in short. Added different levels: Beginner (1-10) Easy (1-50) Normal (1-100) Medium (1-500) Hard (1-1K) Expert (1-10K) Master (1-100K) Impossible (1-1M) Extra hint When your guess is 5% close or lower to the required randomNum , it will show a message like “You are very close.” When your guess is 20% close or lower , it will show a message like “You are close.” And if it’s away by more than 20% , it will show a message like “Nah, too far.” I have also added a history, which shows your recent choices, with an arrow indicating whether your choice was higher or lower than the required number. I know that all these hints will make the game easier, but don’t worry. I will make sure to add things that make the game interesting as well as a bit difficult. ( •̀ ω •́ )✧ I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. ( ̄︶ ̄)↗ Thank you so much for reading, and have a nice day. (≧◡≦) ♡
Devlog #03 - Asobi (あそび) Hello everyone, welcome to Devlog #03 of Asobi. Update I will be trying to keep it short. Custom Game Here you can select the lower and higher limit yourself and choose options like minimum number , maximum number, no of guesses. Colors to the Arrow in history. Input limit Now i have added input limit which means if there its a beginner level with range from 1 to 10 then , and if you try to enter 99 or any number greater than 10 , then it will autocorrect it self to the highest and will also display a range msg =) Still working on the layout… Also I have my entrance exam soon , so will not be able to work much for around a week. I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. ( ̄︶ ̄)↗ Thank you so much for reading, and have a nice day. (≧◡≦)
Devlog #04 - Asobi (あそび) Hello everyone, welcome to Devlog #04 of Asobi. Update I actually dont have much to give update about , i have been struggling with the layout , I know tools like figma exists but i dont really know how to use it (and neither tried ) but i am still working the layout, i made a layout design on paint which i will attach here . Sorry , Hopefully i will be able to share something intresting next time (╥﹏╥) Also I have my entrance exam soon , so will not be able to work much for around a week. I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. (Reference img (AI generated) available in GitHub) Thank you so much for reading, and have a nice day. =)
Devlog #05 - Asobi (あそび) Hello everyone, welcome to Devlog #05 of Asobi. Update I have almost finished the layout .Additionally , I have changed the New Game btn design , and Guess design . I will provide the link of them in the Credits session of readme later on . I will attach a short video rather then explain with words , ig that would be much better =) I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)
Devlog #06 - Asobi (あそび) Hello everyone, welcome to Devlog #06 of Asobi. Update I have completed working on the landing page . Also I wanted to share how I take steps . Umm so basically I first go to chatgpt and tell to generate image of what i am going to make and then i ask it what the site should look like , and later i write code and make my site look same as the reference image (I also keep the reference image in the github, you can check it out). [The screenshot below is image of site itself] I also added some animated button design on the “Play Custom” button . I will put 2 screenshots if I am allowed to . And currently I am working on the page to accept the username . Also I have added sound effect on hover of the each letter of A S O B I I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)
Devlog #07 - Asobi (あそび) Hello everyone, welcome to Devlog #07 of Asobi. Update I have just completed working on the html and css part of the Asobi username , where username will be asked to the new users[entire js part is untouched right now]. I will upload a short video , i think that might be better than explain the design. I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)
Devlog #08 - Asobi (あそび) Hello everyone, welcome to Devlog #08 of Asobi. Update I have completed working on the layout of the gamelist section where all the mini games will be displayed ,currently I have only made Guess the Numeber so i have kept only that for now. Also I have finally started working on the backend (php ,sql). I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)
Devlog #09 - Asobi (あそび) Hello everyone, welcome to Devlog #09 of Asobi. Update Finally Database is connected and actually working . I spent half an hour doing everything to fix , but not turning on mariaDB (╥﹏╥) . But anyway Finally the leaderboard is working , but It currently show all the tries , so still need to work on alots of thing, and still have to move the number generation to backend as i dont want to end up like my old Binary Bound . I am still working on backend to conclude , except for a design on the leaderboard players list design. I guess that’s it for this devlog. And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)
Devlog #10 - Asobi (あそび) Hello everyone, welcome to Devlog #10 of Asobi. Update I just added a point system and am currently working on a seperate page to show leaderbaord and few other info like total games and stuff. so Let me explain the point system. Each difficulty has base point , if you guess the number in just one try , you get the base point ,and if you do it in more no. of tries/attempts you will lose points. Also there is a limit in how much you will get despite the no. of time you attempt , For an example if you even go like 100 attempts to guess the number between 1 to 10 then you will get at least 2 points in the beginner level . Its different for different level. I will try to make a table below. Difficulty | Base Points | Points Lost | Minimum Beginner | 10 | -1 | 2 Normal | 25 | -2 | 5 Hard | 50 | -3 | 10 Expert | 100 | -4 | 20 Master | 200 | -5 | 40 Impossible | 500 | -6 | 100 #Also The custom games are not eligible for Gaining points This devlog might have gotten abit big. Sorry about that, but i need to explain things. Also the main formula to calcualte points Points = Base Points - (Attempts - 1) × Attempt Penalty And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)
Devlog #11 - Asobi (あそび) Hello everyone, welcome to Devlog #11 of Asobi. Update So, I have finally finished working on the leaderboard page , and i have alos added a score card , which will be helping you understand about the pointing system of the game . I will attach a video below instead of explaining what i just made , i guess that would be much better than words =) And as always, if anything was unclear in my explanation, then plz comment and I will try to explain it there. Thank you so much for reading, and have a nice day. =)
Asobi Devlog #12 Hello everyone, welcome to Devlog #12 of Asobi! So, umm… the main change—or addition, I would say—is the Hint Reaction . Hint Reaction GIFs GIFs are always fun, so to make the game more interesting, I have added GIFs to the game. But their role is actually more than that . For Hardcore Mode players (as well as normal players), the GIFs can sometimes act as a Secret Hint . Let me explain. There are a total of 18 GIFs that will be displayed randomly in the game: (The concept is same as my old game which was taken down, but i m trying to make it even better this time) 3 GIFs hint you to guess lower 3 GIFs hint you to guess higher The other 12 GIFs are just for fun This means there is a 33.33% chance that the GIF you get is actually a hint! =) And dont worry you wont be displayed the gifs to guess higher when the random number choosen is lower =). This feature is applied to all levels and modes . Top 3 Leaderboard Texture Okay, the next change is that I have added a sort of texture to the backgrounds of the Top 3 players . This has been added to both: The leaderboard on the main game page The full leaderboard page Difficulty Backgrounds I have also added a little background color to the difficulty levels , such as: Beginner Normal Hard etc. Before it was plain text and honestly i agree it didnt even seems clickable SVGs on the Navigation Bar Another change is that I have added SVG icons to the navigation bar at the top . あそび — Asobi And finally, I added the Japanese text あそび , meaning Asobi , below the logo. That’s All! I guess that’s all for this devlog! If anything was unclear, please do tell me in the comments, and I will try again to explain it. Thank you for reading, and have a nice day! =)
Asobi Devlog #13 Hello everyone, welcome to Devlog #13 of Asobi! Okay, in this devlog, I would say there are quite a few additions , but I assume these two can be considered the main ones. Sign Up & Login The first major addition is the Sign Up and Login feature . When you try to log in for the first time, you will need to create an account first. You don’t really need to verify your email or anything like that. I did think about using OTP verification , but I felt like that would be a bit too much pain tbh So, I tried keeping it simple .૮₍ ´ ꒳ `₎ა You just need to: Enter a unique username Enter a password Confirm your password And you’re ready to start playing! That’s basically it. Leaderboard Time Filters Apart from user authentication, another major and somewhat time-consuming addition was the leaderboard time filter . Now, you can change the leaderboard based on different time periods: Last 24 Hours This Week All Time I thought this would be better because someone who is new to the game shouldn’t have to immediately compete with someone who has been playing for a long time. With the Last 24 Hours leaderboard, new players at least have a chance to compete and get themselves onto the leaderboard. Other Small Changes There are also a few other smaller additions and changes. I have changed the color of some text , including the numbers, and made some other minor visual adjustments. I have also changed some of the text throughout the game . These changes aren’t anything too significant, but they should be noticeable. New Game Banner And finally, I have added a banner for the next game that I will be working on later. The game is going to be a The Clicker . I will be updating it soon, but for now, I’ll be skipping this project and working on other parts of Asobi first. That’s It! And yeah, I guess that’s it for this devlog! I will be working on making the site calculation , like the generating and checking number saving server side so that no one cheats like before (╥﹏╥) .(old story short , I have made similar game before too where many people cheated as everything was done in frontend but it was deleted and I am making better version of it from the scratch) If anything was unclear please tell me in the comments and I will try again to explain . Thank You so much Thank you so much for reading, and have a nice day! =)
Asobi Devlog #14 Hello everyone, welcome to Devlog #14 of Asobi! So this time, I have tried to move almost everything to the backend . Moving Everything to the Backend Previously, things like the number generation, checking, score calculation, and results were handled on the frontend. But that had a pretty obvious problem. When I created this type of game previously, some people would simply console.log the random number and get the correct answer almost like i mean everytime. And Some people even executed the saveScore function themselves (╥﹏╥) So, to avoid that this time, I have moved almost everything to the backend . The number generation, checking, score calculation, and other important game logic are now handled by the server in the backend. Lets hope everything will be fair now (ᵕ—ᴗ—) Best Score on Difficulty Levels Along with that, I have also made some visual changes . Previously, the best score or rather, the number of tries was displayed as plain text at a constant place . Now, whenever you click on a difficulty level, your best result will be displayed at the bottom-right of that particular level label . I will attach a image below , I guess thats the only image i can show for this update (ó﹏ò。) It shows the lowest number of tries in which you have ever completed that difficulty level. And obviously, the lower the number of tries, the better . Points System And I also wanted to make one thing clear. Yes, this time I have used a points system instead of directly using the number of tries for the leaderboard. Let me explain why. Previously, when I made this type of game, I used the number of tries to determine the ranking. For example, if the Beginner difficulty is from 1–10 and you completed it in: 1 try → Rank 1 2 tries → Rank 2 3 tries → Rank 3 And so on… But there was a problem with this system. A lot of people were able to complete the lower-level difficulties in just 1 try . This meant that there could be around 8 or 9 people with Rank 1 on some of the easier levels , it kinda made the rank 1 less special or look cheap tbh. Technically, that was fair, but it didn’t felt quite right. It was something like , Once you got Rank 1, there was also basically nothing more to achieve . So this time, I implemented a points system . The basic idea is: Lower number of tries = More points This gives players more room to compete instead of simply having multiple people stuck at the same rank and maybe also encouraging them to collect more points. ##Responsiveness I will be honest about this , I am not really good at making sites responsive so i took the help of Gemini for making the site responsive. That’s It! I guess thats it, So yeah, that’s basically what I have added this time. Also,I thought of shipping it by today but there is another bug (sometimes the score is not being saved and it is requiring me to logout and login, i honestly havent still figured it out why its happening yet, But I am hoping to fix it soon and Also ship it soon. I hope I was able to explain everything clearly. If something was unclear, please tell me in the comments, and I will try to explain it again. Thank you so much for reading, and have a nice day! =)
Asobi Devlog #15 Hello everyone, welcome to Devlog #15 of Asobi! Okay, so in this update,I have to inform about the bugs fixed and some hosting issue I am facing … Bug Fixes I fixed some bugs related to the scores . Sometimes, scores were not being updated properly , and sometimes I was being redirected from the username page back to the game list again and again . And yes, I did use AI to help me help me spot and debug these bugs. Leaderboard Icon Removed I also removed the Leaderboard sign from the game list . Obviously, there isn’t really a reason to show the leaderboard there because no game has been selected yet , so there is no specific leaderboard to display. Trying to Ship Asobi Right now, I am trying to ship Asobi as soon as possible , but I haven’t been able to find a reliable hosting site yet. Previously, I used InfinityFree , but due to some problems, I am currently unable to properly ship the site using it. To be more precise, I uploaded a GIF that is around 700 KB , but as soon as I reload the file manager in Infinityfree, for some reason its size increases to around 6 MB . Because the file becomes much larger, the loading time also increases, which makes the site feel slow adn laggy . I found another hosting service as well, but I forgot its name. I will mention it below once I remember. (AwardSpace) The problem with that one is that it **doesn’t provide SSL certification for free **, so the browser keeps showing warnings such as “Not Secure site” . So yeah, if I find a reliable hosting service, or if the problem with InfinityFree gets fixed, I should be able to ship Asobi really soon . Loading Screen One more thing I added is a loading screen . For now,I have only added it to guess.html . README Update I have also added the credits to the README regarding the loading screen design =) That’s It! Yeah, that’s pretty much it for this devlog! If you didn’t understand something or if you think I didnt explain anything properly then please do tell me in the comments, and I will try to explain it again. Also, if anyone knows a reliable hosting site that supports PHP and SQL , please do tell me in the comments. That would be a great help ! Thank you so much for reading, and have a nice day! =)
Finally, Shipping Soon! Hello everyone, welcome to Devlog #16 of Asobi! Final Changes Before Shipping So, the few changes I did before shipping are: Site Icon I have added the icon for the site . GIF to WEBM I converted all the GIFs to WEBM files , as there was some glitche with the GIF files because of which the file size was becoming too large. Because of this, the site’s loading screen was sometimes being shown for over a minute . So, I converted them to WEBM to reduce the file size and improve the loading time. Loading Screen I have also added the same loading screen to the Game List page as well . While the images and game list logos are being loaded, it will now show a loading screen instead of leaving the page empty. I guess that’s it! Finally Shipping! You can check out the game here: https://shrestha-project-08.66ghz.com/ Play in full screen for better experience [Press F11] Also I will attach a overview video of the site You can play the game using the link above. Thank you so much for reading, and I hope you all enjoy! Have a nice day! =)
Asobi Devlog #16 Hello everyone, welcome to Devlog #16 of Asobi! So, I just started working on the new game, the Clicker . Code Refinement Okay, so talking about the updates, I did some code refinement . I mean, I just cleaned up some code in the old game. Nothing major, but I thought it would be better to clean things up before moving forward. Clicker Game And yeah, I have started working on the Clicker game . Though it looks too empty right now, I have only worked on the HTML and JavaScript part for now. I guess the main thing I worked on this time was working on the precision. Precision Problem I was trying different ways to count the clicks, and I was facing an issue with maintaining the precision . I was not able to get anything more precise than two digits. For example, something like: 3.7 After the 7 , I could not really attain any significant number. But I did search online and looked at other similar games and found out about the performance.now() in JavaScript, which I didn’t know about before. So yeah, that was a lesson for me as well . ( ̄▽ ̄)ゞ Now I can use it to get much more precise timing for calculating the clicks per second. 10 Seconds Challenge For now, I have selected only 10 seconds of time in this game During those 10 seconds, the user can click the button as many times as they can, and the game will count their CPS (Clicks Per Second) . Though this is just the beginning, I’m planning to add lots of things in the future . Current Progress I’ll still add a screenshot of the current progress. Though, honestly, it will be quite empty and blank right now. =D But yeah, this is just the beginning of the Clicker game. That’s It! Yeah, that’s all for this devlog! If you think I did not explain something properly, or you want to know anything about the game, then please do tell me in the comments. I’ll try my best to explain it there. Thank you so much for reading! Have a nice day! (≧▽≦)
Asobi Devlog #17 Hello everyone, welcome to Devlog #17 of Asobi! (ノ◕ヮ◕)ノ*:・゚ Clicker Game Update Okay, umm.. I’m writing this devlog to update you about the The Clicker game of Asobi . So, I have added a basic CSS design to the game. I also tried a couple of other designs as well. . But decided to go with this design . I will add a screenshot below. Currently, I have this one, but I’m still not sure what I’m going to use . I’m still experimenting with the design, so if I change anything, I’ll let you all know in the next devlog. ( ̄▽ ̄)ゞ That’s It! And yeah, That’s all for this devlog. If you want me to explain something, then please do tell me in the comments. I’ll try my best to explain it as well. (≧▽≦) Thank you so much for reading, and have a very nice day! (ノ´ヮ`)ノ*:・゚✧
Ships:
Asobi is a site I am planning to make a mini-game collection. It will be containing tones of games in the future and I am integrating full frontend and backend on it especially for the Leaderbaord and login . Along with to prevent cheating on some game like Guess The Number [sorry , i suck at naming (ᵕ—ᴗ—)]. Currently I have added only one game , but It took me more time as I had to make the inital pages like landing , gamelist, leaderboard, signup and more like that. Please consider reading ReadMe on github for detail explaination , I really hope you will enjoy playing the game . Thank you so much for reading , Have a nice day =)...
|
1792878477.024499
|
1793742477.024499
|