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 тестів) як доказ, що підхід масштабується.
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 →Кейс →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 hooks, custom source builds
Actor/component/subsystem design, 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++.