Forum

Author Topic: Agisoft Metashape 2.3.0 pre-release  (Read 4868 times)

Dmitry Semyonov

  • Agisoft Technical Support
  • Full Member
  • *****
  • Posts: 204
    • View Profile
Agisoft Metashape 2.3.0 pre-release
« on: October 04, 2025, 04:23:35 PM »
Pre-release version of Agisoft Metashape 2.3.0 is available for download.

New features in Agisoft Metashape 2.3

This pre-release is considered as unstable and is not recommended for production use.

Please use the links below for download:

Agisoft Metashape Standard edition
Windows 64 bit
Mac OS X
Linux 64 bit

Agisoft Metashape Professional edition
Windows 64 bit
Mac OS X
Linux 64 bit

Agisoft Metashape Python 3 Module (requires Professional edition license)
Windows 64 bit
Mac OS X
Linux 64 bit

Agisoft Metashape Java Library (requires Professional edition license)
Download

Metashape 2.3.0 Change Log
Metashape 2.3.0 Python API Reference

Please let us know if you have any problems using this version.

Please post problems and/or questions concerning other Metashape version in separate topics.

This topic will be removed when the final 2.3.0 version is released.

Note
Project files created with 2.3.0 version can't be opened with Metashape 2.2 and earlier versions.

EDIT:
Updated to version 2.3.0 build 21576.
« Last Edit: November 10, 2025, 03:32:50 PM by Dmitry Semyonov »
With best regards,
Dmitry Semyonov
Agisoft

spader

  • Newbie
  • *
  • Posts: 12
    • View Profile
Re: Agisoft Metashape 2.3.0 pre-release
« Reply #1 on: October 06, 2025, 09:35:02 PM »
The match depth maps option to Align Laser Scans functionality sounds really promising. However, you write in the new features article that "It is important that the data is georeferenced (images and laser scans).". Can you elaborate on this requirement?

For example, imagine a indoor project. The gravity direction would be provided through the lsaer scans inclinometer direction and scale  of the project from their depthmaps. Forcing this to require georeferencing would reduce the utility severely. If matching between the two requires a prior of some sort, i would much rather have to place coarse manual tie points or something like that.
« Last Edit: October 06, 2025, 10:13:12 PM by spader »

Dmitry Semyonov

  • Agisoft Technical Support
  • Full Member
  • *****
  • Posts: 204
    • View Profile
Re: Agisoft Metashape 2.3.0 pre-release
« Reply #2 on: October 08, 2025, 12:11:00 PM »
Hello spader,

To match images with laser scans using depth maps, it is necessary that the image block itself is correctly scaled and oriented with respect to the vertical. This will happen automatically when processing aerial images that typically have GPS coordinates in Exif metadata. For indoor datasets it will be necessary to add some control points to scale and align image block with respect to the vertical direction.
With best regards,
Dmitry Semyonov
Agisoft

Mak11

  • Sr. Member
  • ****
  • Posts: 391
    • View Profile
Re: Agisoft Metashape 2.3.0 pre-release
« Reply #3 on: October 28, 2025, 04:23:34 AM »
Hi
Why does the new Natural texture generation feature always generates a new UV (which is BTW totally useless)? Keep UV can't be selected.

Mak



Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 15596
    • View Profile
Re: Agisoft Metashape 2.3.0 pre-release
« Reply #4 on: October 28, 2025, 04:53:01 PM »
Hello Mak,

Currently Keep UV option is not compatible to Natural texturing. But as a workaround in 2.3.0 pre-release version you can generate the texture in Natural mode over the duplicated copy of the source model and then switch back to the original model with custom UV layout and use Texture Transfer option in order to re-pack the texture generated in Natural mode to the desired UV layout.
Best regards,
Alexey Pasumansky,
Agisoft LLC

Mak11

  • Sr. Member
  • ****
  • Posts: 391
    • View Profile
Re: Agisoft Metashape 2.3.0 pre-release
« Reply #5 on: October 28, 2025, 05:32:33 PM »
Alexey,
Thanks for the info. Will Keep UV be compatible with Natural mode in the future (or even at release before this year's end)?

Cheers

Mak

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 15596
    • View Profile
Re: Agisoft Metashape 2.3.0 pre-release
« Reply #6 on: October 28, 2025, 06:24:33 PM »
Hello Mak,

I think it will be available in official 2.3.0 release, but most likely the functionality will be available in one of the pre-release updates as well.
Best regards,
Alexey Pasumansky,
Agisoft LLC

lablatte

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: Agisoft Metashape 2.3.0 pre-release
« Reply #7 on: November 03, 2025, 06:13:21 PM »
Hello,

The natural texture worked perfectly for me. Nice job, i love it ! Real enhancement

I'm trying to used the Align Laser Scans functionality. It's not really clear who is the reference on who is the to align.
I'm still working on it ^^

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 15596
    • View Profile
Re: Agisoft Metashape 2.3.0 pre-release
« Reply #8 on: November 11, 2025, 05:13:57 PM »
In the latest 2.3.0 pre-release update (build 21576) the utilization of VRAM has been optimized for building texture in Natural mode. So we expect no problems for 8K pages generation now, as it could happen in earlier pre-release versions.
Best regards,
Alexey Pasumansky,
Agisoft LLC

Dieter

  • Sr. Member
  • ****
  • Posts: 257
    • View Profile
Re: Agisoft Metashape 2.3.0 pre-release
« Reply #9 on: November 11, 2025, 07:42:21 PM »
There are two places in the program where I can set in the new Natural mode that it should 'keep the images' when generating textures. Once after swapping images in the model, when the texture is to be finalized, and once when creating a completely new texture. When creating a completely new texture, are previously swapped images also retained? So does Agisoft remember swapped images for new textures in the same model?

Dieter

mrv2020

  • Jr. Member
  • **
  • Posts: 85
    • View Profile
Re: Agisoft Metashape 2.3.0 pre-release
« Reply #10 on: November 13, 2025, 11:24:24 PM »
Code: [Select]
2025-11-13 17:02:11 Saving project...
2025-11-13 17:12:03 saved project in 592.042 sec
2025-11-13 17:12:03 Finished processing in 592.091 sec (exit code 1)
>>>

Hi, in version 2.3 Metashape is taking a very long time to save the project (before/after setting masks and saving the PSX). I’m on Windows 11, workstation: AMD Ryzen 9 9950X3D, 128 GB DDR5 RAM, NVMe M.2 SSDs.

the issue happens with 500-15k photos, regardless of image size. Saving is extremely slow. In version 2.1 the same project saved in about 30 seconds, even with 15k photos.

Also, after importing a shape or KML, saving the PSX shows “bad allocation memory”, and sometimes it completely fails and the shape data is lost (the doc.xml inside the shapes folder gets corrupted or disappears).

One way I try to fix the bad allocation memory error in the shapefiles is to select all of them and add a new arbitrary description and label, such as 01 or AA, and save the shapefile. The bad allocation error disappears, but after a while it reappears, so I repeat the process and it doesn't occur again for a while.
« Last Edit: November 13, 2025, 11:29:30 PM by mrv2020 »

mrv2020

  • Jr. Member
  • **
  • Posts: 85
    • View Profile
Re: Agisoft Metashape 2.3.0 pre-release
« Reply #11 on: November 14, 2025, 05:04:39 AM »
Hi,

I would like to request a new parameter for the Python API, such as document.save(silent=True) or an equivalent option.

Currently, calling doc.save() from a script triggers the same progress popup as a manual save, which interrupts the workflow when using autosave scripts. A silent save mode (no popup, no UI interruption) would be extremely useful for background autosave routines.

Because if the user has a polyline and polygon when opening the popup, sometimes it closes and what was clicked with the active command is lost when the popup appears, or a native command that activates an autosave as soon as the user finishes creating a shape. Below is the autosave code we use.

Code: [Select]
# -*- coding: utf-8 -*-
import Metashape

try:
    from PySide2 import QtCore
except ImportError as e:
    Metashape.app.messageBox(
        "Error importing PySide2 (QtCore).\n"
        "Autosave requires Qt Timer.\n\n"
        "Detail: %s" % str(e)
    )
    raise

autosave_timer = None
autosave_interval_min = 5
autosave_enabled = False

def autosave_log(msg):
    print("[AUTOSAVE] " + msg)

def autosave_tick():
    doc = Metashape.app.document

    if doc is None:
        autosave_log("No document open, skipping autosave.")
        return

    if not doc.path:
        autosave_log("Project has not been saved yet (no path).")
        return

    try:
        doc.save()
        autosave_log("Project saved: %s" % doc.path)
    except Exception as e:
        autosave_log("Error saving project: %s" % str(e))

def autosave_enable():
    global autosave_timer, autosave_enabled, autosave_interval_min

    if autosave_enabled:
        Metashape.app.messageBox("Autosave is already enabled.")
        return

    if autosave_timer is None:
        autosave_timer = QtCore.QTimer()
        autosave_timer.timeout.connect(autosave_tick)

    autosave_timer.start(int(autosave_interval_min * 60 * 1000))
    autosave_enabled = True

    autosave_log("Autosave ENABLED – interval: %d min" % autosave_interval_min)
    Metashape.app.messageBox(
        "Autosave enabled every %d minute(s)." % autosave_interval_min
    )

def autosave_disable():
    global autosave_timer, autosave_enabled

    if not autosave_enabled:
        Metashape.app.messageBox("Autosave is already disabled.")
        return

    if autosave_timer is not None:
        autosave_timer.stop()

    autosave_enabled = False
    autosave_log("Autosave DISABLED.")
    Metashape.app.messageBox("Autosave disabled.")

def autosave_set_interval():
    global autosave_interval_min, autosave_enabled, autosave_timer

    new_value = Metashape.app.getInt(
        "Autosave interval (minutes):",
        autosave_interval_min
    )

    if new_value <= 0:
        Metashape.app.messageBox("Invalid value. Insert minutes > 0.")
        return

    autosave_interval_min = new_value
    autosave_log("New interval: %d min" % autosave_interval_min)

    if autosave_enabled and autosave_timer is not None:
        autosave_timer.stop()
        autosave_timer.start(int(autosave_interval_min * 60 * 1000))
        autosave_log("Timer restarted with new interval.")
        Metashape.app.messageBox(
            "Interval updated to %d minute(s)." % autosave_interval_min
        )
    else:
        Metashape.app.messageBox(
            "Interval set to %d minute(s), but autosave is OFF.\n\nUse:\nAutoSave → Enable"
            % autosave_interval_min
        )

label_enable = "AutoSave/Enable"
label_disable = "AutoSave/Disable"
label_interval = "AutoSave/Interval (min)"

Metashape.app.addMenuItem(label_enable, autosave_enable)
Metashape.app.addMenuItem(label_disable, autosave_disable)
Metashape.app.addMenuItem(label_interval, autosave_set_interval)

print("AutoSave loaded. Use:")
print("  %s" % label_enable)
print("  %s" % label_disable)
print("  %s" % label_interval)
autosave_log("Autosave script loaded.")