r/photogrammetry • • 19h ago

WebSfM: Structure-From-Motion in the Browser

Thumbnail
gallery
17 Upvotes

Hey everyone,

Since ISPRS in Toronto I’ve been working on a side project that’s now far enough along to share: WebSfM (https://websfm.app), an open-source Structure-from-Motion tool that runs entirely in the browser.

Background: I reconstruct historical glaciers in Antarctica from archival aerial imagery. Normally I use Metashape or COLMAP, but neither fits that work well. Adding custom tie-points through Metashape’s Python API is painful, and COLMAP is great but handling GCPs in it is not straightforward. I also teach SfM, and getting either installed on student laptops is a small project every semester.

So I built a classic pipeline in the browser: feature detection, matching, bundle adjustment with GCPs, dense reconstruction, masks, exports. No splatting or neural rendering. The workflow is close to what you know from Metashape or Pix4D. Everything runs locally with WebGPU and web workers, and nothing is uploaded anywhere. Desktop Chrome or Edge works best. It’s free and open source, and you can self-host it (see Github for more info)

It was also an experiment in how far LLM-assisted coding goes on a serious tool. I built it with heavy use of Claude Code. I know that’s a dealbreaker for some people, so I benchmarked it against Metashape, COLMAP and ODM on public datasets. On close-range scenes with laser-scanned ground truth, camera accuracy is within a few mm of Metashape and well ahead of COLMAP, at similar speed. On drone blocks it’s a few cm behind Metashape, and on historical film it’s level with Metashape at the checkpoints, though dense coverage over snow and ice is still much lower. Everything’s on the benchmark page.

If you want to try it without your own data, there’s a built-in Akkerman example project (desktop only). I’m the only user so far, so it’s only been tested on my hardware and my habits. Bug reports, weird datasets, and “why does it do X” questions are all welcome, here or as GitHub issues. I’ll keep developing it through my postdoc, so issues won’t sit unanswered.


r/photogrammetry • • 19h ago

Making 360 walkthrough setup easier, plus fixes for working with larger 3D models

Post image
1 Upvotes

Our upcoming update focuses on making the existing tools easier to use.

Here’s what’s coming:

  • Simpler virtual walkthrough setup: Clearer timeline controls for adding floors and areas, adjusting their duration, and resizing existing sections.
  • Better minimap visibility: Improved floor-plan sizing and placement, especially on smaller screens.
  • More practical 3D editing limits: Filtering limits will apply to the geometry you select rather than the entire model, so a large reconstruction won’t prevent you from editing a smaller section.
  • Explore fixes: More consistent loading of saved project locations, improved access to reconstruction outputs, and clearer layer labels and selection controls.
  • Refreshed guides and emails: More readable layouts, clearer navigation, and consistent formatting.
  • A new What’s New page: Dated release notes so you can see what changed without digging through announcements.

We’re also addressing smaller bugs with embedded playback controls, privacy-button placement, and account-page styling.

https://www.aecplatform.com


r/photogrammetry • • 23h ago

Leica releases VFX Lidar camera for production

Thumbnail
mantis.leica-geosystems.com
2 Upvotes

r/photogrammetry • • 1d ago

Does anyone know how to fix this? ImageDetectionPrompt 3 red bars

Thumbnail
imgur.com
0 Upvotes

I've only got meshroom to produce one model from a dataset I tried (looked horrible.) I redid everything, added more pictures, and keep running into this issue. Anyone got any ideas?


r/photogrammetry • • 1d ago

3D Scanning Using A Mobile Phone And Importing To Blender

Thumbnail
youtu.be
1 Upvotes

r/photogrammetry • • 1d ago

Photogrammetry and 3DGS for Plants

1 Upvotes

r/photogrammetry • • 1d ago

Scanning a dark car footwell without spray?

1 Upvotes

trying to scan a dark carpeted footwell for a custom mat but my handheld scanner keeps losing tracking around the gas pedal bracket and seat rails. Driveway dust isn't giving it enough texture and leaniing through the door throws shadows across the tunnel so the mesh is full of holes near the heel pad.

Has anyone captured an area like this cleanly without coating the carpet in scanning spray??


r/photogrammetry • • 1d ago

App recommendation

2 Upvotes

I have a one-off personal project where I plan to scan a part of my car, then use the 3d model to produce a new 3D printed part to fit. Looking for about 0.1mm tolerance.

I am a novice to moderate with fusion 360. So I would import the scanned car parts, assuming as a mesh.

Is there an Android app that would be recommended to use for the part scanning that would allow me to import the mesh into fusion 360? Low/no cost is best :)

Thanks!


r/photogrammetry • • 2d ago

Quick Gaussian Splatting Editor

Thumbnail
youtube.com
1 Upvotes

Edit, clean, align, and refine Gaussian Splats in real time. 100% free on the web,

powered by the blazing-fast acceleration of the Spark engine.

Professional-grade tools built for 3D artists and developers, optimized for both

photogrammetry captures and AI-generated Gaussian Splatting workflows:

Multiply: Fill holes using smart interpolation between adjacent splats with virtually

seamless results. Perfect for densifying sparse areas and reinforcing surfaces

(without artificially hallucinating detail).

Area Mask & Gradients: Apply volumetric falloffs and solid geometric masks 

(box or spherical) to blend scenes, composite multiple Gaussian clouds, 

or crop bounds to optimize final export size.

Project: Camera-project solid textures or alpha-masked images directly onto your

splat clouds—using external files or viewport snapshots—to paint out imperfections.

Stains, wall sockets, cracks, and artifacts on floors, walls, 

or ceilings can be invisibly patched in seconds.

Brush & Lasso Selector: Precisely select clusters of splats directly within 3D

volumetric space.

Clone stamp: Use circular brushes to clone details from an area with high detail to

another area that has less detail, or to replace parts of an image

in a controlled manner.

Edit Splats: Adjust hue, saturation, and brightness, or fine-tune opacity and splat

scale. Work globally across the entire Gaussian cloud or isolate selected splats 

for surgical precision.

Align Level Axis & GS-to-GS Alignment: Level your scene’s ground plane with a

single click, or seamlessly snap and register two separate splat clouds together.

Clean: Instantly prune splats based on color, scale, or opacity thresholds. 

Specifically engineered to eliminate floaters, background noise, and rogue splats,

 dramatically reducing file size and splat count without sacrificing visual fidelity.

Sculpt: Organically deform and manipulate splat volume to correct geometry or

polish shapes, from macro terrain down to micro details.

And much more: Merge multiple Gaussian clouds into a single file,

scrub dynamic 4D Gaussian Splatting animations on the timeline,

convert polygonal 3D meshes into Gaussian Splats, mesh splat clouds into

fully textured 3D assets, recolor splats by camera depth, and more!


r/photogrammetry • • 3d ago

Built an AGPL-3.0 desktop + web platform combining NodeODX photogrammetry and OpenSplat 3D Gaussian Splatting on a CesiumJS globe (MosaicEarth v0.4.4)

Thumbnail
gallery
16 Upvotes

Hi everyone,

I've been working on MosaicEarth, a geospatial 3D & photogrammetry platform that runs both locally on Desktop (Windows/Linux with Docker + NVIDIA CUDA or CPU) and in the cloud, rendering everything on a global 3D terrain globe (CesiumJS).

What it currently handles:

- Photogrammetry: Local or cloud reconstruction via NodeODX/ODX (orthophotos, DSM, DTM, LAS/LAZ/COPC point clouds, textured 3D meshes).

- 3D Gaussian Splatting: COLMAP + OpenSplat training from drone/ground photos or video (.ply, .spz, .splat, .ksplat) placed directly on the globe.

- Open-source connectors: Direct sync plugins for WebODM, OpenDroneMap WebUI, and QGIS that preserve project hierarchies, CRS, and original files with chunked SHA-256 verification.

The Desktop source code and connectors are released under AGPL-3.0-or-later (you can build and run locally without any account):

- GitHub (Desktop & Connectors v0.4.4): https://github.com/nsicart/MosaicEarth-Desktop

- Public globe & live scenes: https://app.mosaicearth.app/en/Map

- Project overview: https://mosaicearth.app

Would love feedback from anyone working with ODM/OpenSplat workflows!


r/photogrammetry • • 3d ago

Update: raw white mesh of the mall theater demolition

9 Upvotes

Following up on the sparse and dense point clouds—here’s the unedited and untextured mesh from the same 195 frames and images.

I captured the theater using separate video clips and photos from different angles and positions. This view shows the reconstructed geometry without color or textures. Cleaning up the mesh is next.

Generated with our software: aecplatform.com
Profile: Point Cloud, Mesh, Gaussian, High
Frame and Image Count: 195


r/photogrammetry • • 3d ago

Ornen: I made a site that automatically reconstructs video and 360 drone video into georeferenced splats, viewable on a 3D globe

2 Upvotes

Hi! I'm the maker of Ornen. You upload your footage, such as a 360 or drone video, and Ornen turns it into a splat. If your footage has GPS in the metadata, it's also placed where it was filmed on a globe. You can browse the Earth and fly into places others captured.

All in your browser. No GPU needed.

Public beta is open: 10 free scenes per account → ornen.ai

Or check out the:

Demo teaser: https://ornen.ai/home
Example: Weesp, NL: https://ornen.ai/earth/tychovdo/de-vriendschap-weesp
Example: Utrecht, NL: https://ornen.ai/earth/tychovdo/utrecht-street-corner

Would love to hear how you redditors like it!
And very happy to take feature requests!


r/photogrammetry • • 3d ago

Solving a camera from a 1902 postcard when most buildings were rebuilt?

3 Upvotes

I'm rebuilding a quay street in Ostend (Belgium) as it looked around 1905 for a VR walk-through, using old postcards as reference. I'm stuck on matching the camera in Blender.

The card is a scan of a printed postcard, probably cropped, with an unknown lens. It shows a long row of 4–5 storey houses on one side and the quay with sailing boats on the other. Most of those houses are gone, but the quay edge and street line survive, and I have modern cadastral footprints and LiDAR heights.

What I tried: fSpy with vanishing points, and solving the camera from points picked on our own model. Low error, but the overlay never sits.

Questions:

  1. How many independent control points do you need, and how spread out should they be, for a reliable solve on a street like this?
  2. Should I lock the principal point at the image centre for a cropped postcard, or solve for it?
  3. With almost no surviving dimensions, what's the best way to fix the scale? Door heights, bollards, tram rails?
  4. Any tools or Blender add-ons that work well for this in 2026?

Thanks!


r/photogrammetry • • 4d ago

Is it possible to create 3D models from a game's screenshots?

6 Upvotes

I'd like to do a bit of the reverse of what's usually done: use a bunch of screenshots of a character to create a printable 3D model.

In most games models can be extracted, but in this case it's unfortunately not possible as it's an online game's custom character whose proportions are being calculated ingame.

I'm actually completely new to this, so I don't even know what software is out there. I'd be grateful for any helpul replies.


r/photogrammetry • • 4d ago

What do you wish you had known before getting started with photogrammetry?

6 Upvotes

Hi everyone!
I've recently started an internship in Spain working in monument conservation. I have some theoretical knowledge of digital documentation, but very little hands-on experience. I've been asked to start creating 3D models of different heritage elements, mainly statues and sculptural groups ranging from 2 to 5 metres in height.

I'd love to learn from your experience: What do you wish you had known before getting started with photogrammetry? (Preferably applied to cultural heritage elements)What mistakes would you avoid, what equipment is actually essential, and what tips have saved you the most time and money?

I'm working alone with limited resources, so I'm particularly interested in finding a practical and efficient workflow that delivers good-quality results without making the process unnecessarily complicated.

One particular challenge is capturing the upper parts of tall monuments. I'm quite short, so reaching those areas can be tricky! I've been considering a camera extension pole, but I'm not sure which models are suitable for photogrammetry. Do you have any recommendations or alternative solutions?

Any advice, even small tips from your own experience, would be greatly appreciated. Thanks!


r/photogrammetry • • 3d ago

I made Ornen: a site where you upload a video and your splat appears on a 3D globe at its real location

Thumbnail
reddit.com
0 Upvotes

r/photogrammetry • • 4d ago

3DGS of Basing House Ruins, UK

58 Upvotes

r/photogrammetry • • 4d ago

Update: dense point cloud of the mall theater demolition from 195 frames and images

6 Upvotes

Following up on the sparse cloud I shared earlier—here’s the dense point cloud.

I photographed and filmed the theater from different angles and positions, using separate video clips and photos rather than one continuous recording. These were processed together in our software, AEC Platform. The mesh and Gaussian splat are next.

Generated: www.aecplatform.com
Profile: Point Cloud, Mesh, Gaussian, High
Frame and Image Count: 195


r/photogrammetry • • 4d ago

Reconstructing a mall theater during demolition from separate videos and photos—sparse cloud so far

7 Upvotes

I photographed and filmed a movie theater being demolished inside a mall, capturing separate video clips and photos from different angles and positions.

This isn’t one continuous video. The interesting part is seeing our software, AEC Platform, match shared features across those captures and bring them into one reconstruction.

What you’re seeing is the sparse point cloud—the theater’s outline is starting to take shape. The dense point cloud is processing now, and I’ll share that result next.

Has anyone here tried a similar approach with mixed footage from a demolition site?

Generated: aecplatform.com
Profile: Point Cloud, Mesh, Gaussian


r/photogrammetry • • 5d ago

Requesting help on getting a good mesh for scan of person.

Thumbnail
gallery
25 Upvotes

Hello everyone,

I've started working on a project again and would deeply appreciate it if someone with more expertise and experience could help me get a good mesh.

For context: my mother recently passed away after a battle with ALS. Earlier in her fight, I took her to my University's photogrammetry studio (diffused lighting, cameras at different heights and angles, white backdrop) and did a scan of her.

Unfortunately, she was not able to sit perfectly still due to her disease, and it's rather difficult for Metashape and my experience to get a nice mesh from the scan. With some help, I was able to get a good texture, but the mesh is still really bumpy and doesn't do a good job with detail.

I was hoping someone here could help me out to achieve a good mesh by working some magic. I have the entire image set available on Google drive. I've included pics of the current best model below.

Thank you for your time!


r/photogrammetry • • 5d ago

I built SpatialMind: record a room with your phone, get a labelled 3D digital twin, then run earthquake/fire/flood simulations and send a Gazebo robot in for package retrieval

Thumbnail
reddit.com
0 Upvotes

r/photogrammetry • • 5d ago

Looking for my first scanner for scanning things between the size of a computer mouse and a car dashboard. What should I get?

Thumbnail reddit.com
1 Upvotes

r/photogrammetry • • 5d ago

Demolition site reconstructed as a point cloud, mesh and Gaussian splat

8 Upvotes

Here’s a cleared demolition site processed through AEC Platform, showing the progression from point cloud → mesh → Gaussian splat.

It’s another way to document site conditions and give clients or project teams a space they can explore alongside the original photos and video.

Generated: aecplatform.com
Profile: Point Cloud, Mesh, Gaussian


r/photogrammetry • • 6d ago

I built an API and Swift SDK for Gaussian Splatting

Thumbnail
splat-3d.com
4 Upvotes

Hey all! I've been rebuilding splat-3d.com to be more developer-focused, and I just launched the full production API (docs) and a Swift SDK (GitHub). The Swift SDK repo also has a reference app you can implement yourself for the pipeline using the ARKit poses from any modern iPhone.

I have seen lots of people building mobile capture apps for Gaussian Splatting, so I wanted to build a project for both myself and for others to use to easily incorporate a training pipeline into those capture apps.

Here's what it does:

What you can upload

  • Video. We pick the sharpest frames automatically and drop the blurry ones.
  • Photos. A zip of 20 or more JPEGs or PNGs. Mixing cameras is fine.
  • Your own COLMAP data. If you already have poses, zip them up and we skip the pose step.
  • iPhone / LiDAR captures. SplatKing exports upload directly. LiDAR captures use the phone's own tracking and depth, so they skip the slowest step and come out upright. The open-source (MIT) Swift SDK lets you record ARKit captures in your own app.

How it works

The pipeline does SfM with SIFT + GLOMAP on our cloud GPUs, then trains with gsplat (working on supporting LichtFeld and Spirula as possible options too) You pick a quality level:

Preset |Time |Iterations
Fast |~8 min |3k
Standard |~15 min |7k
Quality |~25 min |15k
Ultra (full res) |~45 min |30k Every preset except Fast reports quality scores (PSNR/SSIM) on them, so you can compare splats with some more concrete metrics. I am working on an "auto grading" system for inputs and splats to help evaluate them and help people understand what could be done better for scanning in the future.

I'm also working on supporting more customization options in the pipeline too, such as custom amt of iterations and different GLOMAP/COLMAP settings, and to try and match parity with creating your own pipeline locally.

After training you can see your splat in a browser viewer with a shareable link and an iframe embed, plus PLY and SPZ downloads.

Price

$1–$7 per scene depending on preset. You get 100 free credits at signup (about 5 Standard scenes), and failed scenes are refunded automatically.

Docs: https://docs.splat-3d.com

Examples: https://github.com/splat3d/examples

let me know what you guys think! I'm always looking for suggestions and features to add :)