DronePortal.app
Built for professional drone operators
WebODM · Delivery workflow
The task finished, the dashboard is green, and you can pan around a perfectly good orthophoto. All of it lives at localhost:8000 — an address only your own machine can reach. Everything between "processing complete" and "the client has it" is a separate job, and this is the workflow for it: which files WebODM actually wrote, which ones a client can open, and how to hand them over as one thing instead of six.

Short version: WebODM writes eight or nine assets to disk, of which your client can realistically use two. This page walks through which files WebODM actually produced, which of them belong in a delivery, how to make each one openable by someone without GIS software, and how to hand the whole thing over as one address instead of six attachments.
Your task finished. The WebODM dashboard shows a green bar, an orthophoto you can pan around, a point cloud, a textured model. It looks finished. It is not delivered.
Everything you are looking at lives at http://localhost:8000 — an address that exists only on the machine that ran the processing. Your client cannot open it. Not from their office, not from their phone, not tomorrow. The moment you want someone else to see this, you have to decide what actually leaves your computer, in what shape, and how they will open it.
That decision is the whole job, and it is where most deliveries fall apart: the pilot zips the output folder, drops 4 GB on WeTransfer, and calls it a hand-over.
Open your finished task and use Download Assets. That dropdown is a map of everything the processing produced. On disk the same files sit under the project directory in these folders:
| Asset | Where it lands | Typical size | Send to the client? |
|---|---|---|---|
| Orthophoto | odm_orthophoto/odm_orthophoto.tif | 0.2 – 5 GB | Not raw — see step 3 |
| Orthophoto tiles | orthophoto_tiles/ · MBTiles | Varies | Yes — as a viewer |
| DSM / DTM | odm_dem/dsm.tif · dtm.tif | 50 – 800 MB | Only if asked |
| Point cloud | odm_georeferencing/odm_georeferenced_model.laz | 0.5 – 10 GB | Surveyor only |
| Textured 3D model | odm_texturing/odm_textured_model_geo.obj + .mtl + textures | 0.1 – 3 GB | Convert first |
| Quality report | odm_report/report.pdf | 1 – 20 MB | Yes |
| Camera shots | odm_report/shots.geojson | < 5 MB | Rarely |
| All assets | all.zip | Everything above | Never |
Sizes are order-of-magnitude for a typical 200 – 800 image mission and scale with your GSD. Folder names come from OpenDroneMap's output structure; if you run a different WebODM version, open Download Assets and check the list against this table before you rely on it.
Three different people want three different things out of the same task, and confusing them is the single most common delivery mistake:
Sending all.zip to the first person is not generosity, it is offloading your job onto them. They will open it, find a .laz they cannot read, and email you asking what to do with it.
A 3 GB GeoTIFF is a working file, not a deliverable. Windows Photo Viewer will not open it. It has three realistic destinations, and you often want more than one:
gdal_translate -of COG -co COMPRESS=DEFLATE \
odm_orthophoto.tif ortho_cog.tif
gdal_translate -of JPEG -outsize 4000 0 -co QUALITY=88 \
odm_orthophoto.tif ortho_preview.jpg
Whichever you send, state the coordinate reference system (the EPSG code) and the GSD in cm/pixel in writing. A GeoTIFF without a stated CRS is a photo, not a survey product, and the person receiving it has no way to verify what you assumed.
The point cloud. odm_georeferenced_model.laz is the rawest thing WebODM produces and almost never belongs in a client delivery. If a surveyor did ask for it, send the LAZ with three things written down: the EPSG code, the vertical datum, and whether it is classified. Without those it is unusable and it will come straight back to you.
The textured model. The OBJ is three files that must stay together — the .obj, its .mtl, and the texture images. Send one without the others and your client opens an untextured grey blob. For anything web-facing, convert to glTF/GLB first, or publish the model to a viewer and hand over the embed instead of the geometry.
The general rule: if opening the file requires software your client does not have, you have not delivered a result — you have delegated a problem.
WebODM can make a task public and give you a URL to its map and 3D views. On the face of it that solves everything. Two catches decide whether it does:
localhost or a LAN address. It works perfectly on your screen and not at all on your client's. This is the single most common reason a "shared" WebODM link arrives dead.WebODM Lightning changes the first point — it is hosted, so a public task link genuinely opens for anyone. It does not change the second half of the job: the report, the photos and the context still live somewhere else, and your client still ends up with several links.
By this point you have made your choices: a viewer for the map, possibly a 3D model, a report PDF, a selection of stills, maybe a GeoTIFF for the technical recipient. The last step is turning that set into one address your client can open, understand and come back to.
That is the layer DronePortal covers. It does no processing whatsoever — WebODM stays your engine, and nothing about how you process changes. What it does is hold the delivery together:
The order matters: steps 1 to 5 are the actual work, and they are the same whether or not you use anything from us. Step 6 is only about how it arrives.
Know this before you start: DronePortal hosts no tiles and no 3D viewer of its own. It embeds the URL you paste, in an iframe. So the viewer has to be publicly reachable before you add it — a localhost link stays a localhost link, here too.
/models/ link, a Kuula /post/ link and a Polycam capture page all refuse to be embedded as-is. DronePortal rewrites them to their embed form when you save, so you do not have to hunt for the embed code. One exception: skfb.ly short links are refused with a message — paste the full Sketchfab URL.https://{your-subdomain}.droneportal.app/app/portaal/?code={ACCESSCODE}. One address plus one code — no account for your client, nothing to install.Open that link yourself in a private browser window before you send it. It is the only way to see what your client sees rather than what your logged-in session shows you.
.obj, .mtl and textures travel togetherlocalhost or an internal IP addressall.zip. Everything, therefore nothing. The client cannot tell what matters.Same workflow for other tools: delivering a Pix4D project · delivering a DJI Terra reconstruction. Related reading: process locally, deliver professionally and your client never sees your point cloud.
Only if that machine is reachable from the internet. A standard local WebODM install runs at localhost:8000, so the public task link it generates opens on your computer and nowhere else. Either host the instance publicly — a real security decision, because your other clients' tasks sit on it too — or export the assets and deliver them through something that is already public.
Not odm_orthophoto.tif — it is often several gigabytes and will not open in ordinary image software. Give them an interactive viewer for exploring, plus a downsampled JPEG or a PDF map sheet they can put in a document. Keep the full GeoTIFF for whoever asked for georeferenced data, and state the EPSG code when you send it.
It solves the reachability half. Lightning is hosted, so a public task link genuinely opens for your client without you exposing your own server. It does not gather the rest of the delivery: the quality report, the stills and your explanation still live elsewhere, so the client still receives several links instead of one place.
No. DronePortal does no processing — it is the presentation layer after WebODM, Pix4D or DJI Terra. You keep your existing workflow exactly as it is and add the finished results: the viewer link, the report, the photos. Nothing is re-computed and nothing about your processing settings changes.
In most jobs, nothing — the client never opens it. Keep it in your archive. If a surveyor or engineer specifically asked for it, send odm_georeferenced_model.laz together with the EPSG code, the vertical datum and whether the cloud is classified. A LAZ without that information cannot be used and will be returned to you.
Yes, but a bare WebODM link is only part of a delivery. A public task link opens the viewer for your client as long as the instance is reachable from the internet, which a hosted option such as WebODM Lightning is. Put it together with the report, the photos and your explanation on one page.
Give the client an interactive viewer to explore, plus a downsampled image or a PDF map sheet to put in a document. Keep the full GeoTIFF for whoever asked for georeferenced data.
Share the hosted viewer link so the client opens the 3D view in the browser, and place it on the same page as the orthophoto and the report. Keep the point cloud file for a surveyor or engineer who specifically asked for it.
Most clients have no GIS software. Deliver through a browser viewer and simple exports such as a JPEG or a PDF, and keep the GeoTIFF and LAZ files for the specialist.
Create a project in DronePortal, paste in the WebODM or WebODM Lightning viewer link, add the report and photos, and send your client one link and one access code.
Walkthrough
Ready to get started?
Steps 1 to 5 stay exactly as they are. Free trial, no credit card required.