Licences of the open-source dependencies#

The open-source dependencies this repository uses, with their licences. The list was checked against git submodule status, third_party/CMakeLists.txt (FetchContent), the vendored sources under third_party/ and third_party/OxidANT/crates/webgpu_renderer/Cargo.toml. Every licence entry comes from the cited licence file, read on disk, or from the license field of the Cargo metadata, not from assumptions. For legally binding terms, the cited licence file itself is authoritative.

Created in the repository on request. Verification history:

  • 2026-08-02: last full verification against the disk; the Rust crate licences also against cargo metadata --format-version 1 --locked in the :latest-cross container (full crates.io registry).

  • 2026-09-25: the pins that had moved since (imgui, glfw, nlohmann/json, google/benchmark, OxidANT, ANTfrastructure) and the crate versions (log, wgpu, pollster, glam, egui, egui-wgpu, egui-winit) updated, their licences read from disk again; the other rows unchanged.

  • 2026-10-07: the pins of imgui, nlohmann/json, google/benchmark, spdlog, abseil-cpp, Microsoft GSL and OxidANT and glam 0.34.1 updated; the licence files of the four submodules are unchanged across the moved ranges (git diff empty). That evening nlohmann/json moved to 367336c83 and Microsoft GSL to v5.0.1; LICENSE.MIT and GSL’s LICENSE are unchanged across both ranges.

Git submodules under third_party/ (shipped)#

Project

URL

Pin

Licence (per licence file)

File checked

tinyobjloader

https://github.com/tinyobjloader/tinyobjloader

v2.0.0rc10-73-g45636bd

MIT

third_party/TINY_OBJ_LOADER/LICENSE

glm

https://github.com/g-truc/glm

6f14f479

Dual: “The Happy Bunny License or MIT License”

third_party/GLM/copying.txt

imgui

https://github.com/ocornut/imgui

v1.92.9b-112-gf502f9c98

MIT

third_party/IMGUI/LICENSE.txt

stb

https://github.com/nothings/stb

2c980bb5

Dual: MIT or public domain (your choice)

third_party/STB/LICENSE

glfw

https://github.com/glfw/glfw

3.5.1-1-g92dcf4ce

zlib/libpng licence text

third_party/GLFW/LICENSE.md

Vulkan Memory Allocator (VMA)

https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator

3aa92122

MIT licence text (Copyright AMD)

third_party/VULKAN_MEMORY_ALLOCATOR/LICENSE.txt

nlohmann/json

https://github.com/nlohmann/json

v3.11.3-695-g367336c83

MIT

third_party/NLOHMANN_JSON/LICENSE.MIT

google/benchmark

https://github.com/google/benchmark

v1.9.5-143-g39a78e3

Apache-2.0

third_party/GOOGLE_BENCHMARK/LICENSE

spdlog

https://github.com/gabime/spdlog

v1.17.0-53-gd6c93f38

MIT; contains a bundled {fmt} (MIT)

third_party/SPDLOG/LICENSE; third_party/SPDLOG/include/spdlog/fmt/bundled/fmt.license.rst

google/fuzztest

https://github.com/google/fuzztest

704efb34 (2026-06-29)

Apache-2.0; an additional Lucent notice for fuzztest/internal/domains/rune.*

third_party/FUZZTEST/LICENSE

kompute (only the optional playground, KATAGLYPHIS_BUILD_KOMPUTE_PLAYGROUND)

https://github.com/KomputeProject/kompute

v0.9.0-99-g267e019

Apache-2.0

third_party/KOMPUTE/LICENSE

cgltf

https://github.com/jkuhlmann/cgltf

v1.15-11-g85cd623

MIT licence text (Copyright Johannes Kuhlmann)

third_party/cgltf/LICENSE

tomlplusplus

https://github.com/marzer/tomlplusplus

v3.4.0-50-g1e8829b

MIT

third_party/tomlplusplus/LICENSE

Vendored sources (no submodule)#

Project

URL

Licence (per file headers)

File(s) checked

KTX (KTX-Software, partly vendored: include/, lib/, other_include/)

https://github.com/KhronosGroup/KTX-Software

Apache-2.0 (SPDX header in include/ktx.h and in 98 files under lib/)

third_party/KTX/include/ktx.h

KTX-Software’s full LICENSE.md is not vendored (third_party/KTX/LICENSE.md does not exist), so the third-party components embedded under third_party/KTX/lib/ were verified one by one on disk, from a vendored licence file or from the source file’s own licence header:

Component

Licence

File checked (each under third_party/KTX/lib/)

basisu (encoder + transcoder)

Apache-2.0 (Copyright Binomial LLC)

basisu/LICENSE (full Apache-2.0 text); licence header in basisu/encoder/basisu_enc.cpp and basisu/transcoder/basisu_transcoder.cpp. The REUSE texts basisu/LICENSES/{Apache-2.0,BSD,Zlib}.txt cover the subcomponents.

zstd (bundled in basisu)

BSD-3-Clause; the file header also offers GPLv2 (“You may select, at your option, one of the above-listed licenses”)

basisu/zstd/LICENSE (BSD text, Copyright Facebook, Inc.); header of basisu/zstd/zstd.c

LodePNG

zlib licence text (Copyright 2005-2019 Lode Vandevenne)

licence header in basisu/encoder/lodepng.h

jpgd

Public domain (Rich Geldreich)

licence header in basisu/encoder/jpgd.h

stb_image / stb_image_write

Dual: MIT (“ALTERNATIVE A”) or public domain/Unlicense (“ALTERNATIVE B”), your choice

licence block at the end of astc-encoder/Source/stb_image.h and astc-encoder/Source/stb_image_write.h

tinyexr

BSD-3-Clause (Copyright 2014-2019 Syoyo Fujita and contributors)

licence header in astc-encoder/Source/tinyexr.h

etcdec.cxx

No OSI licence: “Ericsson Texture Compression Codec Software License Agreement”, a non-exclusive, non-transferable, free, perpetual, worldwide single licence with its own terms

licence header in etcdec.cxx

astc-encoder (Arm)

Apache-2.0

SPDX header // SPDX-License-Identifier: Apache-2.0 in astc-encoder/Source/astcenc.h. The LICENSE.txt that astc-encoder/README.md refers to is not vendored.

dfdutils (Khronos)

Apache-2.0; individual files taken from MIT projects are MIT

dfdutils/LICENSE.adoc; full texts in dfdutils/LICENSES/{Apache-2.0,MIT}.txt

etcdec.cxx is the only component in the whole tree that is not under an OSI-approved licence. For redistribution, the wording of the SLA in its file header is authoritative.

Build-time dependencies via FetchContent (third_party/CMakeLists.txt, not checked in)#

Each licence was read from the LICENSE file of the local FetchContent checkout under build*/_deps/. Those checkouts are not checked in; the paths record which file was actually read.

Project

URL

Pin

Licence (per licence file)

File checked

abseil-cpp

https://github.com/abseil/abseil-cpp

20260817.0 (ABSL_TAG)

Apache-2.0

build-clangcl-profile/_deps/abseil-cpp-src/LICENSE

googletest (only with BUILD_TESTING)

https://github.com/google/googletest

v1.18.0 (tag archive)

BSD-3-Clause licence text (Copyright Google Inc.)

build-clangcl-profile/_deps/googletest-src/LICENSE

Microsoft GSL

https://github.com/microsoft/GSL

v5.0.1

MIT

build-clangcl-profile/_deps/gsl-src/LICENSE

Corrosion (only with RUST_FEATURES, build tool)

https://github.com/corrosion-rs/corrosion

c4786e7a (a commit; v0.6.1 lacks later fixes)

MIT

build-clangcl-profile/_deps/corrosion-src/LICENSE

ANTLR4 C++ runtime (transitive, via FuzzTest)

https://github.com/antlr/antlr4

pinned by FuzzTest

BSD-3-Clause licence text (The ANTLR Project)

build-linux-local/_deps/antlr_cpp-src/LICENSE.txt

RE2 (transitive, via FuzzTest)

https://github.com/google/re2

pinned by FuzzTest

BSD-3-Clause licence text (The RE2 Authors)

build-linux-local/_deps/re2-src/LICENSE

Internal, project-specific submodules#

Project

URL

Pin

Licence

Source checked

OxidANT

https://github.com/Kataglyphis/OxidANT

d610fb49 (develop)

MIT (LICENSE, Copyright (c) 2025 Kataglyphis; license = "MIT" in [workspace.package])

third_party/OxidANT/LICENSE + third_party/OxidANT/Cargo.toml

ANTfrastructure

https://github.com/Kataglyphis/ANTfrastructure

7d819f77

MIT per LICENSE (Copyright (c) 2024 Jonas Heinle); 275 of its own files carry SPDX-License-Identifier: MIT, 25 carry Apache-2.0 again (see “Unverified, to check”); OCI label org.opencontainers.image.licenses="MIT" in the three image definitions that set one (linux/Dockerfile.torch, windows/Dockerfile, windows/Dockerfile.torch)

third_party/ANTfrastructure/LICENSE + SPDX headers + OCI labels

Rust crate dependencies (third_party/OxidANT/crates/webgpu_renderer/Cargo.toml, [dependencies])#

Versions per third_party/OxidANT/Cargo.lock.

Source of the licence entries: the license field of the Cargo metadata, exactly the field the crate published on crates.io, copied unchanged (hence, for example, the old separator in pollster). No entry comes from a README, a neighbouring version or a guess.

  • Rows unchanged since 2026-08-02: read for the exact version in Cargo.lock on 2026-08-02 in the :latest-cross container of the time (volume cargo-cache; it held the full registry, while the host cache was incomplete because the crate builds run in the container) with the command below. The source of every package was checked as well; all are registry+https://github.com/rust-lang/crates.io-index.

    cargo metadata --format-version 1 --locked   # CARGO_HOME=/cargo-cache
    
  • Rows updated on 2026-09-25 (a new lock version): the same license field, read in the Cargo.toml of the exact version in the host’s registry cache (scoop/persist/rustup/.cargo/registry/src) or, for the patched egui-winit, in the vendored third_party/OxidANT/third_party/egui-winit-0.36.2/Cargo.toml ([patch.crates-io] in third_party/OxidANT/Cargo.toml). egui and egui-wgpu 0.36.2 are not in that cache; their entry was read from 0.36.1 (see “Unverified, to check”).

Crate

Version (lock)

Licence (license field)

Source checked

anyhow

1.0.104

MIT OR Apache-2.0

cargo metadata (exact lock version, container)

log

0.4.34

MIT OR Apache-2.0

Cargo.toml of the exact lock version (host cache, 2026-09-25)

bytemuck

1.25.2

Zlib OR Apache-2.0 OR MIT

cargo metadata (exact lock version, container)

env_logger

0.11.11

MIT OR Apache-2.0

cargo metadata (exact lock version, container)

wgpu

30.0.1

MIT OR Apache-2.0

Cargo.toml of the exact lock version (host cache, 2026-09-25)

winit

0.30.13

Apache-2.0

cargo metadata (exact lock version, container)

pollster

1.0.1

Apache-2.0/MIT

Cargo.toml of the exact lock version (host cache, 2026-09-25)

glam

0.34.1

MIT OR Apache-2.0

license field of the exact lock version on crates.io (2026-10-07)

gltf

1.4.1

MIT OR Apache-2.0

cargo metadata (exact lock version, container)

bevy_mikktspace

1.0.0

Zlib AND (MIT OR Apache-2.0)

cargo metadata (exact lock version, container)

egui

0.36.2

MIT OR Apache-2.0

Cargo.toml of 0.36.1 (host cache, 2026-09-25); 0.36.2 itself not read

egui-wgpu

0.36.2

MIT OR Apache-2.0

Cargo.toml of 0.36.1 (host cache, 2026-09-25); 0.36.2 itself not read

egui-winit

0.36.2 (vendored patch)

MIT OR Apache-2.0

third_party/OxidANT/third_party/egui-winit-0.36.2/Cargo.toml (2026-09-25)

ktx2

0.5.0

Apache-2.0

cargo metadata (exact lock version, container)

Notes on single entries:

  • winit 0.30.13 and ktx2 0.5.0 are not dual-licensed but plain Apache-2.0, unlike the other crates in this table.

  • bevy_mikktspace 1.0.0 is a compound expression: the vendored MikkTSpace C code is under Zlib, the Rust part dual MIT/Apache-2.0; both conditions apply at once (AND).

  • pollster 1.0.1 uses the deprecated slash notation Apache-2.0/MIT; it means a choice (equivalent to Apache-2.0 OR MIT).

Toolchain (build time, not shipped)#

Tool

Origin

Licence

slangc (Slang shader compiler)

From the installed Vulkan SDK (VULKAN_SDK\Bin or PATH), see scripts/windows/Build-SlangShaders.ps1 / scripts/linux/compile-slang-shaders.sh; not vendored in the repository

Toolchain, not shipped; licence not verifiable from the repository

Unverified, to check#

Open since the check of 2026-09-25:

  • ANTfrastructure, the MIT/Apache contradiction is back: LICENSE says MIT and 275 of its own files carry SPDX-License-Identifier: MIT, but 25 of its own files carry SPDX-License-Identifier: Apache-2.0 again, together with “All rights reserved.” (among them windows/scripts/host/*.ps1, windows/scripts/build/Build-*All.ps1, windows/scripts/modules/WindowsSourceBuild.Common.psm1, .claude/hooks/guard-destructive-deletes.*). To be fixed in ANTfrastructure, not here.

  • egui / egui-wgpu 0.36.2: the license field was read from 0.36.1, because 0.36.2 is not in the host cache; confirm it for the exact version with cargo metadata --locked in the container.

Resolved on 2026-08-07:

  • ANTfrastructure, missing LICENSE: the submodule now carries a LICENSE file; its pin was also corrected from 2ac69e95 to the then current 45709430.

  • ANTfrastructure, MIT/Apache contradiction: resolved in favour of MIT. LICENSE said MIT while 101 of its own source files carried SPDX-License-Identifier: Apache-2.0 and two of the three image definitions set the OCI label Apache-2.0. All three places say MIT now, and the phrase “All rights reserved.”, which contradicts MIT, left the headers. Not touched: linux/webserver/dist/assets/NOTICES and docs/deps/deps.json, which state third-party licences (among them Apache 2.0 for LLVM, TVM, OpenCV, Vulkan SDK) and stay correct.

Resolved on 2026-08-02:

  • The 11 previously unverified Rust crates (env_logger, wgpu, winit, pollster, glam, gltf, bevy_mikktspace, egui, egui-wgpu, egui-winit, ktx2), verified from cargo metadata in the container (crate table above).

  • anyhow, log and bytemuck, verified for the exact lock version instead of a neighbouring cached one; their licence expressions did not change.

  • The embedded third-party parts in third_party/KTX/lib/, verified one by one from the files on disk (table under “Vendored sources”).

Notes#

  • Removed since the state of 2026-03-26: glad (no third_party/glad submodule any more, no glad or OpenGL loader references under Src/) and KTX as a submodule (now partly vendored, see above).

  • Kompute is built only with KATAGLYPHIS_BUILD_KOMPUTE_PLAYGROUND=ON (a demo, not part of the engine, in no package). Since 2026-10-06 only the Linux CI job clang-tests does that, and it also starts the playground; Kompute then fetches fmt 11.0.0 through FetchContent.