diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | .vscode/launch.json | 326 | ||||
| -rw-r--r-- | .vscode/tasks.json | 103 | ||||
| -rw-r--r-- | Cargo.toml | 4 | ||||
| -rw-r--r-- | assets/3d/camel_decimated.obj (renamed from examples3d/media/models/camel_decimated.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/chair.obj (renamed from examples3d/media/models/chair.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/cup_decimated.obj (renamed from examples3d/media/models/cup_decimated.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/dilo_decimated.obj (renamed from examples3d/media/models/dilo_decimated.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/feline_decimated.obj (renamed from examples3d/media/models/feline_decimated.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/genus3_decimated.obj (renamed from examples3d/media/models/genus3_decimated.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/hand2_decimated.obj (renamed from examples3d/media/models/hand2_decimated.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/hand_decimated.obj (renamed from examples3d/media/models/hand_decimated.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/hornbug.obj (renamed from examples3d/media/models/hornbug.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/octopus_decimated.obj (renamed from examples3d/media/models/octopus_decimated.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/rabbit_decimated.obj (renamed from examples3d/media/models/rabbit_decimated.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/rust_logo_simplified.obj (renamed from examples3d/media/models/rust_logo_simplified.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/screwdriver_decimated.obj (renamed from examples3d/media/models/screwdriver_decimated.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/table.obj (renamed from examples3d/media/models/table.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/tstTorusModel.obj (renamed from examples3d/media/models/tstTorusModel.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/tstTorusModel2.obj (renamed from examples3d/media/models/tstTorusModel2.obj) | 0 | ||||
| -rw-r--r-- | assets/3d/tstTorusModel3.obj (renamed from examples3d/media/models/tstTorusModel3.obj) | 0 | ||||
| -rw-r--r-- | crates/rapier_testbed2d-f64/Cargo.toml | 57 | ||||
| -rw-r--r-- | crates/rapier_testbed3d-f64/Cargo.toml | 55 | ||||
| -rw-r--r-- | examples3d-f64/Cargo.toml | 36 | ||||
| -rw-r--r-- | examples3d-f64/all_examples3-f64.rs | 67 | ||||
| -rw-r--r-- | examples3d-f64/debug_serialized3.rs | 36 | ||||
| -rw-r--r-- | examples3d/convex_decomposition3.rs | 36 | ||||
| -rw-r--r-- | src/dynamics/integration_parameters.rs | 56 | ||||
| -rw-r--r-- | src/dynamics/solver/generic_velocity_constraint.rs | 5 | ||||
| -rw-r--r-- | src/dynamics/solver/generic_velocity_constraint_element.rs | 8 | ||||
| -rw-r--r-- | src/dynamics/solver/generic_velocity_ground_constraint.rs | 2 | ||||
| -rw-r--r-- | src/dynamics/solver/generic_velocity_ground_constraint_element.rs | 10 | ||||
| -rw-r--r-- | src/dynamics/solver/parallel_velocity_solver.rs | 9 | ||||
| -rw-r--r-- | src/dynamics/solver/velocity_constraint.rs | 20 | ||||
| -rw-r--r-- | src/dynamics/solver/velocity_constraint_element.rs | 6 | ||||
| -rw-r--r-- | src/dynamics/solver/velocity_constraint_wide.rs | 13 | ||||
| -rw-r--r-- | src/dynamics/solver/velocity_ground_constraint.rs | 8 | ||||
| -rw-r--r-- | src/dynamics/solver/velocity_ground_constraint_element.rs | 16 | ||||
| -rw-r--r-- | src/dynamics/solver/velocity_ground_constraint_wide.rs | 10 | ||||
| -rw-r--r-- | src/dynamics/solver/velocity_solver.rs | 166 | ||||
| -rw-r--r-- | src_testbed/graphics.rs | 8 | ||||
| -rw-r--r-- | src_testbed/objects/node.rs | 15 | ||||
| -rw-r--r-- | src_testbed/testbed.rs | 10 |
43 files changed, 930 insertions, 154 deletions
@@ -6,4 +6,4 @@ target .DS_Store package-lock.json **/*.csv -.vscode/ +.history
\ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..3f328c5 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,326 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in library 'rapier2d'", + "cargo": { + "args": [ + "test", + "--no-run", + "--lib", + "--package=rapier2d" + ], + "filter": { + "name": "rapier2d", + "kind": "lib" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in library 'rapier2d_f64'", + "cargo": { + "args": [ + "test", + "--no-run", + "--lib", + "--package=rapier2d-f64" + ], + "filter": { + "name": "rapier2d_f64", + "kind": "lib" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in library 'rapier_testbed2d'", + "cargo": { + "args": [ + "test", + "--no-run", + "--lib", + "--package=rapier_testbed2d" + ], + "filter": { + "name": "rapier_testbed2d", + "kind": "lib" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'all_examples2'", + "cargo": { + "args": [ + "build", + "--bin=all_examples2", + "--package=rapier-examples-2d" + ], + "filter": { + "name": "all_examples2", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'all_examples2'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=all_examples2", + "--package=rapier-examples-2d" + ], + "filter": { + "name": "all_examples2", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'all_benchmarks2'", + "cargo": { + "args": [ + "build", + "--bin=all_benchmarks2", + "--package=rapier-benchmarks-2d" + ], + "filter": { + "name": "all_benchmarks2", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'all_benchmarks2'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=all_benchmarks2", + "--package=rapier-benchmarks-2d" + ], + "filter": { + "name": "all_benchmarks2", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in library 'rapier3d'", + "cargo": { + "args": [ + "test", + "--no-run", + "--lib", + "--package=rapier3d" + ], + "filter": { + "name": "rapier3d", + "kind": "lib" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in library 'rapier3d_f64'", + "cargo": { + "args": [ + "test", + "--no-run", + "--lib", + "--package=rapier3d-f64" + ], + "filter": { + "name": "rapier3d_f64", + "kind": "lib" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in library 'rapier_testbed3d'", + "cargo": { + "args": [ + "test", + "--no-run", + "--lib", + "--package=rapier_testbed3d" + ], + "filter": { + "name": "rapier_testbed3d", + "kind": "lib" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'all_examples3'", + "cargo": { + "args": [ + "build", + "--bin=all_examples3", + "--package=rapier-examples-3d" + ], + "filter": { + "name": "all_examples3", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'all_examples3'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=all_examples3", + "--package=rapier-examples-3d" + ], + "filter": { + "name": "all_examples3", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Run 'all_examples3'", + "cargo": { + "args": [ + "run", + "--release", + "--bin=all_examples3", + "--package=rapier-examples-3d" + ], + "filter": { + "name": "all_examples3", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'harness_capsules3'", + "cargo": { + "args": [ + "build", + "--bin=harness_capsules3", + "--package=rapier-examples-3d" + ], + "filter": { + "name": "harness_capsules3", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'harness_capsules3'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=harness_capsules3", + "--package=rapier-examples-3d" + ], + "filter": { + "name": "harness_capsules3", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'all_benchmarks3'", + "cargo": { + "args": [ + "build", + "--bin=all_benchmarks3", + "--package=rapier-benchmarks-3d" + ], + "filter": { + "name": "all_benchmarks3", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'all_benchmarks3'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=all_benchmarks3", + "--package=rapier-benchmarks-3d" + ], + "filter": { + "name": "all_benchmarks3", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + } + ] +}
\ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..0bc892b --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,103 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "run 3d (no-simd - release) ", + "type": "shell", + "command": "cargo", + "args": [ + "run", + "--bin", + "all_examples3", + "--release", + "--features", + "other-backends", + "--", + "--pause" + ], + "group": "build" + }, + { + "label": "run 3d (simd - release) ", + "type": "shell", + "command": "cargo", + "args": [ + "run", + "--bin", + "all_examples3", + "--release", + "--features", + "simd-stable,other-backends", + "--", + "--pause" + ], + "group": "build" + }, + { + "label": "run 3d (simd - parallel - release) ", + "type": "shell", + "command": "cargo", + "args": [ + "run", + "--bin", + "all_examples3", + "--release", + "--features", + "simd-stable,other-backends,parallel", + "--", + "--pause" + ], + "group": "build" + }, + { + "label": "run 2d (no-simd - release) ", + "type": "shell", + "command": "cargo", + "args": [ + "run", + "--bin", + "all_examples2", + "--release", + "--features", + "other-backends", + "--", + "--pause" + ], + "group": "build" + }, + { + "label": "run 2d (simd - release) ", + "type": "shell", + "command": "cargo", + "args": [ + "run", + "--bin", + "all_examples2", + "--release", + "--features", + "simd-stable,other-backends", + "--", + "--pause" + ], + "group": "build" + }, + { + "label": "run 2d (simd - parallel - release) ", + "type": "shell", + "command": "cargo", + "args": [ + "run", + "--bin", + "all_examples2", + "--release", + "--features", + "simd-stable,other-backends,parallel", + "--", + "--pause" + ], + "group": "build" + } + ] +}
\ No newline at end of file @@ -1,6 +1,6 @@ [workspace] -members = [ "crates/rapier2d", "crates/rapier2d-f64", "crates/rapier_testbed2d", "examples2d", "benchmarks2d", - "crates/rapier3d", "crates/rapier3d-f64", "crates/rapier_testbed3d", "examples3d", "benchmarks3d" ] +members = [ "crates/rapier2d", "crates/rapier2d-f64", "crates/rapier_testbed2d", "crates/rapier_testbed2d-f64", "examples2d", "benchmarks2d", + "crates/rapier3d", "crates/rapier3d-f64", "crates/rapier_testbed3d", "crates/rapier_testbed3d-f64", "examples3d", "examples3d-f64", "benchmarks3d" ] resolver = "2" [patch.crates-io] diff --git a/examples3d/media/models/camel_decimated.obj b/assets/3d/camel_decimated.obj index f63ad44..f63ad44 100644 --- a/examples3d/media/models/camel_decimated.obj +++ b/assets/3d/camel_decimated.obj diff --git a/examples3d/media/models/chair.obj b/assets/3d/chair.obj index 675a9d2..675a9d2 100644 --- a/examples3d/media/models/chair.obj +++ b/assets/3d/chair.obj diff --git a/examples3d/media/models/cup_decimated.obj b/assets/3d/cup_decimated.obj index 00f8ea7..00f8ea7 100644 --- a/examples3d/media/models/cup_decimated.obj +++ b/assets/3d/cup_decimated.obj diff --git a/examples3d/media/models/dilo_decimated.obj b/assets/3d/dilo_decimated.obj index 7c25381..7c25381 100644 --- a/examples3d/media/models/dilo_decimated.obj +++ b/assets/3d/dilo_decimated.obj diff --git a/examples3d/media/models/feline_decimated.obj b/assets/3d/feline_decimated.obj index 7eebc23..7eebc23 100644 --- a/examples3d/media/models/feline_decimated.obj +++ b/assets/3d/feline_decimated.obj diff --git a/examples3d/media/models/genus3_decimated.obj b/assets/3d/genus3_decimated.obj index 553b7aa..553b7aa 100644 --- a/examples3d/media/models/genus3_decimated.obj +++ b/assets/3d/genus3_decimated.obj diff --git a/examples3d/media/models/hand2_decimated.obj b/assets/3d/hand2_decimated.obj index 073a488..073a488 100644 --- a/examples3d/media/models/hand2_decimated.obj +++ b/assets/3d/hand2_decimated.obj diff --git a/examples3d/media/models/hand_decimated.obj b/assets/3d/hand_decimated.obj index 50dbeaf..50dbeaf 100644 --- a/examples3d/media/models/hand_decimated.obj +++ b/assets/3d/hand_decimated.obj diff --git a/examples3d/media/models/hornbug.obj b/assets/3d/hornbug.obj index f7efae8..f7efae8 100644 --- a/examples3d/media/models/hornbug.obj +++ b/assets/3d/hornbug.obj diff --git a/examples3d/media/models/octopus_decimated.obj b/assets/3d/octopus_decimated.obj index 437bd64..437bd64 100644 --- a/examples3d/media/models/octopus_decimated.obj +++ b/assets/3d/octopus_decimated.obj diff --git a/examples3d/media/models/rabbit_decimated.obj b/assets/3d/rabbit_decimated.obj index 5150223..5150223 100644 --- a/examples3d/media/models/rabbit_decimated.obj +++ b/assets/3d/rabbit_decimated.obj diff --git a/examples3d/media/models/rust_logo_simplified.obj b/assets/3d/rust_logo_simplified.obj index 7745da3..7745da3 100644 --- a/examples3d/media/models/rust_logo_simplified.obj +++ b/assets/3d/rust_logo_simplified.obj diff --git a/examples3d/media/models/screwdriver_decimated.obj b/assets/3d/screwdriver_decimated.obj index 91de304..91de304 100644 --- a/examples3d/media/models/screwdriver_decimated.obj +++ b/assets/3d/screwdriver_decimated.obj diff --git a/examples3d/media/models/table.obj b/assets/3d/table.obj index 1e954c7..1e954c7 100644 --- a/examples3d/media/models/table.obj +++ b/assets/3d/table.obj diff --git a/examples3d/media/models/tstTorusModel.obj b/assets/3d/tstTorusModel.obj index 5e70fa1..5e70fa1 100644 --- a/examples3d/media/models/tstTorusModel.obj +++ b/assets/3d/tstTorusModel.obj diff --git a/examples3d/media/models/tstTorusModel2.obj b/assets/3d/tstTorusModel2.obj index 9942f14..9942f14 100644 --- a/examples3d/media/models/tstTorusModel2.obj +++ b/assets/3d/tstTorusModel2.obj diff --git a/examples3d/media/models/tstTorusModel3.obj b/assets/3d/tstTorusModel3.obj index 6e956b2..6e956b2 100644 --- a/examples3d/media/models/tstTorusModel3.obj +++ b/assets/3d/tstTorusModel3.obj diff --git a/crates/rapier_testbed2d-f64/Cargo.toml b/crates/rapier_testbed2d-f64/Cargo.toml new file mode 100644 index 0000000..cfa0f42 --- /dev/null +++ b/crates/rapier_testbed2d-f64/Cargo.toml @@ -0,0 +1,57 @@ +[package] +name = "rapier_testbed2d-f64" +version = "0.12.0-alpha.1" +authors = [ "Sébastien Crozet <developer@crozet.re>" ] +description = "Testbed for the Rapier 2-dimensional physics engine in Rust." +homepage = "http://rapier.org" +repository = "https://github.com/dimforge/rapier" +categories = [ "science", "game-development", "mathematics", "simulation", "wasm"] +keywords = [ "physics", "dynamics", "rigid", "real-time", "impulse_joints" ] +license = "Apache-2.0" +edition = "2021" + +[badges] +maintenance = { status = "actively-developed" } + +[lib] +name = "rapier_testbed2d" +path = "../../src_testbed/lib.rs" +required-features = [ "dim2" ] + +[features] +default = [ "dim2" ] +dim2 = [ ] +parallel = [ "rapier/parallel", "num_cpus" ] +other-backends = [ "wrapped2d" ] + + +[dependencies] +nalgebra = { version = "0.30", features = [ "rand" ] } +rand = "0.8" +rand_pcg = "0.3" +instant = { version = "0.1", features = [ "web-sys", "now" ]} +bitflags = "1" +num_cpus = { version = "1", optional = true } +wrapped2d = { version = "0.4", optional = true } +crossbeam = "0.8" +bincode = "1" +Inflector = "0.11" +md5 = "0.7" + +bevy_egui = "0.10" +bevy_ecs = "0.6" + +# Dependencies for native only. +[target.'cfg(not(target_arch = "wasm32"))'.dependencies] +bevy = {version = "0.6", default-features = false, features = ["bevy_winit", "render", "x11"]} + +# Dependencies for WASM only. +[target.'cfg(target_arch = "wasm32")'.dependencies] +bevy = {version = "0.6", default-features = false, features = ["bevy_winit", "render"]} +#bevy_webgl2 = "0.5" + +[dependencies.rapier] +package = "rapier2d-f64" +path = "../rapier2d-f64" +version = "0.12.0-alpha.1" +features = [ "serde-serialize" ] diff --git a/crates/rapier_testbed3d-f64/Cargo.toml b/crates/rapier_testbed3d-f64/Cargo.toml new file mode 100644 index 0000000..dfd0fbd --- /dev/null +++ b/crates/rapier_testbed3d-f64/Cargo.toml @@ -0,0 +1,55 @@ +[package] +name = "rapier_testbed3d-f64" +version = "0.12.0-alpha.1" +authors = [ "Sébastien Crozet <developer@crozet.re>" ] +description = "Testbed for the Rapier 3-dimensional physics engine in Rust." +homepage = "http://rapier.org" +repository = "https://github.com/dimforge/rapier" +categories = [ "science", "game-development", "mathematics", "simulation", "wasm"] +keywords = [ "physics", "dynamics", "rigid", "real-time", "impulse_joints" ] +license = "Apache-2.0" +edition = "2021" + +[badges] +maintenance = { status = "actively-developed" } + +[lib] +name = "rapier_testbed3d" +path = "../../src_testbed/lib.rs" +required-features = [ "dim3" ] + +[features] +default = [ "dim3" ] +dim3 = [ ] +parallel = [ "rapier/parallel", "num_cpus" ] + +[dependencies] +nalgebra = { version = "0.30", features = [ "rand" ] } +rand = "0.8" +rand_pcg = "0.3" +instant = { version = "0.1", features = [ "web-sys", "now" ]} +bitflags = "1" +num_cpus = { version = "1", optional = true } +crossbeam = "0.8" +bincode = "1" +md5 = "0.7" +Inflector = "0.11" +serde = { version = "1", features = [ "derive" ] } + +bevy_egui = "0.10" +bevy_ecs = "0.6" + +# Dependencies for native only. +[target.'cfg(not(target_arch = "wasm32"))'.dependencies] +bevy = {version = "0.6", default-features = false, features = ["bevy_winit", "render", "x11"]} + +# Dependencies for WASM only. +[target.'cfg(target_arch = "wasm32")'.dependencies] +bevy = {version = "0.6", default-features = false, features = ["bevy_winit", "render"]} +#bevy_webgl2 = "0.5" + +[dependencies.rapier] +package = "rapier3d-f64" +path = "../rapier3d-f64" +version = "0.12.0-alpha.1" +features = [ "serde-serialize" ]
\ No newline at end of file diff --git a/examples3d-f64/Cargo.toml b/examples3d-f64/Cargo.toml new file mode 100644 index 0000000..27a4491 --- /dev/null +++ b/examples3d-f64/Cargo.toml @@ -0,0 +1,36 @@ +[package] +name = "rapier-examples-3d-f64" +version = "0.1.0" +authors = [ "Sébastien Crozet <developer@crozet.re>" ] +edition = "2021" +default-run = "all_examples3-f64" + +[features] +parallel = [ "rapier3d-f64/parallel", "rapier_testbed3d-f64/parallel" ] +simd-stable = [ "rapier3d-f64/simd-stable" ] +simd-nightly = [ "rapier3d-f64/simd-nightly" ] +enhanced-determinism = [ "rapier3d-f64/enhanced-determinism" ] + +[dependencies] +rand = "0.8" +getrandom = { version = "0.2", features = [ "js" ] } +Inflector = "0.11" +wasm-bindgen = "0.2" +obj-rs = { version = "0.6", default-features = false } +bincode = "1" +serde = "1" + +[dependencies.rapier_testbed3d-f64] +path = "../ |
