truck - Truck is a rust CAD kernel
Overview
Truck is an open-source shape processing kernel by Rust.
The broad concept consists of the following three elements.
- Trendy Tools
- Traditional Arts
- Theseus' ship
Trendy Tools
- We are targeting the next generation of market share using developmental tools: Rust and WebGPU.
- Advanced optimizations using Rust and WebGPU maximize the performance of each crate.
Traditional Arts
- We will break away from the legacy by re-implementing the B-rep with NURBS in the above trendy tools.
- Safe implementation using Rust to eliminate core dumped for CPU-derived processes.
- Cargo's extensive maintenance features ensure thorough continuous integration.
Theseus' ship
- We are modularizing into smaller crates that can be replaced, like the Ship of Theseus.
- Based on the many lessons learned in the past, we have given up on overall optimization as a single application, and design as a collection of individual optimized crates.
- Since unexpected expansions are bound to occur, we deal with uncontrolled expansions in the form of small modules.
License
Apache License 2.0
Usage
How to Run Examples
All examples are located under the examples directory in each crates.
These examples use the default syntax for running examples, as found in the Cargo documentation.
At first, let's run the following example!
git submodule update --init
cargo run --example rotate-objects
crates
basic structs and traits: importing cgmath, curve and surface traits, tolerance, etc...
Defines geometric traits: ParametricCurve
, ParametricSurface
, and so on.
geometrical structs: knot vector, B-spline and NURBS
topological structs: vertex, edge, wire, face, shell, and solid
defines polygon data structure and some algorithms handling mesh, including meshing the shapes
Mesh algorighms, include tessellations of the shape.
integrated modeling algorithms by geometry and topology
Provides boolean operations to Solid
graphic utility library based on wgpu
visualization of shape and polygon mesh based on platform
truck-js
Javascript wrapper of truck.
Tutorials
There are some learning resources for using truck v0.1.x series.
- truck-tutorial
- truck-tutorial-ja (Japanese version)
- truck-tutorial-code (pre-created sample code)