Skip to main content

Quick Start

This guide will help you quickly get started with MipMapEngine SDK. We provide complete example scripts that allow you to run your first 3D reconstruction task in minutes.

๐Ÿ“‹ Prerequisitesโ€‹

Before starting, please ensure you have:

  1. โœ… Installed the SDK (see Installation Guide)
  2. โœ… Activated your license

๐Ÿš€ Quick Experience: Using SDK Example Scriptsโ€‹

The SDK provides complete examples and one-click run scripts in the example directory:

example/
โ”œโ”€โ”€ 1_reconstruct_full_basic.json # Basic reconstruction example
โ”œโ”€โ”€ 2_group_cameras.json # Multi-camera group example
โ”œโ”€โ”€ 3_custom_image_pos.json # Custom position example
โ”œโ”€โ”€ sample-images/ # Sample images
โ”œโ”€โ”€ Step1_Hardware_Check_EN.bat
โ”œโ”€โ”€ Step2_License_Manager_EN.bat
โ”œโ”€โ”€ Step3_Run_Example1_Basic_Drone_Reconstruction_EN.bat
โ”œโ”€โ”€ Step4_Run_Example2_Multi_Camera_Groups_EN.bat
โ””โ”€โ”€ Step5_Custom_Image_Positions_EN.bat

Run Your First Reconstructionโ€‹

Step3_Run_Example1_Basic_Drone_Reconstruction_EN.bat

The script will automatically:

  1. Use sample images from sample-images
  2. Create output directory
  3. Start the 3D reconstruction process
  4. Generate results in multiple formats

๐ŸŽฏ Example Detailsโ€‹

Example 1: Basic Drone Reconstructionโ€‹

This is the simplest way to use, suitable for standard drone aerial images.

Features:

  • โœ… Minimal configuration, ready out-of-the-box, suitable for most applications
  • โœ… Seamlessly compatible with mainstream DJI surveying drones

Configuration File (1_reconstruct_full_basic.json):

{
"working_dir": "./output/reconstruct_full_basic",
"gdal_folder": "../gdal_data",
"input_image_type": 1,
"resolution_level": 3,
"coordinate_system": {
"type": 2,
"label": "WGS 84",
"epsg_code": 4326
},
"image_meta_data": [
{
"id": 1,
"path": "../sample-images/DJI_20250507103417_0124_V.JPG"
},
{
"id": 2,
"path": "../sample-images/DJI_20250507103421_0125_V.JPG"
}
// ... more images
],
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_las": true,
"generate_obj": true,
"generate_geotiff": true
}

Manual Run:

reconstruct_full_engine.exe -reconstruct_type 0 -task_json 1_reconstruct_full_basic.json

Example 2: Multi-Camera Group Reconstructionโ€‹

Suitable for multi-lens oblique cameras or multi-drone collaborative operations.

Step4_Run_Example2_Multi_Camera_Groups_EN.bat

Application Scenarios:

  • ๐Ÿ”ธ Five-lens oblique camera systems
  • ๐Ÿ”ธ Multi-drone collaborative operations
  • ๐Ÿ”ธ Different focal length camera combinations
  • ๐Ÿ”ธ Ground + aerial joint collection

Key Configuration:

{
"image_meta_data": [
{
"id": 1,
"path": "image1.jpg",
"group": "camera_1" // Camera grouping
},
{
"id": 2,
"path": "image2.jpg",
"group": "camera_2" // Different camera group
}
]
}

Example 3: Custom Image Positionsโ€‹

Suitable for high-precision positioning or GPS-less scenarios.

Step5_Custom_Image_Positions_EN.bat

Application Scenarios:

  • ๐Ÿ“ PPK/RTK high-precision positioning data
  • ๐Ÿ“ Indoor or poor GPS signal environments
  • ๐Ÿ“ Need to customize position accuracy weights

Key Configuration:

{
"image_meta_data": [
{
"id": 1,
"path": "image.jpg",
"meta_data": {
"width": 4000,
"height": 3000,
"pos": [114.123456, 22.123456, 100.5], // [Longitude, Latitude, Elevation]
"pos_sigma": [0.03, 0.03, 0.06] // [X accuracy, Y accuracy, Z accuracy] meters
}
}
]
}

Accuracy Reference:

Positioning MethodX/Y Accuracy (m)Z Accuracy (m)Application Scenario
RTK/PPK Fixed Solution0.02-0.050.05-0.10High-precision surveying
Regular GPS2-53-8General applications

๐Ÿ“Š View Output Resultsโ€‹

After reconstruction is complete, the output directory will contain:

  • ๐Ÿ“ 3D/ - 3D models
    • model-b3dm/ - 3D Tiles (Cesium)
    • model-osgb/ - OSGB ๆ ผๅผ
    • model-obj/ - OBJ ๆ ผๅผ
    • point-las/ - LAS point cloud
  • ๐Ÿ“ 2D/ - 2D products
    • dom_tiles/ - Orthophoto tiles
    • dsm_tiles/ - Digital surface model tiles
    • geotiffs/ - GeoTIFF format
  • ๐Ÿ“ AT/ - AT results
  • ๐Ÿ“ report/ - Quality report
  • ๐Ÿ“ logs/log.txt - Processing log

๐Ÿ› ๏ธ Interactive Configuration Generatorโ€‹

If you don't want to manually write JSON configuration files, you can use our interactive tool to quickly generate them:

๐Ÿ”ง ไบคไบ’ๅผ้…็ฝฎ็”Ÿๆˆๅ™จ

ไฝฟ็”จไธ‹้ข็š„่กจๅ•็”Ÿๆˆๆ‚จ็š„้…็ฝฎๆ–‡ไปถ๏ผš

ๅŸบๆœฌ่ฎพ็ฝฎ

ๅค„็†ๅ‚ๆ•ฐ

ๅๆ ‡็ณป่ฎพ็ฝฎ

่พ“ๅ‡บๆ ผๅผ

3D ๆจกๅž‹
็‚นไบ‘
2D ๆญฃๅฐ„
ๅ…ถไป–ๆ ผๅผ

้ซ˜็บง้€‰้กน

3D Tiles ้€‰้กน
2D ็“ฆ็‰‡้€‰้กน

ๅœฐ้ขๆŽงๅˆถ็‚น (GCP)

่พ“ๅ‡บๅๆ ‡็ณป๏ผˆๅฏ้€‰๏ผ‰

็”Ÿๆˆ็š„้…็ฝฎๆ–‡ไปถ

ๅฐ†ไธ‹้ข็š„ JSON ไฟๅญ˜ไธบ task.json๏ผš

task.json
{
"license_id": 9200,
"working_dir": "C:/Projects/MyProject",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 2,
"coordinate_system": {
"type": 2,
"type_name": "Geographic",
"label": "WGS 84",
"epsg_code": 4326
},
"generate_obj": false,
"generate_ply": false,
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_fbx": false,
"generate_las": false,
"generate_pc_ply": false,
"generate_pc_osgb": false,
"generate_pc_pnts": false,
"generate_gs_ply": false,
"generate_gs_splats": false,
"generate_geotiff": true,
"generate_tile_2D": true,
"generate_2D_from_3D_model": false,
"generate_dsm_tile": false,
"fast_mode": false,
"use_image_position_constraint": true,
"min_avali_memory_size": 16,
"output_block_change_xml": false,
"output_tie_point_las": false,
"keep_undistort_images": false,
"use_draco_compression": true,
"tex_image_type_3dtiles": 0,
"use_gcj02": false,
"image_meta_data": [
{
"id": 1,
"path": "path/to/image1.jpg"
},
{
"id": 2,
"path": "path/to/image2.jpg"
}
]
}

้ชŒ่ฏๅนถ่ฟ่กŒ

1. ้ฆ–ๅ…ˆ้ชŒ่ฏ้…็ฝฎๆ–‡ไปถ๏ผš

task_json_check.exe -task_json task.json

2. ้ชŒ่ฏ้€š่ฟ‡ๅŽ่ฟ่กŒ้‡ๅปบ๏ผš

reconstruct_full_engine.exe -reconstruct_type 0 -task_json task.json

๐ŸŽฏ Customize Your First Projectโ€‹

Based on the examples, create your own configuration file:

1. Copy Example Configurationโ€‹

copy 1_reconstruct_full_basic.json my_project.json

2. Modify Image Pathsโ€‹

Edit my_project.json and change the image paths to your images:

{
"image_meta_data": [
{
"id": 1,
"path": "C:/MyImages/DJI_0001.JPG"
},
{
"id": 2,
"path": "C:/MyImages/DJI_0002.JPG"
}
// ... add all images
]
}

3. Validate Configuration Fileโ€‹

Before running reconstruction, use the task_json_check.exe tool to validate the configuration file:

task_json_check.exe my_project.json

If there are errors in the configuration file, the tool will display specific error messages. Common errors include:

  • Image path does not exist
  • Coordinate system parameter error
  • Required fields missing

4. Run Reconstructionโ€‹

After the configuration file passes validation, execute the reconstruction task:

reconstruct_full_engine.exe -reconstruct_type 0 -task_json my_project.json

๐Ÿ“Š Monitor Progressโ€‹

Console Outputโ€‹

Shows processing steps and progress percentage.

Log Fileโ€‹

output/logs/log.txt contains detailed processing information.

Progress Monitoring Scriptโ€‹

import re
import time

def monitor_progress(log_file):
with open(log_file, 'r') as f:
while True:
line = f.readline()
if '[PROGRESS]' in line:
match = re.search(r'\[PROGRESS\] (\d+)%', line)
if match:
print(f"Current progress: {match.group(1)}%")
time.sleep(1)

monitor_progress("output/logs/log.txt")

โ“ Common Issuesโ€‹

Q: Reconstruction failed with "Insufficient number of images"

A: Ensure:

  • At least 5 images are provided
  • Sufficient overlap between images (recommended >60%)
  • Images contain GPS information or manually provide positions
Q: How to improve reconstruction quality?

A: Adjust resolution level:

"resolution_level": 1  // Use highest precision
Q: Reconstruction too slow?

A: Optimization strategies:

  • Use resolution_level: 3 for quick preview
  • Enable fast_mode: true
  • Consider using block processing

๐Ÿ’ก Practical Tipsโ€‹

Batch Configuration Generationโ€‹

For a large number of images, use scripts to automatically generate configurations:

import json
import os
from glob import glob

def create_task_json(image_folder, output_file):
images = glob(os.path.join(image_folder, "*.JPG"))

task_config = {
"working_dir": "./output/my_project",
"gdal_folder": "../gdal_data",
"input_image_type": 1,
"resolution_level": 2,
"coordinate_system": {
"type": 2,
"label": "WGS 84",
"epsg_code": 4326
},
"image_meta_data": []
}

for idx, img_path in enumerate(images, 1):
task_config["image_meta_data"].append({
"id": idx,
"path": img_path.replace("\\", "/")
})

with open(output_file, 'w', encoding='utf-8') as f:
json.dump(task_config, f, indent=2, ensure_ascii=False)

print(f"Generated configuration file: {output_file}")
print(f"Contains {len(images)} images")

# Usage
create_task_json("C:/MyImages", "batch_task.json")

๐Ÿš€ Next Stepsโ€‹

Congratulations! You have mastered the basic usage of MipMapEngine SDK. Next you can:

  • ๐Ÿ“š Learn Basic Concepts - Deeply understand 3D reconstruction principles
  • ๐Ÿ”ง Check API Reference - Explore more advanced features
  • ๐Ÿ’ก Review Basic Concepts - Deeply understand 3D reconstruction principles
  • ๐ŸŽฏ Try special scene processing - Challenging scenarios like weak texture, low overlap rate

Need help? Check the troubleshooting guide or contact technical support.