Voxelized Manufacturing Site Display
Introduction to voxels A voxel represents a value on a regular grid in three-dimensional space. As with pixels in a bitmap, voxels themselves do not typically have their position (their coordinates) explicitly encoded along with their values. Instead, the position of a voxel is inferred based upon its position relative to other voxels (i.e., its position in the data structure that makes up a single volumetric image).
Usecases for voxels Voxels have very interesting usecases. The benefit of a voxel is that it is a three dimensional point in space (and time). Data can easily be converted to voxels. A few examples for data visualization are:
- Heatmaps (temperature)
- Flowmaps (water, gas, electricity)
- Stressmaps (showing the stress on a material object)
- Other heatmaps (showing most travelled roads, places, areas, and much more)
Another benefit of voxels is that the insides of objects are also available. An object can be inspected from the inside, as in for example with data from X-rays.
My voxelrenderer and its capabilities In the recent years I have developed a very lightweight voxelrenderer for mobile platforms, browsers and native desktop platforms. The portability of the renderer mainly stems from it's underlying framework: LibGDX. This voxelrenderer runs very efficiently due to the use of a combination of custom raycasting shaders, clever OpenGL code, LOD (level of detail) and strict GPU memory management. At it's current form it can handle 8x8x8 voxels per m^2 while maintaining 60fps on current phones and browsers, all while in most instances only requiring 10MB of RAM with the help of RLE compression and on-the-fly loading of mapped voxels. Due to it's low memory footprint, the voxelrenderer allows for very large maps. The renderer also has the capability to load maps with the newest changes or additions from a server.
Appliance to GE Brilliant Manufacturing For this renderer, I envision a good usecase for viewing volumetric data created from the APIs from GE. The voxelrenderer's lightweight design allows it to be used in the field with a variety of devices without customization. It's browser-friendliness means it can be used on office desktop PC's by merely using an up-to-date, WebGL friendly browser (e.g. IE11, Chrome, Firefox), without a need for expensive equipment or changes to the office infrastructure.
Goals I have set out a few goals for this submission, but also very much would like your input on what is preferred. Some of these goals are dependent on the functionality of the APIs and will be assessed more later on.
- Convert visualiation of the site to voxel data
- Implement different kinds of volumetric maps with the data available
- Implement gas/liquid flow visualization - showing flow movement of voxels
- Develop a user friendly interface and control scheme
- Either implement a local file structure, or update the current cloud loading
- Switching between map types (heatmaps, flowmaps, etc.)
- Informational tag placing; for example URLs that are tagged to a specific location. These tags can be called by the user to display information about a device, valve, pipeline or other.
- Location sharing by URL; the location the user visits on the map can be shared with others by an easily accessible link. This can be convenient to alert others about certain problem areas, or as a way to quickly revisit a part of the site.
Future With the arrival and elevation of Augmented Reality, this lightweight voxelrenderer has another friendly ally. AR devices, in the making and currently available, tend to rely on mobile processors , which cannot offer a lot of computational resources. My voxelrendering formula could easily be adapted to work on these devices. The voxelrenderer already has support for Google Carboard for a Virtual Reality experience.
References _ Due to server maintenance the live WebGL demo on voxelpaint.com is currently not available. The Android application on the Play Store depends on the server for communication and thus is currently also non-working. The videos shown below are all from earlier revisions than the latest live demo. If required, I can speed up the server migration to show a working demo. _