Mobile Application Development for AR Scene Content Management
Marketing team wants to update 3D product model in AR app without developer involvement. Currently: submit task in Jira → developer replaces file → build → review → publish → 2 weeks. AR CMS solves this: content manager uploads new USDZ model via web interface → app pulls update on next launch → no App Store update.
AR Content Management System Architecture
Server side. AR content CMS is essentially file manager with metadata and CDN. Minimal stack:
- Storage: S3 or equivalent (Cloudflare R2 cheaper) for USDZ/glTF/video
- Database: PostgreSQL with
ar_scenes,ar_objects,ar_triggerstables - API: REST or GraphQL for scene CRUD operations
- CDN: CloudFront or Cloudflare for fast heavy 3D file delivery worldwide
- Admin UI: React or Vue for content manager
AR scene structure in JSON:
{
"sceneId": "product-launch-q4",
"trigger": { "type": "image", "referenceImageUrl": "...", "physicalWidth": 0.2 },
"objects": [
{
"modelUrl": "https://cdn.../product.usdz",
"iosUrl": "https://cdn.../product.usdz",
"androidUrl": "https://cdn.../product.glb",
"position": [0, 0.1, 0],
"scale": [1, 1, 1],
"animation": "idle_loop"
}
],
"publishedAt": "2025-03-01T00:00:00Z",
"expiresAt": "2025-06-01T00:00:00Z"
}
Mobile side. On launch (or schedule), app requests current scene manifest. Compare updatedAt with cached version—if changed, download new assets. Local storage: iOS—FileManager in Caches directory (system clears on space pressure), Android—similarly via getCacheDir(). Critical content—Documents/filesDir (not cleared).
Lazy loading: don't load all models at startup, only after user opens specific AR screen. URLSession.downloadTask with progress for large files (>10 MB).
Versioning and Rollback
Content must be versioned. If new model has issues—quick rollback without publishing update. Implement via version field in manifest: CMS stores version history, API accepts ?version=latest or specific ID. Rollback—change current_version pointer in CMS without deleting files.
A/B test content: different scenes for different userId segments. variant parameter in API response determines which content to load.
Upload Content Validation
Content manager might upload broken USDZ. Need server validation:
- Format check: USDZ = ZIP with
.usdc/.usdainside. Parse header server-side - Size: upload limit (e.g., 50 MB for model)
- Preview: auto-render thumbnail from USDZ via
SceneKiton macOS server or Reality Composer CLI - High polygon warning: count polys via USD Python API
Access Rights and Publishing Workflow
For enterprise clients: roles (viewer, editor, publisher, admin), approval workflow (content created → reviewed by manager → published). Temporal publishing: scene becomes active at scheduled time—for seasonal campaigns without manual activation.
Timeline: basic AR CMS with web interface, CDN, and iOS mobile client—6–10 weeks. Full system with Android, versioning, approval workflow, and view analytics—3–5 months. Cost calculated individually.







