assimp alternatives and similar libraries
Based on the "Graphics" category.
Alternatively, view assimp alternatives based on common mentions on social networks and blogs.
openrndr8.0 8.3 assimp VS openrndrOPENRNDR. A Kotlin/JVM library for creative coding, real-time and interactive graphics
imgui7.3 0.0 assimp VS imguiBloat-free Immediate Mode Graphical User interface for JVM with minimal dependencies (rewrite of dear imgui)
data2viz6.8 9.4 assimp VS data2vizAn Android, JavaFx, JS multiplatform datavisualization library with comprehensive DSL
three.kt5.8 0.0 assimp VS three.ktThree.js port for the JVM (desktop)
modern-jogl-examples5.6 0.0 assimp VS modern-jogl-examplesExamples ported in JOGL from "Learning Modern 3D Graphic Programming" by J.L.McKesson
glm5.1 0.0 assimp VS glmjvm glm
orx5.0 0.0 assimp VS orxA growing library of assorted data structures, algorithms and utilities for OPENRNDR
ksvg4.3 0.0 assimp VS ksvgA Multiplatform Kotlin SVG image DSL.
kotlin-unsigned4.2 0.0 assimp VS kotlin-unsignedunsigned support for Kotlin via boxed types and unsigned operators
Vulkan3.2 0.0 assimp VS VulkanExamples and demos for the new Vulkan API
learn-OpenGL2.9 0.0 assimp VS learn-OpenGLport of https://learnopengl.com/ tutorial (lwjgl)
gli2.8 0.0 assimp VS glijvm gli
bullet2.8 0.0 assimp VS bulletJVM Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
openvr2.7 0.0 assimp VS openvrOpenVR SDK
uno-sdk2.6 0.0 assimp VS uno-sdkUNofficial Opengl SDK
JOGL2D2.3 0.0 assimp VS JOGL2DZero-overhead 2D rendering library for JOGL using Kotlin
kaifu2x2.3 0.0 assimp VS kaifu2xPort of waifu2x to pure kotlin + opencl. Anime-style upscaler and noise reductor based on convolutional neural networks using coffee trained models
glimpse-framework1.7 0.0 assimp VS glimpse-frameworkGlimpse is now further developed as a Kotlin Multiplatform project under glimpse-graphics/glimpse
ovr0.6 0.0 assimp VS ovrOculus binding
Appwrite - The Open Source Firebase alternative introduces iOS support
Do you think we are missing an alternative of assimp or a related project?
JVM porting of Assimp
This port is being written trying to stick as much as possible close to the C version in order to:
- minimize maintenance to keep it in sync with the original
- minimize differences for people used to dev/work with Assimp
A small example how to load files:
- for java users:
java AiScene scene = new Importer().readFile("test/resources/models/OBJ/box.obj");
- for kotlin users:
kotlin val scene = Importer().readFile("test/resources/models/OBJ/box.obj")
If you have a format or a feature which is not yet supported, you can use the original assimp (or the lwjgl one) to load the mesh you have and save it in assimp binary format (
.assbin). Once done, you can load it with this port.
In case you don't know how to do it, you may open an issue giving the mesh, specifying the options and I'll convert it for you into binary assimp.
Please note that using the binary assimp format is also the fastest way to import meshes into your application.
The development is essentially feature-driver, if you want to express your preference -> Format wish list
Do not hesitate to offer any help: pushes (java or kotlin, it doesn't matter), testing, website, wiki, etc
Comparison to a simple binding
- runs entirely on jvm (Garbage Collector)
- lighter import
- written in Kotlin (less code to write, more features, more expressiveness)
- cleaner, more intuitive interface (especially the Material part)
- plain names, without prefixes
- possibility to set the build-time flags and property (debug/config/log)
- easier to debug
- easier to modify/customize, e.g: textures get automatically loaded and offered via gli library, you just have to upload them to GL
- matrices are column-major instead of row-major and offered via the glm library
- easier to fix (found a couple of bugs on the original assimp, opened an issue, I didn't have to wait for the next releases fix)
- reduced the maintenance at minimum by keeping the same structure as possible during the port
- possible to get the same loading speed, using binary assimp format
- code needs to be ported from cpp to java
- code needs to be maintained
- a little slower compared to cpp when loading big meshes if not using assbin
*Note that all licence references and agreements mentioned in the assimp README section above are relevant to that project's source code only.