Discussed this feature with Mathias, we decided to create MaterialInstance Java wrappers on the fly, and create Material Java wrappers lazily. This is simple and avoids caching the wrapper objects, which might otherwise lead to complexity and bugs. Note that gltfio creates material instances behind the scenes, so this feature is particularly useful for gltfio clients.