Documentation

Complete guide to creating stunning 3D printable terrain models

πŸ—ΊοΈ Overview

3D Topo Generator is a web application for creating 3D printable terrain models from digital elevation data. Select any area on Earth, configure your model settings, and export files for different workflows. Browser mode supports advanced local export options, while cloud mode provides server-side DEM processing with STL download. You can also place custom pins on the map and include them in browser-mode exports.

πŸ’‘ Perfect for: Architects, educators, geologists, cartographers, and 3D printing enthusiasts who want to create accurate terrain models.

When to use professional GIS/CAD tools instead

If you need very large geospatial pipelines, advanced GIS analysis, or highly custom production modeling, tools like ArcGIS/QGIS/Blender remain better suited. 3D Topo Generator is optimized for fast terrain-to-print workflows with minimal setup.

⚑ Performance & Processing

Generating highly detailed 3D printable terrain models requires significant computational power. This chapter explains the core processing options built into 3D Topo Generator to handle these demands effectively. You'll find guidance on optimal area sizes, expected processing times, and a detailed breakdown of the two distinct execution paths available: Browser Processing (free, on-device compute via Web Workers for smaller areas) and Cloud Processing (a flexible, pay-as-you-go backend service designed for massive, high-resolution landscapes). Understanding these choices will help you select the most efficient and cost-effective workflow for your specific project needs.

Area Size Guidelines

Area Size Processing Time Recommendation
< 25 kmΒ² 2-5 seconds βœ… Excellent - Browser mode
25-100 kmΒ² 5-30 seconds βœ… Good - Browser mode
100-200 km² 30-90 seconds ⚠️ Large - Consider resolution reduction
> 200 km² 90+ seconds ⚠️ Very Large - Prefer Cloud mode

⚠️ Large Area Warning

When creating a bounding box larger than 100 kmΒ², you'll see a warning. For best results with large areas, increase the resolution reduction factor or switch to Cloud mode.

Processing Modes

Choose how your 3D models are generated. Both modes use your OpenTopography API key, but the execution model is different.

πŸ–₯️ Browser Processing (Free)

In Browser Processing, data download and mesh generation run locally on your device. Heavy mesh computation is offloaded to a dedicated background thread so the UI remains responsive during generation.

  • Cost: Free
  • Where processing runs: In your browser (Web Workers)
  • Best for: Small/medium areas and advanced browser export options (STL + segmented 3MF)
  • Typical limit guidance: Around 100-200 kmΒ² depending on device memory/CPU

✨ Browser Processing Stages (Web Worker path):

  • Download Phase (5-70%) - Fetching elevation data; some UI responsiveness maintained
  • Generation Phase (70-90%) - Web Worker creates 3D mesh in a background thread; UI stays responsive
  • Preview Phase (90-100%) - Creating 3D visualization; brief final processing
  • Instant cancellation - Cancel button works immediately at any stage

☁️ Cloud Processing (Pay-for-use)

In Cloud Processing, generation is submitted as an asynchronous backend job. After you confirm credits and start generation, the selected box is queued on the cloud service, processed remotely, and then returned to your Cloud Jobs dashboard for download when complete. To activate and use this modality, you simply need to purchase a prepaid credit pack (via a PayPal account or guest checkout; no PayPal registration required). This is deliberately designed as a pay-as-you-go model rather than a recurring subscription, ensuring you only pay for exactly what you need, when you need it.

  • Cost model: Pay-per-use credit packs (one-time PayPal checkout, no subscription)
  • How you can pay: Complete checkout with a PayPal account or as a guest (non-registered PayPal user)
  • Where processing runs: Cloud backend (async jobs)
  • Best for: Larger areas and long-running jobs, especially on mobile
  • Per-box credit preview: In Cloud mode, each bounding box shows the credits required before submission
  • Current output: One STL artifact per completed job
  • Job tracking: Cloud Jobs dashboard with status filters, pagination, and per-job download button
  • Download retention: Intended short-term availability (1-day lifecycle)

Cloud Processing Pricing

In Cloud mode, generating 3D models uses credits from your prepaid packages. The cost is calculated dynamically based on the requested area size. An example table and a live calculator are provided below to help you estimate costs.

Area Size (kmΒ²) Estimated Credits
200 90
300 110
400 130
500 150
600 170
700 190
800 210
900 230
1000 250

Credit Calculator

Enter a custom area size to see the exact credits required for cloud processing.

-- Credits

🐳 Running Locally with Docker

You can run the full application locally using Docker. This is perfect for developers or users who prefer a containerized environment.

# Option 1: Run directly from Docker Hub (No installation needed)
docker run -p 8080:80 sicilian4ever/3d-topo-generator:latest

# Option 2: Run in background (detached mode)
docker run -d -p 8080:80 --name 3d-topo sicilian4ever/3d-topo-generator:latest

# Option 3: Run on a different port (e.g., 3000)
docker run -p 3000:80 sicilian4ever/3d-topo-generator:latest

# Access the application
# Open your browser and visit: http://localhost:8080 (or your custom port)

🌐 Browser Support

The application is compatible with all modern browsers:

  • Chrome/Edge 90+
  • Firefox 88+
  • Safari 14+
  • Mobile browsers (iOS Safari 14+, Chrome Mobile)

⚠️ Note: Internet Explorer is not supported. Please use a modern browser for the best experience.

🧭 Welcome Guide & Workspace

Welcome Guide

When you first access the main application, a welcome modal appears with the 4 core steps to get started:

  1. Get Your API Key: Configure your OpenTopography API key via the user menu
  2. Select Your Area: Navigate the map to find your desired terrain
  3. Draw Bounding Box: Define your terrain area by selecting 4 points
  4. Generate & Download: Customize settings and create your 3D model

You can close this modal anytime and optionally hide it for the current session.

Understanding the Workspace Layout

The workspace is organized for quick terrain selection and fast iteration:

Desktop Layout

  • Left Side (65%): Interactive map where you can navigate and select your area of interest by moving around the map or using the search option
  • Right Side (35%): Control panel with integrated user menu, pins controls, and bounding box list

Mobile Layout

  • Top: Fixed header with panel toggle button and user avatar menu
  • Main Area: Full-height interactive map optimized for touch navigation and search-first location workflow
  • Bottom Quick Actions: persistent + Box and πŸ“Œ Pin buttons for immediate access even when the panel is closed
  • Collapsible Panel: Tap ☰ Panel to open the full controls sheet (pins list + bounding box settings) and βœ• Close Panel to return to map focus

Bounding Box Buttons (What They Do)

  • Draw Bounding Box: starts area selection on the map.
  • β–Ά / β–Ό (Collapse): hides or expands one box details panel to keep the list clean.
  • πŸ” Zoom to box: centers and fits the map on that bounding box.
  • Edit / Finish Edit: enables corner-handle editing for quick shape adjustments.
  • Rename: changes the box title for better project organization.
  • Hide / Show: toggles box visibility on the map without deleting it.
  • Delete: permanently removes the selected bounding box.

Pin Buttons (What They Do)

  • Place Pin: enters pin placement mode to add a marker on the map.
  • πŸ‘οΈ All: toggles visibility for all pins at once.
  • πŸ” (Pin list): zooms directly to the selected pin position.
  • ✏️ (Pin list): edits pin tag, color, and size.
  • πŸ‘οΈ / πŸ‘οΈβ€πŸ—¨οΈ (Pin list): shows or hides an individual pin.
  • πŸ—‘οΈ (Pin list): deletes the selected pin.

πŸ’‘ Integrated User Menu: Includes OT API Key, Processing Mode, Cloud Jobs, and Log Out. On desktop, it is collapsible and keeps your preferred open/closed state.

πŸ“– Usage Guide

Follow this sequence from registration to model generation:

Step 1: Create Your Account

  1. Click the "Launch App" button from the landing page or navigation bar.
  2. If you're not logged in, you'll be redirected to authentication.
  3. Register with name, email, and password.
  4. After login, your user menu appears with your initials/avatar.

πŸŽ‰ Pricing model: Browser mode is free. Cloud mode is optional and uses prepaid credits.

Credit purchase checkout: You can pay with a PayPal account or use guest checkout without creating a PayPal account.

Step 2: Get Your OpenTopography API Key

  1. Visit OpenTopography API Registration.
  2. Request your API key and copy it.

Step 3: Configure API Key in the App

From Landing Page

  1. Open your user menu in the top navigation.
  2. Click OT API Key.
  3. You will be redirected to the app with the settings modal opened.

From Main Application

  1. Desktop: open the integrated menu in the right panel and click OT API Key.
  2. Mobile: tap user avatar in the top header and choose OT API Key.

Save the Key

  1. Paste API key in the input field.
  2. Click Save API Key (or press Enter).
  3. Confirm status message shows the key is configured.

⚠️ Important: You must be logged in to save and use an API key.

Step 4: Select Bounding Box Area and Optional Pins

Select the Box Area

  1. Click Draw Bounding Box and place 4 points on the map.
  2. Use the search tool first if you want to quickly move to a known location.
  3. Review the resulting area value in the box details.

Optional: Add Pins

  1. Click Place Pin and tap map to add landmarks.
  2. Set pin tag, color, and size.
  3. Use pin list actions to zoom, edit, hide/show, or delete.
  4. Keep pins inside the selected box if you want pin-inclusive exports in Browser mode.

Step 5: Configure Bounding Box Parameters (Detailed)

After creating or selecting a box, configure the model parameters in the box panel. These values control the final physical print size, terrain readability, and processing performance:

  • Width (mm) / Length (mm): define the real-world print footprint of the generated model for this specific box.
  • Dimensions Link: keeps width/length proportional to the map area ratio, so changing one value updates the other automatically.
  • Vertical Exaggeration: scales elevation differences along Z. Higher values emphasize relief and cliffs; lower values keep a more realistic vertical profile.
  • Smoothness: applies terrain smoothing before mesh generation. Increase it to reduce noise and sharp micro-artefacts; keep it lower for more raw terrain detail.
  • DEM Source: selects which elevation dataset is queried. Coverage, accuracy, and resolution vary by region and source.
  • Resolution Reduction Factor: downsamples input elevation points before mesh creation. Higher reduction is faster/lighter but can remove fine detail.
  • Composition Mode: chooses model strategy:
    • Full-Solid: single terrain body.
    • Topographic: segmented terrain bands for multi-part or multi-color workflows.
  • Topographic settings (visible only when Topographic mode is selected): configure how elevation is split into geometry bands. This includes:
    • Band Mode: choose how the terrain is partitioned:
      • Adaptive: balances band distribution based on terrain elevation distribution; usually best for irregular landscapes.
      • Equal Step: splits vertical range into equal-height bands; useful for clean, contour-like layering.
      • Coastal Preserve: keeps more low-elevation/coastal terrain merged with the base, then bands the remaining relief above that preserved zone.
    • Topography Bands: number of generated terrain bands (in addition to the base).
    • Coastal Preserve % (conditional): shown only when Band Mode = Coastal Preserve; controls how much lower-elevation/coastal terrain is retained with the base before band splitting starts.
    • Note: topographic mode currently focuses on geometry banding and no longer uses color scheme selection in this panel.
  • Cloud Processing Cost (Cloud mode): shows required credits for that specific box before submission.

Step 6: Choose Processing Mode (Primarily by Area Size)

Open Processing Mode from the user menu and save your choice:

  • Small/medium areas (typically up to ~100 kmΒ²): prefer Browser Processing.
  • Larger areas (~100-200 kmΒ²): Browser may still work with stronger reduction settings; evaluate performance.
  • Very large areas (>200 kmΒ²): prefer Cloud Processing.

Step 7: Generate

  1. Check box settings and selected mode.
  2. Click Generate 3D Model.
  3. Follow progress until completion.

πŸ”„ Processing Flows Summary

Quick comparison of the two end-to-end execution paths:

Browser Processing Flow

  1. Activate Browser Processing in Processing Mode.
  2. Generate locally in your browser (Web Worker path).
  3. After completion, export from preview modal:
    • STL terrain
    • STL + Pins
    • Segmented 3MF variants
    • Printing guide TXT

Cloud Processing Flow (Starting from Activation)

  1. Switch to Cloud Processing.
  2. Activate with a credit pack purchase (PayPal account or guest checkout, no PayPal registration required).
  3. Confirm available credits in your profile.
  4. Review Cloud Processing Cost for the selected box.
  5. Generate to submit async cloud job.
  6. Monitor job in Cloud Jobs and download STL when status is Completed.

Current cloud export scope: one STL artifact per job.

πŸ–¨οΈ Get 3D Printing Cost Estimates

After downloading your STL, you can estimate print costs using the free Print-Calculator tool. For models generated by this service, there is currently a required preparation step before the estimate is accurate.

Free Print-Calculator Tool: Open Print-Calculator from navigation at any time.

Compatible files: STL, OBJ, and 3DS from this app or other sources.

Important current behavior: when the model comes from this tool, import it into a slicer first, then export it to a compatible format (for example STL/OBJ/3DS as supported by Print-Calculator) before estimating cost. If you skip this conversion step, the estimate may be incorrect or errors can occur.

This extra conversion procedure is only needed at the moment for models generated by this service. Cost estimation works correctly with other models; root-cause analysis for this specific generator flow is still in progress.

  1. Open Print-Calculator.
  2. Import the generated model into your slicer software.
  3. Export the model from the slicer in a Print-Calculator compatible format (STL/OBJ/3DS).
  4. Upload that exported file in Print-Calculator, then enter model/material parameters.
  5. Review instant estimate and request a personalized quote if needed.

🌍 DEM Data Sources

The application supports multiple Digital Elevation Model sources, each with different coverage and resolution. Below you'll find detailed information about each DEM family:

SRTM Family (Shuttle Radar Topography Mission)

An SRTM DEM is a Digital Elevation Model created from data collected by NASA's Shuttle Radar Topography Mission (SRTM) in 2000. It provides near-global elevation data for most of the world at resolutions of 3 arc-seconds (~90m) and 1 arc-second (~30m), filling gaps in elevation data to provide a continuous topographic surface. To be noted that SRTM15PLUS integrates the original Shuttle Radar Topography Mission (SRTM) land data with improved ocean bathymetry, which is derived from a combination of direct shipboard measurements and predicted depths using satellite altimetry.

  • SRTMGL3: SRTM GL3 90m resolution
  • SRTMGL1: SRTM GL1 30m resolution
  • SRTMGL1_E: SRTM GL1 Ellipsoidal 30m resolution
  • SRTM15Plus: Global Bathymetry SRTM15+ V2.1 500m resolution

ALOS World 3D (AW3D30)

AW3D30 is a global digital surface model (DSM) with a 30-meter (1 arcsec) horizontal resolution, generated from satellite stereo images by JAXA (Japan Aerospace Exploration Agency).

  • AW3D30: ALOS World 3D 30m resolution
  • AW3D30_E: ALOS World 3D Ellipsoidal 30m resolution

NASADEM

NASADEM (NASA Making Earth System Data Records for Use in Research Environments) is a digital elevation model (DEM) that provides global, near-global land elevation data at a resolution of 1 arc second (approximately 30 meters). It is a modernization of the original Shuttle Radar Topography Mission (SRTM) DEM, using improved processing techniques.

  • NASADEM: NASADEM Global DEM 500m resolution

Copernicus DEM

The Copernicus DEM is a Digital Surface Model (DSM) that represents the Earth's surface, including buildings, vegetation, and other infrastructure, in a 30-meter or 90-meter resolution format.

  • COP30: Copernicus Global DSM 30m resolution
  • COP90: Copernicus Global DSM 90m resolution

European Digital Terrain Model (EU_DTM)

The European Digital Terrain Model (EU_DTM) is a 30-meter resolution model representing the bare-earth surface of Continental Europe, developed by Dr. Tom Hengl and the OpenGeoHub Foundation, using an Ensemble Machine Learning (EML) algorithm trained on various Digital Elevation Models (DEMs) and elevation data from GEDI and ICESat-2. Unlike the older EU-DEM, which was a Digital Surface Model and is no longer maintained, the EU_DTM specifically models the ground's terrain by removing vegetation and buildings, making it suitable for analyses requiring the underlying topography of the landscape.

  • EU_DTM: DTM 30m resolution (Continental Europe only)

GEDI (Global Ecosystem Dynamics Investigation)

The Global Ecosystem Dynamics Investigation (GEDI) produces high resolution laser ranging observations of the 3D structure of the Earth. GEDI's precise measurements of forest canopy height, canopy vertical structure, and surface elevation greatly advance the ability to characterize important carbon and water cycling processes, biodiversity, and habitat. GEDI was funded as a NASA Earth Ventures Instrument (EVI) mission. It was launched to the International Space Station in December 2018 and completed initial orbit checkout in April 2019.

  • GEDI_L3: DTM 1000m resolution

GEBCO (General Bathymetric Chart of the Oceans)

The GEBCO DEM is a 15 arc-second resolution global elevation model that provides continuous coverage of both ocean depths (bathymetry) and land/ice surface heights (topography), with negative values representing water depths and positive values representing land/ice heights. Developed by the General Bathymetric Chart of the Oceans (GEBCO), it's a composite of diverse data sources, including satellite-derived gravity and ship-track soundings.

  • GEBCOIceTopo: Global Bathymetry 500m resolution (includes ice topography)
  • GEBCOSubIceTopo: Global Bathymetry 500m resolution (sub-ice topography)

Choosing the Right Source

  • For detailed terrain: Use SRTMGL1, NASADEM, COP30, or AW3D30 (30m resolution)
  • For larger areas: Use SRTMGL3 or COP90 (90m resolution)
  • For coastal areas and bathymetry: SRTM15Plus or GEBCO sources include ocean depth data
  • For mountains: NASADEM or COP30 provide excellent detail
  • For European terrain: EU_DTM provides bare-earth surface modeling
  • For polar regions: GEBCO sources include ice topography data
  • For vegetation analysis: GEDI_L3 includes canopy height information

πŸ’‘ Tip: Data quality and availability may vary by location. If one source doesn't work well, try another for better results. Each DEM source has its strengths depending on your specific use case and geographic area of interest.

πŸ”§ Troubleshooting

Common issues and their solutions:

API Key Issues

❌ "Invalid API Key" or "Unauthorized" Error

  • Verify your API key is correctly copied from OpenTopography (32-character hexadecimal string)
  • Check that there are no extra spaces before or after the key
  • Ensure your OpenTopography account is active and the API key hasn't expired
  • Try generating a new API key from the OpenTopography portal

❌ API Key Not Saving

  • Make sure you're logged into the application
  • Check that your browser allows local storage/account sync (private/incognito mode may restrict persistence)
  • Clear your browser cache and try again

Model Generation Issues

❌ "No Data Available" for Selected Area

  • Try a different DEM source - not all sources cover all regions
  • For ocean areas, use SRTM15Plus or GEBCO sources
  • For European terrain, try EU_DTM
  • Verify your bounding box coordinates are correct

❌ Processing Takes Too Long or Freezes

  • Reduce the area size - recommended maximum is 100-200 kmΒ²
  • Increase the Resolution Reduction Factor (e.g., 3 or 4 instead of 2)
  • Close other browser tabs to free up memory
  • Try using a desktop browser instead of mobile for larger areas

❌ Model Appears Flat

  • Increase the Vertical Exaggeration value (try 2x or 3x)
  • Check if the selected area actually has elevation variation
  • Try a higher resolution DEM source like SRTMGL1 or COP30

❌ Pins Are Missing in the Downloaded File

  • Use the dedicated STL + Pins button in the download modal
  • Ensure pins are visible and located inside the selected bounding box
  • If needed, use the pin list to zoom and verify each pin position before regenerating
  • Important: STL + Pins is currently a Browser mode export option

❌ 3MF + Pins Is Missing

  • 3MF exports are available only in Topographic mode
  • Ensure at least one visible pin is inside the selected bounding box
  • Use Segmented 3MF + Pins to export pins as separate, independent objects
  • Important: segmented 3MF exports are currently Browser mode only

Download Issues

❌ STL File Won't Download

  • Check that pop-up blockers aren't preventing the download
  • Try a different browser if the issue persists
  • Ensure sufficient disk space is available

Display Issues

❌ 3D Preview Not Loading

  • Ensure WebGL is enabled in your browser
  • Update your graphics drivers
  • Try disabling hardware acceleration in browser settings
  • Use a different browser (Chrome typically has the best WebGL support)

πŸ’‘ Still having issues? Contact the developer for personalized support via the contact page.

πŸ‘¨β€πŸ’» Credits

Created by Carmelo Sammarco (Sicilian4Ever)

This application represents the intersection of geospatial science and modern web technology. Built with passion for cartography, 3D printing, and open-source software.

πŸ“§ Support: For issues and questions contact the developer.

Contact Developer

Ready to Get Started?

Create your first 3D terrain model in minutes

Launch Application