This guide will help you quickly set up and use the AR Property Tours feature.
- Laravel application already set up
- Database configured
- Google Model Viewer npm package installed
- Property listings with images
php artisan migrateThis adds AR tour fields to the properties table:
ar_tour_enabled(boolean)ar_tour_settings(json)ar_placement_guide(string)ar_model_scale(float)
- Log into the admin panel (Filament)
- Navigate to Properties
- Edit a property
- Upload a 3D model file (.glb or .gltf)
Still in the property edit form:
- Toggle "Enable AR Tour" to ON
- Set AR Model Scale (default: 1.0, range: 0.1-10)
- 1.0 = original size
- 0.5 = half size
- 2.0 = double size
- Choose AR Placement Guide:
- Floor (recommended for buildings/houses)
- Wall (for wall-mounted features)
- Ceiling (for ceiling fixtures)
- Save the property
- Open the property detail page on your mobile device
- Look for the "AR Available" badge
- Tap the AR button (cube icon) on the 3D model viewer
- Point your camera at a flat surface
- The property appears in augmented reality!
use App\Services\ARTourService;
$arTourService = app(ARTourService::class);
Property::whereHas('media', function($query) {
$query->where('collection_name', '3d_models');
})->each(function($property) use ($arTourService) {
$arTourService->enableARTour($property);
});$arTourService->updateARTourSettings($property, [
'auto_rotate' => true,
'shadow_intensity' => 1.5,
'camera_orbit' => '0deg 90deg 3m'
]);$isAvailable = $property->ar_tour_enabled && $property->hasMedia('3d_models');curl https://yoursite.com/properties/123/ar-tour/configcurl -X POST https://yoursite.com/properties/123/ar-tour/enable \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ar_model_scale": 1.5}'// Find property
$property = Property::find(1);
// Upload 3D model
$property->addMedia('path/to/model.glb')
->toMediaCollection('3d_models');
// Enable AR
$arTourService = app(ARTourService::class);
$arTourService->enableARTour($property, [
'ar_model_scale' => 1.0,
'ar_placement_guide' => 'floor'
]);use App\Services\ARTourService;
$arTourService = app(ARTourService::class);
// Enable AR for all properties with 3D models
Property::has('media')->each(function($property) use ($arTourService) {
if ($property->hasMedia('3d_models')) {
$arTourService->enableARTour($property);
}
});$property->update([
'ar_tour_enabled' => true,
'ar_model_scale' => 2.5, // Larger display
'ar_placement_guide' => 'floor',
'ar_tour_settings' => [
'auto_rotate' => true,
'shadow_intensity' => 2,
'camera_orbit' => '45deg 75deg 2.5m',
'interaction_prompt' => 'auto'
]
]);- Open property detail page
- Verify 3D model loads
- Check for "AR Available" badge
- Test rotation and zoom controls
- Open Safari on iPhone/iPad
- Navigate to property page
- Tap AR button
- Point at floor/surface
- Model should appear in AR
- Open Chrome on Android device
- Navigate to property page
- Tap AR button
- Point at floor/surface
- Model should appear in AR
- ✅ Check
ar_tour_enabledis true - ✅ Verify 3D model is uploaded
- ✅ Confirm device supports AR
- ✅ Check browser compatibility
- ✅ Verify file format (GLB or GLTF only)
- ✅ Check file size (under 10MB recommended)
- ✅ Validate 3D model file integrity
- ✅ Check browser console for errors
- ✅ Reduce 3D model polygon count
- ✅ Compress textures
- ✅ Use smaller file size
- ✅ Reduce ar_model_scale
- iOS: Requires iPhone 6s+ with iOS 12+
- Android: Requires ARCore-compatible device with Android 7.0+
- Check: ARCore devices
- Format: Use GLB (compressed) over GLTF
- Polygons: Keep under 50,000 triangles
- Textures: Use power-of-two sizes (512, 1024, 2048)
- File Size: Target 2-5MB for best performance
- Tools: Use glTF-Pipeline for optimization
- Scale: Start with 1.0, adjust based on property type
- Small items (furniture): 0.5-1.0
- Rooms: 1.0-2.0
- Buildings: 2.0-5.0
- Placement: Use "floor" for most property types
- Auto-rotate: Enable for showcase effect
- Shadow intensity: 1.0 for realistic shadows
- ✅ Add clear instructions on property page
- ✅ Show "AR Available" badge prominently
- ✅ Provide fallback for non-AR devices
- ✅ Test on multiple devices before launch
- ✅ Monitor performance metrics
Public Endpoints:
GET /properties/{id}/ar-tour/config - Get AR configuration
GET /properties/{id}/ar-tour/availability - Check if AR available
Authenticated Endpoints (require login):
POST /properties/{id}/ar-tour/enable - Enable AR tour
POST /properties/{id}/ar-tour/disable - Disable AR tour
PUT /properties/{id}/ar-tour/settings - Update AR settings
- Sketchfab - Search "house", "building", "apartment"
- Poly Pizza - Google Poly alternatives
- Free3D - Architecture section
- TurboSquid - Professional models
- CGTrader - Large marketplace
- Envato Elements - Subscription-based
- Blender - Free 3D modeling software
- SketchUp - Easy architectural modeling
- Tinkercad - Simple online modeler
- 📖 Read AR_TOUR_IMPLEMENTATION.md for detailed documentation
- 🏗️ Review AR_TOUR_ARCHITECTURE.md for system architecture
- 📊 Check AR_TOUR_FINAL_SUMMARY.md for complete implementation details
- Implement AR tour analytics
- Add multiple 3D models per property
- Create guided AR tours with annotations
- Integrate AR measurements
- Enable social sharing of AR experiences
Need help? Check these resources:
- Google Model Viewer: https://modelviewer.dev/
- ARCore: https://developers.google.com/ar
- ARKit: https://developer.apple.com/augmented-reality/
- glTF Format: https://www.khronos.org/gltf/
- Run migration
- Upload 3D model to a property
- Enable AR tour in admin panel
- Set AR model scale
- Choose placement guide
- Test on desktop
- Test on iOS device
- Test on Android device
- Check performance
- Launch to users! 🚀
Ready to go! Your AR Property Tours are now set up and ready to provide immersive experiences to your users.