# BlandSoft BSTrace
#### Free RayTracing Software for Personal Computers
[crates.io](https://crates.io/crates/bs-trace)
[Home page](https://blandsoft.net/products/bstrace.html)
## Building
Clone the git repo then do `cargo build --release --bin bs-trace`.
## Installing
After building, do `cargo install --bin bs-trace --path .`. This will install the release binary and put the `bs-trace` binary on your PATH to be run from the command line.
## Running
After installing, run `bs-trace <path to scene file>` from the command line. Alternatively, from the cloned repo root do `cargo run --bin bs-trace -- <path to scene file>`.
The program accepts the path to a *scene definition file* as its sole argument. It will render the given scene and output the resultant image to the current working directory in PNG format, as `out.png`.
## Configuring a Scene
A scene is a collection of objects in 3D space, referred to as a `World` in the source code.
Currently, only sphere objects are supported.
### Scene Definition File Format
A scene definition file is a TOML file.
See the example scenes in `examples/` to get an idea of how they're written.
To see how a scene file is parsed into a `World`, see `src/trace/description.rs`.
## Copyright, Copying & Licensing
BlandSoft BSTrace Copyright (C) Elizabeth Bland 2024-2025
BlandSoft BSTrace is made freely available under the GNU General Public License as published by the Free Software Foundation, version 3. ("GPL-3.0-only")
See COPYING for a copy of the licence text.