Real-time worlds that ship. I take architecture from a raw 3ds Max file all the way to a C++ pixel-streaming product running in a browser — building the runtime, the content pipeline, the interface and the optimization that makes it hold up in production. Equal parts engineer and artist: I write the systems and I light the scene. Real-time світи, які доходять до релізу. Я веду архітектуру від сирого файлу в 3ds Max до C++ pixel-streaming продукту в браузері — будую рантайм, контент-пайплайн, інтерфейс і оптимізацію, завдяки якій усе тримається в продакшені. Наполовину інженер, наполовину художник: пишу системи — і сам ставлю світло.
Note: this page shows personal, non-NDA work only. My commercial production work — interactive real-estate tours, configurators and pixel-streaming products — is covered by NDAs, so it is described at the architecture level in the case studies, and I'm glad to go deeper in an interview. Примітка: на цій сторінці — лише особисті роботи, не обмежені NDA. Комерційна продакшн-робота — інтерактивні тури, конфігуратори, pixel-streaming продукти — захищена NDA, тому описана на рівні архітектури в кейсах; детальніше охоче розповім на співбесіді.
The programming and tech-art techniques I work with day to day in Unreal. Техніки програмування і technical art, з якими я щодня працюю в Unreal.
Typed C++ across actors, components and subsystems; custom plugins organized into runtime / editor modules; data-driven config through Data Assets so behavior is set, not hard-coded. Reflection bridges where Blueprints and C++ meet. Типізований C++ на рівні акторів, компонентів і сабсистем; власні плагіни, розбиті на runtime / editor модулі; data-driven конфігурація через Data Assets, тож поведінка задається, а не хардкодиться. Reflection-мости там, де сходяться Blueprints і C++.
Component-based interaction systems, data-driven content (unit cards, pricing, floor plans), time-of-day systems, scene-state save/load with undo, dialogue & quest logic — clean C++ ↔ Blueprint boundaries. Компонентні системи взаємодії, data-driven контент (картки об’єктів, ціни, плани), система часу доби, збереження та відновлення стану сцени з undo, логіка діалогів і квестів — чіткі межі між C++ і Blueprints.
Widget systems adapted for VR headsets, touchscreens and exhibition setups; runtime photo mode — camera (FOV/DOF), post-process (grain, chromatic aberration, vignette, white balance) and LUT presets from UI; backbuffer capture; input-agnostic interaction logic. Віджет-системи під VR-шоломи, сенсорні екрани та виставкові стенди; фото-режим у рантаймі — камера (FOV/DOF), пост-процес (зерно, аберація, віньєтка, баланс білого) та LUT-пресети з інтерфейсу; знімок з бекбуфера; input-агностична логіка взаємодій.
Digital-human setup and integration: MetaHuman characters driven through Live Link (facial and body capture), animation retargeting and Sequencer — real-time believable characters inside archviz and presentation scenes. Налаштування та інтеграція цифрових людей: MetaHuman-персонажі через Live Link (захоплення міміки й тіла), ретаргетинг анімації та Sequencer — правдоподібні real-time персонажі в archviz і презентаційних сценах.
In-engine cinematics with Sequencer — camera choreography, lighting and event tracks; Animation Blueprints and state machines; camera transitions and cutscenes wired into interactive flows. In-engine синематики в Sequencer — хореографія камери, треки світла й подій; Animation Blueprints і машини станів; переходи камери та катсцени, вбудовані в інтерактивні сценарії.
Cross-headset VR through OpenXR (Quest, PC VR) — one build path, no per-vendor code; comfort-first smooth locomotion, physics-based prop interaction, hand/controller input, and standalone-headset performance budgets. Кросплатформний VR через OpenXR (Quest, PC VR) — один шлях збірки, без коду під кожного вендора; плавне переміщення з пріоритетом комфорту, фізична взаємодія з предметами, ввід рук/контролерів і бюджети продуктивності автономного шолома.
Master materials with instanced parameters across whole scenes, post-process materials, Nanite and Lumen setup, interior/exterior lighting for archviz — layered natural + artificial light, reflection tuning. Майстер-матеріали з параметрами в інстансах на цілу сцену, пост-процес матеріали, налаштування Nanite і Lumen, освітлення інтер’єрів та екстер’єрів — комбінація природного і штучного світла, тюнінг відбиттів.
Niagara systems for environmental effects, animated UI widgets, transitions and interactive feedback; GPU/CPU emitter budgets tuned for real-time and VR. Niagara-системи для ефектів оточення, анімованих UI-віджетів, переходів та інтерактивного фідбеку; бюджети GPU/CPU-емітерів під real-time і VR.
Houdini for RBD/destruction, simulations and procedural geometry (VEX); HDA workflows and Houdini Engine live-cook into UE; procedural content brought into the engine pipeline as reusable tools. Houdini для RBD/руйнування, симуляцій і процедурної геометрії (VEX); HDA-воркфлоу і live-cook через Houdini Engine у UE; процедурний контент, інтегрований у пайплайн движка як перевикористовувані інструменти.
Draw-call reduction (instancing, mesh deduplication), texture/lighting budgets, World Partition streaming, Nanite trimming, profiling heavy archviz scenes to stable FPS on desktop, browser streams and standalone Meta Quest. Зменшення draw calls (інстансинг, дедуплікація мешів), бюджети текстур/світла, стрімінг World Partition, підрізання Nanite, профілювання важких archviz-сцен до стабільного FPS на десктопі, у стрімах і на автономному Meta Quest.
UE editor plugins (C++/Python) that automate import-to-package pipelines; 30+ Python optimization scripts (Nanite/texture waves, GC reports); UE Python scene validation; 3ds Max tooling on pymxs/PySide with headless render-farm mode. Плагіни редактора UE (C++/Python), що автоматизують шлях від імпорту до пакування; 30+ Python-скриптів оптимізації (хвилі Nanite/текстур, GC-звіти); валідація сцен через UE Python; інструменти для 3ds Max на pymxs/PySide з headless-режимом для рендер-ферми.
Pixel Streaming in production: a JSON command protocol over the WebRTC DataChannel, runtime .pak download/mount with HTTP caching, glTF runtime loading, UE ↔ web-app state sync, and a self-hosted signalling setup. Pixel Streaming у продакшені: JSON-протокол команд через WebRTC DataChannel, завантаження і монтування .pak у рантаймі з HTTP-кешуванням, glTF на льоту, синхронізація стану UE ↔ веб-застосунок і власний signalling-сервер.
Claude Code + MCP as daily tools: agent-driven coding, automated checks, local LLM stacks — and a solo-shipped AI web product (prismix.dev, ~1,100 tests) as proof the workflow scales. Claude Code + MCP як щоденні інструменти: агентна розробка, автоматичні перевірки, локальні LLM-стеки — і самостійно запущений AI-продукт (prismix.dev, ~1100 тестів) як доказ, що підхід масштабується.
From a raw 3ds Max / CAD file to a real-time product a client opens in a browser — the whole chain, owned end to end. Від сирого файлу 3ds Max / CAD до real-time продукту, який клієнт відкриває в браузері — увесь ланцюг, який я веду сам.
Raw client geometry, as delivered.Сира геометрія клієнта, як є.
pymxs / PySide: scene cleanup, material baking, cameras — plus a headless render-farm mode.pymxs / PySide: чистка сцени, бейк матеріалів, камери — плюс headless-режим для рендер-ферми.
Datasmith import → mesh dedup · Nanite · master-material instancing · scene extracted into Data Assets · RunUAT → cooked .pak.Datasmith-імпорт → dedup мешів · Nanite · інстансинг майстер-матеріалів · сцена в Data Assets · RunUAT → cooked .pak.
Pixel Streaming over WebRTC · ranged .pak download & mount · POI / crowd / traffic systems · save & undo.Pixel Streaming через WebRTC · ranged-завантаження й монтування .pak · системи POI / натовп / трафік · збереження й undo.
A React / TypeScript UI drives the stream: camera, lighting, variants, booking.React / TypeScript інтерфейс керує стрімом: камера, світло, варіанти, бронювання.
Every stage is documented and reusable — a new deployment is configured, not re-coded. Full write-ups in the case studies. Кожен етап задокументований і повторюваний — нове розгортання налаштовується, а не переписується. Повні розбори — у кейсах.
Systems I designed and built — described in generalized form (client names under NDA). Deep dives: case studies. Системи, які я спроєктував і збудував, — описані узагальнено (назви клієнтів під NDA). Детальніше — у кейсах.
Downloads and mounts .pak scenes over HTTP (ranged 64 MB downloads, If-Modified-Since caching, LRU eviction) and exposes full scene control — camera, lighting, actor transforms, saves/undo — via the WebRTC DataChannel. Завантажує і монтує .pak-сцени по HTTP (частинами по 64 МБ, кешування If-Modified-Since, LRU-витіснення) та дає повний контроль над сценою — камера, освітлення, трансформації акторів, збереження з undo — через WebRTC DataChannel.
Case study →Кейс →The gameplay layer of an in-development action game: a Gameplay Ability System framework in C++ — a custom Ability System Component and Attribute Set with replicated combat attributes (health, attack/defense, damage), a damage-execution calculation, gameplay abilities and a custom montage-and-wait task, on an Enhanced Input + Full-Body IK character. Development paused at the start of the full-scale war. Геймплейний шар екшн-гри в розробці: фреймворк на Gameplay Ability System у C++ — власні Ability System Component і Attribute Set з реплікованими бойовими атрибутами (здоров'я, атака/захист, урон), розрахунок damage-execution, здібності та кастомний montage-and-wait таск, на персонажі з Enhanced Input і Full-Body IK. Розробку призупинено з початком повномасштабної війни.
Case study →Кейс →A reusable RPG dialogue and quest system in Blueprint: branching dialogue authored in Data Tables (options, regions, speaker states), several quest objective types (find, destroy, patrol, talk), quest tracking and an inventory UI (items, weight, currency), plus NPC, camera and footstep components — new content is data, not new graphs. Повторювана RPG-система діалогів і квестів на Blueprint: розгалужені діалоги в Data Tables (опції, регіони, стани персонажів), кілька типів квестових цілей (знайти, знищити, патруль, поговорити), трекінг квестів та інвентар-UI (предмети, вага, валюта), плюс компоненти NPC, камери й кроків — новий контент це дані, а не нові графи.
One-run conversion of raw Datasmith exports into cooked, self-contained .pak levels: mesh deduplication, Nanite setup, master-material instancing, scene extraction into Data Assets, headless packaging via RunUAT. Перетворення сирого Datasmith-експорту на готові самодостатні .pak-рівні за один запуск: дедуплікація мешів, налаштування Nanite, заміна матеріалів на інстанси майстер-матеріалів, винесення сцени в Data Assets, headless-пакування через RunUAT.
Case study →Кейс →Artist-facing GUI + headless render-farm mode: scene cleanup, material baking, camera export — the entry point of the 3ds Max → Unreal content pipeline. Графічний інтерфейс для артистів + headless-режим для рендер-ферми: очищення сцени, запікання матеріалів, експорт камер — вхідна точка пайплайна 3ds Max → Unreal.
Case study →Кейс →Browser UIs that drive Unreal remotely: camera and lighting control, scene-state saves, real-time co-viewing, and an apartment-finder SPA with unit filters, 360° tours and a booking flow. Браузерні інтерфейси, що керують Unreal віддалено: контроль камери й освітлення, збереження станів сцени, спільний перегляд у реальному часі, а також SPA для підбору квартир — з фільтрами, 360°-турами та бронюванням.
Case study →Кейс →Beyond streaming — the product systems: a points-of-interest framework, orbit and first-person camera pawns, an ambient crowd system and spline-based traffic, and a lighting manager. Typed C++ modules configured through Data Assets, so a new deployment is set up, not re-coded. Понад стрімінг — продуктові системи: фреймворк точок інтересу, орбітальна камера і камера від першої особи, фонова crowd-система і трафік по сплайнах, менеджер освітлення. Типізовані C++ модулі, налаштовувані через Data Assets, — новий деплой конфігурується, а не переписується.
Case study →Кейс →A suite of Python editor scripts that run "optimization waves" over finished scenes: Nanite trimming, batch texture optimization to budget, Nanite-on-glass fixes, GC/memory reports — repeatable passes with measurable results instead of hand-tuning. Набір Python-скриптів редактора, що проганяють «хвилі оптимізації» по готових сценах: підрізання Nanite, пакетна оптимізація текстур до бюджету, фікси Nanite на склі, GC/memory-звіти — повторювані прогони з вимірюваним результатом замість ручного тюнінгу.
Case study →Кейс →A personal, headset-agnostic VR tour: OpenXR for Quest and PC VR, physics prop interaction, time-of-day and weather control, comfort locomotion — photoreal within standalone limits. Published openly on Behance. Особистий VR-тур, незалежний від шолома: OpenXR для Quest і PC VR, фізична взаємодія з предметами, керування часом доби й погодою, комфортне переміщення — фотореалізм у межах автономного заліза. Опубліковано відкрито на Behance.
Case study →Кейс →Solo-built and shipped: status monitoring for 77 AI services, news aggregation with an affinity ranker, MCP-server directory. 437 pages, 90 API routes, ~1,100 unit tests — developed end-to-end with an AI-agent workflow (Claude Code). Задум, розробка і запуск — повністю мої: моніторинг статусу 77 AI-сервісів, агрегатор новин з ранжуванням за інтересами, каталог MCP-серверів. 437 сторінок, 90 API-роутів, ~1100 юніт-тестів — розроблено від початку до кінця з AI-агентами (Claude Code).
Case study →Кейс →Self-hosted Perforce with streams for all UE work, custom engine builds from UE source, and headless render/cook/package pipelines. Solo, but with a studio's reproducibility — versioned binaries, a rebuildable engine, automated pipelines. Власний Perforce зі стрімами для всієї UE-роботи, збірки движка з сирців UE, headless-пайплайни рендера/куку/пакування. Соло — але з відтворюваністю студії: версійовані бінарники, движок, який можна перезібрати, автоматизовані пайплайни.
Case study →Кейс →Blueprints, C++, UMG / Slate, Material Editor, Niagara, Sequencer, Datasmith, Nanite, Lumen, World Partition, Gameplay Ability System (GAS), Enhanced Input, custom source builds
Actor/component/subsystem design, Gameplay Ability System (replicated attributes, abilities, damage execution), custom plugins (runtime + editor modules), data-driven systems, reflection & Blueprint exposure, memory/GC awareness
UMG, runtime photo mode, input-agnostic interaction (pointer / touch / VR), HUD & menu systems, web-driven UI over the engine
MetaHuman + Live Link, Animation Blueprints, Sequencer cinematics, Control Rig basics, VR via OpenXR (Meta Quest), comfort locomotion, physics interaction
Houdini (RBD / destruction / sims, HDA, VEX), Houdini Engine live-cook, Niagara, procedural workflows, shading, lighting, level design
Nanite / Lumen, master materials, draw-call reduction, texture/lighting budgets, profiling, stable-FPS tuning for desktop / web / standalone VR
Python (UE, pymxs, PySide), headless RunUAT packaging, Datasmith automation, Perforce & Git, CI (GitHub Actions), self-hosted infra
Claude Code, agent-driven development, MCP integration, Python automation, local LLM stacks (Ollama, Docker)
TypeScript, React / Next.js, Astro, WebRTC integration, Cloudflare Pages / Workers / KV, self-rolled auth
3ds Max, V-Ray / Corona, After Effects, Nuke, DaVinci Resolve — modeling, texturing, editing, grading, compositing, tracking, keying
From a 3ds Max scene to a C++ runtime to the web UI on top — I can carry a feature across the whole stack without waiting for hand-offs. Від сцени в 3ds Max до C++ рантайму і веб-інтерфейсу поверх — веду фічу через весь стек, не чекаючи передач між ролями.
An eye trained by years of lighting, materials and post-production — combined with production C++, Blueprints and Python. Rare on either side of the fence. Око, натреноване роками світла, матеріалів і пост-продакшену, — у поєднанні з продакшн C++, Blueprints і Python. Рідкість по обидва боки барикади.
From a C++ course (GameDev.tv, 2025) to a production C++ plugin framework within a year. I say openly what I don't know yet — and then I learn it. Від курсу C++ (GameDev.tv, 2025) до продакшн C++ фреймворку-плагіна за рік. Відкрито кажу, чого ще не знаю, — і потім вивчаю.
Architecture docs, artist manuals and protocol specs are part of my definition of done — 15+ documents shipped with the last platform. Strong written English, async-friendly. Архітектурні документи, мануали для артистів і специфікації протоколів — частина мого "done": 15+ документів разом з останньою платформою. Сильна письмова англійська, комфортний async.
Self-hosted Perforce, custom UE source builds, headless render and packaging pipelines — I don't wait for infrastructure, I build it. Власний Perforce-сервер, збірки UE з сирців, headless-пайплайни рендера й пакування — я не чекаю на інфраструктуру, я її будую.
Agent-driven development every day — backed by tests and reviews. Proof at scale: a solo-shipped product with ~1,100 unit tests gating CI. Агентна розробка щодня — підкріплена тестами й рев'ю. Доказ у масштабі: соло-запущений продукт з ~1100 юніт-тестами в CI.
Not demos — products that run in front of real clients: stable FPS, deterministic scene switching, tagged stable releases. I care about the last 10% that makes something usable, not just impressive. Не демо — продукти, що працюють перед реальними клієнтами: стабільний FPS, детермінований teardown сцен, теговані стабільні релізи. Мені важливі останні 10%, що роблять річ придатною до роботи, а не лише ефектною.
My work is used by non-technical people — buyers, architects, sales managers. I design so a first-time user gets it without a manual, and I've watched what actually converts a viewer into a lead. Моїми продуктами користуються нетехнічні люди — покупці, архітектори, менеджери з продажів. Проєктую так, щоб новачок розібрався без інструкції, і бачив на практиці, що саме перетворює глядача на клієнта.
Years of working between architects, 3D artists, motion designers and developers. I translate between art and engineering because I've done both — and I document so the next person doesn't have to ask. Роки роботи між архітекторами, 3D-артистами, моушн-дизайнерами й розробниками. Перекладаю між артом та інженерією, бо робив і те, й інше, — і документую, щоб наступному не довелося питати.
I'm an Unreal Engine developer and technical artist based in Kyiv. For the last five years Unreal has been the center of my work: I build interactive architectural tours, VR experiences and product configurators, plus the cloud pixel-streaming technology that runs them — working across C++, Blueprints, UMG, Niagara and Python. That's where I'm headed, and where I want to go deeper. Я Unreal Engine розробник і technical artist з Києва. Останні п'ять років Unreal — центр моєї роботи: будую інтерактивні архітектурні тури, VR-досвіди та продуктові конфігуратори, а також хмарну pixel-streaming технологію, що їх запускає, — на C++, Blueprints, UMG, Niagara і Python. Саме сюди я рухаюся і хочу заглиблюватися далі.
I got here the long way, and it's my advantage. Eight years in CGI — starting in post-production and motion design, then interior and exterior visualization — trained an eye most engineers don't have: lighting, materials, composition, timing. That craft is now a plus on top of the engineering, not the job itself. When I optimize a scene or write a shader, I already know what it's supposed to look like. Я прийшов сюди довгим шляхом, і це моя перевага. Вісім років у CGI — почав з пост-продакшену й моушн-дизайну, далі візуалізація інтер'єрів та екстер'єрів — натренували око, якого немає в більшості інженерів: світло, матеріали, композиція, тайминг. Це ремесло тепер плюс поверх інженерії, а не сама робота. Коли я оптимізую сцену чи пишу шейдер, я вже знаю, як воно має виглядати.
I like owning a feature end-to-end — environment and lighting, interaction logic, UI, optimization and the pipeline tooling underneath — and I work the way a good studio does even solo: versioned in Perforce, engine built from source, everything documented. I also ship personal products (prismix.dev) and lean hard on AI-assisted development, with tests to keep it honest. Люблю вести фічу від початку до кінця — оточення й світло, логіка взаємодії, інтерфейс, оптимізація і пайплайн-інструменти під усім цим — і працюю так, як хороша студія, навіть соло: версіювання в Perforce, движок з сирців, усе задокументовано. Також запускаю власні продукти (prismix.dev) і активно використовую AI-розробку, зі страхувальними тестами.
Looking for an Unreal Engine / Technical Artist role, remote — a team where I can go deep on real-time systems and keep growing on the C++ side. Шукаю позицію Unreal Engine / Technical Artist, remote — команду, де можу заглибитися в real-time системи й рости далі на боці C++.