Our products

We have been developing premium products, on top of our spatial data and situational awareness back-end, so that you and your operators can profit from the arising automation opportunities.




coming soon

The sub-section is under construction. Check back for more later.


Voxelised spatial data

We store our spatial data in voxelised form. Accessed through volumetric hierarchy (acceleration) grids, with distance field pre-computed in the top level(s), and bit compressed in the lower levels. Current implementation allows an average scene up to 20,000 x 20,000 x 1,000 voxels in resolution to sit in 4 Gigs of memory. With ever better compression methods in the work the resolution is being enlarged further.

The voxelised representation allows easy collision detection, path finding, and basically run physics on large spatial data sets in real time. Gaining popularity in the games industry (high resolution polygonised geometry for rasterising, lower resolution voxelised counterpart for shadow and reflection raytracing). Nevertheless there are fully voxel based engines such as Minecraft or Roblox.

voxelised spatial data voxelised spatial data
voxelised spatial data voxelised spatial data

Evolutionary Artificial Intelligence (AI) solvers

We have been developing Multi-Objective Evolutionary Algorithm frameworks for route planning in mobility scenarios to simultaneously optimise the environmental and other (ex. social) impacts along with travel duration and cost. Our planners incorporate domain-specific knowledge, can handle unforeseeable changes of the environment, and take into account different kinds of mission constraints. The models are capable of generating multiple alternatives with varying trade-offs between the objectives.

Evolutionary algorithms:
Evolutionary algorithms belong to the family of trial and error problem solvers and can be considered global optimisation methods with a metaheuristic or stochastic optimisation character, distinguished by the use of a population of candidate solutions (rather than just iterating over one point in the search space). The application of recombination and evolutionary strategies makes them less prone to get stuck in local optima than alternative methods.
An evolutionary algorithm uses mechanisms inspired by biological evolution, such as reproduction, mutation, recombination, and selection. Candidate solutions to the optimisation problem play the role of individuals in a population, and the fitness function determines the quality of the solutions. Evolution of the population then takes place after the repeated application of the above operators.
A fitness function is a particular type of objective function that is used to summarise, as a single figure of merit, how close a given design solution is to achieving the set aims. In particular, in the fields of genetic programming and genetic algorithms, each design solution is commonly represented as a string of numbers (referred to as a chromosome). After each round of testing, or simulation, the idea is to delete the 'n' worst design solutions, and to breed 'n' new ones from the best design solutions. Each design solution, therefore, needs to be awarded a figure of merit, to indicate how close it came to meeting the overall specification, and this is generated by applying the fitness function to the test, or simulation, results obtained from that solution.