Work / QR3D Host
QR3D Host
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.
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.
- Choose a 3D object or a picture
- Upload it to your own server
- Check how it will stand on the printed card
- Host it: a stable QR identity is created
- Print the card with its QR code and tracking marker
- 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.