NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3329 most downloaded on crates.io
glTF 2.0 loader
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 2 weeks to 1.1 years
Nearly every release is documented
notes for 40 of 41 stable releases
1 version withdrawn
withdrawn after publishing
10 years old
42 releases · first in 2016
New functions animation::Channel::index and animation::Sampler::index.
animation::Channel::index and animation::Sampler::index.allow_empty_texture to avoid required extension checks.attempt to to subtract with overflow-panic in size_hint() of sparse accessor when collecting items.size_hint() in sparse accessor.image to 0.25.0.image_jpeg_rayon no longer needed, as image 0.25.0 now uses zune-jpeg for jpeg decoding.image to 0.25.0.image_jpeg_rayon no longer needed, as image 0.25.0 now uses zune-jpeg for jpeg decoding.New API for reading arbitary extension data.
gltf-json crate have been widened to 64 bits.u32 will
result in a validation error.Gltf::from_reader no longer winds the reader back to offset zero.Material::unlit documentation.One column per quarter.
Support for the KHR_materials_emissive_strength extension.
KHR_materials_emissive_strength extension.Accessor::byte_offset is now optional for sparse accessors.New functions import_buffers and import_images for advanced import use cases.
import_buffers and import_images for advanced import use cases.Primitive::attributes now uses BTreeMap instead of HashMap deterministic serialization.Fix relative file path imports with url encoded characters.
Support for the KHR_materials_specular extension.
KHR_materials_specular extension.KHR_materials_variants extension.KHR_materials_volume extension.ExactSizeIterator implementation for Joints iterator.mesh.primitives property is now always serialized.Normalize<u16> and Normalize<f32> for u16.KHR_materials_specular extension.KHR_materials_variants extension.KHR_materials_volume extension.ExactSizeIterator implementation for Joints iterator.mesh.primitives property is now always serialized.Normalize<u16> and Normalize<f32> for u16.Support for the KHR_texture_transform extension.
KHR_texture_transform extension.KHR_materials_transmission_ior extension.Material::alpha_cutoff is now optional.import_slice.Compiler warnings regarding deprecation of std::Error::description.
Iterator::nth explicitly for improved performance.std::error::Error::description.New feature guess_mime_type which, as the name suggests, attempts to guess the MIME type of an image if it doesn't exactly match the standard.
guess_mime_type which, as the name suggests, attempts to guess
the MIME type of an image if it doesn't exactly match the standard.base64 updated to 0.11.byteorder updated to 1.3.image updated to 0.23.0.Format has additional variants for 16-bit pixel formats.Support for the KHR_materials_unlit extension, which adds an unlit field to Material .
KHR_materials_unlit extension, which adds an unlit fieldMaterial.ExactSizeIterator implementations for accessor iterators.Node::children) have been relaxed.Accessor::buffer_view is now optional for the benefit of sparse accessors.animation::Interpolation::CatmullRomSplineClone and Debug implementations for Material .
import_slice function.Clone and Debug implementations for Material.accessor::util::SparseIter and accessor::util::SparseIndicesIter whichaccessor::util::Iter is now an enum; sparse accessors are now read correctly.accessor::util::Iter has been renamed as ItemIter.Support for the KHR_lights_punctual extension.
KHR_lights_punctual extension.gltf-roundtrip example.validate_minimally as validate.cgmath.Validate::validate_completely and its implementations.New image format variants B8G8R8 and B8G8R8A8 .
B8G8R8 and B8G8R8A8.Extras are now exposed as RawValue.Index now implements Copy.Accessor which was a cause of poor performance.Glb::from_reader.New function gltf_json::Index::new for export.
gltf_json::Index::new for export.KHR_materials_pbrSpecularGlossiness extension.Eq and PartialEq implementations.Accessor::min is no longer serialized if None.Extras::_allow_unknown_fields is no longer serialized.bufferView.byteOffset is now optional.extras::Void is no longer serialized.JSON chunk padding is now padded with spaces (0x20) rather than zeros.
None is no longer serialized.Vec is no longer serialized when empty.payload field in Gltf in order to handle binary glTF directly.
payload field in Gltf in order to handle binary glTF directly.Error::Io enum variant.Gltf::from_reader_without_validation and Gltf::from_slice_without_validation.gltf-utils crate, feature gated with the newutils feature.gltf-importer crate, feature gated with theimport feature.enum Uri to represent uniform resource locators.fn Gltf::from_* now imports binary glTF as well as standard glTF.fn Gltf::from_reader now requires reader to implement std::io::Seek.Buffer::uri now returns None in the case of binary glTF payload instead"#bin".POSITION attribute is now required by all mesh primitives.glb → binary.Error::Glb → Error::Binary.TrsProperty → Property.InterpolationAlgorithm → Interpolation.Target::path → Target::property.Primitive::position_bounds → Primitive::bounding_box.names feature is now enabled by default, along with utils andimport. Rationale: Pareto principle.gltf_json now implement Serialize.fn Gltf::from_str -- use fn Gltf::from_slice instead.fn Gltf::from_value -- no longer supported.fn gltf::is_binary -- use slice.starts_with("glTF") instead.struct Unvalidated -- replaced with enum Validation.crate gltf-importer -- no longer supported.Node::matrix -- use transform().matrix() instead.Node::rotation -- use transform().decomposed() instead.as_json functions -- no longer supported.### Yanked
gltf_utils::AccessorIter::new is marked pub again.
gltf_utils::AccessorIter::new is marked pub again.Rework of GLB parser and AccessorIter in order to reduce unsafe code and to allow loading of binary glTF data on non-little-endian machines.
ChannelIterators.AccessorIter in order to reduce unsafe code andgltf and gltf_importer crates.Gltf::skip_validation is no longer marked unsafe.gltf_utils::PrimitiveIterators::joints_u16 implementation.
gltf_utils::PrimitiveIterators::joints_u16 implementation.Incorrect implementation of Transform::decomposed (issue #99)
scene::Transform type, returned by Node::transform.
scene::Transform type, returned by Node::transform.MorphTarget type and a corresponding MorphTargets iterator.Gltf::from_glb function.Gltf::default_scene function.as_json functions are now hidden from the documentation.scene::Children is bound to the lifetime of Gltf instead its parent Noderoot module.Material and texture::Sampler.Node::matrix/translation/rotation/scale in favour of Node::transform.json module.New gltf-utils crate, which removes the need for the Loaded wrapper struct.
gltf-utils crate, which removes the need for the Loaded wrapper struct.Attributes iterator, which visits all vertex attributes of a Primitive.glb module, containing functions for parsing .glb (binary glTF) files.is_binary function, which tests for the glTF magic string.gltf::Unvalidated type.Bounds type describing the minimum and maximum values of accessors.Accessor::position_bounds convenience function.Info, NormalTexture, and OcclusionTexture now implement AsRef<Texture>.Loaded struct in favour of new traits in the gltf-utils crate.Implemented ExactSizeIterator for primitive iterators.
ExactSizeIterator for primitive iterators.Fixed incorrect buffer view slicing from accessors.
pub(crate) instead of #[doc(hidden)].rustc version 1.18 or above to build.Added the gltf-tree example which displays the node heirarchies of scenes.
gltf-tree example which displays the node heirarchies of scenes.Fixed mismatched names and extras feature flags.
names and extras feature flags.Removed broken link to gltf-importer in the crate documentation.
gltf-importer in the crate documentation.No concrete changes (unsuccessful update to documentation).
New Loaded type, which provides glTF objects with buffer data.
Loaded type, which provides glTF objects with buffer data.gltf-json crate which replaces the json module. This is intended to
improve build times.names and extras features from the new gltf-json crate.Source trait so that it no longer performs I/O.Image::data now returns a DynamicImage, allowing for post-processing.
Image::data now returns a DynamicImage, allowing for post-processing.Nothing published for this version
Source trait, which allows for customizing the import process.
Source trait, which allows for customizing the import process.Source trait implementation, namely FromPath, that can
read from the file system and decode embedded base64 data URIs.Validate trait, which validates glTF JSON metadata.Import struct which drives the asynchronous loading of glTF data.extensions module.Get trait behave the same as the TryGet trait.v1 module, as the crate no longer supports glTF 1.0.TryGet trait in favour of the redesigned Get trait.New v2 module, containing all glTF 2.0 data structures.
v2 module, containing all glTF 2.0 data structures.Internal improvements to decrease the crate build time.
New v1 module, containing all glTF 1.0 data structures.
v1 module, containing all glTF 1.0 data structures.gl crate dependency.Updated links to the official glTF documentation.
Allowed the crate to build on the latest stable rustc (1.15) using the new serde frontend, i.e. with the serde proc_macro.
rustc (1.15)
using the new serde frontend, i.e. with the serde proc_macro.Allowed the crate to build on the latest stable rustc (1.14) using the serde_codegen crate.
rustc (1.14)
using the serde_codegen crate.Added Technique data structure for glTF 1.0.
Technique data structure for glTF 1.0.New documentation for glTF 1.0.
Initial (incomplete) glTF 1.0 implementation.
Your coding agent can read these notes before it upgrades. Set up the MCP server →