An open API service indexing awesome lists of open source software.

https://github.com/eadf/hallr

Blender add-on written in Rust
https://github.com/eadf/hallr

blender-addon mesh-generation rust-lang voronoi

Last synced: 8 months ago
JSON representation

Blender add-on written in Rust

Awesome Lists containing this project

README

          

[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://stand-with-ukraine.pp.ua)

# Hallr

[![Rust](https://github.com/eadf/hallr/actions/workflows/rust_test.yml/badge.svg)](https://github.com/eadf/hallr/actions/workflows/rust_test.yml)![License](https://img.shields.io/crates/l/hallr)
[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/eadf)

Hallr is a Blender add-on written in Rust and Python. Python is used for the blender add-on system glue, sending and receiving data to the rust implementation.

**This project is a work in progress**, so expect frequent changes to its functionality and API.

## Usage
For Blender instructions, refer to the [wiki](https://github.com/eadf/hallr/wiki).

## Gallery

For some images generated by this add-on, see the [release](https://github.com/eadf/hallr/releases) page and the [wiki](https://github.com/eadf/hallr/wiki)

### Installing Hallr
You can download pre-built ZIP files from the GitHub Releases section. This ZIP file is the pre-packaged Hallr add-on, which can be drag-and-dropped directly into Blender.

The ZIP file contains dynamic libraries compiled for multiple platforms:
- macOS (ARM)
- Linux (amd64)
- Windows (amd64)

All releases are built automatically by GitHub workflows.

To build the add-on locally, use the following command:

```bash
python3 build_script.py
```

Once the build is complete, simply drag and drop the generated `hallr.zip` file into Blender to install it.

### Developer Mode
For a faster development workflow, you can enable developer mode:

```bash
python3 build_script.py --dev_mode
```

Then, open and run the `blender_addon_exported/__init__.py` file inside Blender. In this mode, Blender will automatically use the latest compiled Rust library, so you only need to recompile your Rust code to see changes take effect the next time you run an operation.

For this purpose, the Rust tool watchexec works exceptionally well for automatically recompiling when source files change.

## Contributing
We welcome contributions from the community! Feel free to submit pull requests or report issues on our [GitHub repository](https://github.com/eadf/hallr).

### Minimum Supported Rust Version (MSRV)

The minimum supported version of Rust for `hallr` is `1.85.1`.

## License
Hallr is licensed under **AGPL-3.0-or-later**.

## Acknowledgments

This project would not be possible without the following Rust crates:

* fast-surface-nets (v0.2) — Dual-licensed under MIT or Apache 2.0.
* saft (v0.34) — Licensed under either the MIT or Apache 2.0 license.
* ilattice (v0.4) — Licensed under the MIT license.
* logos (v0.15) — Dual-licensed under MIT or Apache 2.0.
* thiserror (v2.0) — Licensed under either the MIT or Apache 2.0 license.
* ahash (v0.8) — Dual-licensed under MIT or Apache 2.0.
* rustc-hash (v2.1) — Dual-licensed under MIT or Apache 2.0.
* smallvec (v1.15) — Dual-licensed under MIT or Apache 2.0.
* rayon (v1.10) — Dual-licensed under MIT or Apache 2.0.
* itertools (v0.14) — Dual-licensed under MIT or Apache 2.0.
* vob (v3.0) — Licensed under the MIT license.
* earcutr (v0.5) — Licensed under the ISC license.
* ryu (v1.0) — Licensed under either the Apache 2.0 or Boost Software License 1.0.
* rustc-hash (v2.1) — Dual-licensed under MIT or Apache 2.0.