Changes and Additions

Brace yourself.  Release 9 is a community driven product that evolves very rapidly.  Manifold builds are a mix of Cutting Edge builds and Official builds.

Cutting Edge Builds

Cutting Edge builds for Manifold Release 9 and Manifold Viewer introduce new features for community feedback, and end in a short number, such as  Cutting Edge builds usually time-out after the next Cutting Edge build is issued. This User Manual tracks the latest Cutting Edge build.  Cutting Edge builds have proven to be so stable that almost all Manifold users switch to the latest Cutting Edge build when it is issued.  Cutting Edge builds use portable installations to facilitate frequent updates.  


Each new Cutting Edge build is announced in the Cutting Edge section of the user Forum with download links plus a list of changes, new features and bug fixes.   

Official Builds

Official builds for Manifold Release 9 and Manifold Viewer are issued every few months for those who do not want to keep up with the latest Cutting Edge build.  Official builds are called Manifold System builds and are numbered to end in a three-digit number, for example, Manifold System 9.0.169.   Official builds do not include the latest features and bug fixes, which always appear first in the more frequent Cutting Edge builds. Official builds usually are significantly older versions than discussed in the latest online User Manual. Official builds for Release 9 and Viewer run forever and never time out.  Official builds are provided as Windows Installer installations with an optional portable installation as well.   

Check for Updates

Later builds will include all improvements and advances from previous builds.  Install the latest build,  and you get it all.


Official builds:   Launch Manifold and choose Help - About.     Manifold will reach out through Internet to check for a new Official build version.  If we do not have an Internet connection the system cannot check for updates.   The system does not automatically check for updates.


Cutting Edge builds: See the Cutting Edge section in the forum for the latest cutting edge build.  New builds usually include bug fixes, which are not listed below.  See the announcement in the forum for each build for a list of bug fixes in that build.


To learn how to install and run Manifold, see the Installations topic.

Run the Latest Build

Always run the latest version of Release 9 or Viewer.   Do not worry about using Cutting Edge builds.  Run those.  Newer versions of 9 or Viewer are free to download.  


If 9 has been activated on a machine, no new activation will be required to uninstall an older build and to then install a newer build.  


New builds incorporate all that has gone before.  No need to install an older build before downloading and using the latest build.   No need to install an "official" build before downloading and using the latest Cutting Edge build.


This Changes and Additions topic always lists key changes in the latest build. Scan recent changes to get started while updates to documentation are prepared and published.


Topics and screen shots are updated frequently online.  If there is a puzzling mismatch between a topic and the latest build, check back in a few days to see if the topic has been updated.  For added discussion on new builds, visit the user forum.   To see discussion for a particular build, enter the build number in the filter box at the top of the forum page.

A technical build delivered out of sequence to fix bugs introduced in the TIFF dataport by the previous build.  In addition, several new features have been added, including enhanced TIFF performance, GPKG improvements, faster loads for database dataports, and expansion of temporary data that can be used in a Manifold session to 1 terabyte in 64-bit mode.

Extensive work on panes and the user interface continues, as well as improved input / output features for databases and GPKG.  The Component and Record panes have been consolidated into a new Info pane that combines functions of both and introduces significant new features, such as extending former Record pane (now the Info pane) functionality to tables, with optional searching of related tables for lookups to picked records, like an on the fly, per-record join.  Layout frames can now be zoomed to a location.


Panes and User Interface



Other UI Features



Input / output

This build introduces a major user interface change, promoting all panes to standalone, independent operation, with all panes now becoming independent panes just like the Project and Layers panes.  This is the first step in a process of improvements to panes overall that will occur over the next few builds.  In addition to new commands for facilitating docking and undocking with windows and panes, many other small user interface improvements provide enhanced quality of life.  New query functions and transforms support manipulation of and computation on DateTime data types.


Panes and User Interface






New Functions and Templates


New functions and corresponding templates have been added for DateTime types and strings that are URLs:




Manifold System 9.0.172

Build 9.0.172 is an Official build.  This build or more recent is a must have build to replace all prior builds, for all Release 9 and Manifold Viewer users. Manifold System 9.0.172 delivers numerous enhancements released in the preceding series of Cutting Edge builds.  For detailed lists of changes, see individual build notes below for builds though


Highlights in 9.0.172 can be grouped into six major sections:


Projecting Images







Image above: Scene from the Knock Out Pixels Using Join and Alpha  video, using the Join dialog to create cutouts of images based on area objects, that can be overlaid in maps on other layers.





Queries and Transforms






Documentation and Videos


Many new topics and videos have been added.  See the Recent Topics section below for a list.


Specific enhancements since build include:


Recent Topics





























This build provides dramatic new capabilities in the Join dialog, adding raster to raster joins, vector to raster joins and additional general Join capabilities.  Joins into rasters allow different coordinate systems between the target, original image and the source, joined image or drawing, with automatic reprojection to match coordinate systems for the join.   Joins can move data from any channel in the source image to any channel in the target image, including creating new channels in the image, if desired.  The Join paradigm is used in a general purpose way to accomplish raster combinations and vector to raster transformations that in other systems require a patchwork of special purpose tools.  Other additions include a roster of significant new raster functions and utility functions, and improvements in parallelization with many threads.


Raster to Raster Joins (image -> image)



Vector to Raster Joins (drawing -> image)



Join (general)



Functions and Templates






Vector to Raster Performance Compared to 8

A technical build containing numerous functions, including new vector-related functionality required for upcoming new features such as georegistration, functions which have been planned for a while, and some special requests from users.


Functions and Templates



Discussion: The idea behind CoordSystemScaleXYToUnit is to use it together with GeomScale or GeomScaleRev instead of more complex coordinate converter functions, to perform measurements in the desired units when the math required is minimal. For example,  if we want to find a location on a line 2 miles from the start of the line, we can call CoordSystemScaleXYToUnit and pass mi to get the scale required to convert the line coordinates into miles, call GeomScale with that scale on a line, call GeomCoordLine and pass 2 as a distance, then convert the returned x2 value to a geom using GeomMakePoint, and finally call GeomScaleRev with the exact same scale as before to convert the created geom to the coordinate system of the line.





Recent Topics

Numerous topics and illustrations have been updated, with documentation as of build consisting of over 9600 illustrations and 680 topics.  New topics in recent builds include:


Edit - Join


Edit - Replace


KML Servers


Layouts and Legends


Layouts: Alignment Commands


Layouts: Create... Commands


Layouts: Info Pane




New Legend


Show / Rename / Delete Related


Sub-pixel Reprojection


Tools - Edit Localization File


Tools - Index LiDAR Files


Transform: Closest Rasters




Example: Resize an Image using Merge - We can change the size of an image while maintaining georegistration by using the Merge Images command.  This example shows how to take an image that is 3,038 x 4,334 pixels in size, using approximately 36 meter pixels, and to create a re-sampled image that is 1,115 x 1,590 pixels in size, using 100 meter pixels.  


Example: Use Edit - Join to Map a Pandemic - Creating a data source for a CSV web server, we acquire current data on cases and deaths worldwide for the Covid-19 pandemic.  We then use the point and click Edit - Join dialog to rapidly join that data, automatically aggregated as we desire, into a world map for visualization.


Example: Using the Select Pane Expression Tab - Writing snippets of SQL into the Expression tab to make selections.

Significant extensions to Edit - Join allowing spatial joins between drawings in a map and between drawings and images in a map.  This makes it very easy to join drawings and images using a point and click dialog instead of as formerly requiring use of transforms and SQL.  See the updated Edit - Join topic for initial examples of the new capabilities below.


Join (drawing -> drawing)



Join (image -> drawing)







Highly recommended for all.   This new build introduces a new dialog providing the massive power of JOINs with point-and-click ease, the Edit - Join dialog - no SQL required.  The build also saves GPGPU users from being stranded by newer NVIDIA drivers that support only the latest GPUs.   It introduces new infrastructure for very high accuracy reprojection of images, with the ability to convert coordinate systems with accuracy more detailed than the size of a single pixel.  The new infrastructure also provides required functionality for upcoming image georeferencing capabilities.  PBF functionality continues to be improved, with the ultimate goal of being able to work on all of OpenStreetMap, literally all roads and OSM data for the entire planet, on an average desktop computer.  Other features include new and improved commands for layouts, formats, and more.


Sub-Pixel Image Reprojection






Edit - Join Dialog



PBF / OpenStreetMap






Manifold System 9.0.171

Build 9.0.171 is an Official build.  This build or more recent is a must have build to replace all prior builds, for all Release 9 and Manifold Viewer users. Manifold System 9.0.171 delivers hundreds of enhancements released in the preceding series of Cutting Edge builds (see individual Cutting Edge release notes for details).   


Highlights in 9.0.171 can be grouped into eight major sections:


Raster analysis:






Layouts and Legends:



Extended and Improved User Interface:












For detailed lists of changes, see documentation or threads for individual 9.0.170.x builds in listings below.


Specific enhancements since build include:


New features wrapped into the 9.0.171 official build primarily revolve around a sophisticated new editing console, the Edit Localization File dialog, that supports the creation, editing and updating of localization files.


Edit Localization File dialog



More Localization Features




Many improvements have been added to layouts and legends, plus significantly faster indexing of LiDAR files through a) parallelism and b) background operation.



Layouts and Legends




A massive new build with numerous quality of life UI improvements, improvements in layouts including a first step in legends, faster algorithms in geoprocessing, new capabilities in dataports including KML and LiDAR, and significant improvements in Path geoprocessing.


A big change: Maps are assigned the projection with which they are created, using the New Map dialog. They no longer take their initial projection from the first component dropped into the map.  See the newly updated Maps and File - Create - New Map topics.




This build continues quality of life additions, with many user interface improvements.  Analytics introduce directional path computations on slopes for Closest... rasters.   Build components have been updated, including compiler, GPGPU library, V8, and ECW and MrSID modules.

A build focused on quality of life user interface features that make it easier to rename, delete and identify components that can be related to each other in projects with many hundreds of components and complex relationships, such as multiple different drawings taking data from different fields from within the same table, or created on the fly based on queries involving very many tables.  The new build also includes significant new raster analytic capabilities for generating rasters with Euclidean or shortest paths to points, new features to maintain libraries of LiDAR files and faster LiDAR data indexes.  




Path calculations using rasters can compute solutions for an entire region at once.  The illustration above shows least cost paths from each pixel to the nearest green point, where cost is computed on slope.  The background raster is not terrain elevation, but a computed path distance surface where each color represents the distance through the lowest cost path to the green dot.  Black borders show the regions of pixels that are "closest" by lowest slope cost distance to each green point.  The bright green lines are watershed lines through the lowest cost distance surface, showing what paths should be taken for lowest cost travel to each dot.  Illustration taken from the Transform: Closest Rasters topic.

An infrastructure build introducing significantly enhanced performance, three times faster, on heavily multi-core systems, particularly for raster computations.  Improvements make better use of many threads and better use of cache memory as well, and provide significant performance increases even with relatively small (four to eight) numbers of threads.  These improvements are a first step, with significant increases in core count saturation numbers expected in the months ahead.  Grid transformations have been extended by adding NADCON5, the new replacement for NADCON, together with numerous NADCON5 grid transformations added to the grids.dat file.



Prior to 170.1 (minutes:seconds):


170.1 (minutes:seconds):



Manifold System 9.0.170

Build 9.0.170 is an Official build.  This build or more recent is a must have build to replace all prior builds, for all Release 9 and Manifold Viewer users. Manifold System 9.0.170 delivers hundreds of enhancements released in the preceding series of Cutting Edge builds (see individual Cutting Edge release notes for details).   A summary of highlights in 9.0.170 can be grouped into thirteen major sections:


Layer groups:



Record pane enhancements:



Vector editing enhancements:



Traverses (Metes and Bounds / CoGo)



Coordinate system enhancements:



Cleaner and smarter UI:




Compute astonishingly fast, fully parallel, upstream watershed areas or stream networks on large terrain elevation data.  Illustrations from the Transform: Upstream Areas and Lines topic.









Spectacularly fast, fully parallel, visible areas and visibility index transforms work so fast we can see previews in real time.  Illustrations show visibility zones from multiple observers, with a preview of zones for all trimmed to a radius of six kilometers, as shown in the Transform: Visible Area / Visibility Index topic.

Faster startup, leaner, smarter, and more convenient installs:



Many additions to dataports:



Many new query functions:



Numerous performance improvements:



Specific enhancements since build include:




New snap modes and vector editing commands provide very rapid editing, both GIS and CAD-style.  Illustration from the Example: Edit Areas in a Layer to Align with Another Layer topic.

Recent Topics

Numerous topics and illustrations have been updated, with documentation as of build 9.0.170 consisting of over 9100 illustrations and 663 topics.  New topics in recent builds include:


Snap Modes


Transform: Visible Area / Visibility Index


Transform: Watersheds




GeoJSON Servers




JSON Servers




Example: Change the Pixel Size of a Terrain Elevation Image - Use the Reproject Component dialog to change the pixel size of a terrain elevation image, reducing the total number of pixels used.  This process is also called resampling.


Example: Create Parcels from Traverse Files - Traverse files using ESRI traverse file format are widely used by surveyors and government organizations in the US to define parcels and lines by describing a sequence of directions, distances and curves from a starting point.  Manifold automatically handles both tangent and non-tangent curves in ESRI traverse file format as well as the full variety of options used to specify angles, distances and curves.  This video shows how it's easy to create a parcel from a traverse file.


Example: Edit Areas in a Layer to Align with Another Layer - Editing areas in one layer so their boundaries align, either all or in part, with boundaries of areas in a different layer is a common task in GIS and CAD. For example, we might want area boundaries in a layer with different zoning areas for tax or regulatory purposes to be guided by the boundaries of administrative jurisdictions, such as the boundaries of cities, in a different layer.  This example shows how, using fast and simple techniques.  


Example: Add Vertices in the Middle of a Line being Created - During the creation of a new object we can go back and make corrections, additions and deletions to coordinates already marked.  In this example we start creating a new line, and then notice we have skipped over some locations we wanted to click.  We go back to add those vertices (coordinates), and then we continue with creating the line.


Example: Import AutoCAD DWG and Georeference - Neither AutoCAD DXF nor AutoCAD DWG format provide coordinate system information.  This example shows a typical case where documentation provided on the web site from which we have downloaded a DWG allows us to quickly and simply georeference the imported drawing.


Example: Import AutoCAD DXF and Georeference - Neither AutoCAD DXF nor AutoCAD DWG format provide coordinate system information.  This example shows a typical case where we import a DXF using an unknown coordinate system, but based on a lucky guess we accurately georeference the imported drawing.   


Example: Create Terrain Elevation Raster from a NASA PDS Table - A long, multistep example showing many powerful features of Manifold in various steps.  We import terrain elevation raster data from a NASA PDS archive and style the images with an elevation palette and hillshading.  We notice one of the images was wrongly georegistered by NASA, so we import the original LiDAR point data from a table in the PDS archive.  We transform the imported table from 0 to 360 degree longitudes into +/-180 longitudes, construct a geometry field, and then we create a drawing from the table that shows the LiDAR point data in the table.  Next, we use Kriging to create a terrain elevation raster from the LiDAR point drawing, and then we style that and hillshade it so it can be exactly overlaid on a Bing satellite layer to enhance the satellite photography with enhanced terrain relief.


SQL Example: List Transformation Grids - In this example we use a few snippets of easy SQL to list NTv2 and NADCON transformation grids that are available within the grids.dat compressed collection of transformation grid files.   Grid transformation files can be used when creating custom base coordinate systems, for NADCON / HARN / HPGN and NTv2 high accuracy transformations that use grid files.

Yet another large build with over 1000 new EPSG systems and transforms, and support for very high precision coordinate system transformations using NADCON and NTv2, with over 170 national and regional transformation grids.  New viewshed transform templates provide point-and-click access to viewshed functions.

Another large build with many new features for editing.  Major feature additions include metes and bounds and viewsheds.   Links that appear in the list below will jump to topics that have been updated.  Stay tuned for additional updated topics and new videos!  These notes will now include bug fixes as well as new features.


A significant user interface change:  Pressing Escape in a map window no longer clears the picked / edited record and no longer clears the cursor mode. Instead, use Ctrl-Backspace or right-click into the map and choose Undo Changes.  Using Escape made it too easy to lose changes to geometry / values.

A large build with many new features for editing.  Links in the list below jump to topics that have been updated. For example, see the updated Tracker topic for illustrations of using new editing capabilities.  Stay tuned for additional updated topics and new videos!


A major user interface change:  As before, an Alt-click onto an object in the active layer in a map picks that object as the context object in the Record pane Values tab, and has no effect on objects in layers other than the active layer  A Shift-Alt-click onto any visible object in a map, in any layer that allows picks, picks that object as the context object in the Record pane and makes the layer it is in the active layer.  Clicking onto any segment or coordinate handle of a picked object switches to the Coordinate tab.

Highlights include new query functions to access individual pixels within tiles, improvements to linked LAS/LAZ indexes that implement optimized spatial searches standard within .map projects, a key improvement to folders with layers, and improvements in the object model.

This build continues enhancing the folder system for layers, adding folders to map layer tabs.  It also implements significant internal improvements for performance utilizing memory, and introduces significant changes in various user interfaces for better ease of use and efficiency.  The Layers pane is now a standalone pane, like the Project and Contents panes.  Watershed query functions have been reworked to a more flexible create / use pattern and watershed performance has increased.


A major user interface change:  Windows and panes are now undocked and docked using a Shift-click instead of an Alt-click.

This build provides additional watersheds functionality, improves the groups user interface by replacing leading layer groups with folders for groups, improves multilayer map window rendering logic, and introduces a specialized point index to allow fast operations with big LiDAR data.

This build fills out watersheds functionality, provides bug fixes, and improves CSV and web CSV dataports.

This build provides numerous small improvements to the GUI for faster and easier editing, plus significant enhancements to Watersheds. Feedback on the prior build has been implemented in the Layers pane to support groups planned for the next build, which will feature folders instead of leading layers.

This build provides new, parallel, Watersheds capabilities that are more sophisticated and dramatically faster than prior Manifold generations, while also handling  immensely larger data.  Other highlights include new infrastructure for coordinate system queries and extensive new facilities for measurement, allowing a choice of Euclidean or geodetic measurement.  Work with grouping in the Layers pane continues to more forward as well.

A Cutting Edge build introducing group logic in layers, with extensive structural improvements for better installations, enhanced GPGPU, and even faster startup. GPGPU now requires Kepler generation or later GPU.



Manifold System 9.0.169

This build or more recent is a must have build to replace all prior builds, for all Release 9 and Manifold Viewer users.  9.0.169 provides truly superior rendering improvements over the prior Official build.  Build 9.0.169 is an Official build. Manifold System 9.0.169 delivers hundreds of enhancements released in the preceding series of Cutting Edge builds.  See individual Cutting Edge releases for details.   A summary of highlights from through can be grouped into eight major sections:


Better controls and dialogs:



Radically improved vector graphics and Style:




A staggeringly diverse range of visual effects can now be created in Manifold, with examples of bitmap use as seen above from the Example: Use Repeating Images to Fill Areas  topic.


Smoother, faster rendering with less flicker:



Significantly extended raster transforms, with many more GPGPU optimizations:



An RGB image of a butterfly as processed by a multichannel RGB Prewitt edge detection filter.  Open a larger version of the above image.



Many improvements and additions in the query engine:



Many improvements for databases:



Extended support for Unicode and Collations:



Many improvements in file / web dataports:




Illustration, above: The Richat Structure in Africa, a blended display using Space Shuttle SRTM terrain elevation data colored and hill shaded, blended with Bing satellite imagery with increased contrast, and enhanced by 7x7 matrix calculation of Curvature, Profile as discussed in the Example: Enhance Terrain with Curvatures topic.  The diameter of the view is approximately 42 kilometers.

A Cutting Edge build with numerous internal improvements to rendering.  This build represents a new generation in display quality, as rendering improvements are truly wonderful.

This build provides a dramatically new Schema dialog with numerous enhancements for field and Index creation, including computed fields and fields with constraints.  The new Schema dialog allows use of the same interface and commands, learned once and used in many settings, to manipulate table schemas both within Manifold and also within a variety of popular DBMS packages, providing options and settings that are automatically configured for the varying capabilities of different DBMS packages.



Collations are a big deal with modern, international data.  See the new Collations topic.





-- $manifold$


-- prepare to convert coordinates from drawing to image

VALUE @conv TABLE = CALL CoordConverterMake(





-- set 'height' field in drawing to average height taken from image


  SELECT [mfd_id], [height],

    TileGeomAvg([image], CoordConvert(@conv, [geom])) AS [computed]

  FROM [drawing]

  THREADS SystemCpuCount()

) SET [height] = [computed];


Manifold System 9.0.168


Manifold System 9.0.168 - Breaking Syntax Changes

Following is a summary of breaking changes to query syntax in 9.0.168.   Queries written in older versions which use features listed below must be adjusted to the new syntax to work in 9.0.168 and subsequent builds.


Query parameters now use @ as a prefix.


-- Old

EXECUTE WITH (p NVARCHAR = 'folder') [[

  SELECT * FROM mfd_meta WHERE

    StringCompareCollate(property, p, Collate('', false, false, false)) = 0;



-- New

EXECUTE WITH (@p NVARCHAR = 'folder') [[

  SELECT * FROM mfd_meta WHERE

    StringCompareCollate(property, @p, Collate('', false, false, false)) = 0;



Function parameters now use @ as a prefix.


-- Old


  p & ': ' & q


SELECT combine(name, type) FROM mfd_root;


-- New


 @p & ': ' & @q


SELECT combine(name, type) FROM mfd_root;


EXECUTE requires either writing query text within [[ ... ]] brackets, or using the name of an existing query.  


Previous forms of syntax that allowed using EXECUTE without leaving the scope of the current query have been removed and can no longer be used.


-- Old

EXECUTE CALL ValueSequence(1, 10, 1);


-- New (uses replacement feature)

TABLE CALL ValueSequence(1, 10, 1);


Expressions for computed fields and constraints use [[ ... ]].


-- Old


  mfd_id INT64, INDEX mfd_id_x BTREE (mfd_id),

  geom GEOM,

  geomarea FLOAT64 AS GeomArea(geom, 0)


INSERT INTO temp (geom)

VALUES (GeomMakeRect(VectorMakeX4(0, 0, 10, 10)));


-- New


  mfd_id INT64, INDEX mfd_id_x BTREE (mfd_id),

  geom GEOM,

  geomarea FLOAT64 AS [[ GeomArea(geom, 0) ]]


INSERT INTO temp (geom)

VALUES (GeomMakeRect(VectorMakeX4(0, 0, 10, 10)));


For more details, see cutting edge threads in the forum for builds leading up to 9.0.168, for example, the thread for build  The query builder lists all of the above changes plus new statements (VALUE, TABLE, SCRIPT) plus new functions.



Manifold System 9.0.167


Manifold System 9.0.166


Manifold System 9.0.165