[package]
name = "ringkernel-wavesim"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
rust-version.workspace = true
description = "Interactive 2D wave propagation showcase for RingKernel"
keywords = ["gpu", "simulation", "wave", "physics", "ringkernel"]
categories = ["simulation", "graphics", "visualization"]
readme = "README.md"
[dependencies]
ringkernel = { version = "0.4.0", path = "../ringkernel" }
ringkernel-core = { version = "0.4.0", path = "../ringkernel-core" }
ringkernel-derive = { version = "0.4.0", path = "../ringkernel-derive" }
ringkernel-cuda-codegen = { version = "0.4.0", path = "../ringkernel-cuda-codegen", optional = true }
inventory = { workspace = true }
iced = { version = "0.13", features = ["canvas", "tokio"] }
tokio = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
rayon = "1.11"
rand = "0.8"
wgpu = { workspace = true, optional = true }
bytemuck = { version = "1.24", features = ["derive"], optional = true }
ringkernel-cuda = { version = "0.4.0", path = "../ringkernel-cuda", optional = true }
cudarc = { workspace = true, optional = true }
syn = { workspace = true, optional = true }
[dev-dependencies]
criterion = { workspace = true }
[features]
default = ["cpu", "simd"]
cpu = ["ringkernel/cpu"]
cuda = ["ringkernel/cuda", "dep:ringkernel-cuda", "dep:cudarc", "dep:bytemuck"]
cuda-codegen = ["cuda", "dep:ringkernel-cuda-codegen", "dep:syn", "ringkernel-derive/cuda-codegen"]
wgpu = ["ringkernel/wgpu", "dep:wgpu", "dep:bytemuck"]
simd = []
all-backends = ["cpu", "cuda", "wgpu"]
[[bin]]
name = "wavesim"
path = "src/bin/wavesim.rs"
[[bin]]
name = "benchmark"
path = "src/bin/benchmark.rs"
[[bin]]
name = "full_benchmark"
path = "src/bin/full_benchmark.rs"
[[bin]]
name = "test_cuda"
path = "src/bin/test_cuda.rs"
required-features = ["cuda"]
[[bin]]
name = "bench_packed"
path = "src/bin/bench_packed.rs"
required-features = ["cuda"]
[[bin]]
name = "verify_packed"
path = "src/bin/verify_packed.rs"
required-features = ["cuda"]
[[example]]
name = "educational_modes"
path = "examples/educational_modes.rs"