Changes and Additions Volume 1

This topic provides the first volume of archived Changes and Additions.   See the Changes and Additions topic for notes on more recent builds.

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

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


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

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


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

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

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


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

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

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

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

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

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



Manifold System 9.0.169

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


Better controls and dialogs:



Radically improved vector graphics and Style:




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


Smoother, faster rendering with less flicker:



Significantly extended raster transforms, with many more GPGPU optimizations:



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



Many improvements and additions in the query engine:



Many improvements for databases:



Extended support for Unicode and Collations:



Many improvements in file / web dataports:




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

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

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



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





-- $manifold$


-- prepare to convert coordinates from drawing to image

VALUE @conv TABLE = CALL CoordConverterMake(





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


  SELECT [mfd_id], [height],

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

  FROM [drawing]

  THREADS SystemCpuCount()

) SET [height] = [computed];


Manifold System 9.0.168


Manifold System 9.0.168 - Breaking Syntax Changes

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


Query parameters now use @ as a prefix.


-- Old

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

  SELECT * FROM mfd_meta WHERE

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



-- New

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

  SELECT * FROM mfd_meta WHERE

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



Function parameters now use @ as a prefix.


-- Old


  p & ': ' & q


SELECT combine(name, type) FROM mfd_root;


-- New


 @p & ': ' & @q


SELECT combine(name, type) FROM mfd_root;


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


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


-- Old

EXECUTE CALL ValueSequence(1, 10, 1);


-- New (uses replacement feature)

TABLE CALL ValueSequence(1, 10, 1);


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


-- Old


  mfd_id INT64, INDEX mfd_id_x BTREE (mfd_id),

  geom GEOM,

  geomarea FLOAT64 AS GeomArea(geom, 0)


INSERT INTO temp (geom)

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


-- New


  mfd_id INT64, INDEX mfd_id_x BTREE (mfd_id),

  geom GEOM,

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


INSERT INTO temp (geom)

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


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



Manifold System 9.0.167


Manifold System 9.0.166


Manifold System 9.0.165