[package]
edition = "2024"
rust-version = "1.95"
name = "indicatrix"
version = "0.2.2"
authors = ["Suitable-Name"]
build = "build.rs"
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A physically-based spectral gemstone renderer that turns GemCAD-style cutting schedules into rendered output."
documentation = "https://docs.rs/indicatrix"
readme = "README.md"
keywords = [
"gemstone",
"raytracer",
"spectral",
"rendering",
"faceting",
]
categories = [
"rendering",
"graphics",
"science",
]
license = "MIT"
repository = "https://github.com/suitable-name/indicatrix"
[features]
default = []
gpu = [
"dep:wgpu",
"dep:pollster",
]
hdr = ["dep:image"]
serde = [
"dep:serde",
"glam/serde",
]
[lib]
name = "indicatrix"
path = "src/lib.rs"
[[example]]
name = "bounce_cost"
path = "examples/bounce_cost.rs"
[[example]]
name = "gpu_equivalence_harness"
path = "examples/gpu_equivalence_harness.rs"
required-features = ["gpu"]
[[example]]
name = "meet_oracle_probe"
path = "examples/meet_oracle_probe.rs"
[[example]]
name = "meet_selftest"
path = "examples/meet_selftest.rs"
[[example]]
name = "meet_solver_validation"
path = "examples/meet_solver_validation.rs"
[[example]]
name = "pgo_train"
path = "examples/pgo_train.rs"
[[example]]
name = "simd_bench"
path = "examples/simd_bench.rs"
[[test]]
name = "color_tests"
path = "tests/color_tests.rs"
[[test]]
name = "denoise_tests"
path = "tests/denoise_tests.rs"
[[test]]
name = "env_map_tests"
path = "tests/env_map_tests.rs"
[[test]]
name = "metrics_tests"
path = "tests/metrics_tests.rs"
[[test]]
name = "optics_geometry_tests"
path = "tests/optics_geometry_tests.rs"
[[test]]
name = "raytracer_tests"
path = "tests/raytracer_tests.rs"
[dependencies.bytemuck]
version = "1.22"
features = ["derive"]
[dependencies.chull]
version = "0.2.4"
[dependencies.glam]
version = "0.33.7"
[dependencies.image]
version = "0.25"
features = ["hdr"]
optional = true
default-features = false
[dependencies.indicatrix-formats]
version = "0.2.0"
[dependencies.pollster]
version = "1.0.1"
optional = true
[dependencies.serde]
version = "1.0.229"
features = ["derive"]
optional = true
[dependencies.tracing]
version = "0.1.44"
[dev-dependencies.naga]
version = "30.0.1"
features = ["wgsl-in"]
default-features = false
[dev-dependencies.rusqlite]
version = "0.40.2"
features = ["bundled"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.wgpu]
version = "30.0.1"
features = [
"std",
"parking_lot",
"dx12",
"metal",
"gles",
"vulkan",
"wgsl",
"webgpu",
]
optional = true
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.futures-channel]
version = "0.3.34"
features = ["std"]
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.wgpu]
version = "30.0.1"
features = [
"wgsl",
"webgpu",
]
optional = true
default-features = false
[lints.clippy.cast_possible_truncation]
level = "allow"
priority = 0
[lints.clippy.cast_possible_wrap]
level = "allow"
priority = 0
[lints.clippy.cast_precision_loss]
level = "allow"
priority = 0
[lints.clippy.cast_sign_loss]
level = "allow"
priority = 0
[lints.clippy.float_cmp]
level = "allow"
priority = 0
[lints.clippy.implicit_hasher]
level = "allow"
priority = 0
[lints.clippy.inline_always]
level = "allow"
priority = 0
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.clippy.result_large_err]
level = "allow"
priority = 0
[lints.clippy.similar_names]
level = "allow"
priority = 0
[lints.clippy.struct_excessive_bools]
level = "allow"
priority = 0