Skip to content

subdgtl/HURBAN-Selector

Repository files navigation

H.U.R.B.A.N. selector

Build Status

H.U.R.B.A.N. selector is a software experiment sponsored by the Slovak Design Center. It is meant to test the hypothesis that creating new designs and shapes is subconsciously inspired by our previous experience. There is a trial and error phase in the design process where many variations on the same shape are prototyped and chosen from.

The software is currently in very early stages, but as it nears completion, it will strive to be a tool for simple parametric modeling, containing implementations of various hybridization strategies for mesh models, allowing designers to smoothly interpolate between multiple mesh geometries and select the result with the most desired features.

Screenshot

Getting the software

Currently the only option is to build from source (see development guide down below).

Developing

Make sure you have the following installed:

We use standard cargo workflows:

  • cargo clippy to have a nice chat with 📎, the linter,
  • cargo fmt to format the project,
  • cargo test to run tests,
  • cargo doc --open to build and open local documentation for the project and all dependencies (optionally pass --document-private-items),
  • cargo build to build,
  • cargo run to run.

Configuration

The application parses configuration from both command-line arguments and environment variables. Run with -h to see the list of available options.

Creating a Windows installer

Refer to installer's readme to create Windows installer.

Testing

Apart from unit and integration tests, we do have a fair amount of snapshot tests. These are used mostly to check for regressions in operation implementations. The workflow is to always manually review the new snapshot, if the operation's output has changed.

Snapshots are handled by the insta crate. The cargo insta plugin, while not strictly necessary, is also useful in the workflow. Get it with cargo install cargo-insta.

To make a new snapshot test, add a standard test and use insta::assert_json_snapshot("name_of_snapshot", &data). The test will fail at first, as there is no snapshot to compare against. Use the cargo insta review to review snapshot diffs or new snapshots.

Renderer development

If working on the renderer, Vulkan validation layers can provide additional validation. When running on the Vulkan backend and with debug_assertions enabled, gfx-hal automatically enables Vulkan validation layers.

For the implementation to be able to load the validation layers, the LunarG Vulkan SDK must be installed. Note that the Vulkan SDK can even be installed on macOS, and enables running on the Vulkan backend there, but the setup is a bit more involved - see macOS guide in ash), and possibly disable SIP

Licence

The editor source code is provided under the GNU GENERAL PUBLIC LICENSE, Version 3. If the research or implementation yields interesting results, those will be extracted from the editor and published and licensed separately, most likely under a more permissive license such as MIT.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published