https://github.com/meslewis/simplegltf2
A WIP deserializer / loader and viewer for GLTF2 written in Java.
https://github.com/meslewis/simplegltf2
gltf2 gltf2-loader gradle java
Last synced: about 1 year ago
JSON representation
A WIP deserializer / loader and viewer for GLTF2 written in Java.
- Host: GitHub
- URL: https://github.com/meslewis/simplegltf2
- Owner: MESLewis
- License: mit
- Created: 2020-01-08T03:46:57.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-02-08T18:39:45.000Z (over 6 years ago)
- Last Synced: 2025-06-06T01:41:31.913Z (about 1 year ago)
- Topics: gltf2, gltf2-loader, gradle, java
- Language: Java
- Homepage:
- Size: 442 MB
- Stars: 4
- Watchers: 1
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SimpleGLTF2




A WIP deserializer / loader for GLTF2 written in Java.
This project provides a basic deserializer to aid in loading of GLTF2 files.
## Project Goals
SimpleGLTF2 is designed to be a simple library to load GLTF2 files into the Java ecosystem. Part of that ecosystem, and one of the motivations for writing this library, is fetching files from the web, from jar's, and from disk.
## Motivation
I beleive that glTF2 is a great and interesting file format for all uses of 3d models. Assimp failed to load my glTF2 files in my personal project, likely due to loading over the network. This has led me to learn more about glTF2 and a desire to support it directly inside of the Java ecosystem. I am aware of the [JglTF](https://github.com/javagl/JglTF) but I do not like the complexity that brings by supporting both glTF1 and glTF2.
## Repository Layout
- [core](https://github.com/MESLewis/SimpleGLTF2/tree/master/core) package
contains Java classes to hold deserialized GLTF2 JSON. All classes are prepended with GLTF
- [simple-viewer](https://github.com/MESLewis/SimpleGLTF2/tree/master/simple-viewer) package is a port of the [KronosGroup/glTF-Sample-Viewer](https://github.com/KhronosGroup/glTF-Sample-Viewer) to java. LWJGL3 is used for window management and OpenGL calls.
## Getting Started
Standard Gradle Java tasks for building / running.
### Prerequisites
Dependencies are managed by Gradle.
### Installing
TODO
## Contributing
Pull Requests are welcome! As this project is still in its very early stages I may not immediately accept pull requests while still working on design goals and strategies.
## Versioning
Pre-release
##Features
### `core`
- [ ] Bindings to handle additional extensions
- [X] Data classes to handle deserialization of gltf files
- [X] Automatically resolve indices -> accessor/node/scene/etc
- [X] Loading
- [X] Standard .gltf files
- [X] .glb files
- [ ] Extensions
- [ ] KHR_materials_pbrSpecularGlossiness
- [ ] KHR_draco_mesh_compression
- [ ] Custom Engine Friendly
- [ ] Handle calculations dictated by glTF format
- [ ] Abstract access to glTF data
- [ ] Getting Started and usage document
### `simple-viewer`
- [X] Zoom, rotate models
- [X] Child Node transforms
- [X] Matrix
- [X] TRS
- [X] Texturing
- [X] Base color
- [X] Standard glTF PBR textures
- [X] Animation
- [X] Morph
- [X] Skeletal / Skin
## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details