You are browsing as a guest. Sign up (or log in) to start making projects!

reimunyancat

@reimunyancat

Joined June 7th, 2026

  • 10Devlogs
  • 6Projects
  • 1Ships
  • 15Votes
I am a 17-year-old developer from South Korea. I am trying out various things, but I mainly work in web and programming.

I am a Manchester United fan. btw
Open comments for this post

1h 2m 10s logged

Hardware fidelity pass — “wait, is this actually what the real Enigma looks like?”

After the electrical signal path was rendering, I pulled up real Kriegsmarine M4 photos to compare — and the 3D model didn’t hold up. So before adding anything new, this one is a “make it historically accurate first” pass.

What was wrong

  • Floating letters. The rotor alphabet was hovering in mid-air beside each wheel instead of being on it. On the real machine the letters are engraved around the rotor’s circumference and you read one through a small window.
  • The reflector and entry wheel looked fake. They were basically copy-pasted rotors with the letters wiped off. In reality the reflector (UKW) and entry wheel (ETW) are fixed and tucked inside the housing — there are no spinning lettered drums there at all.
  • Lopsided UI. A huge dead zone under the input field was squashing the 3D view into a thin strip.
  • Input/output drift. The I/O readout was center-aligned, so every keypress shoved the existing letters further left. Genuinely uncomfortable to type on.

What I did

  • Wrapped the alphabet onto the rotor circumference with engraved grooves, contact rings, and brass window bezels, so you read it through the top window like the real thing.
  • Rebuilt the reflector and ETW as smaller dark drums seated in the housing, and set them to stay hidden in the normal view — they’ll surface later in X-ray mode, where the internal wiring belongs.
  • Set the 3D viewport to flex: 1 so it fills the space, and re-framed the camera.
  • Switched the I/O readout to a fixed-width, left-anchored layout, so input and output line up and grow rightward instead of sliding around.

A lesson paid for in blood

Squashed a stack of messy single-digit commits into one clean commit — then ran git reset --hard with an uncommitted layout fix still in the working tree and watched it evaporate. Re-did it in two minutes, but the takeaway stands: run git status before --hard. Always.

Next up: the X-ray translucent mode that exposes the internal wiring and lights up the live signal path through the rotors. That’s the part I actually started this whole thing for.

Hardware fidelity pass — “wait, is this actually what the real Enigma looks like?”

After the electrical signal path was rendering, I pulled up real Kriegsmarine M4 photos to compare — and the 3D model didn’t hold up. So before adding anything new, this one is a “make it historically accurate first” pass.

What was wrong

  • Floating letters. The rotor alphabet was hovering in mid-air beside each wheel instead of being on it. On the real machine the letters are engraved around the rotor’s circumference and you read one through a small window.
  • The reflector and entry wheel looked fake. They were basically copy-pasted rotors with the letters wiped off. In reality the reflector (UKW) and entry wheel (ETW) are fixed and tucked inside the housing — there are no spinning lettered drums there at all.
  • Lopsided UI. A huge dead zone under the input field was squashing the 3D view into a thin strip.
  • Input/output drift. The I/O readout was center-aligned, so every keypress shoved the existing letters further left. Genuinely uncomfortable to type on.

What I did

  • Wrapped the alphabet onto the rotor circumference with engraved grooves, contact rings, and brass window bezels, so you read it through the top window like the real thing.
  • Rebuilt the reflector and ETW as smaller dark drums seated in the housing, and set them to stay hidden in the normal view — they’ll surface later in X-ray mode, where the internal wiring belongs.
  • Set the 3D viewport to flex: 1 so it fills the space, and re-framed the camera.
  • Switched the I/O readout to a fixed-width, left-anchored layout, so input and output line up and grow rightward instead of sliding around.

A lesson paid for in blood

Squashed a stack of messy single-digit commits into one clean commit — then ran git reset --hard with an uncommitted layout fix still in the working tree and watched it evaporate. Re-did it in two minutes, but the takeaway stands: run git status before --hard. Always.

Next up: the X-ray translucent mode that exposes the internal wiring and lights up the live signal path through the rotors. That’s the part I actually started this whole thing for.

Replying to @reimunyancat

0
2
Open comments for this post

19m 45s logged

I really agonized over how to add UI elements to meet the requirements. I originally intended to create this for display purposes, and the HUD I had made for a school assignment was already somewhat inconvenient. It was quite challenging due to the requirement to add more UI, but I found a way to incorporate features without compromising the aesthetics. I modified the code so that clicking the key descriptions located below the HUD immediately activates the functions. Additionally, instead of using the automatically generated readme.md, I wrote it myself based on my own ideas. While the content might seem AI-driven, I wrote it out by hand since it is also being used for a school assignment presentation.

I really agonized over how to add UI elements to meet the requirements. I originally intended to create this for display purposes, and the HUD I had made for a school assignment was already somewhat inconvenient. It was quite challenging due to the requirement to add more UI, but I found a way to incorporate features without compromising the aesthetics. I modified the code so that clicking the key descriptions located below the HUD immediately activates the functions. Additionally, instead of using the automatically generated readme.md, I wrote it myself based on my own ideas. While the content might seem AI-driven, I wrote it out by hand since it is also being used for a school assignment presentation.

Replying to @reimunyancat

0
1
Open comments for this post

20m 50s logged

I created an initial version to beautifully implement the existing CLI Enigma on the web.

I created an initial version to beautifully implement the existing CLI Enigma on the web.

Replying to @reimunyancat

0
1
Ship

🪐 Ephemeris — a real-time 3D solar system simulator, built from scratch

What I made:
A desktop app (Tauri + TypeScript + Three.js) that simulates the solar system from real NASA JPL Horizons initial conditions. Instead of faking the orbits, it actually integrates Newtonian gravity in real time. I hand-implemented three classic computational-physics algorithms: a Velocity Verlet symplectic integrator for stable long-term orbits, a 3D Barnes-Hut octree for O(N log N) gravity, and a Newton-Raphson solver for Kepler's equation to read out live orbital elements.

What was challenging:
The trickiest part was the tension between the symplectic integrator and the Barnes-Hut approximation — every time the octree rebuilds, tiny force discontinuities break symplecticity and energy drift creeps back in. Getting the numerical stability right (gravity softening near close encounters, sub-stepping at high time-acceleration, and removing barycenter drift) and killing GC frame spikes with an octree node memory pool took a lot of iteration.

What I'm proud of:
It genuinely runs on real NASA data and the orbits come out physically correct — the unit tests recover the actual JPL inclinations. And it looks nice too: procedural planet textures, age-faded orbit trails, Saturn's rings, Earth's atmospheric glow, and real axial tilt + rotation.

How to test it:
Open it and the 8 planets load automatically. Drag the time slider to speed things up (1 day/s → 1 year/s), click any planet to see its 6 live orbital elements, then toggle the asteroid belt on (1k–10k particles) and switch between naive O(N²) and Barnes-Hut to watch the FPS difference. You can also pause, reverse, and jump through time.

  • 4 devlogs
  • 4h
Try project → See source code →
Open comments for this post

1h 1m 22s logged

I added details, removed minor bugs, and made it prettier.

I added details, removed minor bugs, and made it prettier.

Replying to @reimunyancat

0
1
Open comments for this post

1h 30m 56s logged

I installed Fusion to design a case for the PCB; I calculated the dimensions and entered them into the parameters list to streamline future work.

I installed Fusion to design a case for the PCB; I calculated the dimensions and entered them into the parameters list to streamline future work.

Replying to @reimunyancat

0
7
Open comments for this post

39m 13s logged

I have finished designing the PCB board. It was my first time doing this, so it was tough constantly searching and asking AI, but I am glad to have completed it anyway.

I have finished designing the PCB board. It was my first time doing this, so it was tough constantly searching and asking AI, but I am glad to have completed it anyway.

Replying to @reimunyancat

0
7
Open comments for this post

23m 3s logged

Start PCB layout — Create a 19.05mm custom grid and arrange 9 switches in a 3x3 configuration, placing diodes D1 through D9 below each switch in the same direction. Place the XIAO, encoder (SW10), and OLED header (J1) around the grid (detailed positioning in progress).

Start PCB layout — Create a 19.05mm custom grid and arrange 9 switches in a 3x3 configuration, placing diodes D1 through D9 below each switch in the same direction. Place the XIAO, encoder (SW10), and OLED header (J1) around the grid (detailed positioning in progress).

Replying to @reimunyancat

0
8
Open comments for this post

1h 49m 29s logged

Initially, I designed it more simply than planned, but when I modified it to fit the plan, there were so many errors that fixing them was very difficult. I will wrap up here for today and focus on details and optimization tomorrow.

Initially, I designed it more simply than planned, but when I modified it to fit the plan, there were so many errors that fixing them was very difficult. I will wrap up here for today and focus on details and optimization tomorrow.

Replying to @reimunyancat

0
10
Open comments for this post

39m 22s logged

I implemented formulas for the trajectories and masses of the planets, created individual objects to form their orbits, and implemented the UI. The formulas were the most difficult part.

I implemented formulas for the trajectories and masses of the planets, created individual objects to form their orbits, and implemented the UI. The formulas were the most difficult part.

Replying to @reimunyancat

0
3

Followers

Loading…