All notes

June 13, 2026 / LAYERED-LOGIC · PORTFOLIO · MAKER · AI-PLANNER · FABRICATION

Infinity mirror prototypes and a portfolio chatbot

Two weeks of parallel tracks: laser-cutting 6-inch mirror prototypes for Layered Logic and shipping a Claude-powered chatbot to the portfolio site.

Got the first real 6-inch infinity mirror prototypes cut this week. Up until now most of the Layered Logic fabrication work has been firmware and electronics, the physical mirror form was still a placeholder sketch. Getting actual acrylic on the laser cutter and holding a cut piece in your hand changes how you think about tolerances.

The fabrication pipeline has a few moving parts. There’s an SVG-to-DXF toolchain (IM_SVG_Maker) that converts artwork into laser-cuttable tiles and 3D-printable inserts. This stretch I got the basic mirror shapes cut, started on acrylic test pieces, and began modeling the main body frame sections for print. The 3D diffuser workflow is in progress, still figuring out the geometry there. It’s slower than I’d like, but the constraint is that each iteration requires actual print time, so you can’t just iterate in an afternoon.

On the software side I also built a Home Assistant integration for the mirror. The firmware already exposes a WebSocket API (seven HTTP endpoints, mDNS advertised as _layeredlogic._tcp.local.) and the HA component wraps that without touching firmware at all, coordinator, light entity, config flow with zeroconf discovery and manual-IP fallback, HMAC paired-mode auth. The goal was to make it work with the existing hardware exactly as-is. Confirmed it does.

The other thing that actually shipped: a “chat about me” section on the portfolio site. It’s a small Claude Haiku model sitting behind an n8n webhook, with a Postgres knowledge base built from resume and project docs. You can ask it about my background and it answers in something closer to first person than a static bio would. The main annoyance during build was that it kept citing my personal Gmail instead of the professional contact address, had to update both the source markdown and the system prompt’s hard limits, then regenerate the knowledge migration. Small thing, but the kind of thing that matters when someone’s actually using it.

The portfolio site itself went through a bigger overhaul than I expected. Started on a Framer template, ran into enough CMS wiring friction that I eventually scrapped it and rebuilt in Astro. The Framer MCP kept timing out on reads, the CMS list wouldn’t nest inside the slider component, and the template left behind a bunch of affiliate artifacts I kept tripping over. The Astro version is cleaner and I have actual control over the markup. The tradeoff is that visual editing is gone, but I wasn’t really using it.

The independent study wraps up around now, which means the Layered Logic documentation sprint is also closing out. Spent a fair amount of time this period writing up n8n workflow docs, 26 workflows, 338 markdown files, node-by-node breakdowns with credentials redacted. Tedious but useful: it forced me to actually read flows I’d half-forgotten building.

Next physical step for the mirror is getting the frame sections printed and doing a test assembly with the cut acrylic.