|
45155
|
ASDAS by @natex92229 | Stardance
|
natex92229
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ASDAS by @natex92229 | Stardance
|
1792615712.4206386
|
1793220512.4206386
|
|
45156
|
Hack club by @abishekchapagain13 | Stardance
|
abishekchapagain13
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Hack club by @abishekchapagain13 | Stardanc Title: Hack club by @abishekchapagain13 | Stardance...
|
1792615713.2550964
|
1793220513.2550964
|
|
45157
|
My Portfolio by @zico | Stardance
|
zico
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My Portfolio by @zico | Stardance
|
1792615714.114979
|
1793479714.114979
|
|
45159
|
Frictionless by @Redi | Stardance
|
Redi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @Redi | Stardance
|
1792615715.4546714
|
1793220515.4546714
|
|
45160
|
Untitled project by @samarth- | Stardance
|
samarth-
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @samarth- | Stardance
|
1792615716.3030338
|
1793220516.3030338
|
|
45161
|
Lapse by @Tanmayg1801 | Stardance
|
Tanmayg1801
|
0
|
1.38
|
0
|
[]
|
[{"post_id": 43129, "ts": "202 [{"post_id": 43129, "ts": "2026-08-08T07:05:24Z", "hours": 1.3764, "text": "A time lapse software I made because I was bored and wanted to start a yt channel. It takes 1 screenshot every 5 seconds and smoothly makes it into a 30fps timelapse!"}]...
|
Title: Lapse by @Tanmayg1801 | Stardance
Devlogs: Title: Lapse by @Tanmayg1801 | Stardance
Devlogs:
A time lapse software I made because I was bored and wanted to start a yt channel. It takes 1 screenshot every 5 seconds and smoothly makes it into a 30fps timelapse!...
|
1792615717.1300552
|
1793220517.1300552
|
|
45164
|
My own site! by @niral_ppatel07 | Stardance
|
niral_ppatel07
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @niral_ppatel07 | Stardance
|
1792615717.9662201
|
1793220517.9662201
|
|
45165
|
Tankkk by @Sandyy | Stardance
|
Sandyy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Tankkk by @Sandyy | Stardance
|
1792615718.8032205
|
1793220518.8032205
|
|
45166
|
Rc tank by @sandi | Stardance
|
sandi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Rc tank by @sandi | Stardance
|
1792615719.6380398
|
1793220519.6380398
|
|
45170
|
16bit transistor computer by @thegamer3_141 | Star 16bit transistor computer by @thegamer3_141 | Stardance...
|
thegamer3_141
|
0
|
2.62
|
0
|
[]
|
[{"post_id": 44577, "ts": "202 [{"post_id": 44577, "ts": "2026-08-10T13:02:25Z", "hours": 2.6169, "text": "I have made my 4 bit registor for my 16 bit computer. So now i have made a test bord, the ram for the computer and a part of the alu."}]...
|
Title: 16bit transistor computer by @thegamer3_141 Title: 16bit transistor computer by @thegamer3_141 | Stardance
Devlogs:
I have made my 4 bit registor for my 16 bit computer. So now i have made a test bord, the ram for the computer and a part of the alu....
|
1792615720.4673324
|
1793220520.4673324
|
|
45171
|
SataCar - Electric Mini Car by @void | Stardance
|
void
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: SataCar - Electric Mini Car by @void | Star Title: SataCar - Electric Mini Car by @void | Stardance...
|
1792615721.316958
|
1793220521.316958
|
|
45172
|
My very own WebOS by @Nandakishore-P-R | Stardance
|
Nandakishore-P-R
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Nandakishore-P-R | St Title: My very own WebOS by @Nandakishore-P-R | Stardance...
|
1792615722.148377
|
1793220522.148377
|
|
45173
|
WarioWare Game by @esreedevi | Stardance
|
esreedevi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @esreedevi | Stardance
|
1792615722.99714
|
1793220522.99714
|
|
45174
|
An ai assistant by @ameykamble51 | Stardance
|
ameykamble51
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: An ai assistant by @ameykamble51 | Stardanc Title: An ai assistant by @ameykamble51 | Stardance...
|
1792615723.8338444
|
1793220523.8338444
|
|
45176
|
The coolest trashcan by @da | Stardance
|
da
|
0
|
1.19
|
0
|
[]
|
[{"post_id": 42773, "ts": "202 [{"post_id": 42773, "ts": "2026-08-07T17:32:25Z", "hours": 1.1906, "text": "I started the design but it didn’t go as planned so i had to come up with some new ideas!"}]...
|
Title: The coolest trashcan by @da | Stardance
De Title: The coolest trashcan by @da | Stardance
Devlogs:
I started the design but it didn’t go as planned so i had to come up with some new ideas!...
|
1792615724.686547
|
1793220524.686547
|
|
45177
|
Accelrus by @void | Stardance
|
void
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Accelrus by @void | Stardance
|
1792615725.5387776
|
1793220525.5387776
|
|
45178
|
PaleoLink by @Cem_Tuna | Stardance
|
Cem_Tuna
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: PaleoLink by @Cem_Tuna | Stardance
|
1792615726.3700254
|
1793220526.3700254
|
|
45180
|
Annoying chat guy by @TheShovel | Stardance
|
TheShovel
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Annoying chat guy by @TheShovel | Stardance
|
1792615727.208828
|
1793220527.208828
|
|
50000
|
My very own WebOS by @s4 | Stardance
|
s4
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @s4 | Stardance
|
1792615728.0453148
|
1793220528.0453148
|
|
45182
|
Universal Remote (Larper 3000) by @joao-patricio | Universal Remote (Larper 3000) by @joao-patricio | Stardance...
|
joao-patricio
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Universal Remote (Larper 3000) by @joao-pat Title: Universal Remote (Larper 3000) by @joao-patricio | Stardance...
|
1792615728.8948884
|
1793220528.8948884
|
|
45183
|
Caught in Chaos by @nakulgovindc | Stardance
|
nakulgovindc
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Caught in Chaos by @nakulgovindc | Stardanc Title: Caught in Chaos by @nakulgovindc | Stardance...
|
1792615729.7318163
|
1793220529.7318163
|
|
50002
|
My awesome macropad! by @Subin | Stardance
|
Subin
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Subin | Stardance
|
1792615730.5746598
|
1793220530.5746598
|
|
45185
|
audio playah by @noah6002 | Stardance
|
noah6002
|
0
|
3.6
|
0
|
[]
|
[{"post_id": 43314, "ts": "202 [{"post_id": 43314, "ts": "2026-08-08T14:46:53Z", "hours": 3.6033, "text": "For the last three hours of working on this project I’ve been messing around with different audio crates for Rust, initially trying Cpal and finding it too low level and difficult. I then tried Kira but found it not very applicable to my project as it’s designed to be used in games, and therefore has a lot of features I don’t need taking up space and making stuff more complicated. I ultimately landed on Rodio, an easy to use library with enough features for what i’m making. This far I’ve made a struct for the audio player and a simple new() and play() function. As of right now the program takes a file path from the terminal and plays it if it’s valid. Not much to show for yet though"}]...
|
Title: audio playah by @noah6002 | Stardance
Devl Title: audio playah by @noah6002 | Stardance
Devlogs:
For the last three hours of working on this project I’ve been messing around with different audio crates for Rust, initially trying Cpal and finding it too low level and difficult. I then tried Kira but found it not very applicable to my project as it’s designed to be used in games, and therefore has a lot of features I don’t need taking up space and making stuff more complicated. I ultimately landed on Rodio, an easy to use library with enough features for what i’m making. This far I’ve made a struct for the audio player and a simple new() and play() function. As of right now the program takes a file path from the terminal and plays it if it’s valid. Not much to show for yet though...
|
1792615731.4134526
|
1793220531.4134526
|
|
50003
|
My awesome macropad! by @eyade | Stardance
|
eyade
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @eyade | Stardance
|
1792615732.2390323
|
1793220532.2390323
|
|
45186
|
First Solo Robot by @Lol123rl | Stardance
|
Lol123rl
|
0
|
0.6
|
0
|
[]
|
[{"post_id": 42782, "ts": "202 [{"post_id": 42782, "ts": "2026-08-07T17:41:27Z", "hours": 0.2667, "text": "Devlog #2 - Robot Chassis Design Update, I finished the second vershon the the robot shell, i made it so I could add lego parts to it, there is a hole for the meter and space for all the lego components, I am going to work on code for it whal I wate for the funding to get aproved, wish me luck"}, {"post_id": 42748, "ts": "2026-08-07T16:58:02Z", "hours": 0.3333, "text": "Devlog #1 – Started Designing My Robot 🚗🤖 Today I started designing the chassis for my robot. My goal is to build a simple educational robot that uses an ESP32, motors, and sensors to drive around and avoid obstacles. So far I have: Created the first version of the robot chassis. Added four wheels to visualize the overall size. Designed a removable bottom plate that will hold the electronics. Planned space inside the chassis for the battery, ESP32, and motor driver. This is an early prototype, so there are still a lot of improvements to make. Next I’ll be adding: Motor mounting brackets ESP32 mounting holes Battery holder Ultrasonic sensor mount Screw holes so the chassis can be assembled I’m also putting together a complete parts list and budget for the hardware funding request. Here’s my first CAD model: (Attach the screenshot you shared.) Looking forward to improving the design and eventually printing the chassis once the project is funded!"}]...
|
Title: First Solo Robot by @Lol123rl | Stardance
Title: First Solo Robot by @Lol123rl | Stardance
Devlogs:
Devlog #1 – Started Designing My Robot 🚗🤖 Today I started designing the chassis for my robot. My goal is to build a simple educational robot that uses an ESP32, motors, and sensors to drive around and avoid obstacles. So far I have: Created the first version of the robot chassis. Added four wheels to visualize the overall size. Designed a removable bottom plate that will hold the electronics. Planned space inside the chassis for the battery, ESP32, and motor driver. This is an early prototype, so there are still a lot of improvements to make. Next I’ll be adding: Motor mounting brackets ESP32 mounting holes Battery holder Ultrasonic sensor mount Screw holes so the chassis can be assembled I’m also putting together a complete parts list and budget for the hardware funding request. Here’s my first CAD model: (Attach the screenshot you shared.) Looking forward to improving the design and eventually printing the chassis once the project is funded!
Devlog #2 - Robot Chassis Design Update, I finished the second vershon the the robot shell, i made it so I could add lego parts to it, there is a hole for the meter and space for all the lego components, I am going to work on code for it whal I wate for the funding to get aproved, wish me luck...
|
1792615733.0822647
|
1793220533.0822647
|
|
45187
|
HV transformer driver by @Orange01 | Stardance
|
Orange01
|
0
|
28.27
|
0
|
[]
|
[{"post_id": 62407, "ts": "202 [{"post_id": 62407, "ts": "2026-09-05T19:02:05Z", "hours": 1.8817, "text": "finished parts list on digikey"}, {"post_id": 62181, "ts": "2026-09-05T13:24:27Z", "hours": 4.4789, "text": "Finished PCB design!!!"}, {"post_id": 59346, "ts": "2026-09-01T02:49:48Z", "hours": 21.9094, "text": "I’ve finished the schematic and Im about to start laying down components"}]...
|
Title: HV transformer driver by @Orange01 | Starda Title: HV transformer driver by @Orange01 | Stardance
Devlogs:
I’ve finished the schematic and Im about to start laying down components
Finished PCB design!!!
finished parts list on digikey...
|
1792615735.1026912
|
1793220535.1026912
|
|
45188
|
custom keybored by @abadisbest12 | Stardance
|
abadisbest12
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: custom keybored by @abadisbest12 | Stardanc Title: custom keybored by @abadisbest12 | Stardance...
|
1792615735.94291
|
1793220535.94291
|
|
50006
|
Aero modeling website by @Steve_Lee | Stardance
|
Steve_Lee
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Aero modeling website by @Steve_Lee | Stard Title: Aero modeling website by @Steve_Lee | Stardance...
|
1792615739.7146611
|
1793220539.7146611
|
|
45189
|
open source Quantum circut simulator by @abadisbes open source Quantum circut simulator by @abadisbest12 | Stardance...
|
abadisbest12
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: open source Quantum circut simulator by @ab Title: open source Quantum circut simulator by @abadisbest12 | Stardance...
|
1792615740.5480244
|
1793220540.5480244
|
|
50007
|
Space Bound by @pranavb | Stardance
|
pranavb
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Space Bound by @pranavb | Stardance
|
1792615741.382861
|
1793220541.382861
|
|
45190
|
WarioWare Game by @Tyaswanth | Stardance
|
Tyaswanth
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @Tyaswanth | Stardance
|
1792615742.2312827
|
1793220542.2312827
|
|
50008
|
Polymarket Bot by @epr | Stardance
|
epr
|
0
|
31.24
|
0
|
[]
|
[{"post_id": 72001, "ts": "202 [{"post_id": 72001, "ts": "2026-09-21T23:38:02Z", "hours": 9.8947, "text": "Actually in the thick of it right now ngl. Lowkey kinda getting closer to have a actual working v1 I can feel it in my britches. Currently working on the interface for polymarket api to connect to so the bot has multi-exchange capability. Yeah I know cool as biscuits I guess ¯ _ (ツ)_/¯"}, {"post_id": 59960, "ts": "2026-09-02T01:10:12Z", "hours": 8.6428, "text": "Working on the websocket currently, I fully coded the websocket for the global api instead of the US based polymarket endpoint so I have to create another websocket for people located in the US."}, {"post_id": 51435, "ts": "2026-08-21T04:24:17Z", "hours": 12.7025, "text": "validation program up and running!"}]...
|
Title: Polymarket Bot by @epr | Stardance
Devlogs Title: Polymarket Bot by @epr | Stardance
Devlogs:
validation program up and running!
Working on the websocket currently, I fully coded the websocket for the global api instead of the US based polymarket endpoint so I have to create another websocket for people located in the US.
Actually in the thick of it right now ngl. Lowkey kinda getting closer to have a actual working v1 I can feel it in my britches. Currently working on the interface for polymarket api to connect to so the bot has multi-exchange capability. Yeah I know cool as biscuits I guess ¯ _ (ツ)_/¯...
|
1792615743.1696048
|
1793220543.1696048
|
|
50009
|
Space Bound by @rohankhushraj | Stardance
|
rohankhushraj
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Space Bound by @rohankhushraj | Stardance
|
1792615744.0812852
|
1793220544.0812852
|
|
50011
|
Cosmic Mission by @AnshSolstar | Stardance
|
AnshSolstar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Cosmic Mission by @AnshSolstar | Stardance
|
1792615744.931625
|
1793220544.931625
|
|
50012
|
online store by @Azzu | Stardance
|
Azzu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: online store by @Azzu | Stardance
|
1792615745.7851205
|
1793220545.7851205
|
|
45194
|
My own site! by @Shirin_ | Stardance
|
Shirin_
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @Shirin_ | Stardance
|
1792615746.632808
|
1793220546.632808
|
|
50015
|
My awesome macropad! by @2Izzy | Stardance
|
2Izzy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @2Izzy | Stardance
|
1792615747.4839242
|
1793220547.4839242
|
|
50017
|
Photography Site by @invistrav | Stardance
|
invistrav
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Photography Site by @invistrav | Stardance
|
1792615748.3470747
|
1793220548.3470747
|
|
50018
|
VSEPR Predictor by @LuckyInt | Stardance
|
LuckyInt
|
0
|
24.72
|
0
|
[]
|
[{"post_id": 75031, "ts": "202 [{"post_id": 75031, "ts": "2026-09-28T22:33:57Z", "hours": 6.4964, "text": "Welcome! It has been 2 whole weeks. And a devlog has arrived for the project that uses VSEPR theory to primarily predict the shape of a molecule, my name being Lucky. Just to preface , I have made a lot of changes in these 6.5 hours; and I have been irresponsible by not devlogging along the way . . . For more over-arching logging though, feel free to check my github commits to see the progressional changes. As well, check my other devlogs or read my README for more info on what my project does specifically. By the way, I will also not be including already stated info in my devlogs to avoid being repetitive and to save some words. Website I started building the website for my project (picture below), using HTML and CSS and my already-coded python backend. The HTML was pretty streamlined and was finished in a day; I also used Sakura CSS , linked in HTML as classless CSS. The CSS was a bit harder and took more days– mainly because Sakura CSS was overriding a lot of what I wrote! In the future, I believe it would be better if I didn’t use the pre-made CSS at all. I admit that I used a lot of AI due to frustration and confusion, however I retraced, decided to go back, and understood the code, and built some myself. By far the hardest part was connecting my python backend with the frontend, using JS (JavaScript) and API to do so. I did use FastAPI and their documentation, however I still ran into a lot of problems. This may be because I was using Github Codespaces, or for other reasons. Fork/PR Thanks to Su6o on Github for forking my Repo and checking over my README for grammar and phrasing errors. Conclusions/Goodbyes I learned a lot in these 2 weeks, albeit not being so consistent. One thing I have to work on is to be less reliant, to be independent and solve problems on my own. There was a lot of frustration in these sessions, and I hope to relieve of that next. For the future of this project, I would like to use the data given by the backend to write a Lewis Structure code in frontend. As my project is aimed to be an educational tool (might change), it would also be helpful to transform the frontend to do such. That’s all. Thanks for reading, and have a great day. I will try to get a working demo up, so you can interactively use the site."}, {"post_id": 68293, "ts": "2026-09-14T21:23:37Z", "hours": 6.6281, "text": "Hello, World. It’s been a while. Welcome to the 5th devlog centralized around a (mainly python) project that uses VSEPR Theory– aka Valence Shell Electron Pair Repulsion Theory– to predict the shapes/geometries of given molecules. For more info on the project’s main aims, please read my previous devlog. Nevertheless, a bulleted summary of what the project can do (structured in a way similar to my other devlogs for simplicity) is shown below. Capabilities of the Project This project, at its state at the moment of writing: Counts Valence Electrons of the inputted molecule (mendeleev assist). Accounts for charges on molecules and taking that into consideration while calculating Valence Electrons. Error checks / parses the user’s input to only allow valid molecules. * NEW/ADDED Calculates electronegativities of constituent elements (using mendeleev) and determining the central atom of the molecule. Parses the molecule to find its elements and subscripts. Calculates electron groups / steric number. Calculates lone pairs around the central atom. Reforms the molecule in VSEPR form: AX_mE_n. Searches through a dictionary/table of all of the permutations of VSEPR form in order to fetch appropriate data. Interacts with the user in order to act as an educational tool. * NEW Allows the user freedom in the questions asked: they can ask for a hint, can skip 1 questions, and can skip all questions at once. * NEW The Radical Problem (literally. (solved)) A major mistake on my part was that I forgot to account for radical molecules; in fact, I didn’t even know they were a thing. It turns out that, some molecules are allowed to have a lone electron surrounding the central atom, since they have an odd number of total valence electrons, hence yielding them an inevitable 1 leftover electron. Thankfully, the problem is solved now, perhaps in an admittingly unfortunate way: the program is now designed to simply reject radical molecules. There is a good reason for this, and that’s because these molecules’ shapes cannot reliably be predicted with VSEPR theory. The Clean Up In the time in between my 4th and 5th devlog, I have spent a lot of time capturing bugs in my code, and cleaning the code along the way. For a simple example, I would lazily copy-and-paste the same code into each constituent if, elif, and else statement when I could just call that code after them. As it’s been a relatively long time, I cannot remember a lot of the specific clean-ups I had done, which is probably included in the cons of pushing devlogs late . . . I apologize for the late devlog (although I know not many care). The reason for this, and the low amount of hours and effort given in these past 13 days, is mostly because of school. As well as there was a problem with my hackatime or rather my VSCode wherein multiple hours of work were not logged for whatever reason– however, I worked with quality during those times so I consider it a win. Addressing the Functionality (the interactivity) For now, my project asks questions to the reader terminal style, being arguably not engaging and probably very indescriptive as well– which is important to take note of, as this is indeed supposed to be an educational tool. In my future plans, I hope to pick up on some JavaScript or TypeScript, HTML, and CSS, in order to create a website or application that actually renders the models of these molecules, as well as to provide models for constituent steps like creating the Lewis/Dot structure. I firmly believe that if we are building the Dot Structures and are predicting shapes of molecules, the users should be able to see these things so they can then understand . Conclusions Thank you for reading! This was the 5th devlog, on the project based around VSEPR Theory, and I’ll see you, next time."}, {"post_id": 59894, "ts": "2026-09-01T22:10:18Z", "hours": 4.7317, "text": "Welcome, reader. This is my 4th devlog on a project (primarily built in python), that takes a molecule with a single defined central atom and predicts the electron geometries, molecular geometries (bond hybridization as well) using VSEPR Theory , and other quantitative data like total valence electrons, lone pairs, etc., that were collected along the calculations. If you are interested in my motivations and overall more information about the project, you can read my previous devlogs as well. However, the near-following bulleted-list will hopefully provide decent context. I would usually write a devlog earlier than this; however, I worked on my README.MD, yielding not a full 4h 37m on functional programming necessarily. Functions of the Predictor This project, at its state at the moment of writing: Counts Valence Electrons of the inputted molecule (mendeleev assist). Accounts for charges on molecules and taking that into consideration while calculating Valence Electrons. Error checks / parses the user’s input to only allow valid molecules. * NEW/ADDED Calculates electronegativities of constituent elements (using mendeleev) and determining the central atom of the molecule. Parses the molecule to find its elements and subscripts. Calculates electron groups / steric number. Calculates lone pairs around the central atom. Reforms the molecule in VSEPR form: AX_mE_n. * NEW Searches through a dictionary/table of all of the permutations of VSEPR form in order to fetch appropriate data. * NEW New Changes I rewrote some of the code in order to remove redundancy and to improve efficiency. I also created designated functions for some of the code I recently wrote. These parts were quite annoying, as it was frustrating to have to rewrite code to reach the same goal again; a lot of errors kept appearing. Nevertheless, I finished in the end. It takes a lot of patience to read through all your code line by line and go through the functions of each, and then seeing where efficiency could be improved. Nevertheless, it is satisfying to realize and improve on code, and to produce a more concise and readable product in the end. Since I can’t write extensively in this devlog, I will touch on topics like bond hybridization and more later. I also worked on my README.MD as aforementioned, which I encourage you to read or look at. Future Plans As you can see in the screenshot I included below (using H3O+/ hydronium as the example), my project is simply printing out all of the data– though the calculations are arguably demanding. In essence, the output is underwhelming compared to the immense backend logic. I would certainly like to make this into a web or application, and at the same time I would be learning HTML, CSS, and JavaScript. Conclusion / Goodbyes Thank you for reading, reader. I imagine that you learned or found something in my devlog interesting. If you have any suggestions, comment below and I will be sure to ponder over them. By the way, I really don’t know which molecules to pick for my examples in my screenshots, so you can comment some that you might want me to use (make sure it has one central atom). My name is Lucky, and I thank you , once again, Goodbye. for H3O+ (Hydronium) below"}, {"post_id": 54138, "ts": "2026-08-24T23:28:18Z", "hours": 2.3517, "text": "Good day, reader. I’m Lucky. This is a third devlog on my project: VSEPR Predictor. If you aren’t sure of the project aims to do, feel free to read my first devlog; however, I will give you a brief summary. The project takes input a molecule, and then predicts the molecular geometry / shape of the molecule, as well as the electron-group geometry overall. It is built in python. Pytest As stated in my earlier log, I was tired of manually testing my project all of the time, and I wanted to use pytest. Therefore, I created 4 functions that have specific roles in my code. These four functions are the following: get_atoms_subscripts, get_central_atom, get_total_valence, and validate_formula– all of which take a molecule as input. *Before I state the advancements I have made, I’d like to disclaim that the electron-group calculations are not yet finalized, as I have yet to account for double and single bonds. To target this problem, I have calculated formal charges, and I plan to tackle it next. I will not explain what formal charges are– for the sake of words– but if you want, you can search it up. Functional Changes Calculated electron groups note ^^^ Calculated formal charge before adding double or triple bonds - Listed terminal atoms (every atom but the central one) Calculated Lone pairs note ^^^ Overall Function This project, at its state at the moment of writing: Counts Valence Electrons of the inputted molecule (mendeleev assist). Accounts for charges on molecules and taking that into consideration while calculating Valence Electrons. Error checks / parses the user’s input to only allow valid molecules. Calculates electronegativities of constituent elements (using mendeleev) and determining the central atom of the molecule. Parses the molecule to find its elements and subscripts. And does the aforementioned (functional changes). Struggles I admit that the hardest part of this session was transforming my code to create functions instead of just a blob of code. As you can imagine, it became very frustrating when– when I started to convert the code into constituent functions– my code started to have errors: some that have come of before and some new. At one point, I told myself, “My old code works, why can’t I just use that!” Of course, this was just out of a fit of discouragement, but I went on. I included I screenshot of what the project does at this moment, below– using NH3 (ammonia) as an example. Goodbye, thank you for reading. I hope you gained something, whether it be entertainment or knowledge."}, {"post_id": 50671, "ts": "2026-08-19T23:22:02Z", "hours": 2.9908, "text": "Welcome. My name is Lucky This is my second devlog, based around a project (my first personal one) in python that predicts molecular and overall shape geometries using Valence Shell Electron-Pair Repulsion Theory– VSEPR (check my first devlog if you seek more information). The following is what I have done, in simple terms. I have: Counted the Valence Electrons of the inputted molecule using mendeleev . Accounted for charges on molecules and taking that into consideration while calculating Valence Electrons. Error checked / parsed the user’s input to only allow valid molecules. Calculated electronegativities of constituent elements (using mendeleev ) and determining the central atom of the molecule. Challenges: It was hard to parse the user’s input, and organizing code in respect to the type of the user’s molecule (e.g., if it has a charge that isn’t 0 or not). This way, it was hard to check whether my code was breaking other code. I remember accounting charges for my valence electron total– I was so happy and I felt very accomplished. However, I realized that I couldn’t input zero-charge molecules anymore– simple ones like H20 or CO2 . . . This is why I am going to decide to make a test file using pytest . (I may even have errors in my code I haven’t found yet.) I won’t have to go through this struggle again: testing and testing and testing. Rather, I can just run a single line in my terminal and test my whole file easily. That said, I will still need to change some things in order for that to happen– which leads me on to what I hope to achieve in the near future in terms of this project. Goals for next sessions: Create actual functions with respective function (obviously, haha), so I can use pytest. Overall clean up code Start abstractly creating a lewis structure– I don’t know yet if I will actually draw it on the screen. Calculate the amount of covalent bonds needed from the central atom to terminal atoms, and account 2 electrons for each bond. Thanks for reading, I hope you learned something or found my post interesting. I included a screenshot below of my project’s output for now."}, {"post_id": 49240, "ts": "2026-08-17T22:19:09Z", "hours": 1.5242, "text": "Welcome, reader. My name is Lucky, and this is my first personal project; and it's made using python. The modules I decided to use for now was just one: re. For context: my overall project is a cmd-line project that revolves around taking input from the user, a molecule, and predicting the molecular and electron-pair geometries of it. In other words, predicting the overall shape of the molecule. My first step is to count the valence electrons of the full molecule, and my first step in that is shown here. I was inspired by a bit of chemistry and I thought it would be an interesting first project to build my skills, although the concept is admittedly of low practicality or use. Little did I know, the overall idea requires a lot of parsing and error checking than I initially thought! At first, I used for-loop logic to find subscripts and trace them back to their respective elements. The logic was personally overwhelming: while programming, the ideas were too much to hold: I had to think about this list and that list, this dictionary and that dictionary, this index and that index, lining up everything perfectly. I'm glad I pseudo-coded a bit as of before, as I'm afraid my head would have exploded. Even after building the for-logic, there was still too much to parse. It all felt arbitrarily too much for a relatively simple function. I had to take into account of the implicit subscripts of 1, the implicit coefficient as well . . . However, after the struggle, I realized that I could use re.findall to do such as the aforementioned. Plug in a simple pattern, and boom– no more parsing needed, no more messiness. Nonetheless, I am glad and I went through the struggle, as I learned a lot specifically, and I also learned about the reality of programming: it seems easier in your head– it’s certainly easier said than done. As Lao Tzu had said: “A journey of a thousand miles begins with a single step.” Although, admittedly, and ironically, I can’t say my journey is of a thousand miles haha. As you can see, I included I screenshot / small demo below, of what the project’s function is. Next up, I plan to use the information granted by my code to count the number of valence electrons in the full molecule, possibly creating and using a dictionary of valence electron information for constituent atoms. Reader, thanks for coming along and listening to my experience coding my first personal project! I am determined to keep going and ultimately reach my final goal. Again, my name is Lucky, and I thank you for reading."}]...
|
Title: VSEPR Predictor by @LuckyInt | Stardance
D Title: VSEPR Predictor by @LuckyInt | Stardance
Devlogs:
Welcome, reader. My name is Lucky, and this is my first personal project; and it's made using python. The modules I decided to use for now was just one: re. For context: my overall project is a cmd-line project that revolves around taking input from the user, a molecule, and predicting the molecular and electron-pair geometries of it. In other words, predicting the overall shape of the molecule. My first step is to count the valence electrons of the full molecule, and my first step in that is shown here. I was inspired by a bit of chemistry and I thought it would be an interesting first project to build my skills, although the concept is admittedly of low practicality or use. Little did I know, the overall idea requires a lot of parsing and error checking than I initially thought! At first, I used for-loop logic to find subscripts and trace them back to their respective elements. The logic was personally overwhelming: while programming, the ideas were too much to hold: I had to think about this list and that list, this dictionary and that dictionary, this index and that index, lining up everything perfectly. I'm glad I pseudo-coded a bit as of before, as I'm afraid my head would have exploded. Even after building the for-logic, there was still too much to parse. It all felt arbitrarily too much for a relatively simple function. I had to take into account of the implicit subscripts of 1, the implicit coefficient as well . . . However, after the struggle, I realized that I could use re.findall to do such as the aforementioned. Plug in a simple pattern, and boom– no more parsing needed, no more messiness. Nonetheless, I am glad and I went through the struggle, as I learned a lot specifically, and I also learned about the reality of programming: it seems easier in your head– it’s certainly easier said than done. As Lao Tzu had said: “A journey of a thousand miles begins with a single step.” Although, admittedly, and ironically, I can’t say my journey is of a thousand miles haha. As you can see, I included I screenshot / small demo below, of what the project’s function is. Next up, I plan to use the information granted by my code to count the number of valence electrons in the full molecule, possibly creating and using a dictionary of valence electron information for constituent atoms. Reader, thanks for coming along and listening to my experience coding my first personal project! I am determined to keep going and ultimately reach my final goal. Again, my name is Lucky, and I thank you for reading.
Welcome. My name is Lucky This is my second devlog, based around a project (my first personal one) in python that predicts molecular and overall shape geometries using Valence Shell Electron-Pair Repulsion Theory– VSEPR (check my first devlog if you seek more information). The following is what I have done, in simple terms. I have: Counted the Valence Electrons of the inputted molecule using mendeleev . Accounted for charges on molecules and taking that into consideration while calculating Valence Electrons. Error checked / parsed the user’s input to only allow valid molecules. Calculated electronegativities of constituent elements (using mendeleev ) and determining the central atom of the molecule. Challenges: It was hard to parse the user’s input, and organizing code in respect to the type of the user’s molecule (e.g., if it has a charge that isn’t 0 or not). This way, it was hard to check whether my code was breaking other code. I remember accounting charges for my valence electron total– I was so happy and I felt very accomplished. However, I realized that I couldn’t input zero-charge molecules anymore– simple ones like H20 or CO2 . . . This is why I am going to decide to make a test file using pytest . (I may even have errors in my code I haven’t found yet.) I won’t have to go through this struggle again: testing and testing and testing. Rather, I can just run a single line in my terminal and test my whole file easily. That said, I will still need to change some things in order for that to happen– which leads me on to what I hope to achieve in the near future in terms of this project. Goals for next sessions: Create actual functions with respective function (obviously, haha), so I can use pytest. Overall clean up code Start abstractly creating a lewis structure– I don’t know yet if I will actually draw it on the screen. Calculate the amount of covalent bonds needed from the central atom to terminal atoms, and account 2 electrons for each bond. Thanks for reading, I hope you learned something or found my post interesting. I included a screenshot below of my project’s output for now.
Good day, reader. I’m Lucky. This is a third devlog on my project: VSEPR Predictor. If you aren’t sure of the project aims to do, feel free to read my first devlog; however, I will give you a brief summary. The project takes input a molecule, and then predicts the molecular geometry / shape of the molecule, as well as the electron-group geometry overall. It is built in python. Pytest As stated in my earlier log, I was tired of manually testing my project all of the time, and I wanted to use pytest. Therefore, I created 4 functions that have specific roles in my code. These four functions are the following: get_atoms_subscripts, get_central_atom, get_total_valence, and validate_formula– all of which take a molecule as input. *Before I state the advancements I have made, I’d like to disclaim that the electron-group calculations are not yet finalized, as I have yet to account for double and single bonds. To target this problem, I have calculated formal charges, and I plan to tackle it next. I will not explain what formal charges are– for the sake of words– but if you want, you can search it up. Functional Changes Calculated electron groups note ^^^ Calculated formal charge before adding double or triple bonds - Listed terminal atoms (every atom but the central one) Calculated Lone pairs note ^^^ Overall Function This project, at its state at the moment of writing: Counts Valence Electrons of the inputted molecule (mendeleev assist). Accounts for charges on molecules and taking that into consideration while calculating Valence Electrons. Error checks / parses the user’s input to only allow valid molecules. Calculates electronegativities of constituent elements (using mendeleev) and determining the central atom of the molecule. Parses the molecule to find its elements and subscripts. And does the aforementioned (functional changes). Struggles I admit that the hardest part of this session was transforming my code to create functions instead of just a blob of code. As you can imagine, it became very frustrating when– when I started to convert the code into constituent functions– my code started to have errors: some that have come of before and some new. At one point, I told myself, “My old code works, why can’t I just use that!” Of course, this was just out of a fit of discouragement, but I went on. I included I screenshot of what the project does at this moment, below– using NH3 (ammonia) as an example. Goodbye, thank you for reading. I hope you gained something, whether it be entertainment or knowledge.
Welcome, reader. This is my 4th devlog on a project (primarily built in python), that takes a molecule with a single defined central atom and predicts the electron geometries, molecular geometries (bond hybridization as well) using VSEPR Theory , and other quantitative data like total valence electrons, lone pairs, etc., that were collected along the calculations. If you are interested in my motivations and overall more information about the project, you can read my previous devlogs as well. However, the near-following bulleted-list will hopefully provide decent context. I would usually write a devlog earlier than this; however, I worked on my README.MD, yielding not a full 4h 37m on functional programming necessarily. Functions of the Predictor This project, at its state at the moment of writing: Counts Valence Electrons of the inputted molecule (mendeleev assist). Accounts for charges on molecules and taking that into consideration while calculating Valence Electrons. Error checks / parses the user’s input to only allow valid molecules. * NEW/ADDED Calculates electronegativities of constituent elements (using mendeleev) and determining the central atom of the molecule. Parses the molecule to find its elements and subscripts. Calculates electron groups / steric number. Calculates lone pairs around the central atom. Reforms the molecule in VSEPR form: AX_mE_n. * NEW Searches through a dictionary/table of all of the permutations of VSEPR form in order to fetch appropriate data. * NEW New Changes I rewrote some of the code in order to remove redundancy and to improve efficiency. I also created designated functions for some of the code I recently wrote. These parts were quite annoying, as it was frustrating to have to rewrite code to reach the same goal again; a lot of errors kept appearing. Nevertheless, I finished in the end. It takes a lot of patience to read through all your code line by line and go through the functions of each, and then seeing where efficiency could be improved. Nevertheless, it is satisfying to realize and improve on code, and to produce a more concise and readable product in the end. Since I can’t write extensively in this devlog, I will touch on topics like bond hybridization and more later. I also worked on my README.MD as aforementioned, which I encourage you to read or look at. Future Plans As you can see in the screenshot I included below (using H3O+/ hydronium as the example), my project is simply printing out all of the data– though the calculations are arguably demanding. In essence, the output is underwhelming compared to the immense backend logic. I would certainly like to make this into a web or application, and at the same time I would be learning HTML, CSS, and JavaScript. Conclusion / Goodbyes Thank you for reading, reader. I imagine that you learned or found something in my devlog interesting. If you have any suggestions, comment below and I will be sure to ponder over them. By the way, I really don’t know which molecules to pick for my examples in my screenshots, so you can comment some that you might want me to use (make sure it has one central atom). My name is Lucky, and I thank you , once again, Goodbye. for H3O+ (Hydronium) below
Hello, World. It’s been a while. Welcome to the 5th devlog centralized around a (mainly python) project that uses VSEPR Theory– aka Valence Shell Electron Pair Repulsion Theory– to predict the shapes/geometries of given molecules. For more info on the project’s main aims, please read my previous devlog. Nevertheless, a bulleted summary of what the project can do (structured in a way similar to my other devlogs for simplicity) is shown below. Capabilities of the Project This project, at its state at the moment of writing: Counts Valence Electrons of the inputted molecule (mendeleev assist). Accounts for charges on molecules and taking that into consideration while calculating Valence Electrons. Error checks / parses the user’s input to only allow valid molecules. * NEW/ADDED Calculates electronegativities of constituent elements (using mendeleev) and determining the central atom of the molecule. Parses the molecule to find its elements and subscripts. Calculates electron groups / steric number. Calculates lone pairs around the central atom. Reforms the molecule in VSEPR form: AX_mE_n. Searches through a dictionary/table of all of the permutations of VSEPR form in order to fetch appropriate data. Interacts with the user in order to act as an educational tool. * NEW Allows the user freedom in the questions asked: they can ask for a hint, can skip 1 questions, and can skip all questions at once. * NEW The Radical Problem (literally. (solved)) A major mistake on my part was that I forgot to account for radical molecules; in fact, I didn’t even know they were a thing. It turns out that, some molecules are allowed to have a lone electron surrounding the central atom, since they have an odd number of total valence electrons, hence yielding them an inevitable 1 leftover electron. Thankfully, the problem is solved now, perhaps in an admittingly unfortunate way: the program is now designed to simply reject radical molecules. There is a good reason for this, and that’s because these molecules’ shapes cannot reliably be predicted with VSEPR theory. The Clean Up In the time in between my 4th and 5th devlog, I have spent a lot of time capturing bugs in my code, and cleaning the code along the way. For a simple example, I would lazily copy-and-paste the same code into each constituent if, elif, and else statement when I could just call that code after them. As it’s been a relatively long time, I cannot remember a lot of the specific clean-ups I had done, which is probably included in the cons of pushing devlogs late . . . I apologize for the late devlog (although I know not many care). The reason for this, and the low amount of hours and effort given in these past 13 days, is mostly because of school. As well as there was a problem with my hackatime or rather my VSCode wherein multiple hours of work were not logged for whatever reason– however, I worked with quality during those times so I consider it a win. Addressing the Functionality (the interactivity) For now, my project asks questions to the reader terminal style, being arguably not engaging and probably very indescriptive as well– which is important to take note of, as this is indeed supposed to be an educational tool. In my future plans, I hope to pick up on some JavaScript or TypeScript, HTML, and CSS, in order to create a website or application that actually renders the models of these molecules, as well as to provide models for constituent steps like creating the Lewis/Dot structure. I firmly believe that if we are building the Dot Structures and are predicting shapes of molecules, the users should be able to see these things so they can then understand . Conclusions Thank you for reading! This was the 5th devlog, on the project based around VSEPR Theory, and I’ll see you, next time.
Welcome! It has been 2 whole weeks. And a devlog has arrived for the project that uses VSEPR theory to primarily predict the shape of a molecule, my name being Lucky. Just to preface , I have made a lot of changes in these 6.5 hours; and I have been irresponsible by not devlogging along the way . . . For more over-arching logging though, feel free to check my github commits to see the progressional changes. As well, check my other devlogs or read my README for more info on what my project does specifically. By the way, I will also not be including already stated info in my devlogs to avoid being repetitive and to save some words. Website I started building the website for my project (picture below), using HTML and CSS and my already-coded python backend. The HTML was pretty streamlined and was finished in a day; I also used Sakura CSS , linked in HTML as classless CSS. The CSS was a bit harder and took more days– mainly because Sakura CSS was overriding a lot of what I wrote! In the future, I believe it would be better if I didn’t use the pre-made CSS at all. I admit that I used a lot of AI due to frustration and confusion, however I retraced, decided to go back, and understood the code, and built some myself. By far the hardest part was connecting my python backend with the frontend, using JS (JavaScript) and API to do so. I did use FastAPI and their documentation, however I still ran into a lot of problems. This may be because I was using Github Codespaces, or for other reasons. Fork/PR Thanks to Su6o on Github for forking my Repo and checking over my README for grammar and phrasing errors. Conclusions/Goodbyes I learned a lot in these 2 weeks, albeit not being so consistent. One thing I have to work on is to be less reliant, to be independent and solve problems on my own. There was a lot of frustration in these sessions, and I hope to relieve of that next. For the future of this project, I would like to use the data given by the backend to write a Lewis Structure code in frontend. As my project is aimed to be an educational tool (might change), it would also be helpful to transform the frontend to do such. That’s all. Thanks for reading, and have a great day. I will try to get a working demo up, so you can interactively use the site....
|
1792615749.1953344
|
1793220549.1953344
|
|
50019
|
ViyeonOS by @Viy | Stardance
|
Viy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: ViyeonOS by @Viy | Stardance
|
1792615750.281978
|
1793220550.281978
|
|
45196
|
Line Follower by @SollRak | Stardance
|
SollRak
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Line Follower by @SollRak | Stardance
|
1792615751.1439579
|
1793220551.1439579
|
|
50020
|
My own site! by @yeaitsmailwithc | Stardance
|
yeaitsmailwithc
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @yeaitsmailwithc | Stardanc Title: My own site! by @yeaitsmailwithc | Stardance...
|
1792615752.0004106
|
1793220552.0004106
|
|
45197
|
Flood Vista by @Turjo0599 | Stardance
|
Turjo0599
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Flood Vista by @Turjo0599 | Stardance
|
1792615752.8467872
|
1793220552.8467872
|
|
50021
|
39Keys by @AdaChan | Stardance
|
AdaChan
|
0
|
1.32
|
0
|
[]
|
[{"post_id": 66658, "ts": "202 [{"post_id": 66658, "ts": "2026-09-12T14:52:06Z", "hours": 0.8231, "text": "This was so difficult, seriously 😭 It’s really annoying having to do all of this, and it ended up misaligned too =( I hope I can fix it later. It looks like it’s going to take hours =/"}, {"post_id": 65973, "ts": "2026-09-11T13:54:54Z", "hours": 0.4983, "text": "This was really difficult but also really fun! I’m creating my Hackpad well, I think I am 😂. I honestly didn’t understand anything I was doing 🥀. I think it should work, though! This seems really cool, and I hope I can finish this project =D"}]...
|
Title: 39Keys by @AdaChan | Stardance
Devlogs:
Th Title: 39Keys by @AdaChan | Stardance
Devlogs:
This was really difficult but also really fun! I’m creating my Hackpad well, I think I am 😂. I honestly didn’t understand anything I was doing 🥀. I think it should work, though! This seems really cool, and I hope I can finish this project =D
This was so difficult, seriously 😭 It’s really annoying having to do all of this, and it ended up misaligned too =( I hope I can fix it later. It looks like it’s going to take hours =/...
|
1792615753.750667
|
1793220553.750667
|
|
45199
|
SpeedChessPad by @vik | Stardance
|
vik
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: SpeedChessPad by @vik | Stardance
|
1792615754.822196
|
1793220554.822196
|
|
50022
|
MechanicaSaveFix by @Oignontom8283 | Stardance
|
Oignontom8283
|
0
|
37.2
|
0
|
[]
|
[{"post_id": 76703, "ts": "202 [{"post_id": 76703, "ts": "2026-10-04T11:37:14Z", "hours": 3.8622, "text": "v0.12.0 Version v0.11.0 introduced a system that checks the GitHub repository for new versions of the mod.As for v0.12.0 … I ended up finding a bug that was causing certain item categories to be duplicated whenever a save was reloaded. I spent quite a bit of time tracking down the issue and fixing it, and it ended up requiring some fairly significant changes to the VFS.(Nothing too crazy, though. I basically just added explicit directory tracking so that empty directories are still properly preserved.) Anyway, it works now! :3"}, {"post_id": 68309, "ts": "2026-09-14T22:07:56Z", "hours": 7.2778, "text": "v0.10.0 There we go! The mod is technically functional and usable. All that’s left is getting other people to test it and adding a couple more things, like an update check, and that’s it (: What’s changed: Added a configuration file for the mod. Added several features driven by settings from the configuration file. Patched the new world creation menu to directly create a save in the new format. Reorganized a good chunk of the code in the larger files (Utils.cs, VirtualFS.cs, SaveMenu.cs). Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ✅ Add display/support for the new save format in the world selection menu. ✅ Config file ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console."}, {"post_id": 59545, "ts": "2026-09-01T13:00:09Z", "hours": 5.6392, "text": "v0.8.1 I thought this step was going to be simple… Not at all! It’s been a nightmare of an ordeal. The save selection menu’s code (its logic) was basically one flat, tangled plate of spaghetti. The base game used a bunch of dictionaries to store data and look it back up. The functions tied to the buttons used the Rect object handed to the class to look up the data they needed. Why hand over an object to look up data through a dictionary when you can just pass the function what it needs directly… I completely rewrote the menu’s behavior from scratch, cleanly, to support displaying and loading saves in their new archive form. What’s changed: Rewrote the save selection menu so it lists both classic save folders and the new .msa archives side by side. Added a proper confirmation popup (reused for save deletion, and reusable for anything else later) instead of the base game’s tangled state. Rebuilt the difficulty settings screen flow so it works the same way whether the save is a folder or an archive. Deleting a save now works for both save folders and .msa archives. Fixed thumbnails not showing for saves without a screenshot. Hooked up unloading the virtual file system when leaving a world, so you can load another world without restarting the game. Squashed a good number of bugs along the way (mixed up path separators, wrong field types, missing state resets) that only showed up once real saves were being loaded and listed. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ✅ Add display/support for the new save format in the world selection menu. ❌ Add a config file, [deinitialize the VFS on world exit - Early Done], and other minor details/improvements (new) ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console."}, {"post_id": 54801, "ts": "2026-08-25T22:40:21Z", "hours": 7.2544, "text": "0.6.0 It wasn’t as simple as expected… But it works now! You can load a normal world, and on the first save it will be converted into a .msa archive. From then on, whenever you try to load a world that has an archived version, that version will be loaded instead of the other one. What’s changed: Fixed VirtualFS incorrectly normalizing the root save path, which caused it to no longer match the paths built by the game itself, breaking file lookups everywhere. Fixed QueryEntries not sanitizing multi-level directory paths, which caused Directory.GetFiles / GetDirectories to return nothing for nested folders (welds, anchors, etc.). Fixed reconstructed paths mixing / and \\ separators, which broke the game’s own string comparisons (e.g. RemoveOldFiles deleting everything instead of only orphaned files). Added patches for DirectoryInfo / FileInfo instance methods ( GetFiles , GetDirectories , CreateSubdirectory , Exists ), which weren’t covered by the static File / Directory patches. Simplified VirtualFS ‘s internal mode from three states ( Idle / Capturing / Playback ) down to two ( Idle / Intercepting ), since capture and playback behaved identically from the interception logic’s point of view. Wrote the Save() / LoadSave() coroutine wrappers that trigger the capture/playback cycle and commit/load the .msa archive. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. ❌ Add a config file, deinitialize the VFS on world exit, and other minor details/improvements (new) ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console. (new)"}, {"post_id": 51323, "ts": "2026-08-20T22:10:26Z", "hours": 0.9206, "text": "v0.5.1 I added the Harmony patches to intercept System.IO functions. It was long and repetitive 👍. What’s changed: Add src\\Patches\\io\\Directory.cs for the directory-related function patches. Add src\\Patches\\io\\File.cs for the file-related function patches. Removed old test files for writing/reading files. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. The next step should let me run the first tests, which will probably be followed by some bug fixes. Hopefully not 🤞."}, {"post_id": 50577, "ts": "2026-08-19T19:38:17Z", "hours": 1.9633, "text": "v0.4.1 I almost went CRAZY 😰 I ran into an architecture problem, and I was about two steps away from refactoring EVERYTHING to make it clean. I finally found a solution. It’s not the cleanest, but I didn’t have any other idea. So the world-swap function lives inside the VFS. In the end it’s just a matter of roles/responsibilities, nothing technically blocking really 😅. What’s changed: Add method to write the VFS to a zip archive. Add method to load a zip archive into the VFS. Add method to replace the world’s save with the new one and move the previous version to backup. Improved the versioning system, and included build info (hash, time…). Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu."}, {"post_id": 50082, "ts": "2026-08-19T04:29:19Z", "hours": 1.5697, "text": "Mostly environment/tooling additions and improvements. What’s changed: Add build.yml GitHub CI, to verify that commits and PRs compile. Add release.yml GitHub CI, to build and attach the mod to releases. Minor tweaks to the build script. Add a VSCode task to build the project without running a command. Progress so far (so no changes here ¯ _ (ツ)_/¯): ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu."}, {"post_id": 49874, "ts": "2026-08-18T20:28:48Z", "hours": 0.9658, "text": "I finished the Forward component, which faithfully reproduces every System.IO function (the functions used to interact with the computer’s file system). Why? : I need functions with the exact same API, since I’m going to intercept the game’s disk read/write functions to stop it from writing thousands of small files and folders. What’s changed: Add VirtualFS.DeleteFile() Add VirtualFS.DeleteFileNoThrow() ( System.IO ‘s Delete function doesn’t throw an error, unlike VirtualFS.DeleteFile() , so I made an alternative to properly mimic Delete ’s behavior. Add Forward.cs Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu."}, {"post_id": 49417, "ts": "2026-08-18T07:44:51Z", "hours": 7.745, "text": "I have to admit I’ve been working on reverse-engineering / decompiling this game for a long time now, so getting set up was pretty quick. I established the mod/patch structure, refactored it, refactored it again, until I landed on my current plan. Right now I’ve only written VirtualFS.cs , which contains the virtual file system that will intercept System.IO requests to prevent them from writing to disk. Next I’ll move on to writing the fake System.IO functions (write a file, read a file, etc.), the functions that will write and read the save in .zip format, the patches for the system functions, the triggers, and finally the interface. Progress so far: ✅ VFS (Virtual File System). ❌ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. Markdown checkboxes don’t work… so I’m using good old emojis instead. ¯ _ (ツ)_/¯"}]...
|
Title: MechanicaSaveFix by @Oignontom8283 | Starda Title: MechanicaSaveFix by @Oignontom8283 | Stardance
Devlogs:
I have to admit I’ve been working on reverse-engineering / decompiling this game for a long time now, so getting set up was pretty quick. I established the mod/patch structure, refactored it, refactored it again, until I landed on my current plan. Right now I’ve only written VirtualFS.cs , which contains the virtual file system that will intercept System.IO requests to prevent them from writing to disk. Next I’ll move on to writing the fake System.IO functions (write a file, read a file, etc.), the functions that will write and read the save in .zip format, the patches for the system functions, the triggers, and finally the interface. Progress so far: ✅ VFS (Virtual File System). ❌ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. Markdown checkboxes don’t work… so I’m using good old emojis instead. ¯ _ (ツ)_/¯
I finished the Forward component, which faithfully reproduces every System.IO function (the functions used to interact with the computer’s file system). Why? : I need functions with the exact same API, since I’m going to intercept the game’s disk read/write functions to stop it from writing thousands of small files and folders. What’s changed: Add VirtualFS.DeleteFile() Add VirtualFS.DeleteFileNoThrow() ( System.IO ‘s Delete function doesn’t throw an error, unlike VirtualFS.DeleteFile() , so I made an alternative to properly mimic Delete ’s behavior. Add Forward.cs Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu.
Mostly environment/tooling additions and improvements. What’s changed: Add build.yml GitHub CI, to verify that commits and PRs compile. Add release.yml GitHub CI, to build and attach the mod to releases. Minor tweaks to the build script. Add a VSCode task to build the project without running a command. Progress so far (so no changes here ¯ _ (ツ)_/¯): ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu.
v0.4.1 I almost went CRAZY 😰 I ran into an architecture problem, and I was about two steps away from refactoring EVERYTHING to make it clean. I finally found a solution. It’s not the cleanest, but I didn’t have any other idea. So the world-swap function lives inside the VFS. In the end it’s just a matter of roles/responsibilities, nothing technically blocking really 😅. What’s changed: Add method to write the VFS to a zip archive. Add method to load a zip archive into the VFS. Add method to replace the world’s save with the new one and move the previous version to backup. Improved the versioning system, and included build info (hash, time…). Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu.
v0.5.1 I added the Harmony patches to intercept System.IO functions. It was long and repetitive 👍. What’s changed: Add src\Patches\io\Directory.cs for the directory-related function patches. Add src\Patches\io\File.cs for the file-related function patches. Removed old test files for writing/reading files. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. The next step should let me run the first tests, which will probably be followed by some bug fixes. Hopefully not 🤞.
0.6.0 It wasn’t as simple as expected… But it works now! You can load a normal world, and on the first save it will be converted into a .msa archive. From then on, whenever you try to load a world that has an archived version, that version will be loaded instead of the other one. What’s changed: Fixed VirtualFS incorrectly normalizing the root save path, which caused it to no longer match the paths built by the game itself, breaking file lookups everywhere. Fixed QueryEntries not sanitizing multi-level directory paths, which caused Directory.GetFiles / GetDirectories to return nothing for nested folders (welds, anchors, etc.). Fixed reconstructed paths mixing / and \ separators, which broke the game’s own string comparisons (e.g. RemoveOldFiles deleting everything instead of only orphaned files). Added patches for DirectoryInfo / FileInfo instance methods ( GetFiles , GetDirectories , CreateSubdirectory , Exists ), which weren’t covered by the static File / Directory patches. Simplified VirtualFS ‘s internal mode from three states ( Idle / Capturing / Playback ) down to two ( Idle / Intercepting ), since capture and playback behaved identically from the interception logic’s point of view. Wrote the Save() / LoadSave() coroutine wrappers that trigger the capture/playback cycle and commit/load the .msa archive. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. ❌ Add a config file, deinitialize the VFS on world exit, and other minor details/improvements (new) ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console. (new)
v0.8.1 I thought this step was going to be simple… Not at all! It’s been a nightmare of an ordeal. The save selection menu’s code (its logic) was basically one flat, tangled plate of spaghetti. The base game used a bunch of dictionaries to store data and look it back up. The functions tied to the buttons used the Rect object handed to the class to look up the data they needed. Why hand over an object to look up data through a dictionary when you can just pass the function what it needs directly… I completely rewrote the menu’s behavior from scratch, cleanly, to support displaying and loading saves in their new archive form. What’s changed: Rewrote the save selection menu so it lists both classic save folders and the new .msa archives side by side. Added a proper confirmation popup (reused for save deletion, and reusable for anything else later) instead of the base game’s tangled state. Rebuilt the difficulty settings screen flow so it works the same way whether the save is a folder or an archive. Deleting a save now works for both save folders and .msa archives. Fixed thumbnails not showing for saves without a screenshot. Hooked up unloading the virtual file system when leaving a world, so you can load another world without restarting the game. Squashed a good number of bugs along the way (mixed up path separators, wrong field types, missing state resets) that only showed up once real saves were being loaded and listed. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ✅ Add display/support for the new save format in the world selection menu. ❌ Add a config file, [deinitialize the VFS on world exit - Early Done], and other minor details/improvements (new) ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console.
v0.10.0 There we go! The mod is technically functional and usable. All that’s left is getting other people to test it and adding a couple more things, like an update check, and that’s it (: What’s changed: Added a configuration file for the mod. Added several features driven by settings from the configuration file. Patched the new world creation menu to directly create a save in the new format. Reorganized a good chunk of the code in the larger files (Utils.cs, VirtualFS.cs, SaveMenu.cs). Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ✅ Add display/support for the new save format in the world selection menu. ✅ Config file ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console.
v0.12.0 Version v0.11.0 introduced a system that checks the GitHub repository for new versions of the mod.As for v0.12.0 … I ended up finding a bug that was causing certain item categories to be duplicated whenever a save was reloaded. I spent quite a bit of time tracking down the issue and fixing it, and it ended up requiring some fairly significant changes to the VFS.(Nothing too crazy, though. I basically just added explicit directory tracking so that empty directories are still properly preserved.) Anyway, it works now! :3...
|
1792615755.7031336
|
1793220555.7031336
|
|
50024
|
My own site! by @Balamurugan | Stardance
|
Balamurugan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @Balamurugan | Stardance
|
1792615756.8665662
|
1793220556.8665662
|
|
50025
|
My awesome macropad! by @whatisstardancexyz | Star My awesome macropad! by @whatisstardancexyz | Stardance...
|
whatisstardancexyz
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @whatisstardancexyz Title: My awesome macropad! by @whatisstardancexyz | Stardance...
|
1792615757.7298274
|
1793220557.7298274
|
|
50027
|
coolboard by @invistrav | Stardance
|
invistrav
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: coolboard by @invistrav | Stardance
|
1792615758.5890424
|
1793220558.5890424
|
|
50028
|
My awesome macropad! by @alexhb | Stardance
|
alexhb
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @alexhb | Stardance
|
1792615759.4326975
|
1793220559.4326975
|