Work / QR3D Host

QR3D Host

Partial 2026

Upload a 3D model or a picture to your own server, print one QR code, and see it standing on the card through a phone camera.

Recorded from the running app: choose, upload, preview on the card, host, QR, phone. The AR view itself needs a phone camera and is not filmed.

What it does

The front page is one guided journey. Choose a 3D object or a picture, upload it, check how it will stand on the printed card, and host it. The server stores the file, creates a stable QR identity and a printable card that carries the tracking marker. Scanning opens the secure AR page, which loads the same hosted file, and the code can be re-pointed later without reprinting.

How it runs

  1. Choose a 3D object or a picture
  2. Upload it to your own server
  3. Check how it will stand on the printed card
  4. Host it: a stable QR identity is created
  5. Print the card with its QR code and tracking marker
  6. Scan on a phone and see it standing on the card

Proved in desktop Chrome with a synthetic camera; anchoring on a physical phone is still a manual check.

How it works

QR3D Host separates a printed code’s identity from its destination. Uploads are checked before anything is written: a GLB must carry a valid binary glTF header whose declared length matches the file, a text glTF may not reference external files, and an existing name is never overwritten silently. The preview places the object on a model of the card, and pictures keep their chosen orientation in AR. Phone cameras need a secure context, so a separate HTTPS listener with a generated local certificate serves the AR page. The earlier dashboard, interactive modules and a multiplayer arena live on in a library behind the journey.

Skills shown

Cloud, servers & networking
A separate HTTPS listener with a generated certificate serves the AR page, because phone cameras need a secure context.
Security
Uploads may not reference external files or silently overwrite existing ones, and hosted files are backed up before any write.
APIs & backend
An Express server that validates GLB and glTF uploads byte by byte before anything is written.
Frontend, 3D & graphics
A Three.js preview of the object on its printed card, and an AR.js camera view.

Worth knowing

  • Uploads are validated before anything is written: a GLB’s header and declared length must match the file.
  • A printed code keeps its identity; what it opens can be changed later without reprinting.
  • The printable card carries both the QR code and the square marker the camera anchors to.
  • Backup-before-write and soft archive mean hosted files are never silently deleted.