|
8377
|
Nautica API by @xellu | Stardance
|
xellu
|
1
|
26.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T18:37:11Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I’ve updated the Service Manager, including the dependency resolver. These changes include: New lifecycle hook “onSetup”, intended for setting up databases, etc. I’ve mostly added this to split “start servers” and “setup things” all being in onStart. This way the separation between those 2 tasks is clear and helps to eliminate certain race conditions. Toggle switches are now generated automatically Before you had to manually declare a key in a config in onInstall, and then read it in isEnabled, which was just extra boilerplate. So I automated the process in the Service class. “?”, “:after” and “:after?” parameters for dependencies Before this, the boot order was still fragile even with dependencies defined, because the ability to define a dependency, and make it start only AFTER your dependency is initialized wasn’t a thing. Now you can do this by simply appending “:after” to the dependency name. “?” at the end also makes the dependency optional. Few fixes relating to dependency resolution and boot orders HTTP API Got a decently big update as well.. The performance is now up ~70% from previous versions, finally surpassing FastAPI, I’ve achieved this adding an option to disable unnecessary messages from being logged. Which only goes to show how heavy the logging manager I use is, but I doubt I’ll be rewriting it, since the way it is now helps with DX. Response validation using “@HTTP.Responses(…)” and ReplyModels: Before you were able to only validate what’s coming in, but not what’s going out. The validator has a strict mode, which when enabled adds an extra layer of “security”. If strict mode is disabled, the responses are only used for OpenAPI docs generation. Tho the framework may still complain if you’re sending invalid responses. Nested object validation and Require.ListOf Static methods in Reply Since the framework is built on Starlette, you may need to use Starlette’s responses in some cases. OpenAPI Docs generation This was kinda a big thing on my list ever since I realized that I can automatically generate SDKs instead of having to write request calls manually. I also wanted to add a way to expose the docs with an endpoint, but I’m holding off on that. The Package registry & manager were introduced as well. The package registry it itself built on Nautica, and works with the package manager integrated into the Nautica’s CLI. Likewise I’ve started work on the Landing page & docs website for the framework, but I’m putting it off for a bit, because of finals. I’ve also fixed countless bugs, refactored things, and over all made many QoL changes, which helped to make the framework feel more polished. This might be a strange project, since I’m somewhat “reinventing the wheel”, but I really didn’t like the way FastAPI, Flask and other Python HTTP frameworks work. It basically handles ONLY the http part, which is fine, but in bigger projects YOU have to manage everything else around it. When I was building small apps it wasn’t that big of an issue, but it became pretty apparent in bigger projects. The complexity and boilerplate that comes with large projects isn’t something I can handle well, while also having to enforce my own conventions. I made Nautica to fix these issues, and I’d say I succeeded. The boilerplate that’s needed per route is minimal, compared to other frameworks; The package manager adds an intuitive way to add plugins (services, packages), and the service system itself does a lot of the heavy lifting for you, by automatically deciding on the boot order instead of you having to write do it explicitly using imports, etc. In conclusion, Nautica takes away some freedom and in exchange gives you structure, less boilerplate and tools to debug your code, which makes shipping apps easier and faster.", "repo": "https://github.com/xellu/nautica-api", "demo": "https://napm.xellu.xyz/"}]...
|
[{"post_id": 9382, "ts": "2026 [{"post_id": 9382, "ts": "2026-06-15T18:35:53Z", "hours": 0.2822, "text": "A showcase of what Nautica can actually do ~20% faster than FastAPI ( https://github.com/xellu/nautica-api/wiki/Performance-Benchmark ) See Nautica in action: https://napm.xellu.xyz/ ( https://github.com/xellu/nautica-package-manager ) A video demonstration:"}, {"post_id": 9251, "ts": "2026-06-15T15:12:52Z", "hours": 3.4914, "text": "I’ve released v3.2.2, the new things there include: OpenAPI Docs generator Changed expression for nested requirements from nested(...) to {...} Request schemas in errors can be hidden now Added descriptions for commands in help Renamed Reply.IsList() into .asList() Added import aliases for Requirement s in napi These are mostly QoL changes, I made formatting of certain things so it’d be easier to read, use, or to make sense linguistically. I also made it a little bit more secure by giving other developers an option to hide their request schemas in error messages. I’ve also included the new benchmark numbers in the README. OpenAPI Docs generator mostly works now, but it doesn’t expose the docs to /nautica:docs yet, I’m also considering making the endpoint the developer’s concern, and not the framework’s. Surprisingly it wasn’t as hard as i expected it to be, but some weird edge cases were definitely annoying to deal with. Anyways, alongside the updates to the framework itself, I’ve also now documented the new changes made since version 3.0.2 , so they’re now up to date with the latest release (that being 3.2.2). I know it took a while but i was more focused on releasing fixes and updates first. https://github.com/xellu/nautica-api/wiki https://github.com/xellu/nautica-api/compare/3.2.0...3.2.2"}, {"post_id": 7424, "ts": "2026-06-12T11:29:02Z", "hours": 2.5219, "text": "I’ve started work on OpenAPI Docs generator, I’d imagine it’ll take me a while to complete. Anyways I’ve released v3.2, see below for new changes Changelog Improved speed and latency New onSetup hook for services Auto Switch registration for services New Require.ListOf validator Validator support for nested objects Better dependency resolver More on these changes here: post 1 , post 2 And new, undocumented changes include: 7. Moving typeToString into models, from http api (didn’t really make sense to have it there) 8. Added static methods into Reply for starlette responses, these include: Reply.plainText , Reply.html , Reply.stream , Reply.file , Reply.redirect . Known Issues v3.2.0 ’s dependency resolver incorrectly handles the :after parameter, a fix is already available in the branch for version 3.2.1"}, {"post_id": 5590, "ts": "2026-06-09T13:20:22Z", "hours": 3.5031, "text": "I’ve added a few QoL features, those being: Reply Models Before, you could only verify whats coming IN, but not whats coming OUT of the server. Now, you can do that easily: from napi.http import HTTP , Reply , Require , ReplyModel , Error @HTTP.GET () @HTTP.Responses ( ReplyModel ( 200 , str ), ReplyModel ( 400 , Error ), strict = True ) @HTTP.Require () async def hello ( ctx ): if ctx . body . get ( \" hello \" ): raise Error ( 400 , \" No hello \" ) return \" Hello World! \" In this case, the request will go through without an issue, but if, for example, you returned anything other than a string: return 0 The request will fail automatically. This will also be useful for when I add OpenAPI generation, as the generator will have access to the responses. This behavior can be disabled, by setting strict to False. Nested object validation @HTTP.Require(body = {\"hello\": {\"world\": str}) <- This code used to be invalid before. I since added support for nested objects (no depth limit). Automatic Toggle Switch Registration Plugins used to register their own keys in the config, and then setup isEnabled method that would determine if the service should be started or not. To reduce the headache and boilerplate of this approach, Nautica now automatically creates a key with your service’s name under services in config.n3 . If you want your own logic in isEnabled , you can do so by overwriting the method. By doing so you’ll disable the automatic registration and the framework gives you the freedom to do it your way. If you want custom logic AND automatic registration, it can simply be combined by using super().isEnabled() . Require.ListOf(…) I’d say this is a highly useful addition. It does exactly what it sounds like: It checks if all the items in a list match a certain schema. Require . ListOf ( str ) List of just strings Require . ListOf ({ \" hello \" : str }) List of dictionaries Requrie . ListOf ( Require . AnyTypeOf ( str , int )) List of strings and integers"}, {"post_id": 5477, "ts": "2026-06-09T08:37:59Z", "hours": 2.5575, "text": "I’ve been optimizing the framework today, here’s what changed: 1. Massive performance boosts I managed to go from 2279 requests/sec to 3929 , which is 72% increase . After running new benchmarks, I’ve also surpassed FastAPI by ~24% (recorded 3154 requests/sec). I did this by minimizing the amount of logging that is done per request (can be configured). Because my log manager is fairly heavy, this helped a lot. 2. Better dependency resolver The dependency resolver I had for services was okay, but it lacked 2 important features: Optional dependencies and explicit order. The old system was simply: Service.Export(MyPlugin, depends_on=[\"HTTPRouter\"]) Which is fine for simple plugins, but you start doing more complex work, you’ll hit the limits fast. The new system now handles: ? at the end makes the dependency optional :after tells the dependency to start AFTER your plugin, not before. Essentially adds your plugin as the target’s dependency. 3. Split onStart Before, onStart handled both starting database and HTTP servers, bots. Because of this, I’ve decided to split the setup logic and startup logic into 2: onSetup and onStart 4. Other changes I also removed some legacy aliases for methods."}, {"post_id": 4899, "ts": "2026-06-08T14:01:14Z", "hours": 4.65, "text": "Spent almost 5 hours on a navbar, finally figured it out though. The open/close logic on hovering was a nightmare to do. In the end i settled for IDs and an event listener for mouseover . It’s probably one of the worse solutions, but I’m not gonna touch it since it works finally. I also changed the background to something that fits better."}, {"post_id": 4426, "ts": "2026-06-07T19:03:56Z", "hours": 3.8883, "text": "I’ve started work on a web for the framework. For now I only managed to set up the project and make the hero on the landing page, for which I took inspiration from payloadcms and rig.ai The landing page itself was hard to make, since I had to figure out how to structure the grid, and even now it’s not up to my standards."}, {"post_id": 4114, "ts": "2026-06-07T09:41:14Z", "hours": 2.2639, "text": "Nautica Package Registry is Live! napi install mongodb now downloads the package into project plugins and installs any PyPI dependencies automatically. 2 Packages are up already: MongoDB: Adapter for pymongo NAuth: A simple session manager (using Mongo) The registry itself runs on Nautica, with both packages installed https://github.com/xellu/nautica-package-manager https://napm.xellu.xyz/"}, {"post_id": 3635, "ts": "2026-06-06T17:32:12Z", "hours": 2.7833, "text": "Hello y’all. I’m making a framework for backend development, called Nautica. I’m also bundling a package manager, similar to npm/PyPI, to allow people to share their plugins. I’ve started working on this project before Stardance, but this sounds like a good opportunity to get feedback on it. Today’s update notes (v3.1.3): Fixed shell sleeping while in systemd mode Fixed file reading during http requests Fixed package manager connection issues Added commands to list http and websocket endpoints For anyone interested in the specifics, the HTTP part of the API is built on top Starlette. Unlike FastAPI, I made my own request validation system that gives you more freedom, though it may perform worse under load. From the benchmarks I’ve ran, my framework seems to be just a little faster than FastAPI (which is also based on Starlette): FastAPI: 2259 requests/second Nautica: 2271 requests/second ~0.53% faster Though these numbers are a bit dated, and may be off. I’m still working on the package manager, but I’ll post a showcase of that soon. For now, here’s a showcase of how Nautica itself works:"}]...
|
Title: Nautica API by @xellu | Stardance
Devlogs: Title: Nautica API by @xellu | Stardance
Devlogs:
Hello y’all. I’m making a framework for backend development, called Nautica. I’m also bundling a package manager, similar to npm/PyPI, to allow people to share their plugins. I’ve started working on this project before Stardance, but this sounds like a good opportunity to get feedback on it. Today’s update notes (v3.1.3): Fixed shell sleeping while in systemd mode Fixed file reading during http requests Fixed package manager connection issues Added commands to list http and websocket endpoints For anyone interested in the specifics, the HTTP part of the API is built on top Starlette. Unlike FastAPI, I made my own request validation system that gives you more freedom, though it may perform worse under load. From the benchmarks I’ve ran, my framework seems to be just a little faster than FastAPI (which is also based on Starlette): FastAPI: 2259 requests/second Nautica: 2271 requests/second ~0.53% faster Though these numbers are a bit dated, and may be off. I’m still working on the package manager, but I’ll post a showcase of that soon. For now, here’s a showcase of how Nautica itself works:
Nautica Package Registry is Live! napi install mongodb now downloads the package into project plugins and installs any PyPI dependencies automatically. 2 Packages are up already: MongoDB: Adapter for pymongo NAuth: A simple session manager (using Mongo) The registry itself runs on Nautica, with both packages installed https://github.com/xellu/nautica-package-manager https://napm.xellu.xyz/
I’ve started work on a web for the framework. For now I only managed to set up the project and make the hero on the landing page, for which I took inspiration from payloadcms and rig.ai The landing page itself was hard to make, since I had to figure out how to structure the grid, and even now it’s not up to my standards.
Spent almost 5 hours on a navbar, finally figured it out though. The open/close logic on hovering was a nightmare to do. In the end i settled for IDs and an event listener for mouseover . It’s probably one of the worse solutions, but I’m not gonna touch it since it works finally. I also changed the background to something that fits better.
I’ve been optimizing the framework today, here’s what changed: 1. Massive performance boosts I managed to go from 2279 requests/sec to 3929 , which is 72% increase . After running new benchmarks, I’ve also surpassed FastAPI by ~24% (recorded 3154 requests/sec). I did this by minimizing the amount of logging that is done per request (can be configured). Because my log manager is fairly heavy, this helped a lot. 2. Better dependency resolver The dependency resolver I had for services was okay, but it lacked 2 important features: Optional dependencies and explicit order. The old system was simply: Service.Export(MyPlugin, depends_on=["HTTPRouter"]) Which is fine for simple plugins, but you start doing more complex work, you’ll hit the limits fast. The new system now handles: ? at the end makes the dependency optional :after tells the dependency to start AFTER your plugin, not before. Essentially adds your plugin as the target’s dependency. 3. Split onStart Before, onStart handled both starting database and HTTP servers, bots. Because of this, I’ve decided to split the setup logic and startup logic into 2: onSetup and onStart 4. Other changes I also removed some legacy aliases for methods.
I’ve added a few QoL features, those being: Reply Models Before, you could only verify whats coming IN, but not whats coming OUT of the server. Now, you can do that easily: from napi.http import HTTP , Reply , Require , ReplyModel , Error @HTTP.GET () @HTTP.Responses ( ReplyModel ( 200 , str ), ReplyModel ( 400 , Error ), strict = True ) @HTTP.Require () async def hello ( ctx ): if ctx . body . get ( " hello " ): raise Error ( 400 , " No hello " ) return " Hello World! " In this case, the request will go through without an issue, but if, for example, you returned anything other than a string: return 0 The request will fail automatically. This will also be useful for when I add OpenAPI generation, as the generator will have access to the responses. This behavior can be disabled, by setting strict to False. Nested object validation @HTTP.Require(body = {"hello": {"world": str}) <- This code used to be invalid before. I since added support for nested objects (no depth limit). Automatic Toggle Switch Registration Plugins used to register their own keys in the config, and then setup isEnabled method that would determine if the service should be started or not. To reduce the headache and boilerplate of this approach, Nautica now automatically creates a key with your service’s name under services in config.n3 . If you want your own logic in isEnabled , you can do so by overwriting the method. By doing so you’ll disable the automatic registration and the framework gives you the freedom to do it your way. If you want custom logic AND automatic registration, it can simply be combined by using super().isEnabled() . Require.ListOf(…) I’d say this is a highly useful addition. It does exactly what it sounds like: It checks if all the items in a list match a certain schema. Require . ListOf ( str ) List of just strings Require . ListOf ({ " hello " : str }) List of dictionaries Requrie . ListOf ( Require . AnyTypeOf ( str , int )) List of strings and integers
I’ve started work on OpenAPI Docs generator, I’d imagine it’ll take me a while to complete. Anyways I’ve released v3.2, see below for new changes Changelog Improved speed and latency New onSetup hook for services Auto Switch registration for services New Require.ListOf validator Validator support for nested objects Better dependency resolver More on these changes here: post 1 , post 2 And new, undocumented changes include: 7. Moving typeToString into models, from http api (didn’t really make sense to have it there) 8. Added static methods into Reply for starlette responses, these include: Reply.plainText , Reply.html , Reply.stream , Reply.file , Reply.redirect . Known Issues v3.2.0 ’s dependency resolver incorrectly handles the :after parameter, a fix is already available in the branch for version 3.2.1
I’ve released v3.2.2, the new things there include: OpenAPI Docs generator Changed expression for nested requirements from nested(...) to {...} Request schemas in errors can be hidden now Added descriptions for commands in help Renamed Reply.IsList() into .asList() Added import aliases for Requirement s in napi These are mostly QoL changes, I made formatting of certain things so it’d be easier to read, use, or to make sense linguistically. I also made it a little bit more secure by giving other developers an option to hide their request schemas in error messages. I’ve also included the new benchmark numbers in the README. OpenAPI Docs generator mostly works now, but it doesn’t expose the docs to /nautica:docs yet, I’m also considering making the endpoint the developer’s concern, and not the framework’s. Surprisingly it wasn’t as hard as i expected it to be, but some weird edge cases were definitely annoying to deal with. Anyways, alongside the updates to the framework itself, I’ve also now documented the new changes made since version 3.0.2 , so they’re now up to date with the latest release (that being 3.2.2). I know it took a while but i was more focused on releasing fixes and updates first. https://github.com/xellu/nautica-api/wiki https://github.com/xellu/nautica-api/compare/3.2.0...3.2.2
A showcase of what Nautica can actually do ~20% faster than FastAPI ( https://github.com/xellu/nautica-api/wiki/Performance-Benchmark ) See Nautica in action: https://napm.xellu.xyz/ ( https://github.com/xellu/nautica-package-manager ) A video demonstration:
Ships:
I’ve updated the Service Manager, including the dependency resolver. These changes include: New lifecycle hook “onSetup”, intended for setting up databases, etc. I’ve mostly added this to split “start servers” and “setup things” all being in onStart. This way the separation between those 2 tasks is clear and helps to eliminate certain race conditions. Toggle switches are now generated automatically Before you had to manually declare a key in a config in onInstall, and then read it in isEnabled, which was just extra boilerplate. So I automated the process in the Service class. “?”, “:after” and “:after?” parameters for dependencies Before this, the boot order was still fragile even with dependencies defined, because the ability to define a dependency, and make it start only AFTER your dependency is initialized wasn’t a thing. Now you can do this by simply appending “:after” to the dependency name. “?” at the end also makes the dependency optional. Few fixes relating to dependency resolution and boot orders HTTP API Got a decently big update as well.. The performance is now up ~70% from previous versions, finally surpassing FastAPI, I’ve achieved this adding an option to disable unnecessary messages from being logged. Which only goes to show how heavy the logging manager I use is, but I doubt I’ll be rewriting it, since the way it is now helps with DX. Response validation using “@HTTP.Responses(…)” and ReplyModels: Before you were able to only validate what’s coming in, but not what’s going out. The validator has a strict mode, which when enabled adds an extra layer of “security”. If strict mode is disabled, the responses are only used for OpenAPI docs generation. Tho the framework may still complain if you’re sending invalid responses. Nested object validation and Require.ListOf Static methods in Reply Since the framework is built on Starlette, you may need to use Starlette’s responses in some cases. OpenAPI Docs generation This was kinda a big thing on my list ever since I realized that I can automatically generate SDKs instead of having to write request calls manually. I also wanted to add a way to expose the docs with an endpoint, but I’m holding off on that. The Package registry & manager were introduced as well. The package registry it itself built on Nautica, and works with the package manager integrated into the Nautica’s CLI. Likewise I’ve started work on the Landing page & docs website for the framework, but I’m putting it off for a bit, because of finals. I’ve also fixed countless bugs, refactored things, and over all made many QoL changes, which helped to make the framework feel more polished. This might be a strange project, since I’m somewhat “reinventing the wheel”, but I really didn’t like the way FastAPI, Flask and other Python HTTP frameworks work. It basically handles ONLY the http part, which is fine, but in bigger projects YOU have to manage everything else around it. When I was building small apps it wasn’t that big of an issue, but it became pretty apparent in bigger projects. The complexity and boilerplate that comes with large projects isn’t something I can handle well, while also having to enforce my own conventions. I made Nautica to fix these issues, and I’d say I succeeded. The boilerplate that’s needed per route is minimal, compared to other frameworks; The package manager adds an intuitive way to add plugins (services, packages), and the service system itself does a lot of the heavy lifting for you, by automatically deciding on the boot order instead of you having to write do it explicitly using imports, etc. In conclusion, Nautica takes away some freedom and in exchange gives you structure, less boilerplate and tools to debug your code, which makes shipping apps easier and faster....
|
1793127170.3516598
|
1793213570.3516598
|
|
12570
|
CucumberOS by @JoonHyuk | Stardance
|
JoonHyuk
|
3
|
26.0
|
176
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-11T13:43:33Z", "hours": 9.0, "multiplier": 4.54, "payout": 42, "blessing": "neutral", "text": "Hello! and welcome to my long-term project……. CUCUMBEROS!!! Right now CucumberOS has fascinating possibilities, and I want to share them with them! You will see that I have a total of 3 ships, including this one, so I wanted to show you what I made along the way. For the first ship, I made a Advanced NoteTaker app, and a simple clicker game! The NoteTaker app was advanced since it had a functional sidebar, has functional color changes for each note, and has the ability to add a new note, but with the information pre-chosen (user input), obviously you can pre-chose the name, and I added the clicker game to just increase the fun and give users more entertainment and fun. Moving on to my second ship, I added cursor changer, background settings, a terminal called Cucumber Terminal, and a screentime app to track your screentime. The cursor changer hides your cursor, and then it shows custom cursors and you can change the cursors with the cursor changer app (it also has different image for dragging the window)! Then comes the background settings app, you can change your background settings, which adds fun customizability to the OS (sound short and that is all it does, but trust me, background customizability is a huge thing)! The terminal, Cucumber Terminal, helps you try commands and performs actions that you couldn’t do without the terminal! Type /help to see the commands! The screentime app is literally for tracking your screentime on every app and for the whole OS itself. The coding that went into this thing is HUGE even though it sounds easy, like you have to track the start time, end time, whole time, and stuff like that. Now for my current ship, the third one, you will see that there is one app, and you might think that I am shipping just trying to get easy stardust or something, although I WOULD LIKE A GREAT RATING 😊😊😊,but YOU ARE WRONG! The total hours I spent in this app and the functions that go around this is 9 hours, 8 minutes, and 22 seconds!!! This is 45.70% of the time I spent inside of this project! So why did it take this long? Well, it is a long story but I added folders to the OS, although you can’t store anything in the folders YET, you can go in there directory, you can customize them and add them to the desktop using the standard right click method. You can add folders by clicking on the blank spots anywhere in your background, and you can edit the folders icon and the name by right clicking the folder to see the menu! The link is direct, so it changes right away in Pickle Jar so it is highly reliable. Also, I linked the NoteTaker save files to Pickle Jar, so the red text that says .NoteTaker, contains folders that is linked with the NoteTaker app (although it is only linked to the save folder right now named with .saves)! The Pickle Jar window is even resizable! There is a Fast finder to top all this, if you click the space bar two times fast, you get to open the fast finder and type the app name, and the Fast finder will open it right away for you! Enjoy!", "repo": "https://github.com/coder1529/CucumberOS", "demo": "https://coder1529.github.io/CucumberOS/"}, {"ship_num": 2, "ts": "2026-06-27T03:24:07Z", "hours": 12.0, "multiplier": 11.69, "payout": 134, "blessing": "neutral", "text": "I made a custom web OS named CucumberOS, and it contains a lot of custom features! First it has an advanced note taker app that is able to store, divide, so that you can organize them as you like! Also, there is a custom clicker game, to add the entertainment named Cucumber clicker! There is a custom cursor changer to change the cursor to the ones you like (p.s. I added a new DRAG CURSOR so that you could see that you are dragging the window(this is new))! Now comes the NEW FEATURES!!!!! One of the new features is a background settings. Background settings allows you to be able to customize your background to the image you upload to the screen! Next is the terminal. It let’s you perform actions that were no available in the before OS. Type /help for the commands. Finally the screentime app! The screentime app let’s you monitor all the time you spent on the os total, and the individual time for each of the apps! Enjoy!", "repo": "https://github.com/coder1529/CucumberOS", "demo": "https://coder1529.github.io/CucumberOS/"}, {"ship_num": 3, "ts": "2026-06-10T12:44:36Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built CucumberOS, an interactive web operating system running entirely inside the browser. It replaces a standard website format with a full desktop environment, including an absolute-positioned workspace, a system top bar with a real-time digital clock, and desktop icons. It features a custom window manager that handles window spawning, closing, and dynamic depth reordering (z-index focus management). To meet the advanced app criteria, I built a two-app ecosystem: an advanced NoteTaker featuring a dynamic sidebar list controller, and Cucumber Clicker, an incremental idle tycoon game with a multi-tier upgrade shop driven by an asynchronous automated calculation engine.", "repo": "https://github.com/coder1529/CucumberOS", "demo": "https://coder1529.github.io/CucumberOS/"}]...
|
[{"post_id": 26553, "ts": "202 [{"post_id": 26553, "ts": "2026-07-11T13:12:08Z", "hours": 5.5319, "text": "Whats up guys! Pickle JAR IS ALIVE!!! I’m back with the biggest CucumberOS update YET!!!!! This is going to be our THIRD ship!!!!! Remember how pickle jar was JUST A BLANK CANVAS??? WELL NOT ANY MORE!!! Pickle Jar now features a DIRECT LINK with the files in the NoteTaker app! Mentioning that, Pickle Jar has all the applications that are in the desktop in the desktops tab! The only folder that is dangerous to touch is the red named ones, but it might change in future ships! Also, if you add a folder, you get that folder in the desktop folders in Pickle Jar. Also, I added more customizability to the added folders! You can now change the ICON of the folders and the NAME of the folders! And for the cherry on the cake, it is DIRECTLY LINKED WITH PICKLE JAR meaning that it will change right away! By my next ship, I will improve Pickle Jar, and actually make it able to store something in the folders! Or make it move around! OR IT MIGHT ACTUALLY BE TURNED INTO A REAL OS (BY A LOW PERCENT)! SEE YOU UNTIL THEN! (Sorry that I posted this devlog so late, I had no time to post after every day…) ALSO I HAVE THIS REALLY COOL HOT BAR TYPE OF THING IF YOU DOUBLE TAP SPACEBAR TWO TIMES, SO TRY IT OUT IN MY GITHUB DEPLOYMENY!!! :) GITHUB DEPLOYMENT: https://coder1529.github.io/CucumberOS/"}, {"post_id": 24098, "ts": "2026-07-07T13:41:20Z", "hours": 2.4506, "text": "Whats up guys! This might be the most positive devlog yet… If you see below, you will see that there is a new kind of folder attached to this devlog! This is the first ever screen recording! YAYYY! I ran through the whole code today and finally fixed the error. The error was so easy that I could see that I have a long way to go as a web developer. The problem was the operating signs… (like what is this, a joke? NO IT IS NOT :( ) But on the bright side I fixed it!!!!! :) Also, if you see, you will see that I have a new app! Something called a pickle jar. This is a blank canvas right now, and is going to work as a finder app, file explorer in windows, later on! I made the finder app size changeable, maybe I would use this in other apps but no guarantee, and the vertical bar in the middle changes size due to the vertical size of the app. You can also add files now, although there is nothing to do with yet. But this was huge progress and I really like what I have done today. PLUS I REALLY LIKE THE TRANSITION BETWEEN THE NOT CLICKED AND CLICKED VERSION OF THE DESKTOP IN PICKLE JAR!!!!!! :):):):):):):):):):):):) Same as always, play around in my github deployment!!! (Sorry that I didn’t erase the pickle jar app from the start and there is no way to exit. I had no time to do this. Sorry again.) GITHUB DEPLOYMENT: https://coder1529.github.io/CucumberOS/"}, {"post_id": 23440, "ts": "2026-07-06T12:37:23Z", "hours": 1.2072, "text": "Whats up guys! I’m back with cucumberOS! ANDD a new problem strikes… I came back to cucumberOS thinking to actually making a OS like precise ones. SOOO I just came back to it again. I want to add something called a Pickle Jar. Pickle Jar is a custom finder for CucumberOS, and first I wanted to try adding files to the background, so I started writing the right click logic, but!!!! the problem struck. You know how when you do the right click in any OS, you need to be able to click on the menus when the pop up appears right? But when I clicked on the right click popup… you guessed it it disappeared. That was my first problem. I worked on it for one hour, and fixed it. BUUUUUTTT then the new problem came and it was that it was possible to right click on NORMAL APPS! so then it would ruin the whole feature! I just became so mad at this and will come back next time with a solution. By then you can play around in my github deployment!!! :) GITHUB DEPLOYMENT: https://coder1529.github.io/CucumberOS/"}, {"post_id": 16672, "ts": "2026-06-27T03:16:59Z", "hours": 1.0472, "text": "Beat the terminal error! AND… I finally won the war against the terminal error! I put the terminal in a that has the ability to be able to be scrolled and put that below the header!!! I also added a CUSTOM DRAG CURSOR to each of the CUSTOM CURSORS! So yeah, play around in my github deployment! :) GITHUB DEPLOYMENT: https://coder1529.github.io/CucumberOS/"}, {"post_id": 16329, "ts": "2026-06-26T15:54:39Z", "hours": 3.6481, "text": "Finally Finished my 3 features! BUT I finally finished my 3 features and was testing out the whole thing, BUT I found out that the terminal’s heading overflows! This was my first time hitting problems like this in this project so I spent 1 hour fixing this. The winner? You guessed it, it was the error. I still can’t fix this! I will come back with the fixed version of CucumberOS in the next devlog. Thanks for reading!"}, {"post_id": 15633, "ts": "2026-06-25T12:55:42Z", "hours": 1.0225, "text": "Made a new background settings app! Now you can set backgrounds! ( I used my stardance picture as a background image rn :) )"}, {"post_id": 9109, "ts": "2026-06-15T07:23:35Z", "hours": 1.5272, "text": "FINISHED CURSOR CHANGER! Now you can change the cursors!"}, {"post_id": 8574, "ts": "2026-06-14T08:10:43Z", "hours": 1.1978, "text": "FIXED ALL THE LOGIC! :)"}, {"post_id": 8076, "ts": "2026-06-13T14:14:53Z", "hours": 1.0514, "text": "Rewrote JS file but now it doesn’t work IT DOESNT CLICK!!! ㅠㅠㅠㅠㅠㅠ"}, {"post_id": 7315, "ts": "2026-06-12T06:04:59Z", "hours": 2.0231, "text": "REWRITING CODE ㅠㅠ"}, {"post_id": 6202, "ts": "2026-06-10T12:41:17Z", "hours": 0.2611, "text": "FINISHED THE CUCUMBER OS Finished up the Cucumber Clicker and added more shop items!"}, {"post_id": 6173, "ts": "2026-06-10T11:41:15Z", "hours": 0.7869, "text": "Finished the CucumberOS up and is Done: ##added Cucumber clicker ##Enhanced Note Taker app a lot with the help of Gemini"}, {"post_id": 5569, "ts": "2026-06-09T12:14:24Z", "hours": 4.2903, "text": "🥒 CucumberOS: Devlog #1 (4 Hours Logged) Status: Around 50% done! The desktop ecosystem is live and looking clean. What I accomplished in these 4 hours: The OS UI & Theme: I designed a sleek top navigation bar displaying the OS name (“CucumberOS”), active window title, custom branding (“CUCUMBERSI”), and a live system clock. I paired it with an epic space/planet background. Welcome Modal: Programmed the initial greeting window (“Welcome to CucumberOS! Introduction”) with smooth, modern rounded corners and a clean typography layout. Desktop App Shortcuts: Created and positioned the custom-themed “NoteTaker” desktop icon in the top left corner, complete with a personalized cucumber-orange/green icon design. The Notepad App Logic: Spent the last hour building out the functional core of the NoteTaker app. The container structure is ready; I’m currently hooking up the finishing touches so users can launch it and write notes seamlessly.The biggest roadblock:Getting the absolute positioning of the desktop icon layout to cooperate with the upper navigation bar padding took way longer than expected. Had some annoying overlap bugs where the icons would slide under the top bar, but managed to fix the CSS grid/flex bounds. Next steps:Polishing up the final internal text-editor logic for the NoteTaker app, mapping the double-click event listener to the icon so the window spawns dynamically, and getting the drag-and-drop window positioning completely flawless.Check out the current state of CucumberOS below! 👇"}]...
|
Title: CucumberOS by @JoonHyuk | Stardance
Devlog Title: CucumberOS by @JoonHyuk | Stardance
Devlogs:
🥒 CucumberOS: Devlog #1 (4 Hours Logged) Status: Around 50% done! The desktop ecosystem is live and looking clean. What I accomplished in these 4 hours: The OS UI & Theme: I designed a sleek top navigation bar displaying the OS name (“CucumberOS”), active window title, custom branding (“CUCUMBERSI”), and a live system clock. I paired it with an epic space/planet background. Welcome Modal: Programmed the initial greeting window (“Welcome to CucumberOS! Introduction”) with smooth, modern rounded corners and a clean typography layout. Desktop App Shortcuts: Created and positioned the custom-themed “NoteTaker” desktop icon in the top left corner, complete with a personalized cucumber-orange/green icon design. The Notepad App Logic: Spent the last hour building out the functional core of the NoteTaker app. The container structure is ready; I’m currently hooking up the finishing touches so users can launch it and write notes seamlessly.The biggest roadblock:Getting the absolute positioning of the desktop icon layout to cooperate with the upper navigation bar padding took way longer than expected. Had some annoying overlap bugs where the icons would slide under the top bar, but managed to fix the CSS grid/flex bounds. Next steps:Polishing up the final internal text-editor logic for the NoteTaker app, mapping the double-click event listener to the icon so the window spawns dynamically, and getting the drag-and-drop window positioning completely flawless.Check out the current state of CucumberOS below! 👇
Finished the CucumberOS up and is Done: ##added Cucumber clicker ##Enhanced Note Taker app a lot with the help of Gemini
FINISHED THE CUCUMBER OS Finished up the Cucumber Clicker and added more shop items!
REWRITING CODE ㅠㅠ
Rewrote JS file but now it doesn’t work IT DOESNT CLICK!!! ㅠㅠㅠㅠㅠㅠ
FIXED ALL THE LOGIC! :)
FINISHED CURSOR CHANGER! Now you can change the cursors!
Made a new background settings app! Now you can set backgrounds! ( I used my stardance picture as a background image rn :) )
Finally Finished my 3 features! BUT I finally finished my 3 features and was testing out the whole thing, BUT I found out that the terminal’s heading overflows! This was my first time hitting problems like this in this project so I spent 1 hour fixing this. The winner? You guessed it, it was the error. I still can’t fix this! I will come back with the fixed version of CucumberOS in the next devlog. Thanks for reading!
Beat the terminal error! AND… I finally won the war against the terminal error! I put the terminal in a that has the ability to be able to be scrolled and put that below the header!!! I also added a CUSTOM DRAG CURSOR to each of the CUSTOM CURSORS! So yeah, play around in my github deployment! :) GITHUB DEPLOYMENT: https://coder1529.github.io/CucumberOS/
Whats up guys! I’m back with cucumberOS! ANDD a new problem strikes… I came back to cucumberOS thinking to actually making a OS like precise ones. SOOO I just came back to it again. I want to add something called a Pickle Jar. Pickle Jar is a custom finder for CucumberOS, and first I wanted to try adding files to the background, so I started writing the right click logic, but!!!! the problem struck. You know how when you do the right click in any OS, you need to be able to click on the menus when the pop up appears right? But when I clicked on the right click popup… you guessed it it disappeared. That was my first problem. I worked on it for one hour, and fixed it. BUUUUUTTT then the new problem came and it was that it was possible to right click on NORMAL APPS! so then it would ruin the whole feature! I just became so mad at this and will come back next time with a solution. By then you can play around in my github deployment!!! :) GITHUB DEPLOYMENT: https://coder1529.github.io/CucumberOS/
Whats up guys! This might be the most positive devlog yet… If you see below, you will see that there is a new kind of folder attached to this devlog! This is the first ever screen recording! YAYYY! I ran through the whole code today and finally fixed the error. The error was so easy that I could see that I have a long way to go as a web developer. The problem was the operating signs… (like what is this, a joke? NO IT IS NOT :( ) But on the bright side I fixed it!!!!! :) Also, if you see, you will see that I have a new app! Something called a pickle jar. This is a blank canvas right now, and is going to work as a finder app, file explorer in windows, later on! I made the finder app size changeable, maybe I would use this in other apps but no guarantee, and the vertical bar in the middle changes size due to the vertical size of the app. You can also add files now, although there is nothing to do with yet. But this was huge progress and I really like what I have done today. PLUS I REALLY LIKE THE TRANSITION BETWEEN THE NOT CLICKED AND CLICKED VERSION OF THE DESKTOP IN PICKLE JAR!!!!!! :):):):):):):):):):):):) Same as always, play around in my github deployment!!! (Sorry that I didn’t erase the pickle jar app from the start and there is no way to exit. I had no time to do this. Sorry again.) GITHUB DEPLOYMENT: https://coder1529.github.io/CucumberOS/
Whats up guys! Pickle JAR IS ALIVE!!! I’m back with the biggest CucumberOS update YET!!!!! This is going to be our THIRD ship!!!!! Remember how pickle jar was JUST A BLANK CANVAS??? WELL NOT ANY MORE!!! Pickle Jar now features a DIRECT LINK with the files in the NoteTaker app! Mentioning that, Pickle Jar has all the applications that are in the desktop in the desktops tab! The only folder that is dangerous to touch is the red named ones, but it might change in future ships! Also, if you add a folder, you get that folder in the desktop folders in Pickle Jar. Also, I added more customizability to the added folders! You can now change the ICON of the folders and the NAME of the folders! And for the cherry on the cake, it is DIRECTLY LINKED WITH PICKLE JAR meaning that it will change right away! By my next ship, I will improve Pickle Jar, and actually make it able to store something in the folders! Or make it move around! OR IT MIGHT ACTUALLY BE TURNED INTO A REAL OS (BY A LOW PERCENT)! SEE YOU UNTIL THEN! (Sorry that I posted this devlog so late, I had no time to post after every day…) ALSO I HAVE THIS REALLY COOL HOT BAR TYPE OF THING IF YOU DOUBLE TAP SPACEBAR TWO TIMES, SO TRY IT OUT IN MY GITHUB DEPLOYMENY!!! :) GITHUB DEPLOYMENT: https://coder1529.github.io/CucumberOS/
Ships:
I built CucumberOS, an interactive web operating system running entirely inside the browser. It replaces a standard website format with a full desktop environment, including an absolute-positioned workspace, a system top bar with a real-time digital clock, and desktop icons. It features a custom window manager that handles window spawning, closing, and dynamic depth reordering (z-index focus management). To meet the advanced app criteria, I built a two-app ecosystem: an advanced NoteTaker featuring a dynamic sidebar list controller, and Cucumber Clicker, an incremental idle tycoon game with a multi-tier upgrade shop driven by an asynchronous automated calculation engine.
I made a custom web OS named CucumberOS, and it contains a lot of custom features! First it has an advanced note taker app that is able to store, divide, so that you can organize them as you like! Also, there is a custom clicker game, to add the entertainment named Cucumber clicker! There is a custom cursor changer to change the cursor to the ones you like (p.s. I added a new DRAG CURSOR so that you could see that you are dragging the window(this is new))! Now comes the NEW FEATURES!!!!! One of the new features is a background settings. Background settings allows you to be able to customize your background to the image you upload to the screen! Next is the terminal. It let’s you perform actions that were no available in the before OS. Type /help for the commands. Finally the screentime app! The screentime app let’s you monitor all the time you spent on the os total, and the individual time for each of the apps! Enjoy!
Hello! and welcome to my long-term project……. CUCUMBEROS!!! Right now CucumberOS has fascinating possibilities, and I want to share them with them! You will see that I have a total of 3 ships, including this one, so I wanted to show you what I made along the way. For the first ship, I made a Advanced NoteTaker app, and a simple clicker game! The NoteTaker app was advanced since it had a functional sidebar, has functional color changes for each note, and has the ability to add a new note, but with the information pre-chosen (user input), obviously you can pre-chose the name, and I added the clicker game to just increase the fun and give users more entertainment and fun. Moving on to my second ship, I added cursor changer, background settings, a terminal called Cucumber Terminal, and a screentime app to track your screentime. The cursor changer hides your cursor, and then it shows custom cursors and you can change the cursors with the cursor changer app (it also has different image for dragging the window)! Then comes the background settings app, you can change your background settings, which adds fun customizability to the OS (sound short and that is all it does, but trust me, background customizability is a huge thing)! The terminal, Cucumber Terminal, helps you try commands and performs actions that you couldn’t do without the terminal! Type /help to see the commands! The screentime app is literally for tracking your screentime on every app and for the whole OS itself. The coding that went into this thing is HUGE even though it sounds easy, like you have to track the start time, end time, whole time, and stuff like that. Now for my current ship, the third one, you will see that there is one app, and you might think that I am shipping just trying to get easy stardust or something, although I WOULD LIKE A GREAT RATING 😊😊😊,but YOU ARE WRONG! The total hours I spent in this app and the functions that go around this is 9 hours, 8 minutes, and 22 seconds!!! This is 45.70% of the time I spent inside of this project! So why did it take this long? Well, it is a long story but I added folders to the OS, although you can’t store anything in the folders YET, you can go in there directory, you can customize them and add them to the desktop using the standard right click method. You can add folders by clicking on the blank spots anywhere in your background, and you can edit the folders icon and the name by right clicking the folder to see the menu! The link is direct, so it changes right away in Pickle Jar so it is highly reliable. Also, I linked the NoteTaker save files to Pickle Jar, so the red text that says .NoteTaker, contains folders that is linked with the NoteTaker app (although it is only linked to the save folder right now named with .saves)! The Pickle Jar window is even resizable! There is a Fast finder to top all this, if you click the space bar two times fast, you get to open the fast finder and type the app name, and the Fast finder will open it right away for you! Enjoy!...
|
1793246189.333553
|
1793332589.333553
|
|
17918
|
Are You a ROBOT?!?! by @baker | Stardance
|
baker
|
1
|
26.0
|
447
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-19T13:11:31Z", "hours": 26.0, "multiplier": 16.89, "payout": 447, "blessing": "neutral", "text": "one of my most favourite projects every made. worked a lot for this one. the questions are good and works. love this flappy bird one the most", "repo": "https://github.com/Hamdan772/are-you-a-robot", "demo": "https://are-you-a-robot-six.vercel.app"}]...
|
[{"post_id": 11916, "ts": "202 [{"post_id": 11916, "ts": "2026-06-19T13:00:27Z", "hours": 3.0, "text": "made flappy bird way better. the second picture was the before and the first one is the after. also changed some UI elements"}, {"post_id": 11135, "ts": "2026-06-18T06:42:52Z", "hours": 2.0, "text": "added flappy bird question (very bad and hard need to fix) image underneath js placeholder not the one I made"}, {"post_id": 11079, "ts": "2026-06-18T03:36:36Z", "hours": 3.0, "text": "Added questions and omptimzed website for mobile. also updated readme"}, {"post_id": 10482, "ts": "2026-06-17T07:04:31Z", "hours": 1.0, "text": "so much code 🧑💻. oh well. added questions and sm1 try the website. are-you-a-robot-six.vercel.app"}, {"post_id": 10449, "ts": "2026-06-17T05:35:51Z", "hours": 1.0, "text": "Added a secret feature and fixed bugs"}, {"post_id": 10415, "ts": "2026-06-17T03:40:52Z", "hours": 2.0, "text": "made GitHub readme. improved features and questions."}, {"post_id": 9905, "ts": "2026-06-16T12:39:55Z", "hours": 2.0, "text": "someone off the lightsss……. what happens next will shock you*!!! 😨😱"}, {"post_id": 9814, "ts": "2026-06-16T08:03:32Z", "hours": 1.0, "text": "working on new questions (not gonna spoil it) and if yall want any questions plzzz sayyyyy 🙏"}, {"post_id": 9771, "ts": "2026-06-16T06:39:47Z", "hours": 0.0, "text": "parallel parking is umm in the works. in case you dont know how to parallel park so for reference"}, {"post_id": 9752, "ts": "2026-06-16T05:39:05Z", "hours": 0.0, "text": "should I add parallel parking??????? (ima add it anyway) if you guys want to add anything or questions or features plz give comment I want to know if any1 can even see my devlog 😭"}, {"post_id": 9728, "ts": "2026-06-16T04:45:43Z", "hours": 0.0, "text": "sonny favicon hehe. fixed some questions logic to be better."}, {"post_id": 9702, "ts": "2026-06-16T03:44:22Z", "hours": 0.0, "text": "I like the certificate (made with code) I’ll try to make one in canva. rn the game has 32 questions. play here: https://are-you-a-robot-six.vercel.app"}, {"post_id": 9294, "ts": "2026-06-15T16:43:22Z", "hours": 3.0, "text": "just goofing around. added questions and a certificate. made UI more reasonable? (I think I can do better)"}, {"post_id": 8705, "ts": "2026-06-14T13:48:30Z", "hours": 0.0, "text": "Lets see if you are a robot"}]...
|
Title: Are You a ROBOT?!?! by @baker | Stardance
Title: Are You a ROBOT?!?! by @baker | Stardance
Devlogs:
Lets see if you are a robot
just goofing around. added questions and a certificate. made UI more reasonable? (I think I can do better)
I like the certificate (made with code) I’ll try to make one in canva. rn the game has 32 questions. play here: https://are-you-a-robot-six.vercel.app
sonny favicon hehe. fixed some questions logic to be better.
should I add parallel parking??????? (ima add it anyway) if you guys want to add anything or questions or features plz give comment I want to know if any1 can even see my devlog 😭
parallel parking is umm in the works. in case you dont know how to parallel park so for reference
working on new questions (not gonna spoil it) and if yall want any questions plzzz sayyyyy 🙏
someone off the lightsss……. what happens next will shock you*!!! 😨😱
made GitHub readme. improved features and questions.
Added a secret feature and fixed bugs
so much code 🧑💻. oh well. added questions and sm1 try the website. are-you-a-robot-six.vercel.app
Added questions and omptimzed website for mobile. also updated readme
added flappy bird question (very bad and hard need to fix) image underneath js placeholder not the one I made
made flappy bird way better. the second picture was the before and the first one is the after. also changed some UI elements
Ships:
one of my most favourite projects every made. worked a lot for this one. the questions are good and works. love this flappy bird one the most...
|
1792878764.8360405
|
1793742764.8360405
|
|
30672
|
The Thin Man by @onyx | Stardance
|
onyx
|
1
|
26.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-21T00:45:02Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The Thin Man is a short 2D horror animation that follows a middle aged man who is haunted by a nearly perfect copy of him as he goes through his day in a strange, dull world. Through the thin man’s character, I wanted to convey the feeling you get when someone does something you didn’t want them to do, when someone else is making choices for you. That’s exactly what this animation is showing, a man watching in betrayal as a near perfect copy of him takes his life, ignoring the tolls it takes on his person.", "repo": "https://github.com/karazori12345-source/The-Thin-Man", "demo": ""}]...
|
[{"post_id": 32089, "ts": "202 [{"post_id": 32089, "ts": "2026-07-21T00:33:28Z", "hours": 0.8836, "text": "I finished doing the sound today! I was recording my microwave for an airy, static sound. After testing out different sounds and doing more recording, I finally have the audio for my animation down!"}, {"post_id": 31311, "ts": "2026-07-19T16:38:09Z", "hours": 0.7669, "text": "I added some sounds to my animation, I’ve been trying to look for free ambient music I can add but I couldn’t find anything free. Besides the music, I also need the sound of a static TV."}, {"post_id": 30849, "ts": "2026-07-18T19:55:16Z", "hours": 3.0167, "text": "I finished animating The Thin Man! Now I just need to add sound and do any finishing touches"}, {"post_id": 30264, "ts": "2026-07-17T18:12:44Z", "hours": 1.1336, "text": "13/14 scenes done! After animating the 14th scene I’ll get started on sound"}, {"post_id": 29187, "ts": "2026-07-15T22:26:04Z", "hours": 1.1833, "text": "I added fills to the scene and I’m currently working on the shading and lighting."}, {"post_id": 29052, "ts": "2026-07-15T18:17:40Z", "hours": 0.5333, "text": "Finished the sketch for my next scene, later today I’ll animate it. I only have 2 scenes left to animate including this one, once I’m done, I’ll go and add sound"}, {"post_id": 28616, "ts": "2026-07-14T23:38:51Z", "hours": 0.5669, "text": "So far, animating my characters consistently has been quite the challenge. I keep trying to keep their facial features as consistent as possible but as this project goes on I keep make subconscious changes to their designs. Currently working on making this character look older :/"}, {"post_id": 28565, "ts": "2026-07-14T21:56:50Z", "hours": 1.6336, "text": "The next scene I animated takes place at night which is always fun to draw. I tried to make the scene look shiny but still dark to have that moonlight kind of feel."}, {"post_id": 28463, "ts": "2026-07-14T18:33:38Z", "hours": 0.6672, "text": "started animating my next scene, I was too lazy to draw the same character again in the exact same position so I screenshotted him from a previous scene and traced him."}, {"post_id": 27991, "ts": "2026-07-13T23:13:23Z", "hours": 0.9503, "text": "The next scene I need to animate needs a walk cycle so luckily I can just reuse my walking animation from another scene, I just need to draw in the background. I now only have 3 scenes left"}, {"post_id": 27831, "ts": "2026-07-13T18:31:12Z", "hours": 1.1339, "text": "10 out of 14 scenes done! Can’t wait to finish this animation. The next few scenes are going to be pretty simple then after animating those I need to work on the sound"}, {"post_id": 27334, "ts": "2026-07-12T20:26:03Z", "hours": 1.0503, "text": "almost done animating my new scene, I just need to do shading and animate the camera."}, {"post_id": 26911, "ts": "2026-07-11T23:29:49Z", "hours": 2.2836, "text": "started animating and sketching for my next scene"}, {"post_id": 26703, "ts": "2026-07-11T17:30:06Z", "hours": 1.0333, "text": "Finished animating my 7th scene today so I’m halfway there!"}, {"post_id": 26325, "ts": "2026-07-11T01:52:21Z", "hours": 1.0, "text": "I’ve tried animating my camera in blender 2d animation before but I’ve never really understood it. Today I caved and watched a tutorial so what I was trying to learn on my own for almost this entire week was learned in a few minutes :\\"}, {"post_id": 25083, "ts": "2026-07-09T01:45:56Z", "hours": 0.8836, "text": "Today I was pretty tired so for my animation I only started my next scene and did a rough sketch for it."}, {"post_id": 24443, "ts": "2026-07-08T00:19:53Z", "hours": 1.0003, "text": "Today I finished animating my 6th scene and I have 14 planned. Honestly, I feel that that’s not so bad considering I have summer camp for most of this week. Also today I did an incredible feat and saved my work properly."}, {"post_id": 23814, "ts": "2026-07-06T23:45:42Z", "hours": 2.0503, "text": "Today I noticed a problem with the audio, it wasn’t playing through my laptop’s speakers but it worked when I plugged headphones in. I found out because blender as a default was exporting the audio as stereo, when I changed it to mono, the sound effects were audible through my laptop speakers. I also accidentally deleted one of my blender files today, so I can’t change that part of the animation unless I want to restart :("}, {"post_id": 23145, "ts": "2026-07-05T22:37:40Z", "hours": 3.35, "text": "Today I animated the inside of a car and when I had checked my storyboard, I realized that I didn’t account for the road moving outside of the car. I fixed that because it would look weird if the windows of the car just showed one solid color. I’m happy with how the scene turned out, can’t wait to put it all together. For the sound of the car moving, my best idea so far is to record myself pushing my chair on its wheels across the room really fast so I’ll do that soon. I also need to record the sound of footsteps for a previous scene."}, {"post_id": 22550, "ts": "2026-07-05T02:18:43Z", "hours": 0.7667, "text": "I was animating a character walking and messed up the order of some keyframes so I had to delete some of them. I then remembered I wanted the shading to subtly change as the change as the character moved so I had to go back and edit my walk cycle keyframes. I also had some trouble keeping the characters speed at the same rate while he was walking. Eventually I finished the walk cycle and now Ican move on to some final touches like animating the Thin Man’s eyes following the walking man."}]...
|
Title: The Thin Man by @onyx | Stardance
Devlogs: Title: The Thin Man by @onyx | Stardance
Devlogs:
I was animating a character walking and messed up the order of some keyframes so I had to delete some of them. I then remembered I wanted the shading to subtly change as the change as the character moved so I had to go back and edit my walk cycle keyframes. I also had some trouble keeping the characters speed at the same rate while he was walking. Eventually I finished the walk cycle and now Ican move on to some final touches like animating the Thin Man’s eyes following the walking man.
Today I animated the inside of a car and when I had checked my storyboard, I realized that I didn’t account for the road moving outside of the car. I fixed that because it would look weird if the windows of the car just showed one solid color. I’m happy with how the scene turned out, can’t wait to put it all together. For the sound of the car moving, my best idea so far is to record myself pushing my chair on its wheels across the room really fast so I’ll do that soon. I also need to record the sound of footsteps for a previous scene.
Today I noticed a problem with the audio, it wasn’t playing through my laptop’s speakers but it worked when I plugged headphones in. I found out because blender as a default was exporting the audio as stereo, when I changed it to mono, the sound effects were audible through my laptop speakers. I also accidentally deleted one of my blender files today, so I can’t change that part of the animation unless I want to restart :(
Today I finished animating my 6th scene and I have 14 planned. Honestly, I feel that that’s not so bad considering I have summer camp for most of this week. Also today I did an incredible feat and saved my work properly.
Today I was pretty tired so for my animation I only started my next scene and did a rough sketch for it.
I’ve tried animating my camera in blender 2d animation before but I’ve never really understood it. Today I caved and watched a tutorial so what I was trying to learn on my own for almost this entire week was learned in a few minutes :\
Finished animating my 7th scene today so I’m halfway there!
started animating and sketching for my next scene
almost done animating my new scene, I just need to do shading and animate the camera.
10 out of 14 scenes done! Can’t wait to finish this animation. The next few scenes are going to be pretty simple then after animating those I need to work on the sound
The next scene I need to animate needs a walk cycle so luckily I can just reuse my walking animation from another scene, I just need to draw in the background. I now only have 3 scenes left
started animating my next scene, I was too lazy to draw the same character again in the exact same position so I screenshotted him from a previous scene and traced him.
The next scene I animated takes place at night which is always fun to draw. I tried to make the scene look shiny but still dark to have that moonlight kind of feel.
So far, animating my characters consistently has been quite the challenge. I keep trying to keep their facial features as consistent as possible but as this project goes on I keep make subconscious changes to their designs. Currently working on making this character look older :/
Finished the sketch for my next scene, later today I’ll animate it. I only have 2 scenes left to animate including this one, once I’m done, I’ll go and add sound
I added fills to the scene and I’m currently working on the shading and lighting.
13/14 scenes done! After animating the 14th scene I’ll get started on sound
I finished animating The Thin Man! Now I just need to add sound and do any finishing touches
I added some sounds to my animation, I’ve been trying to look for free ambient music I can add but I couldn’t find anything free. Besides the music, I also need the sound of a static TV.
I finished doing the sound today! I was recording my microwave for an airy, static sound. After testing out different sounds and doing more recording, I finally have the audio for my animation down!
Ships:
The Thin Man is a short 2D horror animation that follows a middle aged man who is haunted by a nearly perfect copy of him as he goes through his day in a strange, dull world. Through the thin man’s character, I wanted to convey the feeling you get when someone does something you didn’t want them to do, when someone else is making choices for you. That’s exactly what this animation is showing, a man watching in betrayal as a near perfect copy of him takes his life, ignoring the tolls it takes on his person....
|
1793138040.924177
|
1793224440.924177
|
|
31732
|
Fragments by @polarizedGale1 | Stardance
|
polarizedGale1
|
1
|
26.0
|
391
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T17:00:35Z", "hours": 26.0, "multiplier": 14.97, "payout": 391, "blessing": "neutral", "text": "I made a procedurally generated maze game with dynamically resizing floors. This was my first time using c in a project exclusively. Before, I used it but mainly as glue code to bind to a rust or odin project. Implementing a more sophisticated generation algorithm and collision was challenging.", "repo": "https://github.com/DhaiShah25/Fragments", "demo": "https://polarizedgale.itch.io/fragments"}]...
|
[{"post_id": 56729, "ts": "202 [{"post_id": 56729, "ts": "2026-08-28T16:29:08Z", "hours": 1.2322, "text": "I fixed the issue where maze generation would break on mazes larger than 15x15 because uint8_t would overflow. Also, I added centered labels and fixed resolution issues like labels appearing offscreen. I removed the old physical buttons meant for touch screens because this is becoming desktop only (web is included for this release but not onwards). Also, mazes now change size depending on which floor they belong to."}, {"post_id": 56672, "ts": "2026-08-28T15:06:33Z", "hours": 4.7328, "text": "I re-implemented the map algorithm to use Prim’s algorithm instead of sidewinder. I also changed it to use cells with bitflags for the walls instead of doubling the map size. Maps can now be dynamically sized instead of using a compile time constant so on different levels I can make them larger or smaller. I also tweaked Prim’s algorithm to generate a braid maze instead of a perfect maze."}, {"post_id": 52468, "ts": "2026-08-22T16:24:07Z", "hours": 5.6569, "text": "I finally got time to work on this again. I cleaned up the code a bit and made maze generation generic over any size. I also collapsed the 2d maze to be 1d to hopefully help with cache locality under certain actions."}, {"post_id": 26912, "ts": "2026-07-11T23:30:58Z", "hours": 4.0783, "text": "I added proper collisions for the maze that is generated. I also added proper font sizing options, fixed web platform compilation, created a GUI start screen, properly modularized the the code to be based off the tile size, and refactored some of the code."}, {"post_id": 26215, "ts": "2026-07-10T21:38:41Z", "hours": 3.3317, "text": "I added working maze generation based off the sidewinder algorithm using bitwise operations for the maze creation. Each level is procedurally generated and randomly places the picture frame fragment in the level. I temporarily removed collisions for moving outside of the map. I now need to add collisions with the maze and to clamp the camera to the screen."}, {"post_id": 25505, "ts": "2026-07-09T20:28:03Z", "hours": 1.2736, "text": "Finished up the starting animation but without any of the proper artwork. Everything is smooth and I refactored the animation code into a function."}, {"post_id": 24995, "ts": "2026-07-08T21:54:53Z", "hours": 2.4094, "text": "I created an animation at the beginning explaining the story before the gameplay would start."}, {"post_id": 24220, "ts": "2026-07-07T17:15:41Z", "hours": 1.0428, "text": "I setup better movement, a basic tutorial flow, and changed some colors. I also changed the font to be rendering Iosevka instead of the default font and sub-setted to minimize bundle size."}, {"post_id": 24145, "ts": "2026-07-07T14:59:24Z", "hours": 0.4497, "text": "Added proper bounds checking for the player. I usually don’t work in c which is why it took a while."}, {"post_id": 23871, "ts": "2026-07-07T02:11:32Z", "hours": 1.8908, "text": "I properly linked raylib using it’s template. This took a while because nix makes stuff very odd to package and build when it requires dependencies. I also got proper 2d movement working."}]...
|
Title: Fragments by @polarizedGale1 | Stardance
D Title: Fragments by @polarizedGale1 | Stardance
Devlogs:
I properly linked raylib using it’s template. This took a while because nix makes stuff very odd to package and build when it requires dependencies. I also got proper 2d movement working.
Added proper bounds checking for the player. I usually don’t work in c which is why it took a while.
I setup better movement, a basic tutorial flow, and changed some colors. I also changed the font to be rendering Iosevka instead of the default font and sub-setted to minimize bundle size.
I created an animation at the beginning explaining the story before the gameplay would start.
Finished up the starting animation but without any of the proper artwork. Everything is smooth and I refactored the animation code into a function.
I added working maze generation based off the sidewinder algorithm using bitwise operations for the maze creation. Each level is procedurally generated and randomly places the picture frame fragment in the level. I temporarily removed collisions for moving outside of the map. I now need to add collisions with the maze and to clamp the camera to the screen.
I added proper collisions for the maze that is generated. I also added proper font sizing options, fixed web platform compilation, created a GUI start screen, properly modularized the the code to be based off the tile size, and refactored some of the code.
I finally got time to work on this again. I cleaned up the code a bit and made maze generation generic over any size. I also collapsed the 2d maze to be 1d to hopefully help with cache locality under certain actions.
I re-implemented the map algorithm to use Prim’s algorithm instead of sidewinder. I also changed it to use cells with bitflags for the walls instead of doubling the map size. Maps can now be dynamically sized instead of using a compile time constant so on different levels I can make them larger or smaller. I also tweaked Prim’s algorithm to generate a braid maze instead of a perfect maze.
I fixed the issue where maze generation would break on mazes larger than 15x15 because uint8_t would overflow. Also, I added centered labels and fixed resolution issues like labels appearing offscreen. I removed the old physical buttons meant for touch screens because this is becoming desktop only (web is included for this release but not onwards). Also, mazes now change size depending on which floor they belong to.
Ships:
I made a procedurally generated maze game with dynamically resizing floors. This was my first time using c in a project exclusively. Before, I used it but mainly as glue code to bind to a rust or odin project. Implementing a more sophisticated generation algorithm and collision was challenging....
|
1793227852.2169664
|
1793314252.2169664
|
|
35278
|
Chess Bot by @akshayK | Stardance
|
akshayK
|
1
|
26.0
|
192
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T02:24:30Z", "hours": 26.0, "multiplier": 7.28, "payout": 192, "blessing": "neutral", "text": "This is a browser based chess engine, where you can play against a bot that I made. You can play with both the white and the black pieces. One challenge that was hard to fix was making the chessboard appear. I spend well over 2 hours trying to make it appear, and I finally got it to work because my CDN was not properly configured, and the one I downloaded was not the right version. I am proud of actually getting the chess bot to work, let alone making it to the point where it can actually beat me, and other bots on chess.com. You can play against this by going to the releases page and downloading the zip file. The index.html file houses the webpage where you can play against the chess bot. Good luck on beating my chess bot! (and don’t use stockfish :) )", "repo": "https://github.com/AkshayK-960/chessbot/", "demo": "https://chessbot-pi.vercel.app/"}]...
|
[{"post_id": 78925, "ts": "202 [{"post_id": 78925, "ts": "2026-10-12T02:05:25Z", "hours": 1.7031, "text": "Devlog #8 I finally implemented playing both white and black for the chess bot! So, I think it is pretty much done. I also updated the README.md on Github so it aligns more with what actual readme files look like, and i polished some code so it is easier to tweak in case anyone wanted to do that. (everything is in script.js) Overall, I think this was a really fun journey and I definitely learned a lot about javascript, and about creating something efficient and fast. So, that’s pretty much it, you can play the bot on github, and I published a release for the chess bot. Have fun!"}, {"post_id": 73826, "ts": "2026-09-26T03:25:31Z", "hours": 1.2069, "text": "Devlog 7 I am finishing up the HTML layout and the content for my project, and I just now realized that the chessbot is broken again ;( So for the weekend, my first task will be to fix that (probably by getting the code from previous versions of the chess bot) and maybe some finshing touches on the CSS. I still haven’t writtin the README file yet. I will get to it soon. By the time I’m posting this, there are about 5 days until the deadline, so that would probably be one of the final things to add. PS: if you are close to done with your project, this is your reminder to lock in and ship the project, good luck :) Also the image is the website not working 😢"}, {"post_id": 66852, "ts": "2026-09-12T19:36:32Z", "hours": 1.5772, "text": "DEVLOG 6 I changed the CSS around a little bit, because it looked basic. Now, the website has a paper theme, so it looks easier on the eyes. I really like this theme because it looks polished (the chess board isn’t working in the picture, i’m working on fixing it.) The analysis link now works, and by clicking it, it redirects you to a lichess analysis board of the current game. The page looks plain, so if there is something I should add, you can tell me below. the only things I really need to add now is an option to play with the black pieces AND maybe add more in the “how it works’ section."}, {"post_id": 63645, "ts": "2026-09-07T15:51:35Z", "hours": 5.2158, "text": "Devlog 5 I finished implementing a new bitboard engine, since the old chess.js library was really slow, and it froze the screen. ALSO, the github link was not displaying the chessboard, and i spent well over 2 hours trying to debug this. But in the end, the chess bot would not work correctly if the board appears in the github website. So, for now, if you want to test the chess bot, you can click releases in the github and download & run the HTML file. I plan to let the player play the black side too, instead of only white. (I will update the github repo soon so there is an option to download) P.S. You can change the background image in the code, and I might make an option to change the image in the website soon)"}, {"post_id": 46658, "ts": "2026-08-14T02:43:57Z", "hours": 6.5964, "text": "Devlog #4 It’s been a while, but I’ve finally (mostly) finished with coding the chess bot. I might go back to it soon, but I want to focus more on the visuals, so I made a simple UI based on the chess.com/lichess layout. I also made it so you can customize the background by entering the image URL. I also implemented an evaluation engine (with a low depth) for a numerical value of the position on board. I wanted a higher evaluation depth, but it lags whenever it calculates the score. So, it should be either depth 2 or 3, even if the actual bot is thinking deeper. If you have any suggestions, you can comment them, and I will try to add them."}, {"post_id": 42290, "ts": "2026-08-06T22:35:01Z", "hours": 3.2325, "text": "Devlog 3: By now, I’ve realized that the github pages doesn’t work. :( But, I’m trying to fix it as of now. (You can download the github project and it works that way though) As for the actual game, I have improved it so that instead of a set depth, it searches for the best move for a set amount of time, and if there is still time left over from the search, it increases its depth by 1, and searches one more move deep. It normally searches 3-5 moves deep on my PC and ~3 moves on my chromebook. I tested it against the chess.com bots, and it beats the beginner and intermediate bots pretty consistently. I also played it against Wendy bot (1500 elo) and it won! (I did not expect it to win) Here’s the game, if anyone wants to analyze it themselves: [Event “Play vs Bot”] [Site “Chess.com”] [Date “2026.08.06”] [Round “-”] [White “Wendy-BOT”] [Black “Chess-Bot(Stardance)”] [Result “0-1”] [CurrentPosition “5k2/pp4R1/6P1/3pB3/4b2P/7K/1P4q1/8 w - - 11 52”] [Timezone “UTC”] [ECO “C61”] [ECOUrl “https://www.chess.com/openings/Ruy-Lopez-Opening-Birds-Defense-4.Nxd4-exd4-5.O-O”] [UTCDate “2026.08.06”] [UTCTime “21:56:10”] [WhiteElo “1500”] [BlackElo “172”] [TimeControl “?”] [Termination “Akshay Kommoju won by checkmate”] [StartTime “21:56:10”] [EndDate “2026.08.06”] [EndTime “22:16:01”] [Link “https://www.chess.com/analysis/game/computer/1894651872/review?move=27”] [WhiteUrl “https://images.chesscomfiles.com/uploads/v1/user/66746050.adfcf725.50x50o.d52666e0e879.png”] [WhiteCountry “3”] [WhiteTitle “”] [BlackUrl “https://www.chess.com/bundles/web/images/noavatar_l.84a92436.gif”] [BlackCountry “69”] [BlackTitle “”] e4 e5 2. Nf3 Nc6 3. Bb5 Nd4 4. Nxd4 exd4 5. O-O Qg5 6. Bd3 Nf6 7. f4 Qh4 8. e5 Nd5 9. Qf3 Nb6 10. c3 dxc3 11. Nxc3 Bc5+ 12. Kh1 O-O 13. Ne4 Bd4 14. g3 Qe7 15. Ng5 h6 16. Qe4 f5 17. Qxd4 hxg5 18. fxg5 c5 19. Qf4 Nd5 20. Bc4 Qe6 21. Bxd5 Qxd5+ 22. Rf3 Re8 23. d4 cxd4 24. Qxf5 d6 25. e6 Bxe6 26. Qd3 Bg4 27. Kg2 Bxf3+ 28. Kf2 Bh1 29. Qb3 Qxb3 30. axb3 d5 31. Bf4 Be4 32. Rd1 d3 33. h4 Re6 34. Rc1 Rb6 35. Ke3 Rxb3 36. Be5 Rf8 37. Rc7 Rf3+ 38. Kd2 Rf2+ 39. Ke1 d2+ 40. Kxf2 d1=Q 41. Rxg7+ Kf8 42. g6 Rf3+ 43. Kg2 Rf4+ 44. Kh3 Qf1+ 45. Kh2 Rxh4+ 46. gxh4 Qh1+ 47. Kg3 Qf3+ 48. Kh2 Qh1+ 49. Kg3 Qf3+ 50. Kh2 Qf2+ 51. Kh3 Qg2# 0-1"}, {"post_id": 36613, "ts": "2026-07-28T20:41:36Z", "hours": 4.7978, "text": "I finally coding a basic bot that plays against you. This plays legal moves, and has a move depth of 3. I implemented minimax and piece square tables, so it would play better moves quickly. There is also an option to export the game as a pgn or fen, so you can evaluate the chess bot as well as your accuracy. currently, even with move depth 3, it is slow, especially when there are a lot of moves it has to sort through, and I want to make it so the algorithm works faster, even on lower end devices. Also, the algorithm is pretty bad, (it got about 75% accuracy on chess.com analysis) so I also plan on improving it in the future."}, {"post_id": 28656, "ts": "2026-07-15T01:20:40Z", "hours": 2.0831, "text": "Devlog #1 My first goal in building a chess bot is to code the board and defining the rules. I used chessboard.js to make the board, and I will later implement rules, so both sides can only play legal moves, and also castling, en passant, etc."}]...
|
Title: Chess Bot by @akshayK | Stardance
Devlogs: Title: Chess Bot by @akshayK | Stardance
Devlogs:
Devlog #1 My first goal in building a chess bot is to code the board and defining the rules. I used chessboard.js to make the board, and I will later implement rules, so both sides can only play legal moves, and also castling, en passant, etc.
I finally coding a basic bot that plays against you. This plays legal moves, and has a move depth of 3. I implemented minimax and piece square tables, so it would play better moves quickly. There is also an option to export the game as a pgn or fen, so you can evaluate the chess bot as well as your accuracy. currently, even with move depth 3, it is slow, especially when there are a lot of moves it has to sort through, and I want to make it so the algorithm works faster, even on lower end devices. Also, the algorithm is pretty bad, (it got about 75% accuracy on chess.com analysis) so I also plan on improving it in the future.
Devlog 3: By now, I’ve realized that the github pages doesn’t work. :( But, I’m trying to fix it as of now. (You can download the github project and it works that way though) As for the actual game, I have improved it so that instead of a set depth, it searches for the best move for a set amount of time, and if there is still time left over from the search, it increases its depth by 1, and searches one more move deep. It normally searches 3-5 moves deep on my PC and ~3 moves on my chromebook. I tested it against the chess.com bots, and it beats the beginner and intermediate bots pretty consistently. I also played it against Wendy bot (1500 elo) and it won! (I did not expect it to win) Here’s the game, if anyone wants to analyze it themselves: [Event “Play vs Bot”] [Site “Chess.com”] [Date “2026.08.06”] [Round “-”] [White “Wendy-BOT”] [Black “Chess-Bot(Stardance)”] [Result “0-1”] [CurrentPosition “5k2/pp4R1/6P1/3pB3/4b2P/7K/1P4q1/8 w - - 11 52”] [Timezone “UTC”] [ECO “C61”] [ECOUrl “https://www.chess.com/openings/Ruy-Lopez-Opening-Birds-Defense-4.Nxd4-exd4-5.O-O”] [UTCDate “2026.08.06”] [UTCTime “21:56:10”] [WhiteElo “1500”] [BlackElo “172”] [TimeControl “?”] [Termination “Akshay Kommoju won by checkmate”] [StartTime “21:56:10”] [EndDate “2026.08.06”] [EndTime “22:16:01”] [Link “https://www.chess.com/analysis/game/computer/1894651872/review?move=27”] [WhiteUrl “https://images.chesscomfiles.com/uploads/v1/user/66746050.adfcf725.50x50o.d52666e0e879.png”] [WhiteCountry “3”] [WhiteTitle “”] [BlackUrl “https://www.chess.com/bundles/web/images/noavatar_l.84a92436.gif”] [BlackCountry “69”] [BlackTitle “”] e4 e5 2. Nf3 Nc6 3. Bb5 Nd4 4. Nxd4 exd4 5. O-O Qg5 6. Bd3 Nf6 7. f4 Qh4 8. e5 Nd5 9. Qf3 Nb6 10. c3 dxc3 11. Nxc3 Bc5+ 12. Kh1 O-O 13. Ne4 Bd4 14. g3 Qe7 15. Ng5 h6 16. Qe4 f5 17. Qxd4 hxg5 18. fxg5 c5 19. Qf4 Nd5 20. Bc4 Qe6 21. Bxd5 Qxd5+ 22. Rf3 Re8 23. d4 cxd4 24. Qxf5 d6 25. e6 Bxe6 26. Qd3 Bg4 27. Kg2 Bxf3+ 28. Kf2 Bh1 29. Qb3 Qxb3 30. axb3 d5 31. Bf4 Be4 32. Rd1 d3 33. h4 Re6 34. Rc1 Rb6 35. Ke3 Rxb3 36. Be5 Rf8 37. Rc7 Rf3+ 38. Kd2 Rf2+ 39. Ke1 d2+ 40. Kxf2 d1=Q 41. Rxg7+ Kf8 42. g6 Rf3+ 43. Kg2 Rf4+ 44. Kh3 Qf1+ 45. Kh2 Rxh4+ 46. gxh4 Qh1+ 47. Kg3 Qf3+ 48. Kh2 Qh1+ 49. Kg3 Qf3+ 50. Kh2 Qf2+ 51. Kh3 Qg2# 0-1
Devlog #4 It’s been a while, but I’ve finally (mostly) finished with coding the chess bot. I might go back to it soon, but I want to focus more on the visuals, so I made a simple UI based on the chess.com/lichess layout. I also made it so you can customize the background by entering the image URL. I also implemented an evaluation engine (with a low depth) for a numerical value of the position on board. I wanted a higher evaluation depth, but it lags whenever it calculates the score. So, it should be either depth 2 or 3, even if the actual bot is thinking deeper. If you have any suggestions, you can comment them, and I will try to add them.
Devlog 5 I finished implementing a new bitboard engine, since the old chess.js library was really slow, and it froze the screen. ALSO, the github link was not displaying the chessboard, and i spent well over 2 hours trying to debug this. But in the end, the chess bot would not work correctly if the board appears in the github website. So, for now, if you want to test the chess bot, you can click releases in the github and download & run the HTML file. I plan to let the player play the black side too, instead of only white. (I will update the github repo soon so there is an option to download) P.S. You can change the background image in the code, and I might make an option to change the image in the website soon)
DEVLOG 6 I changed the CSS around a little bit, because it looked basic. Now, the website has a paper theme, so it looks easier on the eyes. I really like this theme because it looks polished (the chess board isn’t working in the picture, i’m working on fixing it.) The analysis link now works, and by clicking it, it redirects you to a lichess analysis board of the current game. The page looks plain, so if there is something I should add, you can tell me below. the only things I really need to add now is an option to play with the black pieces AND maybe add more in the “how it works’ section.
Devlog 7 I am finishing up the HTML layout and the content for my project, and I just now realized that the chessbot is broken again ;( So for the weekend, my first task will be to fix that (probably by getting the code from previous versions of the chess bot) and maybe some finshing touches on the CSS. I still haven’t writtin the README file yet. I will get to it soon. By the time I’m posting this, there are about 5 days until the deadline, so that would probably be one of the final things to add. PS: if you are close to done with your project, this is your reminder to lock in and ship the project, good luck :) Also the image is the website not working 😢
Devlog #8 I finally implemented playing both white and black for the chess bot! So, I think it is pretty much done. I also updated the README.md on Github so it aligns more with what actual readme files look like, and i polished some code so it is easier to tweak in case anyone wanted to do that. (everything is in script.js) Overall, I think this was a really fun journey and I definitely learned a lot about javascript, and about creating something efficient and fast. So, that’s pretty much it, you can play the bot on github, and I published a release for the chess bot. Have fun!
Ships:
This is a browser based chess engine, where you can play against a bot that I made. You can play with both the white and the black pieces. One challenge that was hard to fix was making the chessboard appear. I spend well over 2 hours trying to make it appear, and I finally got it to work because my CDN was not properly configured, and the one I downloaded was not the right version. I am proud of actually getting the chess bot to work, let alone making it to the point where it can actually beat me, and other bots on chess.com. You can play against this by going to the releases page and downloading the zip file. The index.html file houses the webpage where you can play against the chess bot. Good luck on beating my chess bot! (and don’t use stockfish :) )...
|
1793144920.993376
|
1793231320.993376
|
|
37477
|
Heart iQ by @seshas2025 | Stardance
|
seshas2025
|
1
|
26.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T22:16:59Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Heart iQ is an app that uses rPPG technology to scan your face for about 15 seconds, then analyzes your risk for heart disease. Advice from this app is not suitable for medical advice, so consult a doctor for a better opinion before taking action. We also provide an AI chat bot to explain your symptoms and receive advice. The emergency call feature is inactive as of now.", "repo": "https://github.com/Haptic7/goIT-App", "demo": "https://heartiq.web.app"}]...
|
[{"post_id": 42132, "ts": "202 [{"post_id": 42132, "ts": "2026-08-06T18:41:40Z", "hours": 2.5853, "text": "Working onimproving accuracy"}, {"post_id": 41475, "ts": "2026-08-05T18:15:50Z", "hours": 2.8278, "text": "Almost done with face scan feature! Working on improving accuracy and improving results even in low lighting or unfavorable conditions."}, {"post_id": 39280, "ts": "2026-08-02T04:45:50Z", "hours": 1.8361, "text": "Not Shipping Yet I was all prepared to ship when my app ran into an error running on Android devices. My computer ran it perfectly fine, with the exception of the fave scan, which only works on mobile devices due to camera and face detection limitations. Now I’ve updated it to run smoothly on Android phones, iOS compatibility requires XCode and a Macbook ( I have a Windows Laptop ). My app is finally able to read data sucha as bpm, hrv, etc from a simple 10-15 second face scan. The values aren’t accurate yet ( My scan resulted in high risk of AFib but I’m perfectly fine and I’m only 14 ), so the app still needs to be worked on. All the other features including the AI chatbot are fully functional. The profile screen and settings page is a little glitchy, but that is the least of my concerns right now, but I will make sure to update it before shipping. Feel free to test out the app at https://heartiq.web.app !"}, {"post_id": 38648, "ts": "2026-08-01T04:44:12Z", "hours": 1.9508, "text": "I can finally ship my project!!! All I had to do was make a custom URL. Heart iQ is a heart health tracker (not a diagnostic tool) that is in the testing phase right now, featuring four features: rPPG Face Scan, AI Symptom Checker, Diet and Lifestyle Tips, and Emrgency Call + Tips to ease pain."}, {"post_id": 37652, "ts": "2026-07-30T15:19:34Z", "hours": 2.5436, "text": "Finally Ready to Ship!!! Heart iQis a heart health tracker that features 4 key features: 1. rPPG Face Scan, 2. AI Symptom Check, 3. Emergency Call + Guidance, and 4. Diet and Lifestyle tips. Our app is centered on promoting good health and well-being (UN SDG 3), and making sure no one neglects signs of heart disease because treatment is too expensive or nearby hospitals are really far away. Heart iQ detects signs early, and tells the user if they need to seek immediate help or not. DISCLAIMER: This app is merely a screening service, not a diagnostic tool. This app does not provide professional advice or prescriptions, and it should be not used as a substitute for those. Facial scanning data and Symptom Check data is deleted every 30 days as per Illinois BIPA laws, and your data will not be shared, sold, or stored outside of our secured databases. By using this app and its services, you consent to the processing and storage of your biometric and medical data. Attached is a screenshot of the Symptom Check feature and how it functions. *Also how do I attach a project demo link??? My project is being distributed from Firebase Distribution, and when I attach it to stardance, it says my link has to be public, but my app is available for anyone to download from the link… so…"}, {"post_id": 37146, "ts": "2026-07-29T17:11:52Z", "hours": 4.5647, "text": "Almost ready to ship!!! Done with all four features of the app including the main rPPG Scan, now updating the app to prompt T&C and making sure it abides by medical safety laws."}, {"post_id": 35921, "ts": "2026-07-27T17:52:06Z", "hours": 1.3733, "text": "Almost done with the app!!! Added rPPG functionality, and updated AI Symptom Check to connect to Firebase and pull user-provided medical background to personalize the tips they receive."}, {"post_id": 35568, "ts": "2026-07-27T03:04:31Z", "hours": 4.1317, "text": "Working on attaching firebase to my app and organizing its structure. I split up the screens so it’s easier to navigatee whille developing."}, {"post_id": 34659, "ts": "2026-07-25T15:47:41Z", "hours": 1.2822, "text": "I created a GitHub repository to collaborate with teammates."}, {"post_id": 33090, "ts": "2026-07-22T18:03:10Z", "hours": 0.6417, "text": "Currently working on UI and adding screens for each feature."}, {"post_id": 32505, "ts": "2026-07-21T18:45:33Z", "hours": 0.6942, "text": "I’m still working on attaching Firebase to my Flutter project"}, {"post_id": 32045, "ts": "2026-07-20T22:37:22Z", "hours": 1.0142, "text": "I’m trying to add Firebase to my project, but I keep getting errors and the command isn’t being recognized"}, {"post_id": 31967, "ts": "2026-07-20T19:53:57Z", "hours": 0.4328, "text": "I am working on setting up a database to save user credntials right now."}, {"post_id": 31581, "ts": "2026-07-20T02:54:03Z", "hours": 0.4717, "text": "Log In, Home, and Emergency Screens"}]...
|
Title: Heart iQ by @seshas2025 | Stardance
Devlog Title: Heart iQ by @seshas2025 | Stardance
Devlogs:
Log In, Home, and Emergency Screens
I am working on setting up a database to save user credntials right now.
I’m trying to add Firebase to my project, but I keep getting errors and the command isn’t being recognized
I’m still working on attaching Firebase to my Flutter project
Currently working on UI and adding screens for each feature.
I created a GitHub repository to collaborate with teammates.
Working on attaching firebase to my app and organizing its structure. I split up the screens so it’s easier to navigatee whille developing.
Almost done with the app!!! Added rPPG functionality, and updated AI Symptom Check to connect to Firebase and pull user-provided medical background to personalize the tips they receive.
Almost ready to ship!!! Done with all four features of the app including the main rPPG Scan, now updating the app to prompt T&C and making sure it abides by medical safety laws.
Finally Ready to Ship!!! Heart iQis a heart health tracker that features 4 key features: 1. rPPG Face Scan, 2. AI Symptom Check, 3. Emergency Call + Guidance, and 4. Diet and Lifestyle tips. Our app is centered on promoting good health and well-being (UN SDG 3), and making sure no one neglects signs of heart disease because treatment is too expensive or nearby hospitals are really far away. Heart iQ detects signs early, and tells the user if they need to seek immediate help or not. DISCLAIMER: This app is merely a screening service, not a diagnostic tool. This app does not provide professional advice or prescriptions, and it should be not used as a substitute for those. Facial scanning data and Symptom Check data is deleted every 30 days as per Illinois BIPA laws, and your data will not be shared, sold, or stored outside of our secured databases. By using this app and its services, you consent to the processing and storage of your biometric and medical data. Attached is a screenshot of the Symptom Check feature and how it functions. *Also how do I attach a project demo link??? My project is being distributed from Firebase Distribution, and when I attach it to stardance, it says my link has to be public, but my app is available for anyone to download from the link… so…
I can finally ship my project!!! All I had to do was make a custom URL. Heart iQ is a heart health tracker (not a diagnostic tool) that is in the testing phase right now, featuring four features: rPPG Face Scan, AI Symptom Checker, Diet and Lifestyle Tips, and Emrgency Call + Tips to ease pain.
Not Shipping Yet I was all prepared to ship when my app ran into an error running on Android devices. My computer ran it perfectly fine, with the exception of the fave scan, which only works on mobile devices due to camera and face detection limitations. Now I’ve updated it to run smoothly on Android phones, iOS compatibility requires XCode and a Macbook ( I have a Windows Laptop ). My app is finally able to read data sucha as bpm, hrv, etc from a simple 10-15 second face scan. The values aren’t accurate yet ( My scan resulted in high risk of AFib but I’m perfectly fine and I’m only 14 ), so the app still needs to be worked on. All the other features including the AI chatbot are fully functional. The profile screen and settings page is a little glitchy, but that is the least of my concerns right now, but I will make sure to update it before shipping. Feel free to test out the app at https://heartiq.web.app !
Almost done with face scan feature! Working on improving accuracy and improving results even in low lighting or unfavorable conditions.
Working onimproving accuracy
Ships:
Heart iQ is an app that uses rPPG technology to scan your face for about 15 seconds, then analyzes your risk for heart disease. Advice from this app is not suitable for medical advice, so consult a doctor for a better opinion before taking action. We also provide an AI chat bot to explain your symptoms and receive advice. The emergency call feature is inactive as of now....
|
1793155705.0302281
|
1793242105.0302281
|
|
37706
|
FormulaOS by @Stellar | Stardance
|
Stellar
|
1
|
26.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T14:51:27Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Formula One web-based operating system! I started this project forever ago and just never had the time to actually work on it. It is currently very simple and I wish I had the time to actually make it better, but unfortunately Stardance is coming to an end soon. This project was built using React JS (more so Typescript than Javascript) which is a simple Javascript framework. It features three apps: notes, calculator, and terminal. It has a (static/non-movable) clock widget along with the time and date being displayed in the top-right corner. This project wasn’t very hard to make with probably the most difficult part being deploying the project itself.", "repo": "https://github.com/Ansh2021/FormulaOS", "demo": "https://ansh2021.github.io/FormulaOS/"}]...
|
[{"post_id": 73460, "ts": "202 [{"post_id": 73460, "ts": "2026-09-25T04:13:29Z", "hours": 10.9867, "text": "Finished (hopefully) Devlog #3 It’s been way too long since I’ve worked on this project. I decided to make it simpler for myself so I could actually get this project shipped. This is the main reason why I decided to remove part of the topbar (it didn’t really have much purpose anyway). I added a useable terminal filled with commands and fixed window ordering when clicking on multiple windows in any order. That’s really it for this devlog. I’ll probably ship this project very soon."}, {"post_id": 38900, "ts": "2026-08-01T14:11:31Z", "hours": 8.7997, "text": "Notes App & Clock Devlog #2 I added a simple notes app that is heavily inspired by the Apple Notes app (right now at least). I also added an analog clock drawn through JS graphics. Notes App The notes app is currently very simple and only has the capability to create and edit notes (no delete functionality yet). The first line in your note determines its title and the rest is considered its content (similar to Apple Notes). The Clock The analog clock is drawn through simple JavaScript graphics. It is repeatedly drawn over and over again to update the clock’s hands by using the the requestAnimationFrame() function which automatically synchronizes repeated updates to the refresh rate of the user’s display. This is taking way too long for WebOS 1. I’ll try to finish the first ship by the next devlog."}, {"post_id": 33087, "ts": "2026-07-22T17:55:59Z", "hours": 6.3911, "text": "Frontend Skeleton Devlog #1 FormulaOS, a little OS for F1 lovers. Progress I really just added a lot of the skeleton/components I will be using throughout this project. For example, I made a reusable window component. It currently has a full screen button working but isn’t freely resizable by the user like actual OS windows typically are. Next Steps Find a better color scheme? Add wallpapers (although I might save this for later) Add a bottom bar Clock and maybe calendar widget(s) Add more apps (I’ll decide which ones to add later) F1 themed fonts?"}]...
|
Title: FormulaOS by @Stellar | Stardance
Devlogs: Title: FormulaOS by @Stellar | Stardance
Devlogs:
Frontend Skeleton Devlog #1 FormulaOS, a little OS for F1 lovers. Progress I really just added a lot of the skeleton/components I will be using throughout this project. For example, I made a reusable window component. It currently has a full screen button working but isn’t freely resizable by the user like actual OS windows typically are. Next Steps Find a better color scheme? Add wallpapers (although I might save this for later) Add a bottom bar Clock and maybe calendar widget(s) Add more apps (I’ll decide which ones to add later) F1 themed fonts?
Notes App & Clock Devlog #2 I added a simple notes app that is heavily inspired by the Apple Notes app (right now at least). I also added an analog clock drawn through JS graphics. Notes App The notes app is currently very simple and only has the capability to create and edit notes (no delete functionality yet). The first line in your note determines its title and the rest is considered its content (similar to Apple Notes). The Clock The analog clock is drawn through simple JavaScript graphics. It is repeatedly drawn over and over again to update the clock’s hands by using the the requestAnimationFrame() function which automatically synchronizes repeated updates to the refresh rate of the user’s display. This is taking way too long for WebOS 1. I’ll try to finish the first ship by the next devlog.
Finished (hopefully) Devlog #3 It’s been way too long since I’ve worked on this project. I decided to make it simpler for myself so I could actually get this project shipped. This is the main reason why I decided to remove part of the topbar (it didn’t really have much purpose anyway). I added a useable terminal filled with commands and fixed window ordering when clicking on multiple windows in any order. That’s really it for this devlog. I’ll probably ship this project very soon.
Ships:
I made a Formula One web-based operating system! I started this project forever ago and just never had the time to actually work on it. It is currently very simple and I wish I had the time to actually make it better, but unfortunately Stardance is coming to an end soon. This project was built using React JS (more so Typescript than Javascript) which is a simple Javascript framework. It features three apps: notes, calculator, and terminal. It has a (static/non-movable) clock widget along with the time and date being displayed in the top-right corner. This project wasn’t very hard to make with probably the most difficult part being deploying the project itself....
|
1793148609.73224
|
1793235009.73224
|
|
39259
|
Pages for Pages by @ReuTheNetizen | Stardance
|
ReuTheNetizen
|
1
|
26.0
|
448
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T20:56:19Z", "hours": 26.0, "multiplier": 17.51, "payout": 448, "blessing": "neutral", "text": "What did you make? I wanted to make a personal site that was different from a portfolio, leading to the creation of Pages for Pages. It is my reading journal, now reimagined as a digital space! It features: An interactive reading log The main feature of the site, letting me easily share the books I’ve read. It supports arrow‑key and touch‑swipe navigation, plus title search. Custom CSS Bookshelf Currently used to display my TBR books, but future updates may add more shelves that sort completed books by genre. It features a simplified book spine design that reveals full cover artwork when hovered on. Styled Content Cards Based on the reading log, these cards highlight things like recommended reads or current progress, elevating the library theme. Annotation Workspace The most feature‑rich page: including dark mode, a Pomodoro timer, an ambient soundscape mixer, a YouTube media console, and a scratchpad with browser‑storage capabilities. What are you proud of? I’m most proud of the Library Lounge page. It transforms the site from a simple reading journal into a tool I actually want to use long term. Every component came together better than I expected, and the workspace feels genuinely effective for focused reading or study sessions. What was challenging? Debugging. Especially in JavaScript, since it’s the language I’m least familiar with. I kept running into small mistakes, like calling variables before they were declared when reorganizing code. I also tended to write entire features before testing them, which made debugging harder. I’m working on improving my workflow as I build more projects. What should people know so you can test your project? Just click the Try Project button to explore the site. If you want a quick overview of my development process, you can read the bullet points in the Completed Work section of each devlog. They serve as a TL;DR of the project’s progress.", "repo": "https://github.com/ReuTheCoder/pages-for-pages", "demo": "https://reuthecoder.github.io/pages-for-pages/"}]...
|
[{"post_id": 49435, "ts": "202 [{"post_id": 49435, "ts": "2026-08-18T08:50:40Z", "hours": 9.1861, "text": "Devlog 06 After 26 hours, I can say that Version 1.0 of Pages for Pages is complete!!! I thought getting the site ready for shipping would be easy since I only had one more page idea. I underestimated how long it would take to implement everything, polish my styling, and fix the many issues I encountered. Completed Work The workspace I described in Devlog 03 has now become the Library Lounge . Features like the soundscape mixer, Pomodoro timer, and “Dim the Lights” button were heavily inspired by I Miss My Cafe , but I added my own design spin to fit the library theme and what I would personally want while annotating a book. Pomodoro Interface This was heavily inspired by Codynn’s Build a Pomodoro App tutorial on YouTube. To avoid copying the code, I studied the final design, tried to recreate it myself, and then checked my work against the source code. This helped me simplify some of the JavaScript, despite me also making other parts harder for myself. “Dim the Lights” Button Essentially dark mode for the Lounge, designed for nighttime reading. It changes the site to an espresso theme and blends the navigation and footer into the background to increase focus. (I may add a site-wide dark mode in the future.) Soundscape Mixer I did not make the audio; it was sourced from Pixabay. It pairs especially well with a Jazz music video in the media player. Media Player One of my favorite features! It allows users to play any YouTube video that permits embedding directly on the page. I made it for music compilations and study-with-me videos while working, partly to avoid the distractions of switching tabs. This was the most complicated feature I made, and I relied heavily on AI for this part. My overall AI usage should still be well below 30% of the project. Favicon The favicon uses the same book design as my Stardance project image. I made it in Canva and used favicon.io to convert the PNG into an .ico file. Reading Logs All the reading logs for books currently featured on the site are now in. The site doesn’t represent every book I’ve read this year; I chose some of the most polished logs from my previous notebook. Going forward, I intend for the site to become my main log for new books. UI & Mobile Fixes After adding the logs, I moved the book images and navigation buttons higher on the Reading Journal page because the entries stretched the container. I also finally tested the site on mobile after deploying it to GitHub Pages and discovered I had forgotten to style the navigation for smaller screens. The last 30 minutes were spent fixing that. The site is functional on mobile, although it is designed primarily for desktop. Notable Bugs I Faced A JavaScript conflict appeared when I added the new page’s code to my main script.js , so I eventually moved it into a separate file. There were so many typos that they kept slowing me down. 40 minutes, if not more, were spent trying to figure out why the YouTube media player wouldn’t work. I initially assumed VS Code’s Live Preview was the problem, but it wasn’t. After lots of debugging (and some AI help), I discovered I hadn’t properly implemented the embed path into iFramePlayer.src. Fixing that caused a second YouTube configuration error, which I investigated through the console on my deployed site—only to discover that it suddenly worked!? Was Live Preview the problem? As the number one rule of programming says: “If it works, don’t touch it.” Next Steps I believe all I have to do now is prep the README and ship the site! Thanks for reading! - 2026/08/15-18"}, {"post_id": 47556, "ts": "2026-08-15T15:09:03Z", "hours": 3.4189, "text": "Devlog 05 There are a lot of cool bookshelf CSS designs out there. One particular one had a full 3D system, where one could rotate a book out of a bookshelf and slightly tilt it around based on the cursor position. It was too complicated for me to replicate with my current abilities, so I made a simplified version of that, where the bookshelf has a simplified book spine that reveals a book cover when hovered on. I also set up a “display view” where a book always shows its cover, as if it was a book on a stand. I’m happy with how it turned out! Completed Work Added bookshelf interface To be honest, my “To Be Read” list in my old reading journal is a bit outdated. So, I updated my “To Be Read” list with books suggested by teachers and titles I’ve recently been meaning to pick up. To keep things clean, I configured the CSS to trigger a horizontal scrollbar if the shelf fills up with too many books. I made a few front-end mistakes that took up some time to fix. For instance, it took me a while to figure out I wrote ‘scr’ instead of ‘src’ when embedding most of my images from this page. I also misnamed my width-limit and centering classes between my CSS and HTML, causing the layout to break across the page. This can be seen in the attached image. I briefly tested a small accent bar, which you can see in the in progress picture under the Project Hail Mary book cover, but removed it since it wasn’t adapting smoothly to different book widths. I tried adding a folded 3D paper label for the “TBR Shelf,” but for some reason it would not show up. You can even see the blank card in the broken photo. At first I thought it was because I had accidentally retyped the same class assignments (after taking a short break), causing conflicting class statements but that did not solve the issue. To save time, I swapped it for a clean card design. Styled featured book section I tried to mimic the same style as my journal cards and the current reading card on the homepage. Next Steps I’m going to add my reading journals logs to the website, and build out the “reading room” before tagging the v1.0 release. In the future, I may add genre-specific shelf filters and pop-up info cards for each title. Thanks for reading! - 2026/08/12-14"}, {"post_id": 45377, "ts": "2026-08-11T19:56:17Z", "hours": 4.255, "text": "Devlog 04 It has been a while since I did some work on this! Since the last devlog, I have been focused on refining the reading journal to the point it is now almost complete! Doing this section of this website has helped me learn a few new things about Javascript inputs. Additionally, I have read up on how to commit in Github and realized I have been doing them horribly wrong. From now on, I’m going to follow proper commit practices (like writing in the imperative). I’ll also see if I can edit my old ones so they are better. Completed Work Added journal interface and search bar functionality You can see how it looks in the attached video. The search bar input searches books based on the book title. I structured the JavaScript so that I can easily add new entries using an array with key-value pairs. The books I chose to feature in my reading journal for now are not necessarily the most recent ones I have read, rather they are just some of the books I found really interesting or really liked and also had detailed entries in my previous reading journal. I think most of my time was used learning the JavaScript I would need to implement the search and the touch screen swipe functionality. I also had an issue where some of my CSS did not work at all, causing elements to not be placed where I wanted to, only to realize I had changed up a class name accidentally from my JavaScript to my CSS. Changed the front page card Its contrast is a lot better now. Before I was going for a cardboard vibe, but it does not really work with the site background. I also changed the featured book as I have finished reading the original book and want to keep the site up to date. Renamed Reading Room to Reading Journal The feature I described in the last devlog will now become the reading room. I think it also makes more sense to just call it Reading Journal. Next Steps I am going to work on the Bookshelf now. I believe it’s going to mostly be CSS, so I hope it will be quick. I’ll probably add my journal entry content in by then as well. I am also thinking of implementing some sort of date system rather than having the page always go back to the first entry in my JavaScript. Thanks for reading! - 2026/08/10"}, {"post_id": 36548, "ts": "2026-07-28T18:55:35Z", "hours": 2.4178, "text": "Devlog 03 2026/07/27 I was originally planning to submit this website to the Personal Website mission, but I noticed this project was taking longer than I expected. So I decided I will submit this as its own standalone project and save my other website idea for the mission instead. I feel like this approach prevents me from rushing my site development, and enables me to take the time to learn and understand how to implement all the features I want in order to build a fully polished website. For instance, I am now thinking of adding a new feature: a page dedicated to studying or annotating books. I’m imagining a cozy little workspace with a pomodoro timer, a to‑do list, quick media access, and a notes section where I can jot down thoughts before turning them into proper journal entries. Please feel free to suggest any other feature you think this reading website should have! Completed Work Designed the site’s navigation so it looks like a folder time system. I achieved this by formatting the header section into a flexbox with a green background ( my website’s accent color) so I did not have to add borders to my folder tabs. I then converted the navigation into a flexbox, removed the default list styling, and added padding around each link so they resembled folder tabs. After adjusting the fonts and colors so the tabs look cohesive, I added an active class to each navigation link on its corresponding HTML page. Adjusted prose animation I essentially rebuilt the intro sequence to make my website feel more cinematic, which took a bit longer than expected because I kept making typos that broke the whole sequence… Before, the prose text simply faded in when you opened the site, and the JavaScript let you skip it with a key press or screen tap. You’ll have to see the new animation on the finished site! >:) It sets the tone way better and makes the prose feel more intentional. Next Steps I still have to polish the other pages. I’m going to start with formatting the Reading Room section and start adding journal logs. Now that I’ve decided I’m going to go at a slower pace, I’m going to make sure I want to understand every syntax choice I make instead of just throwing code I see online that will supposedly modify an element the way I want it to so I truly get to know HTML, CSS, and JavaScript more deeply. Thanks for reading!"}, {"post_id": 35499, "ts": "2026-07-26T23:39:56Z", "hours": 3.9006, "text": "Devlog 02 2026/07/25-26 Today I discovered that web design is really fun! I loved experimenting with all the different effects I could create using CSS. Honestly, I was surprised by how simple some features were to implement. For example, I hadn’t realized that changing an element’s color based on its state only requires specifying that state (like :hover or :active ) before assigning the style rules. Completed Work So far I have only really been polishing the home page. Here is a brief overview of things I have completed: Added two google fonts I chose Lora as my body text as it is known for being a readable font and I really wanted to use a serif font for this website. I chose DM Serif Display as my header font because it is still serif, but distinct enough from Lora that the headers still pop out and keep the page from looking bland. Determined website color pallette and applied the colors to background and text (including links and their various states) I went for a cream-colored background, with earthy tones as accents. Centered home page text and added a subtle glow effect to all letters using text shadow Formatted buttons Added intro animation It’s a little bit dramatic but was really fun and not too hard to implement. I spent some time adding a JavaScript function to allow someone to skip the animation by clicking or pressing a key as I found it a bit annoying to have the animation replay every time I went back to the homescreen. Polished “What I’m currently reading section” on the home page. By doing this, I learned how useful flex boxes are for organizing content. They made it much easier to design the “Currently Reading” section on my homepage as everything aligned neatly without me having to fight with margins or positioning. Most of my time today went into experimenting with this layout. I think I’ll use a similar CSS structure when building the journal pages later on. Google’s search AI, Gemini, was a huge help in finding the syntax I needed quickly. However, I made sure to write all my code myself. Instead of asking AI to build entire sections of my project, I only used it to clarify specific syntax questions (like how to rotate a flex box) and then worked through the implementation on my own. Next Steps Before I go any further, I’m going to have to work on my organization. My indentation is inconsistent and has been making looking over my code a bit confusing! After that, I’m going to work on the navigation, and then I am going to continue working on the CSS for the other pages. I’ll probably simultaneously work on the Javascript for certain elements at the same time - meaning my third devlog might be my last. Thanks for reading!"}, {"post_id": 34480, "ts": "2026-07-25T07:10:17Z", "hours": 2.4142, "text": "Devlog 01 2026/07/24 I used to keep track of the books I read in a reading journal. It not only fueled my interest in literature but also helped me read with greater intention, as I knew I would have to record my thoughts later. Over time, though, schoolwork took over and my entries slowly dwindled in frequency until I completely stopped. Now that summer has returned, I’m reviving my reading journal…this time in digital form! Project Vision I want my website to stay simple yet meaningful. I don’t want to take too long to build it and want it to be easy to update. It will have three pages: the Home , the Reading Room , and the Bookshelf . I’m aiming for a cozy, library‑like atmosphere. The home page will set that tone right away with a short prose piece explaining the site’s name while setting its mood. It will include a link to the Reading Room and have a “Currently Reading” section below. The Reading Room will hold my actual journal entries. Visitors will be able to browse through them or search for a specific book to view its entry. I plan to learn some JavaScript through this feature as I think it’ll be a fun challenge and a great way to make the site interactive. The Bookshelf will serve as my TBR list. I’ll experiment with CSS to make it feel like users are pulling out a book when they hover or click. There will also be a small “Featured” section where I’ll recommend a book I loved, hopefully adding to the library theme! (It’s like a librarian’s book recommendation!) Completed Work This idea came together while following Jenin’s Personal Site Workshop. I spent about the first half hour experimenting with HTML and CSS while brainstorming the concept. After that, I took my ideas together and drafted the site structure entirely in HTML. I mostly followed the personal site guide, only searching for extra features I wanted to add. Whenever I used code examples from online sources, I made sure to understand how each function worked and challenged myself to apply it elsewhere in my code so I was learning HTML properly through practice. Next Steps With the HTML foundation complete, my next goal is to polish the site using CSS. I anticipate that will be the focus of my next devlog. After styling, I’ll dive into JavaScript and add finishing touches before shipping the final version. Thanks for reading!"}]...
|
Title: Pages for Pages by @ReuTheNetizen | Stardan Title: Pages for Pages by @ReuTheNetizen | Stardance
Devlogs:
Devlog 01 2026/07/24 I used to keep track of the books I read in a reading journal. It not only fueled my interest in literature but also helped me read with greater intention, as I knew I would have to record my thoughts later. Over time, though, schoolwork took over and my entries slowly dwindled in frequency until I completely stopped. Now that summer has returned, I’m reviving my reading journal…this time in digital form! Project Vision I want my website to stay simple yet meaningful. I don’t want to take too long to build it and want it to be easy to update. It will have three pages: the Home , the Reading Room , and the Bookshelf . I’m aiming for a cozy, library‑like atmosphere. The home page will set that tone right away with a short prose piece explaining the site’s name while setting its mood. It will include a link to the Reading Room and have a “Currently Reading” section below. The Reading Room will hold my actual journal entries. Visitors will be able to browse through them or search for a specific book to view its entry. I plan to learn some JavaScript through this feature as I think it’ll be a fun challenge and a great way to make the site interactive. The Bookshelf will serve as my TBR list. I’ll experiment with CSS to make it feel like users are pulling out a book when they hover or click. There will also be a small “Featured” section where I’ll recommend a book I loved, hopefully adding to the library theme! (It’s like a librarian’s book recommendation!) Completed Work This idea came together while following Jenin’s Personal Site Workshop. I spent about the first half hour experimenting with HTML and CSS while brainstorming the concept. After that, I took my ideas together and drafted the site structure entirely in HTML. I mostly followed the personal site guide, only searching for extra features I wanted to add. Whenever I used code examples from online sources, I made sure to understand how each function worked and challenged myself to apply it elsewhere in my code so I was learning HTML properly through practice. Next Steps With the HTML foundation complete, my next goal is to polish the site using CSS. I anticipate that will be the focus of my next devlog. After styling, I’ll dive into JavaScript and add finishing touches before shipping the final version. Thanks for reading!
Devlog 02 2026/07/25-26 Today I discovered that web design is really fun! I loved experimenting with all the different effects I could create using CSS. Honestly, I was surprised by how simple some features were to implement. For example, I hadn’t realized that changing an element’s color based on its state only requires specifying that state (like :hover or :active ) before assigning the style rules. Completed Work So far I have only really been polishing the home page. Here is a brief overview of things I have completed: Added two google fonts I chose Lora as my body text as it is known for being a readable font and I really wanted to use a serif font for this website. I chose DM Serif Display as my header font because it is still serif, but distinct enough from Lora that the headers still pop out and keep the page from looking bland. Determined website color pallette and applied the colors to background and text (including links and their various states) I went for a cream-colored background, with earthy tones as accents. Centered home page text and added a subtle glow effect to all letters using text shadow Formatted buttons Added intro animation It’s a little bit dramatic but was really fun and not too hard to implement. I spent some time adding a JavaScript function to allow someone to skip the animation by clicking or pressing a key as I found it a bit annoying to have the animation replay every time I went back to the homescreen. Polished “What I’m currently reading section” on the home page. By doing this, I learned how useful flex boxes are for organizing content. They made it much easier to design the “Currently Reading” section on my homepage as everything aligned neatly without me having to fight with margins or positioning. Most of my time today went into experimenting with this layout. I think I’ll use a similar CSS structure when building the journal pages later on. Google’s search AI, Gemini, was a huge help in finding the syntax I needed quickly. However, I made sure to write all my code myself. Instead of asking AI to build entire sections of my project, I only used it to clarify specific syntax questions (like how to rotate a flex box) and then worked through the implementation on my own. Next Steps Before I go any further, I’m going to have to work on my organization. My indentation is inconsistent and has been making looking over my code a bit confusing! After that, I’m going to work on the navigation, and then I am going to continue working on the CSS for the other pages. I’ll probably simultaneously work on the Javascript for certain elements at the same time - meaning my third devlog might be my last. Thanks for reading!
Devlog 03 2026/07/27 I was originally planning to submit this website to the Personal Website mission, but I noticed this project was taking longer than I expected. So I decided I will submit this as its own standalone project and save my other website idea for the mission instead. I feel like this approach prevents me from rushing my site development, and enables me to take the time to learn and understand how to implement all the features I want in order to build a fully polished website. For instance, I am now thinking of adding a new feature: a page dedicated to studying or annotating books. I’m imagining a cozy little workspace with a pomodoro timer, a to‑do list, quick media access, and a notes section where I can jot down thoughts before turning them into proper journal entries. Please feel free to suggest any other feature you think this reading website should have! Completed Work Designed the site’s navigation so it looks like a folder time system. I achieved this by formatting the header section into a flexbox with a green background ( my website’s accent color) so I did not have to add borders to my folder tabs. I then converted the navigation into a flexbox, removed the default list styling, and added padding around each link so they resembled folder tabs. After adjusting the fonts and colors so the tabs look cohesive, I added an active class to each navigation link on its corresponding HTML page. Adjusted prose animation I essentially rebuilt the intro sequence to make my website feel more cinematic, which took a bit longer than expected because I kept making typos that broke the whole sequence… Before, the prose text simply faded in when you opened the site, and the JavaScript let you skip it with a key press or screen tap. You’ll have to see the new animation on the finished site! >:) It sets the tone way better and makes the prose feel more intentional. Next Steps I still have to polish the other pages. I’m going to start with formatting the Reading Room section and start adding journal logs. Now that I’ve decided I’m going to go at a slower pace, I’m going to make sure I want to understand every syntax choice I make instead of just throwing code I see online that will supposedly modify an element the way I want it to so I truly get to know HTML, CSS, and JavaScript more deeply. Thanks for reading!
Devlog 04 It has been a while since I did some work on this! Since the last devlog, I have been focused on refining the reading journal to the point it is now almost complete! Doing this section of this website has helped me learn a few new things about Javascript inputs. Additionally, I have read up on how to commit in Github and realized I have been doing them horribly wrong. From now on, I’m going to follow proper commit practices (like writing in the imperative). I’ll also see if I can edit my old ones so they are better. Completed Work Added journal interface and search bar functionality You can see how it looks in the attached video. The search bar input searches books based on the book title. I structured the JavaScript so that I can easily add new entries using an array with key-value pairs. The books I chose to feature in my reading journal for now are not necessarily the most recent ones I have read, rather they are just some of the books I found really interesting or really liked and also had detailed entries in my previous reading journal. I think most of my time was used learning the JavaScript I would need to implement the search and the touch screen swipe functionality. I also had an issue where some of my CSS did not work at all, causing elements to not be placed where I wanted to, only to realize I had changed up a class name accidentally from my JavaScript to my CSS. Changed the front page card Its contrast is a lot better now. Before I was going for a cardboard vibe, but it does not really work with the site background. I also changed the featured book as I have finished reading the original book and want to keep the site up to date. Renamed Reading Room to Reading Journal The feature I described in the last devlog will now become the reading room. I think it also makes more sense to just call it Reading Journal. Next Steps I am going to work on the Bookshelf now. I believe it’s going to mostly be CSS, so I hope it will be quick. I’ll probably add my journal entry content in by then as well. I am also thinking of implementing some sort of date system rather than having the page always go back to the first entry in my JavaScript. Thanks for reading! - 2026/08/10
Devlog 05 There are a lot of cool bookshelf CSS designs out there. One particular one had a full 3D system, where one could rotate a book out of a bookshelf and slightly tilt it around based on the cursor position. It was too complicated for me to replicate with my current abilities, so I made a simplified version of that, where the bookshelf has a simplified book spine that reveals a book cover when hovered on. I also set up a “display view” where a book always shows its cover, as if it was a book on a stand. I’m happy with how it turned out! Completed Work Added bookshelf interface To be honest, my “To Be Read” list in my old reading journal is a bit outdated. So, I updated my “To Be Read” list with books suggested by teachers and titles I’ve recently been meaning to pick up. To keep things clean, I configured the CSS to trigger a horizontal scrollbar if the shelf fills up with too many books. I made a few front-end mistakes that took up some time to fix. For instance, it took me a while to figure out I wrote ‘scr’ instead of ‘src’ when embedding most of my images from this page. I also misnamed my width-limit and centering classes between my CSS and HTML, causing the layout to break across the page. This can be seen in the attached image. I briefly tested a small accent bar, which you can see in the in progress picture under the Project Hail Mary book cover, but removed it since it wasn’t adapting smoothly to different book widths. I tried adding a folded 3D paper label for the “TBR Shelf,” but for some reason it would not show up. You can even see the blank card in the broken photo. At first I thought it was because I had accidentally retyped the same class assignments (after taking a short break), causing conflicting class statements but that did not solve the issue. To save time, I swapped it for a clean card design. Styled featured book section I tried to mimic the same style as my journal cards and the current reading card on the homepage. Next Steps I’m going to add my reading journals logs to the website, and build out the “reading room” before tagging the v1.0 release. In the future, I may add genre-specific shelf filters and pop-up info cards for each title. Thanks for reading! - 2026/08/12-14
Devlog 06 After 26 hours, I can say that Version 1.0 of Pages for Pages is complete!!! I thought getting the site ready for shipping would be easy since I only had one more page idea. I underestimated how long it would take to implement everything, polish my styling, and fix the many issues I encountered. Completed Work The workspace I described in Devlog 03 has now become the Library Lounge . Features like the soundscape mixer, Pomodoro timer, and “Dim the Lights” button were heavily inspired by I Miss My Cafe , but I added my own design spin to fit the library theme and what I would personally want while annotating a book. Pomodoro Interface This was heavily inspired by Codynn’s Build a Pomodoro App tutorial on YouTube. To avoid copying the code, I studied the final design, tried to recreate it myself, and then checked my work against the source code. This helped me simplify some of the JavaScript, despite me also making other parts harder for myself. “Dim the Lights” Button Essentially dark mode for the Lounge, designed for nighttime reading. It changes the site to an espresso theme and blends the navigation and footer into the background to increase focus. (I may add a site-wide dark mode in the future.) Soundscape Mixer I did not make the audio; it was sourced from Pixabay. It pairs especially well with a Jazz music video in the media player. Media Player One of my favorite features! It allows users to play any YouTube video that permits embedding directly on the page. I made it for music compilations and study-with-me videos while working, partly to avoid the distractions of switching tabs. This was the most complicated feature I made, and I relied heavily on AI for this part. My overall AI usage should still be well below 30% of the project. Favicon The favicon uses the same book design as my Stardance project image. I made it in Canva and used favicon.io to convert the PNG into an .ico file. Reading Logs All the reading logs for books currently featured on the site are now in. The site doesn’t represent every book I’ve read this year; I chose some of the most polished logs from my previous notebook. Going forward, I intend for the site to become my main log for new books. UI & Mobile Fixes After adding the logs, I moved the book images and navigation buttons higher on the Reading Journal page because the entries stretched the container. I also finally tested the site on mobile after deploying it to GitHub Pages and discovered I had forgotten to style the navigation for smaller screens. The last 30 minutes were spent fixing that. The site is functional on mobile, although it is designed primarily for desktop. Notable Bugs I Faced A JavaScript conflict appeared when I added the new page’s code to my main script.js , so I eventually moved it into a separate file. There were so many typos that they kept slowing me down. 40 minutes, if not more, were spent trying to figure out why the YouTube media player wouldn’t work. I initially assumed VS Code’s Live Preview was the problem, but it wasn’t. After lots of debugging (and some AI help), I discovered I hadn’t properly implemented the embed path into iFramePlayer.src. Fixing that caused a second YouTube configuration error, which I investigated through the console on my deployed site—only to discover that it suddenly worked!? Was Live Preview the problem? As the number one rule of programming says: “If it works, don’t touch it.” Next Steps I believe all I have to do now is prep the README and ship the site! Thanks for reading! - 2026/08/15-18
Ships:
What did you make? I wanted to make a personal site that was different from a portfolio, leading to the creation of Pages for Pages. It is my reading journal, now reimagined as a digital space! It features: An interactive reading log The main feature of the site, letting me easily share the books I’ve read. It supports arrow‑key and touch‑swipe navigation, plus title search. Custom CSS Bookshelf Currently used to display my TBR books, but future updates may add more shelves that sort completed books by genre. It features a simplified book spine design that reveals full cover artwork when hovered on. Styled Content Cards Based on the reading log, these cards highlight things like recommended reads or current progress, elevating the library theme. Annotation Workspace The most feature‑rich page: including dark mode, a Pomodoro timer, an ambient soundscape mixer, a YouTube media console, and a scratchpad with browser‑storage capabilities. What are you proud of? I’m most proud of the Library Lounge page. It transforms the site from a simple reading journal into a tool I actually want to use long term. Every component came together better than I expected, and the workspace feels genuinely effective for focused reading or study sessions. What was challenging? Debugging. Especially in JavaScript, since it’s the language I’m least familiar with. I kept running into small mistakes, like calling variables before they were declared when reorganizing code. I also tended to write entire features before testing them, which made debugging harder. I’m working on improving my workflow as I build more projects. What should people know so you can test your project? Just click the Try Project button to explore the site. If you want a quick overview of my development process, you can read the bullet points in the Completed Work section of each devlog. They serve as a TL;DR of the project’s progress....
|
1793123757.1899505
|
1793210157.1899505
|
|
41262
|
FLYHIGH by @carteralfers | Stardance
|
carteralfers
|
1
|
26.0
|
184
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T18:20:13Z", "hours": 26.0, "multiplier": 7.1, "payout": 184, "blessing": "neutral", "text": "FLYHIGH | Version 0.1 | First Release The first playable version of FLYHIGH is complete and published on itch.io! Construct a rocket from a modular builder, and view how it performs based on your module choices. Custom-made physics with live telemetry, including a fast-forward button if you just can’t wait to see the results. There’s still so much I want to add, but this is the first full, working version! Godot and Object Oriented Programming were quite hard to learn for a newcomer like myself. This is my first real project and it’s a huge victory! (no matter how awesome the stuff everybody else is making is). Go try it now! Please give me any feedback you may have! It really helps!", "repo": "https://github.com/Qwerty9964/fly-high", "demo": "https://cartercancode.itch.io/fly-high"}]...
|
[{"post_id": 47062, "ts": "202 [{"post_id": 47062, "ts": "2026-08-14T17:53:14Z", "hours": 0.6178, "text": "DEVLOG 11.1: About to ship v0.1! Spent my last amount of time fixing some ui and export issues, and making a README. Still have tons and tons of cool stuff I want to add (hence v0.1), but I have my first version published to Itch."}, {"post_id": 46695, "ts": "2026-08-14T04:11:39Z", "hours": 1.6986, "text": "DEVLOG 11: First playable version! Will try to ship soon! Still have ALOT I want to add, but this is my first version and I’m proud of it!"}, {"post_id": 46638, "ts": "2026-08-14T01:10:25Z", "hours": 5.9842, "text": "DEVLOG 10: Wow! Ui is harder than expected! 6 hours to design a simple system and get it working. I just got back from a massive camping trip in Pecos, New Mexico (very beautiful, pulled out early because of wildfires) and grinded this out. I’m getting close to shipping a simple version of this! Next I have to add a fail state and simple main menu."}, {"post_id": 41098, "ts": "2026-08-05T02:41:07Z", "hours": 1.8328, "text": "DEVLOG 9.5: Well I logged like 3 hours today , I think Hackatime dropped a bunch of it but lol that’s fine. Anyways, just wanted to post a small update. I finished the models for all of my modules. Transferred my physics system to my modular rocket. Problem is early Thursday morning I leave for like a seven-day camping trip, lol. I recently learned that you can ship a project multiple times, as long as you add substantial features and improvements between the ships. I was thinking of shipping a version of this before I go on that trip,(and working on it more after of course). What I want to add before that is a screen to let the user select the parts they want, but that will take me a hot second. Anyways, that was a lot of rambling but just wanted to write this down, lol."}, {"post_id": 40497, "ts": "2026-08-04T02:11:38Z", "hours": 1.9544, "text": "DEVLOG 9: I finally got my modular system to work. Haven’t made all of them yet, but I’ve gotten it to this point! (watch the video). Also, I know the design looks bad, I’m trying 😭. Right now I just want three different levels, small, basic, and large. Each one of them has a mass, cost, whatever, and you can buy and mix and match them to launch rockets and complete missions."}, {"post_id": 39837, "ts": "2026-08-03T02:53:25Z", "hours": 1.4669, "text": "DEVLOG 8: Today was a lot of planning. I want to implement a modular system where the player buys/selects rocket parts, each with certain stats like mass, drag, thrust, fuel capacity, etc. I started working on some of those parts today, along with learning Godot’s class/resource system and starting on that. Hopefully tomorrow I can get a working prototype of this system going! Let me know if any of you have any ideas."}, {"post_id": 39245, "ts": "2026-08-02T02:52:35Z", "hours": 2.3264, "text": "DEVLOG 7: okay, today I just worked on some polish all-round. was kinda tired so didn’t feel like doing anything MAJOR. Godot is feeling better though, probably because I’m just using it more. as always, if anyone is seeing these, please share any feedback or tips! I’m quite new and picking up this stuff as I go along."}, {"post_id": 38593, "ts": "2026-08-01T02:16:33Z", "hours": 3.0008, "text": "DEVLOG 6: so I’ve been using Godot and it’s been great. I’ve gotten to the point I was at in AFRAME in half the time! I think it looks a little more polished now. I am VERY new to Godot so if anyone has any tips or feedback, that would be much appreciated! My next steps will be implementing some game features to this game… maybe a title screen?"}, {"post_id": 38256, "ts": "2026-07-31T15:39:26Z", "hours": 0.8447, "text": "DEVLOG 5: GENESIS? so i got a comment on my last devlog ( @mikhailnotfish ) saying I should switch to a game engine. I did some research and Godot seemed like a cool option. Unfortunately it would mean starting over, and learning a whole new engine. soo… I downloaded Godot, and it seemed a little easier than what I was doing. I’m still keeping my old work incase I want to switch back, but I think Godot will allow me to build something better."}, {"post_id": 38003, "ts": "2026-07-31T03:41:03Z", "hours": 1.1908, "text": "DEVLOG 4: I was about to go to sleep, but got on VS code and banged out a particle system. Rocket takeoff looks a little better now, and I’m open to feedback if anyone’s reading these!"}, {"post_id": 37886, "ts": "2026-07-30T21:32:31Z", "hours": 0.3528, "text": "DEVLOG 3.5: I know I just posted a devlog… but I think this camera shake is awesome"}, {"post_id": 37823, "ts": "2026-07-30T19:36:27Z", "hours": 2.2, "text": "DEVLOG 3: okay, so I spent a while making a better rocket design. i also added telemetry so you could see how the rocket is doing. next i want to add a better engine effect with particles and screen shake, but I cant find any particle librarys. soo… I’m just going to make my own custom particle function, lol. I think I’m just avoiding adding better physics but I want it to look nice!"}, {"post_id": 37249, "ts": "2026-07-29T20:15:07Z", "hours": 0.8603, "text": "DEVLOG 2: okay so I found a gltf model of NASA’s launchpad and put that in, so now it looks a little better, and i updated the physics. still straight line movement but its a little more accurate now? Idk if its a good starting point but its better than what I had!"}, {"post_id": 37066, "ts": "2026-07-29T15:20:34Z", "hours": 1.5908, "text": "DEVLOG 1: I know this looks really dumb but I’m kinda new and happy to get this to work. Basically when you press the launch button the box (rocket) moves up at a constant rate in a straight line. Will start to add better physics next, although I actually have to learn the physics first, lol."}]...
|
Title: FLYHIGH by @carteralfers | Stardance
Devlo Title: FLYHIGH by @carteralfers | Stardance
Devlogs:
DEVLOG 1: I know this looks really dumb but I’m kinda new and happy to get this to work. Basically when you press the launch button the box (rocket) moves up at a constant rate in a straight line. Will start to add better physics next, although I actually have to learn the physics first, lol.
DEVLOG 2: okay so I found a gltf model of NASA’s launchpad and put that in, so now it looks a little better, and i updated the physics. still straight line movement but its a little more accurate now? Idk if its a good starting point but its better than what I had!
DEVLOG 3: okay, so I spent a while making a better rocket design. i also added telemetry so you could see how the rocket is doing. next i want to add a better engine effect with particles and screen shake, but I cant find any particle librarys. soo… I’m just going to make my own custom particle function, lol. I think I’m just avoiding adding better physics but I want it to look nice!
DEVLOG 3.5: I know I just posted a devlog… but I think this camera shake is awesome
DEVLOG 4: I was about to go to sleep, but got on VS code and banged out a particle system. Rocket takeoff looks a little better now, and I’m open to feedback if anyone’s reading these!
DEVLOG 5: GENESIS? so i got a comment on my last devlog ( @mikhailnotfish ) saying I should switch to a game engine. I did some research and Godot seemed like a cool option. Unfortunately it would mean starting over, and learning a whole new engine. soo… I downloaded Godot, and it seemed a little easier than what I was doing. I’m still keeping my old work incase I want to switch back, but I think Godot will allow me to build something better.
DEVLOG 6: so I’ve been using Godot and it’s been great. I’ve gotten to the point I was at in AFRAME in half the time! I think it looks a little more polished now. I am VERY new to Godot so if anyone has any tips or feedback, that would be much appreciated! My next steps will be implementing some game features to this game… maybe a title screen?
DEVLOG 7: okay, today I just worked on some polish all-round. was kinda tired so didn’t feel like doing anything MAJOR. Godot is feeling better though, probably because I’m just using it more. as always, if anyone is seeing these, please share any feedback or tips! I’m quite new and picking up this stuff as I go along.
DEVLOG 8: Today was a lot of planning. I want to implement a modular system where the player buys/selects rocket parts, each with certain stats like mass, drag, thrust, fuel capacity, etc. I started working on some of those parts today, along with learning Godot’s class/resource system and starting on that. Hopefully tomorrow I can get a working prototype of this system going! Let me know if any of you have any ideas.
DEVLOG 9: I finally got my modular system to work. Haven’t made all of them yet, but I’ve gotten it to this point! (watch the video). Also, I know the design looks bad, I’m trying 😭. Right now I just want three different levels, small, basic, and large. Each one of them has a mass, cost, whatever, and you can buy and mix and match them to launch rockets and complete missions.
DEVLOG 9.5: Well I logged like 3 hours today , I think Hackatime dropped a bunch of it but lol that’s fine. Anyways, just wanted to post a small update. I finished the models for all of my modules. Transferred my physics system to my modular rocket. Problem is early Thursday morning I leave for like a seven-day camping trip, lol. I recently learned that you can ship a project multiple times, as long as you add substantial features and improvements between the ships. I was thinking of shipping a version of this before I go on that trip,(and working on it more after of course). What I want to add before that is a screen to let the user select the parts they want, but that will take me a hot second. Anyways, that was a lot of rambling but just wanted to write this down, lol.
DEVLOG 10: Wow! Ui is harder than expected! 6 hours to design a simple system and get it working. I just got back from a massive camping trip in Pecos, New Mexico (very beautiful, pulled out early because of wildfires) and grinded this out. I’m getting close to shipping a simple version of this! Next I have to add a fail state and simple main menu.
DEVLOG 11: First playable version! Will try to ship soon! Still have ALOT I want to add, but this is my first version and I’m proud of it!
DEVLOG 11.1: About to ship v0.1! Spent my last amount of time fixing some ui and export issues, and making a README. Still have tons and tons of cool stuff I want to add (hence v0.1), but I have my first version published to Itch.
Ships:
FLYHIGH | Version 0.1 | First Release The first playable version of FLYHIGH is complete and published on itch.io! Construct a rocket from a modular builder, and view how it performs based on your module choices. Custom-made physics with live telemetry, including a fast-forward button if you just can’t wait to see the results. There’s still so much I want to add, but this is the first full, working version! Godot and Object Oriented Programming were quite hard to learn for a newcomer like myself. This is my first real project and it’s a huge victory! (no matter how awesome the stuff everybody else is making is). Go try it now! Please give me any feedback you may have! It really helps!...
|
1793263692.8891969
|
1793350092.8891969
|
|
44186
|
Flask Othello by @vindognz | Stardance
|
vindognz
|
1
|
26.0
|
446
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T11:43:27Z", "hours": 26.0, "multiplier": 17.32, "payout": 446, "blessing": "neutral", "text": "I made a full Othello game you can simply play in the browser, using vanilla JS and Flask! It features online multiplayer, a CPU opponent, replays, spectating and much more. My biggest challenge was definitely the countless hours of debugging, and chasing AI optimisations which actually made it perform worse. I am super proud of how the entire project came together, but especially happy with how satisfying the tile flip animation + sound cascading effect turned out.", "repo": "https://github.com/vindognz/flask-othello", "demo": "https://othello.vindognz.hackclub.app/"}]...
|
[{"post_id": 72575, "ts": "202 [{"post_id": 72575, "ts": "2026-09-23T08:20:47Z", "hours": 3.1811, "text": "MY EIGHTH AND (hopefully) FINAL DEVLOG I THINK WE’RE SHIP READY. I spent these 3 hours doing a bunch of final polish. The AI now has three difficulty levels to pick from (Easy, Medium and Impossible). I also added some actual juice to the game. Pieces now make sounds when placed and captured, and buttons make a little click sound. I also added a little rules popup with a tiny board showing how the game works for those who don’t know :) I finally updated the README from my initial commit too! It now has the full project info, as well as instructions for running FlaskOthello locally. Everything else was just minor fixes / cleanup. FlaskOthello is officially feature complete. Time to ship! 🚢"}, {"post_id": 71670, "ts": "2026-09-21T08:46:58Z", "hours": 3.4522, "text": "My seventh devloggg I replaced the AI search that was array based with a full bitboard implementation. This means that the board state is now stored as two 64-bit integers instead of nested lists. We also now have transposition tables and alpha-beta with move ordering based on the TT too! This was lowkey not THAT much work, but there were SOOOO many bugs to fix. I tried a bunch of ‘optimisations’ that actually made the AI ~27% worse… In the end, we scored a 36% decrease in search time though! During this time, I did some test deployments to NEST for playtesting with my girlfriend. Turns out, running a Flask dev server in production is a bad idea 💀 I had WebSockets, hints, undo, and UI redesign in my todo list, but decided to scratch those to make sure I ship in time."}, {"post_id": 68874, "ts": "2026-09-15T22:43:34Z", "hours": 3.7547, "text": "Sixth Devlog! (IM LOWKEY REMEMBERING TO DO THESE) This one was heavy on AI modifications, but I also implemented a replay system! I added transposition tables to the AI, which allows it to reuse positions it has already searched, along with a BUNCH of benchmarking for comparing. I also changed the AI’s minimax search to make and undo moves in-place instead of constantly creating new OthelloBoard objects which was a BIG optimization. Now, about that replay system! Games now keep a full move history which allows you to rewatch your game after play. You can jump to the start/end, step through moves one by one, and hold the buttons to scrub through the game. Lastly, I improve the piece flip animations so captured pieces do a proper flip + many minor bug fixes / refactors."}, {"post_id": 67923, "ts": "2026-09-14T07:13:46Z", "hours": 5.91, "text": "Fifth devlog! (I KEEP FORGETTING TO DO THESE) SO much has happened. I added full Player vs CPU support, fixed a major bug where if the AI was black it never made a starting move + a crash from the AI “make a move” loop firing every 1.5s 💀 Draw offers and resignation have been added. For draws, either player can offer and the other can accept/decline, and the AI automatically responds to draw requests based on piece count. Resignation has a confirm dialog to prevent accidents. Games are now automatically archived when they conclude (read only game copy at /archive/<id> which you’re automatically redirected to if on a stale /game/<id> URL). I also added piece ‘flip’ animations for the tiles that just got captured, so you can easily tell which tiles have just been captured. And alongside all this, TONS of refactoring and bug fixes, including extracing common code into resolve_player() and serialize_game() functions, and a strings.js module for game status strings."}, {"post_id": 61156, "ts": "2026-09-03T22:37:30Z", "hours": 3.305, "text": "Fourth devlog!! Today I built the actual frontend with a landing page (pick black/white, creates a game and redirects you), a live board page which polls the backend every 1.5s, click to play on legal squares, and CSS of course (green board, yellow legal move outlines). Previously, when the player had no legal moves, the game would just stop and you’d be stuck. Now, your turn is automatically passed if you have no legal moves. Added last-move highlighting (red outline on the most recently placed piece, so it’s obvious where your opponent just played) and a proper game-over screen showing the winning colour and final tile count."}, {"post_id": 56245, "ts": "2026-08-27T22:32:56Z", "hours": 3.8075, "text": "Third devlog! (I forgot to devlog…) I fixed a bunch of serious bugs in the engine (illegal moves overwriting occupied tiles, allowing negative indexing of the board, and more). The minimax now scores wins/loses by token count, not positional advantage at the end of the game, and some documentation cleanup. I also started working on the Flask backend, which now features 4 API routes for creating and joining games, making your move, and calling for AI moves. I tested this thoroughly with cURL, so hopefully there aren’t any significant bugs!"}, {"post_id": 44584, "ts": "2026-08-10T13:20:11Z", "hours": 1.0883, "text": "My second devlog! It’s 1:17am right now, but I just finished implementing the most basic minimax algorithm possible, and it (miraculously) works! I even hacked together a quick CPU vs CPU prototype, and it plays all the way through without any bugs, crashes or other breakage. Goodnight 💀"}, {"post_id": 41886, "ts": "2026-08-06T11:58:03Z", "hours": 1.2464, "text": "First Devlog! I have a really bad habit of starting 12 projects and never shipping any of them… so I started yet another project! I loved playing Othello with my brother growing up, but we haven’t been able to play much anymore since I moved to uni. To solve this, I’m developing FlaskOthello in my free time, and I plan to add a minimax algorithm with alpha-beta pruning. The plan is a Python Flask backend, and a vanilla HTML + CSS + JS frontend, probably hosted on Github Pages. So far, I’ve made an OthelloBoard class, with a basic board representation, and most of the fundamental game logic (making moves, flipping opponent tiles, validity checks, etc.), and since my COSC class forces me to, I wrote a bunch of doctests out of habit… Next up: minimax algorithm + alpha-beta pruning!"}]...
|
Title: Flask Othello by @vindognz | Stardance
Dev Title: Flask Othello by @vindognz | Stardance
Devlogs:
First Devlog! I have a really bad habit of starting 12 projects and never shipping any of them… so I started yet another project! I loved playing Othello with my brother growing up, but we haven’t been able to play much anymore since I moved to uni. To solve this, I’m developing FlaskOthello in my free time, and I plan to add a minimax algorithm with alpha-beta pruning. The plan is a Python Flask backend, and a vanilla HTML + CSS + JS frontend, probably hosted on Github Pages. So far, I’ve made an OthelloBoard class, with a basic board representation, and most of the fundamental game logic (making moves, flipping opponent tiles, validity checks, etc.), and since my COSC class forces me to, I wrote a bunch of doctests out of habit… Next up: minimax algorithm + alpha-beta pruning!
My second devlog! It’s 1:17am right now, but I just finished implementing the most basic minimax algorithm possible, and it (miraculously) works! I even hacked together a quick CPU vs CPU prototype, and it plays all the way through without any bugs, crashes or other breakage. Goodnight 💀
Third devlog! (I forgot to devlog…) I fixed a bunch of serious bugs in the engine (illegal moves overwriting occupied tiles, allowing negative indexing of the board, and more). The minimax now scores wins/loses by token count, not positional advantage at the end of the game, and some documentation cleanup. I also started working on the Flask backend, which now features 4 API routes for creating and joining games, making your move, and calling for AI moves. I tested this thoroughly with cURL, so hopefully there aren’t any significant bugs!
Fourth devlog!! Today I built the actual frontend with a landing page (pick black/white, creates a game and redirects you), a live board page which polls the backend every 1.5s, click to play on legal squares, and CSS of course (green board, yellow legal move outlines). Previously, when the player had no legal moves, the game would just stop and you’d be stuck. Now, your turn is automatically passed if you have no legal moves. Added last-move highlighting (red outline on the most recently placed piece, so it’s obvious where your opponent just played) and a proper game-over screen showing the winning colour and final tile count.
Fifth devlog! (I KEEP FORGETTING TO DO THESE) SO much has happened. I added full Player vs CPU support, fixed a major bug where if the AI was black it never made a starting move + a crash from the AI “make a move” loop firing every 1.5s 💀 Draw offers and resignation have been added. For draws, either player can offer and the other can accept/decline, and the AI automatically responds to draw requests based on piece count. Resignation has a confirm dialog to prevent accidents. Games are now automatically archived when they conclude (read only game copy at /archive/<id> which you’re automatically redirected to if on a stale /game/<id> URL). I also added piece ‘flip’ animations for the tiles that just got captured, so you can easily tell which tiles have just been captured. And alongside all this, TONS of refactoring and bug fixes, including extracing common code into resolve_player() and serialize_game() functions, and a strings.js module for game status strings.
Sixth Devlog! (IM LOWKEY REMEMBERING TO DO THESE) This one was heavy on AI modifications, but I also implemented a replay system! I added transposition tables to the AI, which allows it to reuse positions it has already searched, along with a BUNCH of benchmarking for comparing. I also changed the AI’s minimax search to make and undo moves in-place instead of constantly creating new OthelloBoard objects which was a BIG optimization. Now, about that replay system! Games now keep a full move history which allows you to rewatch your game after play. You can jump to the start/end, step through moves one by one, and hold the buttons to scrub through the game. Lastly, I improve the piece flip animations so captured pieces do a proper flip + many minor bug fixes / refactors.
My seventh devloggg I replaced the AI search that was array based with a full bitboard implementation. This means that the board state is now stored as two 64-bit integers instead of nested lists. We also now have transposition tables and alpha-beta with move ordering based on the TT too! This was lowkey not THAT much work, but there were SOOOO many bugs to fix. I tried a bunch of ‘optimisations’ that actually made the AI ~27% worse… In the end, we scored a 36% decrease in search time though! During this time, I did some test deployments to NEST for playtesting with my girlfriend. Turns out, running a Flask dev server in production is a bad idea 💀 I had WebSockets, hints, undo, and UI redesign in my todo list, but decided to scratch those to make sure I ship in time.
MY EIGHTH AND (hopefully) FINAL DEVLOG I THINK WE’RE SHIP READY. I spent these 3 hours doing a bunch of final polish. The AI now has three difficulty levels to pick from (Easy, Medium and Impossible). I also added some actual juice to the game. Pieces now make sounds when placed and captured, and buttons make a little click sound. I also added a little rules popup with a tiny board showing how the game works for those who don’t know :) I finally updated the README from my initial commit too! It now has the full project info, as well as instructions for running FlaskOthello locally. Everything else was just minor fixes / cleanup. FlaskOthello is officially feature complete. Time to ship! 🚢
Ships:
I made a full Othello game you can simply play in the browser, using vanilla JS and Flask! It features online multiplayer, a CPU opponent, replays, spectating and much more. My biggest challenge was definitely the countless hours of debugging, and chasing AI optimisations which actually made it perform worse. I am super proud of how the entire project came together, but especially happy with how satisfying the tile flip animation + sound cascading effect turned out....
|
1793148625.3230894
|
1793235025.3230894
|
|
44495
|
3d printer live view by @yaj_09 | Stardance
|
yaj_09
|
1
|
26.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T17:27:46Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a 3D printer live view system using an ESP32 camera module. The most challenging part was transitioning to hardware and adapting an Arduino IDE project to work with the ESP32. I had to debug PWM dimming using analogWrite and fix compilation errors along the way. I’m proud of getting everything to successfully compile, logging 26 hours of work, and setting up sensor inputs to utilize the ESP32’s cams wireless features! To test it, you can view the source code and connect the ESP32 camera module to your local network.", "repo": "https://github.com/LogicGate752/Esp32cam-3d-printer-live-view", "demo": ""}]...
|
[{"post_id": 60256, "ts": "202 [{"post_id": 60256, "ts": "2026-09-02T14:51:51Z", "hours": 16.0419, "text": "Started learning hardware by adapting an Arduino LED project to my ESP32. Used analogWrite(redPin, 40) to test PWM dimming, fixed a missing semicolon bug, and successfully compiled. Next up: reading sensor inputs to leverage the ESP32’s wireless features! part 2"}, {"post_id": 56707, "ts": "2026-08-28T16:01:11Z", "hours": 3.3167, "text": "i was learning coding part 1"}, {"post_id": 56594, "ts": "2026-08-28T12:36:16Z", "hours": 3.1725, "text": "watched few videos about programming on arduino ide. Learning basic coding on how to program an esp32 cam. Also saw how we can use arduino cloud to make web browsers for live feed."}, {"post_id": 53186, "ts": "2026-08-23T16:59:48Z", "hours": 1.1006, "text": "As a beginner diving into the world of computer science, learning to code through generic console exercises can feel abstract and disconnected. This project represents my shift into applied programming. Instead of writing code that stays trapped inside a text editor, I am using the Arduino IDE to build an independent, edge-hosted camera node that interacts directly with the physical world to monitor my 3D printer. i used youtube to learn some coding."}, {"post_id": 51856, "ts": "2026-08-21T18:38:13Z", "hours": 0.6189, "text": "This project implements an efficient, event-driven web-streaming server using the Arduino IDE framework to flash custom firmware directly onto an ESP32-CAM chip. Written entirely in embedded C++, the code maximizes the hardware’s dual-core architecture by multi-tasking network delivery and raw camera data processing without relying on any external operating system or resource-heavy cloud services."}, {"post_id": 50224, "ts": "2026-08-19T11:25:46Z", "hours": 1.3514, "text": "That is a massive milestone for this project! Designing or printing a custom case is one of the most practical steps you can take, especially for a 3D printing setup. The ESP32-CAM module has a loose camera ribbon cable and exposed solder joints, so getting it into a protective enclosure keeps it safe from accidental shorts on the printer’s frame."}, {"post_id": 49716, "ts": "2026-08-18T17:02:44Z", "hours": 0.8778, "text": "This project builds a compact, cost-effective, and fully wireless remote monitoring station for 3D printers using the ESP32-CAM micro-architecture. It addresses the critical need for continuous supervision during long print runs, mitigating risks like print failure (“spaghetti prints”) or hardware hazards.The system runs a lightweight local web server directly on the microcontroller chip, eliminating any dependence on third-party cloud applications. Users can open an interactive web browser dashboard on any local network device to monitor print progress via a continuous, low-latency live video feed. Furthermore, the interface includes a remote snapshot utility that temporarily switches the hardware sensor to High-Definition mode to capture, review, and store sharp, high-resolution progress updates on demand."}]...
|
Title: 3d printer live view by @yaj_09 | Stardance Title: 3d printer live view by @yaj_09 | Stardance
Devlogs:
This project builds a compact, cost-effective, and fully wireless remote monitoring station for 3D printers using the ESP32-CAM micro-architecture. It addresses the critical need for continuous supervision during long print runs, mitigating risks like print failure (“spaghetti prints”) or hardware hazards.The system runs a lightweight local web server directly on the microcontroller chip, eliminating any dependence on third-party cloud applications. Users can open an interactive web browser dashboard on any local network device to monitor print progress via a continuous, low-latency live video feed. Furthermore, the interface includes a remote snapshot utility that temporarily switches the hardware sensor to High-Definition mode to capture, review, and store sharp, high-resolution progress updates on demand.
That is a massive milestone for this project! Designing or printing a custom case is one of the most practical steps you can take, especially for a 3D printing setup. The ESP32-CAM module has a loose camera ribbon cable and exposed solder joints, so getting it into a protective enclosure keeps it safe from accidental shorts on the printer’s frame.
This project implements an efficient, event-driven web-streaming server using the Arduino IDE framework to flash custom firmware directly onto an ESP32-CAM chip. Written entirely in embedded C++, the code maximizes the hardware’s dual-core architecture by multi-tasking network delivery and raw camera data processing without relying on any external operating system or resource-heavy cloud services.
As a beginner diving into the world of computer science, learning to code through generic console exercises can feel abstract and disconnected. This project represents my shift into applied programming. Instead of writing code that stays trapped inside a text editor, I am using the Arduino IDE to build an independent, edge-hosted camera node that interacts directly with the physical world to monitor my 3D printer. i used youtube to learn some coding.
watched few videos about programming on arduino ide. Learning basic coding on how to program an esp32 cam. Also saw how we can use arduino cloud to make web browsers for live feed.
i was learning coding part 1
Started learning hardware by adapting an Arduino LED project to my ESP32. Used analogWrite(redPin, 40) to test PWM dimming, fixed a missing semicolon bug, and successfully compiled. Next up: reading sensor inputs to leverage the ESP32’s wireless features! part 2
Ships:
I made a 3D printer live view system using an ESP32 camera module. The most challenging part was transitioning to hardware and adapting an Arduino IDE project to work with the ESP32. I had to debug PWM dimming using analogWrite and fix compilation errors along the way. I’m proud of getting everything to successfully compile, logging 26 hours of work, and setting up sensor inputs to utilize the ESP32’s cams wireless features! To test it, you can view the source code and connect the ESP32 camera module to your local network....
|
1793101906.2244034
|
1793188306.2244034
|
|
46689
|
donOS X by @boredon | Stardance
|
boredon
|
1
|
26.0
|
389
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T17:02:11Z", "hours": 26.0, "multiplier": 12.71, "payout": 389, "blessing": "neutral", "text": "What did you make? I made a web-based operating system inspired by y2k aesthetics and webcore, with a design language created to be unique. What was challenging? The bit that took the longest was actually nailing the design to go forward with, but that was just one of many struggles. Getting the screen to fit perfectly inside the CRT monitor, as well as applying the overlay for the 3D effect, forced me to dive deeper into CSS more than I ever have and discover this absolute gem called cqi. This was also my first time ever using JavaScript seriously, so learning how to store things locally, build functions and map those functions to elements was definitely a steep hill to climb, and I wouldn’t say I’ve reached the peak quite yet. However, this projects has taught me a lot about JavaScript syntaxing and best practices, which I plan to implement extensively in future projects. What are you proud of? Honestly? Everything! It was a really daunting task at first, but the hardest part of anything is starting. Once I started, I picked up a momentum that was pretty much impossible to stop, if it weren’t for the time constraints of course (I have school very soon). I’m proud of the JavaScript I’ve learnt, however basic it was, and I’m glad I had the opportunity to dive headfirst into something I’ve never dabbled in before. Any last words, buckaroo? I plan to add a LOT to this project in the near future, and I’m mobilizing as much time as I can to invest in this project. If you have the time, please let me know what else I can implement as you give feedback. …oh…and also… “Tails is the best fictional character in the universe,” I say as they drag me to the padded room…", "repo": "https://github.com/Donald-Mutuku/donOS-X", "demo": "https://donald-mutuku.github.io/donOS-X/"}]...
|
[{"post_id": 53910, "ts": "202 [{"post_id": 53910, "ts": "2026-08-24T16:49:04Z", "hours": 4.5711, "text": "webOS devlog 5 two-in-one?? paint app and start menu! in record time (yes, 4 hours is record time), i managed to create a basic painting app and a start menu! carrying over my knowledge about localStorage to making the save and new functions of Paint really sped things up. that said, setting up the viewport of the canvas so that you could edit a whole screen worth of content was a bit of a headache: i tried setting the paint window to just clip content, but that meant when it was resized from a larger to smaller then larger size again, only the content visible in the smaller size was preserved. so i had to set up a big, invisible viewport and a window so that you can scroll the viewport, and the whole beautiful art you made can be restored. features included in Paint™: draw. can u believe that? can u believe u can draw in a Paint app? change the brush colour (i know, mindblowing) fill the canvas with your choice of colour erase (this took me wayyyy too long to figure out wth) make multiple paintings and save each. that’s right, u can make and save as many incomplete art panels as the average manga artist (no shade). view all of your paintings. each painting is saved like a clickable file on the desktop. that’s so cool, as long as you don’t refresh the page because idk how to write to ur pc storage. sue me. start menu was very easy, probably cuz it’s so basic but i’m not really building it beyond that for now. unfortunately for the 0.5 people that have been following along, this might be my last devlog… before my first ship! i want to account for all the progress i’ve made thus far, so i’ll be shipping the first rendition of donOS X later today for the world to enjoy (or hate on, whichever fits ur personality). thanks for reading! like this devlog. now."}, {"post_id": 53302, "ts": "2026-08-23T19:18:22Z", "hours": 6.7169, "text": "webOS devlog 4 notepad babyyy!! update: you can now try out my website live on my project page! go on, treat yourself… my coding efficiency needs to be studied…. wdym 6 hours for a notepad app… anywayss, i got it done nice and clean, and now i have something actually functional!! and the best part is, i did it 99% without AI!! the all-new Notepad™ features: bold and italic formatting. now your notes look expressive . whoop whoop the ability to save your notes to the desktop! as long as you don’t refresh your tab, your cute little notes stay on the desktop, with your questionably long names dynamically fitting with some fancy flexbox formatting the ability to make NEW notes. that’s right, you can populate this poor desktop with a bajillion notes if you want, as long as bajllion means less than around 20. don’t push it buddy. soon: tails appears if you call out to him 👀👀👀 things i’ll definitely do in the next devlog: manage time properly (yikes) browser. what’s a desktop without a means to doomscroll a game. if i can’t code solitaire, sorry guys, pong is the best i can do ….tails…. ok byebye"}, {"post_id": 52385, "ts": "2026-08-22T14:37:10Z", "hours": 3.4147, "text": "webOS devlog 3 draggable and closable windows!! i need to speed this up wthhh but yeah, u read the title. we now have proper dragging windows. last time, they cursor would fly off screen if u dragged too far (it still kinda does if u shake the windows too much, but no idea how to fix that yet), but now, they, y’know. Drag hmm what else. oh, right. i added desktop icons, so that you can access your favourite time-wasting apps more efficiently close buttons, so that you can kill your favorite time-wasting apps. sidenote on this, this took longest because the guide initially just set it up for one window, so i had to basically learn javascript myself to learn how to apply it to all windows. Hope. Tails!!!! not enough yet tho >:("}, {"post_id": 51876, "ts": "2026-08-21T19:15:02Z", "hours": 3.1472, "text": "webOS devlog 2 welcome screen!!! yippee i managed to make my welcome screen, fitting neatly inside a draggable window template which i’ll apply to other windows in the future. this took way longer than expected again, mostly because the drag function allowed the user to drag beyond the screen boundaries, which i fixed by adding clampPosition function that ensures the window never crosses the screen’s dimensions. i also created custom window buttons and dialog buttons, though none of them are functional just yet. things to do: more Tails. duh. make the window buttons do stuff add desktop icons games?? 👀👀 (foreshadowing x2) see y’all tomorrow. i’m so tired"}, {"post_id": 51534, "ts": "2026-08-21T09:23:55Z", "hours": 7.6553, "text": "webOS devlog 1 seven hours over 3 days for… almost nothing huh 😭😭. i actually spent most of this time trying to decide what design style i’d use. i tried mimicking the Wii U, then the Wii, then the PS VITA, then i read the mission requirements and realized it needs to have draggable windows … sigh…. anyway, i managed to set the base desktop for my OS with a LOT of enhancements, including: a CRT monitor frame, complete with shadows and gradients to create the illusion of 3 dimensions great responsiveness to ensure the monitor maintains its aspect ratio while fitting on practically any screen a custom cursor within the screen to mimic the old windows XP look a desktop wallpaper. it really is cool enough to have its own bullet point problems i faced? oh, boy. first of all, i had no idea how responsiveness actually worked, so i initially set all my units in px and the layout would break horribly on any display other than mine. so i had to learn to use cqi units instead and change EVERY. SINGLE. ONE. then i spent about an hour trying to figure out why everything was still broken and the gradients weren’t working, only to realize i hadn’t linked my .css file in the header. AAAAA what i’m going to add the welcome screen (should’ve been the first thing bruh) draggable windows Tails, because… Tails games? 👀👀 ok see y’all tomorrow (or probably later today yayaya)"}]...
|
Title: donOS X by @boredon | Stardance
Devlogs:
w Title: donOS X by @boredon | Stardance
Devlogs:
webOS devlog 1 seven hours over 3 days for… almost nothing huh 😭😭. i actually spent most of this time trying to decide what design style i’d use. i tried mimicking the Wii U, then the Wii, then the PS VITA, then i read the mission requirements and realized it needs to have draggable windows … sigh…. anyway, i managed to set the base desktop for my OS with a LOT of enhancements, including: a CRT monitor frame, complete with shadows and gradients to create the illusion of 3 dimensions great responsiveness to ensure the monitor maintains its aspect ratio while fitting on practically any screen a custom cursor within the screen to mimic the old windows XP look a desktop wallpaper. it really is cool enough to have its own bullet point problems i faced? oh, boy. first of all, i had no idea how responsiveness actually worked, so i initially set all my units in px and the layout would break horribly on any display other than mine. so i had to learn to use cqi units instead and change EVERY. SINGLE. ONE. then i spent about an hour trying to figure out why everything was still broken and the gradients weren’t working, only to realize i hadn’t linked my .css file in the header. AAAAA what i’m going to add the welcome screen (should’ve been the first thing bruh) draggable windows Tails, because… Tails games? 👀👀 ok see y’all tomorrow (or probably later today yayaya)
webOS devlog 2 welcome screen!!! yippee i managed to make my welcome screen, fitting neatly inside a draggable window template which i’ll apply to other windows in the future. this took way longer than expected again, mostly because the drag function allowed the user to drag beyond the screen boundaries, which i fixed by adding clampPosition function that ensures the window never crosses the screen’s dimensions. i also created custom window buttons and dialog buttons, though none of them are functional just yet. things to do: more Tails. duh. make the window buttons do stuff add desktop icons games?? 👀👀 (foreshadowing x2) see y’all tomorrow. i’m so tired
webOS devlog 3 draggable and closable windows!! i need to speed this up wthhh but yeah, u read the title. we now have proper dragging windows. last time, they cursor would fly off screen if u dragged too far (it still kinda does if u shake the windows too much, but no idea how to fix that yet), but now, they, y’know. Drag hmm what else. oh, right. i added desktop icons, so that you can access your favourite time-wasting apps more efficiently close buttons, so that you can kill your favorite time-wasting apps. sidenote on this, this took longest because the guide initially just set it up for one window, so i had to basically learn javascript myself to learn how to apply it to all windows. Hope. Tails!!!! not enough yet tho >:(
webOS devlog 4 notepad babyyy!! update: you can now try out my website live on my project page! go on, treat yourself… my coding efficiency needs to be studied…. wdym 6 hours for a notepad app… anywayss, i got it done nice and clean, and now i have something actually functional!! and the best part is, i did it 99% without AI!! the all-new Notepad™ features: bold and italic formatting. now your notes look expressive . whoop whoop the ability to save your notes to the desktop! as long as you don’t refresh your tab, your cute little notes stay on the desktop, with your questionably long names dynamically fitting with some fancy flexbox formatting the ability to make NEW notes. that’s right, you can populate this poor desktop with a bajillion notes if you want, as long as bajllion means less than around 20. don’t push it buddy. soon: tails appears if you call out to him 👀👀👀 things i’ll definitely do in the next devlog: manage time properly (yikes) browser. what’s a desktop without a means to doomscroll a game. if i can’t code solitaire, sorry guys, pong is the best i can do ….tails…. ok byebye
webOS devlog 5 two-in-one?? paint app and start menu! in record time (yes, 4 hours is record time), i managed to create a basic painting app and a start menu! carrying over my knowledge about localStorage to making the save and new functions of Paint really sped things up. that said, setting up the viewport of the canvas so that you could edit a whole screen worth of content was a bit of a headache: i tried setting the paint window to just clip content, but that meant when it was resized from a larger to smaller then larger size again, only the content visible in the smaller size was preserved. so i had to set up a big, invisible viewport and a window so that you can scroll the viewport, and the whole beautiful art you made can be restored. features included in Paint™: draw. can u believe that? can u believe u can draw in a Paint app? change the brush colour (i know, mindblowing) fill the canvas with your choice of colour erase (this took me wayyyy too long to figure out wth) make multiple paintings and save each. that’s right, u can make and save as many incomplete art panels as the average manga artist (no shade). view all of your paintings. each painting is saved like a clickable file on the desktop. that’s so cool, as long as you don’t refresh the page because idk how to write to ur pc storage. sue me. start menu was very easy, probably cuz it’s so basic but i’m not really building it beyond that for now. unfortunately for the 0.5 people that have been following along, this might be my last devlog… before my first ship! i want to account for all the progress i’ve made thus far, so i’ll be shipping the first rendition of donOS X later today for the world to enjoy (or hate on, whichever fits ur personality). thanks for reading! like this devlog. now.
Ships:
What did you make? I made a web-based operating system inspired by y2k aesthetics and webcore, with a design language created to be unique. What was challenging? The bit that took the longest was actually nailing the design to go forward with, but that was just one of many struggles. Getting the screen to fit perfectly inside the CRT monitor, as well as applying the overlay for the 3D effect, forced me to dive deeper into CSS more than I ever have and discover this absolute gem called cqi. This was also my first time ever using JavaScript seriously, so learning how to store things locally, build functions and map those functions to elements was definitely a steep hill to climb, and I wouldn’t say I’ve reached the peak quite yet. However, this projects has taught me a lot about JavaScript syntaxing and best practices, which I plan to implement extensively in future projects. What are you proud of? Honestly? Everything! It was a really daunting task at first, but the hardest part of anything is starting. Once I started, I picked up a momentum that was pretty much impossible to stop, if it weren’t for the time constraints of course (I have school very soon). I’m proud of the JavaScript I’ve learnt, however basic it was, and I’m glad I had the opportunity to dive headfirst into something I’ve never dabbled in before. Any last words, buckaroo? I plan to add a LOT to this project in the near future, and I’m mobilizing as much time as I can to invest in this project. If you have the time, please let me know what else I can implement as you give feedback. …oh…and also… “Tails is the best fictional character in the universe,” I say as they drag me to the padded room…...
|
1793264059.8175645
|
1793350459.8175645
|
|
52859
|
Starsimulation by @Dasher280I | Stardance
|
Dasher280I
|
1
|
26.0
|
271
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-03T13:05:12Z", "hours": 26.0, "multiplier": 10.38, "payout": 271, "blessing": "neutral", "text": "I built an interactive 2D particle simulator using HTML5 Canvas, Vanilla JavaScript, and CSS. It features a dynamic starfield that responds to clicks, touch inputs, and mouse movements with physical shockwaves, implosions, motion trails, and parallax depth. I also integrated real-time sound effects generated via the Web Audio API and added a live control panel to tweak physics and visual settings on the fly.", "repo": "https://github.com/Slasher22880011/Starsimulator", "demo": "https://slasher22880011.github.io/Starsimulator/"}]...
|
[{"post_id": 60644, "ts": "202 [{"post_id": 60644, "ts": "2026-09-03T04:23:54Z", "hours": 5.7631, "text": "In this update, the particle simulator received several key enhancements to boost visual depth and interactivity. Motion trails were introduced by rendering the canvas background with a semi-transparent alpha channel instead of a complete clear, leaving glowing paths behind moving particles. The physics engine now features a parallax depth effect where larger stars possess greater mass, causing them to react more dynamically to shockwaves than smaller background particles. Additionally, a new implosion mechanic was implemented—accessible via right-click or mobile touch controls—which draws particles inward rather than pushing them away, complete with customized boundary bouncing to keep stars on screen. To tie everything together, the Web Audio API synthesizer was upgraded to dynamically shift frequencies based on whether an explosion or an implosion is triggered, creating a fitting audio response for both actions."}, {"post_id": 60032, "ts": "2026-09-02T04:27:14Z", "hours": 5.2333, "text": "I’ve continued developing Star Simulation. There are now a few sliders at the bottom. The first slider lets you zoom out—showing more or fewer stars depending on the setting. You can make the stars colorful or white and add a faint Milky Way effect in the background. I ran into major issues with the zoom function; at one point, it stopped working entirely, and the stars would simply move at random without any input."}, {"post_id": 59375, "ts": "2026-09-01T04:25:09Z", "hours": 5.4667, "text": "The development of starsimulation is moving into the next phase. I’ve got the stars in place now—all colored, but with a feature where they change color whenever the game is reloaded. You can also adjust the speed at which the sound wave propagates, as well as the force with which it pushes the stars away. However, I ran into some major issues here: initially, the sound wave didn’t respond to the slider settings, and sometimes it would simply glide right through the colored stars instead of pushing them away."}, {"post_id": 58881, "ts": "2026-08-31T13:37:29Z", "hours": 4.8039, "text": "I’ve continued developing my project; there is now a proper shockwave that can be used to blast away the stars. Creating the shockwave itself only took about three hours, but the tricky part was splitting it into different rings. Right now, I have just one ring that actually pushes the stars away, while the other fingers are there purely for visual effect. It was actually quite difficult to implement, though, because at one point I ended up with a situation where either none of them did anything or all the rings pushed the stars away."}, {"post_id": 58122, "ts": "2026-08-30T14:02:07Z", "hours": 4.8275, "text": "I am developing “starsimulation.” Once it is finished, the program will allow you to click anywhere on the screen, triggering a shockwave that pushes the stars aside. So far, I have added the stars and ensured they make a bit of room around the mouse cursor. I struggled quite a bit to get the stars to spawn in different positions each time, rather than always appearing in the same spot."}]...
|
Title: Starsimulation by @Dasher280I | Stardance
Title: Starsimulation by @Dasher280I | Stardance
Devlogs:
I am developing “starsimulation.” Once it is finished, the program will allow you to click anywhere on the screen, triggering a shockwave that pushes the stars aside. So far, I have added the stars and ensured they make a bit of room around the mouse cursor. I struggled quite a bit to get the stars to spawn in different positions each time, rather than always appearing in the same spot.
I’ve continued developing my project; there is now a proper shockwave that can be used to blast away the stars. Creating the shockwave itself only took about three hours, but the tricky part was splitting it into different rings. Right now, I have just one ring that actually pushes the stars away, while the other fingers are there purely for visual effect. It was actually quite difficult to implement, though, because at one point I ended up with a situation where either none of them did anything or all the rings pushed the stars away.
The development of starsimulation is moving into the next phase. I’ve got the stars in place now—all colored, but with a feature where they change color whenever the game is reloaded. You can also adjust the speed at which the sound wave propagates, as well as the force with which it pushes the stars away. However, I ran into some major issues here: initially, the sound wave didn’t respond to the slider settings, and sometimes it would simply glide right through the colored stars instead of pushing them away.
I’ve continued developing Star Simulation. There are now a few sliders at the bottom. The first slider lets you zoom out—showing more or fewer stars depending on the setting. You can make the stars colorful or white and add a faint Milky Way effect in the background. I ran into major issues with the zoom function; at one point, it stopped working entirely, and the stars would simply move at random without any input.
In this update, the particle simulator received several key enhancements to boost visual depth and interactivity. Motion trails were introduced by rendering the canvas background with a semi-transparent alpha channel instead of a complete clear, leaving glowing paths behind moving particles. The physics engine now features a parallax depth effect where larger stars possess greater mass, causing them to react more dynamically to shockwaves than smaller background particles. Additionally, a new implosion mechanic was implemented—accessible via right-click or mobile touch controls—which draws particles inward rather than pushing them away, complete with customized boundary bouncing to keep stars on screen. To tie everything together, the Web Audio API synthesizer was upgraded to dynamically shift frequencies based on whether an explosion or an implosion is triggered, creating a fitting audio response for both actions.
Ships:
I built an interactive 2D particle simulator using HTML5 Canvas, Vanilla JavaScript, and CSS. It features a dynamic starfield that responds to clicks, touch inputs, and mouse movements with physical shockwaves, implosions, motion trails, and parallax depth. I also integrated real-time sound effects generated via the Web Audio API and added a live control panel to tweak physics and visual settings on the fly....
|
1792878636.8983781
|
1793742636.8983781
|
|
53811
|
Glitch Runner by @thapar_smayan | Stardance
|
thapar_smayan
|
1
|
26.0
|
60
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T13:47:21Z", "hours": 26.0, "multiplier": 2.32, "payout": 60, "blessing": "neutral", "text": "I made an endless 2D runner game. You navigate through obstacles, speed surges and gravity flips as the difficulty increases. I have added 3 characters. Making the sprites on piskel, understanding godot and itch was challenging. I am proud of myself for escaping my comfort zone and making a full game. If you’re trying it out please read the ReadMe and have fun!", "repo": "https://github.com/thaparsmayan2011-ctrl/Glitch-Runner-2D", "demo": "https://kaazmo.itch.io/glitchrunner2d"}]...
|
[{"post_id": 71213, "ts": "202 [{"post_id": 71213, "ts": "2026-09-20T13:43:26Z", "hours": 3.4481, "text": "I have finished making the game, I’ve added the git repo and readme. Music and character selection menus are done. I’m gonna ship now."}, {"post_id": 70085, "ts": "2026-09-18T13:02:12Z", "hours": 6.0464, "text": "I have added 2 more characters, and I’ve added the bg music(mr blue sky). All thats left now is to polish the menus."}, {"post_id": 65807, "ts": "2026-09-11T05:59:22Z", "hours": 2.4708, "text": "I have started making the sprites on piskel. I have made the player sprite and another glitched player. Check it out:)"}, {"post_id": 61678, "ts": "2026-09-04T18:26:20Z", "hours": 6.2344, "text": "I am currently working on the final gimmicks of glitch runner. I have added a speed surge and gravity flip gimmick. I’ve also added a sound mute toggle option. Right now I am facing issues in the UI and the timing of the gimmicks. I am aiming to finish this project by next week. First I’ll refine the current features and then I’ll add the sprites and all. Please suggest some fun gimmicks for my game, I’m open to criticism(:"}, {"post_id": 58784, "ts": "2026-08-31T11:09:38Z", "hours": 4.5114, "text": "I have refined the game mechanics and graphics. Rn I’m having a bit of trouble with the graphics part of godot, but i’ll figure it out. I have started to code the glitch mechanics and I’ll be refining it for some more time, I’m aiming to make atleast 3 more skills and then i’ll make the final sprites."}, {"post_id": 54670, "ts": "2026-08-25T18:23:10Z", "hours": 3.1483, "text": "I’m starting a new Stardance project: Glitch Runner. It’s a 2D endless runner game made in Godot. In this game you run through a glitchy digital world and survive for as long as you can while the game gets harder and the rules shift with every change. So far, I’ve set up the core gameplay: player movement, gravity, jumping, scrolling ground, moving obstacles, obstacle spawning, and a score that increases over time."}]...
|
Title: Glitch Runner by @thapar_smayan | Stardance Title: Glitch Runner by @thapar_smayan | Stardance
Devlogs:
I’m starting a new Stardance project: Glitch Runner. It’s a 2D endless runner game made in Godot. In this game you run through a glitchy digital world and survive for as long as you can while the game gets harder and the rules shift with every change. So far, I’ve set up the core gameplay: player movement, gravity, jumping, scrolling ground, moving obstacles, obstacle spawning, and a score that increases over time.
I have refined the game mechanics and graphics. Rn I’m having a bit of trouble with the graphics part of godot, but i’ll figure it out. I have started to code the glitch mechanics and I’ll be refining it for some more time, I’m aiming to make atleast 3 more skills and then i’ll make the final sprites.
I am currently working on the final gimmicks of glitch runner. I have added a speed surge and gravity flip gimmick. I’ve also added a sound mute toggle option. Right now I am facing issues in the UI and the timing of the gimmicks. I am aiming to finish this project by next week. First I’ll refine the current features and then I’ll add the sprites and all. Please suggest some fun gimmicks for my game, I’m open to criticism(:
I have started making the sprites on piskel. I have made the player sprite and another glitched player. Check it out:)
I have added 2 more characters, and I’ve added the bg music(mr blue sky). All thats left now is to polish the menus.
I have finished making the game, I’ve added the git repo and readme. Music and character selection menus are done. I’m gonna ship now.
Ships:
I made an endless 2D runner game. You navigate through obstacles, speed surges and gravity flips as the difficulty increases. I have added 3 characters. Making the sprites on piskel, understanding godot and itch was challenging. I am proud of myself for escaping my comfort zone and making a full game. If you’re trying it out please read the ReadMe and have fun!...
|
1793152466.1548207
|
1793238866.1548207
|
|
57462
|
Image to ASCII by @reaue | Stardance
|
reaue
|
3
|
26.0
|
376
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-10T17:02:20Z", "hours": 11.0, "multiplier": 18.12, "payout": 205, "blessing": "neutral", "text": "What did you make? I finalized my website which convert image and now text and video into ASCII art. For this ship, I added the video (including GIF) and text convertor. I also added new way to export your art such as in PNG, JPG, MP4 and GIF. I also try to design the website to be more undestandable (for example you don’t have acces to the download button when nothing it’s ready to be download). What was challenging? There were the challenging part. First find the good API for the text to ASCII convertor. I easily tested 5 different APIs for this features. The second challenge was to find a way to convert GIF to MP4 and the opposite. I first tried with a librairie, it didn’t work I had an error messag. So, I switched to FFmpeg and it was very complicated to find a workable way to do the conversion. What are you proud of? I’m proud of presenting you a finished Website where you can created easily ASCII art. With the implementation of features requested by raters. What should people know so they can test your project? The project is available at this url : https://reaue.github.io/ImgToASCII/ . So come test it and send your best ASCII art to your friends.", "repo": "https://github.com/reaue/ImgToASCII", "demo": "https://reaue.github.io/ImgToASCII/"}, {"ship_num": 2, "ts": "2026-09-08T17:30:09Z", "hours": 5.0, "multiplier": 16.78, "payout": 80, "blessing": "neutral", "text": "What did you make? ImgToASCII is a web-based tool which converts image to ASCII art. This is the V.2 of this website. I mostly added features requested by raters such as a drag and drop zone, an invert button, optimization on the algorithm and progress notification when your computer calculate the render. I fanilly made the pyhton proof of concept more user-friendly. What was challenging? The most challenging part was the algorithm optimization. It took me time and reflection and I have a good and a bad news, the first one is that for the black and white version there is almost no waiting time no matter the size. But for the color version it was harder. I succeed on reducing the time but no like for the the no color version. What are you proud of? I’m proud of how much time I earn between before and now for the calculation time. I thought it was impossible to optimize it but after some reflection time I found solution. I’m also proud of succeed all features that people want to get. What should people know so they can test your project? The project is available online here : https://reaue.github.io/ImgToASCII/ .", "repo": "https://github.com/reaue/ImgToASCII", "demo": "https://reaue.github.io/ImgToASCII/"}, {"ship_num": 3, "ts": "2026-09-03T18:41:21Z", "hours": 10.0, "multiplier": 9.07, "payout": 91, "blessing": "neutral", "text": "What did you make? I created a web-based tool that converts images into ASCII art directly in your browser. I started with a proof of concept in python because it’s the programming langage I know best. You can find it on GitHub (poc/main.py). What was challenging? I had never built a website apart from a local one with Flask in python. I had never work with HTML, CSS or even JS before. Fortunately, JS looks quite similar to C, so it was not the most challenging to learn. HTML is quite simple and CSS was an nightmare, and the most difficult part for me. What are you proud of? I’m proud if the design, the website follows a paper style and for the dark mod a terminal-inspired style. I’m also happy with the final result and all I learned. What should people know so they can test your project? The website can be very funny, you can convert memes or other images to ASCII art and then share it as text or as a png.", "repo": "https://github.com/reaue/ImgToASCII", "demo": "https://reaue.github.io/ImgToASCII/"}]...
|
[{"post_id": 65467, "ts": "202 [{"post_id": 65467, "ts": "2026-09-10T16:44:47Z", "hours": 1.9567, "text": "The last devlog (10) - I think I finally have finished this webiste. I added more way to export your ASCII art such as PNG, JPG, GIF and MP4. I also tried to optimize the design to be more user-friendly. Now I think I have finished this site (maybe if someone propose me a big feature I will come back to my decision). Time to ship the final version. Thanks for all your feedback it was very useful."}, {"post_id": 65274, "ts": "2026-09-10T08:46:02Z", "hours": 1.975, "text": "Devlog 9 - Adding Gif to the video format. I thought it would be easier but I spent 2 hours of finding a good way to convert Gif to video format (such as MP4). I started with a librarie but I had an error, so I switched for FFmpeg and this has led to a lot of bugs. I coorected them and added a better preview of what your video would like. Now everything works well so try it by converting your best meme."}, {"post_id": 65003, "ts": "2026-09-09T19:43:07Z", "hours": 3.8242, "text": "Devlog 8 - Finally the video option ! After hours of development I added the video to ASCII convertor. If you tested it you will see a notification informing you about estimated pourcentage and it can take time so don’t try big video (a big video it’s already a 30 secondes one) or decrease other options. How it’s work. Basically, it cut video into frame, uses the image to ASCII converter and then recreates a video."}, {"post_id": 64766, "ts": "2026-09-09T12:45:42Z", "hours": 3.5339, "text": "Devlog 7 - Adding a text to ASCII converter ! It was such a really challenging idea to implement. My first idea was to call a google API, make the search and take the first image proposed by google. But the API I was looking for was disable for new people. So I try an API with AI generation but it wasn’t free. After that I looked for the reserp API a google scraper. But I needed to stock a private API key on a server and after one hour of trying, testing and fixing bugs. I said to myself that the best way was maybe the wikimedia API, it’s maybe less accurate than other API but at least it was free and no API_KEY needed. So I started devloped this idea and now it’s online. Don’t hesitate to test it and give me feedback or other features you want to see."}, {"post_id": 64334, "ts": "2026-09-08T17:10:51Z", "hours": 1.2358, "text": "Devlog 6 - Updating the README and make main.py user-friendly. I updated the README.md to list new features for the upcoming ship, I also made the proof of concept in python more user-friendly with commands in the terminal."}, {"post_id": 64271, "ts": "2026-09-08T15:27:01Z", "hours": 2.7508, "text": "Devlog 5 - I had added all requested features ! Firstly, I added the invert button and the drag and drop zone, it was quite simple. After that, I added the progress notification and tried to optimize the algorithm. It was not simple, I changed it to read only one time the image and not read for brightness and then another time for the drawing… I, also for the black and white version, drew not each character one by one but only after a line. It speed up the calculation time a lot."}, {"post_id": 64163, "ts": "2026-09-08T11:43:02Z", "hours": 0.7614, "text": "Devlog 4 - Think about raters ideas. I add a section in the README with every features request. I think the first two are excelent ideas, for the third one I have no idea how to make it and then the last one can be a good feature. If you have any ideas I’m taker and if you know how to optimize the algorithm let me know."}, {"post_id": 61007, "ts": "2026-09-03T18:21:33Z", "hours": 1.7447, "text": "Devlog 3 - the final one ! I added a switch between a light and a dark mod, the design of the dark one is inspire by a terminal/ the movie Matrix. I also fix some small positioning bugs. And that’s all. I wil ship it now."}, {"post_id": 60905, "ts": "2026-09-03T15:40:34Z", "hours": 6.7278, "text": "Devlog 2 - the website is online ! Come test it, it’s a web-based tool that converts images into ASCII art directly in your browser. You can convert memes, family photos and even more. I’m very happy with the design, because I learned HTML, JS and CSS for this project (CSS is the worst and least fun) and I like the result. I would be very grateful if you report any bugs, because I test it only in Firefox and Microsoft Edge. The next step is to add a dark mode."}, {"post_id": 60423, "ts": "2026-09-02T18:45:57Z", "hours": 1.5622, "text": "Devlog 1 - New project ! I started a new project, the main goal is to build a website that lets you choose an image or a video and transform it into ASCII art. I quickly built a proof of concept in Python. But the problem is that I have literally no knowledge of web programming. So, I’m going to spend next hours learning JavaScrypt and try to implement all my ideas."}]...
|
Title: Image to ASCII by @reaue | Stardance
Devlo Title: Image to ASCII by @reaue | Stardance
Devlogs:
Devlog 1 - New project ! I started a new project, the main goal is to build a website that lets you choose an image or a video and transform it into ASCII art. I quickly built a proof of concept in Python. But the problem is that I have literally no knowledge of web programming. So, I’m going to spend next hours learning JavaScrypt and try to implement all my ideas.
Devlog 2 - the website is online ! Come test it, it’s a web-based tool that converts images into ASCII art directly in your browser. You can convert memes, family photos and even more. I’m very happy with the design, because I learned HTML, JS and CSS for this project (CSS is the worst and least fun) and I like the result. I would be very grateful if you report any bugs, because I test it only in Firefox and Microsoft Edge. The next step is to add a dark mode.
Devlog 3 - the final one ! I added a switch between a light and a dark mod, the design of the dark one is inspire by a terminal/ the movie Matrix. I also fix some small positioning bugs. And that’s all. I wil ship it now.
Devlog 4 - Think about raters ideas. I add a section in the README with every features request. I think the first two are excelent ideas, for the third one I have no idea how to make it and then the last one can be a good feature. If you have any ideas I’m taker and if you know how to optimize the algorithm let me know.
Devlog 5 - I had added all requested features ! Firstly, I added the invert button and the drag and drop zone, it was quite simple. After that, I added the progress notification and tried to optimize the algorithm. It was not simple, I changed it to read only one time the image and not read for brightness and then another time for the drawing… I, also for the black and white version, drew not each character one by one but only after a line. It speed up the calculation time a lot.
Devlog 6 - Updating the README and make main.py user-friendly. I updated the README.md to list new features for the upcoming ship, I also made the proof of concept in python more user-friendly with commands in the terminal.
Devlog 7 - Adding a text to ASCII converter ! It was such a really challenging idea to implement. My first idea was to call a google API, make the search and take the first image proposed by google. But the API I was looking for was disable for new people. So I try an API with AI generation but it wasn’t free. After that I looked for the reserp API a google scraper. But I needed to stock a private API key on a server and after one hour of trying, testing and fixing bugs. I said to myself that the best way was maybe the wikimedia API, it’s maybe less accurate than other API but at least it was free and no API_KEY needed. So I started devloped this idea and now it’s online. Don’t hesitate to test it and give me feedback or other features you want to see.
Devlog 8 - Finally the video option ! After hours of development I added the video to ASCII convertor. If you tested it you will see a notification informing you about estimated pourcentage and it can take time so don’t try big video (a big video it’s already a 30 secondes one) or decrease other options. How it’s work. Basically, it cut video into frame, uses the image to ASCII converter and then recreates a video.
Devlog 9 - Adding Gif to the video format. I thought it would be easier but I spent 2 hours of finding a good way to convert Gif to video format (such as MP4). I started with a librarie but I had an error, so I switched for FFmpeg and this has led to a lot of bugs. I coorected them and added a better preview of what your video would like. Now everything works well so try it by converting your best meme.
The last devlog (10) - I think I finally have finished this webiste. I added more way to export your ASCII art such as PNG, JPG, GIF and MP4. I also tried to optimize the design to be more user-friendly. Now I think I have finished this site (maybe if someone propose me a big feature I will come back to my decision). Time to ship the final version. Thanks for all your feedback it was very useful.
Ships:
What did you make? I created a web-based tool that converts images into ASCII art directly in your browser. I started with a proof of concept in python because it’s the programming langage I know best. You can find it on GitHub (poc/main.py). What was challenging? I had never built a website apart from a local one with Flask in python. I had never work with HTML, CSS or even JS before. Fortunately, JS looks quite similar to C, so it was not the most challenging to learn. HTML is quite simple and CSS was an nightmare, and the most difficult part for me. What are you proud of? I’m proud if the design, the website follows a paper style and for the dark mod a terminal-inspired style. I’m also happy with the final result and all I learned. What should people know so they can test your project? The website can be very funny, you can convert memes or other images to ASCII art and then share it as text or as a png.
What did you make? ImgToASCII is a web-based tool which converts image to ASCII art. This is the V.2 of this website. I mostly added features requested by raters such as a drag and drop zone, an invert button, optimization on the algorithm and progress notification when your computer calculate the render. I fanilly made the pyhton proof of concept more user-friendly. What was challenging? The most challenging part was the algorithm optimization. It took me time and reflection and I have a good and a bad news, the first one is that for the black and white version there is almost no waiting time no matter the size. But for the color version it was harder. I succeed on reducing the time but no like for the the no color version. What are you proud of? I’m proud of how much time I earn between before and now for the calculation time. I thought it was impossible to optimize it but after some reflection time I found solution. I’m also proud of succeed all features that people want to get. What should people know so they can test your project? The project is available online here : https://reaue.github.io/ImgToASCII/ .
What did you make? I finalized my website which convert image and now text and video into ASCII art. For this ship, I added the video (including GIF) and text convertor. I also added new way to export your art such as in PNG, JPG, MP4 and GIF. I also try to design the website to be more undestandable (for example you don’t have acces to the download button when nothing it’s ready to be download). What was challenging? There were the challenging part. First find the good API for the text to ASCII convertor. I easily tested 5 different APIs for this features. The second challenge was to find a way to convert GIF to MP4 and the opposite. I first tried with a librairie, it didn’t work I had an error messag. So, I switched to FFmpeg and it was very complicated to find a workable way to do the conversion. What are you proud of? I’m proud of presenting you a finished Website where you can created easily ASCII art. With the implementation of features requested by raters. What should people know so they can test your project? The project is available at this url : https://reaue.github.io/ImgToASCII/ . So come test it and send your best ASCII art to your friends....
|
1793109114.0568771
|
1793195514.0568771
|
|
62390
|
ReMix by @pathak | Stardance
|
pathak
|
1
|
26.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-03T07:47:49Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The concept came to me when I realised how dramatic the difference between stereo and mono audio was. How the intruments separated, opened up, and details could he heard really well, while mono sounded like noise. I thought about what would happen if instruments were literally separated and opened up, as if placed around the listener like a band. ReMix separates the stems of a song and spatialises them individually to create perception of a room and placement of instruments around you. Demo of output songs . (listen with headphones) What was challenging While the code itself was moderately challenging, understanding all the different psychoacoustic cues (covered in more detail in README and devlogs), how they work and what they do, and the maths behind them, required a ton of deliberation. Though it was very rewarding and interesting. I also spent a lot of time trying to analyse the HRIR curves themselves, trying to make sense of what frequencies getting altered and where and why. I used a lot of graphs and intuition to try to understand them. I now have a deep understanding of them, which would be helpful for future versions, for optimising them (which I also attempted, though naïvely). Near the end, making the audio sound natural was challenging too where I had to try tweaking some things (mainly room absorbence/size and reverb) What I’m proud of I love that the concept I had thought of in theory actually works. When I first played a song, I couldn’t stop grinning because of how good it sounded, and the trippy illusion of it coming from around me. I’ve listened to 8D audio (a simpler version of this where the audio as a whole moves, less realistic, no band-like feeling, distracting and somewhat gimmicky), but it coming from something I created myself, and using code and maths; not some software. And something I could actually experience, I think that makes me very proud. I also had my friends listen to it, which got a lot of positive reactions. In the end, I’m also happy about how deep of an understanding I have about psychoacoustics now. What you need to know to test it out headphones are a must pls the effect breaks completely on speakers. You can try it out from the repo, but here’s a demo The song spatialisation concept is a demo for the concepts behind it, which can be used in a lot of applications like video games, movies, producers who can’t afford a studio, etc. This is a very initial version. Updates may make the effects even more realistic, or optimise the program to make it suitable for running in real time (or applied on hundreds of elements for games).", "repo": "https://github.com/aryn-pathak/ReMix", "demo": "https://youtu.be/gSuP7m3pS_Y"}]...
|
[{"post_id": 75656, "ts": "202 [{"post_id": 75656, "ts": "2026-09-30T17:25:26Z", "hours": 1.0553, "text": "[ship log!] It’s moments like this for which I’m alive. This has literally brought me to tears of happiness 🥹. Used a stem separator (htdemucs_6s by Meta research) to separate a song into it’s parts (guitar, drums, piano, other, bass, vocals) and spatialises them individually, placing the stems around the listener to make the song sound more open; as if the members of a band are playing around the listener. It worked EXCEPTIONALLY well, far beyond what I expected, even for songs I used to stress test it which were almost guaranteed to sound bad, they sounded great. The spatialiser asks for song file path, room size, and distance of source. The materials of the room can be altered by changing the alpha coefficients. Here are a few songs I tried out and their review: Bill Withers - Ain’t no Sunshine: a very safe song for first try, clear separation of instruments, no stereo widening or spatialisation, no special effects. Genuinely shocked me, made me smile uncontrollably when it played. Sounded perfect, spatialised well (everything was distinguishable). Truly sounded “outside of head” and around me. Exactly the kind of song this was built to fix; flat and closed songs sounding open. Ye - This a Must: from my fav artist. A song I’ve liked but disliked the closed, flat feeling of vocals in. This didn’t work just as well as others. Lost a bit of thump initially, but reducing distance helped. This also did exactly what I wanted, though it still lacked some thump. Olivia Rodrigo - stupid song: A song i love because of the layering of instruments and her vocals. I used this to see what would happen in a song with a lot of stereo widening and effects already present. This sounded beautiful here, and I was concerned about it having clashing effects, but that didn’t happen. amazing. Playboi Carti - POP OUT: I put this in as a joke, there was no way this was supposed to sound tolerable. But it blew me away, and worked really well, dare I say better than the original too? Others: Jeremy Zucker - i dont know you, Stevie Wonder - Sir Duke, Carti - TOXIC Demo videos: https://youtu.be/GdZYN0wQXBQ"}, {"post_id": 75578, "ts": "2026-09-30T14:06:37Z", "hours": 10.4417, "text": "This is the most I’ve ever learned in such a short time. Over the past few days I designed a program that spatialises audio using several psychoacoustic cues. I spent many of those hours understanding the maths and how to apply the cues. I’d researched broadly beforehand, so the code itself wasn’t too complex. It’s probably the most interesting project I’ve worked on. The cues, and what I explored Falloff: apply_falloff() How sound loses energy with distance (inverse square law). Air absorption: apply_eq() , apply_air_absorption() Air absorbs higher frequencies more than lower ones. I expected this to be minor, but it needed a whole EQ system, whose maths was interesting and took ages to wrap my head around. It also taught me about filters, which I used in later functions. Changes to one frequency interfered heavily with others, which I fixed with a peaking biquad filter (mostly AI-written). The attenuation constants come from a one-time-run file using the ISO standard, and are multiplied by distance and fed into the EQ. Early reflections: early_reflections() Initial reflections from nearby surfaces, ~5-35ms after the direct sound. By the Haas effect the brain doesn’t hear them separately, but they imply spaciousness. I first used IACC and ASW (below), then dropped them for directional cues (HRIR), so each of the 6 reflections comes from its surface’s direction. It accounts for room size and pressure reflection (from an absorption coefficient). Decorrelation: decorrelate() Artificially decorrelates a signal (FIR comb filters) into L and R, lowering IACC (interaural cross-correlation) and increasing ASW (apparent source width). An IACC of 1 sounds like a point source; lower sounds wider. It worked against my goal (localisation, not a larger source), so I dropped it from the direct audio, then from early reflections. Scrapped, but an interesting concept. Reverb: room_reverb() Probably the most important cue for space. Late reverb is thousands of colliding reflections, an unintelligible wash. I built it from feedback comb filters, combined and diffused through an allpass filter, and cut off at RT60 (time to decay 60 dB, from speed of sound, room size and absorption). Problem: the tail was distinct and ruined localisation (which relies on level differences between ears), like in a hall. Most of the energy making it legible was in its first ~50ms, masking the early reflections. Cutting the first [early reflection length - 20ms] helped a bit. Switching to an FDN made it denser and decorrelated L/R by design, so I could drop decorrelate() . DRR (part of reverb) Direct-to-reverberant ratio simulates source distance relative to the room: closer to the listener than the walls means louder direct sound, closer to the walls means louder reverb. I set the direct amplitude to 1 and calculated a gain for the reverb. Apply IR The only cue for direction. It convolves left and right impulse responses for an azimuth and elevation onto the direct audio and early reflections. They come from a HRIR dataset ( .SOFA , SADIE II) recorded on a binaural mannequin. I tried optimising this earlier and failed (older devlogs), and want to revisit it. Process audio Converts to mono, resamples to 48kHz if needed. Gets azimuth, elevation and distance from coordinates. Applies air absorption, falloff, then IR on the direct sound. Generates early reflections and late reverb (L and R). Sums everything, scales to prevent clipping, returns L and R arrays :D Attaching images of my diary notes because I think it’s super interesting."}, {"post_id": 71128, "ts": "2026-09-20T10:27:51Z", "hours": 6.5086, "text": "Animating by Azimuth I tried to identify patterns in the HRTF curves by azimuth. Wrote a function which animates it frame by frame (by azimuth). Visually, I could see it gradually moving (similar shape, moving little by little), though as it was apparent from the heat maps, it wasn’t regular and had phases of very slight changes and phases of chaotic movement. (This was all done with right ear curves since SADIE II is symmetrical, which made things easier). To understand this, I wrote another function which compared the similarity of 5 curves at a time, and then plotted that. This had some very dense regions with little variation most of the time, but was quite chaotic around 50-150° . Peak Analysis Compression I tried writing a set of functions which would go through the curves, identify significant points (turning points and drops/rises, detected by changes in signs of differences and slope changes) then judge whether the curves of the angles following it are similar (same number of peaks, within a threshold of frequency and magnitude). Similar curves would be grouped within a “phase” where each phase is a dictionary with: 'initial' (initial coordinates of peaks, list of tuples) 'freq_changes' (nested list of changes in frequency for each frame of each peak) 'mag_changes' (similar to freq_changes ) The changes arrays would then be simplified; if frequency/magnitude changes are subtle enough that it’s imperceptible (determined by continuous bark scale/hardcoded decibel threshold), it would be reduced to zero. Reconstruction To reconstruct it, a function would get the phase’s initial , add the corresponding differences to get the exact peaks, then interpolate using pchip to get the curve. Results It looked like it could optimise everything significantly, but it failed miserably. Very inaccurate (error ~5dB mean , ~14dB max ) About 77% of phases were just 1 curve The max size of a phase was 6 curves (compared to my expected 20-30) The error could be made better by having more peaks, but it doesn’t optimise anything significantly. I’ll move on with directly applying the HRTF curves now, though I’ll come back to this later because it looks promising! Attaching the azimuth animation video and the similarity plot"}, {"post_id": 68519, "ts": "2026-09-15T07:54:33Z", "hours": 7.9864, "text": "Spent a few days researching psychoacoustics and sound localisation to understand all the cues (5 of them, will talk more about them later!). Started working with an HRIR dataset (a dataset containing sound measurements from left and right ears of a mannequin from different directions, showing how ear shape and angles affect sound. the single most important cue in sound localisation). First wrote a function to plot raw left and right impulses, then ITD (time difference b/w ears). Then used Fourier transform to break impulses into frequency domain graphs showing magnitudes of particular frequencies, then the ILD (level difference). I was stuck here because the graph didn’t match my expectations at all (a very interesting problem too, check my reddit post: https://www.reddit.com/r/DSP/comments/1weg1dk/why_are_hrirhrtf_magnitude_differences_between/ ), until a person on reddit explained it, after which I also switched to a symmetrical HRIR dataset (SADIE II instead of Meta SS2). To visualise it better, I also created a heatmap of left/right ears, ILD, and left/right averages. Understanding this through different types of graphs and analysing them, recognising quirks, understanding what they meant was very interesting. Attaching pictures of the heatmaps, raw impulses, ITD, ILD curves :)"}]...
|
Title: ReMix by @pathak | Stardance
Devlogs:
Spen Title: ReMix by @pathak | Stardance
Devlogs:
Spent a few days researching psychoacoustics and sound localisation to understand all the cues (5 of them, will talk more about them later!). Started working with an HRIR dataset (a dataset containing sound measurements from left and right ears of a mannequin from different directions, showing how ear shape and angles affect sound. the single most important cue in sound localisation). First wrote a function to plot raw left and right impulses, then ITD (time difference b/w ears). Then used Fourier transform to break impulses into frequency domain graphs showing magnitudes of particular frequencies, then the ILD (level difference). I was stuck here because the graph didn’t match my expectations at all (a very interesting problem too, check my reddit post: https://www.reddit.com/r/DSP/comments/1weg1dk/why_are_hrirhrtf_magnitude_differences_between/ ), until a person on reddit explained it, after which I also switched to a symmetrical HRIR dataset (SADIE II instead of Meta SS2). To visualise it better, I also created a heatmap of left/right ears, ILD, and left/right averages. Understanding this through different types of graphs and analysing them, recognising quirks, understanding what they meant was very interesting. Attaching pictures of the heatmaps, raw impulses, ITD, ILD curves :)
Animating by Azimuth I tried to identify patterns in the HRTF curves by azimuth. Wrote a function which animates it frame by frame (by azimuth). Visually, I could see it gradually moving (similar shape, moving little by little), though as it was apparent from the heat maps, it wasn’t regular and had phases of very slight changes and phases of chaotic movement. (This was all done with right ear curves since SADIE II is symmetrical, which made things easier). To understand this, I wrote another function which compared the similarity of 5 curves at a time, and then plotted that. This had some very dense regions with little variation most of the time, but was quite chaotic around 50-150° . Peak Analysis Compression I tried writing a set of functions which would go through the curves, identify significant points (turning points and drops/rises, detected by changes in signs of differences and slope changes) then judge whether the curves of the angles following it are similar (same number of peaks, within a threshold of frequency and magnitude). Similar curves would be grouped within a “phase” where each phase is a dictionary with: 'initial' (initial coordinates of peaks, list of tuples) 'freq_changes' (nested list of changes in frequency for each frame of each peak) 'mag_changes' (similar to freq_changes ) The changes arrays would then be simplified; if frequency/magnitude changes are subtle enough that it’s imperceptible (determined by continuous bark scale/hardcoded decibel threshold), it would be reduced to zero. Reconstruction To reconstruct it, a function would get the phase’s initial , add the corresponding differences to get the exact peaks, then interpolate using pchip to get the curve. Results It looked like it could optimise everything significantly, but it failed miserably. Very inaccurate (error ~5dB mean , ~14dB max ) About 77% of phases were just 1 curve The max size of a phase was 6 curves (compared to my expected 20-30) The error could be made better by having more peaks, but it doesn’t optimise anything significantly. I’ll move on with directly applying the HRTF curves now, though I’ll come back to this later because it looks promising! Attaching the azimuth animation video and the similarity plot
This is the most I’ve ever learned in such a short time. Over the past few days I designed a program that spatialises audio using several psychoacoustic cues. I spent many of those hours understanding the maths and how to apply the cues. I’d researched broadly beforehand, so the code itself wasn’t too complex. It’s probably the most interesting project I’ve worked on. The cues, and what I explored Falloff: apply_falloff() How sound loses energy with distance (inverse square law). Air absorption: apply_eq() , apply_air_absorption() Air absorbs higher frequencies more than lower ones. I expected this to be minor, but it needed a whole EQ system, whose maths was interesting and took ages to wrap my head around. It also taught me about filters, which I used in later functions. Changes to one frequency interfered heavily with others, which I fixed with a peaking biquad filter (mostly AI-written). The attenuation constants come from a one-time-run file using the ISO standard, and are multiplied by distance and fed into the EQ. Early reflections: early_reflections() Initial reflections from nearby surfaces, ~5-35ms after the direct sound. By the Haas effect the brain doesn’t hear them separately, but they imply spaciousness. I first used IACC and ASW (below), then dropped them for directional cues (HRIR), so each of the 6 reflections comes from its surface’s direction. It accounts for room size and pressure reflection (from an absorption coefficient). Decorrelation: decorrelate() Artificially decorrelates a signal (FIR comb filters) into L and R, lowering IACC (interaural cross-correlation) and increasing ASW (apparent source width). An IACC of 1 sounds like a point source; lower sounds wider. It worked against my goal (localisation, not a larger source), so I dropped it from the direct audio, then from early reflections. Scrapped, but an interesting concept. Reverb: room_reverb() Probably the most important cue for space. Late reverb is thousands of colliding reflections, an unintelligible wash. I built it from feedback comb filters, combined and diffused through an allpass filter, and cut off at RT60 (time to decay 60 dB, from speed of sound, room size and absorption). Problem: the tail was distinct and ruined localisation (which relies on level differences between ears), like in a hall. Most of the energy making it legible was in its first ~50ms, masking the early reflections. Cutting the first [early reflection length - 20ms] helped a bit. Switching to an FDN made it denser and decorrelated L/R by design, so I could drop decorrelate() . DRR (part of reverb) Direct-to-reverberant ratio simulates source distance relative to the room: closer to the listener than the walls means louder direct sound, closer to the walls means louder reverb. I set the direct amplitude to 1 and calculated a gain for the reverb. Apply IR The only cue for direction. It convolves left and right impulse responses for an azimuth and elevation onto the direct audio and early reflections. They come from a HRIR dataset ( .SOFA , SADIE II) recorded on a binaural mannequin. I tried optimising this earlier and failed (older devlogs), and want to revisit it. Process audio Converts to mono, resamples to 48kHz if needed. Gets azimuth, elevation and distance from coordinates. Applies air absorption, falloff, then IR on the direct sound. Generates early reflections and late reverb (L and R). Sums everything, scales to prevent clipping, returns L and R arrays :D Attaching images of my diary notes because I think it’s super interesting.
[ship log!] It’s moments like this for which I’m alive. This has literally brought me to tears of happiness 🥹. Used a stem separator (htdemucs_6s by Meta research) to separate a song into it’s parts (guitar, drums, piano, other, bass, vocals) and spatialises them individually, placing the stems around the listener to make the song sound more open; as if the members of a band are playing around the listener. It worked EXCEPTIONALLY well, far beyond what I expected, even for songs I used to stress test it which were almost guaranteed to sound bad, they sounded great. The spatialiser asks for song file path, room size, and distance of source. The materials of the room can be altered by changing the alpha coefficients. Here are a few songs I tried out and their review: Bill Withers - Ain’t no Sunshine: a very safe song for first try, clear separation of instruments, no stereo widening or spatialisation, no special effects. Genuinely shocked me, made me smile uncontrollably when it played. Sounded perfect, spatialised well (everything was distinguishable). Truly sounded “outside of head” and around me. Exactly the kind of song this was built to fix; flat and closed songs sounding open. Ye - This a Must: from my fav artist. A song I’ve liked but disliked the closed, flat feeling of vocals in. This didn’t work just as well as others. Lost a bit of thump initially, but reducing distance helped. This also did exactly what I wanted, though it still lacked some thump. Olivia Rodrigo - stupid song: A song i love because of the layering of instruments and her vocals. I used this to see what would happen in a song with a lot of stereo widening and effects already present. This sounded beautiful here, and I was concerned about it having clashing effects, but that didn’t happen. amazing. Playboi Carti - POP OUT: I put this in as a joke, there was no way this was supposed to sound tolerable. But it blew me away, and worked really well, dare I say better than the original too? Others: Jeremy Zucker - i dont know you, Stevie Wonder - Sir Duke, Carti - TOXIC Demo videos: https://youtu.be/GdZYN0wQXBQ
Ships:
The concept came to me when I realised how dramatic the difference between stereo and mono audio was. How the intruments separated, opened up, and details could he heard really well, while mono sounded like noise. I thought about what would happen if instruments were literally separated and opened up, as if placed around the listener like a band. ReMix separates the stems of a song and spatialises them individually to create perception of a room and placement of instruments around you. Demo of output songs . (listen with headphones) What was challenging While the code itself was moderately challenging, understanding all the different psychoacoustic cues (covered in more detail in README and devlogs), how they work and what they do, and the maths behind them, required a ton of deliberation. Though it was very rewarding and interesting. I also spent a lot of time trying to analyse the HRIR curves themselves, trying to make sense of what frequencies getting altered and where and why. I used a lot of graphs and intuition to try to understand them. I now have a deep understanding of them, which would be helpful for future versions, for optimising them (which I also attempted, though naïvely). Near the end, making the audio sound natural was challenging too where I had to try tweaking some things (mainly room absorbence/size and reverb) What I’m proud of I love that the concept I had thought of in theory actually works. When I first played a song, I couldn’t stop grinning because of how good it sounded, and the trippy illusion of it coming from around me. I’ve listened to 8D audio (a simpler version of this where the audio as a whole moves, less realistic, no band-like feeling, distracting and somewhat gimmicky), but it coming from something I created myself, and using code and maths; not some software. And something I could actually experience, I think that makes me very proud. I also had my friends listen to it, which got a lot of positive reactions. In the end, I’m also happy about how deep of an understanding I have about psychoacoustics now. What you need to know to test it out headphones are a must pls the effect breaks completely on speakers. You can try it out from the repo, but here’s a demo The song spatialisation concept is a demo for the concepts behind it, which can be used in a lot of applications like video games, movies, producers who can’t afford a studio, etc. This is a very initial version. Updates may make the effects even more realistic, or optimise the program to make it suitable for running in real time (or applied on hundreds of elements for games)....
|
1793209992.9695976
|
1793296392.9695976
|
|
67595
|
WebBrowser by @BlueScreen | Stardance
|
BlueScreen
|
1
|
26.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T16:57:46Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Gluon Browser is now fully available with the release of version 1.1.0! It is a command line browser which can read websites and search the web through DuckDuckGo. It has many features, such as tabs, saving pages, and downloading files!", "repo": "https://github.com/Clippy-CLI/CMD-Browser", "demo": "https://codehs.com/sandbox/yellowotter2314/browser/run"}]...
|
[{"post_id": 82335, "ts": "202 [{"post_id": 82335, "ts": "2026-10-24T16:24:57Z", "hours": 0.3422, "text": "Nothing much, just some small formatting and the browser demo at https://codehs.com/sandbox/yellowotter2314/browser/run has been updated. Thinking I may ship my project"}, {"post_id": 82283, "ts": "2026-10-24T13:38:17Z", "hours": 0.2911, "text": "Small change but bot traffic was fixed, full search results work now"}, {"post_id": 82139, "ts": "2026-10-24T02:34:45Z", "hours": 2.8392, "text": "Search engine now exists and works! It uses duckduckgo in order to search the web and provide links to whatever you may need! It does often cut off or stop working though due to being detected as bot traffic so I need to fix that."}, {"post_id": 81887, "ts": "2026-10-22T21:05:25Z", "hours": 0.535, "text": "Small feature, the browser can now download files! This includes images, text, installers, or whatever!"}, {"post_id": 81681, "ts": "2026-10-22T01:19:04Z", "hours": 0.9733, "text": "New release version 1.0.1 with bug fixes and small improvements"}, {"post_id": 81346, "ts": "2026-10-20T22:05:52Z", "hours": 3.0056, "text": "Working web demo now available, press run and wait for it to load: https://codehs.com/sandbox/yellowotter2314/browser/run"}, {"post_id": 80479, "ts": "2026-10-17T19:58:37Z", "hours": 7.3764, "text": "Every good browser needs a game, so I added a simple game in based off of one of my first ever coding projects! Control * with arrow keys to avoid !"}, {"post_id": 78425, "ts": "2026-10-10T19:29:58Z", "hours": 5.2208, "text": "Image/Images commands are actually working now! (Image more than images) example below with Hackclub logo:"}, {"post_id": 77428, "ts": "2026-10-06T23:03:08Z", "hours": 1.2331, "text": "Images command is added so now images from a site can be viewed! It prints them in text characters, example below of Linux penguin."}, {"post_id": 76907, "ts": "2026-10-05T01:12:06Z", "hours": 1.9431, "text": "So that I at least have something to add, I worked (I think mostly on, I can’t remember what I had by my last devlog) on bug fixes and formatting. New features should be up next"}, {"post_id": 76759, "ts": "2026-10-04T14:44:54Z", "hours": 1.1803, "text": "Finished linkscan command, which displays a list of all links at a chosen URL, this also lays some groundwork for adding images later as images are stored at source urls"}, {"post_id": 76530, "ts": "2026-10-03T20:54:16Z", "hours": 0.6633, "text": "Added more commands and planned out a way to show images, but still in the terminal!"}, {"post_id": 76463, "ts": "2026-10-03T16:33:19Z", "hours": 0.3031, "text": "Imported the project, improved the readme, and added a new command"}]...
|
Title: WebBrowser by @BlueScreen | Stardance
Devl Title: WebBrowser by @BlueScreen | Stardance
Devlogs:
Imported the project, improved the readme, and added a new command
Added more commands and planned out a way to show images, but still in the terminal!
Finished linkscan command, which displays a list of all links at a chosen URL, this also lays some groundwork for adding images later as images are stored at source urls
So that I at least have something to add, I worked (I think mostly on, I can’t remember what I had by my last devlog) on bug fixes and formatting. New features should be up next
Images command is added so now images from a site can be viewed! It prints them in text characters, example below of Linux penguin.
Image/Images commands are actually working now! (Image more than images) example below with Hackclub logo:
Every good browser needs a game, so I added a simple game in based off of one of my first ever coding projects! Control * with arrow keys to avoid !
Working web demo now available, press run and wait for it to load: https://codehs.com/sandbox/yellowotter2314/browser/run
New release version 1.0.1 with bug fixes and small improvements
Small feature, the browser can now download files! This includes images, text, installers, or whatever!
Search engine now exists and works! It uses duckduckgo in order to search the web and provide links to whatever you may need! It does often cut off or stop working though due to being detected as bot traffic so I need to fix that.
Small change but bot traffic was fixed, full search results work now
Nothing much, just some small formatting and the browser demo at https://codehs.com/sandbox/yellowotter2314/browser/run has been updated. Thinking I may ship my project
Ships:
Gluon Browser is now fully available with the release of version 1.1.0! It is a command line browser which can read websites and search the web through DuckDuckGo. It has many features, such as tabs, saving pages, and downloading files!...
|
1793112661.5089812
|
1793199061.5089812
|
|
54297
|
Zolt by @perr | Stardance
|
perr
|
1
|
25.99
|
118
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T17:45:21Z", "hours": 9.0, "multiplier": 12.82, "payout": 118, "blessing": "neutral", "text": "a tiny zig web server that speaks luau. when user request the server run the lua code and return them. kinda like php but with lua.", "repo": "https://github.com/iluvicecream/zolt", "demo": "https://zolt-doc.perr.dev/"}]...
|
[{"post_id": 73102, "ts": "202 [{"post_id": 73102, "ts": "2026-09-24T11:53:37Z", "hours": 2.3825, "text": "Template I guess so before all zolt app are written using .lua file and write to the response using echo which led to kind of bad dx so after the last ship there were some review on some kind of tsx like language so i been working on that and here zolt template build on top of go html/template with a lua block it will become a default way of writing app using zolt while .lua will be use for shared module and library"}, {"post_id": 72608, "ts": "2026-09-23T10:30:13Z", "hours": 3.2419, "text": "Documentation! just deploy a new version of documentation site and the go rewrite is complete! from the last update i also added http_request.header[“string”] let you get the header value http_request.query[“string”] let you get the parameters from request query http_request.method get the request method allow you to support POST and others turbokit module allow you to quickly create turbo-frame after this i will be working on form support so you can really build a web app with it"}, {"post_id": 71241, "ts": "2026-09-20T14:49:47Z", "hours": 1.5731, "text": "Merge!! no more experimental-go branch the go rewrite has been merge to the master branch along with the new releases 0.4.0 with support for windows too!. the documentation is currently wip so no doc yet sadd T_T but that the next thing am working on"}, {"post_id": 70774, "ts": "2026-09-19T18:57:20Z", "hours": 1.3961, "text": "Core Function is here after the go rewrite i have now implement 3 core function back but with some changes from zig version so when the go merge it will be a breaking changes http_set_status(status: int) let you set http response code such as 404 500 403 http_content_type(type: string) let you set content type header for usecase like json api http_header_add(key: string,value: string) let you add to the headers i also implement require for loading module and bring back hol now as htmlkit so yea looking forward to merge the go branch into main in a few days but it will 100% be a breaking changes not that who cared anyways except me cuz am the only one using it and now i have to fix my code"}, {"post_id": 68687, "ts": "2026-09-15T15:23:34Z", "hours": 5.3967, "text": "Sadly, There is such thing as a wrong decision when i first set out to make zolt i figure it will be a good place to learn zig i mean it such a small project just a simple http server that execute lua. but then i started using it myself and kept needing more feature but sadly even tho this project started as a way to learn zig. i just didn’t really click with it thus when implementing feature i kept having to relies a lot on codex. So what? so i started a new branch call experimental-go that contain a go rewrite of zoltd plan to be as much backward compatible as possible but not fully as zig zoltd use luau while go zoltd use gopher lua but otherwise i will try and implement all function in zig Naming even tho the project is being rewritten in go. the name will still remain zolt cuz golt sound worse What zolt go version like right now i just implement a lua runtime based on gopher-lua and implement 2 function echo() and print()"}, {"post_id": 64828, "ts": "2026-09-09T14:43:40Z", "hours": 1.845, "text": "HOL (Html On Lua) so from the last ship someone suggest that there should be a tsx like syntax that allow you to write html easier and i agree with that writing the whole layout in echo is a pain so i make hol a pretty simple html builder that ship with zolt so you can just import it anywhere without having to download it and am looking forward to add more feature such as native support for each element instead of H(“h1”) you can just do h1(“Header”) something like that"}, {"post_id": 60425, "ts": "2026-09-02T18:48:14Z", "hours": 1.1506, "text": "Query ! i added new api to the lua vm call request.query it accept 1 parameters field: string and return a string so if your url is host/?field1=value running request.query(“field1”) will return “value”"}, {"post_id": 56766, "ts": "2026-08-28T17:34:39Z", "hours": 0.9775, "text": "Quick Start i have added new entry to documentation such as installation using the new install script and your first zolt web guide along with lua api reference. for the zolt i have move status() and header() api into response.status() and response.header() to align more with request.path() and change webroot from current working dir to config parent dir."}, {"post_id": 55590, "ts": "2026-08-27T15:20:23Z", "hours": 2.4436, "text": "Documentation!! so i been working on a documentation for zolt with guess what zolt well the doc right now is pretty barebone with just intro and install for now but it is made with zolt,html,css,js i also use hotwire turbo and stimulus, and it also use this cute font by creators of grug. ( https://handdrawn.software/grug/ ) you can access the doc page here https://zolt-doc.perr.dev"}, {"post_id": 55153, "ts": "2026-08-26T17:01:52Z", "hours": 3.0167, "text": "Devlog 2 so from the last time i added new api such as require allow you to load other luau file and use them as a module header add header to the response status set http status code for the response with require you can now create function that help you build, for example i created a render module that help me to render html easier without having to deal with writing html tags manually apart from new api there has been a lot of changes behind the scene such as concurrency and performance improvements for the next devlog i will be working on adding api support for query params , form data , json body , and cookies so that you can build more complex web app with zolt! not only that am working on a documentation site that will also serve as an example on how to build web app using zolt"}, {"post_id": 54679, "ts": "2026-08-25T18:50:55Z", "hours": 2.7939, "text": "Zolt so this is php but with lua instead. well i wanted to learn zig and lately i been working on php project, and i just really love how stuff seem so simple but i kinda hate php syntax and the server around it. so yea here zolt it a zig web server that read the lua file you are requesting via query path then use luau to run it and give you the response. right now it just a plain text response but more coming!"}]...
|
Title: Zolt by @perr | Stardance
Devlogs:
Zolt so Title: Zolt by @perr | Stardance
Devlogs:
Zolt so this is php but with lua instead. well i wanted to learn zig and lately i been working on php project, and i just really love how stuff seem so simple but i kinda hate php syntax and the server around it. so yea here zolt it a zig web server that read the lua file you are requesting via query path then use luau to run it and give you the response. right now it just a plain text response but more coming!
Devlog 2 so from the last time i added new api such as require allow you to load other luau file and use them as a module header add header to the response status set http status code for the response with require you can now create function that help you build, for example i created a render module that help me to render html easier without having to deal with writing html tags manually apart from new api there has been a lot of changes behind the scene such as concurrency and performance improvements for the next devlog i will be working on adding api support for query params , form data , json body , and cookies so that you can build more complex web app with zolt! not only that am working on a documentation site that will also serve as an example on how to build web app using zolt
Documentation!! so i been working on a documentation for zolt with guess what zolt well the doc right now is pretty barebone with just intro and install for now but it is made with zolt,html,css,js i also use hotwire turbo and stimulus, and it also use this cute font by creators of grug. ( https://handdrawn.software/grug/ ) you can access the doc page here https://zolt-doc.perr.dev
Quick Start i have added new entry to documentation such as installation using the new install script and your first zolt web guide along with lua api reference. for the zolt i have move status() and header() api into response.status() and response.header() to align more with request.path() and change webroot from current working dir to config parent dir.
Query ! i added new api to the lua vm call request.query it accept 1 parameters field: string and return a string so if your url is host/?field1=value running request.query(“field1”) will return “value”
HOL (Html On Lua) so from the last ship someone suggest that there should be a tsx like syntax that allow you to write html easier and i agree with that writing the whole layout in echo is a pain so i make hol a pretty simple html builder that ship with zolt so you can just import it anywhere without having to download it and am looking forward to add more feature such as native support for each element instead of H(“h1”) you can just do h1(“Header”) something like that
Sadly, There is such thing as a wrong decision when i first set out to make zolt i figure it will be a good place to learn zig i mean it such a small project just a simple http server that execute lua. but then i started using it myself and kept needing more feature but sadly even tho this project started as a way to learn zig. i just didn’t really click with it thus when implementing feature i kept having to relies a lot on codex. So what? so i started a new branch call experimental-go that contain a go rewrite of zoltd plan to be as much backward compatible as possible but not fully as zig zoltd use luau while go zoltd use gopher lua but otherwise i will try and implement all function in zig Naming even tho the project is being rewritten in go. the name will still remain zolt cuz golt sound worse What zolt go version like right now i just implement a lua runtime based on gopher-lua and implement 2 function echo() and print()
Core Function is here after the go rewrite i have now implement 3 core function back but with some changes from zig version so when the go merge it will be a breaking changes http_set_status(status: int) let you set http response code such as 404 500 403 http_content_type(type: string) let you set content type header for usecase like json api http_header_add(key: string,value: string) let you add to the headers i also implement require for loading module and bring back hol now as htmlkit so yea looking forward to merge the go branch into main in a few days but it will 100% be a breaking changes not that who cared anyways except me cuz am the only one using it and now i have to fix my code
Merge!! no more experimental-go branch the go rewrite has been merge to the master branch along with the new releases 0.4.0 with support for windows too!. the documentation is currently wip so no doc yet sadd T_T but that the next thing am working on
Documentation! just deploy a new version of documentation site and the go rewrite is complete! from the last update i also added http_request.header[“string”] let you get the header value http_request.query[“string”] let you get the parameters from request query http_request.method get the request method allow you to support POST and others turbokit module allow you to quickly create turbo-frame after this i will be working on form support so you can really build a web app with it
Template I guess so before all zolt app are written using .lua file and write to the response using echo which led to kind of bad dx so after the last ship there were some review on some kind of tsx like language so i been working on that and here zolt template build on top of go html/template with a lua block it will become a default way of writing app using zolt while .lua will be use for shared module and library
Ships:
a tiny zig web server that speaks luau. when user request the server run the lua code and return them. kinda like php but with lua....
|
1793202963.4956632
|
1793289363.4956632
|
|
10430
|
Wizard Fighting Game by @catmaster514 | Stardance
|
catmaster514
|
0
|
25.94
|
0
|
[]
|
[{"post_id": 54874, "ts": "202 [{"post_id": 54874, "ts": "2026-08-26T02:30:06Z", "hours": 15.2956, "text": "Added Attack Animations for dash attack, ground attack, and aerial attack, added air dash, add input buffer system, added 2nd player, added automatic input detection for when the game is launched with 1 or 2 controllers connected. Apologies for the lack of devlogs was very focused on getting a demo of the project out for something and ignored stardance."}, {"post_id": 35646, "ts": "2026-07-27T06:57:13Z", "hours": 1.3569, "text": "Fixed Bug which would cause jumping particles to not spawn when the player leaves the ground during the jump squat animation Added Fast fall Added Short Hop"}, {"post_id": 14796, "ts": "2026-06-24T01:07:30Z", "hours": 0.9853, "text": "Fixed an issue with the one way platforms in godot where the player would run into them from the side and bounce off of them, added a script to handle the collision layers for platforms to the platform object and changed the players collision box to a custom polygon to fix"}, {"post_id": 14219, "ts": "2026-06-23T07:06:46Z", "hours": 3.5228, "text": "Big Update Added Double Jump and particles for it reworked the entire code for jumping for a smoother feel created one method for all instances of player acceleration and deceleration added jump squat which is 3 frames between the Jump input and the player leaving the ground tuned movement values"}, {"post_id": 5426, "ts": "2026-06-09T06:07:22Z", "hours": 4.775, "text": "I have created the basic systems in place for the game including a state machine to handle animations, and basic movement which is a modified version of the built in CharacterBody2D script, this movement uses the move_toward math function to add acceleration and deceleration, this is to emulate the feel of games like smash, while still having more snappiness with no jump squat(frames before leaving the ground)"}]...
|
Title: Wizard Fighting Game by @catmaster514 | Sta Title: Wizard Fighting Game by @catmaster514 | Stardance
Devlogs:
I have created the basic systems in place for the game including a state machine to handle animations, and basic movement which is a modified version of the built in CharacterBody2D script, this movement uses the move_toward math function to add acceleration and deceleration, this is to emulate the feel of games like smash, while still having more snappiness with no jump squat(frames before leaving the ground)
Big Update Added Double Jump and particles for it reworked the entire code for jumping for a smoother feel created one method for all instances of player acceleration and deceleration added jump squat which is 3 frames between the Jump input and the player leaving the ground tuned movement values
Fixed an issue with the one way platforms in godot where the player would run into them from the side and bounce off of them, added a script to handle the collision layers for platforms to the platform object and changed the players collision box to a custom polygon to fix
Fixed Bug which would cause jumping particles to not spawn when the player leaves the ground during the jump squat animation Added Fast fall Added Short Hop
Added Attack Animations for dash attack, ground attack, and aerial attack, added air dash, add input buffer system, added 2nd player, added automatic input detection for when the game is launched with 1 or 2 controllers connected. Apologies for the lack of devlogs was very focused on getting a demo of the project out for something and ignored stardance....
|
1792759873.0995607
|
1793364673.0995607
|
|
19433
|
Pantheon by @Minetrio1256 | Stardance
|
Minetrio1256
|
1
|
25.91
|
323
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T00:17:02Z", "hours": 23.0, "multiplier": 13.97, "payout": 323, "blessing": "neutral", "text": "I made a custom item framework that auto builds the resource pack JSON for you while allowing custom behavior on different events. The most challenging part was the NMS that is needed in the bootstrap phase to add certain datapack element written in Java to the registry. I am most proud of how powerful it is and open unlike alternative who often offer a poor developer experience. To this the project you should join the ip linked in the demo.md file under demo url on Minecraft Java 26.2 which is the demo project.", "repo": "https://github.com/Eclectus-Studio/Pantheon", "demo": "https://github.com/Eclectus-Studio/PantheonDemo/blob/master/demo.md"}]...
|
[{"post_id": 70082, "ts": "202 [{"post_id": 70082, "ts": "2026-09-18T12:55:23Z", "hours": 1.0242, "text": "Devlog #10 I mainly ported the plugin to 26.3, some testing notably with the data pack elements that were previously implemented need to be tested. I am currently still working on making the primitives for the datapack elements currently I have added world clocks, villager trades, banner patterns, decorated pots, and for the few other look at the commit history! I also ported the commands to the Brigadier API to have the TAB completion work better."}, {"post_id": 68371, "ts": "2026-09-15T00:57:59Z", "hours": 0.625, "text": "Devlog #9 I added support for credits"}, {"post_id": 66633, "ts": "2026-09-12T14:14:53Z", "hours": 0.5036, "text": "Devlog #8 Small refactor and additions, mainly the fact that the data package is now apart of version specific code moving forward due the need of bukkit code moving forward. It also means a support for papercm Key will be added"}, {"post_id": 63055, "ts": "2026-09-06T17:11:01Z", "hours": 0.7606, "text": "Devlog #7 from this point it’s mostly extra stuff that its convenient to have Pantheon handle it. this update just adds consumable and patches to certain bugs!"}, {"post_id": 46394, "ts": "2026-08-13T15:57:01Z", "hours": 4.0803, "text": "Devlog #6 As the final devlog here is a quick screenshot of the demo server, with all feature implemented and ready. Armor, tools, mob variant, music disc, painting."}, {"post_id": 38909, "ts": "2026-08-01T14:31:34Z", "hours": 9.3422, "text": "Devlog #5 so I added a few features and did a few refactors of the API. I have added all mob variants, painting variants and Jukebox songs. A few added features and edits to the API are : Damage Types Sword & Tools (waiting for a rewrite) Mob Variants Painting Variants Jukebox songs Armor (Missing some for mobs other the humanoid) Durability has been added"}, {"post_id": 29474, "ts": "2026-07-16T13:24:11Z", "hours": 1.3536, "text": "Devlog #4 I added in what will soon be version Alpha-0.2.0 the new equipment API. It includes, Saddles, Helmets, Chest plates, Leggings, and boots. The next step is re-writing the sound API prototype in common and implementing. Features soon to be added also include food and weapons"}, {"post_id": 25043, "ts": "2026-07-09T00:06:38Z", "hours": 4.5428, "text": "Devlog #3 So I got a bit carried away and decided that it could be a good idea to add velocity support. Currently, and what it is planned to do is pack hosting and generation, the actual logic for item is still ran on the backend server and it is not included in velocity which allows for code separation between common, velocity, and paper. I also started making presets for equipment and added custom font support. I also removed minecraft 26.1.2 in favor to 26.2 to support new features. The next step is still the equipment api such as custom armor and elytra’s. I think the next step after is tools. Linked is a demo of the custom font for ranks, note that it does not generate the rank texture but could be a good idea in the future."}, {"post_id": 13165, "ts": "2026-06-21T15:24:11Z", "hours": 3.42, "text": "Devlog #2 So, been a few days and I have been able to test and improve the current item API. We now have: Raw item models and raw item models definition A custom item API which handles left click and right click detection Pack hosting The next step is still related to items, mainly stuff like custom equipment such as armor, wings, saddles. Also coming soon is pack icon and sounds."}, {"post_id": 10308, "ts": "2026-06-16T23:30:21Z", "hours": 0.4, "text": "Devlog 1 So, I have been working for a while in the mc plugin scene and each and every time a few things often come back when doing custom servers, mainly custom items. While the process of making one is easier then ever due to the changes in the last few years it is still quite annoying, mainly having to manually write json or copy-pasting while changing a few values. You also have to make sure everything matches up back in java. If you are working with modern modding api’s, such as neoforge and fabric, you will get a tool called DataGen which helps writing the json for you with the minimal amount of lines for diverse things such as loot tables, item models, etc. So I decided to make one for paper and to have a custom item related classes and also have the option to build the resource pack on the fly for quick updates. It is currently messy due to the fact that I am directly interracting with the POJO that mirror the json of a resource pack, I am planning on making a nicer api to make the process faster and cleaner."}]...
|
Title: Pantheon by @Minetrio1256 | Stardance
Devl Title: Pantheon by @Minetrio1256 | Stardance
Devlogs:
Devlog 1 So, I have been working for a while in the mc plugin scene and each and every time a few things often come back when doing custom servers, mainly custom items. While the process of making one is easier then ever due to the changes in the last few years it is still quite annoying, mainly having to manually write json or copy-pasting while changing a few values. You also have to make sure everything matches up back in java. If you are working with modern modding api’s, such as neoforge and fabric, you will get a tool called DataGen which helps writing the json for you with the minimal amount of lines for diverse things such as loot tables, item models, etc. So I decided to make one for paper and to have a custom item related classes and also have the option to build the resource pack on the fly for quick updates. It is currently messy due to the fact that I am directly interracting with the POJO that mirror the json of a resource pack, I am planning on making a nicer api to make the process faster and cleaner.
Devlog #2 So, been a few days and I have been able to test and improve the current item API. We now have: Raw item models and raw item models definition A custom item API which handles left click and right click detection Pack hosting The next step is still related to items, mainly stuff like custom equipment such as armor, wings, saddles. Also coming soon is pack icon and sounds.
Devlog #3 So I got a bit carried away and decided that it could be a good idea to add velocity support. Currently, and what it is planned to do is pack hosting and generation, the actual logic for item is still ran on the backend server and it is not included in velocity which allows for code separation between common, velocity, and paper. I also started making presets for equipment and added custom font support. I also removed minecraft 26.1.2 in favor to 26.2 to support new features. The next step is still the equipment api such as custom armor and elytra’s. I think the next step after is tools. Linked is a demo of the custom font for ranks, note that it does not generate the rank texture but could be a good idea in the future.
Devlog #4 I added in what will soon be version Alpha-0.2.0 the new equipment API. It includes, Saddles, Helmets, Chest plates, Leggings, and boots. The next step is re-writing the sound API prototype in common and implementing. Features soon to be added also include food and weapons
Devlog #5 so I added a few features and did a few refactors of the API. I have added all mob variants, painting variants and Jukebox songs. A few added features and edits to the API are : Damage Types Sword & Tools (waiting for a rewrite) Mob Variants Painting Variants Jukebox songs Armor (Missing some for mobs other the humanoid) Durability has been added
Devlog #6 As the final devlog here is a quick screenshot of the demo server, with all feature implemented and ready. Armor, tools, mob variant, music disc, painting.
Devlog #7 from this point it’s mostly extra stuff that its convenient to have Pantheon handle it. this update just adds consumable and patches to certain bugs!
Devlog #8 Small refactor and additions, mainly the fact that the data package is now apart of version specific code moving forward due the need of bukkit code moving forward. It also means a support for papercm Key will be added
Devlog #9 I added support for credits
Devlog #10 I mainly ported the plugin to 26.3, some testing notably with the data pack elements that were previously implemented need to be tested. I am currently still working on making the primitives for the datapack elements currently I have added world clocks, villager trades, banner patterns, decorated pots, and for the few other look at the commit history! I also ported the commands to the Brigadier API to have the TAB completion work better.
Ships:
I made a custom item framework that auto builds the resource pack JSON for you while allowing custom behavior on different events. The most challenging part was the NMS that is needed in the bootstrap phase to add certain datapack element written in Java to the registry. I am most proud of how powerful it is and open unlike alternative who often offer a poor developer experience. To this the project you should join the ip linked in the demo.md file under demo url on Minecraft Java 26.2 which is the demo project....
|
1793101974.8225033
|
1793188374.8225033
|
|
9731
|
waifmark-2 by @qb | Stardance
|
qb
|
1
|
25.88
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T02:30:20Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Waifmark 2 is now public. This is a benchmarking utility for local (V)LLMs testing their local agentic and roleplay/persona capabilities, built using vllm on python. Waifmark 1 had existed before this, but this was my first attempt automating any kind of LLM behaviour and that was certainly challenging. Another important aspect with this benchmark was that since local AI is being used, cost isn’t a primary concern but rather response time. This led to a entire process of figuring out how to inject end-of-reasoning traces directly into the LLM but it was honestly too difficult and inconsistent to evaluate in the end. Similarly, manually reviewing over 200 flagged tasks was a pain and introduces a systematic uncertainty that is myself reviewing these questions that are mostly arbitrary rather than discrete (i.e. questions having multiple possible answers, being on a spectrum rather than definitive wrong/correct). In the end however, I feel like I’ve not made a niche benchmark but actually also a fully open-source benchmarking utility for people to play around with, test with their own test-bank and evaluate local large language models to find the one best tailored for their unique use cases. To test Waifmark 2, note that the github site is just a static site and you cannot directly benchmark from there. Follow the instructions on the static site / or README.md on github to run correctly.", "repo": "https://github.com/qubixal/waifmark", "demo": "https://qubixal.github.io/waifmark/"}]...
|
[{"post_id": 62549, "ts": "202 [{"post_id": 62549, "ts": "2026-09-06T00:15:24Z", "hours": 1.2206, "text": "As requested, README has been updated and rewritten by a human. There are also now three ways to install - directly through PyPI by doing pip install waifmark, or downloading waifmark-macos.zip and unzipping. there’s not a lot otherwise to say about this devlog"}, {"post_id": 61482, "ts": "2026-09-04T12:51:23Z", "hours": 0.4283, "text": "it was found that I accidentally committed using personal details and a local email. The gh repo has been wiped and recreated; here’s proof of the original repo and work. Thank you reviewers for your understanding."}, {"post_id": 61333, "ts": "2026-09-04T06:14:17Z", "hours": 1.23, "text": "Waifmark 2 has been updated with a new UI! After criticisms of the previous UI being too AI, I’ve refactored it with a cleaner, pastel aesthetic. I kinda like it! tell me what i should change next -»> (readme has been humanified too…)"}, {"post_id": 61239, "ts": "2026-09-04T02:23:29Z", "hours": 1.2233, "text": "after ~18 hours over two days of benchmarking, 17 models were evaluated on the waifmark 2 benchmark. (💢💢💢 benchmarking time got recorded to root ~/ and so I can’t include in this project time) Final findings: 1: higher param models like Qwen3.5 9B and Gemma 4 12B are able to score high despite their low Q3 quants, with only their speed dragging them down 2: Nanbeige 4.2 3B and Granite 4.2 8B at Q4 are not considered to be mainstream open models (i.e. competing with Qwen or Gemma), but scored incredibly well given their small size. The only downside came with unoptimised runs and thinking traces inflating the time/response metric. 3: every AI lab except for Liquid (LFM) saw a direct proportionality trend, that for a higher score a higher time/response is required. 4: As a larger portion of the benchmark is now tied to Agentic tasks in a sandbox, there is a much larger variance in the distribution of scores with more recent models scoring comparatively higher, with less models scoring in-between compared to Waifmark 1. The Pareto Frontier for Waifmark is: Qwen3.5 9B (89%) -> LFM2.5 2.6B (55%) -> Ling 3.0 Tiny (35%) ->Qwen3 4B Instruct 2507 (21%). Now, the issues faced: UI issues from the refactor to FastAPI + frontend; fixed with page indexing. During benchmarking, many models timed out due to unstable mlx weights, a corrupted test bank during Day 4 with 6 times the number of actual roleplay scenarios caused a benchmark time of over 12 hours; once I realised the mistake at the end (due to ~600+ tasks that had to be reviewed) I reran the benchmark with the correct test bank (which had also been recently changed to 1/3 agentic + 2/3 roleplay, and consists of 4 times more questions than Waifmark 1. over 260+ out of ~600 total tasks had to be re-reviewed by a human, as the LLM-as-a-Judge flagged the answer. Most were agentic tasks that the benchmarked LLM did not provide an answer to but had demonstrated steps in its reasoning, with toolcall accuracies above 0%. This took a significant portion of my time to audit all scores. See images for results, or navigate to: https://qubixal.github.io/waifmark/chart.html"}, {"post_id": 60212, "ts": "2026-09-02T13:12:39Z", "hours": 3.8194, "text": "finally, benchmarking has begun. The benchmark was re-evaluated meticulously based on Qwen3.5-4B as a ~50% guideline for benchmarking. Then, I set up my now dead macbook pro (dead display, dead battery) to a portable monitor to use as basically a cloud server and started benchmarking. This is the fourth night of trying (after benchmarking failed over the night due to the computer not plugging in and losing all charge (day 1), automation logic not working (day 2), LFM weights getting stuck (day 3) so hopefully it works today with the 17 consecutive models to be benchmarked. using 17 models, including: MiniCPM5-1B (0.57GB) LFM2.5-2.6B GGUF (1.59GB) Granite3B (2.09G8) G9V3 (1.77GB) Nanbeige (2.50GB) Granite8B (4.98GB) Ling(4.58GB) Falcon (4.28GB) LFM8B (4.51GB) Gemma E2B(4.04GB) Gemma E4B (4.79GB) Gemma12B (5.30GB) Qwen3.5-9B (4.35GB) Qwen3-4B-2507 (2.1GB) Qwen3.5-2B (1.60GB) Qwen3.5-4B (2.83GB) DeepSeek-R1-Qwen3-8B (4.29GB) Note, all models were selected to fit within 6-8GB vram total so it could be evaluated on my local hardware."}, {"post_id": 58584, "ts": "2026-08-31T01:39:24Z", "hours": 3.0928, "text": "devlog 4 - UI refactor streamlit was replaced with FastAPI + a frontend and i think it looks much better than previously now. issues + features: hugging face’s api (i.e. HfApi.list_models() was not filtered correctly during search) direct model import based on local dir is now possible openrouter judge was outdated and replaced, now user-configurable install now possible in a oneliner pip install -r requirements.txt && waifmark if a benchmark was cancelled, previously a bg server process vLLM workers would leak; instead process groups (start_new_session=True) and os.killpg gets rid of all processes when a session is ended. streamlit ran CORS and XSRF disabled; rebound to localhost"}, {"post_id": 19866, "ts": "2026-07-01T08:52:48Z", "hours": 5.715, "text": "devlog 3: it’s been even longer but I’ve finally done enough to call this a “devlog”. basically everything has been fully rewritten in python. A few (quite detrimental) bug fixes are: nonexistent error recovery system (i.e. pausing benchmark + invalid responses) scoring rubric weights ignored in prompt sent to judge save files mislabelling A/B scoring only having one slider for better model several UI patches (floating navbar -> broken margins) added leaderboard from the original index.html currently visible on the github under “Leaderboard”, displaying top scores. To work on: largely inconsistent and seemingly inflated scoring check if benchmark can actually be completed, finalise benchmarking criteria + process benchmark the rest of the models i hope this can be done within 2 more devlogs. Image 1: much more simplified run system (compared to before). Image 2: the og graph, now in v2!"}, {"post_id": 5576, "ts": "2026-06-09T12:41:48Z", "hours": 6.1856, "text": "Dev2 It’s been so long but the UI looks a little better now (?) The process has been basically fully streamlined: HF model download -> pick quant/download type Benchmarking -> start server -> run benchmark, score/100 evaluation, ETA and live console monitoring Result auditing (Will continue to work on this) -> human review responses flagged by LLM judge Results showcase/leaderboard -> WIP Progress related to benchmarking: 3x question count compared to Waifmark 1 ~2x faster parallel automated scoring memory system (short/long ctx), agentic toolcalling (basic file reading/shell/research) functions fully implemented as part of local agentic benchmarking."}, {"post_id": 3503, "ts": "2026-06-06T13:57:19Z", "hours": 3.0169, "text": "Devlog 0.1 (For a future project.) I’m trying out LLM benchmarking on my M1 Macbook Pro that probably needs a break! Prior to Stardance - Waifmark 1 was a benchmark testing local agentic capabilities and speech persona of small locally hosted (V)LLMs. However, my benchmarking process for Waifmark 1 was unstandardised and troublesome, and I kept all the data in excel out of all places. Current stage - Waifmark 2 is in the works. The benchmark is now evaluated by an LLM-as-a-Judge that can flag and pass low-confidence outputs for human review (as is industry standard). Using the wonderful streamlit library I built a basic app that can download you a model from hf, serve the model and benchmark it in 3 steps. Unfortunately I cannot show any more behind the process as of now, but I’m very excited to join Stardance and to see what changes can be observed moving from Waifmark 1 -> 2!"}]...
|
Title: waifmark-2 by @qb | Stardance
Devlogs:
Dev Title: waifmark-2 by @qb | Stardance
Devlogs:
Devlog 0.1 (For a future project.) I’m trying out LLM benchmarking on my M1 Macbook Pro that probably needs a break! Prior to Stardance - Waifmark 1 was a benchmark testing local agentic capabilities and speech persona of small locally hosted (V)LLMs. However, my benchmarking process for Waifmark 1 was unstandardised and troublesome, and I kept all the data in excel out of all places. Current stage - Waifmark 2 is in the works. The benchmark is now evaluated by an LLM-as-a-Judge that can flag and pass low-confidence outputs for human review (as is industry standard). Using the wonderful streamlit library I built a basic app that can download you a model from hf, serve the model and benchmark it in 3 steps. Unfortunately I cannot show any more behind the process as of now, but I’m very excited to join Stardance and to see what changes can be observed moving from Waifmark 1 -> 2!
Dev2 It’s been so long but the UI looks a little better now (?) The process has been basically fully streamlined: HF model download -> pick quant/download type Benchmarking -> start server -> run benchmark, score/100 evaluation, ETA and live console monitoring Result auditing (Will continue to work on this) -> human review responses flagged by LLM judge Results showcase/leaderboard -> WIP Progress related to benchmarking: 3x question count compared to Waifmark 1 ~2x faster parallel automated scoring memory system (short/long ctx), agentic toolcalling (basic file reading/shell/research) functions fully implemented as part of local agentic benchmarking.
devlog 3: it’s been even longer but I’ve finally done enough to call this a “devlog”. basically everything has been fully rewritten in python. A few (quite detrimental) bug fixes are: nonexistent error recovery system (i.e. pausing benchmark + invalid responses) scoring rubric weights ignored in prompt sent to judge save files mislabelling A/B scoring only having one slider for better model several UI patches (floating navbar -> broken margins) added leaderboard from the original index.html currently visible on the github under “Leaderboard”, displaying top scores. To work on: largely inconsistent and seemingly inflated scoring check if benchmark can actually be completed, finalise benchmarking criteria + process benchmark the rest of the models i hope this can be done within 2 more devlogs. Image 1: much more simplified run system (compared to before). Image 2: the og graph, now in v2!
devlog 4 - UI refactor streamlit was replaced with FastAPI + a frontend and i think it looks much better than previously now. issues + features: hugging face’s api (i.e. HfApi.list_models() was not filtered correctly during search) direct model import based on local dir is now possible openrouter judge was outdated and replaced, now user-configurable install now possible in a oneliner pip install -r requirements.txt && waifmark if a benchmark was cancelled, previously a bg server process vLLM workers would leak; instead process groups (start_new_session=True) and os.killpg gets rid of all processes when a session is ended. streamlit ran CORS and XSRF disabled; rebound to localhost
finally, benchmarking has begun. The benchmark was re-evaluated meticulously based on Qwen3.5-4B as a ~50% guideline for benchmarking. Then, I set up my now dead macbook pro (dead display, dead battery) to a portable monitor to use as basically a cloud server and started benchmarking. This is the fourth night of trying (after benchmarking failed over the night due to the computer not plugging in and losing all charge (day 1), automation logic not working (day 2), LFM weights getting stuck (day 3) so hopefully it works today with the 17 consecutive models to be benchmarked. using 17 models, including: MiniCPM5-1B (0.57GB) LFM2.5-2.6B GGUF (1.59GB) Granite3B (2.09G8) G9V3 (1.77GB) Nanbeige (2.50GB) Granite8B (4.98GB) Ling(4.58GB) Falcon (4.28GB) LFM8B (4.51GB) Gemma E2B(4.04GB) Gemma E4B (4.79GB) Gemma12B (5.30GB) Qwen3.5-9B (4.35GB) Qwen3-4B-2507 (2.1GB) Qwen3.5-2B (1.60GB) Qwen3.5-4B (2.83GB) DeepSeek-R1-Qwen3-8B (4.29GB) Note, all models were selected to fit within 6-8GB vram total so it could be evaluated on my local hardware.
after ~18 hours over two days of benchmarking, 17 models were evaluated on the waifmark 2 benchmark. (💢💢💢 benchmarking time got recorded to root ~/ and so I can’t include in this project time) Final findings: 1: higher param models like Qwen3.5 9B and Gemma 4 12B are able to score high despite their low Q3 quants, with only their speed dragging them down 2: Nanbeige 4.2 3B and Granite 4.2 8B at Q4 are not considered to be mainstream open models (i.e. competing with Qwen or Gemma), but scored incredibly well given their small size. The only downside came with unoptimised runs and thinking traces inflating the time/response metric. 3: every AI lab except for Liquid (LFM) saw a direct proportionality trend, that for a higher score a higher time/response is required. 4: As a larger portion of the benchmark is now tied to Agentic tasks in a sandbox, there is a much larger variance in the distribution of scores with more recent models scoring comparatively higher, with less models scoring in-between compared to Waifmark 1. The Pareto Frontier for Waifmark is: Qwen3.5 9B (89%) -> LFM2.5 2.6B (55%) -> Ling 3.0 Tiny (35%) ->Qwen3 4B Instruct 2507 (21%). Now, the issues faced: UI issues from the refactor to FastAPI + frontend; fixed with page indexing. During benchmarking, many models timed out due to unstable mlx weights, a corrupted test bank during Day 4 with 6 times the number of actual roleplay scenarios caused a benchmark time of over 12 hours; once I realised the mistake at the end (due to ~600+ tasks that had to be reviewed) I reran the benchmark with the correct test bank (which had also been recently changed to 1/3 agentic + 2/3 roleplay, and consists of 4 times more questions than Waifmark 1. over 260+ out of ~600 total tasks had to be re-reviewed by a human, as the LLM-as-a-Judge flagged the answer. Most were agentic tasks that the benchmarked LLM did not provide an answer to but had demonstrated steps in its reasoning, with toolcall accuracies above 0%. This took a significant portion of my time to audit all scores. See images for results, or navigate to: https://qubixal.github.io/waifmark/chart.html
Waifmark 2 has been updated with a new UI! After criticisms of the previous UI being too AI, I’ve refactored it with a cleaner, pastel aesthetic. I kinda like it! tell me what i should change next -»> (readme has been humanified too…)
it was found that I accidentally committed using personal details and a local email. The gh repo has been wiped and recreated; here’s proof of the original repo and work. Thank you reviewers for your understanding.
As requested, README has been updated and rewritten by a human. There are also now three ways to install - directly through PyPI by doing pip install waifmark, or downloading waifmark-macos.zip and unzipping. there’s not a lot otherwise to say about this devlog
Ships:
Waifmark 2 is now public. This is a benchmarking utility for local (V)LLMs testing their local agentic and roleplay/persona capabilities, built using vllm on python. Waifmark 1 had existed before this, but this was my first attempt automating any kind of LLM behaviour and that was certainly challenging. Another important aspect with this benchmark was that since local AI is being used, cost isn’t a primary concern but rather response time. This led to a entire process of figuring out how to inject end-of-reasoning traces directly into the LLM but it was honestly too difficult and inconsistent to evaluate in the end. Similarly, manually reviewing over 200 flagged tasks was a pain and introduces a systematic uncertainty that is myself reviewing these questions that are mostly arbitrary rather than discrete (i.e. questions having multiple possible answers, being on a spectrum rather than definitive wrong/correct). In the end however, I feel like I’ve not made a niche benchmark but actually also a fully open-source benchmarking utility for people to play around with, test with their own test-bank and evaluate local large language models to find the one best tailored for their unique use cases. To test Waifmark 2, note that the github site is just a static site and you cannot directly benchmark from there. Follow the instructions on the static site / or README.md on github to run correctly....
|
1793245658.2278945
|
1793332058.2278945
|
|
55006
|
dignusdeo <> by @made0fjello | Stardance
|
made0fjello
|
0
|
25.88
|
0
|
[]
|
[{"post_id": 70663, "ts": "202 [{"post_id": 70663, "ts": "2026-09-19T15:27:09Z", "hours": 1.3333, "text": "(hopefully) did everything needed to finally ship this. Made the BOM, finalised README and all the other stuff. PLEASE PLEASE PLEASE accept it"}, {"post_id": 69513, "ts": "2026-09-17T07:00:11Z", "hours": 1.0667, "text": "Started to put things on the github repo in preparation for shipping. Basically the only thing left is to count bolts and make the BOM."}, {"post_id": 69110, "ts": "2026-09-16T12:02:56Z", "hours": 1.05, "text": "Made the bowden tube in the CAD model to determine if it will be functional for the full movement of the printhead and I’m not fully sure. Hopefully it will."}, {"post_id": 68796, "ts": "2026-09-15T19:24:27Z", "hours": 0.5542, "text": "Not much work today. Imported the main board and the PSU (hopefully will be recycled from a PC) as well as made a small size change for the cage to make in fit the parameters of the hole I’m putting it in."}, {"post_id": 68220, "ts": "2026-09-14T18:37:10Z", "hours": 2.6, "text": "Finished the Z axis mounts for the bed. They have ball joints (3d printed for cost saving) so the bed cam better change orientation for auto leveling and stuff. Only the electronics to go - FINAL STRETCH before ship!!!1!"}, {"post_id": 67454, "ts": "2026-09-13T15:44:25Z", "hours": 0.8872, "text": "Added mouting points to the bed and made the PEI plate. The only thing left to do is make the plastic mounting to the leadscrews. Last few steps before moving on from CAD. I am really excited to bring this project closer to reality!"}, {"post_id": 66805, "ts": "2026-09-12T18:11:46Z", "hours": 0.5667, "text": "Created the bed which I am going to get machined from aluminum as well as started to add heaters to it."}, {"post_id": 66077, "ts": "2026-09-11T17:21:50Z", "hours": 0.4833, "text": "Started work on the Z-axis by placing the rails on the cage and putting the motors in their positions."}, {"post_id": 65229, "ts": "2026-09-10T06:43:57Z", "hours": 0.9833, "text": "Finally finished the gantry on the eight day. Next thing on the list is the z axis along with the bed."}, {"post_id": 64750, "ts": "2026-09-09T12:00:19Z", "hours": 1.4003, "text": "Finished the toolhead by adding mounting for two radial fans and ducts for those fans. Tomorrow will hopefully be the last day of work on the gantry."}, {"post_id": 64397, "ts": "2026-09-08T18:54:39Z", "hours": 0.6167, "text": "Created a simple mounting bracket for the top screws of the 40mm fan and a radial fan on the side (duct for print cooling will be made later)."}, {"post_id": 63429, "ts": "2026-09-07T08:36:31Z", "hours": 1.8114, "text": "Added mount points for a 40mm fan on the x carriage and started work on mounting my x-axis pipe on the xy joints."}, {"post_id": 62976, "ts": "2026-09-06T15:28:11Z", "hours": 0.4267, "text": "Couldn’t do a lot today. Just finalised the mount point of the hotend to the x carriage."}, {"post_id": 62057, "ts": "2026-09-05T09:09:15Z", "hours": 2.05, "text": "Measured my pipe to use for the X-Axis and started work on the hotend mount which I’m going to get machined from aluminum to be more stable, less breakable and more reusable."}, {"post_id": 61554, "ts": "2026-09-04T15:01:40Z", "hours": 1.55, "text": "Finished the right idler and both the started both the x-axis mounts. Just need to figure out what kind of pipe i’m going to use instead of makerbeam on the x-axis (it needs to be light)."}, {"post_id": 60998, "ts": "2026-09-03T18:10:00Z", "hours": 1.2667, "text": "Did some more work on my gantry. I made the right motor mount and expanded the footprint of the belt to span my entire movement area (spoiler - it’s gonna be BIG)."}, {"post_id": 59628, "ts": "2026-09-01T15:26:25Z", "hours": 1.75, "text": "Adapted left belt idler and driver from the Voron Trident onto my cage. That’s about it…"}, {"post_id": 59032, "ts": "2026-08-31T16:49:25Z", "hours": 2.9, "text": "Added mounts for the extruder and filament spool. Attached hinges on the front wall of the cage so it can actually be opened. Also overhauled the entire cage to use a caliber of aluminum pipe i actually have."}, {"post_id": 55715, "ts": "2026-08-27T18:03:46Z", "hours": 2.5833, "text": "Built a simple aluminum pipe enclosure for the 3d printer and currently trying to adapt Voron Trident parts to form my corexy gantry. Enclosure uses acrylic sheets which will be cut to size. Hinges to be added for the from when i get the specific dimensions of pipe I will be working with."}]...
|
Title: dignusdeo <> by @made0fjello | Starda Title: dignusdeo <> by @made0fjello | Stardance
Devlogs:
Built a simple aluminum pipe enclosure for the 3d printer and currently trying to adapt Voron Trident parts to form my corexy gantry. Enclosure uses acrylic sheets which will be cut to size. Hinges to be added for the from when i get the specific dimensions of pipe I will be working with.
Added mounts for the extruder and filament spool. Attached hinges on the front wall of the cage so it can actually be opened. Also overhauled the entire cage to use a caliber of aluminum pipe i actually have.
Adapted left belt idler and driver from the Voron Trident onto my cage. That’s about it…
Did some more work on my gantry. I made the right motor mount and expanded the footprint of the belt to span my entire movement area (spoiler - it’s gonna be BIG).
Finished the right idler and both the started both the x-axis mounts. Just need to figure out what kind of pipe i’m going to use instead of makerbeam on the x-axis (it needs to be light).
Measured my pipe to use for the X-Axis and started work on the hotend mount which I’m going to get machined from aluminum to be more stable, less breakable and more reusable.
Couldn’t do a lot today. Just finalised the mount point of the hotend to the x carriage.
Added mount points for a 40mm fan on the x carriage and started work on mounting my x-axis pipe on the xy joints.
Created a simple mounting bracket for the top screws of the 40mm fan and a radial fan on the side (duct for print cooling will be made later).
Finished the toolhead by adding mounting for two radial fans and ducts for those fans. Tomorrow will hopefully be the last day of work on the gantry.
Finally finished the gantry on the eight day. Next thing on the list is the z axis along with the bed.
Started work on the Z-axis by placing the rails on the cage and putting the motors in their positions.
Created the bed which I am going to get machined from aluminum as well as started to add heaters to it.
Added mouting points to the bed and made the PEI plate. The only thing left to do is make the plastic mounting to the leadscrews. Last few steps before moving on from CAD. I am really excited to bring this project closer to reality!
Finished the Z axis mounts for the bed. They have ball joints (3d printed for cost saving) so the bed cam better change orientation for auto leveling and stuff. Only the electronics to go - FINAL STRETCH before ship!!!1!
Not much work today. Imported the main board and the PSU (hopefully will be recycled from a PC) as well as made a small size change for the cage to make in fit the parameters of the hole I’m putting it in.
Made the bowden tube in the CAD model to determine if it will be functional for the full movement of the printhead and I’m not fully sure. Hopefully it will.
Started to put things on the github repo in preparation for shipping. Basically the only thing left is to count bolts and make the BOM.
(hopefully) did everything needed to finally ship this. Made the BOM, finalised README and all the other stuff. PLEASE PLEASE PLEASE accept it...
|
1793137668.2736225
|
1793742468.2736225
|
|
28849
|
My awesome macropad! by @klemens | Stardance
|
klemens
|
0
|
25.86
|
0
|
[]
|
[{"post_id": 62484, "ts": "202 [{"post_id": 62484, "ts": "2026-09-05T21:06:27Z", "hours": 1.8172, "text": "Today I finished my complete code for the HackPad!! And tomorrow I´ll hopefully be able to ship my Project!! I will have to do the readme first though and I also think I need to put all of this code into a github project though, but I´ll see!"}, {"post_id": 60436, "ts": "2026-09-02T19:24:50Z", "hours": 2.0333, "text": "Alright now I am fully finished with the Lap Dance part and I feel like so close to finishing my HackPad! Today I had to fix some errors and put in the working keyCodes. Even though I did need about an Hour it went pretty flawless… Besides the fact that I had to cut out the Phone Manager because apparently MacOs has not got a Key Shortcut to answering/declining an incoming call. But I added a way cooler and by far more useful screenshot feature anyways! Tomorrow I´ll do the simple key actions such as Focuses, …."}, {"post_id": 59788, "ts": "2026-09-01T18:38:13Z", "hours": 1.4667, "text": "So I actually started with the Tap Dance code for the Keymap of my HackPad!! And after some time trying to understand it I was finally able to code it on my own and after double checking with claude if what I had written was correct I only did need to change some little details such as Keycodes and missing or misplaced brackets. So now I have completed the following: Media Player (TD_AUDIO), Call Manager (TD_PHONE), * Display Menu/ Shutdown * (TD_LOCK). If you see anything wrong or have suggestions of any kind please let me know!! PS: Don´t mind the notes (except you do speak german) because I wrote them in german so I could understand them better."}, {"post_id": 59682, "ts": "2026-09-01T16:33:17Z", "hours": 1.3167, "text": "Worked on the Keyboard.json file and finally completed it (with a little assistance from Claude) - Anyways now I´ll start doing the rules.mk and the keymap file and just hope that everything works out as planned!! Hopefully I´ll be able to do at least the beginigs of the keymap today…"}, {"post_id": 49776, "ts": "2026-08-18T18:19:11Z", "hours": 5.4933, "text": "So, after some troubles while installing Homebrew I finally started doing the software… I am currently finished with the base files such as the Keyboard.json, and some more in order for the display to work. I hope i´ll get to starting with the actual functions tomorrow or on thursday!"}, {"post_id": 48810, "ts": "2026-08-17T10:56:03Z", "hours": 1.25, "text": "I finished the Case design 100% now. I cleaned overlapping objects and rounded some edges, now I´ll start programming the software!!"}, {"post_id": 47108, "ts": "2026-08-14T19:13:42Z", "hours": 0.3, "text": "Rest of the time…"}, {"post_id": 46928, "ts": "2026-08-14T14:22:54Z", "hours": 2.8333, "text": "First Design of Case Today i finished my first Design for the HackPad case. I am honestly pretty satisfied with the result. Please let me know your opinion and if you have proposals for the case design, I´d be verry happy to read them! Just so you get a better Idea for the Case itself: The Case should be printed in a very clean white with a light blue . It´s this white-ish and dark blue colour because I couldn´t find light blue and a regular white… I think i am finally gonna start coding the software tomorrow! PS: **The Display is just white because the pcb is one object in Fusion and I can´t give it two colours."}, {"post_id": 46544, "ts": "2026-08-13T20:57:19Z", "hours": 4.6336, "text": "Case + 3D Model of PCB So, originally I only wanted to export the PCB 3D Modell to Fusion and then work on the Lid of the Box tommorow and in the end I am going to do so… But I didn´t think I´d be working in the export for 3h or so. I mean who could have even guessed that I would need to redirect all the paths in KiCad to get the 3d models of the key switch etc. But in the End, and after many many conversations with Claude, I did direct all the Paths to the right 3D Models. And now the easy part - at least thats what I thought… Turns out it is indeed pretty Hard and not that easy for my computer to import all the things from my PCB to Fusion. So 30 minutes and about 3 crashes later I merged parts of the PCB into one larger object which was now easier to move and copy into the case file. One tiny problem that I still haven´t been able to solve is my OLED Display Model because its made out of more than 1000 different little bodies. So I guess I´ll have to download a new one tomorrow. And besides my first tries to cut out holes for keyswitches, display and more that´s pretty much it for today. Thanks for reading!"}, {"post_id": 45834, "ts": "2026-08-12T15:47:19Z", "hours": 2.1833, "text": "Turns out: it is not that hard to install Fusion! I just did the lower part and I think I will do the lower part tomorrow or so… Didn´t do much other thing than designing the case."}, {"post_id": 45751, "ts": "2026-08-12T13:22:31Z", "hours": 1.7389, "text": "Today I Re-Built my PCB because I put the port of the Xiao-Controller facing inwards the first time but I only did notice that after I tried to install Fusion to design the case. I still have not been able to install Fusion, so if somebody knows how to please let me know! But back to Rebuilding the PCB. After I had figured out that i needed to turn the Xiao-Controller I also thought that it might be helpful to put the diodes on the backside of the PCB. So I did all of that and rewired the whole thing. I´ll attach a picture of the final result to this devlog. Also I tried to link two timelapses I recorded with Lookout to my Hackatime projects, because I closed the recording tab on accident while I was still recording, but I have not been able to figure out how to do that. So I guess thats almost 4h lost :( . The next step would be to design the case and maybe I will do that today, after I hopefully figured out how to install Fusion. Will definitely post another devlog as soon as I started to design the case!"}, {"post_id": 26916, "ts": "2026-07-11T23:54:34Z", "hours": 0.7894, "text": "HackPad Part 1 - I think I downloaded an old version of KiCad so I might have to re install. But at least I’ve managed to get all the footprints and symbols into the library… My plan for Tommorrow is to finish the schematic and start working on the actual pcb. Might be a little too confident but who knows."}]...
|
Title: My awesome macropad! by @klemens | Stardanc Title: My awesome macropad! by @klemens | Stardance
Devlogs:
HackPad Part 1 - I think I downloaded an old version of KiCad so I might have to re install. But at least I’ve managed to get all the footprints and symbols into the library… My plan for Tommorrow is to finish the schematic and start working on the actual pcb. Might be a little too confident but who knows.
Today I Re-Built my PCB because I put the port of the Xiao-Controller facing inwards the first time but I only did notice that after I tried to install Fusion to design the case. I still have not been able to install Fusion, so if somebody knows how to please let me know! But back to Rebuilding the PCB. After I had figured out that i needed to turn the Xiao-Controller I also thought that it might be helpful to put the diodes on the backside of the PCB. So I did all of that and rewired the whole thing. I´ll attach a picture of the final result to this devlog. Also I tried to link two timelapses I recorded with Lookout to my Hackatime projects, because I closed the recording tab on accident while I was still recording, but I have not been able to figure out how to do that. So I guess thats almost 4h lost :( . The next step would be to design the case and maybe I will do that today, after I hopefully figured out how to install Fusion. Will definitely post another devlog as soon as I started to design the case!
Turns out: it is not that hard to install Fusion! I just did the lower part and I think I will do the lower part tomorrow or so… Didn´t do much other thing than designing the case.
Case + 3D Model of PCB So, originally I only wanted to export the PCB 3D Modell to Fusion and then work on the Lid of the Box tommorow and in the end I am going to do so… But I didn´t think I´d be working in the export for 3h or so. I mean who could have even guessed that I would need to redirect all the paths in KiCad to get the 3d models of the key switch etc. But in the End, and after many many conversations with Claude, I did direct all the Paths to the right 3D Models. And now the easy part - at least thats what I thought… Turns out it is indeed pretty Hard and not that easy for my computer to import all the things from my PCB to Fusion. So 30 minutes and about 3 crashes later I merged parts of the PCB into one larger object which was now easier to move and copy into the case file. One tiny problem that I still haven´t been able to solve is my OLED Display Model because its made out of more than 1000 different little bodies. So I guess I´ll have to download a new one tomorrow. And besides my first tries to cut out holes for keyswitches, display and more that´s pretty much it for today. Thanks for reading!
First Design of Case Today i finished my first Design for the HackPad case. I am honestly pretty satisfied with the result. Please let me know your opinion and if you have proposals for the case design, I´d be verry happy to read them! Just so you get a better Idea for the Case itself: The Case should be printed in a very clean white with a light blue . It´s this white-ish and dark blue colour because I couldn´t find light blue and a regular white… I think i am finally gonna start coding the software tomorrow! PS: **The Display is just white because the pcb is one object in Fusion and I can´t give it two colours.
Rest of the time…
I finished the Case design 100% now. I cleaned overlapping objects and rounded some edges, now I´ll start programming the software!!
So, after some troubles while installing Homebrew I finally started doing the software… I am currently finished with the base files such as the Keyboard.json, and some more in order for the display to work. I hope i´ll get to starting with the actual functions tomorrow or on thursday!
Worked on the Keyboard.json file and finally completed it (with a little assistance from Claude) - Anyways now I´ll start doing the rules.mk and the keymap file and just hope that everything works out as planned!! Hopefully I´ll be able to do at least the beginigs of the keymap today…
So I actually started with the Tap Dance code for the Keymap of my HackPad!! And after some time trying to understand it I was finally able to code it on my own and after double checking with claude if what I had written was correct I only did need to change some little details such as Keycodes and missing or misplaced brackets. So now I have completed the following: Media Player (TD_AUDIO), Call Manager (TD_PHONE), * Display Menu/ Shutdown * (TD_LOCK). If you see anything wrong or have suggestions of any kind please let me know!! PS: Don´t mind the notes (except you do speak german) because I wrote them in german so I could understand them better.
Alright now I am fully finished with the Lap Dance part and I feel like so close to finishing my HackPad! Today I had to fix some errors and put in the working keyCodes. Even though I did need about an Hour it went pretty flawless… Besides the fact that I had to cut out the Phone Manager because apparently MacOs has not got a Key Shortcut to answering/declining an incoming call. But I added a way cooler and by far more useful screenshot feature anyways! Tomorrow I´ll do the simple key actions such as Focuses, ….
Today I finished my complete code for the HackPad!! And tomorrow I´ll hopefully be able to ship my Project!! I will have to do the readme first though and I also think I need to put all of this code into a github project though, but I´ll see!...
|
1792590651.2413623
|
1793195451.2413623
|
|
43286
|
Weather Satellite and FM radio by @Boiga | Stardan Weather Satellite and FM radio by @Boiga | Stardance...
|
Boiga
|
0
|
25.86
|
0
|
[]
|
[{"post_id": 54184, "ts": "202 [{"post_id": 54184, "ts": "2026-08-25T01:54:07Z", "hours": 1.6667, "text": "Devlog 7(Done!!!) Lets gooo, I finished the board(I think, I am gonna do a second final pass), I just need to finalize the BOM and submit for funding."}, {"post_id": 52757, "ts": "2026-08-23T03:06:39Z", "hours": 5.9669, "text": "Devlog 6 Got a ton of work done in a single session today. Finished the local oscillator(LO) for the intermediary mixer, synthesizer, LO for the IF mixer, routed I and Q differentials to the ADC, wired up the ADC, added the debug sma port for the filters, added the 50ohm test line to the edge of the board. Stuff that changed I discovered that the + and − connections for the Q differential pair were opposite to what the ADC expects. After thoroughly reviewing the ADC datasheet, I decided that I can intentionally swap the differential inputs. This will invert the polarity of the Q component, which I plan to correct in the FPGA by negating the Q samples. What is left All that is left is for me to create the usb-C circuit as well as set up the ldos for the different power rails. As well as add the remaining test points and the debug LED. I also need to connect the pin headers for the stm nucleo controller board. Thoughts Debating on how I should connect the fpga dev board. I know that the frequency on the spi clock will be running at 105mhz (rise time is 4ns) as per the ADC’s datasheet. That is pretty high I feel for standard arduino jumper wires so I chose to solder wires however this still scares me a little. I am unsure of soldering the fpga’s header pins directly to the board either because of how difficult it will be to remove it afterwards. If anyone has any suggestions or ideas I would be really thankfull. Thank you."}, {"post_id": 49331, "ts": "2026-08-18T02:50:21Z", "hours": 4.3167, "text": "Devlog 5 Not much has been added since the previous devlog but I felt like it was necessary because a significant architecture change has been made. Filters After getting feedback in the comments on my previous devlog and thinking about the project’s deadline, I decided it was better to remove the post-lna filters from the design. I reviewed all the powerfull transmitting stations near me and came to the conclusion that the removal of the post-lna filters would not be detrimental. However, the main reasoning behind removing the filters was that they added uneccessary simulation and design time that was wearing down on me. This also led to me having to take a 2 day break and work on my personal flight computer side project rather than forcing myself to push through and potentially burn out. Tuner chip I finished laying out and wiring the balun that turns the single wire RF signal into a differential signal. I am currently trying to connect it to the CMX992 receiver chip without ruining its matching as well as blocking other important pins on the chip. I have found this to be very difficult. Also completely unrelated the network kinda looks like a rose now which is cool. Thanks Also I just wanted to thank @spheresva again for their input as it helped me a lot."}, {"post_id": 45517, "ts": "2026-08-12T01:54:18Z", "hours": 5.0336, "text": "Devlog 4 I finally started laying out the PCB for the SDR. This has honestly been a lot more difficult than I expected, especially with the filters. I couldn’t find many good examples of how to actually lay out lumped component Butterworth filters. There are tons of examples of how to design them and calculate the component values, but not many showing how you are supposed to physically place all the inductors and capacitors on the board. So I’m mostly figuring it out as I go. I also added a 2-way RF switch after the first filter bank that goes to an SMA connector. This means I can connect a VNA directly to the filters and actually see how well I made them instead of having to guess what is wrong if the SDR doesn’t work. The control pins for the switches were also annoying because they are right in the middle of the filter bank. I had to figure out how to route them without having their return currents interfere with the RF return currents from the filters. I ended up moving the filters around a bit, which also let me shorten some of the RF traces. I also had to add another connector for the Nucleo board because I had to flip the orientation of the second RF switch. Because of that, the second switch needs to be controlled separately from the first one. Right now I’m just adding the stitching vias around the first filter bank. After that I’ll move on to the LNA and the second filter bank."}, {"post_id": 43076, "ts": "2026-08-08T04:37:14Z", "hours": 4.0333, "text": "Devlog #3 I know I just posted a devlog yesterday but I hit a huge milestone today. Today I did a huge session to add all the footprints to all 260 parts! I am now ready to actually start laying out the board and doing the actual sick RF stuff. Also I added a couple things for future debugging such as leds, testpoints, jumpers, and 0 ohm resistors."}, {"post_id": 42292, "ts": "2026-08-06T22:39:35Z", "hours": 4.5592, "text": "Devlog #2 – Finishing the Schematic I finally reached a pretty big milestone: the entire schematic is finished. I still need to add footprints for all the parts and start PCB layout, but the entire radio is now connected together electrically. Getting Too Focused on RF One funny thing that happened while designing this was that I got so focused on the RF side of the project that I basically forgot about something kinda important: power. I was spending so much time looking at filters, amplifiers, mixers, and oscillators that I completely forgot that none of those parts work without proper power rails. When I went back through everything, I also realized I had made another beginner mistake. Earlier in the project I was labeling rails like VDD and VDDA, but at this level that isn’t really enough anymore. Different chips need different voltages, and some have separate analog and digital supplies, so I need to clearly label exactly what voltage each rail is and what it powers. Simplifying the Local Oscillator The last part of the schematic that gave me trouble was the IF local oscillator for the internal mixer in the CMX992. At first I thought I would have to design a bunch of extra filtering and signal conditioning around it, which was making that section way more complicated than I wanted for a V1. After reading through the datasheet more, I realized I could just use another CMOS oscillator to generate the signal I needed. Changing the RF Design I also made a few big changes to the RF front end. Originally the plan was for the SDR to cover 50 MHz–450 MHz, but I expanded that to 50 MHz–850 MHz. This lets the radio cover a much larger range of signals, including: FM radio Aircraft communications NOAA weather satellites I also changed the filtering strategy: The pre-LNA filters are now 3rd-order Butterworth filters. Since these are before the LNA, keeping insertion loss low is extremely important because any loss here directly hurts sensitivity. The post-LNA filters are now 5th-order Elliptic filters. Since the signal has already been amplified, I can focus more on getting stronger rejection of unwanted signals. Basically, the first filters are focused on keeping weak signals alive, while the second filters are focused on cleaning up the signal afterward. No USB Data Another design decision I made was removing USB data from the USB-C connector. The board is not meant to directly communicate with a computer. The SDR will communicate through an FPGA and STM32, which handle the digital processing and control. Because of that, the USB-C port is only there for power. This simplifies the board and removes unnecessary routing. What’s Next? Add footprints to all components Verify every footprint against the datasheets Start PCB layout Begin designing the physical board"}, {"post_id": 40302, "ts": "2026-08-03T18:52:23Z", "hours": 0.2878, "text": "Devlog #1 – Wideband Software Defined Radio I started this project about three weeks before I found out about Hack Club Stardance, so I’m jumping in a little late with the documentation. Instead of trying to recreate everything I’ve already done, I’m going to use these devlogs to document the project from where it is now and everything going forward. Project Goal The goal of this project is to build a custom Software Defined Radio (SDR) capable of receiving signals from 50 MHz to 800 MHz. Instead of relying on a single integrated tuner chip, I’m designing much of the radio myself so I can better understand how modern radio hardware actually works. Current Progress So far I have finished most of the system architecture and decided on the overall signal chain, including: Bandpass filter bank Low-noise amplifier Quadrature receiver FPGA-based digital signal processing Right now I’m working on one of the most important parts of the design: the local oscillator. This circuit generates the precise frequencies needed for the receiver to tune across the spectrum. Next Steps Finalize the local oscillator design Select the frequency synthesizer and reference oscillator Finish the receiver front-end Begin schematic capture Start PCB layout"}]...
|
Title: Weather Satellite and FM radio by @Boiga | Title: Weather Satellite and FM radio by @Boiga | Stardance
Devlogs:
Devlog #1 – Wideband Software Defined Radio I started this project about three weeks before I found out about Hack Club Stardance, so I’m jumping in a little late with the documentation. Instead of trying to recreate everything I’ve already done, I’m going to use these devlogs to document the project from where it is now and everything going forward. Project Goal The goal of this project is to build a custom Software Defined Radio (SDR) capable of receiving signals from 50 MHz to 800 MHz. Instead of relying on a single integrated tuner chip, I’m designing much of the radio myself so I can better understand how modern radio hardware actually works. Current Progress So far I have finished most of the system architecture and decided on the overall signal chain, including: Bandpass filter bank Low-noise amplifier Quadrature receiver FPGA-based digital signal processing Right now I’m working on one of the most important parts of the design: the local oscillator. This circuit generates the precise frequencies needed for the receiver to tune across the spectrum. Next Steps Finalize the local oscillator design Select the frequency synthesizer and reference oscillator Finish the receiver front-end Begin schematic capture Start PCB layout
Devlog #2 – Finishing the Schematic I finally reached a pretty big milestone: the entire schematic is finished. I still need to add footprints for all the parts and start PCB layout, but the entire radio is now connected together electrically. Getting Too Focused on RF One funny thing that happened while designing this was that I got so focused on the RF side of the project that I basically forgot about something kinda important: power. I was spending so much time looking at filters, amplifiers, mixers, and oscillators that I completely forgot that none of those parts work without proper power rails. When I went back through everything, I also realized I had made another beginner mistake. Earlier in the project I was labeling rails like VDD and VDDA, but at this level that isn’t really enough anymore. Different chips need different voltages, and some have separate analog and digital supplies, so I need to clearly label exactly what voltage each rail is and what it powers. Simplifying the Local Oscillator The last part of the schematic that gave me trouble was the IF local oscillator for the internal mixer in the CMX992. At first I thought I would have to design a bunch of extra filtering and signal conditioning around it, which was making that section way more complicated than I wanted for a V1. After reading through the datasheet more, I realized I could just use another CMOS oscillator to generate the signal I needed. Changing the RF Design I also made a few big changes to the RF front end. Originally the plan was for the SDR to cover 50 MHz–450 MHz, but I expanded that to 50 MHz–850 MHz. This lets the radio cover a much larger range of signals, including: FM radio Aircraft communications NOAA weather satellites I also changed the filtering strategy: The pre-LNA filters are now 3rd-order Butterworth filters. Since these are before the LNA, keeping insertion loss low is extremely important because any loss here directly hurts sensitivity. The post-LNA filters are now 5th-order Elliptic filters. Since the signal has already been amplified, I can focus more on getting stronger rejection of unwanted signals. Basically, the first filters are focused on keeping weak signals alive, while the second filters are focused on cleaning up the signal afterward. No USB Data Another design decision I made was removing USB data from the USB-C connector. The board is not meant to directly communicate with a computer. The SDR will communicate through an FPGA and STM32, which handle the digital processing and control. Because of that, the USB-C port is only there for power. This simplifies the board and removes unnecessary routing. What’s Next? Add footprints to all components Verify every footprint against the datasheets Start PCB layout Begin designing the physical board
Devlog #3 I know I just posted a devlog yesterday but I hit a huge milestone today. Today I did a huge session to add all the footprints to all 260 parts! I am now ready to actually start laying out the board and doing the actual sick RF stuff. Also I added a couple things for future debugging such as leds, testpoints, jumpers, and 0 ohm resistors.
Devlog 4 I finally started laying out the PCB for the SDR. This has honestly been a lot more difficult than I expected, especially with the filters. I couldn’t find many good examples of how to actually lay out lumped component Butterworth filters. There are tons of examples of how to design them and calculate the component values, but not many showing how you are supposed to physically place all the inductors and capacitors on the board. So I’m mostly figuring it out as I go. I also added a 2-way RF switch after the first filter bank that goes to an SMA connector. This means I can connect a VNA directly to the filters and actually see how well I made them instead of having to guess what is wrong if the SDR doesn’t work. The control pins for the switches were also annoying because they are right in the middle of the filter bank. I had to figure out how to route them without having their return currents interfere with the RF return currents from the filters. I ended up moving the filters around a bit, which also let me shorten some of the RF traces. I also had to add another connector for the Nucleo board because I had to flip the orientation of the second RF switch. Because of that, the second switch needs to be controlled separately from the first one. Right now I’m just adding the stitching vias around the first filter bank. After that I’ll move on to the LNA and the second filter bank.
Devlog 5 Not much has been added since the previous devlog but I felt like it was necessary because a significant architecture change has been made. Filters After getting feedback in the comments on my previous devlog and thinking about the project’s deadline, I decided it was better to remove the post-lna filters from the design. I reviewed all the powerfull transmitting stations near me and came to the conclusion that the removal of the post-lna filters would not be detrimental. However, the main reasoning behind removing the filters was that they added uneccessary simulation and design time that was wearing down on me. This also led to me having to take a 2 day break and work on my personal flight computer side project rather than forcing myself to push through and potentially burn out. Tuner chip I finished laying out and wiring the balun that turns the single wire RF signal into a differential signal. I am currently trying to connect it to the CMX992 receiver chip without ruining its matching as well as blocking other important pins on the chip. I have found this to be very difficult. Also completely unrelated the network kinda looks like a rose now which is cool. Thanks Also I just wanted to thank @spheresva again for their input as it helped me a lot.
Devlog 6 Got a ton of work done in a single session today. Finished the local oscillator(LO) for the intermediary mixer, synthesizer, LO for the IF mixer, routed I and Q differentials to the ADC, wired up the ADC, added the debug sma port for the filters, added the 50ohm test line to the edge of the board. Stuff that changed I discovered that the + and − connections for the Q differential pair were opposite to what the ADC expects. After thoroughly reviewing the ADC datasheet, I decided that I can intentionally swap the differential inputs. This will invert the polarity of the Q component, which I plan to correct in the FPGA by negating the Q samples. What is left All that is left is for me to create the usb-C circuit as well as set up the ldos for the different power rails. As well as add the remaining test points and the debug LED. I also need to connect the pin headers for the stm nucleo controller board. Thoughts Debating on how I should connect the fpga dev board. I know that the frequency on the spi clock will be running at 105mhz (rise time is 4ns) as per the ADC’s datasheet. That is pretty high I feel for standard arduino jumper wires so I chose to solder wires however this still scares me a little. I am unsure of soldering the fpga’s header pins directly to the board either because of how difficult it will be to remove it afterwards. If anyone has any suggestions or ideas I would be really thankfull. Thank you.
Devlog 7(Done!!!) Lets gooo, I finished the board(I think, I am gonna do a second final pass), I just need to finalize the BOM and submit for funding....
|
1793213371.6840127
|
1793818171.6840127
|
|
18517
|
Spielo by @mxcrx | Stardance
|
mxcrx
|
0
|
25.84
|
0
|
[]
|
[{"post_id": 12123, "ts": "202 [{"post_id": 12123, "ts": "2026-06-19T20:11:46Z", "hours": 4.24, "text": "Devlog #2 TL;DR Friends can now be invited directly from a room. A toast notification allows accepting or declining the invite. A new admin page was added to manage users, including role changes and banning. Spielo is now publicly available on GitHub , and a demo version is online. Direct Friend Invites I implemented a feature that allows inviting friends directly from within a room. For this, I created a new socket event invite_friend , which is emitted by the client when a button is pressed. The button only appears if the friend is online and the user is currently in a room, since the friend overlay can be accessed both from the lobby and from within a room. On the server side, several validations are performed: rate limiting (3 invites per 5 seconds) user must be online user must not already be in the same room If all conditions are met, the invite is sent via the friend_invite event. The sender also receives a confirmation that the invitation was successfully delivered. The receiving user sees a toast notification ( inviteToastContainer ) that stays visible for 15 seconds. They can either accept or decline the invite. Accepting the invite automatically moves them into the room, while declining simply closes the notification. This significantly improves usability, as users no longer need to manually share room codes. Admin Page I created a new admin page to manage all registered users. The admin section is placed in a separate admin folder with its own index.html , keeping it isolated from the main client. This improves the overall project structure and separation of concerns. In userService.js , I added three asynchronous functions: updateUser(userId, newRole, isBanned) getAllUsers() getBannedStatus(userId) The admin page includes a simple authentication check using a JWT token and user ID stored in localStorage . The server verifies whether the user has the admin role before returning sensitive data. The client renders a table sorted by created_at . It displays: user_id username role is_banned Additionally, two actions are available: toggle role between user and admin ban users by setting is_banned A protection mechanism was added to prevent users from modifying their own account (e.g., self-demotion or self-ban). Ban Check To make is_banned effective, a ban check was added during login. Users with a banned account are now prevented from logging in. Additionally, if a user is already authenticated (valid token stored in localStorage ), the server rejects the token if the account has been banned. However, automatic logout for already active sessions still needs to be implemented. Documentation, GitHub & Demo Website The remaining time was spent improving documentation. The README was rewritten (a preview GIF is still missing), and the repository was made public. A separate demo environment was also created to avoid exposing my private one for testing purposes."}, {"post_id": 11478, "ts": "2026-06-18T19:13:52Z", "hours": 21.6006, "text": "Devlog #1 Overview Spielo is a web-based multiplayer gaming platform focused on real-time browser games, starting with an UNO-styled card game. The goal of the project is to create a smooth, fast and social multiplayer experience where players can join games instantly, interact with others and track their progress over time. The system includes a custom backend with real-time socket communication, a database for persistent data such as user accounts and match history and a responsive frontend. In the future, Spielo is intended to grow beyond a single game into multiple games with even more features. Initial development period This initial development period phase focused on building the core foundation of the platform and turning an early prototype into a functional multiplayer system with user accounts, stable gameplay and basic social features. Core Game and multiplayer system The first major step was implementing the UNO-style game mechanics and establishing a working real-time multiplayer system. This included room management, turn handling and basic game flow logic. The socket-based architecture was refined to ensure stable synchronization between players and proper handling of edge cases such as disconnects and reconnects. Game state management was also improved to prevent inconsistent behavior during active matches. Authentication and user system An user system was introduced with authentication and authorization for both registered and guest users. Input validation and error handling were improved to make login and registration more stable and secure. User profiles were added, allowing players to manage and display their identity within Spielo. This also laid the foundation for persistent user-related features. Match tracking A match history system was implemented and connected to the database. This allows completed games to be stored and later used for statistics or profile-related features. Friends and social features A friends system was added, enabling users to search for others, send and manage friend requests and maintain a list of connected players. This required both backend services and frontend UI components, as well as database integration for persistent relationships. Additionally, profile updates are now propagated so that friends automatically see updated user information in real time. Gameplay improvements and edge cases Several improvements were made to refine gameplay behavior and fix edge case: improved handling of UNO calls and challenges, including timing validation fixed incorrect win handling in single-player edge cases added better control for wild card color selection, including the ability to cancel a selection improved game flow logic and turn handling User experience and interface improvements The frontend was significantly refined to improve usability across devices: responsive design improvements for mobile and large screens collapsible chat interface for better space usage improved scrolling behavior on mobile devices cleaner status messaging using temporary popup notifications instead of persistent headers improved animations for winner display and game events better handling of forms and inputs (e.g. Enter-to-submit support) Bug fixes and stability improvements Multiple bugs were fixed to improve stability and consistency: logout behavior corrected guest user restrictions enforced properly display name inconsistencies resolved UI spacing and layout issues fixed error handling improved in authentication and game systems Summary In this initial development phase, Spielo evolved from a basic multiplayer prototype into a structured and feature-complete foundation. The project now includes a working real-time game engine, persistent user system, match tracking and early social features, along with a significantly improved user interface and stability layer."}]...
|
Title: Spielo by @mxcrx | Stardance
Devlogs:
Devl Title: Spielo by @mxcrx | Stardance
Devlogs:
Devlog #1 Overview Spielo is a web-based multiplayer gaming platform focused on real-time browser games, starting with an UNO-styled card game. The goal of the project is to create a smooth, fast and social multiplayer experience where players can join games instantly, interact with others and track their progress over time. The system includes a custom backend with real-time socket communication, a database for persistent data such as user accounts and match history and a responsive frontend. In the future, Spielo is intended to grow beyond a single game into multiple games with even more features. Initial development period This initial development period phase focused on building the core foundation of the platform and turning an early prototype into a functional multiplayer system with user accounts, stable gameplay and basic social features. Core Game and multiplayer system The first major step was implementing the UNO-style game mechanics and establishing a working real-time multiplayer system. This included room management, turn handling and basic game flow logic. The socket-based architecture was refined to ensure stable synchronization between players and proper handling of edge cases such as disconnects and reconnects. Game state management was also improved to prevent inconsistent behavior during active matches. Authentication and user system An user system was introduced with authentication and authorization for both registered and guest users. Input validation and error handling were improved to make login and registration more stable and secure. User profiles were added, allowing players to manage and display their identity within Spielo. This also laid the foundation for persistent user-related features. Match tracking A match history system was implemented and connected to the database. This allows completed games to be stored and later used for statistics or profile-related features. Friends and social features A friends system was added, enabling users to search for others, send and manage friend requests and maintain a list of connected players. This required both backend services and frontend UI components, as well as database integration for persistent relationships. Additionally, profile updates are now propagated so that friends automatically see updated user information in real time. Gameplay improvements and edge cases Several improvements were made to refine gameplay behavior and fix edge case: improved handling of UNO calls and challenges, including timing validation fixed incorrect win handling in single-player edge cases added better control for wild card color selection, including the ability to cancel a selection improved game flow logic and turn handling User experience and interface improvements The frontend was significantly refined to improve usability across devices: responsive design improvements for mobile and large screens collapsible chat interface for better space usage improved scrolling behavior on mobile devices cleaner status messaging using temporary popup notifications instead of persistent headers improved animations for winner display and game events better handling of forms and inputs (e.g. Enter-to-submit support) Bug fixes and stability improvements Multiple bugs were fixed to improve stability and consistency: logout behavior corrected guest user restrictions enforced properly display name inconsistencies resolved UI spacing and layout issues fixed error handling improved in authentication and game systems Summary In this initial development phase, Spielo evolved from a basic multiplayer prototype into a structured and feature-complete foundation. The project now includes a working real-time game engine, persistent user system, match tracking and early social features, along with a significantly improved user interface and stability layer.
Devlog #2 TL;DR Friends can now be invited directly from a room. A toast notification allows accepting or declining the invite. A new admin page was added to manage users, including role changes and banning. Spielo is now publicly available on GitHub , and a demo version is online. Direct Friend Invites I implemented a feature that allows inviting friends directly from within a room. For this, I created a new socket event invite_friend , which is emitted by the client when a button is pressed. The button only appears if the friend is online and the user is currently in a room, since the friend overlay can be accessed both from the lobby and from within a room. On the server side, several validations are performed: rate limiting (3 invites per 5 seconds) user must be online user must not already be in the same room If all conditions are met, the invite is sent via the friend_invite event. The sender also receives a confirmation that the invitation was successfully delivered. The receiving user sees a toast notification ( inviteToastContainer ) that stays visible for 15 seconds. They can either accept or decline the invite. Accepting the invite automatically moves them into the room, while declining simply closes the notification. This significantly improves usability, as users no longer need to manually share room codes. Admin Page I created a new admin page to manage all registered users. The admin section is placed in a separate admin folder with its own index.html , keeping it isolated from the main client. This improves the overall project structure and separation of concerns. In userService.js , I added three asynchronous functions: updateUser(userId, newRole, isBanned) getAllUsers() getBannedStatus(userId) The admin page includes a simple authentication check using a JWT token and user ID stored in localStorage . The server verifies whether the user has the admin role before returning sensitive data. The client renders a table sorted by created_at . It displays: user_id username role is_banned Additionally, two actions are available: toggle role between user and admin ban users by setting is_banned A protection mechanism was added to prevent users from modifying their own account (e.g., self-demotion or self-ban). Ban Check To make is_banned effective, a ban check was added during login. Users with a banned account are now prevented from logging in. Additionally, if a user is already authenticated (valid token stored in localStorage ), the server rejects the token if the account has been banned. However, automatic logout for already active sessions still needs to be implemented. Documentation, GitHub & Demo Website The remaining time was spent improving documentation. The README was rewritten (a preview GIF is still missing), and the repository was made public. A separate demo environment was also created to avoid exposing my private one for testing purposes....
|
1793217279.7797441
|
1793822079.7797441
|
|
34484
|
YashBoard by @SimplifCoder | Stardance
|
SimplifCoder
|
0
|
25.83
|
0
|
[]
|
[{"post_id": 49057, "ts": "202 [{"post_id": 49057, "ts": "2026-08-17T17:27:31Z", "hours": 1.6447, "text": "Devlog Final Hey guys its been a great journey, But this is the final devlog for this project! Im quite sure some or at least one of you might have rly liked the project, but overall, thank you for being with me, through out the journey, Its been a great experience making this project! Cyall BYE!!!!!"}, {"post_id": 46235, "ts": "2026-08-13T10:28:45Z", "hours": 2.2003, "text": "Devlog #17 Hello guys! So, how is your day going? I realized that frequent devlogs might be confusing or annoying, so I set a limit for myself; Cant post a devlog unless I have 1 and a half hours logged. As you can see, this one has ~2 hr logged. So I can post this. So what I did: Finished up the PCB by adding spacebar balancers (Me No Like Wobbly Keys ) Made a cool thingy for the keyboard shell, like it has this triangular height-increasing thingy Figured this out —–> <—– hover your cursor on this sticker Made the entire thing look beautiful Recovered my sleep schedule Made a major fix in Onshape where the actual frame wouldn’t fit in the shell Added a watermark on all the parts (Except for the keycaps ) So thank y’all if you read all this , And pls do give suggestions. Always happy to improve"}, {"post_id": 45075, "ts": "2026-08-11T10:46:37Z", "hours": 6.1717, "text": "Devlog #16 So guys! You all know I’ve been offline for a bunch of days, and for those who have been with me and supporting me ( @mersecske ) I have disappointed y’all . But! I have been grinding, as you can see, this devlog is 6 hours! So what I did all these days: I completely redid the structure of the PCB, this time with a 6 mm gap between each key horizontally (longer keys not counted) fixed a few bugs, from 392 DRC errors to… 376 errors Made the frame for the keyboard in Onshape and got good grades ( mostly ) Worsened my sleep schedule Now right-clicks everything to cancel it (doesn’t work ) Welp, that’s it! Thank you if you’ve read all this, and please lmk any suggestions, always happy to improve!"}, {"post_id": 39308, "ts": "2026-08-02T06:24:53Z", "hours": 0.9836, "text": "Devlog #15 As of today I made an awesome addition, an built in screen, so the next time your gaming and lose a match then slam your desk the screen turns on and shows a powerful message, like “Patience is a virtue” or sumin like that. I’m also planning to add a speaker so it can talk to you, but lets see how that goes?"}, {"post_id": 38771, "ts": "2026-08-01T10:26:29Z", "hours": 2.3811, "text": "Devlog #14 So all these days I’ve been grinding, 5 mins a day, and now that exam week is over, I can come back to the project and work properly What I have achieved in these few days: Completed Gravity Falls seasons 1 and 2 Finished a cooler for laptops cuz sometimes they go brrrrrrrrrrrr Started on the frame of the keyboard (Biggest challenge yet…) Made an armrest… Wrist-rest? (Trademark Pending) Summoned coffee and ruined my sleep schedule. This is gonna be a longer-than-usual devlog cuz it’s been updated over a period of time, not all at once Also, this cooler I’m working on is like kinda rudimentary uses wires instead of PCBs, but I think PCBs are overkill for the cooler. The frame for the keyboard part isn’t going so well, but shoutout @mersecske for helping me! Overall, I’m thinking of adding another gimongus addition to the keyboard and cooler set, and a magnetic built-in mouse. Like, you click a button, the bare mouse PCB comes out, then you snap off the parts of the mouse from the keyboard (or cooler haven’t decided yet), and then you assemble it in 5 mins; it’s a niche feature, but maybe it could help while travelling? Who knows? LMK what y’all think abt this idea, Cyall byeeeeeeeee!"}, {"post_id": 34604, "ts": "2026-07-25T13:56:20Z", "hours": 0.4658, "text": "Devlog #13 Today is a wonderful day, my exam went wonderful, and so did the creation of the “Goofcap v2” its custom made, ill add some more stuff into it as we go down further into the project, but lmk if it’s good"}, {"post_id": 34036, "ts": "2026-07-24T13:47:35Z", "hours": 0.4006, "text": "Devlog #12 Sry guys, couldn’t do much today. Got exam rush, I’ll be doing this properly after the end of this month So I made a frame for my keyboard, with built-in cloth so your greasy fingers don’t mess up the keyboard. byeeeeee"}, {"post_id": 33424, "ts": "2026-07-23T10:52:45Z", "hours": 1.3167, "text": "Devlog #11 As of today, I completed the following things : Finished the PCB design Left all the inevitable errors, realized that there is no way to fix them rn :( Started on the 3D modelling part Made a sick edit 🔥 Lowk today was kinda productive; also made a fire edit on the rec below. The 3D model looks better in Onshape than Tinkercad. Pls do help me out in the comments; the DRC errors are quite annoying. I think there is another way to fix them, so I left them, but if you know anything, do let me know abt it, always looking for improvements. Also, one final thing: I’ll probably be reducing the amount of time I work on this project, cuz I got some other stuff going around and won’t be completely free until the end of this month. Cyall, bye homies"}, {"post_id": 32897, "ts": "2026-07-22T11:07:33Z", "hours": 1.1633, "text": "Devlog #10 I did basically nothing, kinda rly stuck here, kept fixing DRC errors just so that new ones can pop up, it very annoying, pls someone help me out on this, I’d love some advice."}, {"post_id": 32301, "ts": "2026-07-21T11:54:48Z", "hours": 1.0669, "text": "#Devlog #9 As of today, I completed the following tasks : Finished connecting the columns to the Microcontroller Finished connecting the rows the Microcontroller Completed the basic wiring of the PCB, and fixed a clearence error Things to do tmrw: Fix the rest of the 392 DRC errors Start the 3D modelling phase (Maybe? My hopes aren’t up cuz of the errors ) Today was comparatively better than tmrw (cuz ik how it’s gonna be, i’m lowk cooked and now the sticker isn’t showing up ). As always, I’d love some feedback, comments on the timelapse, and the work, I’m always looking for things to improve. Bye Cyall"}, {"post_id": 31748, "ts": "2026-07-20T11:59:49Z", "hours": 1.05, "text": "Devlog #8 As of today, completed; connecting all the diodes the the hotswaps. connecting some of the columns to the microchips. Quite an exhilarating day actually, although a difficult part was finished, the thing felt too repetive and strained my hand a lot, but I worked for 1 hr then ended the timelapse. My goal is to to work everyday for only an hour, Because think any session that has 4 hrs of work burns me out, leaving me tired for at least an hour and a half(Which i use by doomscrolling). Anyways that’s it for today, as always I would hear yall’s suggestions, I’d love to know what I can improve"}, {"post_id": 31177, "ts": "2026-07-19T11:26:10Z", "hours": 1.1003, "text": "Devlog #7 Today, I guess I could say that I have completed half of the PCB designing stage. I used my recently found knowledge about matrices and implemented them for the columns and rows, then immediately messed up, so I fixed up the columns part, then left the rows part for tmrw, as I can only work for 1Hr a day without firing up and losing all productivity (I’m not lazy, just sick ). Tmrw ima fix the rows part (Which I messed up) and maybe move on to 3D designing, Pls do leave comments, I would love how you guys might react to or give suggestions to my project/devlogs."}, {"post_id": 30626, "ts": "2026-07-18T10:51:03Z", "hours": 0.9167, "text": "Hola, mi amigo! I looked through my PCB design, then realized “This isn’t going to work.” So I used my brain, then started over with the basic format, where each key should be. The improvements I made today: Re-designed the basic structure of the keyboard. learnt how to connect the diodes properly. Most imp : don’t do stuff when you’re sick and have a fever, it will reduce productivity."}, {"post_id": 30180, "ts": "2026-07-17T15:25:36Z", "hours": 1.2669, "text": "Devlog #4 As of today, I have completed my basic positions for the keys, it was quite confusing, yet I pushed through, after this everything should be smooth sailing, this was quite challenging, but who doesnt love a challenge? if you have any suggestions, please look at my timelapse, and help me out"}, {"post_id": 29538, "ts": "2026-07-16T15:10:36Z", "hours": 1.4161, "text": "completed the schematic of the YashBoard. although this devlog only shows 16 min of work, this timelapse is my actual work… hope you all like my project."}, {"post_id": 28846, "ts": "2026-07-15T11:44:54Z", "hours": 1.2, "text": "Well, I think I almost completed the schematic, it was quite hard, but I’m pushing through it. Someone buy me a 3000$ PC, my laptop is lagging"}, {"post_id": 28260, "ts": "2026-07-14T12:36:12Z", "hours": 0.3506, "text": "This is awesome! I’ve made a mascot for my keyboard!"}, {"post_id": 28225, "ts": "2026-07-14T11:26:20Z", "hours": 0.7333, "text": "I started off my first major project. Wish me best of luck guys, ill keep you updated."}]...
|
Title: YashBoard by @SimplifCoder | Stardance
Dev Title: YashBoard by @SimplifCoder | Stardance
Devlogs:
I started off my first major project. Wish me best of luck guys, ill keep you updated.
This is awesome! I’ve made a mascot for my keyboard!
Well, I think I almost completed the schematic, it was quite hard, but I’m pushing through it. Someone buy me a 3000$ PC, my laptop is lagging
completed the schematic of the YashBoard. although this devlog only shows 16 min of work, this timelapse is my actual work… hope you all like my project.
Devlog #4 As of today, I have completed my basic positions for the keys, it was quite confusing, yet I pushed through, after this everything should be smooth sailing, this was quite challenging, but who doesnt love a challenge? if you have any suggestions, please look at my timelapse, and help me out
Hola, mi amigo! I looked through my PCB design, then realized “This isn’t going to work.” So I used my brain, then started over with the basic format, where each key should be. The improvements I made today: Re-designed the basic structure of the keyboard. learnt how to connect the diodes properly. Most imp : don’t do stuff when you’re sick and have a fever, it will reduce productivity.
Devlog #7 Today, I guess I could say that I have completed half of the PCB designing stage. I used my recently found knowledge about matrices and implemented them for the columns and rows, then immediately messed up, so I fixed up the columns part, then left the rows part for tmrw, as I can only work for 1Hr a day without firing up and losing all productivity (I’m not lazy, just sick ). Tmrw ima fix the rows part (Which I messed up) and maybe move on to 3D designing, Pls do leave comments, I would love how you guys might react to or give suggestions to my project/devlogs.
Devlog #8 As of today, completed; connecting all the diodes the the hotswaps. connecting some of the columns to the microchips. Quite an exhilarating day actually, although a difficult part was finished, the thing felt too repetive and strained my hand a lot, but I worked for 1 hr then ended the timelapse. My goal is to to work everyday for only an hour, Because think any session that has 4 hrs of work burns me out, leaving me tired for at least an hour and a half(Which i use by doomscrolling). Anyways that’s it for today, as always I would hear yall’s suggestions, I’d love to know what I can improve
#Devlog #9 As of today, I completed the following tasks : Finished connecting the columns to the Microcontroller Finished connecting the rows the Microcontroller Completed the basic wiring of the PCB, and fixed a clearence error Things to do tmrw: Fix the rest of the 392 DRC errors Start the 3D modelling phase (Maybe? My hopes aren’t up cuz of the errors ) Today was comparatively better than tmrw (cuz ik how it’s gonna be, i’m lowk cooked and now the sticker isn’t showing up ). As always, I’d love some feedback, comments on the timelapse, and the work, I’m always looking for things to improve. Bye Cyall
Devlog #10 I did basically nothing, kinda rly stuck here, kept fixing DRC errors just so that new ones can pop up, it very annoying, pls someone help me out on this, I’d love some advice.
Devlog #11 As of today, I completed the following things : Finished the PCB design Left all the inevitable errors, realized that there is no way to fix them rn :( Started on the 3D modelling part Made a sick edit 🔥 Lowk today was kinda productive; also made a fire edit on the rec below. The 3D model looks better in Onshape than Tinkercad. Pls do help me out in the comments; the DRC errors are quite annoying. I think there is another way to fix them, so I left them, but if you know anything, do let me know abt it, always looking for improvements. Also, one final thing: I’ll probably be reducing the amount of time I work on this project, cuz I got some other stuff going around and won’t be completely free until the end of this month. Cyall, bye homies
Devlog #12 Sry guys, couldn’t do much today. Got exam rush, I’ll be doing this properly after the end of this month So I made a frame for my keyboard, with built-in cloth so your greasy fingers don’t mess up the keyboard. byeeeeee
Devlog #13 Today is a wonderful day, my exam went wonderful, and so did the creation of the “Goofcap v2” its custom made, ill add some more stuff into it as we go down further into the project, but lmk if it’s good
Devlog #14 So all these days I’ve been grinding, 5 mins a day, and now that exam week is over, I can come back to the project and work properly What I have achieved in these few days: Completed Gravity Falls seasons 1 and 2 Finished a cooler for laptops cuz sometimes they go brrrrrrrrrrrr Started on the frame of the keyboard (Biggest challenge yet…) Made an armrest… Wrist-rest? (Trademark Pending) Summoned coffee and ruined my sleep schedule. This is gonna be a longer-than-usual devlog cuz it’s been updated over a period of time, not all at once Also, this cooler I’m working on is like kinda rudimentary uses wires instead of PCBs, but I think PCBs are overkill for the cooler. The frame for the keyboard part isn’t going so well, but shoutout @mersecske for helping me! Overall, I’m thinking of adding another gimongus addition to the keyboard and cooler set, and a magnetic built-in mouse. Like, you click a button, the bare mouse PCB comes out, then you snap off the parts of the mouse from the keyboard (or cooler haven’t decided yet), and then you assemble it in 5 mins; it’s a niche feature, but maybe it could help while travelling? Who knows? LMK what y’all think abt this idea, Cyall byeeeeeeeee!
Devlog #15 As of today I made an awesome addition, an built in screen, so the next time your gaming and lose a match then slam your desk the screen turns on and shows a powerful message, like “Patience is a virtue” or sumin like that. I’m also planning to add a speaker so it can talk to you, but lets see how that goes?
Devlog #16 So guys! You all know I’ve been offline for a bunch of days, and for those who have been with me and supporting me ( @mersecske ) I have disappointed y’all . But! I have been grinding, as you can see, this devlog is 6 hours! So what I did all these days: I completely redid the structure of the PCB, this time with a 6 mm gap between each key horizontally (longer keys not counted) fixed a few bugs, from 392 DRC errors to… 376 errors Made the frame for the keyboard in Onshape and got good grades ( mostly ) Worsened my sleep schedule Now right-clicks everything to cancel it (doesn’t work ) Welp, that’s it! Thank you if you’ve read all this, and please lmk any suggestions, always happy to improve!
Devlog #17 Hello guys! So, how is your day going? I realized that frequent devlogs might be confusing or annoying, so I set a limit for myself; Cant post a devlog unless I have 1 and a half hours logged. As you can see, this one has ~2 hr logged. So I can post this. So what I did: Finished up the PCB by adding spacebar balancers (Me No Like Wobbly Keys ) Made a cool thingy for the keyboard shell, like it has this triangular height-increasing thingy Figured this out —–> <—– hover your cursor on this sticker Made the entire thing look beautiful Recovered my sleep schedule Made a major fix in Onshape where the actual frame wouldn’t fit in the shell Added a watermark on all the parts (Except for the keycaps ) So thank y’all if you read all this , And pls do give suggestions. Always happy to improve
Devlog Final Hey guys its been a great journey, But this is the final devlog for this project! Im quite sure some or at least one of you might have rly liked the project, but overall, thank you for being with me, through out the journey, Its been a great experience making this project! Cyall BYE!!!!!...
|
1792742095.157258
|
1793346895.157258
|
|
59361
|
project mari by @marina | Stardance
|
marina
|
1
|
25.74
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-10T08:38:13Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Marina, an anime character who lives on your Mac desktop in a transparent window. You talk to her or type, and she answers in her own voice, lip syncs, and acts out what she writes. She starts speaking before she’s finished thinking, you can interrupt her by talking over her, and sometimes she starts the conversation. Everything except the language model runs locally on an 8 GB MacBook Air. It’s built on rayenfeng/riko_project, which had a voice pipeline but no avatar. the hard part was fitting it all into 8 GB of RAM, which is why the language model runs on a separate GPU server. Making her feel responsive was the hardest part. Streaming replies a sentence at a time meant making sure she never split a stage direction or a number like 3.5 in half. Letting you interrupt her was tricky too, because her own voice goes back into the mic. The quickest way to see her is https://skep13.github.io/marina/ where you can type to her in the browser. Replies there are recorded lines in her real voice. The app only runs on a Mac. Keep the folder at ~/marina, not in Desktop or Documents, or it will hang. Run ./setup-mac.sh first. Bring your own .vrm avatar and put it at app/models/model.vrm. For the model, install Ollama, run ollama pull llama3.2:3b and set base_url to http://127.0.0.1:11434/v1 in the config. Hover over her to see the buttons.", "repo": "https://github.com/skep13/marina/releases/download/v1.0.0/Marina-1.0.0-arm64.dmg", "demo": "https://skep13.github.io/marina/"}]...
|
[{"post_id": 79756, "ts": "202 [{"post_id": 79756, "ts": "2026-10-15T08:57:34Z", "hours": 0.8908, "text": "repackaged as a .app and added her to my personal site!!"}, {"post_id": 72136, "ts": "2026-09-22T09:01:35Z", "hours": 3.56, "text": "Added this to a portable .app image now, the python is now a bundle and works out of the box with options to edit for a custom config"}, {"post_id": 68073, "ts": "2026-09-14T13:59:47Z", "hours": 3.5517, "text": "completly rewrote server.py to remove old ai code setup that was used to ensure the gpu passthrough would work"}, {"post_id": 67961, "ts": "2026-09-14T09:07:55Z", "hours": 1.7833, "text": "Today i removed old code that i used ai to assist with in the beginning the majority of it is now hand written along with using code from the riko project made by JustRayen, the main part made by ai is the gpu passthrough on my server as both vulkan and the other fix for amd cards wasnt working and i hadnt commited any of my new code on github to fix things like the memory bug and visual effects with the hair clipping into clothing"}, {"post_id": 66165, "ts": "2026-09-11T20:15:30Z", "hours": 1.9531, "text": "today i fixed the gpu passthrough for an amd gpu, it currently took a long time to respond when using vulkan it now responds a few seconds quicker after first prompt"}, {"post_id": 65272, "ts": "2026-09-10T08:36:20Z", "hours": 0.6164, "text": "Updated the try project page"}, {"post_id": 65252, "ts": "2026-09-10T07:52:39Z", "hours": 1.9619, "text": "i fixed the ability to interrupt it mid conversation to feel more realistic, she now speaks once every 25 minutes of not being interacted with, she can set timers, check battery and other similar stuff and finally she speaks before the prompt is finishing generating which feels more natural and reduces thinking time from 23s to 0.2s to first token."}, {"post_id": 64777, "ts": "2026-09-09T13:05:06Z", "hours": 0.4111, "text": "today i decided to combine both whisper and kokoro to have a more accurate voice model that i can run locally, i also added a new design inside of vroid studio that will be added later on :)"}, {"post_id": 64722, "ts": "2026-09-09T10:55:34Z", "hours": 1.3836, "text": "Fixed idle animations to be less snappy and more human like"}, {"post_id": 64659, "ts": "2026-09-09T07:24:23Z", "hours": 2.2275, "text": "This is a demo of marina introducing itself to, its own tiktok account there will be more updates shortly!"}, {"post_id": 64440, "ts": "2026-09-08T20:25:23Z", "hours": 3.6125, "text": "today i typed up, the requirements file to have all of this running, tommorow i will be setting up the api link to my server. As well as a selectable menu to choose local or api hosted AI"}, {"post_id": 63522, "ts": "2026-09-07T12:55:53Z", "hours": 3.5061, "text": "the ui for the app"}]...
|
Title: project mari by @marina | Stardance
Devlog Title: project mari by @marina | Stardance
Devlogs:
the ui for the app
today i typed up, the requirements file to have all of this running, tommorow i will be setting up the api link to my server. As well as a selectable menu to choose local or api hosted AI
This is a demo of marina introducing itself to, its own tiktok account there will be more updates shortly!
Fixed idle animations to be less snappy and more human like
today i decided to combine both whisper and kokoro to have a more accurate voice model that i can run locally, i also added a new design inside of vroid studio that will be added later on :)
i fixed the ability to interrupt it mid conversation to feel more realistic, she now speaks once every 25 minutes of not being interacted with, she can set timers, check battery and other similar stuff and finally she speaks before the prompt is finishing generating which feels more natural and reduces thinking time from 23s to 0.2s to first token.
Updated the try project page
today i fixed the gpu passthrough for an amd gpu, it currently took a long time to respond when using vulkan it now responds a few seconds quicker after first prompt
Today i removed old code that i used ai to assist with in the beginning the majority of it is now hand written along with using code from the riko project made by JustRayen, the main part made by ai is the gpu passthrough on my server as both vulkan and the other fix for amd cards wasnt working and i hadnt commited any of my new code on github to fix things like the memory bug and visual effects with the hair clipping into clothing
completly rewrote server.py to remove old ai code setup that was used to ensure the gpu passthrough would work
Added this to a portable .app image now, the python is now a bundle and works out of the box with options to edit for a custom config
repackaged as a .app and added her to my personal site!!
Ships:
I made Marina, an anime character who lives on your Mac desktop in a transparent window. You talk to her or type, and she answers in her own voice, lip syncs, and acts out what she writes. She starts speaking before she’s finished thinking, you can interrupt her by talking over her, and sometimes she starts the conversation. Everything except the language model runs locally on an 8 GB MacBook Air. It’s built on rayenfeng/riko_project, which had a voice pipeline but no avatar. the hard part was fitting it all into 8 GB of RAM, which is why the language model runs on a separate GPU server. Making her feel responsive was the hardest part. Streaming replies a sentence at a time meant making sure she never split a stage direction or a number like 3.5 in half. Letting you interrupt her was tricky too, because her own voice goes back into the mic. The quickest way to see her is https://skep13.github.io/marina/ where you can type to her in the browser. Replies there are recorded lines in her real voice. The app only runs on a Mac. Keep the folder at ~/marina, not in Desktop or Documents, or it will hang. Run ./setup-mac.sh first. Bring your own .vrm avatar and put it at app/models/model.vrm. For the model, install Ollama, run ollama pull llama3.2:3b and set base_url to http://127.0.0.1:11434/v1 in the config. Hover over her to see the buttons....
|
1793130453.0705104
|
1793216853.0705104
|
|
51149
|
Calculator in rust by @magmafish | Stardance
|
magmafish
|
2
|
25.71
|
57
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-27T23:45:26Z", "hours": 12.0, "multiplier": 2.02, "payout": 23, "blessing": "neutral", "text": "I have vastly updated my calculator. I have greatly streamlined my calculations since the first ship. I also have added a lot that was asked in my reviews. a full list of changes streamlined calculation code added overflow error detection and error message added visual button press feedback added ability to view in either fractions or decimals added keyboard support for desktop updated readme I plan on following recommendations from this ship to lead into what will likely be my third and final ship. (I NEED the blahaj :3)", "repo": "https://github.com/magmafish68/calculatormk3", "demo": "https://magmafish68.github.io/calculatormk3/"}, {"ship_num": 2, "ts": "2026-08-20T21:41:11Z", "hours": 11.0, "multiplier": 3.03, "payout": 34, "blessing": "neutral", "text": "I made a simple 4 function calculator using rust. This took me about 12 hours of total work time as I had zero experience coding beyond scratch as well as not using AI. It was a really cool experience to get to make. I learned and understand how to build both back and frontends for a program now as well as understand how the rust programing language works. to run the project just go to https://magmafishcalculatormk3.netlify.app/ it is pretty self explanatory as to how it works as its just a calculator. But overall it was an awesome experience and puts me one step closer to getting a blahaj plushie :3", "repo": "https://github.com/magmafish68/calculatormk3", "demo": "https://magmafish68.github.io/calculatormk3/"}]...
|
[{"post_id": 57632, "ts": "202 [{"post_id": 57632, "ts": "2026-08-29T20:44:05Z", "hours": 1.2722, "text": "i added the ability for the made by magmafish button to change the color of the calculator currently there is trans flag color scheme normal calculator color scheme dark mode color scheme ÆÆÆÆÆÆÆÆ color scheme as always if you ave any feedback please let me know and the link is https://magmafish68.github.io/calculatormk3/ :3"}, {"post_id": 57565, "ts": "2026-08-29T19:04:01Z", "hours": 0.9669, "text": "I worked on updating and simplifying some of my code as well as formated everything so that it is consistent i also finnaly went back through and started adding notes so that hopefuly others can read my code as always if you ave a sugestion let me know the link is at https://magmafish68.github.io/calculatormk3/ have an awesome day everyone :3"}, {"post_id": 57509, "ts": "2026-08-29T17:54:15Z", "hours": 0.4711, "text": "I Changed the colors and made them all cutesy if u have any sugestions plsssss tell me im so boreddddd :3 https://magmafish68.github.io/calculatormk3/"}, {"post_id": 56269, "ts": "2026-08-27T23:30:45Z", "hours": 1.0192, "text": "I updated the readme of my file that was the last major piece of feedback I had gotten from last ship. i also prepared it for the second ship. I am most likely going to post a full ship later tonight. as always if you have feedback please let me know and the link is https://magmafish68.github.io/calculatormk3/"}, {"post_id": 56228, "ts": "2026-08-27T22:04:38Z", "hours": 1.0831, "text": "i added keyboard functionality to the calculator for people on computers thank you to @thestarviper for helping me chose what to next as well as to the people who recommended that on my last ship my next task is to update the readme and potentially add more buttons for the calculator as always if you have any recommendations please let me know and the link to try it is https://magmafish68.github.io/calculatormk3/"}, {"post_id": 56185, "ts": "2026-08-27T20:24:59Z", "hours": 0.5139, "text": "i finished adding the ability to display decimals to the calculator it still stores data as a fraction but depending on your mode it will display it as either a fraction or a decimal i plan on looking into adding the ability to use your keyboard as well as reformatting and updating the readme for next update however i might end up doing something else who knows. as always if you have any recommendations, suggestions, ideas, or if you find a bug please let me know. the link to try it out is https://magmafish68.github.io/calculatormk3/ please let me know what you think :3 also side note the spinning blahaj emoji is so tuff i was going to send this and accidentaly just discovered it its so tuff i want a blahaj so badly"}, {"post_id": 55843, "ts": "2026-08-27T19:38:35Z", "hours": 3.7822, "text": "I worked on this for a while in the airport and on the plane yesterday after reading my feedback on my first ship i decided to tackle a couple of things the first of which was displaying what operation you had selected that was a relatively easy fix and i solved it quickly the second was to add visual feedback of button presses which after much effort i added by using the classes! macro and stylesheets using css that took significant time to figure out. i am currently working on another bit of feedback i received which was to add the ability for both fractions and decimals to be viewed these changes are almost complete and i should be able to release them later today after testing."}, {"post_id": 55231, "ts": "2026-08-26T21:15:12Z", "hours": 5.1614, "text": "Hello i was at the Smallsat conference in Salt Lake City I worked on the calculator extensively during my travels there updating almost all aspects of the calculator significantly shrinking the code and also preventing overflow errors. however netlify ran out of refreshes and i dint realize and a glitched version of the project was showing for the ship i am traveling back today and in the airport fixed this by switching my host to github sites here is the link: https://magmafish68.github.io/calculatormk3/"}, {"post_id": 51301, "ts": "2026-08-20T21:28:02Z", "hours": 3.5072, "text": "I have fixed bugs and errors as well as updated poorly written code as well as updated formatting for the frontend, I also added the ability to use your previous value as your first number."}, {"post_id": 50715, "ts": "2026-08-20T01:41:01Z", "hours": 5.6089, "text": "i successfully added and deployed a frontend for my calculator as well as redid most of the internals i will probably clean up some code and actually write a good devlog then but ive been working for like 6 hours today and am maxed out rn link to try: https://magmafishcalculatormk3.netlify.app/"}, {"post_id": 50331, "ts": "2026-08-19T14:31:00Z", "hours": 2.2169, "text": "I am new to coding and I decided that I want to learn rust and as a first sort of project made a simple 4 function calculator . It can do addition subtraction multiplication and division. I plan on adding a frontend in the future and fixing/simplifying some of the code. i am new and any feedback would be awesome :3"}]...
|
Title: Calculator in rust by @magmafish | Stardanc Title: Calculator in rust by @magmafish | Stardance
Devlogs:
I am new to coding and I decided that I want to learn rust and as a first sort of project made a simple 4 function calculator . It can do addition subtraction multiplication and division. I plan on adding a frontend in the future and fixing/simplifying some of the code. i am new and any feedback would be awesome :3
i successfully added and deployed a frontend for my calculator as well as redid most of the internals i will probably clean up some code and actually write a good devlog then but ive been working for like 6 hours today and am maxed out rn link to try: https://magmafishcalculatormk3.netlify.app/
I have fixed bugs and errors as well as updated poorly written code as well as updated formatting for the frontend, I also added the ability to use your previous value as your first number.
Hello i was at the Smallsat conference in Salt Lake City I worked on the calculator extensively during my travels there updating almost all aspects of the calculator significantly shrinking the code and also preventing overflow errors. however netlify ran out of refreshes and i dint realize and a glitched version of the project was showing for the ship i am traveling back today and in the airport fixed this by switching my host to github sites here is the link: https://magmafish68.github.io/calculatormk3/
I worked on this for a while in the airport and on the plane yesterday after reading my feedback on my first ship i decided to tackle a couple of things the first of which was displaying what operation you had selected that was a relatively easy fix and i solved it quickly the second was to add visual feedback of button presses which after much effort i added by using the classes! macro and stylesheets using css that took significant time to figure out. i am currently working on another bit of feedback i received which was to add the ability for both fractions and decimals to be viewed these changes are almost complete and i should be able to release them later today after testing.
i finished adding the ability to display decimals to the calculator it still stores data as a fraction but depending on your mode it will display it as either a fraction or a decimal i plan on looking into adding the ability to use your keyboard as well as reformatting and updating the readme for next update however i might end up doing something else who knows. as always if you have any recommendations, suggestions, ideas, or if you find a bug please let me know. the link to try it out is https://magmafish68.github.io/calculatormk3/ please let me know what you think :3 also side note the spinning blahaj emoji is so tuff i was going to send this and accidentaly just discovered it its so tuff i want a blahaj so badly
i added keyboard functionality to the calculator for people on computers thank you to @thestarviper for helping me chose what to next as well as to the people who recommended that on my last ship my next task is to update the readme and potentially add more buttons for the calculator as always if you have any recommendations please let me know and the link to try it is https://magmafish68.github.io/calculatormk3/
I updated the readme of my file that was the last major piece of feedback I had gotten from last ship. i also prepared it for the second ship. I am most likely going to post a full ship later tonight. as always if you have feedback please let me know and the link is https://magmafish68.github.io/calculatormk3/
I Changed the colors and made them all cutesy if u have any sugestions plsssss tell me im so boreddddd :3 https://magmafish68.github.io/calculatormk3/
I worked on updating and simplifying some of my code as well as formated everything so that it is consistent i also finnaly went back through and started adding notes so that hopefuly others can read my code as always if you ave a sugestion let me know the link is at https://magmafish68.github.io/calculatormk3/ have an awesome day everyone :3
i added the ability for the made by magmafish button to change the color of the calculator currently there is trans flag color scheme normal calculator color scheme dark mode color scheme ÆÆÆÆÆÆÆÆ color scheme as always if you ave any feedback please let me know and the link is https://magmafish68.github.io/calculatormk3/ :3
Ships:
I made a simple 4 function calculator using rust. This took me about 12 hours of total work time as I had zero experience coding beyond scratch as well as not using AI. It was a really cool experience to get to make. I learned and understand how to build both back and frontends for a program now as well as understand how the rust programing language works. to run the project just go to https://magmafishcalculatormk3.netlify.app/ it is pretty self explanatory as to how it works as its just a calculator. But overall it was an awesome experience and puts me one step closer to getting a blahaj plushie :3
I have vastly updated my calculator. I have greatly streamlined my calculations since the first ship. I also have added a lot that was asked in my reviews. a full list of changes streamlined calculation code added overflow error detection and error message added visual button press feedback added ability to view in either fractions or decimals added keyboard support for desktop updated readme I plan on following recommendations from this ship to lead into what will likely be my third and final ship. (I NEED the blahaj :3)...
|
1793249342.982292
|
1793335742.982292
|
|
57992
|
link - probe by @ayman | Stardance
|
ayman
|
0
|
25.69
|
0
|
[]
|
[{"post_id": 80816, "ts": "202 [{"post_id": 80816, "ts": "2026-10-18T21:28:52Z", "hours": 0.7186, "text": "using pytest I added a test_channel.py file that checks 3 of the functions in my code ( make_channel) adding bernoullie lost and changing GE burst lengths"}, {"post_id": 80782, "ts": "2026-10-18T19:37:04Z", "hours": 0.3919, "text": "FIxed readme and added to results.md"}, {"post_id": 80769, "ts": "2026-10-18T18:50:47Z", "hours": 0.4819, "text": "ok next I made a new plot to analyze the missed packet dealine percentage for my latency ladder and jitter runs, and we can see that all the latency ladders show a similar shape with a horizantal shift, while the jitter run has the shape of a oddpower function with an inflection point around 100ms"}, {"post_id": 80752, "ts": "2026-10-18T18:19:02Z", "hours": 0.7853, "text": "I made a new pythoin fiel athat created a new figure using matplotlib and this measures teh median and p99 rtt for my latency ladder, i will know add this into my results .md"}, {"post_id": 79694, "ts": "2026-10-15T02:45:04Z", "hours": 0.5592, "text": "So i worked on fixing or updating my plot.py with some feature. I added a title verision and fixed the y axis labeling and then adding a theoriticla value using the defintaitons of GE loss and bernoullie loss somethign we see is that int he real data we have a stair case step due to burts values being aonly integers while the therotical value using a line of best fit which is linear. here is a before and after"}, {"post_id": 79684, "ts": "2026-10-15T01:52:08Z", "hours": 0.6667, "text": "added sections 5-7 to resutls.md which talk about the limitations and like also talked about the py file i made yesterday"}, {"post_id": 79193, "ts": "2026-10-12T23:38:32Z", "hours": 1.2231, "text": "i added a new file that is supposed to check across all runs if the value in the csv matches with my decide function to check my seeds. Out of 60000 packets i only got one mismatch"}, {"post_id": 79175, "ts": "2026-10-12T21:57:42Z", "hours": 1.8461, "text": "I first added requiremetns.txt in my repo for people who want to re run or add onto the experiment, also made sure to include instructison to reapeat in my read me then i fixed some rounding errors in my summary.csv and alsltyu added a results.md that I have not finished yet"}, {"post_id": 75382, "ts": "2026-09-29T21:50:15Z", "hours": 2.2731, "text": "i used matplotlib to make a graph of my burst results. the x axis is the burst length(how many packets are lloss in a row). and the y axis is the the eprcentage of hwo many burst were greater than the k value so you obvisouly see a decleining trend because for both its much aharder from a. randopoitn for lose a lot of pacerts in a. row we see. big differen of giulbert elliot and bernouli here and the fidffernt between the two packet loss calcauation methods"}, {"post_id": 74615, "ts": "2026-09-27T19:42:56Z", "hours": 0.3431, "text": "So now i wokred on making anogther csv apart of anlsyze.py whiuchcounts hwo many burst were in each run, and the lenght adn fequencey of teh burst. A burst is basically how many packets were lsot in a row. so now i am gona downlaodn matpotlib to plot it and see how my data and expereiment actually works and try andundesrtand my reustls"}, {"post_id": 74562, "ts": "2026-09-27T17:11:11Z", "hours": 1.1439, "text": "ok i had to fix a fewt hign with my analyze.py and sumamry.csv, because it didnt trrakc lost packets or parameters of the runs so then i used enumerate and slicing, and joining to get the right parameters for each run"}, {"post_id": 72496, "ts": "2026-09-23T02:34:10Z", "hours": 2.1517, "text": "so over the past few days i have been working on a analyze.py python filet hat will take my csv results of the 14 trials and then basiclaly take all of it and make it into one summary obvisouly its missing late and params so i have to fix that and make a new one but I had to learn a lot and there was a lot of logic i did wrong in the beginning so im glad i wokred it out"}, {"post_id": 70933, "ts": "2026-09-20T02:15:42Z", "hours": 3.7128, "text": "today was long day, bsically wrote a new python file that will connect to config.py and run the server and client multiple times and ran a smoke test. learned a lot of new things like matrixes which keep all my test aswell as parsing throuhg argparse"}, {"post_id": 70380, "ts": "2026-09-19T02:23:06Z", "hours": 1.0139, "text": "Today I created a config.py where I can set all my parameters for my experiments I can do and used it to connect channel.py to config.py I also ran some tests of bernoulli versus elliot"}, {"post_id": 69422, "ts": "2026-09-17T00:59:26Z", "hours": 1.7903, "text": "researched on gilbert elliot and bernoulli package loss distrubutions and made a model to simulate that in channel.py"}, {"post_id": 68351, "ts": "2026-09-15T00:15:21Z", "hours": 1.4958, "text": "Today I found a bug where my client could save a reply under the wrong packet. The client grabbed whichever reply showed up first and assumed it belonged to the packet it had just sent. When a reply came back after the timeout, it got recorded as the next packet’s reply, and every packet after that was shifted by one. Nothing crashed. The data was just wrong.To prove it, I made my server hold a reply for 1.5 seconds while my timeout was 1 second. By accident, my first test delayed every packet after the 20th. The RTTs climbed from 1.5 s to 12 s, every other packet was marked lost, and the ones marked received carried an older packet’s time.The fix: every packet gets a deadline (send time + timeout), and the client keeps listening until the reply with the matching sequence number arrives or time runs out. Replies for older packets get counted as “late” and thrown away. Now the same test shows 1 lost, 1 late, and every packet after it keeps the right number. This matters because my jitter profile will produce late replies constantly, and without this fix every jitter run would have been garbage. i also added totola runtime and average packet rate"}, {"post_id": 67704, "ts": "2026-09-13T22:02:52Z", "hours": 0.965, "text": "I worked on making my data from tests actually to be exported as csv files, I had to learn how to use the csv file node in python and how to make sure my files don’t get overidden each time and how to show a packet is lost then i ran some trials and saw the csv but I still need to fix some things"}, {"post_id": 67676, "ts": "2026-09-13T20:47:05Z", "hours": 0.6097, "text": "added file constants aswell as working through some bugs. Basically tried out a few experiments with how many packets I sent and the time in between each packet. It really changed the average dtt and also I got to see how counter worked"}, {"post_id": 67631, "ts": "2026-09-13T19:38:36Z", "hours": 2.5683, "text": "I added the first layer of my experimentation, a server and a client. The client sends packets of info with sequence number to the server and then sends it back to the client then prints out the number in sequence and the time of the whole trip."}, {"post_id": 61247, "ts": "2026-09-04T02:46:17Z", "hours": 0.9519, "text": "created github and readme.md to start of my project also wrote more in detail why i am doing this and aswell as what I am trying to accomplish and what I am measuring, I had to spend a lot of time fixing hackatime. I Learned a lot about why packets actually get lost and how modern researchers categorize their loss and why it happens."}]...
|
Title: link - probe by @ayman | Stardance
Devlogs Title: link - probe by @ayman | Stardance
Devlogs:
created github and readme.md to start of my project also wrote more in detail why i am doing this and aswell as what I am trying to accomplish and what I am measuring, I had to spend a lot of time fixing hackatime. I Learned a lot about why packets actually get lost and how modern researchers categorize their loss and why it happens.
I added the first layer of my experimentation, a server and a client. The client sends packets of info with sequence number to the server and then sends it back to the client then prints out the number in sequence and the time of the whole trip.
added file constants aswell as working through some bugs. Basically tried out a few experiments with how many packets I sent and the time in between each packet. It really changed the average dtt and also I got to see how counter worked
I worked on making my data from tests actually to be exported as csv files, I had to learn how to use the csv file node in python and how to make sure my files don’t get overidden each time and how to show a packet is lost then i ran some trials and saw the csv but I still need to fix some things
Today I found a bug where my client could save a reply under the wrong packet. The client grabbed whichever reply showed up first and assumed it belonged to the packet it had just sent. When a reply came back after the timeout, it got recorded as the next packet’s reply, and every packet after that was shifted by one. Nothing crashed. The data was just wrong.To prove it, I made my server hold a reply for 1.5 seconds while my timeout was 1 second. By accident, my first test delayed every packet after the 20th. The RTTs climbed from 1.5 s to 12 s, every other packet was marked lost, and the ones marked received carried an older packet’s time.The fix: every packet gets a deadline (send time + timeout), and the client keeps listening until the reply with the matching sequence number arrives or time runs out. Replies for older packets get counted as “late” and thrown away. Now the same test shows 1 lost, 1 late, and every packet after it keeps the right number. This matters because my jitter profile will produce late replies constantly, and without this fix every jitter run would have been garbage. i also added totola runtime and average packet rate
researched on gilbert elliot and bernoulli package loss distrubutions and made a model to simulate that in channel.py
Today I created a config.py where I can set all my parameters for my experiments I can do and used it to connect channel.py to config.py I also ran some tests of bernoulli versus elliot
today was long day, bsically wrote a new python file that will connect to config.py and run the server and client multiple times and ran a smoke test. learned a lot of new things like matrixes which keep all my test aswell as parsing throuhg argparse
so over the past few days i have been working on a analyze.py python filet hat will take my csv results of the 14 trials and then basiclaly take all of it and make it into one summary obvisouly its missing late and params so i have to fix that and make a new one but I had to learn a lot and there was a lot of logic i did wrong in the beginning so im glad i wokred it out
ok i had to fix a fewt hign with my analyze.py and sumamry.csv, because it didnt trrakc lost packets or parameters of the runs so then i used enumerate and slicing, and joining to get the right parameters for each run
So now i wokred on making anogther csv apart of anlsyze.py whiuchcounts hwo many burst were in each run, and the lenght adn fequencey of teh burst. A burst is basically how many packets were lsot in a row. so now i am gona downlaodn matpotlib to plot it and see how my data and expereiment actually works and try andundesrtand my reustls
i used matplotlib to make a graph of my burst results. the x axis is the burst length(how many packets are lloss in a row). and the y axis is the the eprcentage of hwo many burst were greater than the k value so you obvisouly see a decleining trend because for both its much aharder from a. randopoitn for lose a lot of pacerts in a. row we see. big differen of giulbert elliot and bernouli here and the fidffernt between the two packet loss calcauation methods
I first added requiremetns.txt in my repo for people who want to re run or add onto the experiment, also made sure to include instructison to reapeat in my read me then i fixed some rounding errors in my summary.csv and alsltyu added a results.md that I have not finished yet
i added a new file that is supposed to check across all runs if the value in the csv matches with my decide function to check my seeds. Out of 60000 packets i only got one mismatch
added sections 5-7 to resutls.md which talk about the limitations and like also talked about the py file i made yesterday
So i worked on fixing or updating my plot.py with some feature. I added a title verision and fixed the y axis labeling and then adding a theoriticla value using the defintaitons of GE loss and bernoullie loss somethign we see is that int he real data we have a stair case step due to burts values being aonly integers while the therotical value using a line of best fit which is linear. here is a before and after
I made a new pythoin fiel athat created a new figure using matplotlib and this measures teh median and p99 rtt for my latency ladder, i will know add this into my results .md
ok next I made a new plot to analyze the missed packet dealine percentage for my latency ladder and jitter runs, and we can see that all the latency ladders show a similar shape with a horizantal shift, while the jitter run has the shape of a oddpower function with an inflection point around 100ms
FIxed readme and added to results.md
using pytest I added a test_channel.py file that checks 3 of the functions in my code ( make_channel) adding bernoullie lost and changing GE burst lengths...
|
1792731163.4619932
|
1793335963.4619932
|
|
4028
|
Debugr.fun by @jamallyemin | Stardance
|
jamallyemin
|
2
|
25.68
|
270
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T21:22:25Z", "hours": 10.0, "multiplier": 17.57, "payout": 171, "blessing": "neutral", "text": "helo!! shipping this one — it’s the variable game, ranked edition. you write python-like code to satisfy a growing set of rules before a timer starts deleting it from the bottom, one line a second, unless you sync in time. play solo, or host/join a private room and race friends live for the leaderboard. the biggest thing I’m proud of is taskEngine.js — instead of hand-writing 25 fixed rules like the old version, it builds a hidden random solution first and derives every rule from a real fact about it (its actual sum, its actual length, etc), so no matter how many rules stack together they can never contradict each other. infinite non-repeating tasks out of that one trick. hardest part honestly wasn’t the game logic, it was wiring firebase up for real — nicknames, live rooms, race winners decided by firestore transactions so two people submitting at the same millisecond still only lets one through. spent lots of time chasing dumb stuff too. to test it: pick a difficulty and start typing variable assignments, or open two tabs and try hosting + joining a room to see the live race work. note : this project is obviously not perfect but I will try to improve this project and make it an actual kind of web browser game, so feedbacks , bug reports, and suggestions would be really helpful and appreciated", "repo": "https://github.com/jamallyemin/Debugr.fun", "demo": "https://debugr.fun/"}, {"ship_num": 2, "ts": "2026-06-03T23:50:06Z", "hours": 6.0, "multiplier": 15.96, "payout": 99, "blessing": "neutral", "text": "made a browser puzzle where you write Python-like variable assignments to satisfy 25 rules simultaneously - think neal.fun’s password game but for code. rules unlock one by one and start contradicting each other the deeper you go. most proud of the destruction mode. when the 45s timer hits zero the editor gets a red caret and starts deleting your code line by line from the bottom until you hit sync. it creates this genuine panic that felt fun to build. hardest part was making all 25 rules mathematically solvable at the same time. some rules override earlier ones so you keep rewriting the same lines - getting that supersession logic right without breaking the win condition took a while. to test it: just start typing variables. x = 5 will get you past rule 1. it gets weird around rule 7.", "repo": "https://github.com/jamallyemin/Debugr.fun", "demo": "https://debugr.fun/"}]...
|
[{"post_id": 83203, "ts": "202 [{"post_id": 83203, "ts": "2026-10-27T10:04:13Z", "hours": 5.3206, "text": "it’s finally done ( for now), and I finished basically everything I said I’d add last time ^_^ finished : daily challenge: it’s on the main menu now with a countdown, press D to play it. everyone gets the exact same task each day (I seed math.random from the date while taskEngine builds it, so it comes out identical for every player). it alternates between medium and hard, ranked by time, and only your first clear of the day counts, replays are just practice. there’s a copy result button too profile pictures: 5 animals (bug, cat, fox, owl, snake). you unlock them by clearing tasks, doing a daily, and clearing puzzle levels. other players see yours next to your name in lobbies, the leaderboard and the rankings. the pixel art is ai generated btw (chatgpt), I can’t draw I’m sorry keyboard control: esc goes back on every screen, ? shows all the shortcuts, 1/2/3 pick a difficulty. I also added tiny key badges on every button (esc, enter,ctrl+s..) so you can actually see the shortcuts, and there’s a switch in settings to hide them if you hate them sound effects: all web audio api, no audio files, with volume and an on/off in settings also finished cloud save: you can link a google account and your progress (puzzles, stats, avatar, streak) backs up, and signing in on a new device restores it. and the feedback form works now, it saves to firestore and emails me. for some reason I couldn’t set up the logo and change name on log in page but i’ll just do that in the future updates I guess new stuff: the whole page is zoomed a bit on big screens cuz it felt too small tutorial spotlight is fixed for the zoom (it was drawing in the wrong spot) bugs I found: pressing 1 on the menu was handled twice, so it skipped the difficulty screen and instantly started an easy game, and pressing 2 created a room by itself hosting a room a second time showed the old room code game screen was too short on some screens and on phones the puzzle output got pushed off the bottom also I had to use claude to learn coding the mulberry32, math in theme.js, and for debugging it’s finally feeling like an actual game now!! still not perfect so if you find bugs there’s a feedback button in settings, I read all of them :3"}, {"post_id": 80164, "ts": "2026-10-16T14:16:17Z", "hours": 4.3622, "text": "helo again!! it’s been a while, but I finally came back to this and added a bunch of stuff ^_^ the biggest one is puzzles. it’s a roadmap like chess.com’s, with 3 tracks: syntax (fix the broken code), complete (fill in the blanks) and typefix (fix the type errors). levels never run out, just like taskEngine.js. I wrote a tiny python interpreter (pyeval.js) to check the answers instead of loading pyodide, so there’s nothing heavy to download. there’s also a puzzle streak and a top 3 solvers for today / this week. added: themes: light mode, plus a custom theme maker where you pick your own colors (the old amber and cold signal presets are gone) settings: sfx on/off + volume, CRT scanlines on/off, theme, cloud save with an optional google link, and a feedback form will add: daily challenge: one task a day, same for everyone, ranked by time. it sits on the main menu with a countdown, press D to play it profile pictures: you unlock them by clearing puzzles and winning on different difficulties, and other players can see yours next to your name (the pixel art is still placeholder, I’m drawing the real ones later) keyboard control: esc goes back on every screen, and ? shows all the shortcuts sound effects: all made with the web audio api, no audio files most of these are half done, I just have to finish coding some of the javascript files and make sure everything runs perfectly! it’s still not perfect but it feels way more like an actual game now. if you find bugs or have ideas, there’s a feedback button in settings, I will read all of them!! :3 i forgot to add I changed the game’s name from The Variable Game to Debugr.fun cuz kewler.. and I got domain ^-^"}, {"post_id": 63184, "ts": "2026-09-06T21:05:08Z", "hours": 0.81, "text": "helo!! continuing from last time — taskEngine.js is done, and lobby/live-race is actually talking to firebase properly now too. this is it, the project’s finished!! taskEngine.js works backwards instead of using hardcoded rules like the old 25-rule version did: it builds a random hidden “reference solution” first (variable names, numbers, strings, a list), then derives every rule from a real fact about that solution — its actual sum, its actual length, whether one number happens to be prime, etc. since every rule comes from the same solution, they can never contradict each other no matter how many stack together. difficulty just controls how many rules get pulled from the pool (1 easy / 3 medium / 5 hard), and it keeps a history per difficulty so the same combo won’t repeat until the pool’s exhausted. wiring it all together turned up a bunch of small but annoying bugs, mostly not taskEngine’s fault directly: two separate filename casing mismatches (taskEngine.js and firebaseClient.js) — the script tags in index.html didn’t match the actual filenames on disk exactly, fine on windows locally but the dev server (and github pages) treat urls as case-sensitive, so both files were silently 404ing and breaking everything downstream config.js had the firebase config saved under the wrong variable name, so firebase never actually initialized and threw a reference error instead the join-a-room screen was stacking the code input + join button on top of the waiting room instead of hiding them after a successful join, looked broken even when it technically wasn’t rooms never got cleaned up in firestore after cancelling out of one, so an old room code could still say “already started” if you landed on it again later — fixed leaveRoom so the host actually deletes the room on the way out now singleplayer, hosting/joining rooms, live races, the leaderboard, streaks, and the tutorial all work end to end now. and it’s ready to be shipped!!"}, {"post_id": 61742, "ts": "2026-09-04T20:00:37Z", "hours": 3.1894, "text": "helo again!! so after the menu frontend was done last time, spent this session wiring up js to actually make it functional instead of just sitting there as styled html. added: script.js: screen switching between menu/difficulty/lobby/game, the nickname + tutorial onboarding flow, and the actual game loop (timer, save/sync, destruction mode) parser.js : reads whatever gets typed into the editor and pulls out the variables firebaseClient.js: nicknames, scores, streaks, and the room/live-race logic for multiplayer tutorial.js: the spotlight walkthrough for first-time visitors config.js: firebase config + local player state caching taskEngine.js is still on the list, saved it for last since everything else needed to be working first before it made sense to build. tested what’s done so far end to end and caught a handful of small bugs along the way (some css that wasn’t applying, a couple html typos) which I fixed too. next up: taskEngine.js, then getting the lobby/live-race stuff talking to firebase properly ^_^"}, {"post_id": 58238, "ts": "2026-08-30T16:28:08Z", "hours": 3.4475, "text": "helo again!! so quick update on the main menu I mentioned last time: the frontend for it is completely done now!! :Di finished styling the whole thing, here is what’s ready on the screen right now:main buttons for singleplayer, host/join private rooms, and leaderboard ([1] to [4])top bar with day streak tracker and runtime status boxclean footer for how to play & source links now that the main menu frontend is out of the way and not looking like raw HTML anymore, I’m finally moving on to the backend logic for lobbies and real-time multiplayer!! :>"}, {"post_id": 52335, "ts": "2026-08-22T13:20:15Z", "hours": 2.2828, "text": "helo!! so I kinda decided to start all over and improve this game because I like torturing myself, I wanted to make the game multiplayer, less boring, so I removed the old simple looking single editor page and now replacing it with a main menu screen!! here players will be able to: host and join private lobbies and play with their friends; play by themselves or play online!! :D so with these new features I decided to add a leaderboard too in order to make it more competitive, leaderboard will consist win streak , best times!! and wins !! also added diff levels so easy, medium, hard are a thing now :>"}, {"post_id": 1777, "ts": "2026-06-03T23:41:41Z", "hours": 2.6764, "text": "script.js is done. parser reads whatever you type and pulls out strings, numbers, and lists - inline and multiline. 25 rules with a supersession system so later rules can step on earlier ones without creating impossible states. progressive unlock, 45s countdown, sync button, destruction mode that eats your code line by line from the bottom when the timer runs out."}, {"post_id": 929, "ts": "2026-06-02T17:59:06Z", "hours": 3.0431, "text": "the layout skeleton is officially complete now that style.css is implemented. i went for a dark, high-contrast, brutalist terminal look to match the puzzle theme. here are the key UI updates: custom scrollbar: added a minimal 4px scrollbar to the rules list so it blends perfectly into the sidebar unlock animations: handled the transitions for .rule-item. when a rule becomes visible, it smoothly fades in and slides up into place using transform: translateY(6px) to 0. editor grid algnment: synced the code canvas layout, line numbers, and preview panels so the split-view remains perfectly aligned across different workspace sizes. the interface looks clean now, so next up i’m wiring the actual parser and the rule engine in script.js to make it work. :3"}, {"post_id": 615, "ts": "2026-06-02T03:36:14Z", "hours": 0.4664, "text": "just finished the index.html skeleton. as you can see on the right panel, the embedded preview is currently completely raw and unstyled because style.css is literally a blank file right now. looks like a broken 90s blog. now I’ll move on to style.css so my eyes don’t bleed from this ugly white screen… but I think the structure of .html is fine"}]...
|
Title: Debugr.fun by @jamallyemin | Stardance
Dev Title: Debugr.fun by @jamallyemin | Stardance
Devlogs:
just finished the index.html skeleton. as you can see on the right panel, the embedded preview is currently completely raw and unstyled because style.css is literally a blank file right now. looks like a broken 90s blog. now I’ll move on to style.css so my eyes don’t bleed from this ugly white screen… but I think the structure of .html is fine
the layout skeleton is officially complete now that style.css is implemented. i went for a dark, high-contrast, brutalist terminal look to match the puzzle theme. here are the key UI updates: custom scrollbar: added a minimal 4px scrollbar to the rules list so it blends perfectly into the sidebar unlock animations: handled the transitions for .rule-item. when a rule becomes visible, it smoothly fades in and slides up into place using transform: translateY(6px) to 0. editor grid algnment: synced the code canvas layout, line numbers, and preview panels so the split-view remains perfectly aligned across different workspace sizes. the interface looks clean now, so next up i’m wiring the actual parser and the rule engine in script.js to make it work. :3
script.js is done. parser reads whatever you type and pulls out strings, numbers, and lists - inline and multiline. 25 rules with a supersession system so later rules can step on earlier ones without creating impossible states. progressive unlock, 45s countdown, sync button, destruction mode that eats your code line by line from the bottom when the timer runs out.
helo!! so I kinda decided to start all over and improve this game because I like torturing myself, I wanted to make the game multiplayer, less boring, so I removed the old simple looking single editor page and now replacing it with a main menu screen!! here players will be able to: host and join private lobbies and play with their friends; play by themselves or play online!! :D so with these new features I decided to add a leaderboard too in order to make it more competitive, leaderboard will consist win streak , best times!! and wins !! also added diff levels so easy, medium, hard are a thing now :>
helo again!! so quick update on the main menu I mentioned last time: the frontend for it is completely done now!! :Di finished styling the whole thing, here is what’s ready on the screen right now:main buttons for singleplayer, host/join private rooms, and leaderboard ([1] to [4])top bar with day streak tracker and runtime status boxclean footer for how to play & source links now that the main menu frontend is out of the way and not looking like raw HTML anymore, I’m finally moving on to the backend logic for lobbies and real-time multiplayer!! :>
helo again!! so after the menu frontend was done last time, spent this session wiring up js to actually make it functional instead of just sitting there as styled html. added: script.js: screen switching between menu/difficulty/lobby/game, the nickname + tutorial onboarding flow, and the actual game loop (timer, save/sync, destruction mode) parser.js : reads whatever gets typed into the editor and pulls out the variables firebaseClient.js: nicknames, scores, streaks, and the room/live-race logic for multiplayer tutorial.js: the spotlight walkthrough for first-time visitors config.js: firebase config + local player state caching taskEngine.js is still on the list, saved it for last since everything else needed to be working first before it made sense to build. tested what’s done so far end to end and caught a handful of small bugs along the way (some css that wasn’t applying, a couple html typos) which I fixed too. next up: taskEngine.js, then getting the lobby/live-race stuff talking to firebase properly ^_^
helo!! continuing from last time — taskEngine.js is done, and lobby/live-race is actually talking to firebase properly now too. this is it, the project’s finished!! taskEngine.js works backwards instead of using hardcoded rules like the old 25-rule version did: it builds a random hidden “reference solution” first (variable names, numbers, strings, a list), then derives every rule from a real fact about that solution — its actual sum, its actual length, whether one number happens to be prime, etc. since every rule comes from the same solution, they can never contradict each other no matter how many stack together. difficulty just controls how many rules get pulled from the pool (1 easy / 3 medium / 5 hard), and it keeps a history per difficulty so the same combo won’t repeat until the pool’s exhausted. wiring it all together turned up a bunch of small but annoying bugs, mostly not taskEngine’s fault directly: two separate filename casing mismatches (taskEngine.js and firebaseClient.js) — the script tags in index.html didn’t match the actual filenames on disk exactly, fine on windows locally but the dev server (and github pages) treat urls as case-sensitive, so both files were silently 404ing and breaking everything downstream config.js had the firebase config saved under the wrong variable name, so firebase never actually initialized and threw a reference error instead the join-a-room screen was stacking the code input + join button on top of the waiting room instead of hiding them after a successful join, looked broken even when it technically wasn’t rooms never got cleaned up in firestore after cancelling out of one, so an old room code could still say “already started” if you landed on it again later — fixed leaveRoom so the host actually deletes the room on the way out now singleplayer, hosting/joining rooms, live races, the leaderboard, streaks, and the tutorial all work end to end now. and it’s ready to be shipped!!
helo again!! it’s been a while, but I finally came back to this and added a bunch of stuff ^_^ the biggest one is puzzles. it’s a roadmap like chess.com’s, with 3 tracks: syntax (fix the broken code), complete (fill in the blanks) and typefix (fix the type errors). levels never run out, just like taskEngine.js. I wrote a tiny python interpreter (pyeval.js) to check the answers instead of loading pyodide, so there’s nothing heavy to download. there’s also a puzzle streak and a top 3 solvers for today / this week. added: themes: light mode, plus a custom theme maker where you pick your own colors (the old amber and cold signal presets are gone) settings: sfx on/off + volume, CRT scanlines on/off, theme, cloud save with an optional google link, and a feedback form will add: daily challenge: one task a day, same for everyone, ranked by time. it sits on the main menu with a countdown, press D to play it profile pictures: you unlock them by clearing puzzles and winning on different difficulties, and other players can see yours next to your name (the pixel art is still placeholder, I’m drawing the real ones later) keyboard control: esc goes back on every screen, and ? shows all the shortcuts sound effects: all made with the web audio api, no audio files most of these are half done, I just have to finish coding some of the javascript files and make sure everything runs perfectly! it’s still not perfect but it feels way more like an actual game now. if you find bugs or have ideas, there’s a feedback button in settings, I will read all of them!! :3 i forgot to add I changed the game’s name from The Variable Game to Debugr.fun cuz kewler.. and I got domain ^-^
it’s finally done ( for now), and I finished basically everything I said I’d add last time ^_^ finished : daily challenge: it’s on the main menu now with a countdown, press D to play it. everyone gets the exact same task each day (I seed math.random from the date while taskEngine builds it, so it comes out identical for every player). it alternates between medium and hard, ranked by time, and only your first clear of the day counts, replays are just practice. there’s a copy result button too profile pictures: 5 animals (bug, cat, fox, owl, snake). you unlock them by clearing tasks, doing a daily, and clearing puzzle levels. other players see yours next to your name in lobbies, the leaderboard and the rankings. the pixel art is ai generated btw (chatgpt), I can’t draw I’m sorry keyboard control: esc goes back on every screen, ? shows all the shortcuts, 1/2/3 pick a difficulty. I also added tiny key badges on every button (esc, enter,ctrl+s..) so you can actually see the shortcuts, and there’s a switch in settings to hide them if you hate them sound effects: all web audio api, no audio files, with volume and an on/off in settings also finished cloud save: you can link a google account and your progress (puzzles, stats, avatar, streak) backs up, and signing in on a new device restores it. and the feedback form works now, it saves to firestore and emails me. for some reason I couldn’t set up the logo and change name on log in page but i’ll just do that in the future updates I guess new stuff: the whole page is zoomed a bit on big screens cuz it felt too small tutorial spotlight is fixed for the zoom (it was drawing in the wrong spot) bugs I found: pressing 1 on the menu was handled twice, so it skipped the difficulty screen and instantly started an easy game, and pressing 2 created a room by itself hosting a room a second time showed the old room code game screen was too short on some screens and on phones the puzzle output got pushed off the bottom also I had to use claude to learn coding the mulberry32, math in theme.js, and for debugging it’s finally feeling like an actual game now!! still not perfect so if you find bugs there’s a feedback button in settings, I read all of them :3
Ships:
made a browser puzzle where you write Python-like variable assignments to satisfy 25 rules simultaneously - think neal.fun’s password game but for code. rules unlock one by one and start contradicting each other the deeper you go. most proud of the destruction mode. when the 45s timer hits zero the editor gets a red caret and starts deleting your code line by line from the bottom until you hit sync. it creates this genuine panic that felt fun to build. hardest part was making all 25 rules mathematically solvable at the same time. some rules override earlier ones so you keep rewriting the same lines - getting that supersession logic right without breaking the win condition took a while. to test it: just start typing variables. x = 5 will get you past rule 1. it gets weird around rule 7.
helo!! shipping this one — it’s the variable game, ranked edition. you write python-like code to satisfy a growing set of rules before a timer starts deleting it from the bottom, one line a second, unless you sync in time. play solo, or host/join a private room and race friends live for the leaderboard. the biggest thing I’m proud of is taskEngine.js — instead of hand-writing 25 fixed rules like the old version, it builds a hidden random solution first and derives every rule from a real fact about it (its actual sum, its actual length, etc), so no matter how many rules stack together they can never contradict each other. infinite non-repeating tasks out of that one trick. hardest part honestly wasn’t the game logic, it was wiring firebase up for real — nicknames, live rooms, race winners decided by firestore transactions so two people submitting at the same millisecond still only lets one through. spent lots of time chasing dumb stuff too. to test it: pick a difficulty and start typing variable assignments, or open two tabs and try hosting + joining a room to see the live race work. note : this project is obviously not perfect but I will try to improve this project and make it an actual kind of web browser game, so feedbacks , bug reports, and suggestions would be really helpful and appreciated...
|
1793105311.4815369
|
1793191711.4815369
|
|
43022
|
Pandaprint by @panda | Stardance
|
panda
|
0
|
25.65
|
0
|
[]
|
[{"post_id": 51571, "ts": "202 [{"post_id": 51571, "ts": "2026-08-21T10:51:01Z", "hours": 4.5892, "text": "Printhead + BOM finished ! Printhead Alright, i finished the printhead - this is probably the most time i worked without devlogging so i have quite a bit to explain The design is based on the Mantis toolhead and i stole a lot of stuff from tha, but im using my own design for quite a lot of stuff ! I using basically the exact same hardware i described, but i am going to switch my hotend - the Dragon GF is expensive asf, which i didnt know and i need to keep my costs under 600$ since Hack Club only funds that much. Otherwise the Hardware is the exact same as last devlog. As for how to attach the belts, i decided i would use a belt clamping mechanism (see below) which the toolhead would screw directly on - hopefully this will work. The BOM The BOM i would say was maybe actually harder to get done than the printhead, which is quite frankly amazing ! I was scouring websites for ages, trying to get it cheap as possible - this is quite a challenge, as this is supposed to be a Voron Trident alternative, and the Voron Trident is 1300$ !!!! I have to get mine under less than half that (600$) !! I just about managed it, but only cause i spent literal hours on this (my lapse recordings keep dying cuz i turn off my laptop b4 pausing them) My inital BOM was like 800$, and that was way over - i had to find cheaper components, skimp out, change a few things, etc. to make it work. The things i saved the most on are the NEMA 17 motors, the Frame, and the hotend - By switching my hotend to the TZ V6 i was able to save 50$, by using a rlly cheap 30$ trident frame kit from JLCPCB instead of an official one saved me 100$ and the NEMA 17 motors i found with help from zsharpminor for 5$ each !!!"}, {"post_id": 50184, "ts": "2026-08-19T09:38:59Z", "hours": 0.8206, "text": "Toolhead choices and Components finalized ! Alright, i started working on this again today after a lot of procrastination ! I did a LOT of research off-cam and on-cam by watching youtube videos, and opening up like 20 different toolheads in onshape to see how they fit together - kudos to the EVA 3 docs for being so easy to understand and giving a good visualization of how things fit together ! What did i do ? Today i finalized my component list (again). I needed to choose a extruder, hotend, probe, and cooling method for both the hotend and the extruded filament ! I did a lotta research, and have now decided on what i will use ! Shoutout to @anicetus for writing his 3dp design guide and for helping me out ! What i decided on : Bowden or direct drive ? There are really only 2 options for the filament path of a 3d printer - bowden or direct drive. direct drive is duh driving the filament directly into the printhead - so the extruder is part of the toolhead. Bowden means the extruder is mounted somewhere on the frame and extrudes filament into the printhead with a “bowden tube” - this makes the printhead lighter => faster, but increases the chance of something going wrong. Since ive never worked with a 3dp b4 and this is my first one, im going with direct drive as its a lot more reliable ! The Extruder Im going with a Sherpa mini - i want something lightweight since im using direct drive and this will sit on the toolhead, and the sherpa mini uses a NEMA 14 pancake motor, so much lighter than other options The hotend I initially thought id use a tz e3 because @anicetus recommended it to me, and he has good experience with it (its cheap too), but in the end i think ill go with the phaetus dragon HF hotend - this one has a faster flow rate and is stabler as it has a 4 hole mounting method instead of just 2, and because the tz e3 was initially meant to be a ender 3 drop-in - (ender 3 is a very common 3d printer from creality) Cooling Alright, so i need two types of cooling For this part i just used the recommendations from ani’s guide, since i didn’t have much knowledge of this and hes and expert - why question him, he hasn’t failed me till now (and never will, if your reading this, love you dude ) For part cooling (cools filament after its been deposited on to the build plate) im using 2 5015 blower fans - i know part cooling isnt strictly required for a 3dp, but no printer ever comes without it - id be pretty cooked without I also need a fan to cool my hotend, for this im going with a 3015 heatsink fan :D Whats next ? Next up is actually designing the toolhead - for this part im not gonna do it completely from scratch - im going to make my own version of some popular toolhead designs ! I think i could probably frankenstein together different aspects of different toolheads - i like how compact and easy to assemble EVA is, love the intuitive cooling of the Mantis toolhead, like the looks of the dragonburner, and also like the archetype mounting method. I have already imported a bunch of toolheads into my Onshape, and will probably experiment a lot next - lets see where this goes ! Btw ive already been working on frankensteing/designing this toolhead but its not ready to present yet"}, {"post_id": 47651, "ts": "2026-08-15T17:57:48Z", "hours": 0.3672, "text": "PLEA FOR HELP !!! Ok guys, im sorry for not keeping you updated on this project ! Big apology needed (for whoever is reading this ) The last week i got rlly busy with reviewing for stardance as some of you (who got their hackpads reviewed by me) may know - ive been cracking down on those since i became an official bts person for stardance hardware. RESEARCH I did research. A lot of research. And im hopeless. I need help I have no idea how to do this, so this is now a plea for help from you guys ! TO ANYONE READING THIS ! I NEED HELP ! if you have absolutely any tips or tricks or suggestions or guides or resources or anything on this, it would be REALLY helpful ! I desperately need help with this part, as its basically the only thing blocking me from getting my very own 3dp ! Even if you dont know anything about 3dps, still write a comment down below so i know im not insane and people are actually reading this - it would def make me feel better if nothing else And i dont know how the stardance algorithm works, but everyone reading please like this and give the project a follow ! this is the only time ill ask cuz hopefully then more people will see this and help me out ! Attached below is the EVA 2 toolhead, which uses the same MGNH12H rail as my printer with a front facing rail, so i can hopefully use it as inspiration !"}, {"post_id": 45334, "ts": "2026-08-11T18:38:22Z", "hours": 0.4669, "text": "All 3D Printed parts done ! Ok, i finally got time to hop back on and got cracking. The Idlers Alright, first of all, lemme explain what the idlers actually do, BUT YOU WOULD KNOW THIS IF YOU WOULD READ MY DEVLOGS ! Yes. I mean you. Sitting there, scrolling through stardance. GO READ MY DEVLOG or ill eat you i mean it Sorry for getting sidetracked, lemme explain again What the idlers do (fr this time) Alr, so my 3d printer uses a belted gantry alr - and if you dont know what that means genuinely go read my devlog for the gantry, i swear it explains stuff. Im not gonna explain everything again like a parrot - so basically the printhead and X axis move through turning a belt with a motor - and the belt cant levitate in midair unlike my soul when im doomscrolling at night when a floorboard creaks, so the belt needs to go around something - The idlers - and guess what - the idlers arent attached to anything, so they are idle get it. They spin freely with the belt. My idler mount Last devlog i had quickly designed a mount for my idlers that attaches to the frame - but i didn’t test it. so i did that Results Well, first thing i did was test if the idlers fit on the thing - and , they do ! The holes line up and everything ! (See pics below) After that, i tested if the whole thing fits on my Frame by replacing the old mount that wasnt mine (and changing the color so its stylish ) This is really the final task - i aligned it with the frame and it looked pretty good (see below) I zoomed out, aligned my cam, and checked - and what a pretty sight it was - my idlers (2 toothed circles) and my motor pulley (ring around motor shaft aligned perfectly from this side - it took a bit to align them along the other axis too, but it was worth it, it looks amazing ! Also i forgot to unpause lapse Whats next ? I still have a few tiny odd jobs and very simple 3dped parts to make, but that shouldn’t take very long, its so quick its not even worth logging. The next big thing to do before im actually done with the printer is the one ive been procrastinating and saving for last and dreading for weeks, cause its def the hardest one - ** The Toolhead** What is the Toolhead ? The toolheead is just a shell that holds the actual printing components - the hotend (heats stuff up), extruder (motor with gears that pushes filament into the hotend properly), probe (senses the print bed), etc. - sounds simple right ? well it isn’t Whats the difficulty ? The challenges Ow ow hot ! Im making a 3dp, so it gets hot - duh. I need to make sure that none of that filament melting heat gets to my 3dped toolhead (made out of filament 💀) mounting : im using a MGN12H linear rail, so i need a way to mount my toolhead on that. belts - i need a way to clamp the belts of my gantry down on my toolhead multiple parts : too many parts are needed and all of them need to be somewhere specific. The part cooling fans need to be at the top, the main fan near the hotend but not too near. The hotend needs to be low down, but also high up enough so its close to the extruder. The klicky probe needs to be near the bottom, so it can hit the print bed first, so i need to design around a clicky probe mount too 😭 . Im cooked. See ya soon !"}, {"post_id": 45194, "ts": "2026-08-11T14:50:19Z", "hours": 0.4669, "text": "Final 3D Printed Part for only the printer ! See below - blue one is mine, black is internet one ! WAHOOOO Alr, im overjoyed rn. I locked in today, and started with the final (big) part that needs to be designed ! This was the idler mount, and i resolved not to make the same mistake i made last time, and to do it in one try - that was the goal. I started taking my measurements and made a sketch again, this time making sure that i wasn’t modifying the idler positions, since that would mean they wouldn’t be aligned with my motors anymore - and i LOCKED TF IN I finished the part, and didn’t oversee anything for once, and it looked perfect ! Whats next ? I gotta hop off for now, but later im gonna make sure that the idlers fit by positioning them in onshape itself, and after that i have to confirm that they fit into my overall 3dp design - after that - im pretty much done ! I still have to do small little 3dped designs, but the rest of them are pretty simple, no big ones anymore, and even if i get the rest wrong its not critical. Ill be back soon with another update !"}, {"post_id": 44654, "ts": "2026-08-10T15:50:07Z", "hours": 2.7839, "text": "Gantry corner mounts for NEMA 17 motors Alright, im a bit pissed rn cause i just needed 2 and a half HOURS (and more that i didn’t log by accident)for what what was supposed to take half an hour and be a quick thing. What i did : For the better part of two hours, i sat there, recreating every single measurement and hole and screw gap and everything metciulously, and when i was finally done, and tried to mount my motor on it in the CAD ? everything was wrong. every single measurement, every single hole position, everything. So i did it all again. This time it was a bit better, but it still took ages, and didn’t work AGAIN Then guess what ? I did it AGAIN. And this time it worked ! the motor could be mounted (See below) After that, disaster struck when tryna import it into the overall 3dps cad file What did i do wrong ? I messed up bad - I changed the whole position of my motor’s pulley ! If you don’t understand what that means, basically the lil rod thats on the end of the motor controls a belt with a pulley and there are idlers on the other side - but now my whole motor was shifted, so it didn’t align with the idlers anymore ! The fix Instead of tryna do it again, instead this time i imported a model of a nema 17 mount from the internet, and literally used every single measurement from that one, ever angle, line length, chamfer size, EVERYTHING, and managed to make the final Half assed version of the motor mount : And when it FINALLY came time to check if it worked … drum roll it didn’t fit AGAIN. So i did one final fix with the measurements (i used the circle for a measurement instead of its center) and I was done ! It fit like a glove . Now theres only one part left - the Idlers !"}, {"post_id": 44151, "ts": "2026-08-09T18:38:19Z", "hours": 0.65, "text": "Finished Z axis and foot mount assembly ! What i did : Instead of continuing with the last 2 3dped parts (the idler mounts and the Gantry motor mounts) , i started replacing my prebuilt 3dps with my own designs, and i even added some branding on the feet ! I replaced all of them, the feet went in perfectly, with no mods needed . The Motor mounts didn’t initially fit, but after a bit of modification and fixing mistakes, they also are correct WOOOHOOOO Whats next ? Just 2 3DP components left - idler mounts and motor mounts for the gantry - then im done with everything other than printhead"}, {"post_id": 44113, "ts": "2026-08-09T17:49:46Z", "hours": 1.4836, "text": "Corner Motor Mounts Heya, i got a lil bit more time in the meantime today, so i worked on the next part - the corner motor mount This goes in the duh corner of my frame at the bottom, and screws into both the bottom frames that it will touch, then mount the motor with the holes that are always on NEMA 17 Motors. What’s next ? Not sure when ill do this, but theres also a rear motor mount that i have to design, and then after that"}, {"post_id": 44046, "ts": "2026-08-09T15:42:21Z", "hours": 0.5669, "text": "Foot mounts Why the devlog ? After lots of discussion with @1 and @anicetus it turns out i only gotta design the 3d printed components myself - not the ones that you buy :D Im now gonna gradually work on making my own versions of the parts What i did Today i made a very basic rubber foot mount of my own, using the original one i used that came from the internet ! its a lot less elegant, but was simple, with all the holes in the right places ! It will do for now Why onshape ? I switched to Onshape, because im more comfortable with it as a CAD modeling software - i had initially switched to FreeCAD as OnShape kept lagging for me on detailed prints, and Assembly was going rlly well ! Unfortunately, part design has been going really slow and i keep struggling with how it works, as its not as intuitive. From now on ill be using onshape for part design ! Whats next ? I still have a LOT of 3dped parts to design, and will be working on those - ill post another devlog next week once ive completed 1 or 2 more 3dped parts !"}, {"post_id": 42254, "ts": "2026-08-06T21:32:42Z", "hours": 1.85, "text": "Lots and lots and lots of research, some more research, and even more research. Alright, i did a LOT of research What i did wrong Today @1mon ( @1 ) told me that i messed up. Like severely messed up. I had been using 3d printed mounts for the motors and XY Joints till now, but im not actually allowed to do that - that disqualifies my project. I cant make them myself either, as i lack the knowledge of how 3dps work like someone who owns one or built a voron would have - nor do i have the experience in CAD to design these parts even with that knowledge. What do i do now ? For now, im putting this project on hold I will probably not work on this for a while, and will try and find another project to do that will (hopefully) give me the experience needed to design this myself, or will wait till the next YSWS and transfer this over - and then work on it once i have more experience with actual physical designs with motors. Im sorry to be the bearer of bad news, but Pandaprint won’t be moving along for quite a while"}, {"post_id": 40972, "ts": "2026-08-04T21:00:39Z", "hours": 3.3669, "text": "Printhead components ! I imported all the 3D Models for my printhead, and decided on my components Im using : A sherpa mini extruder tz e3 hotend dual 5015 blower fans for part cooling one 3010 heatsink fan for the hotend heatsink a 0.6 nozzle a Kilick probe (not added yet)"}, {"post_id": 40713, "ts": "2026-08-04T12:42:16Z", "hours": 1.3836, "text": "Gantry finished (X axis) ! What i did today : Today i finally added the XY joints with their (toothed) Idlers, and positioned the X axis inside them. The X axis is just going to be another 2020 extrusion with a rail (and carriage) strapped to it I addded the idlers inside, and also considered actually somehow adding the belts to the CAD, but i later gave up that idea cause i have no idea how to do that and it would be way too complex What’s next ? Now that im done with the motion system i have to move on to the Toolhead + Hotend What is a Toolhead/Hotend ? The toolhead is like a box for the hotend and whatever else we want - its usually 3d printed, and holds the actual thing that heats up filament and deposits it on to the print bed - that part is called the hotend. There are prebuilt toolheads from the community like The Mantis (see below) or the Eva - just search that one up if you wanna see. Since i want funding from Hack Club, i have to design one myself - im not exactly sure yet as to what hotend i will use or nozzle size, but i will do some research and have a LONG chat with opencode Apparently (i havent done research yet, just talking bout what ive heard !) the hotend is ( duh ) the part that heats up the filament - but it also needs to be cooled . Most probably it also has a motor that presses filament out. Apparently they come in different sizes and weights, and have different flow rates - the hotend choice influences what speed the printer will have. also, i think the nozzle is a different part . I think that the nozzle is what the extruder presses filament out of, so it decides how much quality the print has - smaller nozzle is equal to more resolution, but also more time needed. The nozzle can also be made up of different materials, and some materials are better for some materials - for example brass nozzles can be used well for PLA and PETG, but not for filament that needs to be heated up more, like ABS. So yeah, im gonna work on the toolhead and nozzle for a while :D"}, {"post_id": 40231, "ts": "2026-08-03T17:09:24Z", "hours": 1.7003, "text": "Gantry for Pandaprint part 1 Today, as promised i started working on the gantry. In classic coreXY fashion, im using belted motion with linear rails How does belted motion work ? Hehe im shamelessly gonna make you read my previous devlog now - if you check that out, i explained in that section how it works in detail. If your too lazy, i found this cool animation that explained it really well for me : https://www.youtube.com/shorts/fW7jzLN-__w What i did in the last hour and a half First of all, we need movement. So i added the motors. Our gantry (and Z axis) are gonna use NEMA 17 motors ( just a type of stepper motor for those of you that don’t know what that is), so i added them to the CAD with screw in (and on) mounts After that i attached a pulley to the motor shaft (so it can actually move something). There was a bit of choice on what to do next, but i decided i would finish all the parts that were mounted directly on the frame first The next step i did is attach the idlers (2 of them - if you dont get why theres 2 go watch the yt animation i mentioned !) to the Frame. After that i got a CAD model of the rails and the carriage, and positioned them on the Frame That was all for today. Whats next ? The next part is just adding the actual X axis and after that the toolhead/extruder/nozzle choice"}, {"post_id": 39666, "ts": "2026-08-02T19:52:04Z", "hours": 2.2281, "text": "Finished Z axis and print bed I finished the next part of the design - designing the Z axis. For all of you that dont know what it is - What is a CoreXY printer, and whats an Axis ? There are different ways a 3d printer can move, but im using the method called CoreXY, which is the traditional one. A 3d printer needs movement in some way in all 3 axises (axi ? axiss? axisses ? …. axes ?) - no not an actual ax, but a vector of movement like in a coordinate system. In simple word for dumb human, printer go up back and right In a CoreXY printer, the printhead only moves in (guess what ?) X and Y. So you might be wondering how it moves in Z (up and down). Well thats what i worked on today. You see, instead of the printhead going up and down, the print bed (where the filament gets printed on to) moves up and down - that way the bed rises to meet the printhead, and if the print grows taller, the bed moves down. Sound easy right ? Heh. Now we move on to the Movement Method Now that we know what we wanna move and where we wanna move it, we have to figure out HOW we can move it Luckily there are only 2 common methods to move stuff in a 3D printer Linear rails and -Linear rods Linear rails Linear rails are little train tracks that you put wheels on to - these wheels are then moved by a belt thats attached to a pulley thats atttached to a stepper motor - basically when i spin my stepper motor, it spins a litlle round wheel - that little round wheel is attached to a belt that then gets moved by the wheel. The moving Belt then also moves our bed. Linear rods Linear rods are much simpler. Here our lovely Stepper motor (im calling him Steppy from now on) spins a rod - basically a rlly long screw. This screw is then attached to our bed (not exactly, its actually attached to a small 3d printed mount that the bed is attached to cause we need to heat the bed but - shut up nerd panda ) When the motor spins left so does the screw/rod - in classic screw fashion that causes our bed to rise up. If it turns right, the exact opposite happens ” Lefty loosey, Righty Tighty” - Me probably For the Pandaprint, i chose to use linear rails instead of rods, since that seems to be common practice in the 3D printing community. There is one gaping hole in my logic that some of you imaginary readers may have discovered - wont my bed just try and spin wildly ? um … yes. The fix is rather simple - add something that stops the rotation ! Thats why the bed mount is also attached to a carriage on a linear rails - this fastens it and stops rotation , while still allowing it to move along the axis it has to move along. Up next Tomorrow ill start work on the gantry (aka X and Z) Here ill go with the previously mentioned belted approach - lets see how that goes :D"}, {"post_id": 39446, "ts": "2026-08-02T12:15:52Z", "hours": 2.9256, "text": "Pandaprint - A 3D Printer from Scratch July 30: Pandaprint is born (~3 hours) Alright, so here we go again. Since Outpost ended recently (I wasn’t able to go 😭), I’ve been waiting 2 weeks for the forms to reopen or Stardance to start so I can get Stardust and funding for my other projects. I’m slowly losing hope, and complaining about it all the time isn’t gonna help, so I needed a new project before I went insane and/or spiraled into depression. Unfortunately, I had no ideas. I kept gravitating towards another cyberdeck or dashboard thingy, but I was getting bored of those. Then I came across the videos from Outpost. There were SO MANY 3D PRINTERS. I’ve always wanted one of my own—until now I’ve only ever used the one at my makerspace—so this became my next project. The first thing I did was ask in #infill (an old Hack Club event where people built 3D printers) and got a ton of help from @anicetus and @java (shoutout to them!). Then I watched about 4 hours of YouTube videos on how 3D printers work and how to build them. The best one was Dr D-Flo’s 2½-hour marathon , which explained everything really well. After that I watched a few build videos and browsed the Voron Trident and Legacy for inspiration. Then came planning: I chose a CoreXY design, where the toolhead moves in X/Y and the bed moves vertically. For the frame, I went with 2020 aluminum extrusions , roughly the size of a Voron Trident, with overall dimensions of 500 × 350 mm (not the print volume) . I also decided on linear rails for the gantry instead of rods. I’m leaving things like the extruder, toolhead, motors, and hotend for later after more research and asking around on Slack. With the planning done, I downloaded models from similar printers and started designing my own frame. At first I planned to use visible corner connectors, but I didn’t really like how the little cubes looked, so I switched to hidden internal connectors instead. After aligning the extrusions, I added the gantry rails and borrowed some feet from another printer. Here’s the result after day one. Tomorrow I’ll add the corner brackets that support the gantry (the devil’s in the details… and in my touchpad 😭) and hopefully start on either the printhead or bed movement system. I’ve also got a lot of personal stuff to do, so we’ll see. To whoever’s reading this, goodbye! July 31: Frame revision (~2 hours) I spent a bit more time revising the frame. I changed the dimensions to 500 × 370 mm , which meant redesigning basically everything and took way longer than expected. I also did some visual tuning and decided to go for an all-black theme. I swapped the extrusion model for a black one (I’ll probably just spray-paint the real extrusions since I’m not sure if black ones are easy to buy). Finally, I adjusted the feet, made everything match the theme, and added the corner brackets that actually support the gantry. Next up: the Z-axis motion system . That’ll be tomorrow!"}]...
|
Title: Pandaprint by @panda | Stardance
Devlogs:
Title: Pandaprint by @panda | Stardance
Devlogs:
Pandaprint - A 3D Printer from Scratch July 30: Pandaprint is born (~3 hours) Alright, so here we go again. Since Outpost ended recently (I wasn’t able to go 😭), I’ve been waiting 2 weeks for the forms to reopen or Stardance to start so I can get Stardust and funding for my other projects. I’m slowly losing hope, and complaining about it all the time isn’t gonna help, so I needed a new project before I went insane and/or spiraled into depression. Unfortunately, I had no ideas. I kept gravitating towards another cyberdeck or dashboard thingy, but I was getting bored of those. Then I came across the videos from Outpost. There were SO MANY 3D PRINTERS. I’ve always wanted one of my own—until now I’ve only ever used the one at my makerspace—so this became my next project. The first thing I did was ask in #infill (an old Hack Club event where people built 3D printers) and got a ton of help from @anicetus and @java (shoutout to them!). Then I watched about 4 hours of YouTube videos on how 3D printers work and how to build them. The best one was Dr D-Flo’s 2½-hour marathon , which explained everything really well. After that I watched a few build videos and browsed the Voron Trident and Legacy for inspiration. Then came planning: I chose a CoreXY design, where the toolhead moves in X/Y and the bed moves vertically. For the frame, I went with 2020 aluminum extrusions , roughly the size of a Voron Trident, with overall dimensions of 500 × 350 mm (not the print volume) . I also decided on linear rails for the gantry instead of rods. I’m leaving things like the extruder, toolhead, motors, and hotend for later after more research and asking around on Slack. With the planning done, I downloaded models from similar printers and started designing my own frame. At first I planned to use visible corner connectors, but I didn’t really like how the little cubes looked, so I switched to hidden internal connectors instead. After aligning the extrusions, I added the gantry rails and borrowed some feet from another printer. Here’s the result after day one. Tomorrow I’ll add the corner brackets that support the gantry (the devil’s in the details… and in my touchpad 😭) and hopefully start on either the printhead or bed movement system. I’ve also got a lot of personal stuff to do, so we’ll see. To whoever’s reading this, goodbye! July 31: Frame revision (~2 hours) I spent a bit more time revising the frame. I changed the dimensions to 500 × 370 mm , which meant redesigning basically everything and took way longer than expected. I also did some visual tuning and decided to go for an all-black theme. I swapped the extrusion model for a black one (I’ll probably just spray-paint the real extrusions since I’m not sure if black ones are easy to buy). Finally, I adjusted the feet, made everything match the theme, and added the corner brackets that actually support the gantry. Next up: the Z-axis motion system . That’ll be tomorrow!
Finished Z axis and print bed I finished the next part of the design - designing the Z axis. For all of you that dont know what it is - What is a CoreXY printer, and whats an Axis ? There are different ways a 3d printer can move, but im using the method called CoreXY, which is the traditional one. A 3d printer needs movement in some way in all 3 axises (axi ? axiss? axisses ? …. axes ?) - no not an actual ax, but a vector of movement like in a coordinate system. In simple word for dumb human, printer go up back and right In a CoreXY printer, the printhead only moves in (guess what ?) X and Y. So you might be wondering how it moves in Z (up and down). Well thats what i worked on today. You see, instead of the printhead going up and down, the print bed (where the filament gets printed on to) moves up and down - that way the bed rises to meet the printhead, and if the print grows taller, the bed moves down. Sound easy right ? Heh. Now we move on to the Movement Method Now that we know what we wanna move and where we wanna move it, we have to figure out HOW we can move it Luckily there are only 2 common methods to move stuff in a 3D printer Linear rails and -Linear rods Linear rails Linear rails are little train tracks that you put wheels on to - these wheels are then moved by a belt thats attached to a pulley thats atttached to a stepper motor - basically when i spin my stepper motor, it spins a litlle round wheel - that little round wheel is attached to a belt that then gets moved by the wheel. The moving Belt then also moves our bed. Linear rods Linear rods are much simpler. Here our lovely Stepper motor (im calling him Steppy from now on) spins a rod - basically a rlly long screw. This screw is then attached to our bed (not exactly, its actually attached to a small 3d printed mount that the bed is attached to cause we need to heat the bed but - shut up nerd panda ) When the motor spins left so does the screw/rod - in classic screw fashion that causes our bed to rise up. If it turns right, the exact opposite happens ” Lefty loosey, Righty Tighty” - Me probably For the Pandaprint, i chose to use linear rails instead of rods, since that seems to be common practice in the 3D printing community. There is one gaping hole in my logic that some of you imaginary readers may have discovered - wont my bed just try and spin wildly ? um … yes. The fix is rather simple - add something that stops the rotation ! Thats why the bed mount is also attached to a carriage on a linear rails - this fastens it and stops rotation , while still allowing it to move along the axis it has to move along. Up next Tomorrow ill start work on the gantry (aka X and Z) Here ill go with the previously mentioned belted approach - lets see how that goes :D
Gantry for Pandaprint part 1 Today, as promised i started working on the gantry. In classic coreXY fashion, im using belted motion with linear rails How does belted motion work ? Hehe im shamelessly gonna make you read my previous devlog now - if you check that out, i explained in that section how it works in detail. If your too lazy, i found this cool animation that explained it really well for me : https://www.youtube.com/shorts/fW7jzLN-__w What i did in the last hour and a half First of all, we need movement. So i added the motors. Our gantry (and Z axis) are gonna use NEMA 17 motors ( just a type of stepper motor for those of you that don’t know what that is), so i added them to the CAD with screw in (and on) mounts After that i attached a pulley to the motor shaft (so it can actually move something). There was a bit of choice on what to do next, but i decided i would finish all the parts that were mounted directly on the frame first The next step i did is attach the idlers (2 of them - if you dont get why theres 2 go watch the yt animation i mentioned !) to the Frame. After that i got a CAD model of the rails and the carriage, and positioned them on the Frame That was all for today. Whats next ? The next part is just adding the actual X axis and after that the toolhead/extruder/nozzle choice
Gantry finished (X axis) ! What i did today : Today i finally added the XY joints with their (toothed) Idlers, and positioned the X axis inside them. The X axis is just going to be another 2020 extrusion with a rail (and carriage) strapped to it I addded the idlers inside, and also considered actually somehow adding the belts to the CAD, but i later gave up that idea cause i have no idea how to do that and it would be way too complex What’s next ? Now that im done with the motion system i have to move on to the Toolhead + Hotend What is a Toolhead/Hotend ? The toolhead is like a box for the hotend and whatever else we want - its usually 3d printed, and holds the actual thing that heats up filament and deposits it on to the print bed - that part is called the hotend. There are prebuilt toolheads from the community like The Mantis (see below) or the Eva - just search that one up if you wanna see. Since i want funding from Hack Club, i have to design one myself - im not exactly sure yet as to what hotend i will use or nozzle size, but i will do some research and have a LONG chat with opencode Apparently (i havent done research yet, just talking bout what ive heard !) the hotend is ( duh ) the part that heats up the filament - but it also needs to be cooled . Most probably it also has a motor that presses filament out. Apparently they come in different sizes and weights, and have different flow rates - the hotend choice influences what speed the printer will have. also, i think the nozzle is a different part . I think that the nozzle is what the extruder presses filament out of, so it decides how much quality the print has - smaller nozzle is equal to more resolution, but also more time needed. The nozzle can also be made up of different materials, and some materials are better for some materials - for example brass nozzles can be used well for PLA and PETG, but not for filament that needs to be heated up more, like ABS. So yeah, im gonna work on the toolhead and nozzle for a while :D
Printhead components ! I imported all the 3D Models for my printhead, and decided on my components Im using : A sherpa mini extruder tz e3 hotend dual 5015 blower fans for part cooling one 3010 heatsink fan for the hotend heatsink a 0.6 nozzle a Kilick probe (not added yet)
Lots and lots and lots of research, some more research, and even more research. Alright, i did a LOT of research What i did wrong Today @1mon ( @1 ) told me that i messed up. Like severely messed up. I had been using 3d printed mounts for the motors and XY Joints till now, but im not actually allowed to do that - that disqualifies my project. I cant make them myself either, as i lack the knowledge of how 3dps work like someone who owns one or built a voron would have - nor do i have the experience in CAD to design these parts even with that knowledge. What do i do now ? For now, im putting this project on hold I will probably not work on this for a while, and will try and find another project to do that will (hopefully) give me the experience needed to design this myself, or will wait till the next YSWS and transfer this over - and then work on it once i have more experience with actual physical designs with motors. Im sorry to be the bearer of bad news, but Pandaprint won’t be moving along for quite a while
Foot mounts Why the devlog ? After lots of discussion with @1 and @anicetus it turns out i only gotta design the 3d printed components myself - not the ones that you buy :D Im now gonna gradually work on making my own versions of the parts What i did Today i made a very basic rubber foot mount of my own, using the original one i used that came from the internet ! its a lot less elegant, but was simple, with all the holes in the right places ! It will do for now Why onshape ? I switched to Onshape, because im more comfortable with it as a CAD modeling software - i had initially switched to FreeCAD as OnShape kept lagging for me on detailed prints, and Assembly was going rlly well ! Unfortunately, part design has been going really slow and i keep struggling with how it works, as its not as intuitive. From now on ill be using onshape for part design ! Whats next ? I still have a LOT of 3dped parts to design, and will be working on those - ill post another devlog next week once ive completed 1 or 2 more 3dped parts !
Corner Motor Mounts Heya, i got a lil bit more time in the meantime today, so i worked on the next part - the corner motor mount This goes in the duh corner of my frame at the bottom, and screws into both the bottom frames that it will touch, then mount the motor with the holes that are always on NEMA 17 Motors. What’s next ? Not sure when ill do this, but theres also a rear motor mount that i have to design, and then after that
Finished Z axis and foot mount assembly ! What i did : Instead of continuing with the last 2 3dped parts (the idler mounts and the Gantry motor mounts) , i started replacing my prebuilt 3dps with my own designs, and i even added some branding on the feet ! I replaced all of them, the feet went in perfectly, with no mods needed . The Motor mounts didn’t initially fit, but after a bit of modification and fixing mistakes, they also are correct WOOOHOOOO Whats next ? Just 2 3DP components left - idler mounts and motor mounts for the gantry - then im done with everything other than printhead
Gantry corner mounts for NEMA 17 motors Alright, im a bit pissed rn cause i just needed 2 and a half HOURS (and more that i didn’t log by accident)for what what was supposed to take half an hour and be a quick thing. What i did : For the better part of two hours, i sat there, recreating every single measurement and hole and screw gap and everything metciulously, and when i was finally done, and tried to mount my motor on it in the CAD ? everything was wrong. every single measurement, every single hole position, everything. So i did it all again. This time it was a bit better, but it still took ages, and didn’t work AGAIN Then guess what ? I did it AGAIN. And this time it worked ! the motor could be mounted (See below) After that, disaster struck when tryna import it into the overall 3dps cad file What did i do wrong ? I messed up bad - I changed the whole position of my motor’s pulley ! If you don’t understand what that means, basically the lil rod thats on the end of the motor controls a belt with a pulley and there are idlers on the other side - but now my whole motor was shifted, so it didn’t align with the idlers anymore ! The fix Instead of tryna do it again, instead this time i imported a model of a nema 17 mount from the internet, and literally used every single measurement from that one, ever angle, line length, chamfer size, EVERYTHING, and managed to make the final Half assed version of the motor mount : And when it FINALLY came time to check if it worked … drum roll it didn’t fit AGAIN. So i did one final fix with the measurements (i used the circle for a measurement instead of its center) and I was done ! It fit like a glove . Now theres only one part left - the Idlers !
Final 3D Printed Part for only the printer ! See below - blue one is mine, black is internet one ! WAHOOOO Alr, im overjoyed rn. I locked in today, and started with the final (big) part that needs to be designed ! This was the idler mount, and i resolved not to make the same mistake i made last time, and to do it in one try - that was the goal. I started taking my measurements and made a sketch again, this time making sure that i wasn’t modifying the idler positions, since that would mean they wouldn’t be aligned with my motors anymore - and i LOCKED TF IN I finished the part, and didn’t oversee anything for once, and it looked perfect ! Whats next ? I gotta hop off for now, but later im gonna make sure that the idlers fit by positioning them in onshape itself, and after that i have to confirm that they fit into my overall 3dp design - after that - im pretty much done ! I still have to do small little 3dped designs, but the rest of them are pretty simple, no big ones anymore, and even if i get the rest wrong its not critical. Ill be back soon with another update !
All 3D Printed parts done ! Ok, i finally got time to hop back on and got cracking. The Idlers Alright, first of all, lemme explain what the idlers actually do, BUT YOU WOULD KNOW THIS IF YOU WOULD READ MY DEVLOGS ! Yes. I mean you. Sitting there, scrolling through stardance. GO READ MY DEVLOG or ill eat you i mean it Sorry for getting sidetracked, lemme explain again What the idlers do (fr this time) Alr, so my 3d printer uses a belted gantry alr - and if you dont know what that means genuinely go read my devlog for the gantry, i swear it explains stuff. Im not gonna explain everything again like a parrot - so basically the printhead and X axis move through turning a belt with a motor - and the belt cant levitate in midair unlike my soul when im doomscrolling at night when a floorboard creaks, so the belt needs to go around something - The idlers - and guess what - the idlers arent attached to anything, so they are idle get it. They spin freely with the belt. My idler mount Last devlog i had quickly designed a mount for my idlers that attaches to the frame - but i didn’t test it. so i did that Results Well, first thing i did was test if the idlers fit on the thing - and , they do ! The holes line up and everything ! (See pics below) After that, i tested if the whole thing fits on my Frame by replacing the old mount that wasnt mine (and changing the color so its stylish ) This is really the final task - i aligned it with the frame and it looked pretty good (see below) I zoomed out, aligned my cam, and checked - and what a pretty sight it was - my idlers (2 toothed circles) and my motor pulley (ring around motor shaft aligned perfectly from this side - it took a bit to align them along the other axis too, but it was worth it, it looks amazing ! Also i forgot to unpause lapse Whats next ? I still have a few tiny odd jobs and very simple 3dped parts to make, but that shouldn’t take very long, its so quick its not even worth logging. The next big thing to do before im actually done with the printer is the one ive been procrastinating and saving for last and dreading for weeks, cause its def the hardest one - ** The Toolhead** What is the Toolhead ? The toolheead is just a shell that holds the actual printing components - the hotend (heats stuff up), extruder (motor with gears that pushes filament into the hotend properly), probe (senses the print bed), etc. - sounds simple right ? well it isn’t Whats the difficulty ? The challenges Ow ow hot ! Im making a 3dp, so it gets hot - duh. I need to make sure that none of that filament melting heat gets to my 3dped toolhead (made out of filament 💀) mounting : im using a MGN12H linear rail, so i need a way to mount my toolhead on that. belts - i need a way to clamp the belts of my gantry down on my toolhead multiple parts : too many parts are needed and all of them need to be somewhere specific. The part cooling fans need to be at the top, the main fan near the hotend but not too near. The hotend needs to be low down, but also high up enough so its close to the extruder. The klicky probe needs to be near the bottom, so it can hit the print bed first, so i need to design around a clicky probe mount too 😭 . Im cooked. See ya soon !
PLEA FOR HELP !!! Ok guys, im sorry for not keeping you updated on this project ! Big apology needed (for whoever is reading this ) The last week i got rlly busy with reviewing for stardance as some of you (who got their hackpads reviewed by me) may know - ive been cracking down on those since i became an official bts person for stardance hardware. RESEARCH I did research. A lot of research. And im hopeless. I need help I have no idea how to do this, so this is now a plea for help from you guys ! TO ANYONE READING THIS ! I NEED HELP ! if you have absolutely any tips or tricks or suggestions or guides or resources or anything on this, it would be REALLY helpful ! I desperately need help with this part, as its basically the only thing blocking me from getting my very own 3dp ! Even if you dont know anything about 3dps, still write a comment down below so i know im not insane and people are actually reading this - it would def make me feel better if nothing else And i dont know how the stardance algorithm works, but everyone reading please like this and give the project a follow ! this is the only time ill ask cuz hopefully then more people will see this and help me out ! Attached below is the EVA 2 toolhead, which uses the same MGNH12H rail as my printer with a front facing rail, so i can hopefully use it as inspiration !
Toolhead choices and Components finalized ! Alright, i started working on this again today after a lot of procrastination ! I did a LOT of research off-cam and on-cam by watching youtube videos, and opening up like 20 different toolheads in onshape to see how they fit together - kudos to the EVA 3 docs for being so easy to understand and giving a good visualization of how things fit together ! What did i do ? Today i finalized my component list (again). I needed to choose a extruder, hotend, probe, and cooling method for both the hotend and the extruded filament ! I did a lotta research, and have now decided on what i will use ! Shoutout to @anicetus for writing his 3dp design guide and for helping me out ! What i decided on : Bowden or direct drive ? There are really only 2 options for the filament path of a 3d printer - bowden or direct drive. direct drive is duh driving the filament directly into the printhead - so the extruder is part of the toolhead. Bowden means the extruder is mounted somewhere on the frame and extrudes filament into the printhead with a “bowden tube” - this makes the printhead lighter => faster, but increases the chance of something going wrong. Since ive never worked with a 3dp b4 and this is my first one, im going with direct drive as its a lot more reliable ! The Extruder Im going with a Sherpa mini - i want something lightweight since im using direct drive and this will sit on the toolhead, and the sherpa mini uses a NEMA 14 pancake motor, so much lighter than other options The hotend I initially thought id use a tz e3 because @anicetus recommended it to me, and he has good experience with it (its cheap too), but in the end i think ill go with the phaetus dragon HF hotend - this one has a faster flow rate and is stabler as it has a 4 hole mounting method instead of just 2, and because the tz e3 was initially meant to be a ender 3 drop-in - (ender 3 is a very common 3d printer from creality) Cooling Alright, so i need two types of cooling For this part i just used the recommendations from ani’s guide, since i didn’t have much knowledge of this and hes and expert - why question him, he hasn’t failed me till now (and never will, if your reading this, love you dude ) For part cooling (cools filament after its been deposited on to the build plate) im using 2 5015 blower fans - i know part cooling isnt strictly required for a 3dp, but no printer ever comes without it - id be pretty cooked without I also need a fan to cool my hotend, for this im going with a 3015 heatsink fan :D Whats next ? Next up is actually designing the toolhead - for this part im not gonna do it completely from scratch - im going to make my own version of some popular toolhead designs ! I think i could probably frankenstein together different aspects of different toolheads - i like how compact and easy to assemble EVA is, love the intuitive cooling of the Mantis toolhead, like the looks of the dragonburner, and also like the archetype mounting method. I have already imported a bunch of toolheads into my Onshape, and will probably experiment a lot next - lets see where this goes ! Btw ive already been working on frankensteing/designing this toolhead but its not ready to present yet
Printhead + BOM finished ! Printhead Alright, i finished the printhead - this is probably the most time i worked without devlogging so i have quite a bit to explain The design is based on the Mantis toolhead and i stole a lot of stuff from tha, but im using my own design for quite a lot of stuff ! I using basically the exact same hardware i described, but i am going to switch my hotend - the Dragon GF is expensive asf, which i didnt know and i need to keep my costs under 600$ since Hack Club only funds that much. Otherwise the Hardware is the exact same as last devlog. As for how to attach the belts, i decided i would use a belt clamping mechanism (see below) which the toolhead would screw directly on - hopefully this will work. The BOM The BOM i would say was maybe actually harder to get done than the printhead, which is quite frankly amazing ! I was scouring websites for ages, trying to get it cheap as possible - this is quite a challenge, as this is supposed to be a Voron Trident alternative, and the Voron Trident is 1300$ !!!! I have to get mine under less than half that (600$) !! I just about managed it, but only cause i spent literal hours on this (my lapse recordings keep dying cuz i turn off my laptop b4 pausing them) My inital BOM was like 800$, and that was way over - i had to find cheaper components, skimp out, change a few things, etc. to make it work. The things i saved the most on are the NEMA 17 motors, the Frame, and the hotend - By switching my hotend to the TZ V6 i was able to save 50$, by using a rlly cheap 30$ trident frame kit from JLCPCB instead of an official one saved me 100$ and the NEMA 17 motors i found with help from zsharpminor for 5$ each !!!...
|
1793199137.2323017
|
1793803937.2323017
|
|
14695
|
Odyssey by @vihanr | Stardance
|
vihanr
|
0
|
25.6
|
0
|
[]
|
[{"post_id": 35898, "ts": "202 [{"post_id": 35898, "ts": "2026-07-27T17:01:26Z", "hours": 7.265, "text": "base odyssey-core finished! whats done: everything from initial commit and second devlog (too lazy to type it out lol) Follower.java: combines two vectors for velocity (translational vector, what keeps the robot on the path through arc-length implicitization plus drive vector, the vector that follows the bezier curve) and two different acceleration scalars (centripetal, calculated thruogh v^2*k, and tangential, just the tangential accel from VelocityProfile.java). This in total outputs a DriveSignal that drives the robot. updated DriveSignal that includes forward and strafe acceleration for centripetal pass MecanumDrive.java: putting it together. Takes in a drive signal, and outputs actual drive commands that make the wheels move. StaticCoefficientOpMode.java: opmode that helps you determine kS and kV (static friction coeff and velocity coeff) what im working on advanced heading control: tangential heading, constant heading, target-based heading, etc. GUI (finally): gui that helps you create a path in a user-friendly way and returns a JSON of pts that you can use while coding ambitious goals: turning into a maven lib? marketing to young/rookie teams? website with documentation?"}, {"post_id": 29949, "ts": "2026-07-17T04:17:13Z", "hours": 1.7903, "text": "finished VelocityProfile.java what is it? a velocity profile is just a simple mapping of the optimal velocity given the robot is along the path. it takes in distance, and it outputs velocity. how does it do that? first of all, because it maps distance in a cubic bezier-curve path, my numerical solution to arc-length parametrization using a Gauss-Legendre integrator proves actually useful. Based on that distance, you pass the optimal velocity through 3 different checks: centripetal, forward, and backward. centripetal pass: you get the curvature based on the distance you are along the path, and from that curvature you use the formula a_c=v^2*k (rearrange it to v^2=a_c/k and finally v=sqrt(a_c/k)) to find the curve velocity limit. This is also tuned by the maximum centripetal acceleration limit that is based on the robot’s physical capability. forward pass: with a standard velocity profile with just velocity mappings, the robot may physically not be able to accelerate from point A to B. a forward pass provides the maximum velocity for accelerating smoothly without error along two distances. It uses the kinematic formula with the max acceleration as the robot’s acceleration limit. backward pass: backward pass is basically the same idea as forward pass except, you guessed it, backwards! it uses the robot’s physical limit of braking (or deacceleration) to find the optimal breaking speed. for finding the velocity you can lerp the closest low and high vals. tests: 14 out of 14 passed yay (i had one slip up where i forgot to lerp v^2 and lerped v) now im working on: the simulated follower bc i need the actual robot for t he real follower"}, {"post_id": 29270, "ts": "2026-07-16T02:32:09Z", "hours": 16.5494, "text": "initial commit everything done so far (first devlog a bit late into the project so a lot is done) entire geometry package (Vector2d, BezierCurve, Pose2d, etc.) follower class DriveSignal that turns forward strafe and turn into one robust signal beautiful arc-length parametrization and implicitization (holy that took a long time accounted for like 5 hours lmao) but one of the key parts that makes this algo extremely accurate compared to others pid controller VERY VERY VERY basic GUI using JavaFX in progress: velocity profile (working on the basic methods on optimal centrepital acceleration, trying to learn 1st pass 2nd pass and 3rd pass) soon: simulated follower algo actual follower algo when i get the robot ambitious: GUI that turns your path (hand-drawn with bezier curve control points, maybe next i could include an optimize function) into JSON for easier readibility and maybe soon an actual java code that works potentially making this into a library??"}]...
|
Title: Odyssey by @vihanr | Stardance
Devlogs:
in Title: Odyssey by @vihanr | Stardance
Devlogs:
initial commit everything done so far (first devlog a bit late into the project so a lot is done) entire geometry package (Vector2d, BezierCurve, Pose2d, etc.) follower class DriveSignal that turns forward strafe and turn into one robust signal beautiful arc-length parametrization and implicitization (holy that took a long time accounted for like 5 hours lmao) but one of the key parts that makes this algo extremely accurate compared to others pid controller VERY VERY VERY basic GUI using JavaFX in progress: velocity profile (working on the basic methods on optimal centrepital acceleration, trying to learn 1st pass 2nd pass and 3rd pass) soon: simulated follower algo actual follower algo when i get the robot ambitious: GUI that turns your path (hand-drawn with bezier curve control points, maybe next i could include an optimize function) into JSON for easier readibility and maybe soon an actual java code that works potentially making this into a library??
finished VelocityProfile.java what is it? a velocity profile is just a simple mapping of the optimal velocity given the robot is along the path. it takes in distance, and it outputs velocity. how does it do that? first of all, because it maps distance in a cubic bezier-curve path, my numerical solution to arc-length parametrization using a Gauss-Legendre integrator proves actually useful. Based on that distance, you pass the optimal velocity through 3 different checks: centripetal, forward, and backward. centripetal pass: you get the curvature based on the distance you are along the path, and from that curvature you use the formula a_c=v^2*k (rearrange it to v^2=a_c/k and finally v=sqrt(a_c/k)) to find the curve velocity limit. This is also tuned by the maximum centripetal acceleration limit that is based on the robot’s physical capability. forward pass: with a standard velocity profile with just velocity mappings, the robot may physically not be able to accelerate from point A to B. a forward pass provides the maximum velocity for accelerating smoothly without error along two distances. It uses the kinematic formula with the max acceleration as the robot’s acceleration limit. backward pass: backward pass is basically the same idea as forward pass except, you guessed it, backwards! it uses the robot’s physical limit of braking (or deacceleration) to find the optimal breaking speed. for finding the velocity you can lerp the closest low and high vals. tests: 14 out of 14 passed yay (i had one slip up where i forgot to lerp v^2 and lerped v) now im working on: the simulated follower bc i need the actual robot for t he real follower
base odyssey-core finished! whats done: everything from initial commit and second devlog (too lazy to type it out lol) Follower.java: combines two vectors for velocity (translational vector, what keeps the robot on the path through arc-length implicitization plus drive vector, the vector that follows the bezier curve) and two different acceleration scalars (centripetal, calculated thruogh v^2*k, and tangential, just the tangential accel from VelocityProfile.java). This in total outputs a DriveSignal that drives the robot. updated DriveSignal that includes forward and strafe acceleration for centripetal pass MecanumDrive.java: putting it together. Takes in a drive signal, and outputs actual drive commands that make the wheels move. StaticCoefficientOpMode.java: opmode that helps you determine kS and kV (static friction coeff and velocity coeff) what im working on advanced heading control: tangential heading, constant heading, target-based heading, etc. GUI (finally): gui that helps you create a path in a user-friendly way and returns a JSON of pts that you can use while coding ambitious goals: turning into a maven lib? marketing to young/rookie teams? website with documentation?...
|
1792723729.1692243
|
1793328529.1692243
|
|
51971
|
MeshTree by @Trident | Stardance
|
Trident
|
1
|
25.6
|
335
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-17T11:51:28Z", "hours": 25.0, "multiplier": 13.36, "payout": 335, "blessing": "neutral", "text": "MeshTree is a macOS photogrammetry app that turns photos into textured 3D models. To test, Download MeshTree.zip from GitHub Releases, load your photo folder, and click Start Reconstruction. If MacOS blocks it, run xattr -cr /path/to/MeshTree.app or go to System Settings > Privacy & Security, scroll down to the Security section, and click Open Anyway.", "repo": "https://github.com/raiyan-islam-dev/Meshtree", "demo": "https://github.com/raiyan-islam-dev/Meshtree/releases/latest"}]...
|
[{"post_id": 77910, "ts": "202 [{"post_id": 77910, "ts": "2026-10-08T18:52:12Z", "hours": 0.5994, "text": "got rejected for the 3rd time😭 reshipping again🤞"}, {"post_id": 69593, "ts": "2026-09-17T11:37:04Z", "hours": 4.3556, "text": "Added a remove button to remove individual pictures. Fixed some bugs and polished a bit, I’m using the same photoset each time as a benchmark ik it looks a bit odd😭. Now shipping for the first time 🤞"}, {"post_id": 64418, "ts": "2026-09-08T19:44:00Z", "hours": 10.0856, "text": "Been a long time since my last devlog, was busy with exams. I realised the blur detection wasn’t working properly, soo I’ll have to work on that. I also noticed it’s using a massive amount of memory for a relatively small render, so most of the time went to just testing how the blur detection actually detects a blur and the memory load, and watching activity monitor while rendering, so progress might seem slow. But I have plans to make the memory situation better by using a chunk system where only a small section loads and renders soo there’s less load on memory. Also, since I tested a bunch of renders from objects around my house and our car, taking the pictures was a massive pain, so I’ll work on MeshCam so I can take pictures automatically at a set interval. I also have plans to add video support tho I haven’t figured out anything for that."}, {"post_id": 54772, "ts": "2026-08-25T21:35:59Z", "hours": 8.4114, "text": "Been a while since my last devlog, i’ve been busy with other things, but still managed to give some time to MeshTree. Last time I got Object Capture working with a very basic UI, just to see if the pipeline works or not, thankfully it did. Since then i’ve added a ton of features : -Quality presets(Low,Medium,High,Max,Ultra) -Cancel button -Blurry/low res image detection -3D model viewer -Progress Bar -.usdz export -A bunch of UI tweaks (this one alone took a surprising amount of time) Up next:MeshCam:- I’m planning a companion app called MeshCam. The idea is it will capture photos at a user selected interval and log in motion data, all in a single file that the user can just airdrop to their mac and MeshTree, and use the motion sensor data for even higher quality models"}, {"post_id": 51840, "ts": "2026-08-21T18:20:43Z", "hours": 2.335, "text": "Object Capture is working, successfully generated the first local .usdz 3D model from an image folder. Had some issues with WakaTime logging time, but after a bit of troubleshooting, it’s now fixed."}]...
|
Title: MeshTree by @Trident | Stardance
Devlogs:
Title: MeshTree by @Trident | Stardance
Devlogs:
Object Capture is working, successfully generated the first local .usdz 3D model from an image folder. Had some issues with WakaTime logging time, but after a bit of troubleshooting, it’s now fixed.
Been a while since my last devlog, i’ve been busy with other things, but still managed to give some time to MeshTree. Last time I got Object Capture working with a very basic UI, just to see if the pipeline works or not, thankfully it did. Since then i’ve added a ton of features : -Quality presets(Low,Medium,High,Max,Ultra) -Cancel button -Blurry/low res image detection -3D model viewer -Progress Bar -.usdz export -A bunch of UI tweaks (this one alone took a surprising amount of time) Up next:MeshCam:- I’m planning a companion app called MeshCam. The idea is it will capture photos at a user selected interval and log in motion data, all in a single file that the user can just airdrop to their mac and MeshTree, and use the motion sensor data for even higher quality models
Been a long time since my last devlog, was busy with exams. I realised the blur detection wasn’t working properly, soo I’ll have to work on that. I also noticed it’s using a massive amount of memory for a relatively small render, so most of the time went to just testing how the blur detection actually detects a blur and the memory load, and watching activity monitor while rendering, so progress might seem slow. But I have plans to make the memory situation better by using a chunk system where only a small section loads and renders soo there’s less load on memory. Also, since I tested a bunch of renders from objects around my house and our car, taking the pictures was a massive pain, so I’ll work on MeshCam so I can take pictures automatically at a set interval. I also have plans to add video support tho I haven’t figured out anything for that.
Added a remove button to remove individual pictures. Fixed some bugs and polished a bit, I’m using the same photoset each time as a benchmark ik it looks a bit odd😭. Now shipping for the first time 🤞
got rejected for the 3rd time😭 reshipping again🤞
Ships:
MeshTree is a macOS photogrammetry app that turns photos into textured 3D models. To test, Download MeshTree.zip from GitHub Releases, load your photo folder, and click Start Reconstruction. If MacOS blocks it, run xattr -cr /path/to/MeshTree.app or go to System Settings > Privacy & Security, scroll down to the Security section, and click Open Anyway....
|
1793152213.8305442
|
1793238613.8305442
|
|
57088
|
Arcade by @jinjin | Stardance
|
jinjin
|
1
|
25.6
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-05T12:28:08Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Arcade game, Play anywhere", "repo": "https://github.com/jinjintt89-cmyk/Arcade", "demo": "https://final-five-sandy.vercel.app/"}]...
|
[{"post_id": 64040, "ts": "202 [{"post_id": 64040, "ts": "2026-09-08T05:12:53Z", "hours": 0.9192, "text": "Adding more feautres to read me 500 words!"}, {"post_id": 62625, "ts": "2026-09-06T02:56:51Z", "hours": 0.6764, "text": "Making sure the code is below 30% ai"}, {"post_id": 61855, "ts": "2026-09-04T23:48:59Z", "hours": 10.1572, "text": "Stayed up all night, my 3rd all-nighter a bit sleepy but got some good work done"}, {"post_id": 61147, "ts": "2026-09-03T22:20:40Z", "hours": 9.1567, "text": "Adding flappy bird, and planning out the rest of the game"}, {"post_id": 60213, "ts": "2026-09-02T13:12:59Z", "hours": 3.4247, "text": "Adding Ping pong game, Took a while to add the paddles."}, {"post_id": 59525, "ts": "2026-09-01T12:10:49Z", "hours": 1.3683, "text": "Making a poster, and starting the code"}]...
|
Title: Arcade by @jinjin | Stardance
Devlogs:
Mak Title: Arcade by @jinjin | Stardance
Devlogs:
Making a poster, and starting the code
Adding Ping pong game, Took a while to add the paddles.
Adding flappy bird, and planning out the rest of the game
Stayed up all night, my 3rd all-nighter a bit sleepy but got some good work done
Making sure the code is below 30% ai
Adding more feautres to read me 500 words!
Ships:
Arcade game, Play anywhere...
|
1792875250.5536492
|
1793739250.5536492
|
|
15865
|
Untitled RPG by @Mario | Stardance
|
Mario
|
0
|
25.58
|
0
|
[]
|
[{"post_id": 18088, "ts": "202 [{"post_id": 18088, "ts": "2026-06-29T02:39:08Z", "hours": 10.1911, "text": "I added a new event system that triggers location-specific events each day based on the player’s current location and a luck seed generated at the start of the game. While the screenshot may not make it look like 10 hours of progress, most of that time went into building the underlying systems that will manage every event throughout an entire playthrough. Right now, there’s only a single event implemented, but the framework is in place to easily add many more. Investing time into these core systems now should make future development significantly faster, cleaner, and easier to expand."}, {"post_id": 15065, "ts": "2026-06-24T14:06:27Z", "hours": 2.8975, "text": "I added a confirm command so that players can move on after finishing character class selection and skill point allocation. The confirm command starts the actual game in the town of Ivywood (starter town name I have for now, and is subject to change), and on day 1. I haven’t added anything to happen after that yet, as that will require the longer process of defining how all events during the entire game will work. The main challenges I faced were having to define a rudimentary process through which a player can advance a day into the future, and also having to deal with the strange ways in which the terminal sometimes handles large text outputs."}, {"post_id": 12835, "ts": "2026-06-21T00:31:13Z", "hours": 6.9336, "text": "I built out the game’s opening experience. The game now has a proper introduction that leads into a character creation phase before the adventure begins. Players can choose from several fighting classes, each designed to encourage a different playstyle, and spend their starting skill points on a variety of attributes. These choices will influence how the game plays as you progress. With the introduction and character customization in place, my next goal is to start developing the main gameplay that follows this opening sequence. I’m planning to add a combat system, a way to interact with other characters throughout the world, and plenty of other features. One thing I’m still missing is a name! If you somehow decided that all of this was worth reading, ideas for the game’s title or features in general would be much appreciated."}, {"post_id": 7247, "ts": "2026-06-12T02:48:09Z", "hours": 3.7314, "text": "I started implementing some basic commands that players can use to interact with the game. At the moment, the only available commands display help information, but I now have a solid command-handling system in place that should make adding new commands and features much easier going forward. Creating the help page also helped me think through and refine how the game’s core mechanics and player interactions will work."}, {"post_id": 6456, "ts": "2026-06-10T21:21:04Z", "hours": 1.825, "text": "I created my project and started setting some basic functionality up. It can now start the program through a simple command, which results in a simple start screen being displayed. After that, the user can write inputs, and the program will see them but not act on them. I don’t have a name for the game yet, so the title screen has “untitled” in ASCII text as a placeholder."}]...
|
Title: Untitled RPG by @Mario | Stardance
Devlogs Title: Untitled RPG by @Mario | Stardance
Devlogs:
I created my project and started setting some basic functionality up. It can now start the program through a simple command, which results in a simple start screen being displayed. After that, the user can write inputs, and the program will see them but not act on them. I don’t have a name for the game yet, so the title screen has “untitled” in ASCII text as a placeholder.
I started implementing some basic commands that players can use to interact with the game. At the moment, the only available commands display help information, but I now have a solid command-handling system in place that should make adding new commands and features much easier going forward. Creating the help page also helped me think through and refine how the game’s core mechanics and player interactions will work.
I built out the game’s opening experience. The game now has a proper introduction that leads into a character creation phase before the adventure begins. Players can choose from several fighting classes, each designed to encourage a different playstyle, and spend their starting skill points on a variety of attributes. These choices will influence how the game plays as you progress. With the introduction and character customization in place, my next goal is to start developing the main gameplay that follows this opening sequence. I’m planning to add a combat system, a way to interact with other characters throughout the world, and plenty of other features. One thing I’m still missing is a name! If you somehow decided that all of this was worth reading, ideas for the game’s title or features in general would be much appreciated.
I added a confirm command so that players can move on after finishing character class selection and skill point allocation. The confirm command starts the actual game in the town of Ivywood (starter town name I have for now, and is subject to change), and on day 1. I haven’t added anything to happen after that yet, as that will require the longer process of defining how all events during the entire game will work. The main challenges I faced were having to define a rudimentary process through which a player can advance a day into the future, and also having to deal with the strange ways in which the terminal sometimes handles large text outputs.
I added a new event system that triggers location-specific events each day based on the player’s current location and a luck seed generated at the start of the game. While the screenshot may not make it look like 10 hours of progress, most of that time went into building the underlying systems that will manage every event throughout an entire playthrough. Right now, there’s only a single event implemented, but the framework is in place to easily add many more. Investing time into these core systems now should make future development significantly faster, cleaner, and easier to expand....
|
1793177585.909375
|
1793782385.909375
|
|
52086
|
Cool password manager by @Linuskjk | Stardance
|
Linuskjk
|
0
|
25.57
|
0
|
[]
|
[{"post_id": 79168, "ts": "202 [{"post_id": 79168, "ts": "2026-10-12T21:11:46Z", "hours": 10.0331, "text": "I added 2FA verification to HTML and js functions to make it much more secure…"}, {"post_id": 70177, "ts": "2026-09-18T16:59:18Z", "hours": 8.2703, "text": "I added the js functionality to create entries and let them render properly. Also I worked on the en-/de- cryptrion for passwords now using AES-GCM and salt with 300.000 iterations."}, {"post_id": 65529, "ts": "2026-09-10T18:44:15Z", "hours": 7.2642, "text": "Creating Login Page: I created the HTML and JS for the Main and Login page. Also I started off by adding all needed methods for the user informations and variables."}]...
|
Title: Cool password manager by @Linuskjk | Starda Title: Cool password manager by @Linuskjk | Stardance
Devlogs:
Creating Login Page: I created the HTML and JS for the Main and Login page. Also I started off by adding all needed methods for the user informations and variables.
I added the js functionality to create entries and let them render properly. Also I worked on the en-/de- cryptrion for passwords now using AES-GCM and salt with 300.000 iterations.
I added 2FA verification to HTML and js functions to make it much more secure…...
|
1792695066.806903
|
1793299866.806903
|
|
14666
|
HSV Vegetation Classifier by @yefoi | Stardance
|
yefoi
|
0
|
25.56
|
0
|
[]
|
[{"post_id": 20001, "ts": "202 [{"post_id": 20001, "ts": "2026-07-01T14:06:26Z", "hours": 0.3072, "text": "worked on expanding my algorithm to now also test out using a median method rather than just looking averages. this has resutled in my outcomes being less biased against the mixed class and reducing inference time by half. Sorry the image is not very descriptive but basically it takes the median rather than averaging them all together. thats the only change and I went through testing. Look at the confusion matrix, its not as imbalanced"}, {"post_id": 18387, "ts": "2026-06-29T14:58:13Z", "hours": 0.7211, "text": "working on the random forest classification method. it performs very well!"}, {"post_id": 15737, "ts": "2026-06-25T16:43:47Z", "hours": 0.8653, "text": "As I was working on adding comments to my algo code I noticed that my dry images (~330) was significantly lower than my two other classes so i took a little tangent and almost doubled the amount of images I have for my dry class to make it a better comparison"}, {"post_id": 15703, "ts": "2026-06-25T15:13:33Z", "hours": 1.6506, "text": "Adjusted the texture analysis bit to now use hue-saturation based co-occurance. It looks at how in a 3x3 grid, how the colors are distributed and their ratios. For ex, an image where its very even green, then the ratio of yellows to greens is similar across the whole image, more likely to be dense. If the image, has… mixed vegetation… then the co-occurance is less but the difference in ratios is bigger, and it is classified as mixed. Compared to previous devlog you can see there is an improvement, but there is obviously also variance between dense and mixed but not any when the true label is dense so i’m going to look into this bias later"}, {"post_id": 14374, "ts": "2026-06-23T14:13:09Z", "hours": 1.5186, "text": "I’ve also been looking into how to change the texture system to be consistent, i tried using a custom made value co-occurance system (Results in image) and used that to get an AI-coded GLCM based co-occurance system to try to get a texture but it genuinely seems like there is no real distrinction between the dense and the mixed classes in terms of texture, so I do think I’ve run into a wall here. Without neural networks (Which would ruin the point of having interpretability in my program) i genuinely dont know how I would fix this. So, I’m deciding to temporarily scrap the texture idea for my own program. to make up for this because I still want something to distinguish my algorithm or make it unique, i was just thinking to have some system such that with a large sample size, it uses EMD to find the best 25 centeroid/medoid images to create a (near) perfectly representative hue-saturation histogram. Actually I think I do want some kind of texture detection but it doesnt necessarily have to be with the value channel since that varies with luminance a ton lol"}, {"post_id": 13766, "ts": "2026-06-22T15:49:38Z", "hours": 2.0578, "text": "Started the day off by trying to get a siamese network to work alongside my algorithm but I didnt get any results yet. Afterwards I setup a system with my custom algorithm such that I give it a pre-made list of the best images to look at. I also actually went back to using EMD because I realized an issue with the program was that there were too few buckets. My previous way of using 12 hue buckets and 8 saturation buckets was being too lenient with EMD because a shift from orange-yellow to green in hue would just be like 1-2 buckets away. This means that the program wasn’t sensitive enough and as a result favored the extreme classes (dense and dry). I changed back to EMD, added the best list, and increased the buckets. The image used in this devlog actually is using random images from the 80 folder as the training sample, which is the eventual goal (Being able to use totally random training images to work the best) so I think this is hte most fair to post as progress. I’m thinking maybe I can add some system that automatically chooses the best images?"}, {"post_id": 12257, "ts": "2026-06-20T00:45:01Z", "hours": 2.9119, "text": "Worked on rewriting the code. Instead of using EMD I’m now using fisher weights and I readjusted the code for 3 classes, and as you can see there is a dramatic increase in performance! I’m going to start working on the Siamese network for comparison side of the paper"}, {"post_id": 10219, "ts": "2026-06-16T20:50:07Z", "hours": 1.8169, "text": "Began testing with an 80/20 split using my dataset. However, you can see here obviously that there are many issues with the program. Here is my new approach: Test out (Not completely change to) fisher chi squared weights, maybe EMD is the problem? Redo the dataset using three classes Scrap current shadow detection"}, {"post_id": 8098, "ts": "2026-06-13T14:54:10Z", "hours": 1.2614, "text": "Went through all of my data and sorted through images, specifically from forest8 and forest17 since those were incredibly problematic. I then collected averages for 50 images for each class from my training group for my HSV algorithm so i can start testing and creating a demo website."}, {"post_id": 7516, "ts": "2026-06-12T15:28:20Z", "hours": 0.8039, "text": "Created a unified system that evaluates both the color and the noise! the algorithm is complete, and the next steps are completing the implementation of other algorithms to run comparative analysis and a demo website for people to play around with the system on."}, {"post_id": 7487, "ts": "2026-06-12T14:25:01Z", "hours": 0.6861, "text": "a little bit of a breakthrough with using canny instead of laplachian to look out for density of sharp edges in value differences rather than entire fluctuations! You can see in the terminal that the canopy (good) image registers a much higher canniness score than the low shrub, which has fewer and less sharp shadows. This is the direction I want to take the texture detection algorithm in, now it’s just time to integrate it into the decision making machine"}, {"post_id": 7457, "ts": "2026-06-12T12:56:07Z", "hours": 1.4831, "text": "the final sort. ~2200 images fully sorted into their respective categories and ready for training."}, {"post_id": 7136, "ts": "2026-06-11T22:29:03Z", "hours": 2.1681, "text": "horrible day today with the sorting process. I changed the types to canopy, dry, lowShrub, and patchy, which was a small change but that meant I had to redo the sorting which was OK with me at first because these category names make more sense. then I realized that there was an issue with my google colab project where it wouldnt send the images to lowShrub folder because i had hardcoded “flat” into there which was really stupid of me so I wasted another hour there. I’m back at 1100/2200 images sorted and unfortunately it looks like I’m gonna have to finish this tomorrow."}, {"post_id": 6883, "ts": "2026-06-11T15:20:03Z", "hours": 1.76, "text": "I’ve been going through a new set of images and classifying them for my yolov8 model that im gonna benchmark and compare this to with the categories “canopy”, “dry”, “flat”, and “patchy”. I got 1100/2200 of those images done and uploaded to lapse."}, {"post_id": 6421, "ts": "2026-06-10T19:58:26Z", "hours": 0.9967, "text": "Worked on using Earth Mover’s Distance algorithm in order to calcualte HSV color distance rather than absolute difference. EMD is the standard for these types of applications so this is a good change. I also noticed that the visualiation from last devlog didn’t load so i also uploaded that in this devlog image"}, {"post_id": 6197, "ts": "2026-06-10T12:33:36Z", "hours": 1.4736, "text": "began on implementing my own HSV algorithm! i’ve already had some work put into it from previous project but most of this is made by hand. Essentially, it goes through each pixel in the image using vectorization and places it on a 2D histogram. it’s 12 buckets wide for hue and 8 buckets high for saturation. I then used matplotlib in python in order to visualize the 2D histograms and then start comparing it to the reference images that the uesr inputs, although I haven’t been able to numerically compare them yet. below attached is a result and its visualization"}, {"post_id": 6011, "ts": "2026-06-10T02:29:22Z", "hours": 3.0756, "text": "Set up a YOLOv8 model that is fine tuned to categorize vegetation images into good, mediocre, and poor vegetation. I actually started doing the categorization for training data a while ago but all of the technical stuff began after June 1st and that time was not logged. Ive done this before so it was quite easy, and its classifying well!"}]...
|
Title: HSV Vegetation Classifier by @yefoi | Stard Title: HSV Vegetation Classifier by @yefoi | Stardance
Devlogs:
Set up a YOLOv8 model that is fine tuned to categorize vegetation images into good, mediocre, and poor vegetation. I actually started doing the categorization for training data a while ago but all of the technical stuff began after June 1st and that time was not logged. Ive done this before so it was quite easy, and its classifying well!
began on implementing my own HSV algorithm! i’ve already had some work put into it from previous project but most of this is made by hand. Essentially, it goes through each pixel in the image using vectorization and places it on a 2D histogram. it’s 12 buckets wide for hue and 8 buckets high for saturation. I then used matplotlib in python in order to visualize the 2D histograms and then start comparing it to the reference images that the uesr inputs, although I haven’t been able to numerically compare them yet. below attached is a result and its visualization
Worked on using Earth Mover’s Distance algorithm in order to calcualte HSV color distance rather than absolute difference. EMD is the standard for these types of applications so this is a good change. I also noticed that the visualiation from last devlog didn’t load so i also uploaded that in this devlog image
I’ve been going through a new set of images and classifying them for my yolov8 model that im gonna benchmark and compare this to with the categories “canopy”, “dry”, “flat”, and “patchy”. I got 1100/2200 of those images done and uploaded to lapse.
horrible day today with the sorting process. I changed the types to canopy, dry, lowShrub, and patchy, which was a small change but that meant I had to redo the sorting which was OK with me at first because these category names make more sense. then I realized that there was an issue with my google colab project where it wouldnt send the images to lowShrub folder because i had hardcoded “flat” into there which was really stupid of me so I wasted another hour there. I’m back at 1100/2200 images sorted and unfortunately it looks like I’m gonna have to finish this tomorrow.
the final sort. ~2200 images fully sorted into their respective categories and ready for training.
a little bit of a breakthrough with using canny instead of laplachian to look out for density of sharp edges in value differences rather than entire fluctuations! You can see in the terminal that the canopy (good) image registers a much higher canniness score than the low shrub, which has fewer and less sharp shadows. This is the direction I want to take the texture detection algorithm in, now it’s just time to integrate it into the decision making machine
Created a unified system that evaluates both the color and the noise! the algorithm is complete, and the next steps are completing the implementation of other algorithms to run comparative analysis and a demo website for people to play around with the system on.
Went through all of my data and sorted through images, specifically from forest8 and forest17 since those were incredibly problematic. I then collected averages for 50 images for each class from my training group for my HSV algorithm so i can start testing and creating a demo website.
Began testing with an 80/20 split using my dataset. However, you can see here obviously that there are many issues with the program. Here is my new approach: Test out (Not completely change to) fisher chi squared weights, maybe EMD is the problem? Redo the dataset using three classes Scrap current shadow detection
Worked on rewriting the code. Instead of using EMD I’m now using fisher weights and I readjusted the code for 3 classes, and as you can see there is a dramatic increase in performance! I’m going to start working on the Siamese network for comparison side of the paper
Started the day off by trying to get a siamese network to work alongside my algorithm but I didnt get any results yet. Afterwards I setup a system with my custom algorithm such that I give it a pre-made list of the best images to look at. I also actually went back to using EMD because I realized an issue with the program was that there were too few buckets. My previous way of using 12 hue buckets and 8 saturation buckets was being too lenient with EMD because a shift from orange-yellow to green in hue would just be like 1-2 buckets away. This means that the program wasn’t sensitive enough and as a result favored the extreme classes (dense and dry). I changed back to EMD, added the best list, and increased the buckets. The image used in this devlog actually is using random images from the 80 folder as the training sample, which is the eventual goal (Being able to use totally random training images to work the best) so I think this is hte most fair to post as progress. I’m thinking maybe I can add some system that automatically chooses the best images?
I’ve also been looking into how to change the texture system to be consistent, i tried using a custom made value co-occurance system (Results in image) and used that to get an AI-coded GLCM based co-occurance system to try to get a texture but it genuinely seems like there is no real distrinction between the dense and the mixed classes in terms of texture, so I do think I’ve run into a wall here. Without neural networks (Which would ruin the point of having interpretability in my program) i genuinely dont know how I would fix this. So, I’m deciding to temporarily scrap the texture idea for my own program. to make up for this because I still want something to distinguish my algorithm or make it unique, i was just thinking to have some system such that with a large sample size, it uses EMD to find the best 25 centeroid/medoid images to create a (near) perfectly representative hue-saturation histogram. Actually I think I do want some kind of texture detection but it doesnt necessarily have to be with the value channel since that varies with luminance a ton lol
Adjusted the texture analysis bit to now use hue-saturation based co-occurance. It looks at how in a 3x3 grid, how the colors are distributed and their ratios. For ex, an image where its very even green, then the ratio of yellows to greens is similar across the whole image, more likely to be dense. If the image, has… mixed vegetation… then the co-occurance is less but the difference in ratios is bigger, and it is classified as mixed. Compared to previous devlog you can see there is an improvement, but there is obviously also variance between dense and mixed but not any when the true label is dense so i’m going to look into this bias later
As I was working on adding comments to my algo code I noticed that my dry images (~330) was significantly lower than my two other classes so i took a little tangent and almost doubled the amount of images I have for my dry class to make it a better comparison
working on the random forest classification method. it performs very well!
worked on expanding my algorithm to now also test out using a median method rather than just looking averages. this has resutled in my outcomes being less biased against the mixed class and reducing inference time by half. Sorry the image is not very descriptive but basically it takes the median rather than averaging them all together. thats the only change and I went through testing. Look at the confusion matrix, its not as imbalanced...
|
1792734906.1131082
|
1793339706.1131082
|
|
44237
|
Rabithole-site by @Tanish_ | Stardance
|
Tanish_
|
0
|
25.47
|
0
|
[]
|
[{"post_id": 66596, "ts": "202 [{"post_id": 66596, "ts": "2026-09-12T13:23:55Z", "hours": 8.2364, "text": "im back guysss after like a month or so cuz of my exams but heres wht i ve done recently i made new page which is like old internet era themed chating site where employes of companys talk its like slack nd u can see its ui below in the img and also i fixed some bug or smth in the last page and connected it with this one also in this log im showing u guys the whole page made upto now so theres a video too plsssss check it out and tell me imporvements like gimme ideas i am open to critissim and apreciation like if smthgs not good tell me abt it nd ill change it"}, {"post_id": 45240, "ts": "2026-08-11T16:10:57Z", "hours": 10.6922, "text": "so i added one more web to the rabbit hole and it tookk way longer than i thought but at least the UI is looking firee and there was an error in js file so i fixed it as well and thats is there are ss attached of the new web i made and its not the final version there are changes comming to it. also i frogot to write a dev log soo igg my 44mins got wasteddd."}, {"post_id": 41392, "ts": "2026-08-05T16:02:14Z", "hours": 6.545, "text": "I had already started to work on this project before I found out about Stardance, so I am already 6.something hrs in, on this project. I am writing this devlog like seconds after I pushed on github, like there was an error in the js file of this project so i was fixing it and after i fixed i, I went on the ysws website of hackclub and saw the Stardance programme there, so I joined it and now I am here. you can see my commit timing below in the SS. this is it for this devlog ill be back soon"}]...
|
Title: Rabithole-site by @Tanish_ | Stardance
Dev Title: Rabithole-site by @Tanish_ | Stardance
Devlogs:
I had already started to work on this project before I found out about Stardance, so I am already 6.something hrs in, on this project. I am writing this devlog like seconds after I pushed on github, like there was an error in the js file of this project so i was fixing it and after i fixed i, I went on the ysws website of hackclub and saw the Stardance programme there, so I joined it and now I am here. you can see my commit timing below in the SS. this is it for this devlog ill be back soon
so i added one more web to the rabbit hole and it tookk way longer than i thought but at least the UI is looking firee and there was an error in js file so i fixed it as well and thats is there are ss attached of the new web i made and its not the final version there are changes comming to it. also i frogot to write a dev log soo igg my 44mins got wasteddd.
im back guysss after like a month or so cuz of my exams but heres wht i ve done recently i made new page which is like old internet era themed chating site where employes of companys talk its like slack nd u can see its ui below in the img and also i fixed some bug or smth in the last page and connected it with this one also in this log im showing u guys the whole page made upto now so theres a video too plsssss check it out and tell me imporvements like gimme ideas i am open to critissim and apreciation like if smthgs not good tell me abt it nd ill change it...
|
1793263754.5242534
|
1793868554.5242534
|
|
45532
|
Colloseum of the Damned by @anton_chernobaiev | St Colloseum of the Damned by @anton_chernobaiev | Stardance...
|
anton_chernobaiev
|
1
|
25.45
|
140
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T17:27:13Z", "hours": 21.0, "multiplier": 6.99, "payout": 140, "blessing": "neutral", "text": "I created a top-down arena style game where you will have to fight infinite number of waves of enemies", "repo": "https://github.com/antonchernobaiev/ColloseumOfTheDamned", "demo": "https://colloseumofthedamned.netlify.app/"}]...
|
[{"post_id": 52280, "ts": "202 [{"post_id": 52280, "ts": "2026-08-22T12:00:56Z", "hours": 4.4539, "text": "Devlog #4 -I deceided to add few new animation(animation of getting hit and death animation -I also made knockback more predictable"}, {"post_id": 46588, "ts": "2026-08-13T22:33:02Z", "hours": 10.6144, "text": "#devlog 2 I decided to make my game into a colloseum style game where every wave more skeletons spawn and you have to kill them. I finished my first version!!!!! From last devlog I added: -An arena -An Hp Bar -Ability to restore your hp -A main menu And a lot more"}, {"post_id": 44814, "ts": "2026-08-10T20:47:14Z", "hours": 10.5761, "text": "#1 devlog Working on a top-down rpg game. Gameplay is to kill skeletons, from them receive xp upgrade your character and progress through areas. Until this point: -I added the main character, he can run, attack, and has animation’s for idle, run and attack -Also added the basic enemy(A skeleton) if i enter his range he will start to track me and when he is close enough i can kill him. -When my player hits the enemy. enemy is pushed back and receives damage. when his hp equals zero he dies. -player is invincible for now planning to adding it next"}]...
|
Title: Colloseum of the Damned by @anton_chernobai Title: Colloseum of the Damned by @anton_chernobaiev | Stardance
Devlogs:
#1 devlog Working on a top-down rpg game. Gameplay is to kill skeletons, from them receive xp upgrade your character and progress through areas. Until this point: -I added the main character, he can run, attack, and has animation’s for idle, run and attack -Also added the basic enemy(A skeleton) if i enter his range he will start to track me and when he is close enough i can kill him. -When my player hits the enemy. enemy is pushed back and receives damage. when his hp equals zero he dies. -player is invincible for now planning to adding it next
#devlog 2 I decided to make my game into a colloseum style game where every wave more skeletons spawn and you have to kill them. I finished my first version!!!!! From last devlog I added: -An arena -An Hp Bar -Ability to restore your hp -A main menu And a lot more
Devlog #4 -I deceided to add few new animation(animation of getting hit and death animation -I also made knockback more predictable
Ships:
I created a top-down arena style game where you will have to fight infinite number of waves of enemies...
|
1793137849.8833208
|
1793224249.8833208
|
|
53979
|
Tetr.AI by @caleb_welch | Stardance
|
caleb_welch
|
1
|
25.41
|
401
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T04:54:20Z", "hours": 23.0, "multiplier": 17.26, "payout": 401, "blessing": "neutral", "text": "Tetr.AI This is the first release of Tetr.AI, my first ever reinforcement-learning project built for the Hack Club Stardance YSWS. Tetr.AI includes: A custom built Tetris environment built with PyGame which allows you to train and run your own models as well as just play Tetris A PyTorch neural network Deep-Q-learning Model checkpoint saving and loading Saving of training statistics into a CSV file A graphing script to allow you to visualize how well your model trained Windows and Linux setup scripts Model status The training pipeline is completely functional, but due to time constraints this release won’t contain a model which can play Tetris well. I completed two long duration training experiments during development which revealed problems with reward shaping, epsilon, and sparse rewards. Everything on this is documented in the README. Training and experimentation will continue after stardance", "repo": "https://github.com/sourcream1012/Tetr.AI", "demo": "https://github.com/sourcream1012/Tetr.AI/releases/tag/v1.0.1-stardance"}]...
|
[{"post_id": 74121, "ts": "202 [{"post_id": 74121, "ts": "2026-09-26T18:31:12Z", "hours": 2.4075, "text": "Not to big of a devlog but I added executable files for easy running for this project. Also added a training_config json file to easily change training values."}, {"post_id": 70969, "ts": "2026-09-20T04:09:44Z", "hours": 2.9878, "text": "DEVLOG 8: I think I may ship soon… Ok so I’ve hit a road block. Stardance ends soon which means I don’t really have much time left. My project is a completely working reinforcement learning AI which can play Tetris but not well. Originally I wanted to perfect a model and then ship the project but due to Stardance ending soon I may change that. Recent additions Added the ability to resume training on a model you made at your most recent checkpoint Added setup automation scripts for windows and linux Refined README with a getting started section and more detail in the Model History section to give the project more story Because I’m essentially prepped for shipping and it is a completely working project I will probably ship soon. Wish me luck. The screenshots shown are the results from training Tetr.AI-V2"}, {"post_id": 69842, "ts": "2026-09-17T21:48:57Z", "hours": 4.3036, "text": "DEVLOG 7: more AI training (hint: FAILED) This graph shows the results of my first training session of my AI showing how well the AI does over time through the reward. In total it lasted ~17 hours and its obviously not nearly enough time. The reward is supposed to go up over time, which it is. But not fast enough. Overall it only seems to increase in reward over time just by VERY little. Moving onto the other graph which shows the rows cleared over time. As you can see it never really increases on average. This shows that: MY AI SUCKSSSSSSS My AI is dumb Overall my AI can’t learn and I need to just keep on adjusting numbers over and over again."}, {"post_id": 63361, "ts": "2026-09-07T04:24:31Z", "hours": 2.3192, "text": "DEVLOG 6: actual learning Wow two devlogs in pretty much a day… I need to touch grass… But that is not the point. IT IS FINALLY LEARNING (just very inefficiently) Currently it only learns from two things: How many rows it cleared on a single run Whether or not it sold the game Now pretty much the rest of this project will just be tweaking and experimenting with things. Before I ship I do want to train and release a demo model that you can test locally on your PC ( and I may want to test if it would work on android phones too ) that will come with the project. I also want to make it to where you can create and train your own models and potentially share them with other people. CAN’T WAIT FOR EVERYTHING TO BE DONE!!!!!!"}, {"post_id": 63183, "ts": "2026-09-06T21:02:14Z", "hours": 1.6347, "text": "DEVLOG 5: Random movements An update from my previous devlog where I started learning pytorch. I have not learned pytorch to the point to where I can explain everything down to its finest details but enough to make my “AI” do some random junk with no direction. Pretty much I’m just initializing random weights and letting it go. I have 200 input neurons for my 20x10 board. The video I attached below shows the AI just doing some random stuff like rotating non stop and moving left and right."}, {"post_id": 61233, "ts": "2026-09-04T02:07:36Z", "hours": 3.1531, "text": "DEVLOG 4: The beginning of learning PyTorch & Working AI-Tetris-Environment Pretty much the title sums up what I’ve been doing for the past 3h and 9m of this. I have some prior knowledge of the basics of machine learning ( from The Nature Of Code by Daniel Shiffman awesome book about coding would recommend ) by making a single layer perceptron ( basically a single neuron algorithm ) that can separate linearly separable data. I attempted to make a multi layered perceptron which actually puts the network in neural network. But I got stuck on back propagation. I don’t really know what to put as the picture for this devlog so I’ll just show a visualization of a neural network."}, {"post_id": 58338, "ts": "2026-08-30T18:37:11Z", "hours": 2.1031, "text": "DEVLOG 3: TETRIS ✅ THE TETRIS GAME IS PRETTY MUCH COMPLETE (besides some finishing touches) the game is completely playable with: Moving pieces with arrow keys Rotating pieces Deleting rows And the game restarts after there is no more valid places to go So pretty much complete. Now it is time to dive into the deep waters that is… NEURAL NETWORKS Oh boy this is going to be fun (and hard). I already know that the kind of training that I have to do for this is reinforcement learning . Which basically is like giving dopamine to your artificial brain when it does something good and giving it a slap in the neck when it does something bad. Which in return it changes its weights based on its previous performance. But for the first thing I got to do is set up all of the mumbo jumbo that will actually allow the neural network to see. And I think I have a rough understanding on how I’m going to implement that. Stay tuned on this awesome journey of making an AI play Tetris!"}, {"post_id": 57362, "ts": "2026-08-29T14:21:46Z", "hours": 1.8567, "text": "DEVLOG 2 Ok it’s been a couple days but I’ve added key presses where: - Left Arrow = Piece moves to the left - Right Arrow = Piece moves to the right - Down Arrow = Piece soft drops. - Space Bar = Piece hard drops. Overall it wasn’t that hard to implement but I had this bug where after soft dropping it saves that position to the locked pieces array. Which in return kind of broke the whole game. Here is the broken code block: if event . type == pygame . KEYDOWN : if event . key == pygame . K_LEFT : self . currentPiece . x -= 1 if not validSpace ( self . currentPiece , self . grid ): self . currentPiece . x += 1 lockPiece ( self . currentPiece , self . locked_pos ) The problem was the last line where it says lockPiece ( self . currentPiece , self . locked_pos ) So all I had to do was remove that and it works perfectly. Now I need to make the game rules where if you finish a row it deletes it and then the hardest part… ROTATION."}, {"post_id": 55349, "ts": "2026-08-27T04:09:15Z", "hours": 4.8822, "text": "DEVLOG 1: Basic foundations It took me way longer than it should have but I finally did it. I learned how to use PyGame and now I’m on my way to remaking Tetris. I set up a function that puts a random Tetris shape onto the 2D array that is essentially the one source of truth in Tetris at least that’s how I think of it. With PyGame I then update every frame what it should display based on that 2D array. The picture below shows me spinning up 3 instances of this code working. Currently the blocks don’t do much but I’ll start working on that tomorrow. Plus I really want to get the Tetris remake done quick so I can start building and training the neural network to actually play the game for me."}]...
|
Title: Tetr.AI by @caleb_welch | Stardance
Devlog Title: Tetr.AI by @caleb_welch | Stardance
Devlogs:
DEVLOG 1: Basic foundations It took me way longer than it should have but I finally did it. I learned how to use PyGame and now I’m on my way to remaking Tetris. I set up a function that puts a random Tetris shape onto the 2D array that is essentially the one source of truth in Tetris at least that’s how I think of it. With PyGame I then update every frame what it should display based on that 2D array. The picture below shows me spinning up 3 instances of this code working. Currently the blocks don’t do much but I’ll start working on that tomorrow. Plus I really want to get the Tetris remake done quick so I can start building and training the neural network to actually play the game for me.
DEVLOG 2 Ok it’s been a couple days but I’ve added key presses where: - Left Arrow = Piece moves to the left - Right Arrow = Piece moves to the right - Down Arrow = Piece soft drops. - Space Bar = Piece hard drops. Overall it wasn’t that hard to implement but I had this bug where after soft dropping it saves that position to the locked pieces array. Which in return kind of broke the whole game. Here is the broken code block: if event . type == pygame . KEYDOWN : if event . key == pygame . K_LEFT : self . currentPiece . x -= 1 if not validSpace ( self . currentPiece , self . grid ): self . currentPiece . x += 1 lockPiece ( self . currentPiece , self . locked_pos ) The problem was the last line where it says lockPiece ( self . currentPiece , self . locked_pos ) So all I had to do was remove that and it works perfectly. Now I need to make the game rules where if you finish a row it deletes it and then the hardest part… ROTATION.
DEVLOG 3: TETRIS ✅ THE TETRIS GAME IS PRETTY MUCH COMPLETE (besides some finishing touches) the game is completely playable with: Moving pieces with arrow keys Rotating pieces Deleting rows And the game restarts after there is no more valid places to go So pretty much complete. Now it is time to dive into the deep waters that is… NEURAL NETWORKS Oh boy this is going to be fun (and hard). I already know that the kind of training that I have to do for this is reinforcement learning . Which basically is like giving dopamine to your artificial brain when it does something good and giving it a slap in the neck when it does something bad. Which in return it changes its weights based on its previous performance. But for the first thing I got to do is set up all of the mumbo jumbo that will actually allow the neural network to see. And I think I have a rough understanding on how I’m going to implement that. Stay tuned on this awesome journey of making an AI play Tetris!
DEVLOG 4: The beginning of learning PyTorch & Working AI-Tetris-Environment Pretty much the title sums up what I’ve been doing for the past 3h and 9m of this. I have some prior knowledge of the basics of machine learning ( from The Nature Of Code by Daniel Shiffman awesome book about coding would recommend ) by making a single layer perceptron ( basically a single neuron algorithm ) that can separate linearly separable data. I attempted to make a multi layered perceptron which actually puts the network in neural network. But I got stuck on back propagation. I don’t really know what to put as the picture for this devlog so I’ll just show a visualization of a neural network.
DEVLOG 5: Random movements An update from my previous devlog where I started learning pytorch. I have not learned pytorch to the point to where I can explain everything down to its finest details but enough to make my “AI” do some random junk with no direction. Pretty much I’m just initializing random weights and letting it go. I have 200 input neurons for my 20x10 board. The video I attached below shows the AI just doing some random stuff like rotating non stop and moving left and right.
DEVLOG 6: actual learning Wow two devlogs in pretty much a day… I need to touch grass… But that is not the point. IT IS FINALLY LEARNING (just very inefficiently) Currently it only learns from two things: How many rows it cleared on a single run Whether or not it sold the game Now pretty much the rest of this project will just be tweaking and experimenting with things. Before I ship I do want to train and release a demo model that you can test locally on your PC ( and I may want to test if it would work on android phones too ) that will come with the project. I also want to make it to where you can create and train your own models and potentially share them with other people. CAN’T WAIT FOR EVERYTHING TO BE DONE!!!!!!
DEVLOG 7: more AI training (hint: FAILED) This graph shows the results of my first training session of my AI showing how well the AI does over time through the reward. In total it lasted ~17 hours and its obviously not nearly enough time. The reward is supposed to go up over time, which it is. But not fast enough. Overall it only seems to increase in reward over time just by VERY little. Moving onto the other graph which shows the rows cleared over time. As you can see it never really increases on average. This shows that: MY AI SUCKSSSSSSS My AI is dumb Overall my AI can’t learn and I need to just keep on adjusting numbers over and over again.
DEVLOG 8: I think I may ship soon… Ok so I’ve hit a road block. Stardance ends soon which means I don’t really have much time left. My project is a completely working reinforcement learning AI which can play Tetris but not well. Originally I wanted to perfect a model and then ship the project but due to Stardance ending soon I may change that. Recent additions Added the ability to resume training on a model you made at your most recent checkpoint Added setup automation scripts for windows and linux Refined README with a getting started section and more detail in the Model History section to give the project more story Because I’m essentially prepped for shipping and it is a completely working project I will probably ship soon. Wish me luck. The screenshots shown are the results from training Tetr.AI-V2
Not to big of a devlog but I added executable files for easy running for this project. Also added a training_config json file to easily change training values.
Ships:
Tetr.AI This is the first release of Tetr.AI, my first ever reinforcement-learning project built for the Hack Club Stardance YSWS. Tetr.AI includes: A custom built Tetris environment built with PyGame which allows you to train and run your own models as well as just play Tetris A PyTorch neural network Deep-Q-learning Model checkpoint saving and loading Saving of training statistics into a CSV file A graphing script to allow you to visualize how well your model trained Windows and Linux setup scripts Model status The training pipeline is completely functional, but due to time constraints this release won’t contain a model which can play Tetris well. I completed two long duration training experiments during development which revealed problems with reward shaping, epsilon, and sparse rewards. Everything on this is documented in the README. Training and experimentation will continue after stardance...
|
1793152517.067659
|
1793238917.067659
|
|
36767
|
Personal Website/Portfolio by @Leaf | Stardance
|
Leaf
|
0
|
25.38
|
0
|
[]
|
[{"post_id": 63415, "ts": "202 [{"post_id": 63415, "ts": "2026-09-07T07:37:20Z", "hours": 3.4517, "text": "Devlog #4 ᯓ★ this isn’t gonna be the most informative post, instead I do wanna apologize for the lack of updates…!! i’ve gotten busy with school, seems like an excuse but applying for college is stressful and a lot!!! taking calculus & studying for every class ever blocks up my schedule. this three day weekend has given me the time to pick up on this project again and I couldn’t be happier. I’ve been making some progress in FRC so there is a lot to add to this page. I’ve started learning to program while I’ve been away so that’ll be showcased on here… hopefully. While this is a filler post, look at some of my progress :) i have to continue filling out the rest of this page, I spent a lot of time digging for more videos and thinking about how I want to organize the technical parts of this page. Thank you for reading. <3"}, {"post_id": 47316, "ts": "2026-08-15T06:00:38Z", "hours": 10.5433, "text": "Devlog #3 ᯓ★ OOPS I totally forgot to post, this is progress over the last 2 weeks!!! I’ve been really busy with school now that I’m a senior. Good news though - I think I finally got a feel for how I want the rest of my website to feel basically. Heres a full tour of what I have so far. What I’ve done: LOTS of visual updates Filled out (almost) all of my sections Added a cool interactive card view for my biggest projects! Infinite carousel for some of my recent artworks!! (Not filled out yet) This might not seem like a lot for 10 hours but trust me trying to make this fit my liking took SO long…. It’s also been a lot more than just the editing, lots of prep work going into picking out what pictures to display, thinking about my ToS, other achievements…. :D My next plans are to… Add my artwork into the gallery Robotics & Regatta Pages (hopefully) I also forgot to add this in my original post but I spent a lot of time trying to make my website mobile friendly as well."}, {"post_id": 35606, "ts": "2026-07-27T04:26:32Z", "hours": 5.7475, "text": "Devlog #2 ᯓ★ I might’ve forgotten to post my progress (whoops) but I’ve made significant progress on my website !! I’m still working on formatting my things so the github won’t be updated for a while. Changes: Responsive Navigation Bar New artwork Robotics page ( work in progress) -Decided on a color palette These changes might not seem like much… BUT a lot of my time has been spent preparing to add stuff onto my robotics page!! I’ve sorted through some of the photos that had been taken throughout the 2026 season, and I’ve also been looking at some photos I can include for the Solar Regatta section. Doing this also had me learning how to render some of the CAD work I’ve done, so I’ll be providing examples below ~ Next Steps ᯓ★ Reformat the showcase section Work on robotics page There are more things I plan on doing, but I’m really just going with the flow and learning new things!!! I’m happy with how far I’ve come with this website."}, {"post_id": 31789, "ts": "2026-07-20T13:44:24Z", "hours": 5.6361, "text": "My First Devlog ᯓ★ https://leafllm.github.io/leafLLM/ Hi hi!! I’m Leaf, and I decided for my first project to be a personal website. This is something I’ve been putting off for 3 years. Over the past 3 days, I’ve been taking it easy, and now I am slowly adding a few little features to this project! Some of the things I’ve added: FAQ Section ★ If I’m being honest, this was one of the annoying things to program because it involves JavaScript. It was supposed to be a simple tutorial that I followed and then I managed to overcomplicate it. I’m pleased with the results, though! You can see some older iterations in the pictures below Filled out ’About me ★ This section was pretty easy to write about, but originally, there wasn’t supposed to be anything about engineering! This was supposed to be a commission website, but I realize that this is impressive along with the other things I’ve managed to achieve >w< (You’ll get to see as I make progress!) Showcase section ★ There’s not much to say about this, as I already described it, but the progress on this is going well. I spent the night gathering the pictures I want to display, so stay tuned!!! Gallery There’s…. Nothing in there. Yet. But something is better than nothing. So What’s Next? ✦ Uhh.. Well, I don’t have a strict plan for this. I have a couple of vague ideas, such as Fill out the showcase section Add images Animate it (?) Fix the Right Column with the hyperlinks Add my socials Figuring out what artwork to display in my gallery … and a lot more. I may or may not focus on redoing the artwork that’s showcased on the right, she’s just a placeholder for now. Along with that, I want to design a favicon for my website too! With that comes figuring out the color palette for my website. But that’s a future issue. I’d like to showcase some draft ideas that I created long before I started this project. See you in my next post! ᶻ 𝗓 𐰁"}]...
|
Title: Personal Website/Portfolio by @Leaf | Stard Title: Personal Website/Portfolio by @Leaf | Stardance
Devlogs:
My First Devlog ᯓ★ https://leafllm.github.io/leafLLM/ Hi hi!! I’m Leaf, and I decided for my first project to be a personal website. This is something I’ve been putting off for 3 years. Over the past 3 days, I’ve been taking it easy, and now I am slowly adding a few little features to this project! Some of the things I’ve added: FAQ Section ★ If I’m being honest, this was one of the annoying things to program because it involves JavaScript. It was supposed to be a simple tutorial that I followed and then I managed to overcomplicate it. I’m pleased with the results, though! You can see some older iterations in the pictures below Filled out ’About me ★ This section was pretty easy to write about, but originally, there wasn’t supposed to be anything about engineering! This was supposed to be a commission website, but I realize that this is impressive along with the other things I’ve managed to achieve >w< (You’ll get to see as I make progress!) Showcase section ★ There’s not much to say about this, as I already described it, but the progress on this is going well. I spent the night gathering the pictures I want to display, so stay tuned!!! Gallery There’s…. Nothing in there. Yet. But something is better than nothing. So What’s Next? ✦ Uhh.. Well, I don’t have a strict plan for this. I have a couple of vague ideas, such as Fill out the showcase section Add images Animate it (?) Fix the Right Column with the hyperlinks Add my socials Figuring out what artwork to display in my gallery … and a lot more. I may or may not focus on redoing the artwork that’s showcased on the right, she’s just a placeholder for now. Along with that, I want to design a favicon for my website too! With that comes figuring out the color palette for my website. But that’s a future issue. I’d like to showcase some draft ideas that I created long before I started this project. See you in my next post! ᶻ 𝗓 𐰁
Devlog #2 ᯓ★ I might’ve forgotten to post my progress (whoops) but I’ve made significant progress on my website !! I’m still working on formatting my things so the github won’t be updated for a while. Changes: Responsive Navigation Bar New artwork Robotics page ( work in progress) -Decided on a color palette These changes might not seem like much… BUT a lot of my time has been spent preparing to add stuff onto my robotics page!! I’ve sorted through some of the photos that had been taken throughout the 2026 season, and I’ve also been looking at some photos I can include for the Solar Regatta section. Doing this also had me learning how to render some of the CAD work I’ve done, so I’ll be providing examples below ~ Next Steps ᯓ★ Reformat the showcase section Work on robotics page There are more things I plan on doing, but I’m really just going with the flow and learning new things!!! I’m happy with how far I’ve come with this website.
Devlog #3 ᯓ★ OOPS I totally forgot to post, this is progress over the last 2 weeks!!! I’ve been really busy with school now that I’m a senior. Good news though - I think I finally got a feel for how I want the rest of my website to feel basically. Heres a full tour of what I have so far. What I’ve done: LOTS of visual updates Filled out (almost) all of my sections Added a cool interactive card view for my biggest projects! Infinite carousel for some of my recent artworks!! (Not filled out yet) This might not seem like a lot for 10 hours but trust me trying to make this fit my liking took SO long…. It’s also been a lot more than just the editing, lots of prep work going into picking out what pictures to display, thinking about my ToS, other achievements…. :D My next plans are to… Add my artwork into the gallery Robotics & Regatta Pages (hopefully) I also forgot to add this in my original post but I spent a lot of time trying to make my website mobile friendly as well.
Devlog #4 ᯓ★ this isn’t gonna be the most informative post, instead I do wanna apologize for the lack of updates…!! i’ve gotten busy with school, seems like an excuse but applying for college is stressful and a lot!!! taking calculus & studying for every class ever blocks up my schedule. this three day weekend has given me the time to pick up on this project again and I couldn’t be happier. I’ve been making some progress in FRC so there is a lot to add to this page. I’ve started learning to program while I’ve been away so that’ll be showcased on here… hopefully. While this is a filler post, look at some of my progress :) i have to continue filling out the rest of this page, I spent a lot of time digging for more videos and thinking about how I want to organize the technical parts of this page. Thank you for reading. <3...
|
1792774515.9164813
|
1793379315.9164813
|
|
5134
|
Hbp100 by @Erox | Stardance
|
Erox
|
1
|
25.37
|
314
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-30T08:40:18Z", "hours": 20.0, "multiplier": 15.55, "payout": 314, "blessing": "neutral", "text": "Hbp100 After all the debugging, rewrites, benchmarks, broken builds now Hbp100 v3.1.1 is now release d.. What started as a small python privacy project eventually and became a full Rust implementation with a Python interface. The current version has: A native Rust core Python support through PyO3 Ml-powered contextual privacy decisions Reversible placeholder masking Session-based metadata Extremely low processing latency Releases on GitHub and crates.io There are still edge cases, the extractor can still be improved, and there are plenty of things I want to build next like rayon and multi threaded performance for more speed . It is not like , i have less speed(the current speed is enough to make flash accept defeat) but why not , i use arch btw. and now i can finally sleep at ease .", "repo": "https://github.com/Erox-02/humming-bird-v3", "demo": "https://hbp100-v3-web.vercel.app/"}]...
|
[{"post_id": 67253, "ts": "202 [{"post_id": 67253, "ts": "2026-09-13T10:00:36Z", "hours": 3.2161, "text": "This time i removed all the extractors , and made a new impl to add config from json files or code in python and rust both , it took me a lot of time also i added a website built on hbp100 this time for easier review but dont forget me crate"}, {"post_id": 59769, "ts": "2026-09-01T18:19:08Z", "hours": 2.1569, "text": "This time i fixed the session issue and wrote THE README MYSELF ,took me a lot of time still worth it"}, {"post_id": 57931, "ts": "2026-08-30T08:30:07Z", "hours": 2.0364, "text": "Finally session based metadata added now i can sleep in ease also it is v3.1.1 both on crates and github"}, {"post_id": 54711, "ts": "2026-08-25T19:44:36Z", "hours": 6.9267, "text": "This is probably the most hardcore devlog in this whole session, my task was simply write debug , ask gpt why it didnt work , then deepseek wrote code still didnt work and thts how 7 hrs passed me adding session with persistent memory also with a lot of optimizations , also v3.1.0 is on cargo now , go ahead and check it up for me uWu."}, {"post_id": 53028, "ts": "2026-08-23T12:36:57Z", "hours": 3.2983, "text": "This time it is a huge improvement , it looks like v3 to v3.0.1 but i added pyo3 and python api’s , i mean now even python can use my rust package with rust like speed + safety in python , also i fixed some small bugs in extractor , also added benchmarks (the speed is insane , see on the tagged screenshot ) also the ml is hella fast , in python the ml model only took 3x time than a whole iteration in rust with extractors and pyo3 overhead , also now i have got some more ideas to add in my hbp100 i think those will make it even better and polished.."}, {"post_id": 47281, "ts": "2026-08-15T03:57:56Z", "hours": 5.1125, "text": "today finally i shipped hbp100 v3 on crates “ https://crates.io/crates/hbp100/3.0.0 ” , this time no python runtime full rust even ml in rust thx to lightgbm3 , now it is far faster than the python pkl one , it took me 3+hrs just to train the model and to convert my old python logic into rust , then i had to do the dual readme setup to prevent the bug i came to meet on my last project too , now its fine i made a release on github too , in the crates release there is no “test.rs” but in git release i added tht , the tagged screenshot is result of test"}, {"post_id": 45578, "ts": "2026-08-12T05:11:26Z", "hours": 2.8333, "text": "actually when i started the project i didnt knew abt stardance , still after v2.2 i used it , v2.2 was pure python and really fast but still it didnt convince me , so i went to v3 rust and i tried rust and python hybrid it sucked i am unable to debug the mess i made so i am thinking to write the ml portion in rust too , i have a live website for v2.2 too , i am new to onnx so it might take some time debugging , still my v2.2 was pretty much successful , one can try tht on “ https://github.com/Erox-02/humming-bird-v3/releases/tag/v2.0.0 ” , so next will be v3.0 and i intend to ship the live website as a other project"}]...
|
Title: Hbp100 by @Erox | Stardance
Devlogs:
actua Title: Hbp100 by @Erox | Stardance
Devlogs:
actually when i started the project i didnt knew abt stardance , still after v2.2 i used it , v2.2 was pure python and really fast but still it didnt convince me , so i went to v3 rust and i tried rust and python hybrid it sucked i am unable to debug the mess i made so i am thinking to write the ml portion in rust too , i have a live website for v2.2 too , i am new to onnx so it might take some time debugging , still my v2.2 was pretty much successful , one can try tht on “ https://github.com/Erox-02/humming-bird-v3/releases/tag/v2.0.0 ” , so next will be v3.0 and i intend to ship the live website as a other project
today finally i shipped hbp100 v3 on crates “ https://crates.io/crates/hbp100/3.0.0 ” , this time no python runtime full rust even ml in rust thx to lightgbm3 , now it is far faster than the python pkl one , it took me 3+hrs just to train the model and to convert my old python logic into rust , then i had to do the dual readme setup to prevent the bug i came to meet on my last project too , now its fine i made a release on github too , in the crates release there is no “test.rs” but in git release i added tht , the tagged screenshot is result of test
This time it is a huge improvement , it looks like v3 to v3.0.1 but i added pyo3 and python api’s , i mean now even python can use my rust package with rust like speed + safety in python , also i fixed some small bugs in extractor , also added benchmarks (the speed is insane , see on the tagged screenshot ) also the ml is hella fast , in python the ml model only took 3x time than a whole iteration in rust with extractors and pyo3 overhead , also now i have got some more ideas to add in my hbp100 i think those will make it even better and polished..
This is probably the most hardcore devlog in this whole session, my task was simply write debug , ask gpt why it didnt work , then deepseek wrote code still didnt work and thts how 7 hrs passed me adding session with persistent memory also with a lot of optimizations , also v3.1.0 is on cargo now , go ahead and check it up for me uWu.
Finally session based metadata added now i can sleep in ease also it is v3.1.1 both on crates and github
This time i fixed the session issue and wrote THE README MYSELF ,took me a lot of time still worth it
This time i removed all the extractors , and made a new impl to add config from json files or code in python and rust both , it took me a lot of time also i added a website built on hbp100 this time for easier review but dont forget me crate
Ships:
Hbp100 After all the debugging, rewrites, benchmarks, broken builds now Hbp100 v3.1.1 is now release d.. What started as a small python privacy project eventually and became a full Rust implementation with a Python interface. The current version has: A native Rust core Python support through PyO3 Ml-powered contextual privacy decisions Reversible placeholder masking Session-based metadata Extremely low processing latency Releases on GitHub and crates.io There are still edge cases, the extractor can still be improved, and there are plenty of things I want to build next like rayon and multi threaded performance for more speed . It is not like , i have less speed(the current speed is enough to make flash accept defeat) but why not , i use arch btw. and now i can finally sleep at ease ....
|
1793130498.8010464
|
1793216898.8010464
|
|
10353
|
Geometry Dash Elo System by @EthanCubes | Stardanc Geometry Dash Elo System by @EthanCubes | Stardance...
|
EthanCubes
|
0
|
25.37
|
0
|
[]
|
[{"post_id": 46109, "ts": "202 [{"post_id": 46109, "ts": "2026-08-13T03:11:37Z", "hours": 1.8578, "text": "Devlog #7 I finally made a GUI! This is the second time I’ve made a GUI with Python, and the first time with Tkinter (last time I used Pygame). The UI currently looks pretty rough and I definitely need to find a way to make it look better, if that’s even possible. I would have much prefered if I could’ve just built this as a web app and got this done like 5 hours sooner."}, {"post_id": 46059, "ts": "2026-08-13T00:19:30Z", "hours": 1.8589, "text": "Devlog #6 The last time I ported everything over to the new locations without copying because I wanted to reorganize and make the code better, I completely forgot about demonlist integration. So I spent a while trying to get the demonlist integration to work. I’m writing this like a day later so I don’t really remember what I was struggling with, all I remember is that I forgot to convert the data from server to JSON, and was trying to access data in an incorrect format. And I was just blaming in on the main.py file instead of the fetching file, and yeah I took way too much time solving a problem that didn’t need to exist."}, {"post_id": 45028, "ts": "2026-08-11T05:44:48Z", "hours": 9.7608, "text": "Devlog #5: Well, I’m back. The reason I haven’t been working on this project is because there’s no where to host the backend without being blocked by Cloudflare- except locally on your own device. So, I’m turning this into a local Python app. So far, I’ve made a CLI that can access the servers and return the data, and also return an ELO. Due to uh, file migration, I had to rewrite a lot of a code (and totally not because the code was absolute spaghetti before)"}, {"post_id": 27382, "ts": "2026-07-12T22:09:25Z", "hours": 3.9747, "text": "#Devlog #4: I can finally claim to be a full-stack web developer. New Stuff I re-added the frontend for the web application to that users cna actually see the data. I added a functional backend that the frontend can actually send requests to and get data back from. Challenges I had previously managed to fetched data from RobTop’s servers, but I couldn’t manage to find a way to get the data onto the front end. I also couldn’t make the requests from the front end because CORS would block it. So I had to learn how to code a backend with Python and Flask. Lowkey I still don’t fully understand how to use Flask though lol."}, {"post_id": 26918, "ts": "2026-07-11T23:57:04Z", "hours": 1.3942, "text": "Devlog #3: Is anyone actually reading this? I spent an hour today trying to implement code for a simple leaderboard of ELO. It went well for a while, and then I actually tested the application and got temporarily IP banned from the GD servers. And then it happened again, even when I added a delay to requesting data from the servers. At this point I don’t even know what I can do to add a live-ish leaderboard so I just scrapped the idea altogether. Yay, I love when I waste an entire hour doing something that I have to undo literally moments later."}, {"post_id": 26767, "ts": "2026-07-11T19:16:29Z", "hours": 2.5953, "text": "Devlog #2 I got RobTop’s servers to return data about two minutes after I made my last devlog. Since I couldn’t make a devlog yet, I just decided to add some new features. So the reason that I didn’t get any data from the server is because I added an extra parameter. When I removed it, the servers returned something like 1:EthanCubes:2:272364184:13:75:17:63:6:0:9:1:10:3:11:12: 51:15: 14:0:15:0:16:31268368:3:729:52:97:46:2675:8:0:4:11#999:0:10 why are there emojis there. I used GD Colon’s video on making his GD website to decode (gd reference) be abomination and turn it into a dictionary (because python). I also added a function to calculate the skill rating from the dictionary. I’m rated 1515. Smiffy777 is rated over one million."}, {"post_id": 26319, "ts": "2026-07-11T01:40:14Z", "hours": 3.9275, "text": "Devlog #1 I spent 3 hours trying to get Node.js to send a request to RobTop’s servers with no response at all. Then I switched to building a backend with Python and then it took me like 5 minutes to get a response. 80/20 rule, except in the end all the info I got was, in the words of the furry great player GD Colon, “a hot minus-one”. (You can see this at the bottom of the terminal, amidst all the errors). So it’s more like 80/20/0. I felt the need to devlog because well, -1 is still something even if mathematically is it less than nothing."}]...
|
Title: Geometry Dash Elo System by @EthanCubes | S Title: Geometry Dash Elo System by @EthanCubes | Stardance
Devlogs:
Devlog #1 I spent 3 hours trying to get Node.js to send a request to RobTop’s servers with no response at all. Then I switched to building a backend with Python and then it took me like 5 minutes to get a response. 80/20 rule, except in the end all the info I got was, in the words of the furry great player GD Colon, “a hot minus-one”. (You can see this at the bottom of the terminal, amidst all the errors). So it’s more like 80/20/0. I felt the need to devlog because well, -1 is still something even if mathematically is it less than nothing.
Devlog #2 I got RobTop’s servers to return data about two minutes after I made my last devlog. Since I couldn’t make a devlog yet, I just decided to add some new features. So the reason that I didn’t get any data from the server is because I added an extra parameter. When I removed it, the servers returned something like 1:EthanCubes:2:272364184:13:75:17:63:6:0:9:1:10:3:11:12: 51:15: 14:0:15:0:16:31268368:3:729:52:97:46:2675:8:0:4:11#999:0:10 why are there emojis there. I used GD Colon’s video on making his GD website to decode (gd reference) be abomination and turn it into a dictionary (because python). I also added a function to calculate the skill rating from the dictionary. I’m rated 1515. Smiffy777 is rated over one million.
Devlog #3: Is anyone actually reading this? I spent an hour today trying to implement code for a simple leaderboard of ELO. It went well for a while, and then I actually tested the application and got temporarily IP banned from the GD servers. And then it happened again, even when I added a delay to requesting data from the servers. At this point I don’t even know what I can do to add a live-ish leaderboard so I just scrapped the idea altogether. Yay, I love when I waste an entire hour doing something that I have to undo literally moments later.
#Devlog #4: I can finally claim to be a full-stack web developer. New Stuff I re-added the frontend for the web application to that users cna actually see the data. I added a functional backend that the frontend can actually send requests to and get data back from. Challenges I had previously managed to fetched data from RobTop’s servers, but I couldn’t manage to find a way to get the data onto the front end. I also couldn’t make the requests from the front end because CORS would block it. So I had to learn how to code a backend with Python and Flask. Lowkey I still don’t fully understand how to use Flask though lol.
Devlog #5: Well, I’m back. The reason I haven’t been working on this project is because there’s no where to host the backend without being blocked by Cloudflare- except locally on your own device. So, I’m turning this into a local Python app. So far, I’ve made a CLI that can access the servers and return the data, and also return an ELO. Due to uh, file migration, I had to rewrite a lot of a code (and totally not because the code was absolute spaghetti before)
Devlog #6 The last time I ported everything over to the new locations without copying because I wanted to reorganize and make the code better, I completely forgot about demonlist integration. So I spent a while trying to get the demonlist integration to work. I’m writing this like a day later so I don’t really remember what I was struggling with, all I remember is that I forgot to convert the data from server to JSON, and was trying to access data in an incorrect format. And I was just blaming in on the main.py file instead of the fetching file, and yeah I took way too much time solving a problem that didn’t need to exist.
Devlog #7 I finally made a GUI! This is the second time I’ve made a GUI with Python, and the first time with Tkinter (last time I used Pygame). The UI currently looks pretty rough and I definitely need to find a way to make it look better, if that’s even possible. I would have much prefered if I could’ve just built this as a web app and got this done like 5 hours sooner....
|
1792795679.5268087
|
1793400479.5268087
|
|
22644
|
AI Footprint by @cinnamahi | Stardance
|
cinnamahi
|
0
|
25.37
|
0
|
[]
|
[{"post_id": 71495, "ts": "202 [{"post_id": 71495, "ts": "2026-09-20T22:35:56Z", "hours": 9.1725, "text": "Devlog #3: TBD What I have so far: Since the last devlog, I have added the location personalization and reworked the UI to make it more conducive to new additions. The location personalization, which allows users to input their country and have their emissions calculated from its annual average grid carbon density, uses a database from OurWorldInData. Initially I used Papaparse to try to achieve this, but I was using a small csv so it proved easier to parse the data with vanilla js while avoiding the errors from importing Papa. I also created pages for the pop-up: a main screen, settings, and dashboard. I seperated the code into files for each page because it had begun to get really messy. The settings page includes toggles for an always on display and light/dark mode, both of which are a work in progress, and a place to input your country. (It must be noted that this is optional and the default is set to the US.) I spent a lot of time troubleshooting the buttons because they would often stop working while I was editing unrelated code (usually because I messed with their code on accident), but they finally work consistently! What I Need To Work On As I mentioned earlier, I am working on personalization settings such as light/dark mode and an always on display rather than just a pop up when you click on the icon. I also am going to add a history function for the dashboard to track your AI usage over time; the goal is for it to display a week’s worth of time."}, {"post_id": 38620, "ts": "2026-08-01T03:29:28Z", "hours": 8.7367, "text": "Devlog #2: AI Footprint Detection What I Have So Far The extension now accurately detects and displays the stopwatch when the user is on an AI website (specifically ChatGPT, Claude, and Gemini so far). I had some difficulty with this due to certain variables being set at weird times and slight inconsistencies with event listeners, so the time wouldn’t store correctly or keep resetting. Along with fixing that, I added the ability for the stopwatch time to be stored within the user’s chrome storage and a daily reset. Finally, I cleaned up the pop-up appearance. What I Need To Work On My next step is user personalization, both in display and the actual calculation, for which certain values are user-dependent (location, device, etc.). I have already begun to draft the location part but the code is commented out right now as to not break the emissions count right now. The ultimate goal is detecting key strokes for a more accurate measure of time using AI, but that’s for the future."}, {"post_id": 12302, "ts": "2026-06-20T02:17:47Z", "hours": 7.4628, "text": "Devlog #1: AI Footprint (tentative name) I finally have some semblance of a chrome extension to submit evidence of! This is my first time working on an extension so majority of this time was spent experimenting and figuring out how to structure the program. The Concept With the increased usage of AI, I believed it was necessary to bring to light its environmental impacts. Most people think of its costs in general terms: takes up land, a water guzzler, produces carbon dioxide. This chrome extension displays real-time data for people who like the see the actual numbers. What I Have So Far The extension opens successfully, the popup displays as intended, and the stopwatch and carbon emissions tracker run when the user is on the Claude website. What I Need To Work On At the moment, the extension only detects Claude. I have yet to figure out why it does not work on ChatGPT or Gemini (my two other test subjects) but that is what I’ll focus on next. In addition, it assumes average values for power draw and grid carbon density among others which all depend on geographical location and device processor, which I intend to turn into user inputs at a later point."}]...
|
Title: AI Footprint by @cinnamahi | Stardance
Dev Title: AI Footprint by @cinnamahi | Stardance
Devlogs:
Devlog #1: AI Footprint (tentative name) I finally have some semblance of a chrome extension to submit evidence of! This is my first time working on an extension so majority of this time was spent experimenting and figuring out how to structure the program. The Concept With the increased usage of AI, I believed it was necessary to bring to light its environmental impacts. Most people think of its costs in general terms: takes up land, a water guzzler, produces carbon dioxide. This chrome extension displays real-time data for people who like the see the actual numbers. What I Have So Far The extension opens successfully, the popup displays as intended, and the stopwatch and carbon emissions tracker run when the user is on the Claude website. What I Need To Work On At the moment, the extension only detects Claude. I have yet to figure out why it does not work on ChatGPT or Gemini (my two other test subjects) but that is what I’ll focus on next. In addition, it assumes average values for power draw and grid carbon density among others which all depend on geographical location and device processor, which I intend to turn into user inputs at a later point.
Devlog #2: AI Footprint Detection What I Have So Far The extension now accurately detects and displays the stopwatch when the user is on an AI website (specifically ChatGPT, Claude, and Gemini so far). I had some difficulty with this due to certain variables being set at weird times and slight inconsistencies with event listeners, so the time wouldn’t store correctly or keep resetting. Along with fixing that, I added the ability for the stopwatch time to be stored within the user’s chrome storage and a daily reset. Finally, I cleaned up the pop-up appearance. What I Need To Work On My next step is user personalization, both in display and the actual calculation, for which certain values are user-dependent (location, device, etc.). I have already begun to draft the location part but the code is commented out right now as to not break the emissions count right now. The ultimate goal is detecting key strokes for a more accurate measure of time using AI, but that’s for the future.
Devlog #3: TBD What I have so far: Since the last devlog, I have added the location personalization and reworked the UI to make it more conducive to new additions. The location personalization, which allows users to input their country and have their emissions calculated from its annual average grid carbon density, uses a database from OurWorldInData. Initially I used Papaparse to try to achieve this, but I was using a small csv so it proved easier to parse the data with vanilla js while avoiding the errors from importing Papa. I also created pages for the pop-up: a main screen, settings, and dashboard. I seperated the code into files for each page because it had begun to get really messy. The settings page includes toggles for an always on display and light/dark mode, both of which are a work in progress, and a place to input your country. (It must be noted that this is optional and the default is set to the US.) I spent a lot of time troubleshooting the buttons because they would often stop working while I was editing unrelated code (usually because I messed with their code on accident), but they finally work consistently! What I Need To Work On As I mentioned earlier, I am working on personalization settings such as light/dark mode and an always on display rather than just a pop up when you click on the icon. I also am going to add a history function for the dashboard to track your AI usage over time; the goal is for it to display a week’s worth of time....
|
1793209670.3008955
|
1793814470.3008955
|
|
37997
|
AvatarLegacy by @FishyMC | Stardance
|
FishyMC
|
1
|
25.36
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T16:40:59Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "THERE IS SOMEONE OUT THERE WHO LOVES AVATAR THE LAST AIRBENDER AND THEY’RE GONNA LOVE THIS PROJECT IT’S FINALLY TIME TO SHIP!!! After ONE YEAR of planning this minecraft server I have FINALLY gotten it almost completely complete with EVEN MORE things to add into the game, such as sky bison, and I can’t wait to create a media team to invite even MORE people to the server so what are YOU waiting for, come test out my project!", "repo": "https://github.com/FishyMCDev/AL", "demo": "https://fishymcdev.github.io/websiterq/"}]...
|
[{"post_id": 82236, "ts": "202 [{"post_id": 82236, "ts": "2026-10-24T11:06:20Z", "hours": 1.0569, "text": "Added the .jar with more bending moves into the releases folder for github, shipped again!"}, {"post_id": 79056, "ts": "2026-10-12T14:55:36Z", "hours": 11.3025, "text": "Update README.md, and work on a ProjectKorra rework I am now using display entities to fix up new moves for the plugin. It now looks much cooler, you can see more at the YT vid. I also am going to fix the readme.md to be able to ship my project. https://youtu.be/O5RkZdJmaKE?si=d5pz1IFUT3K-N1ri Also now there is a new website for avatarlegacy (bought the domain), at….. https://avatarlegacy.net !!!!"}, {"post_id": 69766, "ts": "2026-09-17T19:05:09Z", "hours": 6.23, "text": "I’M GENUINELY THE GOAT After like 1x10^210393923092300132 years of debugging i’ve fixed the issue with /avatar scores, and now it displays players and THEIR SCORES. I’ve also fixed skilltree detection, and nation cores. Now, nation cores will only work above sea level and that’s amazing, and it auto removes them from the place you placed it at if it breaks any rules Subelement traits are harder to get AIRBENDING STAFF IN MINECRAFT!!! There’s now a STAFF which you can glide and RIDE in minecraft!!! It also has a secret recipe, which is amazing I still ahve to update the wiki at https://alwiki.wisp.uno , but otherwise i’m LOCKED IN"}, {"post_id": 54521, "ts": "2026-08-25T15:29:41Z", "hours": 4.5844, "text": "Final Release Fail So my final release failed, however, I got a lot of things done. Expected release was yesterday, and I did finish lots of the plugin and other stuff for AvatarLegacy. However, on the day of release the permissions and performance screwed up and we had to stop the server. However, we have a new deadline for saturday, with these targets: Missing Stuff [-] Permissions [-] Fixing EnderDragon spawn location [-] Reset of world [-] Removal of OreObfuscator + AntiXray [-] AntiXray resourcepack [-] Moderator perms [-] Staff ranks + monthly sub rune [-] One last skilltree config + make an image And our shop released! 50$+ of funds from the community! https://avatarlegacy.tebex.io https://avatarlegacy.wisp.uno"}, {"post_id": 45037, "ts": "2026-08-11T06:17:23Z", "hours": 2.4381, "text": "AvatarLegacy v.2 So basically in this commit I added lots of new features such as: Adding Skill-Trees A skilltree webeditor so that I don’t have to configure YAML Subelement trait chances Subelement runes The idea of finding runes and special items in chests, this is how it works: Instead of auto setting chest loot for unopened chests, the event for setting loot runs when the chest is opened at a high priority and it then uses the chance given from the configuration, and places/doesn’t place special items in the chest. The /train command was also added, so that the avatar can be trained by other element masters. It takes 90 seconds and requires being close to each other. Other updates were commit-ed on git :D"}]...
|
Title: AvatarLegacy by @FishyMC | Stardance
Devlo Title: AvatarLegacy by @FishyMC | Stardance
Devlogs:
AvatarLegacy v.2 So basically in this commit I added lots of new features such as: Adding Skill-Trees A skilltree webeditor so that I don’t have to configure YAML Subelement trait chances Subelement runes The idea of finding runes and special items in chests, this is how it works: Instead of auto setting chest loot for unopened chests, the event for setting loot runs when the chest is opened at a high priority and it then uses the chance given from the configuration, and places/doesn’t place special items in the chest. The /train command was also added, so that the avatar can be trained by other element masters. It takes 90 seconds and requires being close to each other. Other updates were commit-ed on git :D
Final Release Fail So my final release failed, however, I got a lot of things done. Expected release was yesterday, and I did finish lots of the plugin and other stuff for AvatarLegacy. However, on the day of release the permissions and performance screwed up and we had to stop the server. However, we have a new deadline for saturday, with these targets: Missing Stuff [-] Permissions [-] Fixing EnderDragon spawn location [-] Reset of world [-] Removal of OreObfuscator + AntiXray [-] AntiXray resourcepack [-] Moderator perms [-] Staff ranks + monthly sub rune [-] One last skilltree config + make an image And our shop released! 50$+ of funds from the community! https://avatarlegacy.tebex.io https://avatarlegacy.wisp.uno
I’M GENUINELY THE GOAT After like 1x10^210393923092300132 years of debugging i’ve fixed the issue with /avatar scores, and now it displays players and THEIR SCORES. I’ve also fixed skilltree detection, and nation cores. Now, nation cores will only work above sea level and that’s amazing, and it auto removes them from the place you placed it at if it breaks any rules Subelement traits are harder to get AIRBENDING STAFF IN MINECRAFT!!! There’s now a STAFF which you can glide and RIDE in minecraft!!! It also has a secret recipe, which is amazing I still ahve to update the wiki at https://alwiki.wisp.uno , but otherwise i’m LOCKED IN
Update README.md, and work on a ProjectKorra rework I am now using display entities to fix up new moves for the plugin. It now looks much cooler, you can see more at the YT vid. I also am going to fix the readme.md to be able to ship my project. https://youtu.be/O5RkZdJmaKE?si=d5pz1IFUT3K-N1ri Also now there is a new website for avatarlegacy (bought the domain), at….. https://avatarlegacy.net !!!!
Added the .jar with more bending moves into the releases folder for github, shipped again!
Ships:
THERE IS SOMEONE OUT THERE WHO LOVES AVATAR THE LAST AIRBENDER AND THEY’RE GONNA LOVE THIS PROJECT IT’S FINALLY TIME TO SHIP!!! After ONE YEAR of planning this minecraft server I have FINALLY gotten it almost completely complete with EVEN MORE things to add into the game, such as sky bison, and I can’t wait to create a media team to invite even MORE people to the server so what are YOU waiting for, come test out my project!...
|
1793148508.1197202
|
1793234908.1197202
|
|
12272
|
MotifDesigner by @zeankun | Stardance
|
zeankun
|
2
|
25.35
|
314
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T02:29:23Z", "hours": 7.0, "multiplier": 18.37, "payout": 134, "blessing": "neutral", "text": "Version 1.0 is now released! Horray! A lot of things have been added! Added snap to grid checkmark on inspector NEW WIDGET : Toggle/checkmark! Add confirming stuffs to your UI! Fixed units on most components New handles and dimension badge Creation, saving and loading in new MotifDesigner Visual Files ( .vfl )! with a visual parser And comes with a brand new visual file format to accompany: MotifDesigner Visual Files! What are those? These are MotifDesigner’s native format. They allow you to define UIs, either programatically or visually. Read more about the file format specification yourself, or have it as a complement for Claude or Claude Code via skills", "repo": "https://github.com/zeankundev/MotifDesigner", "demo": "https://github.com/zeankundev/MotifDesigner/releases/latest/"}, {"ship_num": 2, "ts": "2026-06-12T07:37:46Z", "hours": 17.0, "multiplier": 10.69, "payout": 180, "blessing": "neutral", "text": "This is MotifDesigner, a GUI editor for Motif (basically) in which you can edit your normal GUIs. Think of it as like the WinForms/Qt Creator of Motif! The goal is to actually bring modern UX to ancient looking software, and it’s actually quite fun! Behind all these are hours of debugging efforts, tens of segmentation fault crashes, tons of sacrificed memory for memory leak debugging, and lots of core dumps! I hope this project simplifies what GUI making is, or just making Motif development a bit easier while also looking ancient!", "repo": "https://github.com/zeankundev/MotifDesigner", "demo": "https://github.com/zeankundev/MotifDesigner/releases/latest/"}]...
|
[{"post_id": 24473, "ts": "202 [{"post_id": 24473, "ts": "2026-07-08T01:34:46Z", "hours": 1.3453, "text": "Now added live value editing! Double click (certain elements) to edit its value, and you can use your normal keyboard editing shortcuts. Yes, Home , End , Shift+arrow , Ctrl+A , etc, are supported! Hands off the mouse now! Being honest, this feature is mostly implemented by AI. Text logic and selection is a finicky subject to pick up, given the sheer complexity. But I want to make the value editing UX just like at home, like you would on Figma, and many more! Also, some quality of life updates: re-renders are now automatically scheduled based on your device’s refresh rate. You don’t need to wait for user input now, it happens automatically in the background. ( And yes, free (s) are excluded as usual. Double free() is usually the culprit and yeah, I’m bad at memory management )"}, {"post_id": 22554, "ts": "2026-07-05T02:26:15Z", "hours": 0.3092, "text": "Release 1.0 has been out now! MotifDesigner is usable for the general public now! You know what that means? Shipping time! Oh yeah, don’t forget to report bugs or issues here . Don’t be hesitant. It can be either via your AppImage or your local debug build"}, {"post_id": 22537, "ts": "2026-07-05T01:54:20Z", "hours": 0.5664, "text": "Made file specifications in Markdown, as well as a Claude skill (for you, vibecoders /j) so that Claude can generate proper visual files. No code changes, tho. Attached is an example where I instructed Claude to make a simple supermarket POS interface."}, {"post_id": 21485, "ts": "2026-07-03T13:49:15Z", "hours": 2.8694, "text": "Now the hardest part has been done: importing and parsing visual files! Here’s what I accomplished: Parsing of visual files Syntax errors and redundancy checks to ensure it is indeed the visual file you are opening Auto writing on save whenever you’ve opened something or has saved a new file! How does the MotifDesigner Visual File format work ( .vfl )? (for self programming the visual file) It’s like XML or HTML (whatever that correlates with both) except the tags don’t end in slashes. All visual files must have both [MotifDesignerVisualFile] and [EndMotifDesignerVisualFile] . This will contain two critical pieces of information: the Version parameter, which you must append (e.g. Version=0.5 ). It must be inside the VisualFile tag. the Widgets tag. Same, enclosed with EndWidgets . This will be the place where you will put your elements here. I’ll write more of the file specifications if I have more time Anyway, here’s a video to demonstrate!"}, {"post_id": 20763, "ts": "2026-07-02T13:41:43Z", "hours": 0.4028, "text": "Real thing now! You can now export visual files made by MotifDesigner! It will come in a user-friendly syntax, which is human and machine readable, which is much closer to something like XML! All that’s left is to: implement a parser to parse these visual files something to make the visual file editing complete before moving in to the IDE side of things"}, {"post_id": 20624, "ts": "2026-07-02T08:29:30Z", "hours": 1.0811, "text": "This one, by far the hardest feature to implement: the save dialog . It took me lots of work to do (most was AI assisted) that double frees were actually fired (despite deleting all free methods). Here’s what’s fully implemented: Autotemplating with a default filename Sticky file names, so your typed filename never gets lost (e.g. when changing directories) And lots of UX improvements for the save dialogs The rest are relatively easy to implement, as they require little work, such as the open file dialog, etc. Next steps Next, I hope that There will be basic visual file saving/exporting ( *.vfl ) Parser for those visual files (to open it) Lots of filesystem-related operations as well as a robust project management system"}, {"post_id": 19691, "ts": "2026-07-01T02:35:34Z", "hours": 0.2656, "text": "Oh yeah, I forgot to log this one, but it adds few QoL improvements. Now, it should feel more modern, hence to the Figma-style handle and nets, as well as adding the bottom blue badge to visualize the exact width without looking at the inspector ever again!"}, {"post_id": 14973, "ts": "2026-06-24T09:54:14Z", "hours": 0.6342, "text": "Some features for 0.8 will be on the works by now. This includes: Snap to Grid toggle Added toggle as a new component Overall bug fixes ;) There will be more during the actual 0.8 release so stay tuned"}, {"post_id": 7967, "ts": "2026-06-13T09:11:29Z", "hours": 0.7167, "text": "A lot screwed up, so I decided to fix a lot of them. These are just mostly bug fixes and only a few QoL changes. For those who are afraid of change: Labels should be more legible now (same background as the overall canvas) Forced .hpp file generation (because the header implementation is C++, we don’t want it to mix with C only code A lot of stubborness during code generation ;)"}, {"post_id": 7913, "ts": "2026-06-13T06:10:04Z", "hours": 0.5419, "text": "Hotfix 1 of v0.7 (0.71) is here. Nothing much here, just like the old 0.7 version, except this update are just bug fixes and few QoL improvements. If you are terrified of change, I’ll wrap up what’s changed in this hotfix: The handles and selection frames should no longer offset by now, it is near one-to-one on what you’ll be building at the end (including the header files :D) And yeah, the grid should be more visible now. At TextDialog.cpp , few improvements were made. The text field will focus first rather than the OK button, so you can type your header class right away, and press Enter when you’re all set!"}, {"post_id": 7337, "ts": "2026-06-12T07:29:23Z", "hours": 0.4667, "text": "Quality of life fixes, nothing big, just minor fixes before getting ready to ship at the first phase!"}, {"post_id": 7327, "ts": "2026-06-12T06:32:47Z", "hours": 1.2031, "text": "Finally, added one feature that is extremely important or else render MotifDesigner out of its core goals! Now, header ( *.h ) export is available, which means you can start using it as part of your project! Zero warnings, zero errors, it’s stable now (if there are errors or warnings in .h, it’s either your fault or just file a bug report)"}, {"post_id": 7270, "ts": "2026-06-12T03:52:20Z", "hours": 1.7183, "text": "Added a dialog later on for you to answer the questions it prompted you, as well as regex checking (this will be fixed into a more modular approach later on). Regexes still apply! I’ll probably finish a lot later on (including adding a new visual file, opening a visual file, etc). Right now, this could be the roadmap for future development from now: Current Goals: Implement exporting visual as .h file to be used Creating a new visual file, opening/parsing, and saving Future Goals: Fully implemented C++ editor inside of the designer Project system (a folder containing the visual file, C++ file and the automatically generated header file) Automatic X11/Xm/Xt download if you don’t have one (includes and libraries) In-IDE building with g++ and having the ability to run the result binary Packaging to AppImage with linuxdeploy and appimagetool Add Wakatime/Hackatime support /j (that will/won’t happen)"}, {"post_id": 6823, "ts": "2026-06-11T13:29:17Z", "hours": 2.2417, "text": "Lots of bug fixes (I forgot what I did for the past 2 hours logged T_T) but at least, most bugs were shot down and caught. Especially quick mouse kids, who just mess and drag widgets fast, now it’s “throttled” to a fixed 60fps. And also added status bar to highlight the user on what’s going on and what to do with the tool. Oh yeah, also added where you can use arrow keys to snappingly move between 10 units, just for convenience! (Excuse me, the cursor there is highly offset, I truly apologize for that TwT)"}, {"post_id": 6687, "ts": "2026-06-11T06:17:54Z", "hours": 3.6958, "text": "Finally, the feature we all be waiting for! The canvas! This took me a horrendous amount of time, but it sure was worth the experience It can now drag, scale, and do many transformations like a usual GUI builder would do! And yeah, there were a lot of hiccups (yeah, segfaults and coredump abortions) and managed to fix a lot of them if it weren’t for Claude! Yeah, basically, it looks like a functioning editor by now! Sure it was interesting!"}, {"post_id": 6113, "ts": "2026-06-10T08:44:45Z", "hours": 0.2511, "text": "Now added a check for illegal names using regex! This is done so that you won’t get programmatic errors later on when coding your app in C++ (everyone doesn’t want that!) so it’s better to stay off at the normal naming convention of C"}, {"post_id": 6054, "ts": "2026-06-10T05:17:49Z", "hours": 0.8317, "text": "Added new properties panel! This is to ensure precise modifications were being made so that you still have lots of control with the UI building process"}, {"post_id": 5556, "ts": "2026-06-09T11:47:50Z", "hours": 1.2603, "text": "A lot of things were done. First off, the menubar for your stuffs later on! You’ll do it there! Second, now there’s a toolbar (still WIP)! As well as a lot of segfaults along the way, we managed to get that working for the start of this!"}, {"post_id": 5494, "ts": "2026-06-09T09:26:59Z", "hours": 1.325, "text": "More work yay! Most of the time logged here is just a scrapped feature that will never make it (due to the nature of XmNotebook). Initially, I wanted to add a tab that can switch between the visual editor and the C++ code editor (WIP)! but yeah, I don’t want a flipbook like interface, so I’ll make it as two separate modules. But hey, at least we made progress!"}, {"post_id": 5371, "ts": "2026-06-09T03:39:09Z", "hours": 1.7375, "text": "Actually another long time to comply for shipping (a test one!) which are AppImages! I just don’t want to mess around with dependency hell when distributing an ELF binary (ugh dangerous) so AppImage was our way to go. First, it was a bit flawed, then with some help, we managed to get two variants, generic and IRIX (for those who run MaXX). Hopefully it will be done soon, as this is still a work in progress and should serve the instantaneous basis of my future MotifDesigner roadmap. Attached is the app tested on Ubuntu MATE at Deskterm."}, {"post_id": 4819, "ts": "2026-06-08T10:10:15Z", "hours": 1.0542, "text": "I know this may sound like a gimmick (given that I logged 1h on one specific window) but this was tedious to get into. The About section. It seems easy, if you think, but no! It’s actually really hard to get into without proper techniques and lots of tampering with the XPM pixmaps. Gemini couldn’t help so I reached over to Claude to help and here it is, 1h wasted on just an about section."}, {"post_id": 4762, "ts": "2026-06-08T07:17:56Z", "hours": 0.2944, "text": "Did some variations with the IMC test but this time with the actual X11 Motif window showing up. The same as before except this test is now in an X11 window 🙃"}, {"post_id": 4757, "ts": "2026-06-08T06:34:36Z", "hours": 0.4325, "text": "Doing some tests to actually ensure that inter-module communication is done effortlessly. I don’t want to write more bloat code that results in a bloated main.cpp that just “acts” as a middleman, just let the header files be the ones that’s fully responsible for the IMC calling"}, {"post_id": 4742, "ts": "2026-06-08T05:56:00Z", "hours": 0.3322, "text": "First project bootstrap! Horray!"}]...
|
Title: MotifDesigner by @zeankun | Stardance
Devl Title: MotifDesigner by @zeankun | Stardance
Devlogs:
First project bootstrap! Horray!
Doing some tests to actually ensure that inter-module communication is done effortlessly. I don’t want to write more bloat code that results in a bloated main.cpp that just “acts” as a middleman, just let the header files be the ones that’s fully responsible for the IMC calling
Did some variations with the IMC test but this time with the actual X11 Motif window showing up. The same as before except this test is now in an X11 window 🙃
I know this may sound like a gimmick (given that I logged 1h on one specific window) but this was tedious to get into. The About section. It seems easy, if you think, but no! It’s actually really hard to get into without proper techniques and lots of tampering with the XPM pixmaps. Gemini couldn’t help so I reached over to Claude to help and here it is, 1h wasted on just an about section.
Actually another long time to comply for shipping (a test one!) which are AppImages! I just don’t want to mess around with dependency hell when distributing an ELF binary (ugh dangerous) so AppImage was our way to go. First, it was a bit flawed, then with some help, we managed to get two variants, generic and IRIX (for those who run MaXX). Hopefully it will be done soon, as this is still a work in progress and should serve the instantaneous basis of my future MotifDesigner roadmap. Attached is the app tested on Ubuntu MATE at Deskterm.
More work yay! Most of the time logged here is just a scrapped feature that will never make it (due to the nature of XmNotebook). Initially, I wanted to add a tab that can switch between the visual editor and the C++ code editor (WIP)! but yeah, I don’t want a flipbook like interface, so I’ll make it as two separate modules. But hey, at least we made progress!
A lot of things were done. First off, the menubar for your stuffs later on! You’ll do it there! Second, now there’s a toolbar (still WIP)! As well as a lot of segfaults along the way, we managed to get that working for the start of this!
Added new properties panel! This is to ensure precise modifications were being made so that you still have lots of control with the UI building process
Now added a check for illegal names using regex! This is done so that you won’t get programmatic errors later on when coding your app in C++ (everyone doesn’t want that!) so it’s better to stay off at the normal naming convention of C
Finally, the feature we all be waiting for! The canvas! This took me a horrendous amount of time, but it sure was worth the experience It can now drag, scale, and do many transformations like a usual GUI builder would do! And yeah, there were a lot of hiccups (yeah, segfaults and coredump abortions) and managed to fix a lot of them if it weren’t for Claude! Yeah, basically, it looks like a functioning editor by now! Sure it was interesting!
Lots of bug fixes (I forgot what I did for the past 2 hours logged T_T) but at least, most bugs were shot down and caught. Especially quick mouse kids, who just mess and drag widgets fast, now it’s “throttled” to a fixed 60fps. And also added status bar to highlight the user on what’s going on and what to do with the tool. Oh yeah, also added where you can use arrow keys to snappingly move between 10 units, just for convenience! (Excuse me, the cursor there is highly offset, I truly apologize for that TwT)
Added a dialog later on for you to answer the questions it prompted you, as well as regex checking (this will be fixed into a more modular approach later on). Regexes still apply! I’ll probably finish a lot later on (including adding a new visual file, opening a visual file, etc). Right now, this could be the roadmap for future development from now: Current Goals: Implement exporting visual as .h file to be used Creating a new visual file, opening/parsing, and saving Future Goals: Fully implemented C++ editor inside of the designer Project system (a folder containing the visual file, C++ file and the automatically generated header file) Automatic X11/Xm/Xt download if you don’t have one (includes and libraries) In-IDE building with g++ and having the ability to run the result binary Packaging to AppImage with linuxdeploy and appimagetool Add Wakatime/Hackatime support /j (that will/won’t happen)
Finally, added one feature that is extremely important or else render MotifDesigner out of its core goals! Now, header ( *.h ) export is available, which means you can start using it as part of your project! Zero warnings, zero errors, it’s stable now (if there are errors or warnings in .h, it’s either your fault or just file a bug report)
Quality of life fixes, nothing big, just minor fixes before getting ready to ship at the first phase!
Hotfix 1 of v0.7 (0.71) is here. Nothing much here, just like the old 0.7 version, except this update are just bug fixes and few QoL improvements. If you are terrified of change, I’ll wrap up what’s changed in this hotfix: The handles and selection frames should no longer offset by now, it is near one-to-one on what you’ll be building at the end (including the header files :D) And yeah, the grid should be more visible now. At TextDialog.cpp , few improvements were made. The text field will focus first rather than the OK button, so you can type your header class right away, and press Enter when you’re all set!
A lot screwed up, so I decided to fix a lot of them. These are just mostly bug fixes and only a few QoL changes. For those who are afraid of change: Labels should be more legible now (same background as the overall canvas) Forced .hpp file generation (because the header implementation is C++, we don’t want it to mix with C only code A lot of stubborness during code generation ;)
Some features for 0.8 will be on the works by now. This includes: Snap to Grid toggle Added toggle as a new component Overall bug fixes ;) There will be more during the actual 0.8 release so stay tuned
Oh yeah, I forgot to log this one, but it adds few QoL improvements. Now, it should feel more modern, hence to the Figma-style handle and nets, as well as adding the bottom blue badge to visualize the exact width without looking at the inspector ever again!
This one, by far the hardest feature to implement: the save dialog . It took me lots of work to do (most was AI assisted) that double frees were actually fired (despite deleting all free methods). Here’s what’s fully implemented: Autotemplating with a default filename Sticky file names, so your typed filename never gets lost (e.g. when changing directories) And lots of UX improvements for the save dialogs The rest are relatively easy to implement, as they require little work, such as the open file dialog, etc. Next steps Next, I hope that There will be basic visual file saving/exporting ( *.vfl ) Parser for those visual files (to open it) Lots of filesystem-related operations as well as a robust project management system
Real thing now! You can now export visual files made by MotifDesigner! It will come in a user-friendly syntax, which is human and machine readable, which is much closer to something like XML! All that’s left is to: implement a parser to parse these visual files something to make the visual file editing complete before moving in to the IDE side of things
Now the hardest part has been done: importing and parsing visual files! Here’s what I accomplished: Parsing of visual files Syntax errors and redundancy checks to ensure it is indeed the visual file you are opening Auto writing on save whenever you’ve opened something or has saved a new file! How does the MotifDesigner Visual File format work ( .vfl )? (for self programming the visual file) It’s like XML or HTML (whatever that correlates with both) except the tags don’t end in slashes. All visual files must have both [MotifDesignerVisualFile] and [EndMotifDesignerVisualFile] . This will contain two critical pieces of information: the Version parameter, which you must append (e.g. Version=0.5 ). It must be inside the VisualFile tag. the Widgets tag. Same, enclosed with EndWidgets . This will be the place where you will put your elements here. I’ll write more of the file specifications if I have more time Anyway, here’s a video to demonstrate!
Made file specifications in Markdown, as well as a Claude skill (for you, vibecoders /j) so that Claude can generate proper visual files. No code changes, tho. Attached is an example where I instructed Claude to make a simple supermarket POS interface.
Release 1.0 has been out now! MotifDesigner is usable for the general public now! You know what that means? Shipping time! Oh yeah, don’t forget to report bugs or issues here . Don’t be hesitant. It can be either via your AppImage or your local debug build
Now added live value editing! Double click (certain elements) to edit its value, and you can use your normal keyboard editing shortcuts. Yes, Home , End , Shift+arrow , Ctrl+A , etc, are supported! Hands off the mouse now! Being honest, this feature is mostly implemented by AI. Text logic and selection is a finicky subject to pick up, given the sheer complexity. But I want to make the value editing UX just like at home, like you would on Figma, and many more! Also, some quality of life updates: re-renders are now automatically scheduled based on your device’s refresh rate. You don’t need to wait for user input now, it happens automatically in the background. ( And yes, free (s) are excluded as usual. Double free() is usually the culprit and yeah, I’m bad at memory management )
Ships:
This is MotifDesigner, a GUI editor for Motif (basically) in which you can edit your normal GUIs. Think of it as like the WinForms/Qt Creator of Motif! The goal is to actually bring modern UX to ancient looking software, and it’s actually quite fun! Behind all these are hours of debugging efforts, tens of segmentation fault crashes, tons of sacrificed memory for memory leak debugging, and lots of core dumps! I hope this project simplifies what GUI making is, or just making Motif development a bit easier while also looking ancient!
Version 1.0 is now released! Horray! A lot of things have been added! Added snap to grid checkmark on inspector NEW WIDGET : Toggle/checkmark! Add confirming stuffs to your UI! Fixed units on most components New handles and dimension badge Creation, saving and loading in new MotifDesigner Visual Files ( .vfl )! with a visual parser And comes with a brand new visual file format to accompany: MotifDesigner Visual Files! What are those? These are MotifDesigner’s native format. They allow you to define UIs, either programatically or visually. Read more about the file format specification yourself, or have it as a complement for Claude or Claude Code via skills...
|
1793130846.064178
|
1793217246.064178
|
|
46030
|
Ancient Craft by @Alphy | Stardance
|
Alphy
|
0
|
25.33
|
0
|
[]
|
[{"post_id": 68231, "ts": "202 [{"post_id": 68231, "ts": "2026-09-14T18:57:48Z", "hours": 10.4944, "text": "Ancient Craft - Making City’s Tavern 🍻 (Devlog #3) Summary Started working on a gigantic city, firstly making its heart - the Tavern 🍻 Did environment upliftment with huge villager additions, custom AI, and props. Also published our previous spyglass addition as a standalone mod live on CurseForge & Modrinth ! Took this much Time as implementing new mechanics in vanilla villagers were tough and full of debugging so at last created a new entity with same model and most of it was learning creating 3d models 🫡 Breakdown Town Guard Model : Started learning developing 3d models so its a basic model inspired from KCD just starting so its gonna be improved Interactive Talking Tavern Villagers : Added an overhead comic-style speech bubble system with custom audio dialogs (.ogg) for greetings, being attacked, and drawing weapons near them! Kept normal villagers vanilla so the tavern locals feel unique. Ambient Tavern Banter : Seated tavern folks periodically gossip about beer prices, weather, blacksmith rates, and suspicious adventurers. Intelligent Sitting AI : Tavern villagers now seek out benches, sit down, face adjacent tables, and stay seated naturally before standing up to roam around. Connecting Furniture : Added modular Tavern Benches and Tables with dynamic multi-block connectivity (single, left, middle, right parts). Clean Dismount & Sit Heights : Calibrated sit heights for both players and NPCs, plus added smart floor dismount detection so you never clip or sink into furniture. (Also enabled sitting on vanilla stairs & slabs!) Gambling Mini-game Prep : Added the Gambling Stool and functional Gambling Table (currently refining the model & mechanics). What’s Next Will finish the dice gambling mini-game mechanics and build a full tavern structure before moving on to the rest of the city. Will also add tabletop props like mugs, food, or Farmer’s Delight integration!"}, {"post_id": 48111, "ts": "2026-08-16T12:18:48Z", "hours": 8.5353, "text": "Ancient Craft- Devlog 2 Summary Idk how to tell😭but porting from fabric to others like neoforge is painful . Really took vanilla spyglass to a new level and made unnecessary additions to previous weapon- slingshot. Imma bundling this spyglass addition into a separate mod - Insight Glass, u can checkout at Modrinth . Its a client side mod(under review at time of posting) and is made for vanilla, for its usage in my ULTIMATE mod, its gonna be modified and implemented with more stats and new item. Changelog Added- Spyglass Creature tracking via ray casting in vanilla spyglass(will make custom spyglass for this).Also made a custom but simple HUD Overlay to display stats. Detailed stats along with armor(showing dmg reduction too), hp, effective hp(combined with armor), owner name for all mobs and jump height and speed for horses. HP have dynamic progress bar too. Glowing boundaries as the spectral arrows give but w different colors, red for aggressive mobs, white for neutral, green for passive and pink for tamed ones. Miniature 3d rendered portrait of creature along with its armor and held item.(had to check almost every creature from ghast to tadpole to make everything fit in frame😖) Spyglass Zoom ranging from 0.5x to 2.0x. Can detect creatures within 100 blocks. 🫡 Can represent model of any player too along with creatures from any Mod. Updated Now pebbles thrown from slingshot can destroy crops, grass, flowers and similar items while travelling in air.(Extraaa Realism🗣️) Now Poison Pebble is obtainable from ground having a chance of 30% of being a poison pebble instead of normal one. It can be multiple drops too(btw Poison pebble name is so weird to me, please suggest a good one) Now one can throw vegetables too from slingshot 🫡specifically beetroot, potato, carrot and poisonous potato, ofc poisonous one has special effects Now can also throw clay ball, snow ball too. Now pebbles can break glass windows, not the tinted ones(Double Extraaa Realism 🗣️) Im open to suggestions, help to make this a popular one and any suggestion for name of poison pebble, its model is there in my previous devlog, the one with lush cave texture. Btw this wasn’t all i done as i m making a server type thing where users can actually test my mod without any setup and directly on browser so i will soon update when it will be done!"}, {"post_id": 45124, "ts": "2026-08-11T12:33:12Z", "hours": 6.2978, "text": "Ancient Craft-Devlog 1(making slingshot and pebbles as first weapon) Summary Started the project with lots of wasting time in tweaking code, downloading stuff and figuring how mods in Minecraft are made. Still the logic is clear and is done with textures being left which is the the harder part. Added functional slingshot mechanics, realistic projectile arcs, custom ammo variants, and natural world generation for ground pebbles Breakdown Of What’s Done Made Custom Pebbles along with few having textures and few placeholders. Normal pebble: Obtainable from ground.(model done) Poison pebble: Pebble giving poison(model done) Soporific Stone and Fire Stone with placeholder Models. NOTE: Recipies and Text are pending and now only available through creative and command Implemented Logic where pebbles can be found on ground and right-clicking it will give 1-3 pebbles of normal type in overworld. Implemented Slingshot Logic and physics with placeholder texture for now. White Streak trail for throwing normal pebble(those of end rod, will make a custom soon). Next Plans Pending Textures of pebbles and Slingshot and model for pebbles found on ground Recipes for other pebbles and there effects on impact such as poison. Custom Trail while throwing different pebbles Sound Effects for landing Breaking grass and crops on Interaction with pebbles Please Drop any suggestions to make this mod more enjoyable and giving out more ancient vibes!"}]...
|
Title: Ancient Craft by @Alphy | Stardance
Devlog Title: Ancient Craft by @Alphy | Stardance
Devlogs:
Ancient Craft-Devlog 1(making slingshot and pebbles as first weapon) Summary Started the project with lots of wasting time in tweaking code, downloading stuff and figuring how mods in Minecraft are made. Still the logic is clear and is done with textures being left which is the the harder part. Added functional slingshot mechanics, realistic projectile arcs, custom ammo variants, and natural world generation for ground pebbles Breakdown Of What’s Done Made Custom Pebbles along with few having textures and few placeholders. Normal pebble: Obtainable from ground.(model done) Poison pebble: Pebble giving poison(model done) Soporific Stone and Fire Stone with placeholder Models. NOTE: Recipies and Text are pending and now only available through creative and command Implemented Logic where pebbles can be found on ground and right-clicking it will give 1-3 pebbles of normal type in overworld. Implemented Slingshot Logic and physics with placeholder texture for now. White Streak trail for throwing normal pebble(those of end rod, will make a custom soon). Next Plans Pending Textures of pebbles and Slingshot and model for pebbles found on ground Recipes for other pebbles and there effects on impact such as poison. Custom Trail while throwing different pebbles Sound Effects for landing Breaking grass and crops on Interaction with pebbles Please Drop any suggestions to make this mod more enjoyable and giving out more ancient vibes!
Ancient Craft- Devlog 2 Summary Idk how to tell😭but porting from fabric to others like neoforge is painful . Really took vanilla spyglass to a new level and made unnecessary additions to previous weapon- slingshot. Imma bundling this spyglass addition into a separate mod - Insight Glass, u can checkout at Modrinth . Its a client side mod(under review at time of posting) and is made for vanilla, for its usage in my ULTIMATE mod, its gonna be modified and implemented with more stats and new item. Changelog Added- Spyglass Creature tracking via ray casting in vanilla spyglass(will make custom spyglass for this).Also made a custom but simple HUD Overlay to display stats. Detailed stats along with armor(showing dmg reduction too), hp, effective hp(combined with armor), owner name for all mobs and jump height and speed for horses. HP have dynamic progress bar too. Glowing boundaries as the spectral arrows give but w different colors, red for aggressive mobs, white for neutral, green for passive and pink for tamed ones. Miniature 3d rendered portrait of creature along with its armor and held item.(had to check almost every creature from ghast to tadpole to make everything fit in frame😖) Spyglass Zoom ranging from 0.5x to 2.0x. Can detect creatures within 100 blocks. 🫡 Can represent model of any player too along with creatures from any Mod. Updated Now pebbles thrown from slingshot can destroy crops, grass, flowers and similar items while travelling in air.(Extraaa Realism🗣️) Now Poison Pebble is obtainable from ground having a chance of 30% of being a poison pebble instead of normal one. It can be multiple drops too(btw Poison pebble name is so weird to me, please suggest a good one) Now one can throw vegetables too from slingshot 🫡specifically beetroot, potato, carrot and poisonous potato, ofc poisonous one has special effects Now can also throw clay ball, snow ball too. Now pebbles can break glass windows, not the tinted ones(Double Extraaa Realism 🗣️) Im open to suggestions, help to make this a popular one and any suggestion for name of poison pebble, its model is there in my previous devlog, the one with lush cave texture. Btw this wasn’t all i done as i m making a server type thing where users can actually test my mod without any setup and directly on browser so i will soon update when it will be done!
Ancient Craft - Making City’s Tavern 🍻 (Devlog #3) Summary Started working on a gigantic city, firstly making its heart - the Tavern 🍻 Did environment upliftment with huge villager additions, custom AI, and props. Also published our previous spyglass addition as a standalone mod live on CurseForge & Modrinth ! Took this much Time as implementing new mechanics in vanilla villagers were tough and full of debugging so at last created a new entity with same model and most of it was learning creating 3d models 🫡 Breakdown Town Guard Model : Started learning developing 3d models so its a basic model inspired from KCD just starting so its gonna be improved Interactive Talking Tavern Villagers : Added an overhead comic-style speech bubble system with custom audio dialogs (.ogg) for greetings, being attacked, and drawing weapons near them! Kept normal villagers vanilla so the tavern locals feel unique. Ambient Tavern Banter : Seated tavern folks periodically gossip about beer prices, weather, blacksmith rates, and suspicious adventurers. Intelligent Sitting AI : Tavern villagers now seek out benches, sit down, face adjacent tables, and stay seated naturally before standing up to roam around. Connecting Furniture : Added modular Tavern Benches and Tables with dynamic multi-block connectivity (single, left, middle, right parts). Clean Dismount & Sit Heights : Calibrated sit heights for both players and NPCs, plus added smart floor dismount detection so you never clip or sink into furniture. (Also enabled sitting on vanilla stairs & slabs!) Gambling Mini-game Prep : Added the Gambling Stool and functional Gambling Table (currently refining the model & mechanics). What’s Next Will finish the dice gambling mini-game mechanics and build a full tavern structure before moving on to the rest of the city. Will also add tabletop props like mugs, food, or Farmer’s Delight integration!...
|
1792648164.2551599
|
1793252964.2551599
|
|
57660
|
Program Framework by @Wiiwhbfidow | Stardance
|
Wiiwhbfidow
|
1
|
25.29
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T00:15:56Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple framework that builds on the Single DirectMedia Library (an existing library) which helps to take care of some boilerplate and streamline programming projects. I finished the basics like rendering and a component system, but I plan to add more soon! Attached is a rough design diagram (made in Microsoft Paint)", "repo": "https://github.com/User-Name54321/BPFramework", "demo": "https://github.com/User-Name54321/BPFramework/releases"}]...
|
[{"post_id": 82832, "ts": "202 [{"post_id": 82832, "ts": "2026-10-25T23:44:12Z", "hours": 1.1975, "text": "Today, I polished the library a bit more and expanded the demo. First, I thought about how “game logic” would be executed and tied to the existing framework’s clock. I decided that the easiest way for me to implement this was to create a function pointer which is called every “tick” (a moment in which you want to execute updates, with an ideally constant step time). Second, I removed my reporting/logging implementation. I don’t think it’s worth it to reinvent the wheel for this right now, but in the future, I might pull in libraries like spdlog. I also updated the demo to show how input can result in movement. Uhh, I also fixed a memory leak in which I never cleared the list of sprites to be rendered after each frame, so memory usage would slowly climb, and my fps would slowly drop. That’s an issue no more!"}, {"post_id": 82806, "ts": "2026-10-25T21:26:32Z", "hours": 2.4167, "text": "Yesterday, I worked on setting up a Linux build for BPF. SDL is largely designed to be compatible for a variety of different platforms, so I thought that not at least trying* to do so would be a bit of a waste. I spent way too long tracking down dependencies and setting up WSL, but I finally have a working binary for Linux (minor caveat: the audio wrapper which uses SDL_Mixer may or may not work; I can’t tell if there’s an issue with my virtual environment or with my code."}, {"post_id": 81136, "ts": "2026-10-20T01:04:45Z", "hours": 3.3481, "text": "New functioning audio system In the past few days, I have been working on implementing an audio system that relies on SDL_Mixer, a separate library from SDL. I decided to use SDL_Mixer because I did not want to manually manage the mixing of sounds and management of the different audio streams, like that of which I would need to do if I used SDL’s built in audio tools. I also dropped SDL_image from the library right now because it adds too many dependencies, and I don’t think the additional overhead is needed for my intended functionality right now. In the future, I was looking into incorporating WUFFS, which is a programming language that is built to guarantee memory safety when loading files. (link: https://github.com/google/wuffs ) I wasn’t really sure of what to put for my image, so I put an image of me stepping through and debugging my code to troubleshoot nothing being played. (Spoiler alert: I flipped an operator)"}, {"post_id": 78910, "ts": "2026-10-12T00:30:07Z", "hours": 4.3239, "text": "First, I worked a bit more on my observer system under the hood. Instead of relying on observer objects, the subject just takes a reference to a callback which is intended to be called on the subject’s notify(). The picture is a demo where anytime I press a key it prints “test.” I also went through my code and tried to leave comments which clarify the functions and usage of certain things, which should help to make it more usable. Also, my Git connection keeps breaking, which is enraging!"}, {"post_id": 73362, "ts": "2026-09-25T00:05:25Z", "hours": 0.5894, "text": "I finished wiring up a simple test render which uses the framework’s systems. I also worked a bit on cleaning up some of the code and labelling my intentions/future plans. I also verified that my build configurations were ok, and made sure I had no more memory issues."}, {"post_id": 72486, "ts": "2026-09-23T02:07:10Z", "hours": 6.6931, "text": "I cobbled together a component system which allows for the creation of two types of containers. One strictly contains data, while the other one is slower but can also contain references to other components and functions. I based quite a bit of this on some of the patterns I read in “Game Programming Patterns” by Robert Nystrom, and I really recommend it if you are interested. In addition to that, I had a “small” (massive) memory leak which resulted from me misunderstanding the way SDL handles rendering, so I got it to render stuff and clear the command queue which fixed that. I also started a little bit on a logging system which also uses SDL, but I want to make it more natural to use and more fitting with the way I designed this library."}, {"post_id": 69876, "ts": "2026-09-17T23:50:57Z", "hours": 6.8017, "text": "Started basic window management, input systems, and texture rendering. More soon!"}]...
|
Title: Program Framework by @Wiiwhbfidow | Stardan Title: Program Framework by @Wiiwhbfidow | Stardance
Devlogs:
Started basic window management, input systems, and texture rendering. More soon!
I cobbled together a component system which allows for the creation of two types of containers. One strictly contains data, while the other one is slower but can also contain references to other components and functions. I based quite a bit of this on some of the patterns I read in “Game Programming Patterns” by Robert Nystrom, and I really recommend it if you are interested. In addition to that, I had a “small” (massive) memory leak which resulted from me misunderstanding the way SDL handles rendering, so I got it to render stuff and clear the command queue which fixed that. I also started a little bit on a logging system which also uses SDL, but I want to make it more natural to use and more fitting with the way I designed this library.
I finished wiring up a simple test render which uses the framework’s systems. I also worked a bit on cleaning up some of the code and labelling my intentions/future plans. I also verified that my build configurations were ok, and made sure I had no more memory issues.
First, I worked a bit more on my observer system under the hood. Instead of relying on observer objects, the subject just takes a reference to a callback which is intended to be called on the subject’s notify(). The picture is a demo where anytime I press a key it prints “test.” I also went through my code and tried to leave comments which clarify the functions and usage of certain things, which should help to make it more usable. Also, my Git connection keeps breaking, which is enraging!
New functioning audio system In the past few days, I have been working on implementing an audio system that relies on SDL_Mixer, a separate library from SDL. I decided to use SDL_Mixer because I did not want to manually manage the mixing of sounds and management of the different audio streams, like that of which I would need to do if I used SDL’s built in audio tools. I also dropped SDL_image from the library right now because it adds too many dependencies, and I don’t think the additional overhead is needed for my intended functionality right now. In the future, I was looking into incorporating WUFFS, which is a programming language that is built to guarantee memory safety when loading files. (link: https://github.com/google/wuffs ) I wasn’t really sure of what to put for my image, so I put an image of me stepping through and debugging my code to troubleshoot nothing being played. (Spoiler alert: I flipped an operator)
Yesterday, I worked on setting up a Linux build for BPF. SDL is largely designed to be compatible for a variety of different platforms, so I thought that not at least trying* to do so would be a bit of a waste. I spent way too long tracking down dependencies and setting up WSL, but I finally have a working binary for Linux (minor caveat: the audio wrapper which uses SDL_Mixer may or may not work; I can’t tell if there’s an issue with my virtual environment or with my code.
Today, I polished the library a bit more and expanded the demo. First, I thought about how “game logic” would be executed and tied to the existing framework’s clock. I decided that the easiest way for me to implement this was to create a function pointer which is called every “tick” (a moment in which you want to execute updates, with an ideally constant step time). Second, I removed my reporting/logging implementation. I don’t think it’s worth it to reinvent the wheel for this right now, but in the future, I might pull in libraries like spdlog. I also updated the demo to show how input can result in movement. Uhh, I also fixed a memory leak in which I never cleared the list of sprites to be rendered after each frame, so memory usage would slowly climb, and my fps would slowly drop. That’s an issue no more!
Ships:
I made a simple framework that builds on the Single DirectMedia Library (an existing library) which helps to take care of some boilerplate and streamline programming projects. I finished the basics like rendering and a component system, but I plan to add more soon! Attached is a rough design diagram (made in Microsoft Paint)...
|
1793152292.3053176
|
1793238692.3053176
|
|
22231
|
NumOS by @Enderdesigns | Stardance
|
Enderdesigns
|
0
|
25.22
|
0
|
[]
|
[{"post_id": 14381, "ts": "202 [{"post_id": 14381, "ts": "2026-06-23T14:22:56Z", "hours": 12.0633, "text": "NumOS / NeoCalculator — Emulator Work What have I done I am working on making an emulator for NumOS so anyone can use it anywhere What have I achieve I have a working window that opens and compiles in both Windows and Linux. But still no key input yet."}, {"post_id": 11832, "ts": "2026-06-19T08:29:39Z", "hours": 13.1592, "text": "NumOS / NeoCalculator — Initial Devlog What I’m building I’m building NumOS , a free/open-source embedded calculator OS for NeoCalculator , my open-source scientific graphing calculator. The goal is to make a real handheld calculator that students and makers can study, modify, and improve, instead of using a fully closed device. NumOS targets ESP32-S3 hardware with a 320×240 color display, physical keyboard input, calculator apps, graphing, math rendering, and eventually a custom PCB. This Stardance project is focused on the software/firmware : the OS, UI, apps, input handling, math features, and hardware integration code. Why I started I started NeoCalculator / NumOS because graphing calculators are expensive, closed, and hard to modify. I wanted to build something affordable, hackable, educational, and physically real. The project started around mid-February 2026 , and I’ve been building it in my free time while still in school. What I’ve built so far Embedded firmware foundation I set up the firmware for an ESP32-S3 N16R8 target using C++17, PlatformIO, Arduino, LVGL 9.x, TFT display support, PSRAM configuration, and serial debugging. Early work included getting the project to compile and run reliably on embedded hardware, fixing display/LVGL issues, configuring flash/PSRAM correctly, and organizing the code into modules instead of one giant file. Main launcher UI I built the first main launcher for NumOS, shown in the screenshot above. It is inspired by modern calculator UIs, but it is not meant to be a clone. It has an app grid, app cards/icons, keyboard focus, navigation logic, a status bar, visual styling, and basic app launching. This is the “home screen” of the calculator OS. App architecture I worked on making NumOS modular. Apps like Calculation, Grapher, Equations, Settings, and future apps can each have their own code and lifecycle. The architecture includes a central SystemApp dispatcher, individual app modules, input routing, display/UI handling, app switching, and serial control for development. Math and calculator features I started building the math side of NumOS: expression parsing, calculator input, natural display / math rendering experiments, graphing work, equation solving experiments, and early CAS / symbolic math experiments. Some parts are stable and others are still experimental, but the long-term goal is serious calculator functionality on embedded hardware. Hardware integration Because NumOS is meant for a real calculator, I also worked on display integration, LVGL flushing, keyboard matrix planning, serial keyboard control, and hardware abstraction. Serial input is useful because I can control the calculator from a PC before the final physical keyboard exists. Recent updates Since the project existed before June 1, my recent work has focused on: improving the NumOS firmware architecture refining the LVGL launcher UI preparing the software for the upcoming custom PCB documenting hardware/software requirements reviewing display, keyboard, USB-C, battery, and power requirements making the project clearer as an open-source calculator OS Current status NumOS is still a work in progress, but it already has an embedded firmware structure, a main launcher UI, LVGL interface work, calculator app experiments, math/parser/CAS experiments, hardware integration planning, and a path toward custom PCB hardware. Next steps Next I want to improve the launcher, stabilize the calculation app, improve graphing, clean up documentation, prepare a better demo, and test NumOS on the first real NeoCalculator PCB prototypes. This is still early, but it is already much more than an idea: I’m trying to turn NumOS into a real, hackable calculator operating system."}]...
|
Title: NumOS by @Enderdesigns | Stardance
Devlogs Title: NumOS by @Enderdesigns | Stardance
Devlogs:
NumOS / NeoCalculator — Initial Devlog What I’m building I’m building NumOS , a free/open-source embedded calculator OS for NeoCalculator , my open-source scientific graphing calculator. The goal is to make a real handheld calculator that students and makers can study, modify, and improve, instead of using a fully closed device. NumOS targets ESP32-S3 hardware with a 320×240 color display, physical keyboard input, calculator apps, graphing, math rendering, and eventually a custom PCB. This Stardance project is focused on the software/firmware : the OS, UI, apps, input handling, math features, and hardware integration code. Why I started I started NeoCalculator / NumOS because graphing calculators are expensive, closed, and hard to modify. I wanted to build something affordable, hackable, educational, and physically real. The project started around mid-February 2026 , and I’ve been building it in my free time while still in school. What I’ve built so far Embedded firmware foundation I set up the firmware for an ESP32-S3 N16R8 target using C++17, PlatformIO, Arduino, LVGL 9.x, TFT display support, PSRAM configuration, and serial debugging. Early work included getting the project to compile and run reliably on embedded hardware, fixing display/LVGL issues, configuring flash/PSRAM correctly, and organizing the code into modules instead of one giant file. Main launcher UI I built the first main launcher for NumOS, shown in the screenshot above. It is inspired by modern calculator UIs, but it is not meant to be a clone. It has an app grid, app cards/icons, keyboard focus, navigation logic, a status bar, visual styling, and basic app launching. This is the “home screen” of the calculator OS. App architecture I worked on making NumOS modular. Apps like Calculation, Grapher, Equations, Settings, and future apps can each have their own code and lifecycle. The architecture includes a central SystemApp dispatcher, individual app modules, input routing, display/UI handling, app switching, and serial control for development. Math and calculator features I started building the math side of NumOS: expression parsing, calculator input, natural display / math rendering experiments, graphing work, equation solving experiments, and early CAS / symbolic math experiments. Some parts are stable and others are still experimental, but the long-term goal is serious calculator functionality on embedded hardware. Hardware integration Because NumOS is meant for a real calculator, I also worked on display integration, LVGL flushing, keyboard matrix planning, serial keyboard control, and hardware abstraction. Serial input is useful because I can control the calculator from a PC before the final physical keyboard exists. Recent updates Since the project existed before June 1, my recent work has focused on: improving the NumOS firmware architecture refining the LVGL launcher UI preparing the software for the upcoming custom PCB documenting hardware/software requirements reviewing display, keyboard, USB-C, battery, and power requirements making the project clearer as an open-source calculator OS Current status NumOS is still a work in progress, but it already has an embedded firmware structure, a main launcher UI, LVGL interface work, calculator app experiments, math/parser/CAS experiments, hardware integration planning, and a path toward custom PCB hardware. Next steps Next I want to improve the launcher, stabilize the calculation app, improve graphing, clean up documentation, prepare a better demo, and test NumOS on the first real NeoCalculator PCB prototypes. This is still early, but it is already much more than an idea: I’m trying to turn NumOS into a real, hackable calculator operating system.
NumOS / NeoCalculator — Emulator Work What have I done I am working on making an emulator for NumOS so anyone can use it anywhere What have I achieve I have a working window that opens and compiles in both Windows and Linux. But still no key input yet....
|
1792684144.9173093
|
1793288944.9173093
|