mivera

See what actually changed in your skin and face.

Photos taken months apart never line up — the light moves, the head turns, the smile changes. mivera rebuilds a neutral 3D face for each sitting, so volume is compared in millimetres and the skin is read next to it.

Up to 5 sittings and 15 photos per run.

Timelinesample
  1. 2026-01-123 angles · one reconstruction
    Baseline
  2. 2026-03-042 angles · one reconstruction
    Cheek +0.8 mm
  3. 2026-06-214 angles · one reconstruction
    Cheek +1.6 mm

Every change is measured against the first sitting.

Four steps from a folder of photos to a number

The hard part is not the model, it is making two photos comparable in the first place.

Group by sitting
Drop photos in and drag the angles that belong together into one sitting. A sitting is one reconstruction; separate sittings never mix.
Line the faces up
Every angle of a sitting is regressed to the same face model, then merged into one neutral mesh. Head pose and expression drop out before anything is measured.
Rebuild the surface
A textured 3D mesh and four renders come out of the same photos, so you can turn the face around instead of squinting at two stills side by side.
Read it back
Each sitting goes to the vision model as the original photo, its render, and the per-region displacement in millimetres — measured against your first sitting.

Built to make two photos comparable

Multi-angle sittingsNeutral-mesh comparisonMillimetre displacementTextured 3D meshTurntable viewerOriginal-quality uploadsChat-style reportDark mode
Pose and expression are not the change
Identity shape is separated from expression and camera
Volume is read off a mesh rebuilt with expression zeroed and pose set to identity, so the same vertex means the same spot on your face in every sitting. A turned head or a wider smile no longer shows up as a gain.
Every angle counts toward the shape
Front and three-quarter views land in one estimate
Angles from a single sitting are combined into one shape rather than picked from, and the merge takes the median so one bad frame cannot drag the result. The sides and back get colour from your real photos.
Your photos stay on your own stack
Same-origin routes, your backend, your database
The browser only ever talks to this app's own /api routes. Reconstruction and the summary run on the backend you point it at, and your account lives in your own Postgres branch.

Bring the photos you already have

A folder of selfies going back a year is enough to start. Group them into sittings and the first run comes back as a written summary with the numbers attached.

Frequently asked questions

What do I need to upload?

Photos of the same face from different points in time. A front-on, well-lit close-up per sitting is what the skin reading needs; extra three-quarter angles only make the shape estimate better.

How many photos can go in one run?

Up to 5 sittings, 15 photos in total, and 5 angles in any one sitting.

Why do I group photos myself instead of going by date?

Phone photos usually carry the file's modification time rather than the moment of capture, so two unrelated sittings from the same day would collapse into one. You decide what belongs together; the date is only a label.

Are my photos resized before upload?

No. The file goes up exactly as it is, EXIF included — orientation matters for face detection, and the browser's canvas throws it away. Downscaling happens on the backend, right before the model sees the image.

Do I need an account?

Yes. The dashboard is behind sign-in, since every run holds a GPU for reconstruction and summarisation. The landing page is open to everyone.

Can I use this commercially?

Not while the 3D path is in play. It depends on SHeaP (CC BY-NC 4.0) and FLAME2020, both of which are limited to non-commercial research use.