Captain’s Log: Simon Dietz
Pixel Art UI Library: Porting to p5.js
A Challenge and a SolutionToday, I was thinking about porting my Java Pixel Art UI Library to p5.js. A common technique is to draw into an offscreen image and then scale it up to the desired pixel size using nearest neighbor filtering.
I even had an older example in pure Processing, but in p5.js it turned out that a direct 1:1 port isn’t really possible, as far as I can tell now.
After some experimentation, I arrived at the following solution:
Read the full article– End Log
Quick Port: JS Mesh Viewer
A Swift Transition from Java to p5.jsI began porting my simple 3D mesh viewer to JavaScript and p5.js — both as a way to refresh my knowledge and to explore the language more deeply. Along the way, I picked up some valuable lessons: clean use of ES modules, effective data encapsulation with private fields and methods, and some handy JavaScript idioms.
The live demo now offers interactive controls straight in the browser.
Features include:
- Grid toggle (G)
- Colored axes in red, green, and blue (1, 2, 3)
- Wireframe mode (X)
- Face normals display (F)
- Zoom with the mouse wheel
- Rotate via left-mouse dragging
Check out the live demo and let me know what you think!
– End Log
JS Mesh Viewer Live DemoZerfall Now Online
A Study in Digital Erosion and ImpermanenceToday marks the release of Zerfall — a generative sketch exploring the breakdown of geometric structure over time. The piece begins with order and quickly collapses into unpredictable dissolution.
It’s inspired by natural erosion and the inevitability of decay — only here, rendered through code. No interaction, no control — just observation.
You can view it on the project page. One step further into the void.
– End Log
Porting the Conway Explorer to JavaScript
Rediscovering Code, Geometry, and Browser JoyGetting Back Into JavaScript
After some time away from JavaScript, I’ve started porting my Conway Explorer into the browser — and it’s been surprisingly fun.
This project originally grew from my fascination with Conway polyhedral operators — simple transformation rules (like Ambo, Dual, Kis, etc.) that, when applied to 3D meshes, create intricate and beautiful geometry. I previously had a version working in another environment, but I wanted something lighter and more accessible — something that could live on the web.
Conway Operators in the Browser
Coming from a computer science background, the logic and architecture came back quickly. Still, it’s been refreshing to re-learn some of JavaScript's quirks — from module imports to event-driven UI interactions and p5.js for rendering.
This is the first time in a while I’ve sat down with JS and said: “Let’s make something visual, interactive, and pure.” No frameworks, no React — just geometric logic and pixels. And honestly, it feels great.
Right now, I’ve got the following operators working:
- Ambo – rounding edges by inserting midpoints.
- Dual – swapping faces and vertices.
- Kis – spiking each face by inserting a center point.
- Bevel – created by chaining multiple modifiers (e.g.,
Ambo → Dual → Kis → Dual
).
I wrote everything modular and reusable — including Mesh
, Face
, and Vector3
classes, along with individual modifier classes like ConwayBevelModifier
.
The result is real-time mesh transformations right in the browser. Seeing a cube morph into a stellated, spiked, or subdivided structure just by using simple operations is incredibly satisfying.
What’s Next
I’m looking forward to adding:
- Interactive UI controls to apply modifiers
- 3D navigation and better camera control
- Export functionality
- And maybe — just maybe — some user-generated input
This whole experience reminds me why I love programming: the feedback loop of logic, visuals, and creativity is so tight and rewarding.
If you’re curious about geometry, meshes, or just want to geek out over Conway operators, stay tuned. I’ll post more progress and maybe even a live demo soon.
– End Log
New Domain & Portfolio Page Live
Static HTML, Simple Design, and a Fresh StartToday I finally registered my domain and published a very simple portfolio site. It's all built from static HTML pages — intentionally minimal to help me refocus, relearn, and ease back into web development.
There’s something satisfying about not relying on any build tools or frameworks — just plain HTML, CSS, and a few JavaScript files. It feels like rediscovering the fundamentals.
The site is up, running, and ready to grow. Excited to see where this leads!
– End Log