Severin
Sourdough pizza on Frederiksholms Kanal. Scroll through one day at their table outside, under today's sun, and their own photos land on it.
Open the site (opens in a new tab)restaurantseverin.dk
- Client
- Severin, Nybrogade 30, Copenhagen
- Sector
- Food and drink
- Role
- Design, 3D and development
- Year
- 2026
- Deliverables
- Website in Danish and English, Live terrace scene, Their photos matched to the live table, Menu and opening hours, Map and directions, Sound, An editor the owner can use themselves
- Tech
- three.js · WebGL2 · GLSL · Camera projection · Web Audio · NOAA solar position · OpenStreetMap · Next.js · Sanity
The brief
Severin is a restaurant on the canal across from Slotsholmen: barista coffee and breakfast in the morning, sandwiches at lunch and sourdough pizza at night. The owner takes all the photos. The old site had no opening hours and no menu, and on a phone the photos took seconds to load. So the two things people look up most just weren't there.
The approach
I built the page as one day at their table outside. Scrolling runs the clock from 10:00 to closing, the table gets laid with whatever they serve at that hour, and it's lit by the real sun over Copenhagen on today's date. The owner's photos are good, so the page is built around them: each dish is their photo projected back onto a plate on the table from where they stood. When the camera gets to that spot, the live table and the photo line up and one fades into the other. The owner can keep it up to date from a phone: the opening hours, a closed day with a note to guests, and the menu with its dishes and prices sit in Sanity, a headless CMS, with the editor in Danish. The page reads them when it loads, with no rebuild, and keeps its own copy if Sanity is slow.

01 / 05
One day
Scroll is time. Each section runs through its hours as it passes the middle of the screen, and the clock in the corner keeps up. Coffee, plates and glasses are brought out and cleared as the day goes.

02 / 05
Their photo, on the table
At 11:00 the camera moves to where the owner stood to shoot their breakfast. The plate on the table is their photo projected back onto it, so from there the two line up and the photo fades in over the live table. The cup and the napkin stand where the photo has them.

03 / 05
Today's sun
The sun's position is worked out for Copenhagen and today's date, so the shadows on the cobbles are today's. The parasol goes up for lunch, and each glass throws its own coloured light.

04 / 05
Pizza at night
After sunset the bulbs come on one at a time and the pizza gets the same treatment as breakfast. Hold to light the candle. Turn the sound on anywhere and a jazz trio plays inside, all day.

05 / 05
10–21, every day
The day ends on what a guest needs: the hours, the address, a map, and their food safety rating one tap away.
- Photographs: Severin
- Map: © OpenStreetMap contributors
Under the hood
Measured 18 October 2026, Chrome on a MacBook Pro
- Triangles a frame
- 211,226
- The heaviest frame, every pass counted, in 371 draw calls. WebGL2.
- Download
- 3.6 MB
- 2.3 MB before the first frame, 3.0 MB on a phone.
- Slow phone
- 60 fps
- 95 % of frames under 16.8 ms, on a phone screen with the CPU slowed four times. There the case shows a film of the site.
- If 3D can't run
- A walnut-brown stage in place of the table. The owner's photos and words read the same.