A museum instead of a portfolio, fifteen rooms on WebGL
I treated the portfolio as a building, and the building turned out to have an attendant you should not be rude to. An illusion room, a planetarium, a visitors’ book and 46 achievements.
There is a museum on this site. Not a metaphorical one: fifteen rooms you can walk through, exhibits, wall labels, a visitors’ book by the exit, and an attendant who does not take rudeness well.
I am Alexander Chernov and I draw fintech interfaces for a living. It started as an experiment with one question. What happens if you treat a portfolio as a building instead of a list?
Why a museum#
People flip through portfolio cases in about forty seconds. Space works on a different part of the brain: a visitor walks, stops, comes back. Spatial memory beats list memory, and “that dark room with the trading screens” sticks better than “third case from the top”. The museum also answers the question of what this person can do in 3D and interaction. It answers by existing.

How it is built#
No engine. Plain Three.js on WebGL.
Static batching came first. The walls, baseboards and frames of every room are merged into a few large meshes. Draw calls dropped by an order of magnitude, and the museum now runs on integrated graphics.
The illusion room is an homage to Superliminal, with perspective tricks where an exhibit changes size depending on where you look at it from. The planetarium is a dome with a shader sky. You sit on a bench and watch constellations made of my project icons turn overhead.
There are 46 achievements, from “read every wall label” to some genuinely secret ones. Gamification here does the job of navigation. Achievements pull people into rooms they would never have walked into on their own.

What went wrong#
SwiftShader, mostly. On machines without a GPU the browser falls back to a software rasterizer, and what flies on a graphics card turns into a slide show. I had to write a detector and a reduced detail mode (?lite) that kills shadows and half the lights.
The second problem was sound. Browsers will not play audio before the first click, so the museum greets you in silence and starts the ambient track only after you take the entrance ticket.
What came of it#
An average session in the museum runs about six times longer than on the portfolio page. That number is my own analytics on a small sample, and I would not put it in a case study. People write in the visitors’ book by the exit, and the entries are kept. A few found the duck and wrote to me about it personally.
A portfolio answers the question of what a person has made. A museum answers the question of how a person thinks.
The entrance is through here. The ticket is free. The interface is in Russian, the controls are WASD to walk and mouse to look, and it is desktop only. The duck is hidden fairly.
Next in the journal
My display typeface does not speak my language