diff --git a/Cargo.lock b/Cargo.lock index d82a340..429df6e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -74,7 +74,7 @@ dependencies = [ "accesskit_macos", "accesskit_windows", "raw-window-handle 0.6.2", - "winit 0.30.10", + "winit 0.30.11", ] [[package]] @@ -190,7 +190,7 @@ dependencies = [ "ndk 0.9.0", "ndk-context", "ndk-sys 0.6.0+11769913", - "num_enum 0.7.3", + "num_enum 0.7.4", "thiserror", ] @@ -304,9 +304,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.3.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" dependencies = [ "concurrent-queue", "event-listener-strategy", @@ -631,9 +631,9 @@ dependencies = [ [[package]] name = "bevy_ecs" -version = "0.15.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1597106cc01e62e6217ccb662e0748b2ce330893f27c7dc17bac33e0bb99bca9" +checksum = "ecb64e8f2fe95aa2f8b3e96d09acd23021257ce4a8c942f4c38dcbeaf721955c" dependencies = [ "arrayvec 0.7.6", "bevy_ecs_macros", @@ -932,7 +932,7 @@ dependencies = [ [[package]] name = "bevy_nannou" version = "0.1.0" -source = "git+https://github.com/nannou-org/nannou?branch=bevy-refactor#03135771b41944347a64ef385f299d89dbea45c1" +source = "git+https://github.com/nannou-org/nannou?rev=03135771b41944347a64ef385f299d89dbea45c1#03135771b41944347a64ef385f299d89dbea45c1" dependencies = [ "bevy", "bevy_nannou_derive", @@ -942,7 +942,7 @@ dependencies = [ [[package]] name = "bevy_nannou_derive" version = "0.1.0" -source = "git+https://github.com/nannou-org/nannou?branch=bevy-refactor#03135771b41944347a64ef385f299d89dbea45c1" +source = "git+https://github.com/nannou-org/nannou?rev=03135771b41944347a64ef385f299d89dbea45c1#03135771b41944347a64ef385f299d89dbea45c1" dependencies = [ "quote", "syn 1.0.109", @@ -951,12 +951,12 @@ dependencies = [ [[package]] name = "bevy_nannou_draw" version = "0.1.0" -source = "git+https://github.com/nannou-org/nannou?branch=bevy-refactor#03135771b41944347a64ef385f299d89dbea45c1" +source = "git+https://github.com/nannou-org/nannou?rev=03135771b41944347a64ef385f299d89dbea45c1#03135771b41944347a64ef385f299d89dbea45c1" dependencies = [ "bevy", "bitflags 2.9.1", "lyon 1.0.1", - "nannou_core 0.19.0 (git+https://github.com/nannou-org/nannou?branch=bevy-refactor)", + "nannou_core 0.19.0 (git+https://github.com/nannou-org/nannou?rev=03135771b41944347a64ef385f299d89dbea45c1)", "rayon", "rusttype", "uuid", @@ -1368,7 +1368,7 @@ dependencies = [ "wasm-bindgen", "web-sys", "wgpu-types 23.0.0", - "winit 0.30.10", + "winit 0.30.11", ] [[package]] @@ -1386,7 +1386,25 @@ dependencies = [ "proc-macro2", "quote", "regex", - "rustc-hash", + "rustc-hash 1.1.0", + "shlex", + "syn 2.0.101", +] + +[[package]] +name = "bindgen" +version = "0.72.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f72209734318d0b619a5e0f5129918b848c416e122a3c4ce054e03cb87b726f" +dependencies = [ + "bitflags 2.9.1", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.1", "shlex", "syn 2.0.101", ] @@ -1485,9 +1503,9 @@ dependencies = [ [[package]] name = "blocking" -version = "1.6.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" dependencies = [ "async-channel", "async-task", @@ -1563,7 +1581,7 @@ dependencies = [ "bitflags 2.9.1", "log", "polling", - "rustix", + "rustix 0.38.44", "slab", "thiserror", ] @@ -1575,7 +1593,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" dependencies = [ "calloop 0.13.0", - "rustix", + "rustix 0.38.44", "wayland-backend", "wayland-client 0.31.10", ] @@ -1785,9 +1803,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ "core-foundation-sys", "libc", @@ -1849,11 +1867,11 @@ dependencies = [ [[package]] name = "coreaudio-sys" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ce857aa0b77d77287acc1ac3e37a05a8c95a2af3647d23b15f263bdaeb7562b" +checksum = "ceec7a6067e62d6f931a2baf6f3a751f4a892595bcec1461a3c94ef9949864b6" dependencies = [ - "bindgen", + "bindgen 0.72.0", ] [[package]] @@ -1867,7 +1885,7 @@ dependencies = [ "log", "rangemap", "rayon", - "rustc-hash", + "rustc-hash 1.1.0", "rustybuzz", "self_cell", "swash", @@ -2006,9 +2024,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "ctrlc" @@ -2022,9 +2040,9 @@ dependencies = [ [[package]] name = "cursor-icon" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" +checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" [[package]] name = "cv-core" @@ -2282,9 +2300,9 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", "windows-sys 0.59.0", @@ -2722,7 +2740,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6d95ae10ce5aa99543a28cf74e41c11f3b9e3c14f0452bbde46024753cd683e" dependencies = [ - "core-foundation 0.10.0", + "core-foundation 0.10.1", "inotify", "io-kit-sys", "js-sys", @@ -2734,7 +2752,7 @@ dependencies = [ "vec_map", "wasm-bindgen", "web-sys", - "windows 0.61.1", + "windows 0.58.0", ] [[package]] @@ -2908,9 +2926,9 @@ dependencies = [ [[package]] name = "gpu-descriptor" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca" +checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ "bitflags 2.9.1", "gpu-descriptor-types 0.2.0", @@ -3037,9 +3055,9 @@ checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hermit-abi" -version = "0.4.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hexasphere" @@ -3127,7 +3145,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.61.1", + "windows-core 0.58.0", ] [[package]] @@ -3397,6 +3415,26 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "laserspace" +version = "0.1.0" +dependencies = [ + "bevy", + "bevy_nannou", + "cv-core", + "geo", + "homography", + "iyes_perf_ui", + "nalgebra 0.30.1", + "nannou", + "nannou_egui", + "nannou_laser", + "serde", + "serde_json", + "serde_repr", + "zmq", +] + [[package]] name = "lasy" version = "0.4.1" @@ -3500,6 +3538,12 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +[[package]] +name = "linux-raw-sys" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + [[package]] name = "litrs" version = "0.4.1" @@ -3626,9 +3670,9 @@ dependencies = [ [[package]] name = "mach2" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" dependencies = [ "libc", ] @@ -3810,7 +3854,7 @@ dependencies = [ "indexmap 1.9.3", "log", "num-traits", - "rustc-hash", + "rustc-hash 1.1.0", "spirv 0.2.0+1.5.4", "termcolor", "thiserror", @@ -3832,7 +3876,7 @@ dependencies = [ "indexmap 2.9.0", "log", "pp-rs", - "rustc-hash", + "rustc-hash 1.1.0", "spirv 0.3.0+sdk-1.3.268.0", "termcolor", "thiserror", @@ -3853,7 +3897,7 @@ dependencies = [ "once_cell", "regex", "regex-syntax 0.8.5", - "rustc-hash", + "rustc-hash 1.1.0", "thiserror", "tracing", "unicode-ident", @@ -3947,7 +3991,7 @@ dependencies = [ [[package]] name = "nannou_core" version = "0.19.0" -source = "git+https://github.com/nannou-org/nannou?branch=bevy-refactor#03135771b41944347a64ef385f299d89dbea45c1" +source = "git+https://github.com/nannou-org/nannou?rev=03135771b41944347a64ef385f299d89dbea45c1#03135771b41944347a64ef385f299d89dbea45c1" dependencies = [ "glam 0.29.3", "num-traits", @@ -4025,7 +4069,7 @@ dependencies = [ "jni-sys", "log", "ndk-sys 0.5.0+25.2.9519653", - "num_enum 0.7.3", + "num_enum 0.7.4", "thiserror", ] @@ -4039,7 +4083,7 @@ dependencies = [ "jni-sys", "log", "ndk-sys 0.6.0+11769913", - "num_enum 0.7.3", + "num_enum 0.7.4", "raw-window-handle 0.6.2", "thiserror", ] @@ -4306,11 +4350,12 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" dependencies = [ - "num_enum_derive 0.7.3", + "num_enum_derive 0.7.4", + "rustversion", ] [[package]] @@ -4319,7 +4364,7 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", "syn 1.0.109", @@ -4331,7 +4376,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.101", @@ -4339,11 +4384,11 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.101", @@ -4877,24 +4922,24 @@ dependencies = [ [[package]] name = "polling" -version = "3.7.4" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +checksum = "b53a684391ad002dd6a596ceb6c74fd004fdce75f4be2e3f615068abbea5fd50" dependencies = [ "cfg-if 1.0.0", "concurrent-queue", - "hermit-abi 0.4.0", + "hermit-abi 0.5.2", "pin-project-lite", - "rustix", + "rustix 1.0.7", "tracing", "windows-sys 0.59.0", ] [[package]] name = "portable-atomic" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "portable-atomic-util" @@ -4931,9 +4976,9 @@ checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" [[package]] name = "prettyplease" -version = "0.2.32" +version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" +checksum = "6837b9e10d61f45f987d50808f83d1ee3d206c66acf650c3e4ae2e1f6ddedf55" dependencies = [ "proc-macro2", "syn 2.0.101", @@ -4949,15 +4994,6 @@ dependencies = [ "toml_edit 0.19.15", ] -[[package]] -name = "proc-macro-crate" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" -dependencies = [ - "toml_edit 0.22.26", -] - [[package]] name = "proc-macro-hack" version = "0.5.20+deprecated" @@ -5310,6 +5346,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + [[package]] name = "rustc_version" version = "0.4.1" @@ -5328,7 +5370,20 @@ dependencies = [ "bitflags 2.9.1", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +dependencies = [ + "bitflags 2.9.1", + "errno", + "libc", + "linux-raw-sys 0.9.4", "windows-sys 0.59.0", ] @@ -5344,7 +5399,7 @@ dependencies = [ "linked-hash-map", "num_cpus", "ordered-float", - "rustc-hash", + "rustc-hash 1.1.0", "stb_truetype", ] @@ -5654,7 +5709,7 @@ dependencies = [ "libc", "log", "memmap2 0.9.5", - "rustix", + "rustix 0.38.44", "thiserror", "wayland-backend", "wayland-client 0.31.10", @@ -5873,12 +5928,11 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if 1.0.0", - "once_cell", ] [[package]] @@ -6062,9 +6116,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", @@ -6073,9 +6127,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -6098,7 +6152,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "528bdd1f0e27b5dd9a4ededf154e824b0532731e4af73bb531de46276e0aab1e" dependencies = [ - "bindgen", + "bindgen 0.70.1", "cc", "cfg-if 1.0.0", "once_cell", @@ -6136,26 +6190,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "trap_rust" -version = "0.1.0" -dependencies = [ - "bevy", - "bevy_nannou", - "cv-core", - "geo", - "homography", - "iyes_perf_ui", - "nalgebra 0.30.1", - "nannou", - "nannou_egui", - "nannou_laser", - "serde", - "serde_json", - "serde_repr", - "zmq", -] - [[package]] name = "ttf-parser" version = "0.20.0" @@ -6190,7 +6224,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deb68604048ff8fa93347f02441e4487594adc20bb8a084f9e564d2b827a0a9f" dependencies = [ - "rustc-hash", + "rustc-hash 1.1.0", ] [[package]] @@ -6414,7 +6448,7 @@ checksum = "fe770181423e5fc79d3e2a7f4410b7799d5aab1de4372853de3c6aa13ca24121" dependencies = [ "cc", "downcast-rs", - "rustix", + "rustix 0.38.44", "scoped-tls", "smallvec", "wayland-sys 0.31.6", @@ -6443,7 +6477,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978fa7c67b0847dbd6a9f350ca2569174974cd4082737054dbb7fbb79d7d9a61" dependencies = [ "bitflags 2.9.1", - "rustix", + "rustix 0.38.44", "wayland-backend", "wayland-scanner 0.31.6", ] @@ -6488,7 +6522,7 @@ version = "0.31.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a65317158dec28d00416cb16705934070aef4f8393353d41126c54264ae0f182" dependencies = [ - "rustix", + "rustix 0.38.44", "wayland-client 0.31.10", "xcursor", ] @@ -6677,7 +6711,7 @@ dependencies = [ "parking_lot", "profiling", "raw-window-handle 0.5.2", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror", "web-sys", @@ -6703,7 +6737,7 @@ dependencies = [ "parking_lot", "profiling", "raw-window-handle 0.6.2", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror", "wgpu-hal 23.0.1", @@ -6742,7 +6776,7 @@ dependencies = [ "range-alloc", "raw-window-handle 0.5.2", "renderdoc-sys", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror", "wasm-bindgen", @@ -6770,7 +6804,7 @@ dependencies = [ "glutin_wgl_sys", "gpu-alloc", "gpu-allocator 0.27.0", - "gpu-descriptor 0.3.1", + "gpu-descriptor 0.3.2", "js-sys", "khronos-egl 6.0.0", "libc", @@ -6786,7 +6820,7 @@ dependencies = [ "range-alloc", "raw-window-handle 0.6.2", "renderdoc-sys", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror", "wasm-bindgen", @@ -6904,28 +6938,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows" -version = "0.61.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419" -dependencies = [ - "windows-collections", - "windows-core 0.61.1", - "windows-future", - "windows-link", - "windows-numerics", -] - -[[package]] -name = "windows-collections" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" -dependencies = [ - "windows-core 0.61.1", -] - [[package]] name = "windows-core" version = "0.54.0" @@ -6957,34 +6969,10 @@ dependencies = [ "windows-implement 0.58.0", "windows-interface 0.58.0", "windows-result 0.2.0", - "windows-strings 0.1.0", + "windows-strings", "windows-targets 0.52.6", ] -[[package]] -name = "windows-core" -version = "0.61.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ec44dc15085cea82cf9c78f85a9114c463a369786585ad2882d1ff0b0acf40" -dependencies = [ - "windows-implement 0.60.0", - "windows-interface 0.59.1", - "windows-link", - "windows-result 0.3.3", - "windows-strings 0.4.1", -] - -[[package]] -name = "windows-future" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" -dependencies = [ - "windows-core 0.61.1", - "windows-link", - "windows-threading", -] - [[package]] name = "windows-implement" version = "0.57.0" @@ -7007,17 +6995,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "windows-implement" -version = "0.60.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "windows-interface" version = "0.57.0" @@ -7040,32 +7017,11 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "windows-interface" -version = "0.59.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "windows-link" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - -[[package]] -name = "windows-numerics" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" -dependencies = [ - "windows-core 0.61.1", - "windows-link", -] +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-result" @@ -7085,15 +7041,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-result" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b895b5356fc36103d0f64dd1e94dfa7ac5633f1c9dd6e80fe9ec4adef69e09d" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-strings" version = "0.1.0" @@ -7104,15 +7051,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-strings" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a7ab927b2637c19b3dbe0965e75d8f2d30bdd697a1516191cad2ec4df8fb28a" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-sys" version = "0.45.0" @@ -7211,15 +7149,6 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] -[[package]] -name = "windows-threading" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" -dependencies = [ - "windows-link", -] - [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -7437,9 +7366,9 @@ dependencies = [ [[package]] name = "winit" -version = "0.30.10" +version = "0.30.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d05bd8908e14618c9609471db04007e644fd9cce6529756046cfc577f9155e" +checksum = "a4409c10174df8779dc29a4788cac85ed84024ccbc1743b776b21a520ee1aaf4" dependencies = [ "ahash", "android-activity 0.6.0", @@ -7467,7 +7396,7 @@ dependencies = [ "pin-project", "raw-window-handle 0.6.2", "redox_syscall 0.4.1", - "rustix", + "rustix 0.38.44", "sctk-adwaita 0.10.1", "smithay-client-toolkit 0.19.2", "smol_str", @@ -7536,7 +7465,7 @@ dependencies = [ "libc", "libloading 0.8.7", "once_cell", - "rustix", + "rustix 0.38.44", "x11rb-protocol", ] @@ -7649,9 +7578,9 @@ checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" [[package]] name = "zune-jpeg" -version = "0.4.14" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028" +checksum = "2c9e525af0a6a658e031e95f14b7f889976b74a11ba0eca5a5fc9ac8a1c43a6a" dependencies = [ "zune-core", ] diff --git a/Cargo.toml b/Cargo.toml index a69c8e3..c01b7dc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,12 @@ [package] -name = "trap_rust" +name = "laserspace" version = "0.1.0" edition = "2024" [dependencies] bevy = "0.15.3" -bevy_nannou = { git = "https://github.com/nannou-org/nannou", branch = "bevy-refactor", version = "0.1.0", features = ["wayland"] } +# bevy_nannou = { git = "https://github.com/nannou-org/nannou", branch = "bevy-refactor", version = "0.1.0", features = ["wayland"] } +bevy_nannou = { git = "https://github.com/nannou-org/nannou", rev = "03135771b41944347a64ef385f299d89dbea45c1", version = "0.1.0", features = ["wayland"] } iyes_perf_ui = "0.4.0" nannou_laser = { git = "https://github.com/rubenvandeven/nannou", branch = "helios_laser_DAC" } diff --git a/README.md b/README.md new file mode 100644 index 0000000..0f53530 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +A tool to send lines to a series of laser projectors (showlasers). Uses the [nannou](https://github.com/nannou-org/nannou) creative coding framework for laser control, and optimisation of the lines before sending them to the DAC. + +It's still a bit of a hacked-together tool. But it works for my case. + +## Features + +* Receive lines over ZMQ. + * Safety feature: stop the output if no lines are received +* Clipping mask, to mark laser-free zones +* Homography by simply dragging the corners of the projection area/corner-pin. +* Change intensity of projected lines. +* Geometric (pincushion/barrel) correction for x and y axes independently + * Particularly x-distortion tends to be present in laser systems due to the independent x/y galvanometer setup. +* Configuration can be saved to a JSON file. +* Many of the settings can be configured per DAC. +* Some pre-defined shapes for debugging purposes. + +## Basic idea + +This tool was initially made for projection mapping of a large space, which required multiple lasers. Received lines are assumed to be in world-space coordinates. The space is mapped to distinct laser DACs by means of homography/corner-pinning and various geometric correction parameters. + +By using ZMQ as input, the mapping of the lines is decoupled from the generation code. In my own setup ([trap](https://git.rubenvandeven.com/security_vision/trap)) the lines are generated by means of a sequence of Python scripts. + +## Usage + +```bash +cargo run --bin render_lines_gui +``` \ No newline at end of file diff --git a/examples/laser_points_homography.rs b/examples/laser_points_homography.rs index af3284c..2ab4305 100644 --- a/examples/laser_points_homography.rs +++ b/examples/laser_points_homography.rs @@ -1,5 +1,5 @@ use bevy::math::Vec3; -use trap_rust::trap::laser::{self, apply_homography_matrix}; +use laserspace::trap::laser::{self, apply_homography_matrix}; /* Compare output with the following python diff --git a/examples/test_serialisation.rs b/examples/test_serialisation.rs index ca0e220..3739bdf 100644 --- a/examples/test_serialisation.rs +++ b/examples/test_serialisation.rs @@ -1,5 +1,5 @@ use serde_json::Result; -use trap_rust::trap::tracks::RenderableLines; +use laserspace::trap::tracks::RenderableLines; /* Compare output with the following python diff --git a/src/bin/render_lines_gui.rs b/src/bin/render_lines_gui.rs index 5c03a4e..0e16d22 100644 --- a/src/bin/render_lines_gui.rs +++ b/src/bin/render_lines_gui.rs @@ -12,11 +12,11 @@ use nannou_egui::{self, egui, Egui}; use nannou_laser::DacId; use nannou_laser::{self as laser}; use serde_json::Result; -use trap_rust::trap::filters::PointFilters; -use trap_rust::trap::laser::{shape_rect, LaserPoints, LaserSpace, StreamSource, STREAM_SOURCES, TMP_DESK_CLUBMAX, Corner}; -use trap_rust::trap::tracks::CoordinateSpace; -use trap_rust::trap::utils::{closest_edge, split_on_blank}; -use trap_rust::trap::{laser::{python_cv_h_into_mat3, LaserModel, TMP_PYTHON_LASER_H, DacConfig}, tracks::{RenderableLines}}; +use laserspace::trap::filters::PointFilters; +use laserspace::trap::laser::{shape_rect, LaserPoints, LaserSpace, StreamSource, STREAM_SOURCES, TMP_DESK_CLUBMAX, Corner}; +use laserspace::trap::tracks::CoordinateSpace; +use laserspace::trap::utils::{closest_edge, split_on_blank}; +use laserspace::trap::{laser::{python_cv_h_into_mat3, LaserModel, TMP_PYTHON_LASER_H, DacConfig}, tracks::{RenderableLines}}; use zmq::Socket; use std::sync::{mpsc, Arc}; use std::time::{Instant, Duration}; diff --git a/src/bin/render_tracks.rs b/src/bin/render_tracks.rs index 598e334..0be3215 100644 --- a/src/bin/render_tracks.rs +++ b/src/bin/render_tracks.rs @@ -3,23 +3,23 @@ use bevy::prelude::*; use bevy_nannou::prelude::*; use bevy_nannou::NannouPlugin; use nannou_laser::point::Rgb; -use trap_rust::trap::laser::apply_homography_matrix; -use trap_rust::trap::laser::python_cv_h_into_mat3; -use trap_rust::trap::laser::LaserApi; -use trap_rust::trap::laser::LaserModel; -use trap_rust::trap::laser::LaserTimer; -use trap_rust::trap::laser::TMP_PYTHON_LASER_H; -use trap_rust::trap::laser::TMP_PYTHON_LASER_H_FOR_NANNOU; -use trap_rust::trap::shapes::PositionAndIntensity; -use trap_rust::trap::tracks::LaserPoints; -use trap_rust::trap::tracks::RenderableLines; -use trap_rust::trap::tracks::SpawnedTime; -use trap_rust::trap::tracks::Track; -use trap_rust::trap::zmqplugin::ZmqPlugin; +use laserspace::trap::laser::apply_homography_matrix; +use laserspace::trap::laser::python_cv_h_into_mat3; +use laserspace::trap::laser::LaserApi; +use laserspace::trap::laser::LaserModel; +use laserspace::trap::laser::LaserTimer; +use laserspace::trap::laser::TMP_PYTHON_LASER_H; +use laserspace::trap::laser::TMP_PYTHON_LASER_H_FOR_NANNOU; +use laserspace::trap::shapes::PositionAndIntensity; +use laserspace::trap::tracks::LaserPoints; +use laserspace::trap::tracks::RenderableLines; +use laserspace::trap::tracks::SpawnedTime; +use laserspace::trap::tracks::Track; +use laserspace::trap::zmqplugin::ZmqPlugin; +use laserspace::trap::zmqplugin::ZmqReceiveTarget; // use iyes_perf_ui::PerfUiPlugin; use nannou_laser as laser; -use trap_rust::trap::zmqplugin::ZmqReceiveTarget; use std::time::Duration; @@ -157,8 +157,8 @@ fn laser_frame_producer(model: &mut LaserModel, frame: &mut laser::Frame){ fn get_laser_lines(use_second: bool) -> Vec{ let positions = match use_second { - true => trap_rust::trap::shapes::YOUR_FUTURE, - false => trap_rust::trap::shapes::ARE_YOU_SURE, + true => laserspace::trap::shapes::YOUR_FUTURE, + false => laserspace::trap::shapes::ARE_YOU_SURE, }; let points = positions.iter().cloned().map(text2points).collect(); return points