I’m excited to announce that we have just released the source code for KrakatoaMY and XMeshMY and all of their internal dependencies on GitHub. The code is licensed under the Apache-2.0 license. The vast majority of the code is written in C++. Build configuration is done in modern CMake with Conan being used for managing dependencies. We’re currently targeting the C++17 standard and support Visual Studio 2017, Visual Studio 2019, Clang 10 or later, and GCC 7 or later.
The following packages have been released today:
ThinkboxCMLibrary contains shared CMake functions that are used by the other projects.
ThinkboxLibrary is the largest of all the packages we are releasing today. It contains shared C++ code that is used in almost all of the other packages. It contains everything from basic utility functions to code that is used directly by our products to highly specialized code for manipulating particles, geometry, and volumetrics.
Krakatoa and KrakatoaSR
This library contains the core Krakatoa rendering code, including both the splat (particle) and voxel renderers. This is where Krakatoa’s heavy lifting is performed, but for interfacing with this code, we recommend using the Krakatoa SR library instead as it provides an API that is much easier to work with and takes care of a lot of the boiler plate code.
NodeView is a custom Qt component that is used in the GUI for Magma.
Magma and MagmaMY
Magma is a visual programming (Visual programming language - Wikipedia) language used by Krakatoa plugins for particle shading. MagmaMY is an extension of Magma for use in KrakatoaMY.
ThinkboxMYLibrary provides shared code used across our Maya plugins.
KrakatoaMY is a plugin for Autodesk Maya that integrates Magma and the Krakatoa renderer.
This library provides some shared code used by the different XMesh plugins. Note that the bulk of the heavy lifting of XMesh is in ThinkboxLibrary in the frantic::geometry (https://github.com/aws/thinkbox-library/tree/main/frantic/geometry) namespace.
XMeshMY is a plugin for Autodesk Maya that provides loading and saving of geometry in the XMesh file format.
The following diagrams show the dependency graph between the previously described packages. For the sake of readability, I have not drawn connections between packages where a child’s child depends on the parent, to keep the diagrams more readable. The full dependency tree, including third party packages, can be derived from the conanfile.py files found in each repository.
These packages are not currently available through Conan Center, so in order to build one of these packages, you will first need to build the non-third-party dependencies into your local Conan cache. We have provided
build.py scripts for each package to make this easier. More detailed build instructions can be found in the Contributing.md files in the individual repositories.
We encourage you to reach out here on the forums with any questions about building these packages.