From d7107ddb259d11da784e0c3b18778e8eb0a1506e Mon Sep 17 00:00:00 2001 From: Adam Chalmers Date: Wed, 26 Feb 2025 21:45:16 -0600 Subject: [PATCH] Release 101 (#1161) * WIP release * Integrate changes to the text-to-cad API * Update walkie talkie example --- Cargo.lock | 177 ++++++++++++++++------------ Cargo.toml | 12 +- src/cmd_kcl.rs | 7 +- src/cmd_ml/cmd_kcl.rs | 3 + src/cmd_ml/cmd_text_to_cad.rs | 4 +- src/context.rs | 7 +- tests/walkie-talkie/body.kcl | 4 +- tests/walkie-talkie/button.kcl | 4 +- tests/walkie-talkie/talk-button.kcl | 4 +- 9 files changed, 131 insertions(+), 91 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 09d0c4d2..4196e741 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,7 +37,7 @@ dependencies = [ "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -72,9 +72,9 @@ dependencies = [ [[package]] name = "ansi-str" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cf4578926a981ab0ca955dc023541d19de37112bc24c1a197bd806d3d86ad1d" +checksum = "060de1453b69f46304b28274f382132f4e72c55637cf362920926a70d090890d" dependencies = [ "ansitok", ] @@ -90,9 +90,9 @@ dependencies = [ [[package]] name = "ansitok" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "220044e6a1bb31ddee4e3db724d29767f352de47445a6cd75e1a173142136c83" +checksum = "c0a8acea8c2f1c60f0a92a8cd26bf96ca97db56f10bbcab238bbe0cceba659ee" dependencies = [ "nom", "vte", @@ -150,9 +150,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.95" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" +checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4" dependencies = [ "backtrace", ] @@ -198,12 +198,6 @@ dependencies = [ "syn 2.0.98", ] -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - [[package]] name = "arrayvec" version = "0.7.6" @@ -278,7 +272,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf" dependencies = [ "anyhow", - "arrayvec 0.7.6", + "arrayvec", "log", "nom", "num-rational", @@ -291,7 +285,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e335041290c43101ca215eed6f43ec437eb5a42125573f600fc3fa42b9bddd62" dependencies = [ - "arrayvec 0.7.6", + "arrayvec", ] [[package]] @@ -562,7 +556,7 @@ version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.98", @@ -844,9 +838,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f" +checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" [[package]] name = "deranged" @@ -1259,8 +1253,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi 0.13.3+wasi-0.2.2", + "wasm-bindgen", "windows-targets 0.52.6", ] @@ -1382,12 +1378,6 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" @@ -1950,9 +1940,9 @@ dependencies = [ [[package]] name = "kcl-lib" -version = "0.2.38" +version = "0.2.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c0972511a0732091b0f7c0b4647f78b29f9a4bf40cd2908877a74849b7448a9" +checksum = "27b8fb4edaf2b8787af6df76aa60a4c57cd513e3309f07f0faa0211b7fbdf683" dependencies = [ "anyhow", "approx 0.5.1", @@ -2009,9 +1999,9 @@ dependencies = [ [[package]] name = "kcl-test-server" -version = "0.1.38" +version = "0.1.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3328e515e5670a3bc7971bb08f700a4e7e382dd75c5cc200ab20daafc33cddf" +checksum = "cca86c0e04663b6564b70f856f7ba3d268daa58cdaf07923b871ff72f547bbdb" dependencies = [ "anyhow", "hyper 0.14.32", @@ -2024,9 +2014,9 @@ dependencies = [ [[package]] name = "kittycad" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "933cb5f77624386c87d296e3fd493daf50156d1cbfa03b9f333a6d4da2896369" +checksum = "26867ddcde1d07032c6a54e1601f431ac1900eaf8f96e22f7a12375f390e739b" dependencies = [ "anyhow", "async-trait", @@ -2038,13 +2028,14 @@ dependencies = [ "data-encoding", "format_serde_error", "futures", + "getrandom 0.3.1", "http 1.2.0", "itertools 0.13.0", "log", "mime_guess", "parse-display 0.10.0", "phonenumber", - "rand 0.8.5", + "rand 0.9.0", "reqwest 0.12.12", "reqwest-conditional-middleware", "reqwest-middleware", @@ -2065,9 +2056,9 @@ dependencies = [ [[package]] name = "kittycad-modeling-cmds" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198d0bcfa2875b389325e363a12c780467dc137e6c37eaeae291ce036029e014" +checksum = "fb5a824cb9bb4c602962ecbaca5ce71225938aa1abc24103bf46c222f468dd26" dependencies = [ "anyhow", "chrono", @@ -2603,9 +2594,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "papergrid" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b0f8def1f117e13c895f3eda65a7b5650688da29d6ad04635f61bc7b92eebd" +checksum = "b915f831b85d984193fdc3d3611505871dc139b2534530fa01c1a6a6707b6723" dependencies = [ "ansi-str", "ansitok", @@ -2819,7 +2810,7 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -3014,10 +3005,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", + "rand_chacha 0.3.1", "rand_core 0.6.4", ] +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.2", + "zerocopy 0.8.20", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -3028,6 +3030,16 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.2", +] + [[package]] name = "rand_core" version = "0.3.1" @@ -3052,6 +3064,16 @@ dependencies = [ "getrandom 0.2.15", ] +[[package]] +name = "rand_core" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a509b1a2ffbe92afab0e55c8fd99dea1c280e8171bd2d88682bb20bc41cbc2c" +dependencies = [ + "getrandom 0.3.1", + "zerocopy 0.8.20", +] + [[package]] name = "rav1e" version = "0.7.1" @@ -3060,7 +3082,7 @@ checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" dependencies = [ "arbitrary", "arg_enum_proc_macro", - "arrayvec 0.7.6", + "arrayvec", "av1-grain", "bitstream-io", "built", @@ -3079,7 +3101,7 @@ dependencies = [ "paste", "profiling", "rand 0.8.5", - "rand_chacha", + "rand_chacha 0.3.1", "simd_helpers", "system-deps", "thiserror 1.0.69", @@ -3658,9 +3680,9 @@ checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" [[package]] name = "serde" -version = "1.0.217" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" dependencies = [ "serde_derive", ] @@ -3676,9 +3698,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" dependencies = [ "proc-macro2", "quote", @@ -3698,9 +3720,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.138" +version = "1.0.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" +checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" dependencies = [ "indexmap 2.7.1", "itoa", @@ -4038,7 +4060,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "rustversion", @@ -4127,7 +4149,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" dependencies = [ "cfg-expr", - "heck 0.5.0", + "heck", "pkg-config", "toml", "version-compare", @@ -4135,9 +4157,9 @@ dependencies = [ [[package]] name = "tabled" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6709222f3973137427ce50559cd564dc187a95b9cfe01613d2f4e93610e510a" +checksum = "121d8171ee5687a4978d1b244f7d99c43e7385a272185a2f1e1fa4dc0979d444" dependencies = [ "ansi-str", "ansitok", @@ -4147,15 +4169,15 @@ dependencies = [ [[package]] name = "tabled_derive" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "931be476627d4c54070a1f3a9739ccbfec9b36b39815106a20cce2243bbcefe1" +checksum = "52d9946811baad81710ec921809e2af67ad77719418673b2a3794932d57b7538" dependencies = [ - "heck 0.4.1", + "heck", "proc-macro-error2", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.98", ] [[package]] @@ -4786,9 +4808,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.13.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced87ca4be083373936a67f8de945faa23b6b42384bd5b64434850802c6dccd0" +checksum = "bd8dcafa1ca14750d8d7a05aa05988c17aab20886e1f3ae33a40223c58d92ef7" dependencies = [ "getrandom 0.3.1", "js-sys", @@ -4873,23 +4895,12 @@ dependencies = [ [[package]] name = "vte" -version = "0.10.1" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983" +checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" dependencies = [ - "arrayvec 0.5.2", - "utf8parse", - "vte_generate_state_changes", -] - -[[package]] -name = "vte_generate_state_changes" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e" -dependencies = [ - "proc-macro2", - "quote", + "arrayvec", + "memchr", ] [[package]] @@ -5394,7 +5405,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde3bb8c68a8f3f1ed4ac9221aad6b10cece3e60a8e2ea54a6a2dec806d0084c" +dependencies = [ + "zerocopy-derive 0.8.20", ] [[package]] @@ -5408,6 +5428,17 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "zerocopy-derive" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eea57037071898bf96a6da35fd626f4f27e9cee3ead2a6c703cf09d472b2e700" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "zerofrom" version = "0.1.5" @@ -5474,7 +5505,7 @@ dependencies = [ [[package]] name = "zoo" -version = "0.2.101" +version = "0.2.102" dependencies = [ "anyhow", "async-trait", @@ -5492,7 +5523,7 @@ dependencies = [ "expectorate", "futures", "git_rev", - "heck 0.5.0", + "heck", "http 1.2.0", "itertools 0.12.1", "kcl-lib", diff --git a/Cargo.toml b/Cargo.toml index b44d28f5..ffb302cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zoo" -version = "0.2.101" +version = "0.2.102" edition = "2021" build = "build.rs" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -22,10 +22,10 @@ git_rev = "0.1.0" heck = "0.5.0" http = "1" itertools = "0.12.1" -kcl-lib = { version = "0.2.34", features = ["disable-println"] } -kcl-test-server = "0.1.21" -kittycad = { version = "0.3.28", features = ["clap", "tabled", "requests", "retry"] } -kittycad-modeling-cmds = { version = "=0.2.95", features = ["websocket", "convert_client_crate", "tabled"] } +kcl-lib = { version = "0.2.39", features = ["disable-println"] } +kcl-test-server = "0.1.39" +kittycad = { version = "0.3.30", features = ["clap", "tabled", "requests", "retry"] } +kittycad-modeling-cmds = { version = "0.2.100", features = ["websocket", "convert_client_crate", "tabled"] } log = "0.4.25" nu-ansi-term = "0.50.1" num-traits = "0.2.19" @@ -46,7 +46,7 @@ slog-async = "2" slog-scope = "4" slog-stdlog = "4" slog-term = "2" -tabled = { version = "0.17.0", features = ["ansi"] } +tabled = { version = "0.18.0", features = ["ansi"] } tabwriter = "1.4.1" terminal_size = "0.4.0" thiserror = "2" diff --git a/src/cmd_kcl.rs b/src/cmd_kcl.rs index 3c51cb11..9cf9efc8 100644 --- a/src/cmd_kcl.rs +++ b/src/cmd_kcl.rs @@ -4,7 +4,7 @@ use crate::kcl_error_fmt; use anyhow::Result; use clap::Parser; use kcmc::each_cmd as mcmd; -use kcmc::format::OutputFormat; +use kcmc::format::OutputFormat3d as OutputFormat; use kittycad::types as kt; use kittycad_modeling_cmds as kcmc; use kittycad_modeling_cmds::ModelingCmd; @@ -125,7 +125,8 @@ impl crate::cmd::Command for CmdKclExport { let session_data = ectx .run(&program, &mut state) .await - .map_err(|err| kcl_error_fmt::KclError::new(code.to_string(), err))?; + .map_err(|err| kcl_error_fmt::KclError::new(code.to_string(), err))? + .1; // Zoom on the object. ectx.engine @@ -487,7 +488,7 @@ pub fn get_image_format_from_extension(ext: &str) -> Result kittycad_modeling_cmds::format::OutputFormat { +) -> OutputFormat { // Zoo co-ordinate system. // // * Forward: -Y diff --git a/src/cmd_ml/cmd_kcl.rs b/src/cmd_ml/cmd_kcl.rs index fb313151..df2f6666 100644 --- a/src/cmd_ml/cmd_kcl.rs +++ b/src/cmd_ml/cmd_kcl.rs @@ -64,6 +64,7 @@ impl crate::cmd::Command for CmdKclEdit { vec![kittycad::types::SourceRangePrompt { range: convert_to_source_range(source_range)?, prompt: prompt.clone(), + file: None, }] } else { Default::default() @@ -73,6 +74,8 @@ impl crate::cmd::Command for CmdKclEdit { original_source_code: input.to_string(), prompt: if source_ranges.is_empty() { Some(prompt) } else { None }, source_ranges, + project_name: None, + kcl_version: Some(kcl_lib::version().to_owned()), }; let model = ctx.get_edit_for_prompt("", &body).await?; diff --git a/src/cmd_ml/cmd_text_to_cad.rs b/src/cmd_ml/cmd_text_to_cad.rs index 4e048d7c..504adb61 100644 --- a/src/cmd_ml/cmd_text_to_cad.rs +++ b/src/cmd_ml/cmd_text_to_cad.rs @@ -2,7 +2,7 @@ use anyhow::Result; use clap::Parser; use kcl_lib::EngineManager; use kcmc::each_cmd as mcmd; -use kcmc::format::InputFormat; +use kcmc::format::InputFormat3d; use kcmc::ok_response::OkModelingCmdResponse; use kcmc::websocket::OkWebSocketResponseData; use kcmc::{ImageFormat, ModelingCmd}; @@ -375,7 +375,7 @@ async fn get_image_bytes( path: "model.gltf".to_string(), data: gltf_bytes.to_vec(), }], - format: InputFormat::Gltf(Default::default()), + format: InputFormat3d::Gltf(Default::default()), }), ) .await?; diff --git a/src/context.rs b/src/context.rs index f23ab053..4f9e5635 100644 --- a/src/context.rs +++ b/src/context.rs @@ -150,7 +150,8 @@ impl Context<'_> { let session_data = ctx .run(&program, &mut state) .await - .map_err(|err| kcl_error_fmt::KclError::new(code.to_string(), err))?; + .map_err(|err| kcl_error_fmt::KclError::new(code.to_string(), err))? + .1; // Zoom on the object. ctx.engine @@ -200,6 +201,8 @@ impl Context<'_> { format.into(), &TextToCadCreateBody { prompt: prompt.to_string(), + kcl_version: Some(kcl_lib::version().to_owned()), + project_name: None, }, ) .await?; @@ -233,6 +236,7 @@ impl Context<'_> { user_id, code, model, + kcl_version, } = result { gen_model = TextToCad { @@ -251,6 +255,7 @@ impl Context<'_> { user_id, code, model, + kcl_version, }; } else { anyhow::bail!("Unexpected response type: {:?}", result); diff --git a/tests/walkie-talkie/body.kcl b/tests/walkie-talkie/body.kcl index 71bd3ffc..605e0eb1 100644 --- a/tests/walkie-talkie/body.kcl +++ b/tests/walkie-talkie/body.kcl @@ -15,7 +15,7 @@ bodySketch = startSketchOn('XZ') |> xLine(-width, %, $chamfer3) |> close(tag = $chamfer4) bodyExtrude = extrude(bodySketch, length = thickness) - |> chamfer({ + |> chamfer( length = chamferLength, tags = [ getNextAdjacentEdge(chamfer1), @@ -23,7 +23,7 @@ bodyExtrude = extrude(bodySketch, length = thickness) getNextAdjacentEdge(chamfer3), getNextAdjacentEdge(chamfer4) ] - }, %) + ) // Define the offset for the indentation sketch002 = startSketchOn(bodyExtrude, 'END') diff --git a/tests/walkie-talkie/button.kcl b/tests/walkie-talkie/button.kcl index 1a7bd493..7011a77f 100644 --- a/tests/walkie-talkie/button.kcl +++ b/tests/walkie-talkie/button.kcl @@ -25,13 +25,13 @@ export fn button(origin, rotation, plane) { }, %) |> close() buttonExtrude = extrude(buttonSketch, length = buttonThickness) - |> chamfer({ + |> chamfer( length = .050, tags = [ getNextAdjacentEdge(tag1), getNextAdjacentEdge(tag2) ] - }, %) + ) |> appearance(color = "#ff0000") return buttonExtrude diff --git a/tests/walkie-talkie/talk-button.kcl b/tests/walkie-talkie/talk-button.kcl index b32a1ff7..1a8e4cde 100644 --- a/tests/walkie-talkie/talk-button.kcl +++ b/tests/walkie-talkie/talk-button.kcl @@ -34,7 +34,7 @@ talkButtonSketch = startSketchOn(talkButtonPlane) // Create the talk button and apply fillets extrude(talkButtonSketch, length = talkButtonHeight) - |> fillet({ + |> fillet( radius = 0.050, tags = [ getNextAdjacentEdge(tag1), @@ -42,5 +42,5 @@ extrude(talkButtonSketch, length = talkButtonHeight) getNextAdjacentEdge(tag3), getNextAdjacentEdge(tag4) ] - }, %) + ) |> appearance(color = '#D0FF01', metalness = 90, roughness = 90)