Users can extend the default behavior of a deployed Voxel Farm platform by providing custom programs that will be executed by the Voxel Farm servers. There are three main aspects of the platform that are currently programable:

  1. Volumetric entity pipeline. This allows users can create new types of volumetric objects using Voxel Generator programs.
  2. Report pipeline. This allows users to write their own reports.
  3. View/rendering pipeline. This allows users to create custom visualizations using View Programs.

These programs must be created as “PROGRAM” file entities in the system. As part of creating the program entity, the source code for the program must be supplied. Currently, the platform accepts  Python programs and .Net assemblies as sources of program code.

Once a program is stored in the Voxel Farm server, it is possible to use it when creating custom entities, reports or views, depending on what the program was intended for. The platform will run a program on many threads at the same time, but still guarantees thread safety. To the creator of the program, the program appears as a sequential set of steps that will be applied to many different points of space. In reality, the program will be executed by many concurrent threads at the same time, each thread looking at different non-overlapping region of space. The Voxel Farm platform takes care of this parallel execution and handles putting the results back together.