Senya Pugach

is a software developer with experience in 3D web programming and a passion for research, science, and game development

Moscow, Russia

mail telegram github instagram linkedin artlebedev


Professional skills



Featured projects

Krono: 3D engine & editor

I designed and developed a batteries-included 3D engine that is used to make mesmerising audio-visual web experiences. It has brought down our development time for 3D websites from one year to two months.

Krono comes with built-in support for editing visual effects and audio, doing post-processing, and working with modern model / texture formats and their compressors / decoders / optimisers. The developer experience is very streamlined, with only 10 lines being required to display a model for the browser. Crucially, it can also be used by non-technical designers through a web-based editor that allows for adjusting the visual appearance of the render without touching the code.


I developed an immersive site for Aquarium, legendary founders of the Russian Rock stage. As viewers scroll through the site, they are transported through a human created and randomly generated experience that showcase’s Aquarium’s rich history and musical collection.

While developing this narrative, I had to learn 3D rendering at the advanced level. I wrote shaders, built an extensible 3D rendering architecture (which would become Krono), created tools for designers working on the same project, and constantly solved interesting, complex problems.

Immersion into Rukami

A registration page for the children's festival “Rukami”. An unusual and vivid immersion into the world of the festival.

Thanks to the use of Krono, project creation time was reduced from one year to three months, because of this the profitability of this project for the company was much higher than usual.

Made with Krono.

Sotbi AR iOS app

An iOS augmented reality app demonstrates the oddity of corporate workdays.

Sotbi's are guys who, forcing debtors to pay back multibillion-rubles debts. So, in this AR game your goal is find the five hiding debtors.


Moscow Metro Map 4.0

For the Moscow metro map I created various tools to facilitate the designer's work on the map, and also developed scripts to automate the creation of the map in different formats and its translation into different languages. My work greatly reduced the time it took to create the map and saved the company money.

Sotbi app announcement

For Sotbi's AR announcement, I pulled the model out of Unity, wrote a web editor to draw the camera's flight path (on the next project, I learned that it turns out to be easier to do in the 3d editor) and patch FBXLoader from three.js using pako.js instead of zlib.js because the model was too slow to unpack on budget Androids.


A heartbreaking game that tells the story of a draftee who comes back home to his mother. I made this in 48 hours for Ludum Dare #39. This game saved me from the army.


Moscow International Medical Cluster website

MIMC is an unprecedented international medical project in Russia. I was the lead developer of it's site: I guided and organized the other developers, developed the main visual element of the project's identity — a mesmerizingly lively spot, made an editor for quick spot customization, and made a terrific 3D.

DEATH³: raytraced shooter that fits in 7kb

I wrote a simple shooter with realtime raytracing that fits in only 7 kilobytes during js13kGames contest. Everything fits in this 7 kb: code, graphics and audio.


use your knife to kill those who never cry

I made a raycasting engine from scratch during summer 2019 and wrote this game using it during one of the Ludum Dare weekends.

BasisTextureLoader in three.js: support repeated loading of same texture

On Friday, the first day after the release of the Aquarium, I encountered a lack of video memory on many devices and the page crashes. I had three days before site will be promoted to the large audience to somehow solve this problem. It took me one weekend to learn about the existence of GPU compressed textures, learn about Basis Universal textures and write a patch for the BasisTextureLoader in three.js, as well as to finish the GLTF model loader so that he could understand .basis textures.

Not released yet WebGL generative design tool

It was created for one of the Art. Lebedev studio client to accelerate, simplify and unify the design creation by the client's design department. Also, the tool eliminates bad design creation, improving the overall quality of the client's design system.

2D editor for creating fast web animations

Scroll down and type “upisfree” for the editor. Entities dragging, cloning and scaling.


Education renderer from the scratch

Educational renderer from the scratch to understand how renderers actually works.

$500 brain-computer interface: letters typing only with thoughts

In high school, I became interested in how the human brain works and in two weeks I built a brain-computer interface that allowed me to type letters using my brain signals only.
I used OpenBCI as EEG and P300 speller from OpenViBE. I patched OpenViBE drivers to make it compatible with OpenBCI, train P300 speller on my brain, translate speller to Russian, printed a plastic helmet in another city, made the power supply from old Nokia, fused up everything, and after that I typed my first words using brain only.
Also, experimenting, I was one of the first in the world who combined VR and BCI into one product.


childhood memories from 1937

The Great Terror has affected every family in Soviet Union: my great-grandfather was shot, great-great-grandmother was imprisoned and others were dispossessed.


“My Way” Windows Phone app

A Windows Phone application that allows residents of Omsk (this is in Siberia) to find out when a bus will arrive at their stop. It is especially useful in winter to avoid freezing to death at the bus stop. 10 000 downloads. Also, there is AR in this app, in 2014.

download sources

wish you were here

a game about a man who gave everything to God to have his love with him

My girlfriend got stuck in another country during the COVID-19 pandemic and I really missed her.


Angry Birds for

Commercial game for, Angry Birds clone. I programmed a game with destructible environment, level editor, mobile support, different shell types, incredible sounds and a rating server. Also I coordinated work between designers.


Emoji translator

Test task to Art. Lebedev. Translate from 8 languages to emojies. Very fast, multithreading, English & Russian stemming, emoji variants for the word, working in non-supporting emoji environments (like Windows XP), custom speedy data format.



a game about Kazakhstan's attack on Omsk

First Unity experience.

Mario clone for

Based on Full Screen Mario. I made it work on mobiles, add touch controls, rewrite audio engine from <audio> to Web Audio API, made a rating server and add new textures (it was a problem because of the custom strange texture format), all in one week. terminal player

Watch coubs in your terminal.

Art. Lebedev's own mini Soundcloud. I patched hls.js, setup nginx and wrote audio converting scripts and instructions how to use it without me.

medik: Windows Store CLI

Test task for a internship in LoyaltyPlant. I was invited there because of my winning at one of the main school scientific conferences in Russia. At 2016 there were no CLI for Windows Store but “LoyaltyPlant” had thousands of apps which they needed to update.

Three commercial medical Telegram bots

Three Telegram bots for doctors in Moscow Oblast to automate some aspects of their work and for getting rid of paper routine. Commercial project.

HeavyCraft: Minecraft server that I had at 14 y.o.

I had a Minecraft server called “HeavyCraft” in 2013 when I was 14 y.o. It had a site with shop where you could buy blocks and items for real money, custom launcher & mods build, guns, cars and even planes. I wanted to create a first person shooter plus Minecraft. And this is was first Minecraft server in the world which had a Russian Ruble sign in game (because I redraw $ to ₽ and Ruble doesn't had official sign in that times).