|
55455
|
BLARE by @sindhushaloom5 | Stardance
|
sindhushaloom5
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BLARE by @sindhushaloom5 | Stardance
|
1793821807.537587
|
1794426607.537587
|
|
38242
|
My own site! by @sindhiagul | Stardance
|
sindhiagul
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @sindhiagul | Stardance
|
1794019862.377683
|
1794624662.377683
|
|
38573
|
I wanna create interesting game-based website by @ I wanna create interesting game-based website by @sincerelymadiina | Stardance...
|
sincerelymadiina
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: I wanna create interesting game-based websi Title: I wanna create interesting game-based website by @sincerelymadiina | Stardance...
|
1793400769.4214392
|
1794005569.4214392
|
|
12267
|
Jace by @sinanfaizal | Stardance
|
sinanfaizal
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Jace by @sinanfaizal | Stardance
|
1793515643.4907606
|
1794120443.4907606
|
|
43088
|
My awesome macropad! by @sinan_dev | Stardance
|
sinan_dev
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @sinan_dev | Starda Title: My awesome macropad! by @sinan_dev | Stardance...
|
1793929724.2229629
|
1794534524.2229629
|
|
9989
|
My first slack bot! by @sinan | Stardance
|
sinan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @sinan | Stardance
|
1793487437.354823
|
1794092237.354823
|
|
20847
|
Untitled by @sinan | Stardance
|
sinan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @sinan | Stardance
|
1793293022.9141827
|
1793897822.9141827
|
|
7202
|
Titanic Survival Predictor by @sinagdev | Stardanc Titanic Survival Predictor by @sinagdev | Stardance...
|
sinagdev
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Titanic Survival Predictor by @sinagdev | S Title: Titanic Survival Predictor by @sinagdev | Stardance...
|
1793519373.3596892
|
1794124173.3596892
|
|
8095
|
My awesome macropad! by @sinQwQ | Stardance
|
sinQwQ
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @sinQwQ | Stardance
|
1793447538.1680834
|
1794052338.1680834
|
|
68468
|
My awesome macropad! by @simsung77 | Stardance
|
simsung77
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @simsung77 | Starda Title: My awesome macropad! by @simsung77 | Stardance...
|
1793742647.0825756
|
1794347447.0825756
|
|
24295
|
Women safety app by @simranbariya | Stardance
|
simranbariya
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Women safety app by @simranbariya | Stardan Title: Women safety app by @simranbariya | Stardance...
|
1793443698.6469553
|
1794048498.6469553
|
|
24303
|
Frictionless by @simranbariya | Stardance
|
simranbariya
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @simranbariya | Stardance
|
1793361276.0542836
|
1793966076.0542836
|
|
19765
|
My very own WebOS by @simplysparsh00 | Stardance
|
simplysparsh00
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @simplysparsh00 | Star Title: My very own WebOS by @simplysparsh00 | Stardance...
|
1793436579.9913826
|
1794041379.9913826
|
|
15733
|
Reality Router MK2 by @simplyrohan | Stardance
|
simplyrohan
|
0
|
25.01
|
0
|
[]
|
[{"post_id": 36239, "ts": "202 [{"post_id": 36239, "ts": "2026-07-28T06:07:13Z", "hours": 5.6842, "text": "Custom cable ducts and skirts I scrapped the OpenSCAD cable duct idea mainly because it couldn’t export to STEP (totally not because I didn’t want to learn it for 10 hours). Instead, I just redesigned them from scratch in OnShape and made sure to use its configuration features so I can generate different lengths and bends. The hardest part was figuring out how to mount them to the DIN rails in a customizable way. I realized that it was dependent on the spacing of the rails, and I somehow made mine a perfect multiple of 35mm which is exactly what DIN rails use. So I have a grid of holes space 17.5mm (35/2) apart which lets me screw in DIN clips anywhere along the duct. I’ll publish these at some point because they’re pretty useful. I do want to make them configurable outside of OnShape though, so I’ll port them to build123d soon™. I also printed a small version of them to test the snap fit for the cover (it’s perfect). After that, I started getting the whole layout setup for the electronics. I then moved on to finishing up the skirts and adding mounts for the power plug, switch, fans, and motor drivers. This was surprisingly hard since I had to make cuts across pieces of the skirt. The under-bed electronics design is mostly done now with the exception of the screen (I need to make a case/mount for it on the front of the machine). While it’s not in CAD because STEP files aren’t provided, there will be a handful of WAGO connectors to split power among components."}, {"post_id": 36061, "ts": "2026-07-27T22:15:01Z", "hours": 3.8583, "text": "Making a Voron rip-off pretty much I started getting the under-bed mounts setup and went down a small rabbit-hole. Turns out all Voron models use “cable ducts”/“wiring ducts”. These are plastic or PVC tubes that have a comb on the sides and are used to route wires. I really liked these for managing cabling. I found a great model some one made for Vorons which I can adapt for my layout. Unfortunatly these mount onto a sheet Vorons have below the bed which my CNC does not. Instead I’m trying to make a version that mounts directly onto the DIN rails. I’m also trying to make it parametric in OpenSCAD but haven’t made much progress. Aside from that, I found some cheap DIN rails and started assembling things in CAD. There are a ton of models online of DIN rail mounts for different components which is super useful. My original layout didn’t account for how spaced out the rails are and also placed the power port in an inconvenient spot which I’ve reorganized but the wiring is the same. Researching Voron machines so much did kinda make me want to copy another aspect I really liked. They use 3D printed “skirts” to cover the under-bed electronics which both makes the machine look cleaner and provides a good mounting spot for components and plugs. After looking at a couple designs, I realized I had no idea how to CAD them and went with a basic hex mesh. I also added some plastic feet (will be 100% infill) to provide clearance for the PSU."}, {"post_id": 35541, "ts": "2026-07-27T01:35:00Z", "hours": 1.4833, "text": "More Electrical Nonsense and Bed I spent a bit too long worrying about how this machine will look (aesthetically) and decided it would mainly look better, but also use less wire and be easier to assemble, if I mounted all the electronics below the bed. I was also thinking a lot how my bed should work. While it’s not the most common option, a lot of aluminum cutting mills do use an MDF spoil board, which lets me also cut wood and polycarbonate in addition to metal. Only issue is it makes mounting/clamping the stock harder. I have a few options (tape, toe clamps, T nuts) but the best option would be embedding T slots into the MDF. Honestly though, I should be able to add that later on after I build the machine so I won’t worry about it right now. Mainly, my new idea moves the mounting structure to leave room for the electronics below and also fixes an issue with the Z range I had on MK1. For the electronics, I spent a lot of time looking at Voron machines (specifically the Trident R2 and the Zero). I spent some time making an new fully detailed wiring diagram which is also how the parts will be arranged physically. Green lines are DIN rails which everything is mounted to. For the cabling ducts, I’ll be using some 3D printed ones used on Voron mods. Fans, ports, and switches will be mounted on 3D printed mesh plates just like a Voron."}, {"post_id": 35049, "ts": "2026-07-26T06:56:20Z", "hours": 4.5886, "text": "Wiring and Klipper Setup Now that I have Klipper setup with the screen, I need to connect it to my motherboard. This was as simple as compiling the Klipper firmware for the STM32 and using the correct configuration for the board. This was my first time using Klipper, and I was concerned I would need to reflash the firmware every time I made a configuration change. Luckily, Klipper abstracts that away to the RPi, meaning all definitions like GPIO pins and speeds can be changed easily. After flashing the firmware, I had to make a few modifications to the config. First, my Z and Y axes are swapped to take advantage of the two Z ports on my board. I also needed to set my mm/rev for each motor and set the speeds. Initially, my speeds were way to fast and the motors started overheating like crazy. When I tried moving the axes, I ran into an issue. Klipper doesn’t let me move axes until the “printer” is homed which is an issue since I don’t have any way to home the axes. Instead, I enabled force movement, and had to manually send a command to zero the machine. In the future, I will make this a macro and maybe even a button on the screen. I want to upgrade this machine to use NEMA23s which comes with a problem. I’ve been reusing a BTT SKR Mini E3 V2 which uses TMC2209 drivers to control NEMA17s. Unfortunately, the high power (important to note NEMA17/23 is just the mounting size, but usually is more powerful) NEMA23s I want to use will draw too much current. I’ll instead switch to a custom control system. I’ll use TB6600 drivers (subject to change) with an RP2040 XIAO which is connected via UART to the RPi running Klipper. I also want to have automatic spindle control which will use another RP2040, but I’ll talk more about that in another devlog. I went over a few iterations of how everything is organized but this is what I settled for. Things in a white box are together in a container physically."}, {"post_id": 34271, "ts": "2026-07-24T20:40:42Z", "hours": 2.25, "text": "Finished Z Axis Finished up the Z axis fixes and ended up switching back to 4040 extrusions. To bring the weight closer, the main difference is that I removed the X carriage. I also tucked the lead screw in between the linear rails which also saves space. Hopefully this will all result in a much more sturdy Z axis. I’m considering adding some sort of material inside the clamp to grip the router better but except for grip tape, all options I can think of would add slop and make the router less rigid. I also forgot to add images of this previously, but I have new models for the ballscrew mounts."}, {"post_id": 34163, "ts": "2026-07-24T17:56:54Z", "hours": 2.6753, "text": "Klipper Setup w/ KlipperScreen I reflashed my RPi Zero 2 W with a stock Debian install and started installing Klipper-for-CNC with Kiauh. That was simple enough but I also wanted to get KlipperScreen working with a 3.5” capacitive touchscreen I had lying around. KlipperScreen outputs video to the Linux framebuffer with X11 but without HDMI this wasn’t visible. I’m using an ST7796 display over SPI. After connecting the screen to GPIO, I thought an easy to use driver would already exist for this display. There was this one which I tried setting up. Unfortunately this a) didn’t support the RPi Zero 2 W, but that was easy to fix and b) relied on the old VideoCore framework which Raspberry Pi OS doesn’t ship with anymore. After that, I went digging for another solution. I found this repo and this forum post which showed that the kernel already had support for generic displays like these, so I just had to add the init sequence of bytes for my display. After hours of tweaking with boot settings I finally got it working! Now I needed touch to work, which used an FT6336U driver. At the bottom of some forum post I was able to find a repo which had drivers for the OrangePi for my exact screen. This probably would’ve been helpful getting the screen working but I anyways like my solution better. I compiled the driver in the repo and remade the DTS file for an RPi Zero 2 W rather than an Orange Pi. Surprisingly, this just worked! The touch coordinate orientation was correct, and even gestures like scrolling worked perfectly! Now I have Klipper fully setup with my display and need to connect it to my motherboard."}, {"post_id": 33091, "ts": "2026-07-22T18:07:54Z", "hours": 2.1836, "text": "I updated the Z axis to use 2020 extrusions (smaller and lighter) and 2 linear rails to support the Z carriage. The previous version of the X carriage got ripped up because there was too much strain on it over time. This updated version distributes the weight on two rails and brings the mass (heavy router) closer (smaller cantilever)."}, {"post_id": 32592, "ts": "2026-07-21T21:24:04Z", "hours": 2.2883, "text": "New Compact X Carriage"}]...
|
Title: Reality Router MK2 by @simplyrohan | Starda Title: Reality Router MK2 by @simplyrohan | Stardance
Devlogs:
New Compact X Carriage
I updated the Z axis to use 2020 extrusions (smaller and lighter) and 2 linear rails to support the Z carriage. The previous version of the X carriage got ripped up because there was too much strain on it over time. This updated version distributes the weight on two rails and brings the mass (heavy router) closer (smaller cantilever).
Klipper Setup w/ KlipperScreen I reflashed my RPi Zero 2 W with a stock Debian install and started installing Klipper-for-CNC with Kiauh. That was simple enough but I also wanted to get KlipperScreen working with a 3.5” capacitive touchscreen I had lying around. KlipperScreen outputs video to the Linux framebuffer with X11 but without HDMI this wasn’t visible. I’m using an ST7796 display over SPI. After connecting the screen to GPIO, I thought an easy to use driver would already exist for this display. There was this one which I tried setting up. Unfortunately this a) didn’t support the RPi Zero 2 W, but that was easy to fix and b) relied on the old VideoCore framework which Raspberry Pi OS doesn’t ship with anymore. After that, I went digging for another solution. I found this repo and this forum post which showed that the kernel already had support for generic displays like these, so I just had to add the init sequence of bytes for my display. After hours of tweaking with boot settings I finally got it working! Now I needed touch to work, which used an FT6336U driver. At the bottom of some forum post I was able to find a repo which had drivers for the OrangePi for my exact screen. This probably would’ve been helpful getting the screen working but I anyways like my solution better. I compiled the driver in the repo and remade the DTS file for an RPi Zero 2 W rather than an Orange Pi. Surprisingly, this just worked! The touch coordinate orientation was correct, and even gestures like scrolling worked perfectly! Now I have Klipper fully setup with my display and need to connect it to my motherboard.
Finished Z Axis Finished up the Z axis fixes and ended up switching back to 4040 extrusions. To bring the weight closer, the main difference is that I removed the X carriage. I also tucked the lead screw in between the linear rails which also saves space. Hopefully this will all result in a much more sturdy Z axis. I’m considering adding some sort of material inside the clamp to grip the router better but except for grip tape, all options I can think of would add slop and make the router less rigid. I also forgot to add images of this previously, but I have new models for the ballscrew mounts.
Wiring and Klipper Setup Now that I have Klipper setup with the screen, I need to connect it to my motherboard. This was as simple as compiling the Klipper firmware for the STM32 and using the correct configuration for the board. This was my first time using Klipper, and I was concerned I would need to reflash the firmware every time I made a configuration change. Luckily, Klipper abstracts that away to the RPi, meaning all definitions like GPIO pins and speeds can be changed easily. After flashing the firmware, I had to make a few modifications to the config. First, my Z and Y axes are swapped to take advantage of the two Z ports on my board. I also needed to set my mm/rev for each motor and set the speeds. Initially, my speeds were way to fast and the motors started overheating like crazy. When I tried moving the axes, I ran into an issue. Klipper doesn’t let me move axes until the “printer” is homed which is an issue since I don’t have any way to home the axes. Instead, I enabled force movement, and had to manually send a command to zero the machine. In the future, I will make this a macro and maybe even a button on the screen. I want to upgrade this machine to use NEMA23s which comes with a problem. I’ve been reusing a BTT SKR Mini E3 V2 which uses TMC2209 drivers to control NEMA17s. Unfortunately, the high power (important to note NEMA17/23 is just the mounting size, but usually is more powerful) NEMA23s I want to use will draw too much current. I’ll instead switch to a custom control system. I’ll use TB6600 drivers (subject to change) with an RP2040 XIAO which is connected via UART to the RPi running Klipper. I also want to have automatic spindle control which will use another RP2040, but I’ll talk more about that in another devlog. I went over a few iterations of how everything is organized but this is what I settled for. Things in a white box are together in a container physically.
More Electrical Nonsense and Bed I spent a bit too long worrying about how this machine will look (aesthetically) and decided it would mainly look better, but also use less wire and be easier to assemble, if I mounted all the electronics below the bed. I was also thinking a lot how my bed should work. While it’s not the most common option, a lot of aluminum cutting mills do use an MDF spoil board, which lets me also cut wood and polycarbonate in addition to metal. Only issue is it makes mounting/clamping the stock harder. I have a few options (tape, toe clamps, T nuts) but the best option would be embedding T slots into the MDF. Honestly though, I should be able to add that later on after I build the machine so I won’t worry about it right now. Mainly, my new idea moves the mounting structure to leave room for the electronics below and also fixes an issue with the Z range I had on MK1. For the electronics, I spent a lot of time looking at Voron machines (specifically the Trident R2 and the Zero). I spent some time making an new fully detailed wiring diagram which is also how the parts will be arranged physically. Green lines are DIN rails which everything is mounted to. For the cabling ducts, I’ll be using some 3D printed ones used on Voron mods. Fans, ports, and switches will be mounted on 3D printed mesh plates just like a Voron.
Making a Voron rip-off pretty much I started getting the under-bed mounts setup and went down a small rabbit-hole. Turns out all Voron models use “cable ducts”/“wiring ducts”. These are plastic or PVC tubes that have a comb on the sides and are used to route wires. I really liked these for managing cabling. I found a great model some one made for Vorons which I can adapt for my layout. Unfortunatly these mount onto a sheet Vorons have below the bed which my CNC does not. Instead I’m trying to make a version that mounts directly onto the DIN rails. I’m also trying to make it parametric in OpenSCAD but haven’t made much progress. Aside from that, I found some cheap DIN rails and started assembling things in CAD. There are a ton of models online of DIN rail mounts for different components which is super useful. My original layout didn’t account for how spaced out the rails are and also placed the power port in an inconvenient spot which I’ve reorganized but the wiring is the same. Researching Voron machines so much did kinda make me want to copy another aspect I really liked. They use 3D printed “skirts” to cover the under-bed electronics which both makes the machine look cleaner and provides a good mounting spot for components and plugs. After looking at a couple designs, I realized I had no idea how to CAD them and went with a basic hex mesh. I also added some plastic feet (will be 100% infill) to provide clearance for the PSU.
Custom cable ducts and skirts I scrapped the OpenSCAD cable duct idea mainly because it couldn’t export to STEP (totally not because I didn’t want to learn it for 10 hours). Instead, I just redesigned them from scratch in OnShape and made sure to use its configuration features so I can generate different lengths and bends. The hardest part was figuring out how to mount them to the DIN rails in a customizable way. I realized that it was dependent on the spacing of the rails, and I somehow made mine a perfect multiple of 35mm which is exactly what DIN rails use. So I have a grid of holes space 17.5mm (35/2) apart which lets me screw in DIN clips anywhere along the duct. I’ll publish these at some point because they’re pretty useful. I do want to make them configurable outside of OnShape though, so I’ll port them to build123d soon™. I also printed a small version of them to test the snap fit for the cover (it’s perfect). After that, I started getting the whole layout setup for the electronics. I then moved on to finishing up the skirts and adding mounts for the power plug, switch, fans, and motor drivers. This was surprisingly hard since I had to make cuts across pieces of the skirt. The under-bed electronics design is mostly done now with the exception of the screen (I need to make a case/mount for it on the front of the machine). While it’s not in CAD because STEP files aren’t provided, there will be a handful of WAGO connectors to split power among components....
|
1793479660.7851794
|
1794084460.7851794
|
|
41218
|
Reality Router MK1 by @simplyrohan | Stardance
|
simplyrohan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Reality Router MK1 by @simplyrohan | Starda Title: Reality Router MK1 by @simplyrohan | Stardance...
|
1793551964.1359072
|
1794156764.1359072
|
|
41791
|
PicoPrint by @simplyrohan | Stardance
|
simplyrohan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: PicoPrint by @simplyrohan | Stardance
|
1793782417.1674037
|
1794387217.1674037
|
|
43709
|
OpenVDE by @simplyrohan | Stardance
|
simplyrohan
|
0
|
63.69
|
0
|
[]
|
[{"post_id": 66393, "ts": "202 [{"post_id": 66393, "ts": "2026-09-12T06:23:42Z", "hours": 7.1575, "text": "Project Loader + Operation types Added the concept of a “Project” which is a collection of “Studios”. When you open the app you select a project directory and it will look at the files in it to load each Studio. This also unlocks persistent storage and multi-studio projects. One limitation is it relies on the Filesystem API which Firefox doesn’t support for security reasons. That is a bummer, but since the primary target for this app is anyways native it shouldn’t matter too much. I also implemented operation types for extrudes, including negative and intersection operations."}, {"post_id": 64537, "ts": "2026-09-09T00:59:14Z", "hours": 8.3597, "text": "Bidirectional Serialization I’ve been building up to this feature for a while but I finally got lossless and bidirectional conversion between the AST and UI representations. This means you can design something, pull up just the Python file on another device, and continue working seamlessly. This also means you can edit the code in real-time and see it immediately reflect in the UI and vice versa."}, {"post_id": 61917, "ts": "2026-09-05T02:46:53Z", "hours": 8.0708, "text": "Fillet feature and reparsable AST Completely forgot to log for a while but got a lot done. I wanted to add the fillet feature and in order to get there had to be able to select edges of the model. This was mostly just duplicating the same logic that I used for face selection. I basically just export the edge as it’s own poly-line in the .GLB file. Adding the fillet feature was pretty easy after this since the framework I made before makes it pretty simple. Then I added back the script view on the left to show a live preview of the code. Each feature exports python AST, which depending on the context can be run on Pyodide or be ran through a quick transformation to export. I’m currently working on making the script editable. Each feature and expression now has a fromAST method which gives an instance of that feature/expression based on the code. This gives a bi-directional and lossless conversion between the UI representation and code."}, {"post_id": 56465, "ts": "2026-08-28T07:32:19Z", "hours": 3.7097, "text": "More consistent dependency tracking and more! I generally cleaned up a lot of the jank from my rush to get an MVP working. Big thing is I actually have a somewhat working “timeline” now so each feature saves its output and it doesn’t get overwritten by the next one. Also added a new feature called “Script” which is sort of a back-up feature which allows you to inject arbitrary build123d code into the project and build off of it. This allowed me to remove the code editor along with the weird code to deal with manual code generation that wasn’t a feature. Overall, much less buggy experience and stuff working!"}, {"post_id": 55385, "ts": "2026-08-27T05:51:47Z", "hours": 7.2239, "text": "Working extrude! It works! I expanded a lot on the idea I had of Primitives and chunked the entire code-generation architecture into “Tools”, “Expressions”, “Primitives”, and “Bindings”. These all work with py-ast to generate an AST for Python and the AST get analyzed for dependencies (eg. the model its operating on, the face its extruding) and the deps are looked up in a “symbol table” which Pyodide then injects into the global namespace. All that to say, I can write features and have them operate on the model without rerunning the whole script and without duplicating a bunch of code. Here is an example of me selecting a face on the auto-generated key cap and extruding it 10mm. Since we can’t sketch yet, I need to auto-generate a model to be able to get faces in the scene."}, {"post_id": 50068, "ts": "2026-08-19T03:42:29Z", "hours": 6.5108, "text": "RPC with worker I started using Comlink to implement RPC with the worker. The idea was to be able to interact with PyProxies from the main thread through Comlink, but unfortunately since PyProxies are already proxies it makes the whole system incredibly weird. Instead, I started using a “registry” for PyProxies and referenced them with a string-type key in the main thread. This all needed a lot of refactoring and I also improved the types across the project. No new features have been added but I should be able to actually implement working features/tools now. P.S: Model regen is taking 200sec+ on my Mac which is very concerning, I need to look into it."}, {"post_id": 47352, "ts": "2026-08-15T07:35:03Z", "hours": 5.0864, "text": "Feature Menu I expanded on the feature templates, honestly went through 3 different iterations before settling on this one. This new one introduces dynamic fields, meaning sections can be shown or hidden based on the values of other fields. I also wrote a nicer interface for the menu, and got the a lot of different data-type inputs working. The nice thing about my custom schema-format for the fields is primitive inputs like numbers and check boxes are just as seamless as custom ones like face selectors. The next obvious step is making the feature actually work, which will require a small bit of refactoring. It would be really inefficient to recompute the entire script each time a feature is modified (especially if I want live updates while editing the feature) so I’d like to use Pyodide’s ability to interact with Python objects directly. Unfortunatly, the object responsible for that ( PyProxy ) is not serializable and can’t be shared between the worker and UI. The fix is setting up an RPC system and having all the features/tools live on the worker and the UI just uses comlink to call them."}, {"post_id": 45604, "ts": "2026-08-12T06:20:24Z", "hours": 4.6058, "text": "Feature Templates I want to start getting sketching and other features working and created a reusable object oriented way to make them. This forced me to learn a lot about TypeScript and I’m not even sure if I understand it now. But the end result is a Tool class that has a Zod schema defining the parameter types for the tool’s callback function. The function is automatically typed based on the schema, as well as a defaults object. This was crazy complicated because I had to juggle generic types, static vs instance properties, and a bunch of other weird typing stuff. There’s not much to show here but now when I click a feature a pop-up shows the parameter names and types. Next I’ll write a UI “generator” which has inputs for the parameter, even custom types like faces/planes."}, {"post_id": 44398, "ts": "2026-08-10T03:35:44Z", "hours": 2.7219, "text": "Face Selection I was going to start working on sketching and other features but realized I needed to be able to select faces first. Three.js does have a Raycaster to select objects in the scene but it returns the whole object or triangles since it has no knowledge of the B-REP model (which stores the actual faces we want rather than triangle approximations ) after exporting it. The solution was replacing build123d’s builtin export for a more manual process. I used the trimesh library to manually add each face of the model as it’s own mesh and exporting them all together as a scene. Three.js load’s the whole scene as a Group which is practically identical to a normal mesh in code. Now when the Raycaster returns a Mesh, it’s actually a face."}, {"post_id": 41797, "ts": "2026-08-06T06:47:20Z", "hours": 2.9908, "text": "GLB Optimizations and Improved Toolbar I got the regenerate+re-render times down to about 800ms. The biggest part was actually just letting the browser’s JIT compile the hot parts so that subsequent regens would run way faster. It only takes 1 eval to get there, although that one eval is about 15 seconds. After that its super fast. Another thing I did was switch to the GLB file format for transfering mesh data between build123d and three.js. GLB is very compact and encodes+decodes super fast. This took the encode + parse time from 3 seconds to about 100ms. I’d really like to be able to cache the “JIT”ed WASM between page loads and apparently the browser should do this already but it’s clearly not. I also worked on the toolbar and used Bits UI to get a really nice search function with the features. I want to have a nice reusable interface for defining features with an automatic UI builder which would also make an equivalent to OnShape’s FeatureScripts super easy to implement (literally just a build123d generator with some UI bindings)."}, {"post_id": 40561, "ts": "2026-08-04T06:09:59Z", "hours": 7.2558, "text": "The Idea OpenVDE (need a better name) is on the surface a standard CAD software to design parts and assemblies. I was frustrated with existing solutions like OnShape because it’s completely cloud-based (you will own nothing and be happy), and only runs in the browser which often lags a lot with WebGL and both of these mean offline use is impossible. However, these together do give the convenience of seamless collaboration. On the other hand, apps like Fusion360 (and I’m assuming SolidWorks although I’ve never used it) do run locally but run like garbage because they’re from the 20th century (I’m not even kidding) and will crash unless you make a sacrifice to Andrew Anagnost himself. As a side effect of running locally, the collaboration features are lacking and don’t work well with modern workflows. OpenVDE My solution is CodeCAD, which is an approach to designing parts using code to call a CAD kernel in order to generate parts. OpenVDE is a generator for build123d Python scripts. You use it just like any other CAD software but it saves to a Git repository (or whatever you want to use) which allows for advanced version control and collaboration (eg. live editing of the same file). Storing designs as text also unlocks true parametric design and can be used to also write generators for parts using the logic flows programming languages provide. I want this app to be an cross-platform and not look like crap, so I decided to go with a Tauri app with a Svelte front-end. A big feature of OpenVDE is the hybrid RPC CAD kernel, which is just jargon for you can run the heavy CAD operations natively, in WASM, in a cloud server, or on your own self-hosted server. This works because at it’s core OpenVDE just generates Python code and it can either be run through Pyodide in WASM, Py03 for native via Rust, or by calling a server. Progress I setup the project with some basic styles, Three.js, and Pyodide. Huge thanks to this project which provides the WASM compiled wheels for build123d (although I’m pretty sure the project is vibe coded). After getting that all setup plus IndexedDB caching of the packages and an async Web Worker to free the main thread, I got a bare-minimum example of a build123d sandbox in the browser. I’ll try optimizing it, but the WASM version is running extremely slowly right now (15sec+ to generate this simple part)."}]...
|
Title: OpenVDE by @simplyrohan | Stardance
Devlog Title: OpenVDE by @simplyrohan | Stardance
Devlogs:
The Idea OpenVDE (need a better name) is on the surface a standard CAD software to design parts and assemblies. I was frustrated with existing solutions like OnShape because it’s completely cloud-based (you will own nothing and be happy), and only runs in the browser which often lags a lot with WebGL and both of these mean offline use is impossible. However, these together do give the convenience of seamless collaboration. On the other hand, apps like Fusion360 (and I’m assuming SolidWorks although I’ve never used it) do run locally but run like garbage because they’re from the 20th century (I’m not even kidding) and will crash unless you make a sacrifice to Andrew Anagnost himself. As a side effect of running locally, the collaboration features are lacking and don’t work well with modern workflows. OpenVDE My solution is CodeCAD, which is an approach to designing parts using code to call a CAD kernel in order to generate parts. OpenVDE is a generator for build123d Python scripts. You use it just like any other CAD software but it saves to a Git repository (or whatever you want to use) which allows for advanced version control and collaboration (eg. live editing of the same file). Storing designs as text also unlocks true parametric design and can be used to also write generators for parts using the logic flows programming languages provide. I want this app to be an cross-platform and not look like crap, so I decided to go with a Tauri app with a Svelte front-end. A big feature of OpenVDE is the hybrid RPC CAD kernel, which is just jargon for you can run the heavy CAD operations natively, in WASM, in a cloud server, or on your own self-hosted server. This works because at it’s core OpenVDE just generates Python code and it can either be run through Pyodide in WASM, Py03 for native via Rust, or by calling a server. Progress I setup the project with some basic styles, Three.js, and Pyodide. Huge thanks to this project which provides the WASM compiled wheels for build123d (although I’m pretty sure the project is vibe coded). After getting that all setup plus IndexedDB caching of the packages and an async Web Worker to free the main thread, I got a bare-minimum example of a build123d sandbox in the browser. I’ll try optimizing it, but the WASM version is running extremely slowly right now (15sec+ to generate this simple part).
GLB Optimizations and Improved Toolbar I got the regenerate+re-render times down to about 800ms. The biggest part was actually just letting the browser’s JIT compile the hot parts so that subsequent regens would run way faster. It only takes 1 eval to get there, although that one eval is about 15 seconds. After that its super fast. Another thing I did was switch to the GLB file format for transfering mesh data between build123d and three.js. GLB is very compact and encodes+decodes super fast. This took the encode + parse time from 3 seconds to about 100ms. I’d really like to be able to cache the “JIT”ed WASM between page loads and apparently the browser should do this already but it’s clearly not. I also worked on the toolbar and used Bits UI to get a really nice search function with the features. I want to have a nice reusable interface for defining features with an automatic UI builder which would also make an equivalent to OnShape’s FeatureScripts super easy to implement (literally just a build123d generator with some UI bindings).
Face Selection I was going to start working on sketching and other features but realized I needed to be able to select faces first. Three.js does have a Raycaster to select objects in the scene but it returns the whole object or triangles since it has no knowledge of the B-REP model (which stores the actual faces we want rather than triangle approximations ) after exporting it. The solution was replacing build123d’s builtin export for a more manual process. I used the trimesh library to manually add each face of the model as it’s own mesh and exporting them all together as a scene. Three.js load’s the whole scene as a Group which is practically identical to a normal mesh in code. Now when the Raycaster returns a Mesh, it’s actually a face.
Feature Templates I want to start getting sketching and other features working and created a reusable object oriented way to make them. This forced me to learn a lot about TypeScript and I’m not even sure if I understand it now. But the end result is a Tool class that has a Zod schema defining the parameter types for the tool’s callback function. The function is automatically typed based on the schema, as well as a defaults object. This was crazy complicated because I had to juggle generic types, static vs instance properties, and a bunch of other weird typing stuff. There’s not much to show here but now when I click a feature a pop-up shows the parameter names and types. Next I’ll write a UI “generator” which has inputs for the parameter, even custom types like faces/planes.
Feature Menu I expanded on the feature templates, honestly went through 3 different iterations before settling on this one. This new one introduces dynamic fields, meaning sections can be shown or hidden based on the values of other fields. I also wrote a nicer interface for the menu, and got the a lot of different data-type inputs working. The nice thing about my custom schema-format for the fields is primitive inputs like numbers and check boxes are just as seamless as custom ones like face selectors. The next obvious step is making the feature actually work, which will require a small bit of refactoring. It would be really inefficient to recompute the entire script each time a feature is modified (especially if I want live updates while editing the feature) so I’d like to use Pyodide’s ability to interact with Python objects directly. Unfortunatly, the object responsible for that ( PyProxy ) is not serializable and can’t be shared between the worker and UI. The fix is setting up an RPC system and having all the features/tools live on the worker and the UI just uses comlink to call them.
RPC with worker I started using Comlink to implement RPC with the worker. The idea was to be able to interact with PyProxies from the main thread through Comlink, but unfortunately since PyProxies are already proxies it makes the whole system incredibly weird. Instead, I started using a “registry” for PyProxies and referenced them with a string-type key in the main thread. This all needed a lot of refactoring and I also improved the types across the project. No new features have been added but I should be able to actually implement working features/tools now. P.S: Model regen is taking 200sec+ on my Mac which is very concerning, I need to look into it.
Working extrude! It works! I expanded a lot on the idea I had of Primitives and chunked the entire code-generation architecture into “Tools”, “Expressions”, “Primitives”, and “Bindings”. These all work with py-ast to generate an AST for Python and the AST get analyzed for dependencies (eg. the model its operating on, the face its extruding) and the deps are looked up in a “symbol table” which Pyodide then injects into the global namespace. All that to say, I can write features and have them operate on the model without rerunning the whole script and without duplicating a bunch of code. Here is an example of me selecting a face on the auto-generated key cap and extruding it 10mm. Since we can’t sketch yet, I need to auto-generate a model to be able to get faces in the scene.
More consistent dependency tracking and more! I generally cleaned up a lot of the jank from my rush to get an MVP working. Big thing is I actually have a somewhat working “timeline” now so each feature saves its output and it doesn’t get overwritten by the next one. Also added a new feature called “Script” which is sort of a back-up feature which allows you to inject arbitrary build123d code into the project and build off of it. This allowed me to remove the code editor along with the weird code to deal with manual code generation that wasn’t a feature. Overall, much less buggy experience and stuff working!
Fillet feature and reparsable AST Completely forgot to log for a while but got a lot done. I wanted to add the fillet feature and in order to get there had to be able to select edges of the model. This was mostly just duplicating the same logic that I used for face selection. I basically just export the edge as it’s own poly-line in the .GLB file. Adding the fillet feature was pretty easy after this since the framework I made before makes it pretty simple. Then I added back the script view on the left to show a live preview of the code. Each feature exports python AST, which depending on the context can be run on Pyodide or be ran through a quick transformation to export. I’m currently working on making the script editable. Each feature and expression now has a fromAST method which gives an instance of that feature/expression based on the code. This gives a bi-directional and lossless conversion between the UI representation and code.
Bidirectional Serialization I’ve been building up to this feature for a while but I finally got lossless and bidirectional conversion between the AST and UI representations. This means you can design something, pull up just the Python file on another device, and continue working seamlessly. This also means you can edit the code in real-time and see it immediately reflect in the UI and vice versa.
Project Loader + Operation types Added the concept of a “Project” which is a collection of “Studios”. When you open the app you select a project directory and it will look at the files in it to load each Studio. This also unlocks persistent storage and multi-studio projects. One limitation is it relies on the Filesystem API which Firefox doesn’t support for security reasons. That is a bummer, but since the primary target for this app is anyways native it shouldn’t matter too much. I also implemented operation types for extrudes, including negative and intersection operations....
|
1793976633.132323
|
1794581433.132323
|
|
22866
|
Untitled project by @simplyom | Stardance
|
simplyom
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @simplyom | Stardance
|
1793455069.4135168
|
1794059869.4135168
|
|
48280
|
my APOD site by @simplykanav | Stardance
|
simplykanav
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @simplykanav | Stardance
|
1793962427.6932068
|
1794567227.6932068
|
|
62384
|
WarioWare Game by @simonsiam | Stardance
|
simonsiam
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @simonsiam | Stardance
|
1793656084.601945
|
1794260884.601945
|
|
62504
|
definitely not a bomb by @simonsiam | Stardance
|
simonsiam
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: definitely not a bomb by @simonsiam | Stard Title: definitely not a bomb by @simonsiam | Stardance...
|
1793656189.9668975
|
1794260989.9668975
|
|
4702
|
My awesome macropad! by @simonschaukel | Stardance
|
simonschaukel
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @simonschaukel | St Title: My awesome macropad! by @simonschaukel | Stardance...
|
1793854269.700247
|
1794459069.700247
|
|
47442
|
model rocket v2 by @simonrnr | Stardance
|
simonrnr
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: model rocket v2 by @simonrnr | Stardance
|
1793875943.1393015
|
1794480743.1393015
|
|
288
|
stardisco by @simonpth | Stardance
|
simonpth
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: stardisco by @simonpth | Stardance
|
1793408025.73404
|
1794012825.73404
|
|
10947
|
legacytide by @simonproyt | Stardance
|
simonproyt
|
1
|
3.2
|
7
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T19:54:49Z", "hours": 2.0, "multiplier": 3.47, "payout": 7, "blessing": "neutral", "text": "I made a tidal client for legacy android devices. It was hard because old android and by extension blackberry 10 do not support modern tls libraries and they need to be backported.", "repo": "https://github.com/simonproyt/legacytide", "demo": "https://user-cdn.hackclub-assets.com/019f2493-4118-7486-9d28-6df0569ba19e/PXL_20260607_154311711%20(1).mp4"}]...
|
[{"post_id": 4948, "ts": "2026 [{"post_id": 4948, "ts": "2026-06-08T16:06:20Z", "hours": 0.9003, "text": "We added a download queue system to the app for better dl management"}, {"post_id": 4522, "ts": "2026-06-07T21:14:29Z", "hours": 0.2953, "text": "I added the queue system now and moved on to adding offline playback support"}, {"post_id": 4465, "ts": "2026-06-07T19:51:49Z", "hours": 1.7022, "text": "We managed to make playback home screen and most of the other stuff hooked up"}, {"post_id": 4191, "ts": "2026-06-07T12:40:45Z", "hours": 0.3592, "text": "I got TLS 1.3 finally working on android 4.3"}]...
|
Title: legacytide by @simonproyt | Stardance
Devl Title: legacytide by @simonproyt | Stardance
Devlogs:
I got TLS 1.3 finally working on android 4.3
We managed to make playback home screen and most of the other stuff hooked up
I added the queue system now and moved on to adding offline playback support
We added a download queue system to the app for better dl management
Ships:
I made a tidal client for legacy android devices. It was hard because old android and by extension blackberry 10 do not support modern tls libraries and they need to be backported....
|
1793926536.0446868
|
1794012936.0446868
|
|
12140
|
monkeypad by @simonproyt | Stardance
|
simonproyt
|
0
|
1.27
|
0
|
[]
|
[{"post_id": 5593, "ts": "2026 [{"post_id": 5593, "ts": "2026-06-09T13:25:37Z", "hours": 0.8439, "text": "I switched from kmk to qmk for the firmware for the macropad and added an oled screen ui that shows pc ram and cpu usage percentage and song data that is being transmitted to the macropad via a companion app written in go on the host system"}, {"post_id": 4869, "ts": "2026-06-08T12:43:10Z", "hours": 0.4311, "text": "So we manged to make a good pcb in KiCad after a few hours but sadly the hackatime companion app for KiCad was kinda broken so it didnt count towards my daily goals sadly"}]...
|
Title: monkeypad by @simonproyt | Stardance
Devlo Title: monkeypad by @simonproyt | Stardance
Devlogs:
So we manged to make a good pcb in KiCad after a few hours but sadly the hackatime companion app for KiCad was kinda broken so it didnt count towards my daily goals sadly
I switched from kmk to qmk for the firmware for the macropad and added an oled screen ui that shows pc ram and cpu usage percentage and song data that is being transmitted to the macropad via a companion app written in go on the host system...
|
1793569950.5488136
|
1794174750.5488136
|
|
27065
|
monkeyos by @simonproyt | Stardance
|
simonproyt
|
2
|
25.0
|
177
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-20T20:58:19Z", "hours": 18.0, "multiplier": 9.98, "payout": 177, "blessing": "neutral", "text": "I finally turned the concept into a more usable tech demo that has some features and focused on making apps that demo the oses underlying apis in a simple way and polishing the whole os to not have that unfinished concept feeling also if you want to try it out you might need to enable webgpu in your browsers flags settings if its not enabled by default. Thank you for reading and I hope that you found my projects interesting!", "repo": "https://github.com/simonproyt/monkeyos", "demo": "https://simonproyt.github.io/monkeyos/"}, {"ship_num": 2, "ts": "2026-07-02T14:29:44Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So i think this is good as an initial version but i have a lot of work to do on the rendering engine and adding more apps because its kinda bare bones but i will be definitely flushing it out more and making the ui more pretty", "repo": "https://github.com/simonproyt/monkeyos", "demo": "https://simonproyt.github.io/monkeyos/"}]...
|
[{"post_id": 31998, "ts": "202 [{"post_id": 31998, "ts": "2026-07-20T20:46:58Z", "hours": 3.4631, "text": "Backgrounds finally so one of the things missing from the os i think was like some pretty backgrounds cause the os only had that bland dark blue/grey ish simple one color background support but i changed that now and added support for random image background support with NASA APOD or Picsum random as the selectable options in the new settings app"}, {"post_id": 31110, "ts": "2026-07-19T07:45:09Z", "hours": 3.0192, "text": "First game Added snake to the os as a cool way to demo all the rendering sound and storage apis in a fun way and added a few underlying kernel and window manager changes like increasing the oses fps target from 2 to 30 because it was so laggy for games"}, {"post_id": 28805, "ts": "2026-07-15T09:36:37Z", "hours": 2.2514, "text": "More audio stuff piano It’s a piano what more could i say about it midiplayer It’s a retro chiptune style midi player to demo the oses audio capabilities with a cool visualizer"}, {"post_id": 27598, "ts": "2026-07-13T10:16:20Z", "hours": 2.3033, "text": "Added some multimedia features and a basic networking api beep Just a simple pc speaker like beep to test if the sound api is working or not imgview An image viewer thats it nothing special fetch A curl like command that uses the new networking api to fetch stuff trough the browser or if that fails because of crocs trough a proxy api"}, {"post_id": 26606, "ts": "2026-07-11T15:14:12Z", "hours": 1.0986, "text": "Added 3 new commands to the cli mv and grep: its preatty self explanatory what it does if you ever used linux or any other unix like operating system for that matter man: this was kinda hard at first finding where you can find online versions of the manpages from linux that the os can easily get over an api but after a bit of searching i found the tldr pages project and uses that and the github api to download the pages and then strip out the markdown syntax from them and displays them in the terminal."}, {"post_id": 26087, "ts": "2026-07-10T17:50:55Z", "hours": 2.3481, "text": "Added two new apps to the os so after having the libui ui layer implemented i decided to add more apps to demo it like a notepad and a basic file manager"}, {"post_id": 24708, "ts": "2026-07-08T14:01:42Z", "hours": 3.8514, "text": "A pretty big update so after a lot of work i finally added a few features that the os have been missing for ages like a gui library so there could be gui apps not just terminal stuff and a demo calculator app text rendering support to the webgpu engine aero snap like window snapping a dock for window management with a clock and a menu to launch apps Thank you for reading my devlog"}, {"post_id": 20790, "ts": "2026-07-02T14:22:45Z", "hours": 0.9364, "text": "Worked on a ci pipeline to deploy the project automatically to github pages and added a few visual fixes to the project"}, {"post_id": 20013, "ts": "2026-07-01T14:41:16Z", "hours": 1.2564, "text": "Multi windowing is finally supported now but the gui still looks kinda basic the webgpu rendering engine behind everything still doesn’t support text or image rendering so i will be working on that and adding more apps because we only have the terminal"}, {"post_id": 19210, "ts": "2026-06-30T14:03:35Z", "hours": 2.1317, "text": "So we have finally working unix style pipes added to the system and a lot of underlying changes in the kernel for more performance improvements cause the older versions were kinda slow and im trying to fix that"}, {"post_id": 17568, "ts": "2026-06-28T12:24:53Z", "hours": 2.5189, "text": "So this is my first devlog for this project the idea is that to build a rust and wasm based web os that because i taught that using standard html 5 + js would be kinda boring because everyone does that i wanted to do something special so here is the current state of the project: Whats working basic filesystem basic process management a basic shell with rust uutils backed commands Thanks for reading my devlog"}]...
|
Title: monkeyos by @simonproyt | Stardance
Devlog Title: monkeyos by @simonproyt | Stardance
Devlogs:
So this is my first devlog for this project the idea is that to build a rust and wasm based web os that because i taught that using standard html 5 + js would be kinda boring because everyone does that i wanted to do something special so here is the current state of the project: Whats working basic filesystem basic process management a basic shell with rust uutils backed commands Thanks for reading my devlog
So we have finally working unix style pipes added to the system and a lot of underlying changes in the kernel for more performance improvements cause the older versions were kinda slow and im trying to fix that
Multi windowing is finally supported now but the gui still looks kinda basic the webgpu rendering engine behind everything still doesn’t support text or image rendering so i will be working on that and adding more apps because we only have the terminal
Worked on a ci pipeline to deploy the project automatically to github pages and added a few visual fixes to the project
A pretty big update so after a lot of work i finally added a few features that the os have been missing for ages like a gui library so there could be gui apps not just terminal stuff and a demo calculator app text rendering support to the webgpu engine aero snap like window snapping a dock for window management with a clock and a menu to launch apps Thank you for reading my devlog
Added two new apps to the os so after having the libui ui layer implemented i decided to add more apps to demo it like a notepad and a basic file manager
Added 3 new commands to the cli mv and grep: its preatty self explanatory what it does if you ever used linux or any other unix like operating system for that matter man: this was kinda hard at first finding where you can find online versions of the manpages from linux that the os can easily get over an api but after a bit of searching i found the tldr pages project and uses that and the github api to download the pages and then strip out the markdown syntax from them and displays them in the terminal.
Added some multimedia features and a basic networking api beep Just a simple pc speaker like beep to test if the sound api is working or not imgview An image viewer thats it nothing special fetch A curl like command that uses the new networking api to fetch stuff trough the browser or if that fails because of crocs trough a proxy api
More audio stuff piano It’s a piano what more could i say about it midiplayer It’s a retro chiptune style midi player to demo the oses audio capabilities with a cool visualizer
First game Added snake to the os as a cool way to demo all the rendering sound and storage apis in a fun way and added a few underlying kernel and window manager changes like increasing the oses fps target from 2 to 30 because it was so laggy for games
Backgrounds finally so one of the things missing from the os i think was like some pretty backgrounds cause the os only had that bland dark blue/grey ish simple one color background support but i changed that now and added support for random image background support with NASA APOD or Picsum random as the selectable options in the new settings app
Ships:
So i think this is good as an initial version but i have a lot of work to do on the rendering engine and adding more apps because its kinda bare bones but i will be definitely flushing it out more and making the ui more pretty
I finally turned the concept into a more usable tech demo that has some features and focused on making apps that demo the oses underlying apis in a simple way and polishing the whole os to not have that unfinished concept feeling also if you want to try it out you might need to enable webgpu in your browsers flags settings if its not enabled by default. Thank you for reading and I hope that you found my projects interesting!...
|
1793879324.674949
|
1793965724.674949
|
|
37972
|
monkeytab by @simonproyt | Stardance
|
simonproyt
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-25T09:10:34Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So this was my first experience with svelte after using nextjs and vue most of the time for web projects so this was kinda new but i think this turned out as a great first project", "repo": "https://github.com/simonproyt/monkeytab", "demo": "https://monkeytab.ertekessimon.workers.dev/"}]...
|
[{"post_id": 34510, "ts": "202 [{"post_id": 34510, "ts": "2026-07-25T09:08:34Z", "hours": 0.6458, "text": "Final devlog So I updated the README to make it even easier for ppl to deploy it and deployed it myself to cf workers but thats it nothing more in this final devlog"}, {"post_id": 33921, "ts": "2026-07-24T07:08:17Z", "hours": 1.7744, "text": "A new widget So I decided to add this new weather widget that uses the open meteo api because thats the only good api that is free and doesnt need an api key"}, {"post_id": 33318, "ts": "2026-07-23T03:51:56Z", "hours": 1.0778, "text": "Sorry everyone if i made any like grammatical or whatever mistakes in this devlog i couldnt sleep at night and i was like half asleep First widget added the clock So i taught adding a liquid glass clock widget was an easy thing i was so wrong so originally i wanted it 3d with tree.js but that didnt work because it always had issues like it not scaling properly to browser size and stuff so sadly i had to do with this clock with borders it looks okay but it isnt the original design i wanted with no borders and stuff"}, {"post_id": 32991, "ts": "2026-07-22T14:51:32Z", "hours": 0.9333, "text": "Devlog #2 So now the project is starting to look better So i added support for getting apod image of the dayy using the nasa api and a proxy because without the api proxy i would have revealed my api keys to every user and i didnt want to do that so thats why i built in add the other thing added was a choosing the accent color of the search bar based on the images color data Thank you for reading my devlog"}, {"post_id": 32860, "ts": "2026-07-22T09:14:47Z", "hours": 1.0028, "text": "First devlog for this project So i created the project using sveltekit and created a base prototype but nothing more this needs a lot work to make it finished and not basic"}]...
|
Title: monkeytab by @simonproyt | Stardance
Devlo Title: monkeytab by @simonproyt | Stardance
Devlogs:
First devlog for this project So i created the project using sveltekit and created a base prototype but nothing more this needs a lot work to make it finished and not basic
Devlog #2 So now the project is starting to look better So i added support for getting apod image of the dayy using the nasa api and a proxy because without the api proxy i would have revealed my api keys to every user and i didnt want to do that so thats why i built in add the other thing added was a choosing the accent color of the search bar based on the images color data Thank you for reading my devlog
Sorry everyone if i made any like grammatical or whatever mistakes in this devlog i couldnt sleep at night and i was like half asleep First widget added the clock So i taught adding a liquid glass clock widget was an easy thing i was so wrong so originally i wanted it 3d with tree.js but that didnt work because it always had issues like it not scaling properly to browser size and stuff so sadly i had to do with this clock with borders it looks okay but it isnt the original design i wanted with no borders and stuff
A new widget So I decided to add this new weather widget that uses the open meteo api because thats the only good api that is free and doesnt need an api key
Final devlog So I updated the README to make it even easier for ppl to deploy it and deployed it myself to cf workers but thats it nothing more in this final devlog
Ships:
So this was my first experience with svelte after using nextjs and vue most of the time for web projects so this was kinda new but i think this turned out as a great first project...
|
1793879365.7285485
|
1793965765.7285485
|
|
40892
|
legacysignal by @simonproyt | Stardance
|
simonproyt
|
1
|
50.0
|
933
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T20:18:52Z", "hours": 50.0, "multiplier": 18.54, "payout": 933, "blessing": "neutral", "text": "So i taught this project was going to be easy like creating the tidal client for legacy devices but like i was so naive and didnt yet understand how hard it is going to be but it was good in the end i think because i learned a lot about the signal protocol encryption and about backporting and how to make legacy android do things that it was never intended to do but the project is still not finished and i have a lot of work ahead if i want make the app feature complete to the normal signal mobile app but i think its a great demo and it was a great learning experience", "repo": "https://github.com/simonproyt/legacysignal", "demo": "https://cdn.hackclub.com/01a02af7-c370-7c8f-b806-6ca92696e8a8/demo.mp4"}]...
|
[{"post_id": 52604, "ts": "202 [{"post_id": 52604, "ts": "2026-08-22T20:11:21Z", "hours": 3.6061, "text": "Devlog 11: Fixing a few bugs and getting the app ready to ship So in this time i havent done a lot of like cool stuff rather i was fixing a few bugs that broke the messaging feature and image attachment loading because i wanted to showcase those in my demo video and i fixed the github action so ppl can download an apk for the latest version if they want to try it out on their own legacy device also sorry for not writing a dev log sooner i was kinda busy but now i finally got the time to get the project into a ready to ship state"}, {"post_id": 49850, "ts": "2026-08-18T20:00:49Z", "hours": 4.1261, "text": "Devlog 10: Finally added image sending/receiving support So the next thing i taught i would add to my app is image sending and receiving support because that is like kinda a basic feature that any messaging app needs so i added image reviving sending images from the phones storage and via taking a picture with the camera adding these was kinda annoying with figuring out all the correct endpoints and stuff but i think it was worth it in the end"}, {"post_id": 48433, "ts": "2026-08-16T19:38:19Z", "hours": 2.5408, "text": "Devlog 9: New features and a bit of an ui overhaul So I decided to make the ui a bit more pretty and a few new features So this is what i added: a new cleaner ui contact profile picture support message time stamping in the ui dark theme and theme switcher with persistence these are just like qol improvements that i decided to add into the app nothing special but like i missed a few features like the dark theme myself so nothing major but i hope these changes makes the app more usable to ppl"}, {"post_id": 46921, "ts": "2026-08-14T13:57:31Z", "hours": 4.015, "text": "Devlog 8 Working name syncing So after a lot of work i finally made it work so it can show the name that you entered on the signal set up or the devices not just the phone numbers or just unknown sender or just the user id on my app so i guess another feature added now but i still want to add a few stuff before shipping"}, {"post_id": 45824, "ts": "2026-08-12T15:33:59Z", "hours": 6.4758, "text": "Devlog 7: Partly finally working message send/receive So after a lot of work i finally managed to get message sending and receiving working with all of their related crypto stuff but its kinda broken because our message sending api does not support sealed sender yet only the old legacy unsealed sender api that does not encrypt the sender data like modern signal does so on all of the replies it says that they came from unknown contact rather then the actual contact so im working on implementing that so the current stage of the project is after 3x hours of development is Whats working: registering onto the signal network via the phone number and the captchas receiving messages Whats not working or only partially working: sending messages (not working fully because the sealed sender stuff that i talked about previously)"}, {"post_id": 44528, "ts": "2026-08-10T10:59:03Z", "hours": 3.4514, "text": "Devlog 6 Discoverability finally works So after a lot of pain and trial and error and using the signal android source code as an some sort of example that how does the protocol work now we have a finally working code and i can finally move onto the message encryption/decryption part and make it work"}, {"post_id": 43257, "ts": "2026-08-08T12:38:55Z", "hours": 3.6764, "text": "Debugging hell pt2 sorry guys i have been on vacation and taking a bit of a break from the project because of it but now its back in active development now but sadly after fixing registration there is another problem my phone with the latest signal client sadly cant find my client says that its not registered some why even tho it successfully registers so im working trying to fix that possibly and make this project work finally"}, {"post_id": 39975, "ts": "2026-08-03T10:03:07Z", "hours": 6.6417, "text": "Devlog 4: Finally working registration So after like 15 hours of continuous work and debugging i can finally now say that the registration and connection to the signal network is finally working now and i can finally move onto actually making the app itself rather then just having to do trial and error debugging with libsignal and the protocol also while i was testing the app i made a working ci pipeline so the app could be actually downloaded by other ppl now that took a few attempts because of the setting up of the rust toolchains stuff and the android ndk setup part having a few bugs but that is working too now"}, {"post_id": 38718, "ts": "2026-08-01T08:23:46Z", "hours": 9.9889, "text": "Devlog 3: Stuck in debuging hell I’m sorry yall that i didnt make any devlogs about this but i taught this was kinda boring and nothing to write about but after last devlog i found out that the my registration api wasnt fully finished and i needed to generate more keys after the user enters the code from the sms and the registration itself starts but for that we needed to use signals cryptography lib called libsignal so i tried that but the latest version of libsignal had a newer type of elf hash that android 4.x didnt support so i tried using an older version of libsignal but that still didnt work cause it used a few instructions that newer android versions introduced so i tried binary patching in the missing instructions but that still didnt work so i decided the only viable solution was to fork libsignal to try to manually backport everything and thats where im stuck now in debugging hell trying to manually backport and replace the api calls that it uses with the older android versions and its been like 9 hours of trying to do this and still nothing so im kinda tired trying to do this but im wishing that i will finally fix everything and could move onto making that actual app itself rather then then trying to make libsignal work Thank you for reading this super long devlog!"}, {"post_id": 36915, "ts": "2026-07-29T09:58:25Z", "hours": 1.3386, "text": "Devlog 2 Polishing the ui and adding more underlying stuff that we will need in the future so So in this we added to two big changes First is the completely reworked set up it to make it a little bit more pretty and polished looking And the other one is its a more of an underlying change but a well needed one because in the previous demos it stored the key pairs in plain text and stuff so that is obviously super dangerous in a secure messaging context so it will now let you encrypt it via a pin you set in the account creation like in the real signal"}, {"post_id": 36867, "ts": "2026-07-29T06:42:19Z", "hours": 4.4753, "text": "First devlog for this new project So i taught that i made tidal for legacy android and it was pretty easy this is going to be easy like that but how naive was i am like getting even the signal sms registration almost took 4 hours of debugging mainly so this is going to be hard but i will try because it will be worth it in the end"}]...
|
Title: legacysignal by @simonproyt | Stardance
De Title: legacysignal by @simonproyt | Stardance
Devlogs:
First devlog for this new project So i taught that i made tidal for legacy android and it was pretty easy this is going to be easy like that but how naive was i am like getting even the signal sms registration almost took 4 hours of debugging mainly so this is going to be hard but i will try because it will be worth it in the end
Devlog 2 Polishing the ui and adding more underlying stuff that we will need in the future so So in this we added to two big changes First is the completely reworked set up it to make it a little bit more pretty and polished looking And the other one is its a more of an underlying change but a well needed one because in the previous demos it stored the key pairs in plain text and stuff so that is obviously super dangerous in a secure messaging context so it will now let you encrypt it via a pin you set in the account creation like in the real signal
Devlog 3: Stuck in debuging hell I’m sorry yall that i didnt make any devlogs about this but i taught this was kinda boring and nothing to write about but after last devlog i found out that the my registration api wasnt fully finished and i needed to generate more keys after the user enters the code from the sms and the registration itself starts but for that we needed to use signals cryptography lib called libsignal so i tried that but the latest version of libsignal had a newer type of elf hash that android 4.x didnt support so i tried using an older version of libsignal but that still didnt work cause it used a few instructions that newer android versions introduced so i tried binary patching in the missing instructions but that still didnt work so i decided the only viable solution was to fork libsignal to try to manually backport everything and thats where im stuck now in debugging hell trying to manually backport and replace the api calls that it uses with the older android versions and its been like 9 hours of trying to do this and still nothing so im kinda tired trying to do this but im wishing that i will finally fix everything and could move onto making that actual app itself rather then then trying to make libsignal work Thank you for reading this super long devlog!
Devlog 4: Finally working registration So after like 15 hours of continuous work and debugging i can finally now say that the registration and connection to the signal network is finally working now and i can finally move onto actually making the app itself rather then just having to do trial and error debugging with libsignal and the protocol also while i was testing the app i made a working ci pipeline so the app could be actually downloaded by other ppl now that took a few attempts because of the setting up of the rust toolchains stuff and the android ndk setup part having a few bugs but that is working too now
Debugging hell pt2 sorry guys i have been on vacation and taking a bit of a break from the project because of it but now its back in active development now but sadly after fixing registration there is another problem my phone with the latest signal client sadly cant find my client says that its not registered some why even tho it successfully registers so im working trying to fix that possibly and make this project work finally
Devlog 6 Discoverability finally works So after a lot of pain and trial and error and using the signal android source code as an some sort of example that how does the protocol work now we have a finally working code and i can finally move onto the message encryption/decryption part and make it work
Devlog 7: Partly finally working message send/receive So after a lot of work i finally managed to get message sending and receiving working with all of their related crypto stuff but its kinda broken because our message sending api does not support sealed sender yet only the old legacy unsealed sender api that does not encrypt the sender data like modern signal does so on all of the replies it says that they came from unknown contact rather then the actual contact so im working on implementing that so the current stage of the project is after 3x hours of development is Whats working: registering onto the signal network via the phone number and the captchas receiving messages Whats not working or only partially working: sending messages (not working fully because the sealed sender stuff that i talked about previously)
Devlog 8 Working name syncing So after a lot of work i finally made it work so it can show the name that you entered on the signal set up or the devices not just the phone numbers or just unknown sender or just the user id on my app so i guess another feature added now but i still want to add a few stuff before shipping
Devlog 9: New features and a bit of an ui overhaul So I decided to make the ui a bit more pretty and a few new features So this is what i added: a new cleaner ui contact profile picture support message time stamping in the ui dark theme and theme switcher with persistence these are just like qol improvements that i decided to add into the app nothing special but like i missed a few features like the dark theme myself so nothing major but i hope these changes makes the app more usable to ppl
Devlog 10: Finally added image sending/receiving support So the next thing i taught i would add to my app is image sending and receiving support because that is like kinda a basic feature that any messaging app needs so i added image reviving sending images from the phones storage and via taking a picture with the camera adding these was kinda annoying with figuring out all the correct endpoints and stuff but i think it was worth it in the end
Devlog 11: Fixing a few bugs and getting the app ready to ship So in this time i havent done a lot of like cool stuff rather i was fixing a few bugs that broke the messaging feature and image attachment loading because i wanted to showcase those in my demo video and i fixed the github action so ppl can download an apk for the latest version if they want to try it out on their own legacy device also sorry for not writing a dev log sooner i was kinda busy but now i finally got the time to get the project into a ready to ship state
Ships:
So i taught this project was going to be easy like creating the tidal client for legacy devices but like i was so naive and didnt yet understand how hard it is going to be but it was good in the end i think because i learned a lot about the signal protocol encryption and about backporting and how to make legacy android do things that it was never intended to do but the project is still not finished and i have a lot of work ahead if i want make the app feature complete to the normal signal mobile app but i think its a great demo and it was a great learning experience...
|
1793936990.5048037
|
1794023390.5048037
|
|
54332
|
ziglm by @simonproyt | Stardance
|
simonproyt
|
1
|
52.95
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T17:57:15Z", "hours": 51.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So after achieving the performance goals that i wanted i think i decided that im ready to ship this project but i feel kinda scared because i wrote a lot less devlogs then my previous projects but like this project was a lot more boring debugging heavy so idk if i could have wrote about more stuff but im hoping that ppl are going to like this one as much as my previous project and it was a great learning experience and i learned a lot about the zig programing language and performance optimization and about the inner workings of llms and about writing low level performance critical cuda code Thank you for checking out my project and best of luck finishing your project and getting what you want", "repo": "https://github.com/simonproyt/ziglm", "demo": "https://cdn.hackclub.com/01a0bfeb-6c82-7528-93f3-aae99d703da5/ziglm_demo.mp4"}]...
|
[{"post_id": 75555, "ts": "202 [{"post_id": 75555, "ts": "2026-09-30T12:45:05Z", "hours": 1.9483, "text": "Note to the reviewers/shipwright/fraud squad so i accidentally added my home folder to the hackatime project and and when i contacted the fraud squad they told me to write a note so can you please deduct around 10-15 hours please and i hope that i disclosed this honestly enough because im so scared being banned also i attached a demo video of the benchmark script running for the ppl that dont want to download models and set my project up"}, {"post_id": 71338, "ts": "2026-09-20T17:33:25Z", "hours": 9.8469, "text": "removed multimodal and fixed the performance issue so im writing this devlog the second time because stardance logged me out when i tried to post it and it didnt save it sadly so i have to write it again i guess but as the title said i removed the multimodal code basically because it was a pain to maintain and it broke with every update so i just wanted to focus on just closely matching llama.cpp on text speed as a solo developer project and i think i kinda achieved that because in the generation speed its only a few tokens of difference so i think the project is basically finished now and i maybe add a few small changes to it or ship it now but i dont know yet but i hope that someone will like my project even if it was a bit more boring then my other projects"}, {"post_id": 69690, "ts": "2026-09-17T16:20:51Z", "hours": 10.3528, "text": "Fixed some bugs and improved the performance in my free time so i had some time on the weekend and the days i didnt go to school to fix added a benchmark shell script to compare the performance against ollama and llama.cpp for testing and for generating performance graphs now the vision tensors are run on the gpu too so the model wont get bottle necked by my laptops pci express bus speeds and uses the gpus memory instead so this or maybe another one will be probably the last devlog for this project because it has been super hard to develop this and kinda a pain to maintain and try to get it to the performance levels of modern interference libraries and i dont have much free time anymore because of school maybe i will continue development but idk"}, {"post_id": 64849, "ts": "2026-09-09T15:22:55Z", "hours": 11.8742, "text": "Working cuda and ci pipeline but sadly i cant work on this project anymore because school started So working on this project required quite a beefy and heavy computer and i dont want to carry one so sadly i dont have time to continue on this project in this time so after adding a working cuda gpu backend and a ci pipeline so ppl dont have to compile it from the source code and have nvcc to even try i think this is the end of this project for the current time being and i hope that someone will find this So this is what i added: added a cuda backend with a fatbin kernel so it will work on multiple compute levels a github actions ci pipeline to generate verified releases for the ppl who dont want to compile everything for themselves"}, {"post_id": 57155, "ts": "2026-08-29T08:16:47Z", "hours": 7.4842, "text": "Devlog 2: Finally working multimodal audio and video support So after a lot of trial and error i finally added multimodal audio and video support because they were the only two things missing from a complete cpu engine because i wanted a fully working cpu reference before doing anything with cuda and stuff but i want to get cuda working asap because the smaller models that i have been testing that would run on my cpu with a good speed they kinda have bad multimodal performance Thank you for reading my devlog"}, {"post_id": 54967, "ts": "2026-08-26T12:21:34Z", "hours": 11.2867, "text": "First devlog for this new project So i decided to start this new project while waiting for my other project getting reviewed Why did i do this: I was kinda bored waiting for my other project to be reviewed by ppl and i wanted to try out zig so i thought this is a great toy project idea to play with in zig What models are tested (others might work but i havent tested them): smollm2-360m gemma 4 and its variants with curently only image multimodal working but sound and video might be added in the future Thank you for reading my devlog"}]...
|
Title: ziglm by @simonproyt | Stardance
Devlogs:
Title: ziglm by @simonproyt | Stardance
Devlogs:
First devlog for this new project So i decided to start this new project while waiting for my other project getting reviewed Why did i do this: I was kinda bored waiting for my other project to be reviewed by ppl and i wanted to try out zig so i thought this is a great toy project idea to play with in zig What models are tested (others might work but i havent tested them): smollm2-360m gemma 4 and its variants with curently only image multimodal working but sound and video might be added in the future Thank you for reading my devlog
Devlog 2: Finally working multimodal audio and video support So after a lot of trial and error i finally added multimodal audio and video support because they were the only two things missing from a complete cpu engine because i wanted a fully working cpu reference before doing anything with cuda and stuff but i want to get cuda working asap because the smaller models that i have been testing that would run on my cpu with a good speed they kinda have bad multimodal performance Thank you for reading my devlog
Working cuda and ci pipeline but sadly i cant work on this project anymore because school started So working on this project required quite a beefy and heavy computer and i dont want to carry one so sadly i dont have time to continue on this project in this time so after adding a working cuda gpu backend and a ci pipeline so ppl dont have to compile it from the source code and have nvcc to even try i think this is the end of this project for the current time being and i hope that someone will find this So this is what i added: added a cuda backend with a fatbin kernel so it will work on multiple compute levels a github actions ci pipeline to generate verified releases for the ppl who dont want to compile everything for themselves
Fixed some bugs and improved the performance in my free time so i had some time on the weekend and the days i didnt go to school to fix added a benchmark shell script to compare the performance against ollama and llama.cpp for testing and for generating performance graphs now the vision tensors are run on the gpu too so the model wont get bottle necked by my laptops pci express bus speeds and uses the gpus memory instead so this or maybe another one will be probably the last devlog for this project because it has been super hard to develop this and kinda a pain to maintain and try to get it to the performance levels of modern interference libraries and i dont have much free time anymore because of school maybe i will continue development but idk
removed multimodal and fixed the performance issue so im writing this devlog the second time because stardance logged me out when i tried to post it and it didnt save it sadly so i have to write it again i guess but as the title said i removed the multimodal code basically because it was a pain to maintain and it broke with every update so i just wanted to focus on just closely matching llama.cpp on text speed as a solo developer project and i think i kinda achieved that because in the generation speed its only a few tokens of difference so i think the project is basically finished now and i maybe add a few small changes to it or ship it now but i dont know yet but i hope that someone will like my project even if it was a bit more boring then my other projects
Note to the reviewers/shipwright/fraud squad so i accidentally added my home folder to the hackatime project and and when i contacted the fraud squad they told me to write a note so can you please deduct around 10-15 hours please and i hope that i disclosed this honestly enough because im so scared being banned also i attached a demo video of the benchmark script running for the ppl that dont want to download models and set my project up
Ships:
So after achieving the performance goals that i wanted i think i decided that im ready to ship this project but i feel kinda scared because i wrote a lot less devlogs then my previous projects but like this project was a lot more boring debugging heavy so idk if i could have wrote about more stuff but im hoping that ppl are going to like this one as much as my previous project and it was a great learning experience and i learned a lot about the zig programing language and performance optimization and about the inner workings of llms and about writing low level performance critical cuda code Thank you for checking out my project and best of luck finishing your project and getting what you want...
|
1793807434.0055714
|
1793893834.0055714
|
|
66450
|
thinkpad-ir-tool by @simonproyt | Stardance
|
simonproyt
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: thinkpad-ir-tool by @simonproyt | Stardance
|
1793451386.1010435
|
1794315386.1010435
|
|
57116
|
my first project by @simonhorak | Stardance
|
simonhorak
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my first project by @simonhorak | Stardance
|
1793418521.7570176
|
1794023321.7570176
|
|
3761
|
My first slack bot! by @simonheit12 | Stardance
|
simonheit12
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @simonheit12 | Stard Title: My first slack bot! by @simonheit12 | Stardance...
|
1793559259.0821073
|
1794164059.0821073
|
|
37068
|
Fusion by @simonhacker | Stardance
|
simonhacker
|
1
|
15.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-30T02:20:36Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Fusion is a CLI TCG game that lives in your terminal! You can collect and trade cards with other players, as well as the server. We encourage bots that can make trades and buy from the server and auctions. I just recently got it hosted on Hack Club Nest and you can connect over Telnet (TCP) or over the web terminal. Also, if someone knows how to get my previous WakaTime hours correctly imported into Hackatime because the data import didn’t import like half of my hours.", "repo": "https://github.com/sevinatenine/Fusion", "demo": "https://fusion.simon312.hackclub.app/terminal"}]...
|
[{"post_id": 84673, "ts": "202 [{"post_id": 84673, "ts": "2026-10-30T02:11:44Z", "hours": 2.5419, "text": "Now hosted on Hack Club Nest!"}, {"post_id": 32742, "ts": "2026-07-22T02:50:28Z", "hours": 12.7528, "text": "This is my first devlog for my CLI TCG game! So far I have: Added users with login and registration and logins saved to MySQL. Added cards loading from CSV into database and cards commands. Added trading servers and chat servers. Added tokens for external server connection. Added buying cards/decks from the shop. Added many cards that you can get. Added rarity system for decks."}]...
|
Title: Fusion by @simonhacker | Stardance
Devlogs Title: Fusion by @simonhacker | Stardance
Devlogs:
This is my first devlog for my CLI TCG game! So far I have: Added users with login and registration and logins saved to MySQL. Added cards loading from CSV into database and cards commands. Added trading servers and chat servers. Added tokens for external server connection. Added buying cards/decks from the shop. Added many cards that you can get. Added rarity system for decks.
Now hosted on Hack Club Nest!
Ships:
Fusion is a CLI TCG game that lives in your terminal! You can collect and trade cards with other players, as well as the server. We encourage bots that can make trades and buy from the server and auctions. I just recently got it hosted on Hack Club Nest and you can connect over Telnet (TCP) or over the web terminal. Also, if someone knows how to get my previous WakaTime hours correctly imported into Hackatime because the data import didn’t import like half of my hours....
|
1793893975.4039183
|
1793980375.4039183
|
|
38176
|
Backwash by @simonhacker | Stardance
|
simonhacker
|
1
|
11.0
|
159
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-01T14:57:24Z", "hours": 11.0, "multiplier": 14.57, "payout": 159, "blessing": "neutral", "text": "I made an interpreted esoteric coding language, called Backwash. It is a language with just 4 variables and every operator is a single character. When coding, you have to plan your project design because of the many constraints implemented in the language. When developing this project (along with @Cesium72 on GitHub), we ran into many challenges. In addition to having challenges when writing the interpreter, writing the code in my language was even harder. You can try the project by using the online interpreter, install the npm package or use npx to run code on your machine. More information is detailed on the website’s readme popup and the full syntax is detailed on GitHub.", "repo": "https://github.com/sevinatenine/Backwash", "demo": "https://backwash.netlify.app/"}]...
|
[{"post_id": 38920, "ts": "202 [{"post_id": 38920, "ts": "2026-08-01T14:46:47Z", "hours": 1.1792, "text": "Added a number guessing game example for my esoteric coding language!"}, {"post_id": 33104, "ts": "2026-07-22T18:39:15Z", "hours": 0.5258, "text": "Added a README popup for the online interpreter of my language!"}, {"post_id": 33072, "ts": "2026-07-22T17:26:06Z", "hours": 2.8325, "text": "I almost finished making the UI for my web port of my esoteric coding language! I’m using Monaco editor for the code editing and Xterm.js for the terminal."}, {"post_id": 32749, "ts": "2026-07-22T03:03:33Z", "hours": 6.4078, "text": "This is my first devlog for my esoteric coding language - Backwash. I completed the design and finished coding the first version of the project. The syntax is complete and I have coded a few demos, including rock paper scissors."}]...
|
Title: Backwash by @simonhacker | Stardance
Devlo Title: Backwash by @simonhacker | Stardance
Devlogs:
This is my first devlog for my esoteric coding language - Backwash. I completed the design and finished coding the first version of the project. The syntax is complete and I have coded a few demos, including rock paper scissors.
I almost finished making the UI for my web port of my esoteric coding language! I’m using Monaco editor for the code editing and Xterm.js for the terminal.
Added a README popup for the online interpreter of my language!
Added a number guessing game example for my esoteric coding language!
Ships:
I made an interpreted esoteric coding language, called Backwash. It is a language with just 4 variables and every operator is a single character. When coding, you have to plan your project design because of the many constraints implemented in the language. When developing this project (along with @Cesium72 on GitHub), we ran into many challenges. In addition to having challenges when writing the interpreter, writing the code in my language was even harder. You can try the project by using the online interpreter, install the npm package or use npx to run code on your machine. More information is detailed on the website’s readme popup and the full syntax is detailed on GitHub....
|
1793955231.6097648
|
1794041631.6097648
|
|
42729
|
I/O.io by @simonhacker | Stardance
|
simonhacker
|
0
|
7.53
|
0
|
[]
|
[{"post_id": 38880, "ts": "202 [{"post_id": 38880, "ts": "2026-08-01T13:25:01Z", "hours": 7.5347, "text": "Finished the join and create page for my multiplayer game! In addition, I started working on the map and smooth movement animations, as well as tile transition smoothing."}]...
|
Title: I/O.io by @simonhacker | Stardance
Devlogs Title: I/O.io by @simonhacker | Stardance
Devlogs:
Finished the join and create page for my multiplayer game! In addition, I started working on the map and smooth movement animations, as well as tile transition smoothing....
|
1793890455.5010395
|
1794495255.5010395
|
|
49996
|
HackerOS by @simonhacker | Stardance
|
simonhacker
|
1
|
9.78
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-03T19:59:00Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "HackerOS is my WebOS! It was coded in CSS, HTML and JS!! It has a few simple apps and is styled to be dark and blue. It was made fully by me and you can try it at the link below.", "repo": "https://github.com/sevinatenine/HackerOS", "demo": "https://hacker-os.netlify.app"}]...
|
[{"post_id": 77978, "ts": "202 [{"post_id": 77978, "ts": "2026-10-09T03:00:01Z", "hours": 0.3142, "text": "I made the copy and move and open commands for the terminal of my WebOS"}, {"post_id": 77346, "ts": "2026-10-06T16:58:19Z", "hours": 0.4636, "text": "Modified the README and the about."}, {"post_id": 76491, "ts": "2026-10-03T18:55:48Z", "hours": 0.3675, "text": "HackerOS - Finished the about page and the file picker!"}, {"post_id": 76485, "ts": "2026-10-03T18:27:44Z", "hours": 0.5764, "text": "HackerOS - Prototype for my file picker"}, {"post_id": 76446, "ts": "2026-10-03T15:20:30Z", "hours": 3.7758, "text": "I got my file browser working with ZenFS for HackerOS!!!"}, {"post_id": 50374, "ts": "2026-08-19T15:24:39Z", "hours": 1.4139, "text": "I Worked on my file browser app for my WebOS! I used the Yet Another Monochrome Icon Set For KDE Plasma here for the icons and app images for my OS and I used ZenFS (which provides node:fs compatible functions) to store files in IndexedDB."}, {"post_id": 49543, "ts": "2026-08-18T12:52:08Z", "hours": 0.4025, "text": "Prototype for the app bar for my WebOS"}, {"post_id": 49291, "ts": "2026-08-18T00:46:48Z", "hours": 2.1136, "text": "I made a window system with draggable and resizable windows for my WebOS!"}]...
|
Title: HackerOS by @simonhacker | Stardance
Devlo Title: HackerOS by @simonhacker | Stardance
Devlogs:
I made a window system with draggable and resizable windows for my WebOS!
Prototype for the app bar for my WebOS
I Worked on my file browser app for my WebOS! I used the Yet Another Monochrome Icon Set For KDE Plasma here for the icons and app images for my OS and I used ZenFS (which provides node:fs compatible functions) to store files in IndexedDB.
I got my file browser working with ZenFS for HackerOS!!!
HackerOS - Prototype for my file picker
HackerOS - Finished the about page and the file picker!
Modified the README and the about.
I made the copy and move and open commands for the terminal of my WebOS
Ships:
HackerOS is my WebOS! It was coded in CSS, HTML and JS!! It has a few simple apps and is styled to be dark and blue. It was made fully by me and you can try it at the link below....
|
1794019815.5449364
|
1794106215.5449364
|
|
59785
|
NewLabvolt by @simonhacker | Stardance
|
simonhacker
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: NewLabvolt by @simonhacker | Stardance
|
1793638342.002065
|
1794243142.002065
|
|
62590
|
CodePad by @simonhacker | Stardance
|
simonhacker
|
0
|
6.86
|
0
|
[]
|
[{"post_id": 77716, "ts": "202 [{"post_id": 77716, "ts": "2026-10-08T02:22:06Z", "hours": 1.3028, "text": "Finished my hackpad!!!!"}, {"post_id": 77461, "ts": "2026-10-07T02:38:09Z", "hours": 2.9317, "text": "I screwed up the dimensions of the key caps and I made more changes to the CAD."}, {"post_id": 73294, "ts": "2026-09-24T19:37:38Z", "hours": 2.6269, "text": "CodePad: I finished the schematic and the PCB!!!"}]...
|
Title: CodePad by @simonhacker | Stardance
Devlog Title: CodePad by @simonhacker | Stardance
Devlogs:
CodePad: I finished the schematic and the PCB!!!
I screwed up the dimensions of the key caps and I made more changes to the CAD.
Finished my hackpad!!!!...
|
1793656302.8865352
|
1794261102.8865352
|
|
62608
|
HackerClock by @simonhacker | Stardance
|
simonhacker
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: HackerClock by @simonhacker | Stardance
|
1793656323.898379
|
1794261123.898379
|
|
68173
|
ReceiptGame by @simonhacker | Stardance
|
simonhacker
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ReceiptGame by @simonhacker | Stardance
|
1793738947.3227148
|
1794343747.3227148
|
|
68365
|
OpenArchive by @simonhacker | Stardance
|
simonhacker
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: OpenArchive by @simonhacker | Stardance
|
1793742462.2575722
|
1794347262.2575722
|
|
69087
|
ChoreBoard by @simonhacker | Stardance
|
simonhacker
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ChoreBoard by @simonhacker | Stardance
|
1793760550.1751685
|
1794365350.1751685
|
|
69257
|
IDK by @simonhacker | Stardance
|
simonhacker
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: IDK by @simonhacker | Stardance
|
1793764138.3128707
|
1794368938.3128707
|
|
69767
|
CivicMatchmaker by @simonhacker | Stardance
|
simonhacker
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: CivicMatchmaker by @simonhacker | Stardance
|
1793584445.6885169
|
1794189245.6885169
|
|
71245
|
Clipboard by @simonhacker | Stardance
|
simonhacker
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Clipboard by @simonhacker | Stardance
|
1793591376.1815221
|
1794196176.1815221
|
|
33750
|
Frictionless by @simonfrellesen | Stardance
|
simonfrellesen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @simonfrellesen | Stardance
|
1793519299.889375
|
1794124099.889375
|
|
33752
|
My own site! by @simonfrellesen | Stardance
|
simonfrellesen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @simonfrellesen | Stardance
|
1793393690.1076667
|
1793998490.1076667
|
|
4629
|
Snakey Story by @simone | Stardance
|
simone
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Snakey Story by @simone | Stardance
|
1793526532.8366249
|
1794131332.8366249
|
|
13042
|
Reins by @simon_j | Stardance
|
simon_j
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Reins by @simon_j | Stardance
|
1793832449.3948216
|
1794437249.3948216
|