NeRF-Based 3D Reconstruction Development
You have re-shot an object from 50 angles, but after photogrammetry you get a model with holes and blurry textures. Standard algorithms fail on complex geometry and glossy surfaces. NeRF solves this by encoding the scene into neural network weights — no mesh, no skepticism about reflections. We develop such systems turnkey. Our portfolio includes projects from artifact reconstruction to VR tours of architectural objects. Over 10 years of experience. We guarantee transparent results: PSNR > 30 dB on test views. Recently, we reconstructed an interior hall for a client — 200 photos, indoor scene 20×15 m. We used Mip-NeRF 360 on A100 (4 hours training). Got a mesh with 2 mm point detail. Result: a VR tour with realistic lighting. Typical problems — low image quality, uneven lighting, dynamic objects (people, shadows). We know how to bypass them: masking, HDR shooting, synthesis of missing angles.
How to choose the method? Instant-NGP vs Nerfacto vs Mip-NeRF 360
Instant-NGP is 6x faster than Nerfacto, but Nerfacto gives better detail on indoor scenes. For outdoor scenes with a large depth range, Mip-NeRF 360 is the number one choice. Method comparison:
| Method | Strength | Training Time |
|---|---|---|
| NeRF (original) | Academic reference | 1–2 days |
| Instant-NGP | Speed: 5 minutes | 5–15 min |
| Mip-NeRF 360 | Quality: outdoor scenes | 2–4 hours |
| Nerfacto | Balance | 30–60 min |
| 3D Gaussian Splatting | Real-time rendering | 30–60 min |
Nerfstudio: modern framework
# Installation and run via nerfstudio # pip install nerfstudio from nerfstudio.configs.method_configs import method_configs from nerfstudio.engine.trainer import TrainerConfig # Method selection config = method_configs['nerfacto'] # neural context = good balance config.pipeline.model.near_plane = 0.1 config.pipeline.model.far_plane = 1000.0 config.max_num_iterations = 30000 # CLI: # ns-train nerfacto --data /path/to/images # ns-render --load-config outputs/exp/nerfacto/config.yml \ # --traj interpolate --output-path render.mp4 Instant-NGP: fast NeRF
# instant-ngp trains in minutes thanks to hash grid encoding # Python binding: import pyngp testbed = pyngp.Testbed(pyngp.TestbedMode.Nerf) testbed.load_training_data('transforms.json') # COLMAP/nerfstudio format testbed.nerf.training.near_distance = 0.01 testbed.train(max_iterations=5000) # Synthesis of a new viewpoint testbed.camera_matrix = look_at(eye=[0, 0, 2], target=[0, 0, 0]) frame = testbed.render(width=1920, height=1080, spp=8) Data Preparation: COLMAP preprocessing
NeRF requires accurate camera poses. The standard path is COLMAP SfM:
# From photos → poses in nerfstudio format ns-process-data images \ --data ./photos \ --output-dir ./processed \ --sfm-tool colmap \ --matching-method exhaustive transforms.json — the output file with camera intrinsics and transformation matrices for each frame.
What to do if the scene contains dynamic objects?
Dynamic objects (people, cars) — standard NeRF does not work with them. Solution: dynamic masking (MaskNeRF) or decomposition into s-t time field (D-NeRF). For scenes with motion, we apply dynamic NeRF variants, which allows obtaining a quality result even with moving elements.
Work process: from photos to ready model
- Task analysis: determine scene type, required number of angles, necessary resolution.
- Data collection and preprocessing: we perform photography with calibrated equipment, COLMAP to extract camera poses.
- Model training: select the optimal method (Nerfacto/Instant-NGP/Mip-NeRF) and architecture, train on GPU (A100/RTX4090).
- Validation: evaluate PSNR, SSIM, LPIPS on test split. Achieve PSNR > 30 dB.
- Geometry export: extract mesh using Marching Cubes with resolution up to 2048³, export to PLY/OBJ.
- Post-processing and integration: retopology, texturing, preparation for VR/AR or web viewer.
- Documentation and training: hand over metrics, run instructions, train your specialist (2-3 days).
Timelines: from 3 weeks for an object to 8 weeks for a complex scene. Contact us — we will assess your project within 1-2 business days.
What is included in the work
- Photogrammetric shooting (on-site or using your data)
- Preprocessing (COLMAP, masking)
- Training and validation of NeRF model
- Mesh export in PLY, OBJ, FBX formats
- Documentation with metrics and reproduction guide
- Training your specialist to work with the model
- Support for 3 months
NeRF limitations and workarounds
Mirrors and transparent glass are difficult for NeRF. Ref-NeRF helps by modeling reflections separately. For city-scale scenes (kilometer range), we use Block-NeRF or Mega-NeRF. All these techniques we adapt to your project.
Exporting 3D geometry
NeRF stores the scene in network weights, but for use in 3D editors a mesh is needed:
# Extract mesh from NeRF via Marching Cubes from nerfstudio.exporter.exporter_utils import generate_point_cloud from nerfstudio.exporter.marching_cubes import generate_mesh_with_multires_marching_cubes mesh = generate_mesh_with_multires_marching_cubes( pipeline=trainer.pipeline, resolution=2048, bounding_box_min=(-2, -2, -2), bounding_box_max=(2, 2, 2), isosurface_threshold=0.0, output_path=Path('output.ply') ) | Application | Timeline |
|---|---|
| Object capture pipeline | 3–4 weeks |
| Indoor scene reconstruction | 5–8 weeks |
| Production NeRF service | 8–14 weeks |
Why order NeRF from us
- 10+ years of experience in computer vision and neural representations
- 5 completed NeRF projects (from museum exhibits to industrial workshops)
- Quality guarantee by metrics (PSNR, LPIPS)
- Proprietary developments: fast Instant-NGP with custom hash grid, Mip-NeRF 360 with adaptive bounding box
- Full cycle: from on-site shooting to delivery of a ready 3D model turnkey
Contact us for a consultation. We will assess your project within 1-2 business days.
According to the original article by Mildenhall et al., NeRF provides unprecedented quality of novel view synthesis. More about the technology on Wikipedia.







