Krzysztof Duda

hello@krzysztof.studio

i’m a product engineer. i take rough ideas and ship them end to end, from the first interaction to the full-stack system behind it.

currently building Indeks and tools for working with AI agents.

email me ↗see the work ↓

Work by theme

depth models on the phone

on-device ML · React Native · Core ML · TypeGPU

a depth model reads every camera frame on the phone and a shader uses the depth map to take the picture apart. Core ML does the reading, TypeGPU does the drawing.

Indeks first bookmark
Depth camera
01 / 02

Indeks first bookmark

saving the first bookmark dissolves the photo into the app. a depth model reads the photo on the phone, the seam starts at the nearest thing and runs back through the depth, and behind it the canvas turns transparent, so the library is already there underneath.

React NativeTypeGPUCore ML

scroll or swipescroll, drag or use the arrow keys

bookmarks that sort themselves

embeddings · semantic search · Ruby on Rails · Next.js

Indeks is the thing i keep coming back to. every bookmark becomes a vector, so the library is arranged by meaning instead of folders: grouped, tagged, placed on a globe, filed from one sentence.

Indeks × Jev by TypeSafe AI
Indeks - Personal knowledge base and bookmark organizer with visual tagging
Visualizing bookmark clusters on a globe
01 / 03

Indeks × Jev by TypeSafe AI

write one sentence about a collection and Indeks files the whole library into it while you watch. TypeSafe AI’s Jev System One answers every bookmark with a probability instead of a sentence, so above 0.85 it files, below 0.35 it drops, and only the middle comes back to you as a question. 1,132 bookmarks in under 40 seconds.

Ruby on RailsNext.jsJev / TypeSafe AI
open ↗

models that pick instead of write

applied AI · structured LLM output · generative UI · RubyLLM

the model never writes the UI or the CSS. it picks from a closed set, thirteen looks or 28 typed components, and plain code renders the pick. a wrong answer is still a valid screen.

domometr.pl
IMAX Canvas × Jev by TypeSafe AI
Surveyor
Generative UI E-commerce Chat - AI-powered shopping interface built with Vercel AI SDK
01 / 04

domometr.pl

paste an Otodom listing and Domometr tells you whether the price is fair, with a report and a chat that answers in maps, tables and charts. the model never writes UI: it picks from 28 typed components through json-render, streamed over SSE from Rails and RubyLLM.

Ruby on RailsNext.jsRubyLLM
open ↗

old screens in WebGL

WebGL shaders · Web Components · Three.js · accessibility

phosphor, scanlines, curvature, grain. the shader paints over normal markup, so the effect stays paint and the interface underneath stays accessible.

IMAX Canvas - amber phosphor CRT interface built from accessible Web Components and a WebGL2 shader
Alien HUD
Distortion
01 / 03

IMAX Canvas

accessible Web Components dressed up as a late-1990s cinema projector console. plain TypeScript custom elements, no framework, painted by a WebGL2 amber phosphor shader: bloom, scanlines, curvature, grain, flicker.

open ↗