Basic License Features

The Basic License is designed to be an entry-level scanner software package for easy and simple scanning of point clouds with a handful of common post-process commands. The package itself is lightweight.

3D-Based CAD Platform

NDEVR is built on top of the Vulkan Graphics. Vulkan was first released in 2016 by Khronos Group (the same group behind the most popular graphics engine, OpenGL) at a lower-level but far more powerful API. The NDEVR graphics engine is the first commercial CAD software written from scratch atop the Vulkan API using a database-like approach for handling big data. Note that older hardware (>8 years) may have limited support for the platform without updated graphics drivers.

The raw NDEVR CAD Platform allows multiple simultaneous views, lighting, orthographic editing, and 3D selection and manipulation. The Scan Editor uses a subset of features from the base, centered around meshing and point viewing.

The engine also supports various lighting and color manipulations. For the scanner product, functions include the ability to color by various properties, attach images to scans, and edit meshes and lighting of finished models.

Mesh / Cloud Commands

The standard program will support all important point and mesh commands, including those dealing with offset and coordinates.

Mesh commands, such as ensuring proper normal and winding generation, allow the generated meshes to be used across various platforms. Basic selection and cleanup commands are also supported for point clouds.

Coordinate projection is included by default and displayed when importing models. This will allow local coordinate-to-lat/lon conversions and support Google Earthâ„¢ images and complex scene placement.

Real-Time Point Scan

The most prominent feature used by the base scan product is the real-time scan engine. This pulls the data from the scanner in real-time and logs it to the program and any output streams the program may have (files, logs, etc.).

The cloud may also be colored during the scan based on various reference channels (position, scan time, intensity, distance from scanner, etc.). When exporting to flexible file formats (such as E57), these values are preserved. Basic scans come with the base product and include horizontal, vertical, and horizontal + vertical.

Custom Scanner Models

The base package supports adding custom scanner models and has support for moving parts. Each scanner includes support for a two-sectional head, a base, and a tripod. These can either be custom created based on a drawing or concept art; or — if a model file already exists — can be used directly. The models are used to create a 3D visualization of what the scanner is doing in real-time.

Custom Station Setup

It is assumed that most scanners implement a similar interface, or share some common commands. This interface is specified inside a config file provided to the NDEVR Scan Engine. This config specifies the input and output of each of the below commands; or, if unsupported, leaves the area blank. The engine will compensate for missing commands. However, the minimum required commands are a moveTo (or relative moveTo) and a getDistance command. Other missing commands may impact performance.

Additionally, the station creation dialogs can be customized as needed to add support for any custom station options. An example of customization can be seen here, with a scanner that supports multiple prism locations.

Command

Description

INTENSITY_MIN

The minimum intensity supported by the scanner.

INTENSITY_MAX

The maximum intensity supported by the scanner.

ANGLE_PHI_START

The start vertical angle of a scan (in degrees).

ANGLE_PHI_LENGTH

The length of the vertical scan angle (in degrees).

ANGLE_PHI_DELTA

The minimum angle of a vertical scan (in degrees).

ANGLE_THETA_START

The start horizontal angle of a scan (in degrees).

ANGLE_PHI_LENGTH

The length of the horizontal scan angle (in degrees).

ANGLE_THETA_DELTA

The minimum angle of a horizontal scan (in degrees).

STREAM_SPEC

The specified output stream of the scanner.

MODEL_LOCATION

The file location (may be relative, or use macros) of the model file to use for the scanner.

ENABLE_LASER_PTR

The command to enable a laser pointer (blank, if not supported).

DISABLE_LASER_PTR

The command to disable a laser pointer (blank, if not supported).

TOGGLE_LASER_PTR

The command to toggle a laser pointer (blank, if not supported).

SCAN_ALL

A command to perform a complete scan automatically (blank, if not supported).

HORZ_SCAN_ALL

A command to perform a scan along the horizontal axis automatically (blank, if not supported).

VERT_SCAN_ALL

A command to perform a vertical scan automatically (blank, if not supported).

GET_HORZ_POS

Returns the horizontal position of the head (in degrees) (blank, if not supported).

GET_VERT_POS

Returns the vertical position of the head (in degrees) (blank, if not supported).

GET_POS

Returns the vertical/horizontal position of the head (in degrees) (blank, if not supported).

GET_POWER

Returns the voltage of the machine (blank, if not supported).

GET_SERIAL_NO

Returns the serial of the machine (blank, if not supported).

GET_FIRMWARE_VERSION

Returns the version of the firmware loaded on the device.

GET_STATION_TILT_AND_ROLL

Returns a given phi and theta orientation representing station leveling (blank, if not supported).

GET_STATION_ROLL

Returns a given phi orientation representing station leveling (blank, if not supported).

GET_STATION_TILT

Returns a given theta orientation representing station leveling (blank, if not supported).

MOVE_HORZ

Moves the scanner head to a given theta orientation (blank, if not supported).

MOVE_VERT

Moves the scanner head to a given phi orientation (blank, if not supported).

MOVE

Moves the scanner head to a given phi and theta orientation (blank, if not supported).

MOVE_HORZ_REL

Moves the scanner head to a given theta orientation relative to its current location (blank, if not supported).

MOVE_VERT_REL

Moves the scanner head to a given phi orientation relative to its current location (blank, if not supported).

MOVE_REL

Moves the scanner head to a given phi and theta orientation relative to its current location (blank, if not supported).

MOVE_HORZ_TO_ZERO

Moves the scanner head to a given theta orientation (blank, if not supported).

MOVE_VERT_TO_ZERO

Moves the scanner head to a given phi orientation (blank, if not supported).

MOVE_TO_ZERO

Moves the scanner head to a given 'default' orientation (blank, if not supported).

CANCEL_HORZ_MOVE

Cancels movement for the scanner in the horizontal direction.

CANCEL_VERT_MOVE

Cancels movement for the scanner in the vertical direction.

CANCEL_MOVE

Cancels movement for the scanner.

GET_DISTANCE

Returns the distance the scanner is reading at the given orientation.

SET_HORZ_SCAN_DENSITY

Sets the density of the scanner (movement speed in most cases) in the horizontal direction.

SET_VERT_SCAN_DENSITY

Sets the density of the scanner (movement speed in most cases) in the vertical direction.

SET_SCAN_DENSITY

Set the density of the scanner (movement speed in most cases).

Basic Import / Export

The basic package includes an easy importing and exporting option to popular point cloud file formats (e57, LAS, LAZ), and supports writing meshes via Collada ( .dae ) or Wavefront Object ( .obj ) files.

The customer-developed .ndv files are used to store general setup properties which can create seamless workflows and compact data storage for large or dynamic projects.