3D WebAssembly Interactive Terminal Portfolio
Author: Matthew Nader Fawzy | Communication & Information Engineer
WebAssembly (WASM)
C / Flex & Bison
Three.js
React 19
CSS3D
WebGL
Overview
A high-fidelity retro CRT monitor portfolio running inside a real-time 3D environment. This engineering project demonstrates how to bridge high-performance 3D graphics (Three.js), DOM-based accessibility (CSS3D & xterm.js), and low-level systems programming (C compiled to WebAssembly).
Architectural Highlights
- Custom C/WASM Compiler: Features a full Lexer (Flex) and Parser (Bison) written in C, compiled with Emscripten into WebAssembly for sub-millisecond command execution.
- Hybrid Rendering Pipeline: Synchronously renders WebGL (GLTF model, studio lighting, dust particles) and CSS3D (DOM terminal), allowing full text selection and clickable links inside 3D space.
- Real-time Screen Occlusion: Employs Moore-Neighbor boundary tracing and Ramer-Douglas-Peucker polygon reduction to generate dynamic CSS
clip-pathmasks matching the curved physical bezel of the CRT tube.
Source Code & Verification
Live Demo: https://matthew-nader.web.app/
GitHub Repository: github.com/MatthewNader2/Portfolio