huge session today, mostly spent on making the thing look like chatgpt didnt make it (does it really look like ai? i might be going insane) anyways, i rewrote most of the css. the old version had this weird thing where every section was perfectly spaced and evenly padded and apparently looked like a template when i asked my friend to critique.
also fixed a few things i noticed while testing:
might ship after this
spent tongith on the pretty ugly stuff. decoding from mic wokrks now but testing it was pretty bad becuase i had to send chirps across the room like an idiot, so the wav roundtrip finally is good. found out picking the same file twice does nothing becuase the input never resets.
not redesigning tonight but i did clean up the status messages so they sound more like me since i dont sound like me to other people. if it still loks like ai i really dont know what to do the decoder works and thats what matters.
next: fixing the bad chrips instead of detecting them
spent the whole session on the decoder. it was the weak link and now it actually locks on.
biggest fix: sync. the old decoder basically guessed where a message started, so if it missed the first chirp everything after it was garbage. now every message starts with 3 leader chirps (above every letter frequency so they can’t be confused with real chars) and the decoder counts the rising edges before it arms. doesn’t hear 3, doesn’t read anything.
added a checksum too, one extra chirp at the end, it’s just the sum of every char’s position in the tone table mod the table size.
then 2x mode: a checkbox that sends every char twice. leader count changes to 5 so the decoder knows the mode from the count alone before any chars arrive.
also added save wav + decode from wav. encode a message, save it as a file, feed the file back into the decoder. means i can test the decode path from recordings without needing two devices in the same room.
still can’t fix a bad chirp, only detect it. that’s the next session.
while i was reding replies from my orrery i was told my website looked like ai, so i tried improving this one (surely its better???)
almost forgot to create the proj and link to stardance lol so big devlog
What’s in the v1:
Where it’s at right now:
It works in a quiet room, short messages, close to the mic. The decoder is kinda bad no sync preamble yet, so if it misses the start of the message it just loses everything. That’s the gap im filling today
Where it’s heading:
added asteroid belt and a comet to the orrery. 200 rocks between mars and jupiter, each on its own orbit with real kepler speeds they all at different rates based on their distance from the sun. the comet has a tail that always points away from the sun and gets brighter as it swings closer. took a while to get the tail direction right. still a single file no frameworks
ok so after shipping i kept looking at the payout and the ratings and it was pretty obvious why the multiplier was low people said it looked cool but there was nothing to DO with it. fair. it was a screensaver. so i turned it into a sandbox.
biggest change: the sim now runs on REAL orbital data. each planet has its actual semi-major axis (AU), eccentricity, and period from nasa’s jpl, and the sun actually sits at the true focus of every orbit now (before, the ellipses were centered on the sun which is wrong kepler’s first law says the sun is at a focus). i also found out my local copy of main.js was some old backup from day 1, so the kepler code i thought was there had vanished from disk good reminder to commit more.
new stuff:
the solver viz took the longest to get right because i wanted the construction to be mathematically correct, not just decorative. the moon was easy lol.
readme + ship polish:
got feedback that my readme looked ai-generated so i rewrote the whole thing properly it has real info about how the kepler solver works, the feature list, how to run it, what’s next. also made the banner an actual frame of the app running instead of a logo. small stuff should be good to ship again 🤞
loader + terminal
gave the page an opening animation text that prints line by line ( orrery v0.3 , loading 300 stars …. ok , kepler solver …….. ok ) with a progress bar, then fades into the system. got a navy palette. small change, but the page feels like it has life now
kepler ellipses
finally got the planets off circular orbits. gave each one a real eccentricity and major axis (which i knew nothing about till now lol) , then a newton raphson solver for kepler’s equation so they speed up and slow down like actual planets. mercury goes fast through perihelion now while neptune barely moves the difference in speed is way more obvious than with the old circles. took longer than i expected to stop the planets from drifting off their ellipses, but it’s better now. (i hope you can see the developmental process through my pics)
long session about 3.5h
got a proper chunk of time today so I worked with it properly, I added saturn’s ringtook a while to get the tilt right, ended up rotating the area around the planet and drawing the ellipse there instead of trying to math itinline. then spent most of the time just looking at it turned the orbit speeds so mercury actually goes faster around while neptune is slower, fiddled with the starfield twinkle so it doesn’t look like static, and refreshed the page a hundred times checking the ring from different angles. also started reading up on real keplerian elements from NASA’s data that’s the next thing, getting planets off circular orbits and onto actual ellipses. no fancy UI yet, still plain black terminal vibes, but it feels alive now.
day 1, added saturns ring