ProductPromotion
Logo

Kotlin

made by https://0x3d.site

GitHub - kotlin-graphics/assimp: JVM Open Asset Import Library (Assimp)
JVM Open Asset Import Library (Assimp). Contribute to kotlin-graphics/assimp development by creating an account on GitHub.
Visit Site

GitHub - kotlin-graphics/assimp: JVM Open Asset Import Library (Assimp)

GitHub - kotlin-graphics/assimp: JVM Open Asset Import Library (Assimp)

assimp

Build Status license Release Size Github All Releases Awesome Kotlin Badge

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

Code

A small example how to load files:

  • for java users:
AiScene scene = new Importer().readFile("test/resources/models/OBJ/box.obj");
  • for kotlin users:
val scene = Importer().readFile("test/resources/models/OBJ/box.obj")

Port Status

Format priority list

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

Contributions:

Do not hesitate to offer any help: pushes (java or kotlin, it doesn't matter), testing, website, wiki, etc

Comparison to a simple binding

Advantages:

  • 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

Disadvantages:

  • 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

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory