/truck

Truck is a Rust CAD Kernel without winit

Primary LanguageRustApache License 2.0Apache-2.0

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

truck-base Crates.io Docs.rs

basic structs and traits: importing cgmath, curve and surface traits, tolerance, etc...

truck-geotrait Crates.io Docs.rs

Defines geometric traits: ParametricCurve, ParametricSurface, and so on.

truck-geometry Crates.io Docs.rs

geometrical structs: knot vector, B-spline and NURBS

truck-topology Crates.io Docs.rs

topological structs: vertex, edge, wire, face, shell, and solid

truck-polymesh Crates.io Docs.rs

defines polygon data structure and some algorithms handling mesh, including meshing the shapes

truck-meshalgo Crates.io Docs.rs

Mesh algorighms, include tessellations of the shape.

truck-modeling Crates.io Docs.rs

integrated modeling algorithms by geometry and topology

truck-shapeops Crates.io Docs.rs

Provides boolean operations to Solid

truck-platform Crates.io Docs.rs

graphic utility library based on wgpu

truck-rendimpl Crates.io Docs.rs

visualization of shape and polygon mesh based on platform

truck-js

Javascript wrapper of truck.

dependencies

Tutorials

There are some learning resources for using truck v0.1.x series.