101 Things You Can Do With the Visionary Render API

Barry King
Product Architect

From time to time I hear “What can the Visionary Render API do? “or I hear “We didn’t think that could be done with the API”. A passing comment became a challenge, ”Name 101 things that the API can do!”

An interface, plainly put, is a way for something to observe or affect something else on the other side of an otherwise impassable barrier.

Visionary Render has two interfaces; a user interface, UI, and an Application Programming Interface, API. The user interface is most familiar, a set of widgets allows a user to interact with the application, the Application Programming Interface on the other hand makes Visionary Render programmable. Just as the UI allows the user to pass the barrier, and observe and control the application, the API makes Visionary Render an open and re-useable computer system component. The components of a greater system can now reach inside Visionary Render and drive its functionality.

What can you program?

Visionary Render has been designed from the bottom-up as an extendable and programmable system. It achieves this by using an internal, high performance, visualisation database that can be introspected, observed, and updated by Visionary Render’s many internal modules, which are called Actors. Just as Visionary Render’s actors use this database, so clients of it’s API can also. This enables an API client to discover data, create new objects, manipulate properties and respond to changes. From this basic premise it’s possible to build Visionary Render into a myriad of solutions.

The API can be directly invoked in two ways; by Lua script and by binary linking. Visionary Render contains a Lua programming language interpreter which enables scripts to be invoked directly from the UI, Lua can also be used to create plugins to the application. Lua is a general purpose programming language with a strong supporting environment which enables it to perform typical program tasks such as reading files, interacting with a network and manipulating data. Binary linking enables any language that can invoke compiled function calls to use the API, almost all mainstream programming languages include this facility. Finally Lua or binary linking can be used to expose Visionary Render as services to a network or they can implement adapters so that other languages can exploit the functionality.

101 Things The API Can Do

Clearly there are many, many things that can be achieved with the Visionary Render API. As an exercise I choose to create a mind map of 101 uses whilst strictly limiting the time spent to 1 hour. The following diagram was created with Microsoft Excel and Neo4j, to enable it to be viewed in Visionary Render in glorious holographic 3D I also used the API to generate a 3D visualisation. Because the time was strictly limited to 1 hour this list barely scrapes the surface of what is possible, speech-to-text is missing, as is so much more!

Below are the results visualised with GraphViz / Neato ( https://graphviz.org/ )

Here are the results in Neo4j

Source data

topics.csv is the original brain dump in text form. To import the data into Neo4j, run a temporary webserver (for example using Python or Node etc)  and then from the cypher console run

things101-dot.txt is the data transformed to GraphViz DOT format. To generate an image using neato run neato -Tpng things101-dot.txt > things101.png

Node Parent
VisRen API
Extend Application VisRen API
Data I/O VisRen API
Data In Data I/O
Data Out Data I/O
HMI simulation Data I/O
GPS / Location support Data In
File based importer Data In
REST API Out Data Out
File based exporter Data Out
User Macros Extend Application
Immersive Manipulation Tools Extend Application
AR renderer Extend Application
External raytracer Extend Application
XR tracking devices Extend Application
Geometry Tool Custom Tools
Physics Engine Realtime Simulation
Simulation engine Realtime Simulation
Visualise Webservice REST API In
Navigation tools Custom Tools
Sensor Overlay REST API In
Flexible hoses engine Realtime Simulation
Realtime Simulation Extend Application
Custom Tools Extend Application
Modelling Tools Custom Tools
Domain Specific Tools Custom Tools
Space claim Domain Specific Tools
Cable routing Domain Specific Tools
Welding planner Domain Specific Tools
Data exploration Domain Specific Tools
Tasks and reports display Data exploration
Build notes Data exploration
Kanban and Scrum Boards Data exploration
Site reports Data exploration
CAM overlay Domain Specific Tools
Training storyboard maker Custom Tools
IK system Realtime Simulation
CFD Realtime Simulation
Finger tracking XR tracking devices
Eye tracking XR tracking devices
Full body tracking XR tracking devices
Positional audio Extend Application
Haptics Extend Application
Gloves Haptics
Graphs and Charts Data In
Traffic cameras REST API In
Weather REST API In
Medical Imaging Science data
CT scan Medical Imaging
Xray Medical Imaging
Microscopy Science data
Science data Data In
GIS Science data
Boreholes Science data
Reservoir Models Science data
Satellite data Science data
Synthetic Apeture Radar Satellite data
Hyperspectral Imagery Satellite data
Network togogaphy Data In
Call graphs Data In
Artistic tools Custom Tools
UV map generation Extend Application
Derived topography Extend Application
Mesh simplication Extend Application
Molecule visualisation Science data
Protein database Molecule visualisation
Virus database Molecule visualisation
Pandemic mapping Science data
River flows and levels Science data
Super computer visualisations Science data
Galaxy formation Super computer visualisations
Dark matter Super computer visualisations
Inflation Super computer visualisations
Nuclear simulation Super computer visualisations
Forensics Custom Tools
Line to sight measurement Forensics
Crime scene reconstruction Forensics
Finger print analysis Forensics
Environment effects Extend Application
Smoke Environment effects
Spreading fire Environment effects
Disorientation Environment effects
Lava flow Environment effects
Electrical discharge Environment effects
Explosions Environment effects
Behavioural and biometrics research Data Out
Attention span Behavioural and biometrics research
Reflexes Behavioural and biometrics research
Range of motion Behavioural and biometrics research
Custom materials Extend Application
Gerber / PCB design File based importer
Game engine File based importer
Game engine Realtime Simulation
Visual programming lanaguage Custom Tools
ELT tool Data I/O
4D / timeline Custom Tools
Interact with AI Realtime Simulation
Session analytics Data Out
Complicated Video Data Out
Powerpoints, PDFs etc Data Out
Rendering on-demand views Data Out