Documentation

Lusion docs

Publish 3D models as WebAR experiences with a QR code. Guests open them in the browser — no app install. This guide covers a full production run from sign-in to phone AR.

Overview

Lusion is a WebAR publishing platform for food and product (object) models.

  1. Sign in and upload a 3D model (GLB for Android/web, USDZ for best iOS).
  2. We store files in Firebase Storage and metadata in Firestore.
  3. Share a QR code or link.
  4. Guests open it in a browser: iOS Quick Look (USDZ), Android Scene Viewer (GLB), or desktop web 3D.

Live site: lusion.app. Health check: /health should return { "status": "healthy" } before demos.

Quality bar

Dish on iPhone 15 Pro, full orbit, publishable GLB ≤ 12 MB, looks good on mid-range Android Scene Viewer. Optional: USDZ ≤ 12 MB for iOS Quick Look.

Prefer smaller files (about 2–6 MB) for marketing and menus — 12 MB is the hard upload limit, not the ideal size.

Quick start (full run)

Printable checklist for your first end-to-end test.

Preflight

  • https://lusion.app/health returns healthy (200)
  • You can open /login and sign in
  • You have a GLB ≤ 12 MB (and ideally USDZ ≤ 12 MB)
  • Optional thumbnail image ≤ 5 MB
  • A phone for AR (Android mid-range and/or iPhone)

Run

  • Sign in at /login (Google or email)
  • Dashboard → Models → New Model (or Upload Model)
  • Fill name, category, optional description/price, capture mode
  • Attach GLB (required for Android bar), optional USDZ + thumbnail
  • Submit and wait for success
  • Open Preview /ar/<id> on desktop
  • Show QR from the model actions; scan on a phone
  • Confirm Analytics shows new events after opens

Pass criteria

  • Guest can open AR without logging in
  • Mid Android Scene Viewer path works with GLB
  • QR and smart AR link work from a second device

Go to upload form →

Sign in

Open /login. Use Continue with Google or email and password.

  • Google uses a popup, or a full-page redirect if popups are blocked.
  • After Firebase sign-in, the app creates a server session via POST /api/auth/session.
  • You should land on the dashboard overview.

New accounts: /register. Passwords must be at least 8 characters.

Upload a model

Path: Dashboard → New Model.

FieldRequiredNotes
NameYesDish or product name
GLB fileFor Android bar≤ 12 MB — Scene Viewer / web
USDZ fileRecommended≤ 12 MB — best iOS Quick Look
ThumbnailNoPNG/JPG/WebP ≤ 5 MB
Capture modeNoTurntable, Orbit, or Other

After upload, the model appears in Models. Status Full AR means both GLB and USDZ are present; Partial means only one format.

Preview & AR

From the models list actions (or open the URLs directly):

  • Preview 3D / AR/ar/<id> web viewer with model-viewer (drag to rotate; AR button on supported devices).
  • Smart AR link /ar-start/<id> detects device and routes to iOS Quick Look, Android Scene Viewer, or the web viewer. Also records an analytics event.

Guests do not need an account. Only the QR or smart link is required.

Public showcase examples (if Storage files exist): /ar/meze, /ar/baklava, /ar/kebap.

QR codes

In the models table, open Show QR code, or open /qr/<id> directly (PNG image).

The QR encodes the smart AR URL (/ar-start/<id>). Print it on menus or show it on a screen for guests to scan.

Analytics

Open Dashboard → Analytics.

Events are stored when guests open smart AR and related tracking endpoints. After scanning your QR a few times, refresh Analytics to see counts per model and recent activity.

API keys

For automation (scripts, CI, partners), create a key under Dashboard → API Keys. Copy it once (lsn_…).

Use on protected routes:

curl -s -H "X-API-Key: lsn_YOUR_KEY" https://lusion.app/api/dashboard/items

# or
curl -s -H "Authorization: Bearer lsn_YOUR_KEY" https://lusion.app/api/dashboard/items

Allowed: list/upload/update/delete your models, analytics. Not allowed: creating or revoking API keys (use the dashboard while signed in).

URL reference

PathPurpose
/Landing & live demo
/loginSign in
/registerCreate account
/dashboardOverview
/dashboard/modelsYour models
/dashboard/models/newUpload
/dashboard/analyticsAR / QR events
/dashboard/keysAPI keys
/dashboard/settingsProfile & sign out
/docsThis documentation
/ar/<id>Web 3D / AR viewer
/ar-start/<id>Smart device AR entry
/qr/<id>QR PNG
/healthBackend health JSON
/privacyPrivacy policy
/tosTerms of service

Prepare models

Create meshes outside Lusion (Polycam, Apple Object Capture, Blender, etc.), then upload.

  • Turntable: object rotates; keep the phone fixed; slow full 360°; good diffuse light.
  • Orbit: dish fixed; walk a full circle with overlapping views.
  • Optimize for web: reduce polygons, shrink textures (512–1K), use Draco when possible so files load quickly on phones.

Capture SOP details for food/object quality live in the product standard above — full orbit and the 12 MB GLB mid-Android bar define a “pass.”

Troubleshooting

SymptomWhat to check
Site loads but login/API failOpen /health — must be healthy. Server env and redeploy if not.
Google works, “session failed”Network tab: POST /api/auth/session should be 200. Server Firebase Admin must match the web project.
Unauthorized domainFirebase Console → Authentication → Authorized domains → add lusion.app
Upload rejected for sizeGLB/USDZ ≤ 12 MB; thumbnail ≤ 5 MB
Android AR weak / failsUpload a GLB, not USDZ-only
iOS AR weakAdd USDZ for Quick Look
Models slow to loadCompress GLB further; large files (10–30 MB) will feel slow on mobile
Analytics emptyOpen /ar-start/<id> on a phone a few times, then refresh Analytics
Showcase 3D missing / 402Firebase billing must be active; demo files must exist in Storage

Ready to publish?

Sign in and upload your first dish or product model.

Need help? lusion@lusion.app · Privacy · Terms