How stephengold/monkeywrench works
MonkeyWrench is a JVM library for importing 3-D models and animations into jMonkeyEngine. The principal workflow is to configure a load with an asset key, import a supported asset through the Assimp-based runtime, convert scene content into JME objects, and resolve referenced textures. The README also describes example and comparison applications. Some runtime classes are documented or present in the tree but were not sampled, so uncertain internal call links are omitted.
Main entry points: AssetBuilder.java AssetBuilder · LwjglReader.java LwjglReader · LwjglAssetLoader.java Asset loader · AssetKeyBuilder.java AssetKeyBuilder
Components 18
Load configuration
- AssetKeyBuilder
lib/src/main/java/com/github/stephengold/wrench/AssetKeyBuilder.java - LwjglAssetKey
lib/src/main/java/com/github/stephengold/wrench/LwjglAssetKey.java
Asset import
- Asset loader
lib/src/main/java/com/github/stephengold/wrench/LwjglAssetLoader.java - LwjglReader
lib/src/main/java/com/github/stephengold/wrench/LwjglReader.java - Asset filesystem
lib/src/main/java/com/github/stephengold/wrench/AssetFileSystem.java
JME conversion
- AssetBuilder
lib/src/main/java/com/github/stephengold/wrench/AssetBuilder.java - MeshBuilder
lib/src/main/java/com/github/stephengold/wrench/MeshBuilder.java - MaterialBuilder
lib/src/main/java/com/github/stephengold/wrench/MaterialBuilder.java - SkinnerBuilder
lib/src/main/java/com/github/stephengold/wrench/SkinnerBuilder.java - TextureLoader
lib/src/main/java/com/github/stephengold/wrench/TextureLoader.java - JME scene and animation
lib/src/main/java/com/github/stephengold/wrench/AssetBuilder.java
Related applications
- ImportMixamo
apps/src/main/java/com/github/stephengold/wrench/example/ImportMixamo.java - CompareLoaders
apps/src/main/java/com/github/stephengold/wrench/test/CompareLoaders.java - Example and test assets
apps/src/main/java/com/github/stephengold/wrench/test
Other components
- JME application
- 3-D asset
- LWJGL Assimp
- JME runtime
Connections 19
- JME application → AssetKeyBuilder: configures import
- AssetKeyBuilder → LwjglAssetKey: builds key
- JME application → Asset loader: requests model
- 3-D asset → Asset loader: supplies asset
- Asset loader → LwjglReader
- LwjglReader → LWJGL Assimp: imports scene
- LwjglReader → Asset filesystem
- LwjglReader → AssetBuilder
- AssetBuilder → MeshBuilder: converts meshes
- AssetBuilder → MaterialBuilder: converts materials
- AssetBuilder → SkinnerBuilder: builds skinning
- MaterialBuilder → TextureLoader: loads textures
- TextureLoader → JME runtime: creates textures
- AssetBuilder → JME scene and animation: builds scene
- JME scene and animation → JME runtime: returns JME objects
- JME application → ImportMixamo: runs example
- JME application → CompareLoaders: runs comparison
- CompareLoaders → Example and test assets: uses test assets
- ImportMixamo → Asset loader: loads assets