3 unstable releases
0.3.1 | Feb 24, 2024 |
---|---|
0.3.0 |
|
0.2.0 |
|
0.1.3 | Jun 7, 2021 |
#163 in Math
109 downloads per month
1.5MB
10K
SLoC
libfive
A Rust wrapper for libfive.
Example
use libfive::*;
let f_rep_shape = Tree::sphere(1.0.into(), TreeVec3::default())
.difference_multi(vec![
Tree::sphere(0.6.into(), TreeVec3::default()),
Tree::cylinder_z(
0.6.into(),
2.0.into(),
TreeVec3::new(0.0, 0.0, -1.0),
),
Tree::cylinder_z(
0.6.into(),
2.0.into(),
TreeVec3::new(0.0, 0.0, -1.0),
)
.reflect_xz(),
Tree::cylinder_z(
0.6.into(),
2.0.into(),
TreeVec3::new(0.0, 0.0, -1.0),
)
.reflect_yz(),
]);
f_rep_shape.to_stl(
"f_rep_shape.stl",
&Region3::new(-2.0, 2.0, -2.0, 2.0, -2.0, 2.0),
// Resolution
100.0,
)?;
This results in this STL mesh:
Documentation
Build docs locally:
cargo doc -p libfive --no-deps --all-features --open
Features
-
ahash
– On by default. UseAHashMap
for hashing when resolving variable names. Disabling this will fall back to the slowerHashMap
. -
stdlib
– On by default. Add an extensive list of higher level operations – the libfive stdlib.To disable either/both of the above features unset default features in
Cargo.toml
:[dependencies.libfive] default-features = false
-
packed_opcodes
- Tightly pack opcodes. This breaks compatibility with older saved f-rep files.
Dependencies
macOS
With homebrew
installed, run:
brew install cmake pkg-config eigen libpng boost
Ubuntu/Debian
libfive
should build out of the box on the latest Ubuntu LTS (currently
20.04). If you find that's not the case, please open an issue in the upstream
repository!
Install the following dependencies with apt
:
sudo apt-get install cmake pkg-config libeigen3-dev libpng-dev libboost-all-dev
Arch Linux
Install the following dependencies:
sudo pacman -S cmake pkgconf eigen libpng boost boost-libs
Windows (VS2019)
Install Git, choosing settings so that it can be invoked from a Windows Command Prompt (the defaults should be fine).
Install VS2019 (Community Edition),
configured for Desktop development with C++
.
You only need MSVC, Windows 10 SDK, and C++ CMake tools for Windows. Feel free to uncheck other optional packages in the right sidebar. Then run the installation!
Next, install dependencies using vcpkg
.
⚠️ This step touches many files, so you may want to disable the Antimalware Service Executable, which will otherwise scan every single file and slow things down dramatically: in
Windows Security
→Virus & threat protection settings
, uncheckReal-time protection
.
In a Windows Command Prompt:
git clone https://github.com/Microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat
.\vcpkg\vcpkg.exe install --triplet x64-windows eigen3 boost-container boost-bimap boost-interval boost-lockfree boost-functional boost-algorithm boost-math libpng
Go get some coffee or something – this will take a while.
Building
Just the usual.
cargo build
Dependencies
~1–4MB
~71K SLoC