π₯ Advanced Blender plugin for automated spherical camera placement and rendering
SphereShot is a Blender plugin that performs mathematically optimized spherical camera placement around 3D objects and automatically executes rendering optimized for NeRF, 3D Gaussian Splatting, and photogrammetry. It provides comprehensive functionality corresponding to the latest 3D reconstruction technologies, including high-precision export in COLMAP format, colored point cloud generation, and boundary wall systems.
- Fibonacci Spiral Placement: Mathematically optimized uniform distribution
- Flexible Camera Count Settings: Support for 1 to hundreds of cameras (default: 64)
- Automatic Viewpoint Settings: Precise orientation adjustment towards object center
- High-Resolution Rendering: Support for 4K+ resolution
- Multi-Light Point System: Omnidirectional uniform lighting with 16 lights (default)
- Shadowless Lighting: Clean, shadow-free uniform lighting environment
- Variable Light Control: Adjustable from 0.1W to 10,000W
- Automatic Placement Optimization: Ideal light source placement using Fibonacci spiral
- Automatic Size Calculation: Optimal boundary wall generation based on camera placement
- 3D Boundary Structure: Complete enclosed space with cylindrical walls, floor, and ceiling
- Floating Gaussian Prevention: Background noise suppression in 3D Gaussian Splatting
- Automatic Material Application: Optimized materials specifically for boundary walls
- High-Precision Coordinate Transformation: Accurate Blender β COLMAP coordinate system conversion
- cameras.txt: Accurate internal parameters with SIMPLE_PINHOLE model
- images.txt: High-precision pose information with quaternion-based rotation representation
- points3D.txt: Colored point cloud (up to 50,000 points)
- Color Information Extraction: Color information acquisition from materials and vertex colors
- Surface Sampling: Vertex + random point generation on faces
- Boundary Wall Integration: Integrated point cloud of main object + boundary walls
- Intelligent Distribution: Optimal ratio of 70% object : 30% boundary walls
- Collection Management: Automatic classification of cameras, boundary walls, and lights
- Individual Deletion Functions: Flexible deletion by object type
- Settings Presets: JSON format settings save/load
- Real-time Statistics: Detailed display of created object counts and success rates
- Rendering Time Measurement: Automatic measurement of total and average time
- Progress Visualization: Real-time progress display with emojis
- Coordinate Transformation Verification: Blender β COLMAP coordinate conversion confirmation
- CSV Output: Detailed camera information export for debugging
- Error Handling: Detailed error information and recovery functions
-
File Download
# Download from GitHub wget https://github.com/UpHash-Network/sphereshot.py -
Add to Blender
EditβPreferencesβAdd-ons- Click
Install... - Select
sphereshot.py - Enable
SphereShot
-
Operation Check
- Press
Nkey in 3D Viewport - Confirm that
SphereShottab is displayed
- Press
-
Object Preparation
- Select 3D mesh object - Set origin appropriately - Apply materials (recommended) -
Parameter Settings
Radius : 12.0m (adjust according to object size) Camera Count: 64 (high quality: 100+, preview: 16-32) Resolution : 2048px (4K: 4096, HD: 1920) Point Count: 50,000 points (detailed: 100,000+, lightweight: 10,000) -
Rendering Execution
β Create Cameras β Automatic generation of spherical placement, lights, and boundary walls β‘ Execute Rendering β Automatic rendering from all cameras
| Parameter | Recommended | Usage |
|---|---|---|
| Radius | 5-20m | 2-5 times object distance |
| Camera Count | 64 | NeRF: 100+, 3DGS: 64, Preview: 16-32 |
| Resolution | 2048px | High quality: 4096, Standard: 2048, Lightweight: 1024 |
| Parameter | Recommended | Effect |
|---|---|---|
| Light Intensity | 1000W | Bright: 2000+, Standard: 1000, Dark: 500 |
| Light Count | 16 | Uniform: 32, Standard: 16, Lightweight: 8 |
| Parameter | Recommended | Quality |
|---|---|---|
| Point Count | 50,000 | Ultra-high quality: 100,000+, High quality: 50,000, Standard: 10,000 |
/your_blend_file_directory/renders/
βββ images/ # Rendered images
β βββ SphereCamera_0.png
β βββ SphereCamera_1.png
β βββ ...
β βββ SphereCamera_63.png
βββ sparse/0/ # COLMAP format
β βββ cameras.txt # Camera internal parameters
β βββ images.txt # Camera poses (quaternion)
β βββ points3D.txt # Colored point cloud
βββ camera_info.csv # Debug detailed information
βββ sphere_camera_preset.json # Settings preset (when saved)
# SIMPLE_PINHOLE model
1 SIMPLE_PINHOLE 2048 2048 1433.6 1024.0 1024.0
# IMAGE_ID QW QX QY QZ TX TY TZ CAMERA_ID NAME
1 0.924 0.383 0.000 0.000 -9.2 -3.8 0.0 1 SphereCamera_0.png
# POINT3D_ID X Y Z R G B ERROR
1 1.234 -0.567 2.890 128 64 192 0.0
Import the two generated folders (images, sparse) to PostShot for training
Camera Count : 64-128
Radius : 3x object size
Resolution : 1024-2048px
Point Count : 50,000-100,000 points
Boundary Wall : ON (prevents floating Gaussians)
Camera Count : 100-200
Radius : 2-4x object size
Resolution : 800-1600px
Point Count : 10,000-50,000 points
Boundary Wall : OFF (for background learning)
Camera Count : 50-100
Radius : 2x object size
Resolution : 2048-4096px
Point Count : 100,000 points
Boundary Wall : OFF
Camera Count : 16-32
Radius : Auto setting
Resolution : 512-1024px
Point Count : 5,000-10,000 points
- Blender: 3.0 or higher
- OS: Windows 10, macOS 10.15, Ubuntu 20.04
- Memory: 8GB RAM
- Storage: 10GB (for rendering)
- Blender: 3.6 or higher
- OS: Windows 11, macOS 12+, Ubuntu 22.04
- Memory: 32GB RAM
- GPU: RTX 3060 or higher (CUDA/OptiX support)
- Storage: 50GB SSD
| Setting | Camera Count | Rendering Time (Estimated) |
|---|---|---|
| Lightweight | 16 | 2-5 minutes |
| Standard | 64 | 10-30 minutes |
| High Quality | 128 | 30-60 minutes |
- Cause: Object not selected, output path permissions
- Solution: Select mesh object, check path permissions
- Cause: High resolution Γ many cameras
- Solution: Reduce resolution or camera count
- Cause: Material not set, mesh corrupted
- Solution: Check materials, repair mesh
- Cause: Blender coordinate system settings
- Solution: Apply object rotation and scale
- Console Check:
WindowβToggle System Console - Log Check: Check detailed logs with emojis
- CSV Analysis: Check parameters with
camera_info.csv - Step Execution: Separate camera creation β rendering execution
- π¨ Advanced colored point cloud generation
- π Accurate BlenderβCOLMAP coordinate transformation
- ποΈ Professional management features
- π Detailed debug and statistics features
- β‘ Performance optimization
- Basic spherical camera placement
- COLMAP format output support
MIT License - Please check LICENSE for details
π Please give us a star if this was helpful!
π€ Contributions welcome! We look forward to pull requests and issues.