Changes and Additions

Manifold builds can be either Cutting Edge builds or Base 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.   

Base Builds

Base 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.  Base builds are called Manifold System builds and are numbered to end in a three-digit number, for example, Manifold System 9.0.179.   Base builds do not include the latest features and bug fixes, which always appear first in the more frequent Cutting Edge builds.


Base builds usually are significantly older versions than discussed in the latest online User Manual. Base builds for Release 9 and Viewer run forever and never time out, although it is an epic mistake not to keep up with more recent base builds.  Base 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.


Base builds:   Launch Manifold and choose Help - About.     Manifold will reach out through Internet to check for a new Base 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

Run the latest, Cutting Edge version of Release 9 or Viewer.   Do not worry about running Cutting Edge builds.  Learn how to use portable installations so you can run Cutting Edge builds.  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.

Build 181.0 is a Base Build that is recommended for all users. It implements a huge new GetFeatureInfo request capability that opens the door to WMS based click-to-get-data websites and OGC tools.  It incorporates all improvements from the 9.0.180.x series of builds. Build 181.0 also introduces a new policy to remove expiration dates for Cutting Edge builds.  That prevents websites from timing out when Cutting Edge builds are used for production sites, and it positions builds for planned developmental projects.



Build 180.8 adds WMS server capability to Manifold Server's HTTP server capability.   The support is automatic and does not need any additional configuration.  


WMS Server







Build 180.7 adds conveniences to the desktop user interface as well as more information in the web user interface.  Access keys in Windows provide keyboard shortcuts to launching commands from menus.  Those shortcuts can now be used whether access keys are displayed or not.   


Access keys are also turned on for automatic menus that are generated in Manifold dialogs and panes, for example, in the lists of fields that can be picked when choosing a field in the Transform pane.   That makes it easy to pick a field in the Transform pane field picker dropdown: click on the picker box and enter the first letter in the field name desired. That will jump to the fields that start with that letter, and then the up/down arrow keys will move between the fields to pick exactly the field desired.


In the web user interface, if a description has been entered for a location or a layer, that description will automatically appear just before the location or layer entry in the web UI's menu tools for picking a location or turning a layer on and off.


Desktop User Interface



Web User Interface

Build 180.6 fixes quirks in the prior experimental build to create a robust cutting Edge build suitable for production use.  It also expands the Info Tool in the Manifold Server web user interface to launch email and URL text values as hyperlinks in a new browser window.  The Info tool has also gained a dropdown list control that allows specifying the layer from which Info tool clicks show field data.


Info Tool




Build 180.5 is an experimental, cutting Edge build that adds an Info tool to the web server user interface.   The Info tool reports attributes (field values) for a clicked object.


Info Tool

Build 180.4 is a cutting Edge build that adds new web server capabilities, upgrades use of optional GDAL file import capabilities, adds useful capabilities when working with Z values, and provides fixes.


Serving Web Maps



GDAL and Z Values




Build 180.3 is a cutting Edge build that extends Manifold Server capabilities for HTTP map serving, including automatic adjustment of the default web page user interface for mobile devices, the ability to turn layers off and on, support for locations, and the ability to set display image size.





Serving Web Maps

Build 180.2 is a cutting Edge build that introduces many optimizations and improvements for Manifold Server when used as a TCP server to share data to Manifold clients or as an HTTP Server for Internet map serving to any browser.   Rendering enhancements increase performance for desktop use as well as map serving performance.  A new setting for resampling allows zooming in to see individual pixel boundaries in rasters, a useful feature for pixel based editing.


New caching capabilities for web server sources often used as backgrounds in maps served to the web by Server can result in dramatically faster performance, especially when many users are browsing maps on a Server-enabled web site.


A dramatic increase in the number of connections allowed, even in the limited map server built into inexpensive Manifold Universal licenses, allows sophisticated use of many connections from web browsers for an enhanced user interface.  Command buttons in the default web interface have been reworked to be more compact and easier to use.






Manifold Server










Always Running Queries on TCP Server Data Sources


As is well known, Manifold allows accessing data from data sources other than the main .map file within a query.  An example:



SELECT * FROM [server]::[data];


The above will return records from the table named data on the data source named server.


If data is a query, however, the logic is more complicated.  All data sources may run queries using the Manifold query engine, with Manifold syntax. Some data sources, for example, databases like PostgreSQL or SQL Server, may also run queries using their own query engine, with their own syntax.


If the data source for server has its own query engine, the system checks whether data should be run using the server's native query engine or using the Manifold query engine. (The system does that by inspecting the text of the query and looking for a $manifold$ directive.)


If data is a native query, the system dispatches it to the server to run it. If data is a Manifold query, the system runs it on the Manifold client, since the server does not know how to run a Manifold query (only the Manifold client does).


The same logic also applies to:



EXECUTE [[ SELECT * FROM [data]; ]] ON [server];


In the above, it looks like the query asks the server to run SELECT * FROM [data]; -  that is superficially true, but to be precise, the system is asking the data source. The data source then follows the same logic as above: it checks whether data is a native query or a Manifold query, and then either asks the server to run it if it is not a Manifold query, or if it is a Manifold query, runs it on the Manifold client.  That makes sense if one assumes that only Manifold clients know how to run Manifold queries written in Manifold's implementation of SQL.


All of the above is generally desired.  But if the data source is Manifold Server running as a TCP server, then both of the above example queries ran on the server even if the query was a Manifold query.  That is because, unlike other types of server data sources, Manifold Server can run Manifold queries.  The general logic used by data sources to decide where a query should be run has been updated in build 180.2 to incorporate the exception that Manifold Server can run Manifold queries.


Before the enhancement in build 180.2, Manifold Server data sources already were running queries on the server in many circumstances. For example, if the served .map file had a query component, connecting to the server and then opening and running that query would run it on the server.  Connecting to the server with a Manifold client and then opening a command window for the server and running statements in that command window would also run those statements on the server.  


But opening a command window for the main .map file and running one of the above two example queries, or queries similar to those, would run the query on the client because of the previous logic that a data source should always run a Manifold query on the Manifold client.   That logic has now been updated in build 180.2 so attempting to run queries on a Manifold Server data source will now always run them on the

Build 180.1 is a cutting Edge build that introduces web server (HTTP) / map server capabilities in Manifold Server within Manifold Release 9 Universal edition and Manifold Release 9 Server edition.  This allows Manifold users to create a GIS-enabled web page without any need for either a web server like Internet Information Server or Apache, or a map server.  The web server and map server are now built in parts of Manifold.  If you have a static IP address reachable from Internet, you can create GIS-enabled web pages.  No programming required.


Build 180.1 is a first release of HTTP serving in Server with a focus on keeping it simple.  Coming up in future builds will be many additional features, such as many extensions to the map UI with new REST endpoints, support for WMS and other protocols, and other features.


Web Server / Map Server






For Web Developers


It is easy to put the map served by the HTTP server into an existing web site.  The HTML code to do so looks like this:


<script src="webscript.js"></script>



  window.onload = function () {

    let config = {

      bounds: { xmin: xxx, ymin: xxx, xmax: xxx, ymax: xxx, },

      cx: 800,

      cy: 800,

      urlbase: "/",


    manifold.createMap(document.querySelector("#map"), config);







<div id="map"></div>


The above can be put into an existing web site served by some other web server, like Microsoft Internet Information Server (IIS) or Apache. The URL for the script and the urlbase config parameter will have to be adjusted to point to an appropriate instance of the Manifold HTTP server.


When the web page loads, the script defines the manifold object and the call to manifold.createMap will create all necessary HTML elements for the map UI in the specified div, style them and wire them to events. The content of the div will then display the map served by the Manifold HTTP server and allow operating it.   Future extensions to the map UI will only affect the config section in the inserted code.


REST Endpoints




Build 180 is a base build that is recommended for all users.  It provides a number of conveniences requested by the user community and incorporates all improvements from the 9.0.179.x series of builds.






Build 179.4 is a technical build that updates third party libraries, improves label performance, and introduces some user conveniences from the wishlist.







Build 179.2 introduces new capabilities for controlling the display of contents within layout frames by setting scale using new capabilities for setting scale as absolute values, by pixel sizes, or by the size of the view within the frame.  The new scale controls also work for map, drawing, image, and labels windows.


Scale and Position







Illustration at right: The scale readout shows the size of the view in the Map window, 205 meters by 161.982 meters. Right click it to show the scale in meters per pixel like 0.529 m / px, or in absolute scale like 1:2000.

Build 179.2 is a quick update that incorporates community requests for the new Save as Image capability introduced in the prior build, 179.1.  See the 5 Minute Tutorial - DPI in Save as Image video and the 5 Minute Tutorial - Custom Views in Save as Image video for two essential Save as Image capabilities added in 179.2.  See also the new Edit - Save as Image topic.


Rendering Views as Images



SQL Functions




Build 179.1 is a cutting edge build that introduces technology for high performance creation of raster images that capture visual displays in map windows (including drawing, image, and labels windows).   The new technology can be used from a user friendly Edit - Save as Image command, or from SQL functions.  Capabilities delivered in this build are just the visible tip of extensive technology inside the system that provides a foundation for fast generation of rendered views for use in upcoming new features, such as web serving.


See the First Look - Save Map Views as Images video for a quick introduction to new Save as Image capabilities.



Rendering Views as Images



SQL Functions








Build 179 is a new Base build, incorporating all improvements in the 9.0.178.x series of builds.   It is recommended for all users.  The main changes since the prior cutting edge build,, is the provision of quick choices for which map layers are incorporated into the legend, as well as quick and easy customization of formatting for different legend entries.   See the First Look - Legends in Maps and Layouts video for a quick introduction to new legend capabilities.








Library Updates

Cutting edge build 178.6  is a large build with many new features and improvements for legends, including a dynamic Legends virtual layer for map windows.  The build also includes significant improvements in automatic label placement and overlap resolution and improvements in Style.   Build 178.6 is the last cutting edge build in the current series focused on the cartography features and the last build for 2022. It will be the basis for the next base build early in 2023.


Labels and Overlaps



Style and Cartography







Cutting edge build 178.5 provides label overlap management between layers in maps, as well as some technical improvements to multi-threaded rendering of layouts.


Label Overlaps


layer - labels in the layer may not overlap each other, but may overlap labels from other layers.  This is the default mode.

map - labels in the layer may not overlap each other and may not overlap labels from other layers whose overlap mode is also set to map. Labels from lower layers are given priority over labels from higher layers.






Cutting edge build 178.4 provides a variety of conveniences and user interface improvements for grids, North arrows, scale bars, Style, and layouts.  It also provides new query functions to work with interactive selections from SQL, a command line option to help manage serial numbers, and important updates to third party software used by Manifold, notably a migration to the latest Visual C++ environment from Microsoft.





Grids, North Arrows, Scale Bars






Command Line Option



manifold -showserial


That launches a Manifold session that in the Log window pane shows the first 8 characters of the serial number.  The first characters of the serial number are not written into the log file and are only shown in the Log window. This option allows administrators to see what serial number has been used on a given machine.  The new command line option works for all editions of Manifold, SQL for ArcGIS Pro, and Release 8, but not for Manifold Viewer (which does not use serial numbers).


Third Party Updates



Query Functions




SelectionReplace Examples


To use the following examples, create a new .map file, open the mfd_meta table, open a new command window, then dock the new command window below the mfd_meta table (right-click the tab for the command window and select Dock Down) so that you can run the example queries and immediately see what they do.




-- example 1



  SelectionReplace(mfd_meta, (VALUES (2) AS (mfd_id)), TRUE);


-- example 2



  SelectionReplace(mfd_meta, (VALUES (2), (3) AS (mfd_id)), TRUE);


-- example 3



  SelectionReplace(mfd_meta, (VALUES (2), (3) AS (mfd_id)), FALSE);


-- example 4



  SelectionReplace(mfd_meta, (SELECT * FROM mfd_meta WHERE name='mfd_root'), TRUE);




Cutting edge build 178.3 extends North arrow and scale bar capability to layouts. North arrow and scale bar frames can now be added to layouts, with automatic context for those frames taken from component frames in the layout.  Grids have also been extended with more options. North arrows, scale bars, and grids have been integrated into the Info pane.








Cutting edge build 177.8_2 introduces virtual layers that provide North arrows, scale bars, and grids in maps.  See the First Look - North Arrows video for a quick introduction.


Virtual Layers




North Arrows


Configure a North arrow by double-clicking the North Arrow virtual layer.  The North Arrow dialog allows setting the following parameters:




Scale Bars


Configure a scale bar by double-clicking the Scale Bar virtual layer.  The Scale Bar dialog allows setting the following parameters:





Configure a grid by double-clicking the Grid virtual layer.  The Grid dialog allows setting the following parameters:







Cutting edge build 177.8 provides a variety of user interface conveniences, including the ability to Copy from tables and to Paste into third-party applications like Excel and Notepad.









Build 177.8 is a new Base build, incorporating all improvements in the 9.0.177.x series of builds.   It is recommended for all users.  The main changes since the prior cutting edge build,, are a new system for specifying zoom ranges in maps and also for rendering to a fixed scale.  Base builds starting with 9.0.178 for Release 9 and 8.0.34 for Release 8 are now exclusively 64-bit.  


Scales and Rendering



Label Styles




Build 177.4 provides many controls for line labels and label overlap spacing.  It also adds an export control to Manifold Commander and two fixes.


See the updated Style: Labels topic for examples of new label style controls in action.







Manifold Commander and More



manifoldcmd "c:\" -export:"Main Map" -out:"c:\world_map.gdb"




Build 177.3 adds new capabilities to Manifold Commander, improves labels along lines, provides a vertical text alignment style in layouts, adds new dataports, and provides fixes.


Manifold Commander



manifoldcmd -runquerytext:"SELECT * FROM blocks WHERE state='CA'" -out:out.jsonl


Labels, Layouts, Messages







Build 177.2 is a historic build in that it drops support for 32-bit versions of Manifold projects.  All Manifold products are now 64-bit and require 64-bit Windows operating systems.  


Build 177.2 expands the display viewport size in table windows to 2 billion records.  That is absurdly larger than humans can comprehend, but together with Manifold speed plus reasonable safety measures now built in, expanding the number of records that can be interactively displayed in a table window greatly expands the reach of interactive procedures to very large tables.  


Build 177.2 supports ArcGIS 3.x for SQL for ArcGIS Pro, and also adds features to various dataports and provides bug fixes.


32-bit Versions Deprecated





Manifold was one of the first companies to ship 64-bit products.  Despite being one of the first to move to 64-bit, for over 20 years Manifold has maintained both 64-bit and 32-bit versions of all Manifold products.


Over time most, if not all, Manifold users naturally moved to primarily use the 64-bit versions of the products. At the same time, maintining obsolete 32-bit code has become a limiting factor for adding new features.  32-bit only limits often impact new, memory-intensive features, for example, when field statistics are computed for the Style pane, limits must be applied so that 32-bit code does not run out of memory.  For some time, features have not been available in 32-bit mode due to lack of support from third parties.  For example, CUDA is 64-bit only, and ArcGIS Pro for which Manifold provides an add-in is 64-bit only as well.  Outdated versions of clients for database must be used because they are the last available versions to support 32-bit mode.


In 2022, the limits and costs of continuing to provide 32-bit versions is no longer worth the decreasing value of that compatibility.  Manifold is therefore going exclusively 64-bit from build 177.2 onward.  That will make it more efficient to add new features, and will remove limits on how those new features must be designed.  That will make many things simpler for new users.  The first example of such a new feature is providing 2 billion record displays in table windows, which 64-bit operation makes possible.  Going exclusively 64-bit also reduces the size of the Manifold download to less than 31 megabytes.


There are several areas users may be relying on 32-bit code directly or indirectly:



If you are currently relying on 32-bit code in any way, you don't have to switch immediately. The move to 64-bit only can be gradual. You can use the new 64-bit only builds of Release 8 and Release 9 as portable installs in parallel with the last base builds that still include 32-bit code. Eventually, you may be able to transition to using 64-bit builds all of the time, with only occasional use of legacy portable installs that have 32-bit code.


2 Billion Records Displayed in Table Windows



Watch the new 10 Minute Tutorial - Very Big Table Windows video to see 1.295 million records displayed in a table window.  Fast!






Build 177.1 introduces in Universal and Server editions a new version of Manifold: Manifold Commander is a console application version of Manifold that provides the full range of Manifold query and scripting capabilities from a command line, making it easy to automate almost any GIS, DBMS, or ETL job.  


Commander is provided as a manifoldcmd.exe executable file within the Manifold installation hierarchy.  The manifoldcmd.exe executable file launches from a command line such as in a Windows Command Prompt window, or in a .bat batch file, or from a Windows PowerShell script and so on.  Commander can run either queries or scripts from within a specified .map file, and Commander also can run scripts from a specified script file stored outside a Manifold project.  When Commander is used in conjunction with Windows Task Scheduler, you can launch command lines to have Manifold automatically do work on a regular schedule, such as updating a CSV file every night that is served via a CSV server.  


Build 177.1 also extends interactive selection capabilities, makes it easy to switch licenses, and provides bug fixes as well as improvements in the MapInfo MIF dataport.


Manifold Commander





manifoldcmd <command> [<options>] [<file>]




-runquery:xxx - Open the file and run the specified query component.  The component can be in a nested data source.  


Supported options: -logfilter:xxx, -logfolder:xxx, -open:xxx, -out:xxx


-runscript:xxx - Open the file and run the specified script component.  The component can be in a nested data source.  


Supported options:  -logfilter:xxx, -logfolder:xxx, and -open:xxx


-runscriptfile:xxx - Run the specified script file.


Supported options:  -logfilter:xxx and -logfolder:xxx




-logfilter:min - Skip dates and prefixes when logging to console


-logfilter:minscript - Skip dates and prefixes, skip non-error non-script messages when logging to console, useful to limit output for further processing with command-line tools


-logfilter:none - Log full data to console (default)


-logfolder:xxx - Folder for log files


-open:readonly - Open file in read-only mode (default)


-open:readwrite - Open file in read-write mode


-open:readwritesave -  Open file in read-write mode, save file after operation completes, this includes saving all nested data sources


-out:xxx - Output file, for example, a CSV or JSON.  The type is determined by the file extension, .csv or .json, used.




A .map project called contains a query called MexQuery that from a linked table generates a result table of all provinces in Mexico with a population greater than 3000000.  To run the query and save the result to a CSV file called Mex.csv:


manifoldcmd -runquery:MexQuery -out:"C:\Projects\Mex.csv" "C:\Projects\"


Save the result to a SQLite file called Mex.sqlite:


manifoldcmd -runquery:MexQuery -out:"C:\Projects\Mex.sqlite" "C:\Projects\"


Save the result to a Manifold .map file called


manifoldcmd -runquery:MexQuery -out:"C:\Projects\" "C:\Projects\"


Save the result to an Esri file geodatabase within a folder hierarchy C:\Projects\Mex\gdb.gdb\ and create the Mex and gdb.gdb sub-folders:


manifoldcmd -runquery:MexQuery -out:"C:\Projects\Mex\gdb" "C:\Projects\"


Double-quotes around arguments like the names of files are not necessary if there are no spaces in the argument.   If the output file already exists, the above will overwrite it with the new version.


Interactive Selection










Build 177 is a new base build, incorporating all improvements in the 9.0.176.x series of builds.   It is recommended for all users. The main change since the prior cutting edge build,,  is the expansion from a single Release 9 Universal edition into three new licensing levels:  Professional, Universal, and Server.   The three different editions are distinguished by the availability and configuration of Manifold Server.   Over time, it is likely that other differentiations will emerge, with higher end features in the higher end editions.


Manifold 9.00 Professional Edition



Manifold 9.00 Universal Edition



Manifold 9.00 Server Edition



Other Features

Build 176.7 contains small improvements to the user interface and a set of additions to Manifold Server.   Server can now run as a Windows service. The next build will likely be 9.0.177, a new base build.


Watch the new 10 Minute Tutorial - Manage Services video to see the new Manage Services dialog in action.  


Illustration: The new Service dialog makes it easy to create new Server instances on a server machine, without having to launch a Command Prompt window and configure new instances using command lines.


Manifold Server



Tech Tips:  When running Manifold Server on a machine, launch Manifold with administrator rights:  right-click the manifold.exe file and choose Run as Administrator.   When Manifold launches, in Help - About, press the Install button to install the license for all users if it has not yet been installed for all users.     To manage Server services, always launch Manifold with administrator rights.


Illustration: The new Manage Services dialog makes it a lot easier to manage Manifold Server instances running as services, without needing to hassle with Windows services dialogs.  Click the New toolbar button to add a new Server instance.  Ctrl-click a row to select it, and then press start, stop, or delete buttons as desired.  Double-click a row to change settings like auto or manual launch on system reboot.






Build 176.6 introduces dramatically faster spatial overlay functions and faster LiDAR performance with LAZ files.   Big jobs that previously took over two and a half hours now can be done in six minutes.


Spatial Overlay Improvements



LiDAR Improvements



The above improvements significantly improve the performance of spatial overlays when input data sets are not similar in size or do not significantly overlap.   That is a very common situation since often a smaller data set, such area objects for a particular town or parcel, is used to extract data of interest from a very much larger data set, which might cover an entire county or province.  The exact performance gains depend on the overlap size, and can easily be 5x, 10x or more. For LAZ, the improvements are even bigger.   A test example used a LAZ file 375 million points with a COPC index and fetched 3.5 million points covered by an area in a different drawing using GeomOverlayTouchingFilter.  The time to complete the job in prior builds was two hours and 38 minutes (9230 seconds).   Using build 176.6 the time dropped to only six minutes (363 seconds), 25 times faster.  If the area was even smaller, extracting fewer points from the LAZ file, the task would have taken even less time.



Build 176.5 expands the license activation system to add an option for enabling installation of a license for all users on a machine at once.  That simplifies use for some organizations, for server use, and for IMS use in Release 8, which uses the same activation system.


Build 176.5 also introduces a new, integrated, parallel Download Manager, Manifold's new, high speed, parallel system for downloading tiles from web servers such as image servers, TMS servers, WMTS servers and ArcGIS REST servers.   The download manager is a built-in feature within Manifold that works automatically in background.  There is no need to install, configure, or administer any modules or other software.    Just use Manifold the way you always do and web servers seem to be much faster and more responsive.  


This build also provides conveniences such as persistent data types in the Schema dialog remembering the last-used type, Drag and Ctrl-Shift-Drop to link data sources read-only (which facilitates creating projects for Manifold Server and other multiuser settings), a new email style in tables for rapid emailing, and a Suggest Locations toolbar button in the Register pane for faster georeferencing.  A variety of other features and a few fixes are also in the new build.


All Users Activation Option




Download Manager Features




Other Features





Build 176.4 introduces Manifold Server, Manifold's new, high speed, fully parallel, multiuser spatial database. Server provides very powerful new technology for sharing vast amounts of data from Manifold .map project files, enabling many users at once to use data in projects served by Server.  Server is a built in part of Manifold Release 9 Universal edition, build 176.4 or more recent.     Build 176.4 also includes new features for the Manifold ODBC driver, improvements to ArcGIS REST, GDB, ECW and TIFF dataports, as well as fixes.


Manifold Server, called Server for short, is a read-only spatial database server that shares the contents of a Manifold project to one or more Manifold clients. Clients are regular Manifold desktop sessions, or even free.   Because .map projects can contain nested links to other .map projects, the project served by Server can be the top level entry point to a hierarchy that shares the contents of thousands of .map projects, containing many terabytes of data.



Manifold Server is automatically installed when installing Release 9 Universal.  Server can run on a machine at the same time as a regular Manifold session, and multiple Server instances can run at the same time on the same machine, with each Server instance sharing out a different .map file.   


See details in the new Manifold Server topic.   See also the First Look - Manifold Server video.

Manifold Server Highlights

Easy to Launch, Load, Administer - Server is the easiest to administer multiuser database server around. Simply launch Server in a command line with the Manifold project file containing data to use.  No need to mess around with loaders.  Change the data in the database?  Stop the server and then launch it again with an edited project, or an entirely different project.  Share the contents of the database with someone else?  Send the .map project file and you're done.  Same with backups - easy!


Many Clients and Many Servers -  Many Manifold client sessions can run on the same machine, with each such session connecting to many different Server instances on that same machine or on other machines.   Many Server instances can run on the same server machine, with each Server instance using a different port and/or IP address, and each Server instance can serve many Manifold clients from other machines or from the same machine.  


Parallel Connections - Manifold client sessions connect to Server using asynchronous, multithreaded, parallel connections for significantly better performance than narrow technology like ODBC.    Many threads are balanced on the fly to handle both large and small threads.


Server-Side Rendering Pipeline -  When rendering big layers most of the work is setting up the rendering task.  Server prepares layers for rendering server-side with full parallelism with only the final stages of rendering happening in the client.  That allows very large data in Server to be browsed by clients almost as fast as if it were local.  Server-side rendering eliminates the need to send tens or hundreds of gigabytes through the network connection to a client for rendering.  You can pan and zoom through a 100 GB vector project through a Server connection almost as fast as if it were local.


Server-Side Execution -  Queries in projects served by Server are executed on the server machine, sending only results to clients.  Queries can be executed within the Server, within the client, or in a mix of both. Executing queries within Server avoids sending large amounts of data through network connections.

Distributed Parallel Computation - Manifold clients can connect to many different Server installations at the same time, pulling layers from those different Server installations to use together in maps. If a map includes three different layers from three different Server installations on three different machines, when that map is panned and zoomed each of the three different layers will be prepared for rendering and otherwise serviced by the Server machine sharing that layer, so that the computational resources of three different machines will be utilized.   Instead of parallel processing on a single computer handling all three layers, parallel processing on four different machines, the three Server machines plus the client machine, will be used to speed up the rendering pipeline for the map.  That can result in visibly faster response with big layers.


Database / Data Source Tunneling -  Tunneling allows users to reach through Server to utilize data sources within Server.   If a project served by Server contains data sources that are databases, such as SQL Server, Oracle, PostgreSQL and others, a Manifold session connecting to Server can open those data sources in the Server hierarchy and reach down into them to use their contents.  Other data source content, such as linked files, linked Manifold .map projects, linked Esri geodatabases, and other data sources is also automatically tunneled.  Web sources like Bing or Google image servers or ArcGIS REST servers reachable through Internet is not tunneled, but instead automatically set up for direct connections from the Manifold client session to the web source.   In both cases layers and data sources served through Server can simply be used without users worrying about the details of whether they are tunneled or not.


Servers Nested within Servers - Projects served by Server can contain Manifold Server data sources, with nested Server data sources automatically setting up pass-through tunneling.   For example, a project served by Server on machine A might include Server data sources using Server installations on machines B and C.   A Manifold client connecting to Server A will see the Server B and Server C data sources within that project and will be able to open them and use the data and links they contain.   Server A will automatically arrange pass-through tunneling to Servers B and C, which will in turn automatically arrange pass-through tunneling to the data sources they share.


Automatic Version Negotiation - Different build levels can be used for a Server installation and for Manifold clients connecting to that Server installation.  When the connection is formed the different versions will negotiate to use a common feature set despite different build levels.


Easy User Interface - Both Server and client user interfaces have been kept as simple as possible. Server launches in a simple command line, with a few simple configuration options.   Connections to Server within Manifold clients use the same New Data Source interface used for other databases and data sources.   


Copy / Paste Server Data Source - Server data sources in a Manifold project are just like any other data source.  They can be saved as Favorites for one-click addition to any new projects, they can be copied from one Manifold session and pasted into a different Manifold session, and they are saved as part of the project whenever a Manifold client project is saved, with automatic reconnection when the saved project is opened.


Secure Access - Server can be launched with a user login and password required, to control access when accessible from public Internet.



Manifold Server Features


manifoldsrv [<options>] <file>


The file is required and can be of any type supported by 9. If no file is provided, Server prints the command line syntax and exits. If the file is provided, Server opens it and starts serving connections to it.


-addr:xxx -- network interface to listen on, the default is the primary network interface.

-port:xxx -- port to listen on, the default is 9099, currently unassigned by IANA.

-user:xxx -- user required to connect, the default is none.

-password:xxx -- password required to connect, the default is none, ignored if user required to connect is not specified.

-connections:xxx -- maximum number of connections, the default is 20, use 0 to remove the limit.

-workers:xxx -- number of worker threads to process requests, the default is 4, the number can vary between 1 and 128.



Other Features





Build 176.3 provides bug fixes, a variety of much-requested features, and significant improvements to printing layouts.  It dramatically improves PostgreSQL / PostGIS insert speeds, adds a Fill transform for raster images, and provides a Selection button on the toolbar to quickly toggle filtering to showing only selected records in tables.  Layouts can now be printed with automatic, on the fly scaling of any web image layers to provide intended scale, and printing a layout now supports printing images of any size to any resolution.



Illustrations: Applying the Fill transform to a space shuttle SRTM terrain elevation raster with missing pixels (left) by filling in using nearest pixel values gets a really smooth and natural looking result (right). It's really hard to see where pixels were filled. One click does the trick.







Illustrations: A screenshot of a PDF created by a layout that includes a Bing Streets image server layer using the old system at left, where scaling to print resolution results in too-small lines and labels.   At right the new system automatically scales to screen resolution in the PDF, so when the PDF is printed or viewed we see what we would see in a browser showing the same image server.



Build 176.2 provides a new optimization in the query engine for dramatic performance increases for IN <table> expressions (both for IN and NOT IN), plus new SQL functions for attributes and powerful new Sieve functions for rasters.  New transforms provide point-and-click access to Sieve and to random value generation functions.   A new set of Select functions provide easy selection based on uniqueness criteria.  A user-friendly addition to the Register pane pre-loads entered control points to make workflow faster and easier.


Faster Queries



As is usual for optimizations that start building and using indexes instead of doing full scans, the speed ups are dramatic, running over 800 times faster than before.  For example, consider a test query:


VALUE @count INT32 = 1000;


CREATE TABLE t (mfd_id INT64, INDEX mfd_id_x BTREE (mfd_id), v INT32);

INSERT INTO t (v) TABLE CALL ValueSequence(1, @count, 1);

INSERT INTO t (v) TABLE CALL ValueSequence(1, @count, 40);



Following are typical results for various numbers of records set by the @count global variable, with "old" being before build 176.2 and "new" using build 176.2:



For 20000 records, the optimization introduced in 176.2 reduces the time required from 482 seconds to about half a second, running well over 800 times faster.



Illustrations: Applying the Sieve transform to a land use and land cover classified raster (left) using a Minimum area of 100 to get the resulting, simplified raster (right).  Pixel values throughout the raster are adjusted so regions of very small pixels are merged into larger neighboring regions, with the pixels in the former smaller regions given the values of the larger neighboring region into which they have been merged.  Sieve functions can be used for many purposes, such as de-noising and simplifying rasters.


Raster Sieves





SQL Functions and Other Transforms









Layouts and Georeferencing

Build 176.1 introduces visibility scale limits (also known as scale ranges or zoom ranges) for layers in maps using the Layers pane.   The build also provides improvements in Esri Geodatabase (GDB), Shapefiles (SHP), DBF, and Google KML or KMZ dataports, facilitating interchange with Google products.


Visibility Scale Limits



The new capability makes it easy to create map displays that automatically show or hide layers depending on the zoom level (scale) of the map view.  We can automatically turn on more detailed layers as we zoom into a map, or show different content depending on the zoom level.


Dataports - Import / Export




Build 176 is a new base build, incorporating all improvements in the 9.0.175.x series of builds.   It is recommended for all users. Changes since include a 32-bit mode launch option for SQL for ArcGIS Pro, Refresh within ArcGIS Pro, mobile geodatabase support, and GPKG and SQLite layers within ArcGIS Pro support.  Also added for Advanced moved are new options to specify system colors, a new dataport for Google Sheets, and enhancements to the layers pane.


Additions and Changes



SQL for ArcGIS Pro




Build 175.6 concentrates on small adjustments, library updates, and fixes in preparation for wrapping up the current series of cutting edge builds and issuing a new base build.


Additions and Changes




Third Party Updates




Build 175.6 adds even more formatting options for field values, including the ability to launch URLs from table fields in browsers.  Styles also include the ability to set angular measurements, such as latitude and longitude values in degrees, in different formats.  A new style also allows choice fields in tables.  Styles set in tables are now automatically inherited by labels.   Language options have been extended to include over 600 languages, supporting the full set of languages in Windows 10.  


Build 175.6 also adds a new dataport for KoBoToolbox, a widely used open source technology for data acquisition using mobile clients or a web browser. The data can be hosted on a server provided by KoBoToolbox (there are generous free options), or on your own system with KoBoToolbox.  The new capability makes it easy to acquire data in the field using survey forms and to instantly make that data available within a Manifold project.


The next build is expected to fill missing pieces for features added during the 175.x build series, add various small items based on user feedback, fix outstanding bugs, and go public as the next base build, 176.0.









A typical use might be StringFormatNumber([Latitude], 'adN2', '')  which would result in a numeric value of -6.0363 being formatted as the string 6.04º S.







Table Editing




Data Collection with KoBo





Build 175.5 is a large build with many new features.  It utilizes new formatting functions introduced in the prior build to provide point-and-click formatting of data displayed in tables with a very wide range of preset and custom formatting options for different data types.  Upcoming builds will automatically apply formatting specified in tables to labels and other settings.   


Build 175.5 also introduces new formatting functions,  new utility functions, and improvements in the Schema dialog.





Table Formatting








Formatting Functions










Other Query Functions







Build 175.4 begins adding formatting options for field values. This build adds query functions that format values of various types. Subsequent builds will allow applying this formatting to fields in tables and queries, and automatically carry it over to labels.  This build can be used immediately to format values in labels by using expressions in the label text pattern.







Query Functions and Format Patterns








Illustrations: Simple format changes allow creating many different labels and strings from a text field and a datetime field.







Illustrations: Specifying a language-country code automatically sets the format and language used. The exact same datetime value shown using D format with language set to English using en-US, German using de-DE, Cherokee using chr-US, and Indian Kashmiri using ks-IN shown above.





? StringFormatDurationDays(1.133, '', '') -- 97891 (seconds)

? StringFormatDurationDays(1.133, 'd:hh', '') -- 1:03

? StringFormatDurationDays(1.133, 'h:mm:ss', '') -- 27:11:31









Other Query Functions





SELECT [name], UuidMakeNew() AS [uuid] FROM [cities table];


The result of the above query is that all records ill have the same UUID. Because the query engine sees that the call to UuidMakeNew() is exactly the same for each record, it calls the function once, caches the result, and then copies the result into each record.



SELECT [name], UuidMakeNewRef([name]) AS [uuid] FROM [cities table];


In the above query, each record will have a new UUID generated. Because the calls to UuidMakeNewRef(...) are different between records, the query engine sees that and dutifully calls the function anew for each record.


The following allows creating a computed field with the current date, which will update itself after some of the fields are changed:



ALTER TABLE [cities table] (

  ADD [last_edited] DATETIME AS [[

    DateTimeCurrentRef([name] & [state] & CAST([population] AS NVARCHAR))




The query takes a table named cities table and adds a computed datetime field named last_edited. Adding a field populates it with the current date. If we then pick some record and change the value of one of the fields mentioned in the expression, such as name, state or population, the computed field in that record will be recomputed and set to the now-current date.

Build 175.3 reworks labels to use a text pattern instead of a text field.   The new system applies to all use of labels, such as storage, rendering, printing, and so on.  A text pattern is much more flexible than a text field: it can reference more than one field, and it also allows easy changes to label texts without changing the table (tables can be very big, or may not have permissions to be altered).   Future builds will allow formatting field values in the pattern, and will include various improvements for rendering labels.   Support for GDB is gradually being extended, and future builds will include several updates specific to SQL for ArcGIS.



Illustration above:  Labels can include expressions that use almost any SQL function and feature, such as CASE.   The Style pane makes it easy to edit existing label text.











New Video

Check out the new video providing a tutorial introduction to creating labels:


5 Minute Tutorial - Labels from Fields and Expressions - A quick look at the new label system in Manifold Release 9 that makes it easy to create labels from fields and expressions.   Create label text from multiple fields and also using expressions, taking advantage of any of the hundreds of SQL functions provided in Manifold.  A new addition to the Style pane for labels makes it really easy to edit label text, including a full expression builder.  Works in the free Manifold Viewer, too!

Build 175.2 provides an extensive new system for interactive editing of traverses, including automatic adaptation using the compass rule to close traverses, all part of enhancements to vector editing and the Info pane.  It also includes improvements and fixes for various dataports.  Even if we are not interested in traverses, the new capability for live traverse editing allows us to create lines and areas parametrically by specifying the direction and distance of line segments, a very useful capability in general purpose vector editing.   


Illustration at right: Edit traverses interactively in the info pane, using any of the formats supported for Esri-style traverses.


Traverses / Vector Editing / Info Pane









New Video

Check out the new video providing a tutorial introduction to editing traverses:


First Look - Edit Traverses - Traverses specify borderlines for areas or lines by describing the segments followed to draw the figure, beginning at a starting point and then going in a given direction for a given distance, then the going in a given direction for the specified distance for the next segment and so on. Traverses are used in surveying for parcel descriptions and in general purpose GIS for drawing figures parametrically, as in drawing a line at a given angle for a given distance.   


Manifold Release 9 has the rare ability to edit traverses on the fly, either when interactively creating a new traverse, or to edit existing traverses imported from parcel or other traverse descriptions.  The video shows how easy it is to edit traverses in Release 9, including how with one click you can automatically adjust a traverse so it closes precisely, using the mathematically sophisticated "compass rule" to automatically adjust angles and distances throughout the traverse.  All this works in the free Manifold Viewer, too!

Build 175.1 is a cutting edge build that contains a big set of fixes and improvements for databases, better error diagnostics for operations on data in MAP files, and a rework of query operations for tile masks.  


Databases, Error Diagnostics, and Query Operations







Manifold System 9.0.175

Build 9.0.175 is a Base build.  This build or more recent is a must have build for most users to replace all prior builds, for all Release 9 and Manifold Viewer users.  Build 9.0.175 provides numerous improvements with substantial changes to many topics in documentation, with illustrations now totalling over 12,300 full color illustrations.  For detailed lists of changes, see the build notes in the Changes and Additions topic for builds though

New Activation System

Starting with Release 9 build 9.0.175 and Release 8 build 8.0.31, Manifold® products use a new activation system.  See the discussion in the New Activation web page.



Important: If you do not want to switch over to the new activation system, do not install and activate Release 9 build 9.0.175 or Release 8 build 8.0.31. Activating a newer build using a legacy serial number will automatically upgrade that serial number to the new activation system. That is a one way upgrade: Once upgraded, a serial number cannot be degraded back to legacy status.


While the new system provides great convenience for most people, some licensees may prefer to stay with the old activation system. If desired, licensees can stay with the old activation system by not installing new builds. To stay with the old system, continue using Release 9 build 9.0.174 and Release 8 build 8.0.30. See the Manifold Activation topic for more information.

Other Highlights

Highlights of build 9.0.175 can be grouped into several main sections:


Labels: Numerous additions to labels, such as curved line labels to follow line segments, both on screen and when printed, along with numerous style features such as curved Unicode labels, mixing multiple languages, mixing right to left and left to right languages, multiple lines in labels, shadows, and much more.


Coordinate Systems: Thousands of updates for EPSG 10.19, new Natural Earth projections.


Dataports: Upgrades to GDAL, GDB, SQLITE / GPKG, Esri mobile geodatabases, LAS/LAZ LiDAR dataports, LAS library, and more.


User Interface: Drag and drop from Windows Explorer to import or to link files and data sources into the Project pane, ODBC configuration from About, better copy and paste into GDB and similar data sources.


SQL: Use of double quotes as delimiters, new functions such as GeomWithin, GeomOverlayWithin / GeomOverlayWithinFilter, faster GeomOverlay functions, dramatically faster unindexed joins, specification of field properties when creating tables using SELECT INTO and much more.


For details, see the listings below for builds through   Improvements integrated into build 9.0.175 since build include:

Build 174.4 provides several significant improvements for the query engine and SQL functions, which can provide dramatic speed increases in certain cases.  Other new features provide improvements in ESRI file geodatabase (GDB) connectivity and LAS / LAZ LiDAR operations.






Esri File Geodatabase (GDB)




Query Engine




SELECT [area], [code], [name], [geom]

INTO [gdb]::[states] (

  PROPERTY 'FieldGeomType.geom' 'area' -- the default would be 'point'

) FROM [states];



SQL Functions

Build 174.3 provides improvements for LiDAR data use in the LAS and LAS library dataports as well as various system improvements.  Several other development branches (for example, with various improvements to labels) have been maintained during recent builds: changes from these branches will appear in the near future.


Default = Shift-Space,

Create Text = Shift-T,

Create Area Sample = Shift-A,

Create Color Sample = Shift-C,

Create Line Sample = Shift-L,

Create Point Sample = Shift-P,

Create Text Sample = Shift-X.

manifold.exe -odbcupdate

manifold.exe -odbcdelete


Illustrations above: The Natural Earth (at left) and Natural Earth II (at right) projections.    Natural Earth II is a more rounded projection, with smaller polar regions.

Build 174.2 is a quick build to enhance label capabilities, along with some database and UI improvements and miscellaneous fixes.









Build 174.1 introduces rendering improvements and provides a starting implementation of curved line labels, including improvements in Unicode / multi-language labeling for all labels.   The build also provides significant improvements in importing and linking files, such as drag and drop files from Windows Explorer to import or link, as well as upgrades to EPSG.  Upcoming builds will expand on labels, add new features for vector editing, and add various small improvements throughout the system.


Rendering and Labels




Drag and Drop / Import and Link










Manifold System 9.0.174

Build 9.0.174 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.  Build 9.0.174 provides hundreds of improvements with substantial changes to hundreds of topics in documentation and illustrations now totalling over 12,100 full color illustrations.  The online user manual now uses Google search within the manual.  For detailed lists of changes, see the build notes in the Changes and Additions topic for builds though


A preliminary description of 9.0.174 follows.  Highlights can be grouped into several main sections:


Registration: There is a new Register pane which allows georegistering (georeferencing) raster or vector data using control points. Control points can be entered using the cursor or by typing coordinates directly. Control points can be saved to a component and loaded back. There are multiple registration methods available: numeric methods of varying orders, including methods with restrictions and projective generalization, thin-plate spline, and triangulation. The pane can show registration errors for individual control points, as well as the total registration error. Reported errors are updated dynamically as control points are added, deleted, edited, or turned on and off. The results of the registration can be previewed.


Editing: There are new commands for editing vector data. Clip trims the edited geometry to objects in the specified layer, keeping parts that are either inside or outside of the objects. Erase deletes parts of objects in the specified layer that are either inside or outside of the edited geometry. Merge combines the edited object with other objects in the active layer, merging field values according to user-specified transfer rules. Split cuts objects in the specified layer into parts using the edited geometry as a cutter line, producing new objects and splitting field values according to user-specified transfer rules.


Analysis and Queries: Gravity (IDW) interpolation allows specifying interpolation order. There is a new interpolation method for thin-plate spline. There is a new interpolation method for natural neighbors. There is a new Spatial select template which allows selecting geometry using a spatial criteria. There are new query functions for registration and interpolation, including a parallel variant for gravity (IDW) interpolation, and a new function to filter pixel values in a tile. The DROP statement tolerates missing components.


Dataports: Image libraries load faster, and report the number of files matching the mask for diagnostics. LAS / LAZ and LAS libraries expose shifts and scales for coordinate values in metadata. LAS libraries load faster, and can be refreshed with automatic updates to the coordinate system and similar data. Exporting data to LAS / LAZ embeds the coordinate system into the file, always produces LAS 1.4 with the record type determined from the available fields, and does not require any fields apart from geometry. PostgreSQL and Jet databases support boolean fields. Multiple databases support UUID fields either via a native database type or as a fixed-length string. MySQL databases support unsigned integer fields.


Components: CUDA has been updated to 11.2.2, GPGPU modules have been recompiled. ECW has been updated to for several minor fixes. WEBP has been updated to 1.2.0 for several minor fixes and better compression quality. SQLITE has been updated to 3.35.3 for new query clauses and functions as well as improvements to the query planner. ICU has been reworked to use the built-in Windows 10 implementation, expanding support for non-English languages and reducing install size. V8 Javascript engine has been removed with V8 scripts mapped to JScript.NET, reducing install size.

Build 173.6 provides a big batch of updates to external libraries, major enhancements for vector editing and the Select pane, major updates for LAS and LAS libraries for LiDAR data, updates for databases, improvements in queries, and bug fixes. The general direction for builds after that will be editing and labels.  Build 173.6 is a candidate for the next official build.


External Libraries



Vector Editing and Select Pane



LAS/LAZ and LAS/LAZ Library Dataports for LiDAR











This build contains various improvements and bug fixes all over the system, getting ready for an upcoming build, probably the next build, as an official release.   The general direction for builds after that will be editing and labels. 


 Important: Runtime Libraries Updated


Build 173.5 has switched to the new version of Microsoft's Visual C++ compiler and new versions of Microsoft Visual C++ runtime libraries. Since cutting edge builds use portable installs, using build 173.5 or subsequent portable installations requires upgrading Visual C++ runtime libraries to the new versions.  


Download the new versions from Microsoft's latest supported Visual C++ downloads page.









Recommended New Topics


New Videos

5 Minute Tutorial - Editing with Clip - The new Clip interactive editing command makes it easy to create areas that automatically follow boundaries of existing polygons, to create complex new areas. It's also easy to create new lines that are clipped to complex boundaries.  We see how in this short video.


We also see how to combine the Clip command with the new Merge editing command to edit polygons "in place" in whatever data source we want, including ESRI geodatabases, PostGIS, data sources, GPKG, shapefiles or any of hundreds of other data sources.  


Newsflash - Merge, Clip, and Split - See a three minute, video providing a first look at how to use fast and easy, new editing commands in Manifold Release 9.



5 Minute Tutorial - LAS Point Statistics by Area  -  Save thousands by using Manifold Release 9: The "LAS Point Statistics by Area" tool in Spatial Analyst for ArcMap and ArcGIS Pro adds attribute fields to polygon features for LiDAR points that fall within those polygons, adding the minimum, maximum, and mean Z values in each polygon, as well as the point count of LiDAR points in each polygon, and also the standard deviation of Z values in each polygon.  The video shows how to do the same thing in just a few clicks in Manifold's point-and-click Join dialog. No need to buy Spatial Analyst. Manifold includes the Join dialog and thousands of other capabilities, all for only $95. Save thousands of dollars and enjoy easier workflow too!


5 Minute Tutorial - Scrape an ESRI Feature Server - Working with web-based ESRI feature servers? If you want your own copy all the vector features (points, polylines, polygons) those servers provide that's easy to do with Manifold Release 9.   This video shows how to connect to a typical ESRI feature server, how to drill down and open the feature layer desired, how to copy all the features and to paste them into the local project. It's all a simple matter of point and click, copy and paste.


5 Minute Tutorial - Create a Multiband Landsat Image - Landsat data provides images in individual bands, such as Bands 4, 5, and 6, for visual red, near infrared and shortwave infrared. Creating large, multiband Landsat images using many Landsat tiles can involve combining dozens of individual band images.  Manifold Release 9 is perfect for the job, because it can handle many large rasters effortlessly, merging them instantly, and then combining bands into false color RGB multiband images. Manifold does all that with easy to use, point and click dialogs. No need for programming. This fast-paced video shows how in under five minutes of workflow, including importing the original Landsat data downloaded from USGS. All this works in the free Manifold Viewer too.

This build contains extensions to geometry editing and raster interpolation. 




Map windows support several new commands in the context menu used for editing vector geometry:



Suppose we would like to draw a single polygonal area that automatically fills in the regions between building footprint polygons in a neighborhood.



Choose Create Area and in the usual way draw a polygonal area that outlines the neighborhood. Right-click and choose Clip from the pop-up edit menu, and choose OK. Instantly, the provisional area outlines are automatically redrawn to follow the boundaries of building polygons within. We can further edit those if we like, or proceed with a single click to create the new area.



Commit the edit (a single click or Ctrl-Edit) and Manifold auto-completes the new polygonal area to fill in the neighborhood, with open regions that exactly fit the building polygons. We can Cut that new area and Paste it into a new layer to see it without the building polygons, to see the fantastic complexity of the created polygon, created in seconds.











Many New Videos

Many new videos have appeared to cover the spectacular new georeferencing features:


5 Minute Tutorial - Georegistration - In just five minutes we learn how to georegister (georeference) a vector drawing with an unknown coordinate system to a known-good map.  Georegistration is a key capability that allows us to cast raster images and vector drawings into geographic context, so they can be used as GIS layers in maps.  We can georegister aerial photos and drone photos, scan paper maps and georegister those for use in GIS, we can georegister CAD drawings, and we can rescue vector drawings and raster images that once had coordinate systems but were published in formats that failed to preserve coordinate systems.  Super!  Works in the free Viewer, too.


5 Minute Tutorial - Georegister a Drone Photo - See the fast and easy way to georeference drone photos for use in GIS and online web mapping: Learn how to georegister (georeference) a drone photo to line up with Google imagery for full GIS use and for use within Google Maps and other web mapping applications. This video uses exactly the same drone photo used in ESRI's ArcUser example of how to georeference a drone photo in ArcGIS Pro. The difference is that using Manifold is faster and easier.


5 minute Tutorial - Georeference Many CAD Layers - Georeferencing CAD layers is a common task in any GIS. Manifold makes it a lot easier with fast, simple workflow that avoids extra effort and lets us recycle what we've already done.  This video shows how we can add a few control points just once and then georeference an entire stack of CAD layers imported from a DWG without adding more control points or repeating any work.  


Georeference a Scanned Paper Map - In only five minutes of actual work we use Manifold to georeference a 157 MB scanned paper map so it can be used as a layer in GIS.  The scanned map is a historic map showing Davy Crockett National Forest in Texas, downloaded from the Library of Congress website.  


Georegistration - Save and Load Control Points - Georegistration (georeferencing) in Manifold uses control points to match features visible in the raster image or vector drawing to be georeferenced with corresponding features visible in a known-good reference.  This video shows how with a single click we can save or load control points.  Because Manifold saves control points as ordinary vector drawings, we can take advantage of that to make mass changes to control points if we like.  In the video we use two versions of a scanned map, one with a gap in the middle and in the other where the gap is closed.  Control points that were placed in the version with a gap can be easily adjusted, dozens at a time, for use in the other version, saving a lot of repeated work.


Georeference a Historic Map using a List of Cities - Georeference a scanned paper map downloaded from the Library of Congress that shows slave populations in Southern States in the 1860 census.   The scanned map shows locations of cities, which we will use as control points.  We create a drawing to quickly mark the locations of cities in the scanned image.  Next, we download a modern map of cities in the US and their locations.  We can use the list of cities in the modern map as a source of control points for the target, saving us from having to enter them manually.  Manifold automatically matches names, ignoring those that are not needed, from the modern map during the georegistration process.  


Georeference a Whole World Image - See how to georeference an image scraped from the web that shows the geology of continents as they were 200 million years ago.

We mark four control points in the image, then we roughly mark four corresponding control in a Manifold map using Bing as a background layer.  In the Register pane we edit the coordinates of those control points to be even +/- 90 and +/- 180 degrees, and then we press Register.  Done!   The video also shows how we can import and georeference a second image similar to the first, without needing to add any control points, just re-cycling the ones we created before.

This build provides incremental improvements to registration, including implementing user requests from the past month of using the Register pane.  


See the updated Register Pane topic for discussion and illustration of new features listed below.  Next: improvements to geometry editing, and various quality of life features.  





This build contains improvements to registration with significant enhancements to the Register pane. Next: incremental improvements to registration, improvements to geometry editing, and various quality of life features.  




Illustration: Georegistering a scanned, paper Elliott map of the Gettysburg battlefield using 37 control points and the thin-plate spline method. OpenStreetMap is used as the background layer in the target window.




Illustration: The thin-plate spline method matches control points exactly.  Once the Elliott map image (original at left) has been georegistered (at right), we can use it with endless other GIS layers, such as a terrain elevation layer created from one-meter resolution LiDAR data, as seen above.  Partial opacity in the georegistered Elliott layer blends with the terrain elevation layer to provide hill shaded relief and better understanding of the Elliott map information. Features have been labeled in a third layer.




Illustration: The region of PIckett's Charge, an uphill Confederate infantry charge over open fields against Union artillery.  The Elliott map original (at left) shows the locations of battlefield graves in the week after the battle, with each small line a Confederate grave, and each crossed line a Union grave, graphically illustrating staggering Confederate casualties.  The georegistered image (at right) appears in partial opacity above a Google Satellite layer to show the location of burials relative to modern development.  Although most battlefield burials were moved to  memorial cemeteries, some graves remain where soldiers from either side fell.

This build is dedicated to Georegistration.   Georegistration is the process of adjusting a raster image or vector drawing to match the coordinate system and conformation of a known-good reference component, such as a Bing or Google web served map, or other image or drawing that we know has a correct coordinate system, is located in the correct geographic location, and shows geographically accurate features.  Georegistration is also called georeferencing in ESRI and other GIS products.   Manifold uses georegistration and georeferencing as synonyms.


See the 5 Minute Tutorial - Georegistration video for a quick start on georegistration, as well as the step by step Example: Georegister a Vector Drawing and Example: Georegister a Drone Photo topics.








Manifold System 9.0.173

Build 9.0.173 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.  Build 9.0.173 provides many hundreds of improvements with substantial changes to hundreds of topics in documentation and updates to over 9000 illustrations.   For detailed lists of changes, see individual build notes below for builds though


Highlights can be grouped into several main sections:


Panes and Windows




New Info Pane:



Illustration: Creating a buffer zone using a formula for the distance, with kilometers as units of measure, and then saving the result to a new geometry field in the table with a drawing automatically created to visualize that new geometry.  


New Select and Transform Panes







Illustration: Dynamic viewshed (visibility zone) preview showing regions (blue) visible from the selected parcel.  75% opacity used for the preview with a split screen showing preview only to the left of the vertical blue splitter line.  Synthetic terrain from SRTM data with satellite imagery backfilled into missing SRTM pixels.   The selected parcel is in a small valley in the hills but still gets a view of the sea.





Dataports (File Formats and Data Sources)






Virtual drawings



Virtual images



Numerous UI Improvements



Updates since 172.7



Illustration: Reduced scale image from the Example: Flooded Roads topic.     Click the image for a larger, full-size illustration, one of the over eleven thousand screen shots that illustrate the User Manual for Release 9 and Viewer.


User Manual:  


Recent Topics

Following is a selection of new User Manual topics added since the prior official build, including a few renamed topics with substantial re-writes (only a few of many substantially rewritten topics are included below):

















































































































































This build expands the preview feature for Select and Transform panes by adding support for previews in map windows.  Map windows include all visual windows, such as opening drawings, labels, or images in their own windows.  


See the 5 Minute Tutorial - Previews video.






Illustration above:  Right click on the blue preview caption bar and choose Left or Right to generate a Split screen visual preview in a map window, showing the visible area from the selected point using the Viewshed transform.  We can drag the splitter line left or right to expand or contract the width of the preview display.

The first in a two-build series introducing new preview capabilities for Select and Transform panes.  This build provides contains the core capabilities for table windows, including changes to panes, separate query generation paths for preview queries, new supporting machinery in the query engine for the preview queries and more. The second build in the series will add refinements for table windows and extend previews to map windows.






Another large build,  continuing implementation of the new user interface for Select and Transform panes.  The build including major new transforms, such as the new geometric Split : cuts transform, which splits objects in one layer by using lines or areas in another layer.  Includes major new capabilities in geocoding servers, and updates to key libraries used internally.


Select Templates



Transform Templates







A huge new build, setting records for the number of improvements and additions.   Check out the rewritten Select Pane and Transform Pane topics, as well as the new Select Reference and Transform Reference topics for major user interface changes to the Select and Transform panes.


The new build contains numerous breaking changes to queries, mostly due to extensions in function arguments. The full list of function changes is in the Queries section below.


Select and Transform



Select Templates



Transform Templates



Components in Queries















Preliminary Documentation

See the following topics for preliminary documentation on build

General Information

Select Pane

Introduction to the Select pane.  A similar topic is the Select Reference topic.

Select Pane Expressions

Using expressions in the Select pane, either using the Expression template and as expressions within parameter boxes.

Select - Expression

Using expressions in the Select pane.  (mostly duplicates the Select Pane Expressions topic).

Transform Pane

Introduction to the Transform pane.   A similar topic is the Transform Reference topic.

Transform - Expression

Using expressions in the Transform pane

Select Templates

Select - Binary

Select templates for variable length binary fields, of type varbinary.

Select - Boolean

Select templates for Boolean fields, of type boolean.

Select - Datetime

Select templates for date and time fields, of type datetime.

Select - Geometry

Select templates for geometry fields, of type geom, geommfd, or geomwkb.

Select - Numbers

Select templates for numeric fields, of type float32, float64, int8, int16, int32, int64uint8, uint16, uint32, or uint6.

Select - Numeric Vectors

Select templates for numeric vectors, that is fields with ordered sets of multiple numbers, of x2 type float32x2, float64x2, int8x2, int16x2, int32x2, int64x2uint8x2, uint16x2, uint32x2, uint6x2, of x3 type float32x3, float64x3, int8x3, int16x3, int32x3, int64x3uint8x3, uint16x3, uint32x3, uint6x3, or of x4 type float32x4, float64x4, int8x4, int16x4, int32x4, int64x4uint8x4, uint16x4, uint32x4, uint6x4.

Select - Text

Select templates for variable length text fields, of type nvarchar or varchar.

Select - Tiles

Select templates for raster data fields, of type tile.

Select - UUID

Select templates for Universally Unique IDentifier (UUID)  fields, of type uuid.

Transform Templates

Transform - Binary

Transforms for variable length binary fields, of type varbinary.

Transform - Boolean

Transforms for Boolean fields, of type boolean.

Transform - Datetime

Transforms for date and time fields, of type datetime.

Transform - Geometry

Transforms for geometry fields, of type geom, geommfd, or geomwkb.

Transform - Numbers

Transforms for numeric fields, of type float32, float64, int8, int16, int32, int64uint8, uint16, uint32, or uint6.

Transform - Numeric Vectors

Transforms for numeric vectors, that is fields with ordered sets of multiple numbers, of x2 type float32x2, float64x2, int8x2, int16x2, int32x2, int64x2uint8x2, uint16x2, uint32x2, uint6x2, of x3 type float32x3, float64x3, int8x3, int16x3, int32x3, int64x3uint8x3, uint16x3, uint32x3, uint6x3, or of x4 type float32x4, float64x4, int8x4, int16x4, int32x4, int64x4uint8x4, uint16x4, uint32x4, uint6x4.

Transform - Text

Transforms for variable length text fields, of type nvarchar or varchar.

Transform - Tiles

Transforms for raster data fields, of type tile.

Transform - UUID

Transforms for Universally Unique IDentifier (UUID)  fields, of type uuid.

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: Alignment Commands


Layouts: Create... Commands


Layouts: Info Pane




Show / Rename / Delete Related


Sub-pixel Reprojection


Tools - Edit Localization File


Tools - Index LiDAR Files


Raster Paths




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 Raster Paths 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 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 Viewsheds 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








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.


Prior Builds

The Changes and Additions list is continued in the Changes and Additions Volume 1 archival topic.