FrameAtlas
Demo catalogueFrames, retailers and prices below are placeholders for development. The try-on, measurement and recommendation engines are real.Why

How the try-on works

Every frame on this site is generated by code from a handful of measurements. There are no photographs, no scanned products, and no 3D models taken from anyone else. This page explains why, and how.

The problem with borrowing models

The obvious way to build a virtual try-on is to use the manufacturer’s own 3D assets, which is what the big retailers do on their own sites. That is not available to an independent comparison site: those models are somebody’s work and somebody’s copyright, and taking them would be both wrong and terminal for the project the moment anyone noticed.

But there is a gap in that logic worth walking through. What retailers publish alongside every frame is its measurements: lens width, bridge, temple length, lens depth. Those are facts about a physical object, printed on the arm of the glasses themselves, and facts about objects are not copyrightable. Combine a measurement set with a shape family (round, square, cat-eye) and you have enough to draw a frame of your own that is the right shape and, more importantly, exactly the right size.

So that is what this is: our own geometry, at the real dimensions. It will never be mistaken for a photograph of a specific designer frame, and it is not trying to be. What it gets right is the thing a photograph on a stranger’s face gets wrong: how big it is on you.

Drawing a frame from numbers

The base curve is a superellipse, a shape that sits on a continuum between a circle and a rectangle depending on one exponent. Push that exponent around, apply a different value to the top half than the bottom, add a flick at the outer corner or a taper at the bottom, and you can walk the whole vocabulary of frame shapes an optician would recognise.

Round
Oval
Rectangle
Square
Cat-eye
Aviator
Browline
Geometric
Butterfly

One lens outline per shape family, all from the same function, all drawn by your browser as this page loaded

Wrap that outline in a rim of the right thickness, add a bridge, nose pads if it is metal, and a pair of arms swept along a curve that bends at the ear, and you have a frame. The same points feed the flat SVG in the catalogue and the extruded 3D mesh in the try-on, which is why the picture you click and the frame that lands on your face are always the same object.

Halleck Vesper (Tortoiseshell)

Getting it onto your face

A face-tracking model running in your browser finds 478 points on your face, about thirty times a second. Ten of those points trace the boundary of each iris, and that is the part that makes this work properly.

A webcam image has no inherent scale. But an adult iris is very close to 11.7mm across in every human face, so measuring it in pixels gives a conversion factor between pixels and millimetres: a ruler, sitting in the middle of the picture. Once you have that, a 52mm frame can be drawn at genuinely 52mm on your face, and the difference between a 48mm frame and a 56mm one is the difference you would feel in the shop.

Position comes from the midpoint of your pupils, which is where a frame’s optical centres belong. Rotation comes from the model’s head-pose matrix, smoothed, with a landmark-based estimate as a backstop when a dropped frame produces a wild value. Splitting it that way means a wobble in the pose never slides the frame off your face. The worst case is a frame that is very slightly mis-angled for a frame or two.

An invisible head-shaped proxy sits behind the lenses writing depth but no colour, so the arms disappear behind your head instead of floating over your cheeks.

What it is honestly not

It is a shape-and-size preview, not a photorealistic render. Colours are approximations of a named finish. Acetate patterns (real tortoiseshell, which is layered and unique to each frame) are simplified to a single tone. Fine details like hinge hardware and engraving are not modelled.

It will tell you, reliably, whether a shape suits you and whether a size fits you. It will not tell you exactly what the material looks like in daylight. For that you still need the frame in your hands, which is why every listing links straight out to a shop with a returns window rather than trying to close the sale here.

And none of it leaves your device

The model runs in WebAssembly in your browser. No video, photo or measurement is uploaded: there is no server to upload it to. The detail is here.

Go and try a frame on →