I build graphics engines from scratch, and explain how they work on YouTube.
Now: Hooking an AI up to my 3D engine so it can direct its own scenes.
About
I'm a second-year Computer Science student at the Technion. I'm interested in what happens underneath the libraries, so I tend to build things from the ground up: a 3D engine where every pixel is computed on the CPU, my own font rasterizer and math typesetter, and a neural network trained with no ML framework.
Away from the keyboard I design parts in SolidWorks and print them: a motorised camera gimbal for the Raspberry Pi, actuators driven by an Arduino, and a self-locking worm-gear drive for a university design project. I like it when software and hardware meet.
I'm now starting a YouTube channel to explain these builds the way I wish they had been explained to me: from first principles, with real numbers on screen. I speak English, Hebrew and Arabic.
Languages
C++ · C · Python · TypeScript · Swift
Graphics
Rasterization · Shading · Anti-aliasing · Font & TeX layout
Hardware
SolidWorks · 3D printing · Arduino · Raspberry Pi · Soldering
A 3D engine written from scratch in C++17, built so an AI can direct the scenes. The AI describes what's in a scene in a tiny language; a solver decides where everything goes, how it moves without colliding and where the camera stands, then a CPU rasterizer draws it live.
lines of C++
16k
lines of C++
automated checks
328
automated checks
graphics libraries
0
graphics libraries
per frame
~1 ms
per frame
Scene language → solver → pixels. The AI writes a .dan file (sphere blue near cube, comet flies_past sun 4s-12s). It never writes a coordinate. Greedy placement, gradient refinement, motion planning and an automatic camera turn that into a layout with no overlaps and nothing hidden.
Every pixel computed on the CPU. Hand-written matrices, barycentric rasterization, z-buffer, Sutherland–Hodgman near-plane clipping, Blinn-Phong shading, supersampled anti-aliasing mixed in linear light, and 1080p mp4 export.
Its own text stack. An outline-font rasterizer (de Casteljau curves, nonzero winding, kerning) and a small TeX engine for fractions, roots and Greek letters. Formulas write themselves in and morph into the next one, like Manim.
Built for an AI in the loop. Live reload on save, plus a .dan.report listing every error and solver problem so the AI can fix its own scene.
A software rasterizer in C++17 with no graphics API and no third-party libraries. It loads an OBJ model, projects it through a perspective camera and fills every triangle into a z-buffer by hand. This is where the video renderer started.
Typed pipeline stages. Model, clip and screen space are separate types, so you can’t hand a vertex to the wrong stage.
Indexed meshes. Shared vertices are stored once and referenced by index, the same way a GPU does it.
One write path.set_if_nearer is the only way to touch a pixel, and it updates colour and depth together, so the two can never disagree.
I'm starting a channel about building things from first principles: rasterizers, layout solvers, typesetting, and the hardware on my desk. No frameworks hiding the interesting part.
ep. 01
Writing a 3D renderer with no graphics library
ep. 02
How a solver places objects so nothing overlaps
ep. 03
Typesetting math from scratch
Education
2025 — now
B.Sc. Computer Science
Technion, Israel Institute of Technology
Second year at the Taub Faculty of Computer Science. Coursework includes Digital Systems & Computer Structure (single-cycle, multi-cycle and pipelined RISC-V in SystemVerilog), Introduction to Systems Programming (C/C++), Linear Algebra, Introduction to Computer Science (C) and Calculus.
C
C++
RISC-V
SystemVerilog
Linux
2026
Graphics & Engineering Design
Mechanical Engineering elective (taken by choice)
Final project, the "Magen HaCarmel" launcher: I designed the tilt sub-assembly, a fully parametric worm and sector-gear drive. A worm drive locks itself, so the locking requirement is met by the geometry alone, with no brake.
SolidWorks
Assemblies
Tolerancing
Hardware builds
Hardware
Two-axis camera gimbal
A motorised 2-axis gimbal for the Raspberry Pi Camera Module 3: mechanical design, motor control and capture logic on the Pi.
Raspberry Pi
CAD
Motors
Hardware
Solenoid lens shutter
Salvaged the solenoid from an IR-cut camera module and built a mechanical filter that opens and closes in sync with image capture.
Salvage
Soldering
Hardware
Linear-actuator prototypes
Modelled, printed and built several actuator designs, driven from an Arduino Uno in C++.
Arduino
C++
3D printing
Contact
Let's talk.
Open to internships, student positions and interesting projects, and always happy to hear video ideas. My inbox is open.