📱 AR Wählscheibe – Konzept¶
Status: Planung / Konzeptphase
Datum: März 2026
Zielgruppe: iPhone User (iOS 12+)
🎯 Vision¶
Ein vintage Telefon mit Wählscheibe erscheint als 3D-Objekt in deiner Wohnzimmerwelt – platziert auf dem Tisch vor dir. Du steckst den Finger in ein Loch, drehst die echte Scheibe mit deiner Hand, hebst am Ende den Hörer ab – und dein iPhone ruft wirklich an.
🧩 Kern-Interaktion (User Flow)¶
iPhone aufnehmen
│
▼
"AR starten" tippen
│
▼
Kamera-Bild + 3D-Telefon erscheint auf Oberfläche
│
▼
Finger in Loch der Wählscheibe stecken (Touch/Pinch)
│
▼
Scheibe dreht vorwärts bis Anschlag
│
▼
Loslassen → Scheibe dreht selbst zurück (Fliehkraftregler)
│
▼ (für jede Ziffer wiederholen)
│
▼
Hörer-3D-Objekt anheben (Tap auf Hörer)
│
▼
tel:// → native iPhone Telefon-App öffnet
🛠️ Technologie-Entscheidung¶
Option A – Apple AR Quick Look + USDZ ⭐ EMPFOHLEN¶
| Eigenschaft | Detail |
|---|---|
| Format | .usdz (Universal Scene Description, gezippt) |
| Trigger | <a href="telefon.usdz" rel="ar"> in Safari |
| Interaktion | Über RealityKit Behaviors im USDZ-File |
| Plattform | iOS 12+ / iPadOS 12+ / visionOS 1+ |
| App nötig? | ❌ Nein – läuft direkt in Safari |
| Installation | ❌ Keine |
| Komplexität | ⭐⭐ Mittel |
| Einschränkung | Nur Safari/iOS; kein custom JS in der AR-Session |
Wie es funktioniert: 1. USDZ-Datei mit eingebautem TapGesture auf Wählscheibe 2. Scheiben-Rotation als RealityKit-Animation im Modell 3. Hörer-Tap triggert einen Custom Action Button → öffnet tel: URL 4. Kein Backend nötig – reine Static Web App
Option B – WebXR + Three.js / model-viewer¶
| Eigenschaft | Detail |
|---|---|
| Format | .glb / .gltf |
| Trigger | WebXR immersive-ar Session in Chrome |
| Interaktion | Volles JavaScript (Hit-Test, Hand-Tracking) |
| Plattform | Android Chrome ✅ / iOS Safari ❌ (kein WebXR AR) |
| Komplexität | ⭐⭐⭐⭐ Hoch |
| Einschränkung | iOS Safari unterstützt WebXR AR nicht |
⚠️ Für iPhone-Zielgruppe nicht geeignet – iOS Safari hat kein WebXR AR.
Option C – <model> HTML-Element (visionOS 26 / Zukunft)¶
Apple hat in Safari / visionOS 26 das neue <model>-HTML-Element eingeführt.
→ Noch zu früh für breiten Einsatz, aber interessant für Zukunft.
✅ Gewählte Architektur: Option A (USDZ + Quick Look)¶
Web App (manniphone.pages.dev/ar)
│
├── index.html
│ └── <a href="rotary-phone.usdz" rel="ar">
│ └── AR Button / Banner
│
├── rotary-phone.usdz ← 3D Modell mit Animationen
│ ├── Wählscheibe-Mesh ← animierbar via Behaviors
│ ├── Hörer-Mesh ← Tap-Gesture
│ └── Custom Action → tel: URL callback
│
└── ar-handler.js
└── tel: URL aufbauen aus gewählten Ziffern
🎨 3D-Modell Anforderungen¶
Modell-Quelle¶
- Basis: Vintage Wooden Telephone (z.B. TurboSquid Model 2449584)
- Lizenz prüfen! → Muss
.usdz-Export erlauben (oder Blender-Konvertierung) - Alternative: Eigenes Modell in Blender erstellen (Open Source)
- Alternative: Reality Composer (Apple, kostenlos) für einfaches Modell
Technische Specs für USDZ¶
Format: .usdz (USDA + Texturen, gezippt)
Polygone: max. 50.000 (Mobile-optimiert)
Texturen: PBR (Albedo, Roughness, Normal) – max. 2K
Animationen:
- dial_forward_{1-0} (Scheibe vorwärts, pro Ziffer)
- dial_return (Scheibe zurück)
- receiver_lift (Hörer abheben)
Behaviors:
- TapGesture auf .hole_1 bis .hole_0 → dial_forward_N
- TapGesture auf .receiver → Custom Action → tel:
Größe: ~20cm × 15cm in RealWorld-Units
📐 Interaktions-Konzept im Detail¶
Finger-in-Loch Simulation¶
Da echter Finger-Tracking in Quick Look nicht verfügbar ist, wird vereinfacht:
Tap auf Loch-Bereich
│
▼
RealityKit Behavior: dial_forward_N Animation (0.5s)
│
▼
Animation endet → dial_return Animation (0.9s, automatisch)
│
▼
Custom Action Event → JS empfängt Ziffer
│
▼
Ziffer wird in tel:-String aufgebaut
Hörer abheben → Anruf auslösen¶
Tap auf Hörer-3D-Objekt
│
▼
receiver_lift Animation (0.3s)
│
▼
Quick Look Custom Action:
checkoutTitle = "Anrufen"
callToAction = "📞 Jetzt anrufen"
│
▼
User tippt Button → window.location = "tel:+49XXXXXXXXX"
Limit: Quick Look kann keine Ziffer-Daten direkt zurückgeben.
Lösung: Nummer wird VOR dem AR-Start auf der Web-Seite gewählt (2-Stufen-Flow).
🔄 Realistischer 2-Stufen User-Flow¶
STUFE 1: Nummer wählen (bestehende Web-App)
─────────────────────────────────────────────
User öffnet manniphone.pages.dev
→ Wählt Nummer wie bisher (2D Rotary-Interface)
→ Display zeigt: "0176 12345678"
→ Button: "☎️ In AR anrufen"
STUFE 2: AR-Visualisierung + Anruf
─────────────────────────────────────────────
Safari öffnet USDZ mit ?number=017612345678
→ Telefon erscheint in AR auf dem Tisch
→ Display am 3D-Telefon zeigt die Nummer
→ Hörer liegt auf
→ User tippt auf Hörer
→ Quick Look Custom Action Button erscheint
→ "📞 017612345678 anrufen" → tel: URI
📦 Benötigte Ressourcen / Aufwand¶
| Task | Tool | Aufwand |
|---|---|---|
| 3D-Modell beschaffen/erstellen | Blender / TurboSquid | 4-8h |
| USDZ-Konvertierung | usdz_converter (Xcode) oder Blender-Plugin | 2h |
| Animations-Rigging | Reality Composer / Blender | 4h |
| Behaviors (Tap-Gesten) | Reality Composer | 2h |
| Web-Integration (HTML) | Vanilla JS | 1h |
| Custom Action (Hörer→tel:) | USDZ URL-Parameter | 1h |
| Testing auf iPhone | Safari iOS | laufend |
| Gesamt | ~14-18h |
🚀 Nächste Schritte (wenn Konzept freigegeben)¶
- [ ] STEP 1 – 3D-Modell Lizenz klären / Blender-Modell erstellen
- [ ] STEP 2 – Blender → USDZ Export testen (mit Xcode
usdz_converter) - [ ] STEP 3 – Reality Composer: Tap-Behaviors auf Wählscheibe definieren
- [ ] STEP 4 – Custom Action für Hörer (tel: URI) konfigurieren
- [ ] STEP 5 – Web-Seite: "In AR anrufen" Button mit Nummer-Übergabe
- [ ] STEP 6 – Test auf iPhone 12+ (min. iOS 15 empfohlen)
- [ ] STEP 7 – Deploy auf
manniphone.pages.dev/ar
⚠️ Limitierungen & Risiken¶
| Risiko | Beschreibung | Mitigation |
|---|---|---|
| Nur iOS/Safari | WebXR AR funktioniert nicht in iOS Safari | Quick Look (USDZ) nutzen → nativer iOS-Support |
| Keine echte Hand-Interaktion | Quick Look hat kein freies Hand-Tracking | Tap-Gesten als Vereinfachung |
| Nummer-Übergabe | USDZ kennt keine dynamischen Variablen | 2-Stufen-Flow (Nummer vorher eingeben) |
| Modell-Lizenz | TurboSquid-Modelle ≠ immer USDZ-kompatibel | Eigenes Blender-Modell oder CC-Lizenz |
| Dateigröße | USDZ-Dateien können 10-50MB groß sein | LOD (Level of Detail) + Textur-Komprimierung |
🔗 Relevante Ressourcen¶
| Ressource | URL |
|---|---|
| Apple AR Quick Look Doku | https://developer.apple.com/augmented-reality/quick-look/ |
| USDZ Spec | https://openusd.org/release/spec_usdz.html |
| Reality Composer (kostenlos) | Xcode → Window → Reality Composer |
| Blender USDZ Export | https://docs.blender.org/manual/en/latest/files/import_export/usd.html |
| Apple Custom Actions in Quick Look | https://developer.apple.com/documentation/arkit/adding-custom-actions-to-quick-look-ar-experiences |
| model-viewer Web Component | https://modelviewer.dev |
Fazit: Machbar als Pure Web App ohne App-Store, nur mit Safari iOS.
Kernlimitation: Echtes Finger-Tracking nicht möglich → Tap-Vereinfachung.
Empfehlung: 2-Stufen-Flow (Nummer wählen → AR-Visualisierung → Anrufen).