Alex Fajt

Creative TechnologistInteractive 3D DeveloperTechnical Artist

I build things you move through, not things you scroll past — real-time 3D experiences that run in a browser tab.

4live experiences you can open right now
47klines of TypeScript & JSX shipped this year
15.9 msper-frame cost removed by one measured change
72 MB → 143 KBlargest single asset reduction

Profile

Creative technologist who designs and builds real-time interactive experiences for the browser. I own the full path — concept and art direction, WebGL and shader work, front-end architecture, asset pipelines, performance budgets, deployment. Recent work includes an immersive digital exhibition with four interchangeable input modes, one of them opt-in hand tracking, and a commercial 3D experience shipped on the client's own domain. I also build AI products and AI-assisted production workflows.

Selected Interactive Work all four are live

01

ARTFOLIO

Immersive 3D Exhibition · Creative Development & Technical Art — for the artist Julia Ternai

Five physical artworks turned into one continuous real-time environment — with the website conceived as a sixth installation.

  • 4 input modes
  • 29 MB payload
  • 15.9 ms recovered
  • EN / HU / IT
  • Architected a persistent WebGL canvas with a chapter director. Two chapters stay mounted — the current one and the next, preloaded — while only one may write camera, lighting or audio. Shared instanced geometry belongs to the director, not the chapter, which killed a bug that added a full 145-object set on every scroll pass across a chapter boundary.
  • Built four interchangeable input adapters — pointer, touch, keyboard, and opt-in MediaPipe hand tracking in a Web Worker — behind one interaction contract. Adding the fourth changed no shared code. Pinch is fingertip distance over palm size, so it works at any hand size or distance.
  • Wrote the performance instrumentation before optimizing. A p95 probe reporting raw sample counts and validity checks caught three invalid measurements produced by the instrument itself, then measured a 15.9 ms per-frame gain from a material-path change.
  • Cut the payload to 29 MB with a gltf-transform and headless-Blender pipeline — a 72 MB sky to 143 KB, a 16.3 MB rock set to 1.04 MB — and kept scene modules out of the main bundle by isolating tuning constants in import-free files.
  • React
  • TypeScript
  • Three.js
  • R3F
  • GSAP
  • Lenis
  • Web Audio
  • MediaPipe
  • Zustand
  • Vite
Chapter 01 — the work projected on stone · Chapter 02 — the cove and its shells
02

The Vanity Mirror Experience

Commercial Interactive Experience · Concept, Design & Development — for Palla Cintia

A makeup studio you navigate by reaching for objects on the vanity table: no menu, four distinct 3D worlds behind them.

  • Live on the client's domain
  • 4 worlds
  • 1.64 MB → 109 KB
  • Designed diegetic navigation with no nav bar. Hotspots are anchored in image-relative coordinates through a computed cover-transform, so they stay locked to the objects at any aspect ratio and on any device.
  • Built the Services scene as shell-based fur — 24 shell layers with procedural strand cells in a custom shader, where the vertex shader parts the fur tangentially around the cursor with framerate-independent spring-back. It replaced a 241 MB generated mesh whose strand geometry shredded on decimation.
  • Wrote a view-dependent glitter shader for the Portfolio corridor — world-space hash cells, randomized micro-mirror normals, fresnel rim, fog-chunk compatible — with the camera riding a Catmull-Rom curve under scroll and drag control.
  • Shipped it to the client's own domain: per-scene lazy chunks, capped device pixel ratio, reduced-motion fallbacks throughout, separate baked mobile layouts, and a GLB compressed from 1.64 MB to 109 KB.
  • React
  • Three.js
  • R3F
  • GLSL
  • GSAP
  • PixiJS
  • Motion
  • Vite
The vanity · the brush · the palette corridor · the perfume journey
03

Web & Style

Creative Studio World · Concept, Art Direction & Development

One continuous Matrix-inspired world — a garden that dissolves into code, and a five-act scroll-driven architectural film.

  • 158 MB asset → 0
  • 18.4 MB → 6.7 MB
  • 5 acts
  • Injected a code-dissolve fragment chunk into every material in the scene via onBeforeCompile, turning each surface into a glyph field with its silhouette intact before it erodes through a noise-thresholded discard — then warped the sky's own code shader into a drain, so the code itself spirals into the vortex.
  • Reproduced a 158 MB, 2.36-million-triangle asset entirely as a shader. Zero payload, no licensing exposure.
  • Recovered the building's window grid from a single-mesh GLB by extracting and clustering the window material's vertices — nine floors by eight columns — then lit the windows from inside the real openings, so the actual frames and mullions catch the light instead of a decal on the wall.
  • Drove the storm and day-to-night transitions from single shared signals running sky, clouds, city backdrop and lighting rig together, and built in-browser tuning editors whose values are baked into constants and stripped from the shipped bundle.
  • React
  • Three.js
  • R3F
  • GLSL
  • postprocessing
  • GSAP
  • Vite
The choice, and the vortex behind it · the wordmark in freefall
04

The Entropy Field

Real-Time Particle Study · Salvage & Optimization · Personal R&D

5,200 points on a Fibonacci lattice, radius quantised into nine rings so the order reads as structure — then collapsed into chaos. It is also the field behind this page.

  • 9,400 particles
  • 4 uniform writes / frame
  • 5.3 MB → 2.9 MB
  • Salvaged the one scene worth keeping from an abandoned 1,000-line vanilla Three.js prototype and rebuilt it as a self-contained, disposable module — preset-driven, so one build runs both the full-screen study and the lighter hero above.
  • Moved the displacement into the vertex shader. The original rewrote 9,400 particle positions in JavaScript and re-uploaded two buffers every frame, to produce motion that is a pure function of home, target, seed and time. Those are static attributes now — per-frame CPU cost is four uniform writes, and the buffers upload once.
  • Reproduced the original's look rather than re-grading it. The prototype predated both modern colour management and physically-based light units, so a faithful port meant deliberately keeping the legacy linear output path and re-deriving the light intensities — each checked side by side against the old build.
  • Ships progressively. The particle fields are procedural and render on the first frame; the 2.9 MB head fades in whenever it arrives. Nothing on the page waits for a download.
  • Three.js
  • GLSL via onBeforeCompile
  • Vite IIFE lib
  • gltf-transform
The field at rest: particles held on ordered concentric rings around the bust.
The same field collapsed: the rings dissolved into scattered noise.
Order → entropy, driven by one uniform

Core Technologies

Real-time & 3D

Three.js · React Three Fiber · drei · WebGL · applied GLSL — custom ShaderMaterials, onBeforeCompile chunk injection, vertex displacement, projective texture mapping · glTF/GLB · gltf-transform · Blender (headless/CLI) · geometry instancing · interactive camera systems · postprocessing

Front-end & interaction

React · TypeScript · JavaScript · Vite · GSAP + ScrollTrigger · Lenis · Motion · Zustand · HTML/CSS · responsive and touch interaction · reduced-motion fallbacks

Audio, input & creative technology

Web Audio — bus routing, analyser topology · MediaPipe hand tracking in Web Workers · PixiJS · procedural canvas textures · generative AI video and image workflows · prompt and system design · LLM application development

Delivery & tooling

Git · GitHub · Vercel · performance profiling and p95 instrumentation · asset optimization · code splitting and lazy loading · Playwright (headless visual verification) · ffmpeg

Professional Experience

Creative Web Designer & Developer

Web & Style — Independent Practice 2026–Present · webandstyle.com
  • Design and build immersive real-time web experiences end to end: creative direction, interaction and motion systems, WebGL and GLSL, Blender-to-web asset pipelines, responsive and touch behaviour, performance, deployment.
  • Deliver complete client briefs as sole practitioner — most recently a commercial 3D experience shipped on the client's own domain and an immersive exhibition for a visual artist.
  • Maintain reproducible art-direction workflows: live in-browser tuning editors that let non-technical stakeholders set values directly, baked into source constants before release.

Founder & AI Engineer

PUMi 2024–Present · Greece / Remote
  • Built an end-to-end conversational AI SaaS: React/TypeScript front end, Python/FastAPI backend, Claude and OpenAI APIs alongside fine-tuned Qwen and Mistral models.
  • Curated 3,000+ conversations to shape tone and behaviour; implemented Supabase authentication, Stripe billing, token-based freemium entitlements and Railway deployment.

Technical Support Specialist

Apple — TP Greece 2024–2025 · Greece
  • Resolved 400–500+ cases a month across iOS, macOS, iCloud and billing in a high-volume production environment.

Enterprise Support Engineer

Microsoft — Concentrix 2023–2024 · Sofia, Bulgaria
  • Supported enterprise Microsoft 365 customers across Exchange, SharePoint, OAuth authentication and PowerShell diagnostics.

Earlier

2016–2022 · Budapest

Receptionist, Hotel Collect (2019–2022) · Casting Assistant, RTL Group (2016–2018).

Content Creation

Independent Content Creator

YouTube / TikTok / Instagram 2017–Present
  • 106K+ combined audience — TikTok 63K+, YouTube 25K+, Instagram 18K+.
  • 351K+ TikTok views and 732K YouTube impressions between January and March 2026, with a 163K peak-view day.
  • 50+ brand partnerships, including Prada, Marie Claire, Glamour, La Roche-Posay and Temu.

Education, Languages & Details

Education

Performing Arts (Drama & Theatre Arts)
Nemes Nagy Ágnes School of Arts · 2009–2013

Languages

Hungarian — Native
English — Fluent (C2)
Greek — Basic

Additional

Category B driving licence
EU citizen, available for relocation