Dominik Brilz Informatik & Technik
Projects

Built, run,
learned from.

Five projects, mostly built from scratch. Each one notes what was actually difficult about it. That says more about the work than a list of technologies would.

01

Platform · live since 2024

PrinTopic

Seven design tools in the browser. Anyone who needs a vase, a nameplate or a bottle opener drags a few sliders and downloads a print-ready STL file, no CAD skills, no install, no account.

A printed spiral vase, made with the vase tool on printopic.de, without any CAD software
A printed spiral vase, made with the vase tool on printopic.de, without any CAD software

The hard part

Real geometry isn't computed in the browser but on the server, in FreeCAD and OpenSCAD. Every slider move still has to show something instantly. So the preview renders client-side in Three.js, while the authoritative file is rendered server-side. Two geometry pipelines that have to agree.

  • 7 tools
  • 3 languages
  • Cost calculator embeddable as an iframe
  • Angular
  • Three.js
  • FastAPI
  • PostgreSQL
  • FreeCAD
  • OpenSCAD
printopic.de ↗
02

Self-hosted RAG system

Knowledge base with citations

Notes stay as Markdown files on disk. A chat agent searches them semantically, answers with citations, and proposes edits that you confirm or discard as a card.

The graph view of the knowledge base: notes and knowledge spaces as a network of nodes and connections
The graph view of the knowledge base: notes and knowledge spaces as a network of nodes and connections

The hard part

A language model allowed to write files is a language model that breaks files. No tool touches the data directly: every one returns a change proposal that only runs after confirmation. Proposed checkboxes are checked against the real file beforehand and dropped if the text doesn't exist exactly. That's where invented tasks get filtered out.

  • Every provider swappable
  • Also runs fully offline
  • No data leaves the system
  • pgvector
  • FastAPI
  • Docker
  • Custom embedding model
03

Experiment, in production

From sentence to printed part

A language model controls Blender through tool calls and builds a printable model from a text description. It pulls technical knowledge from the knowledge base and realistic dimensions from a web search.

The hard part

Models know what a chair looks like, but not how tall it is. Without a detour through a search for real dimensions, parts come out at completely the wrong scale, technically flawless and practically useless.

  • Agent loop with tool calls
  • Also usable as an MCP server
  • Python
  • Blender
  • MCP
  • Azure Queue Storage
04

Distributed pipeline

Photos to 3D scans

A mesh emerges from a series of photos: point cloud, meshing, cleanup, export as a print-ready model. The computation runs on GPU hardware at home, driven through a queue.

The hard part

The GPU sits behind a home connection with no fixed IP. Instead of an incoming port, the worker fetches its own jobs: outbound connections only, no open port, no reverse proxy, no port forwarding on the home router.

  • Outbound connections only
  • No open port
  • COLMAP
  • Meshroom
  • OpenMVS
  • Python
05

Migration, completed

Out of the cloud

A whole platform moved from managed cloud services onto a single own server: container stack, database, reverse proxy, tunnel and automated deployments.

The hard part

Four gigabytes of RAM for the shop, the database, two CAD services, a knowledge base with its own embedding model, and a mail server. Every service has a hard memory limit, otherwise one grabs everything and the rest dies with it. No single port is open to the outside; all traffic runs through an outbound tunnel.

  • From two providers to one server
  • No open port
  • One-click deploys
  • Docker Compose
  • nginx
  • Cloudflare Tunnel
  • GitHub Actions