openusd-rs 0.1.0

Work in progress, opinionated implementation of OpenUSD in pure Rust
Documentation
#usda 1.0
(
    defaultPrim = "root"
    doc = "Blender v4.2.0"
    metersPerUnit = 1
    upAxis = "Z"
)

def Xform "root"
(
    customData = {
        dictionary Blender = {
            bool generated = 1
        }
    }
)
{
    def Xform "Cube"
    {
        custom string userProperties:blender:object_name = "Cube"

        def Mesh "Cube"
        (
            active = true
        )
        {
            float3[] extent = [(-1, -1, -1), (1, 1, 1)]
            int[] faceVertexCounts = [4, 4, 4, 4, 4, 4]
            int[] faceVertexIndices = [0, 4, 6, 2, 3, 2, 6, 7, 7, 6, 4, 5, 5, 1, 3, 7, 1, 0, 2, 3, 5, 4, 0, 1]
            normal3f[] normals = [(0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, -1, 0), (0, -1, 0), (0, -1, 0), (0, -1, 0), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (0, 0, -1), (0, 0, -1), (0, 0, -1), (0, 0, -1), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0)]
            (
                interpolation = "faceVarying"
            )
            point3f[] points = [(1, 1, 1), (1, 1, -1), (1, -1, 1), (1, -1, -1), (-1, 1, 1), (-1, 1, -1), (-1, -1, 1), (-1, -1, -1)]
            bool[] primvars:sharp_face = [1, 1, 1, 1, 1, 1]
            (
                interpolation = "uniform"
            )
            texCoord2f[] primvars:st = [(0.625, 0.5), (0.875, 0.5), (0.875, 0.75), (0.625, 0.75), (0.375, 0.75), (0.625, 0.75), (0.625, 1), (0.375, 1), (0.375, 0), (0.625, 0), (0.625, 0.25), (0.375, 0.25), (0.125, 0.5), (0.375, 0.5), (0.375, 0.75), (0.125, 0.75), (0.375, 0.5), (0.625, 0.5), (0.625, 0.75), (0.375, 0.75), (0.375, 0.25), (0.625, 0.25), (0.625, 0.5), (0.375, 0.5)]
            (
                interpolation = "faceVarying"
            )
            uniform token subdivisionScheme = "none"
            custom string userProperties:blender:data_name = "Cube"
        }
    }

    def DomeLight "env_light"
    {
        float inputs:intensity = 1
        asset inputs:texture:file = @.\textures\sky.hdr@
        float3 xformOp:rotateXYZ = (90, 1.2722219e-14, 90)
        uniform token[] xformOpOrder = ["xformOp:rotateXYZ"]
    }
}