Matěj Černý

Matěj Černý

C++ · Game engines · Embedded · Czech Republic

Projects

CircuitSim screenshot

CircuitSim

C++ github ↗

Master's thesis project. General-purpose hierarchical digital circuit simulator with ImGui, CMake-driven plugin SDK, embedded Lua scripting, and wire-level multi-MCU support. Hosts the ZeroMate (Raspberry Pi Zero emulator) as a plugin, alongside a library of logic gates, displays, sensors, memory chips, and I2C/UART tools.

NiceDay screenshot

NiceDay

C++ / OpenGL github ↗

Passionately built from-scratch: 2D/3D game engine and Terraria clone — custom OpenGL renderer, XML-driven UI, ECS, Lua scripting, spatial audio. Experimental multiplayer branch, dedicated branch for Terrain Erosion Simulator with OpenCL & AVX512.

SSTC sparks

MIDI Tesla Coil (SSTC)

C++ / ATmega328 ▶ video

Half-bridge solid state tesla coil, 230 V mains, 25 cm arc length. MIDI and PS/2 keyboard driven by an ATmega328 with a custom interrupter, driven remotely by optical fibre. Driver uses UCC27322/21 gate drivers through a toroidal transformer. Eats through MOSFETs like butter; oscilloscope would be nice. 2-year hobby project. Presented at ČVUT Praha.

HDD POV Clock

HDD POV Clock

C++ / ATmega328 github ↗ ▶ video

Clock built from a salvaged hard drive. Platter with cut line as a mechanical shutter; revolution timing via IR. ATmega328 controls LED output synchronized to rotation.

BSSHeatMesh

C++ / ESP32 / Assembly

Group project: BLE mesh network of ESP32 sensor nodes forwarding environmental data (BME280, BH1750) to an edge RPi. Personal scope: I2C driver written in ULP assembly so the main CPU never wakes for sensor reads, custom superframe-based time sync protocol with slot negotiation handshake (request/offer/confirm/ping-pong) to keep deeply sleeping nodes coordinated across the mesh.

SSTCInterrupter

C++ / Arduino old github ↗

Arduino firmware driving the SSTC — MIDI parsing, interrupt timing, PWM modulation. Companion library: Pulser — Arduino library for fast and precise PWM generation.

InstructionSet

Java old / abandoned github ↗

Toolchain for a custom 8-bit CPU built on breadboard (+ALU). Designed the ISA, converts Excel-defined instruction table to binary to flash into the CPU control ROM.

Publications

Simple and Efficient Acceleration of the Smallest Enclosing Ball for Large Data Sets in E²

V. Skala, M. Černý, J. Y. Saleh — ICCS 2022, London — Springer LNCS 13350, pp. 720–733 (PDF, DOI)

Algorithm achieving 100×+ speedup on smallest enclosing circle for large 2D point sets via preprocessing-based data reduction. Tested up to 10⁹ points.

Skills

Systems

C++ CMake OpenGL ImGui Lua / sol2 FreeRTOS

Embedded

ATmega328 / Arduino ESP32 / ESP-IDF ULP assembly I2C MIDI Raspberry Pi

Other langs

Java Python Assembly C#

Tooling

Git Visual Studio Linux

Experience & education

Ing. — Distributed Systems

University of West Bohemia, Plzeň

Modular Peripheral System for Raspberry Pi Zero Emulator — design and implementation of CircuitSim.
First year dedicated to AI/ML before switching fields.

Bc. — Computer Science

University of West Bohemia, Plzeň

Neural Networks — Performance Comparison of a PyTorch-based Library in Python and C++.

Java Developer Intern

Aimtec a.s., Plzeň

Backend Java dev. (+Android robot controller)

Cambridge English C1

Cambridge Assessment English