All Projects → Formlabs → foxtrot

Formlabs / foxtrot

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
A fast, experimental STEP file viewer

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to foxtrot

kodacad
A simple Python 3D CAD application
Stars: ✭ 14 (-90.73%)
Mutual labels:  cad, step
SCView
Simple Express-G Viewer. Tiny implementation. Based on STEPCode
Stars: ✭ 35 (-76.82%)
Mutual labels:  cad, step
ruststep
A STEP toolkit for Rust
Stars: ✭ 77 (-49.01%)
Mutual labels:  cad, step
paramak
Create parametric 3D fusion reactor CAD and neutronics models
Stars: ✭ 40 (-73.51%)
Mutual labels:  cad
WebGPU-Step-By-Step
WebGPU Tutorial: Step-by-step graphics programming with WebGPU - the next-generation graphics API for the web.
Stars: ✭ 232 (+53.64%)
Mutual labels:  webgpu
online-wgsl-editor
A tiny WGSL online editor
Stars: ✭ 128 (-15.23%)
Mutual labels:  webgpu
Limbo
Library for VLSI CAD Design Useful parsers and solvers' api are implemented.
Stars: ✭ 84 (-44.37%)
Mutual labels:  cad
snaily-cadv3
> https://github.com/SnailyCAD/snaily-cadv4
Stars: ✭ 37 (-75.5%)
Mutual labels:  cad
spydrnet
A flexible framework for analyzing and transforming FPGA netlists. Official repository.
Stars: ✭ 49 (-67.55%)
Mutual labels:  cad
3d-printing-high-security-key
Get Your 3D Printed High Security Key
Stars: ✭ 125 (-17.22%)
Mutual labels:  cad
vscode-wgsl
VsCode Syntax highlight for WGSL files
Stars: ✭ 55 (-63.58%)
Mutual labels:  webgpu
RASM
3D Ray-Tracing WebGPU Game Engine Written in Rust WebAssembly.
Stars: ✭ 20 (-86.75%)
Mutual labels:  webgpu
webgpu
WebGPU Samples & RnD
Stars: ✭ 72 (-52.32%)
Mutual labels:  webgpu
range3
Range Software - Finite Element Analysis
Stars: ✭ 31 (-79.47%)
Mutual labels:  cad
healthgo
a android pedometer app (安卓计步器)
Stars: ✭ 32 (-78.81%)
Mutual labels:  step
Fusion360-Scripts
A collection of Fusion360 scripts, mostly for generating animations
Stars: ✭ 60 (-60.26%)
Mutual labels:  cad
hecs
An experimental ECS written in Javascript.
Stars: ✭ 16 (-89.4%)
Mutual labels:  webgpu
NC.js
Web interface for the Digital Thread
Stars: ✭ 33 (-78.15%)
Mutual labels:  step
TairString
A redis module, similar to redis string, but you can set expire and version for the value. It also provides many very useful commands, such as cas/cad, etc.
Stars: ✭ 99 (-34.44%)
Mutual labels:  cad
staticstep
Provides truly zero-cost alternatives to Iterator::step_by for both incrementing and decrementing any type that satisfies RangeBounds<T: Copy + Default + Step>.
Stars: ✭ 13 (-91.39%)
Mutual labels:  step

Foxtrot

Foxtrot is a fast viewer for STEP files, a standard interchange format for mechanical CAD. It is an experimental project built from the ground up, including new libraries for parsing and triangulation.

This repository includes a simple native GUI:

Motherboard example
(demo model source)

In addition, the same code can run in a browser (click to see the demo):

Browser example
(demo model source)

For more background on the project, check out this writeup by one of the main authors.

Quick start

(Prerequisite: install Rust and Cargo, and clone this repository)

cargo run --release -- examples/cube_hole.step

WebAssembly demo

(Prerequisite: install wasm-pack and clone this repository)

cd wasm
wasm-pack build --target no-modules
python3 -m http.server --directory deploy # or the simple server of your choice

Then, open the local server's URL (typically 127.0.0.1:8000) and select a sample file from the list.

Subsystems

  • cdt: Constrained Delaunay triangulation (standalone)
  • express: Parser for EXPRESS schemas files and a matching code generation system
  • experiments: Experiments with trait systems (unused)
  • step: Auto-generated STEP file parser. This take a very long time to compile, so it is isolated into this crate.
  • triangulate: Converts a file loaded by step into a triangle mesh, using cdt as its core
  • nurbs: A handful of NURBS / B-spline algorithms used by triangulate
  • gui: GUI for rendering STEP files, using WebGPU
  • wasm: Scaffolding to run in the browser using WebAssembly

Code generation

step/src/ap214.rs is automatically generated from 10303-214e3-aim-long.exp, which is available via CVS here (check out the APs folder).

To regenerate, run

cargo run --release --example gen_exp -- path/to/APs/10303-214e3-aim-long.exp step/src/ap214.rs

License

© 2021 Formlabs

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Disclaimer

Foxtrot is a proof-of-concept demo, not an industrial-strength CAD kernel. It may not work for your models! Even in the screenshots above, there are a handful of surfaces that it fails to triangulate; look in the console for details.

This isn't an official Formlabs project (experimental or otherwise), it is just code that happens to be owned by Formlabs.

No one at Formlabs is paid to maintain this, so set your expectations for support accordingly.

References

STEP Integrated Definitions

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].