Hi all,
I wanted to share a small side-project I’ve been working on to better understand the ins-and-outs of working directly with USD content (as opposed to working in an application “native” representation and converting to and from USD on export and import) and using Storm as an application’s viewport renderer.
Here’s a demo video:
This project started with Apple’s Creating a 3D application with Hydra rendering example, evolved into a simple “composer” application, and finally gained simple geometric modeling capabilities through the use of the libfive solid modeling library.
As it stands today, CSG expression trees are represented with UsdPrims using a custom schema, these prim trees are synced to a parallel libfive expression tree as the user makes edits, and libfive’s meshing functionality is used to asynchronously generate triangle meshes which populate a UsdGeomMesh at the root of the CSG prim hierarchy.
This has been a really great learning exercise (and a lot of fun too) and I wanted to thank all of OpenUSD’s authors and contributors for creating such a powerful set of tools and for open sourcing it all. And thanks to everyone here for all the knowledge sharing as that definitely helped as I got up to speed with USD and its APIs.
-Thayer