BNOT_new is a cleaned, headless baseline for capacity-constrained stippling derived from the original BNOT (Blue Noise through Optimal Transport) ibnot implementation.
This repo is intended for internal group use and student experimentation. The shared tool lives in ibnot_cli/.
- Headless C++ source for
ibnot_new_cli - Repo-local Conda environment bootstrap
- Smoke-test input data
- A few example outputs in
ibnot_cli/results/
Assumptions:
- Linux or WSL
- Miniconda available at the default path, or
CONDA_EXEset explicitly
Create the local environment:
cd ibnot_cli
./setup_env.shBuild:
conda run --prefix ../.conda/ibnot_cli cmake -S . -B build -G Ninja -DCMAKE_PREFIX_PATH=../.conda/ibnot_cli
conda run --prefix ../.conda/ibnot_cli cmake --build buildRun the built CLI:
conda run --prefix ../.conda/ibnot_cli ./build/ibnot_new_cli --helpSmoke test:
conda run --prefix ../.conda/ibnot_cli ./build/ibnot_new_cli \
--image testdata/smoke_8x8.pgm \
--num-sites 16 \
--seed 7 \
--max-iters 10 \
--max-newton-iters 20 \
--output smoke_result.eps \
--stats smoke_result.txtThis repo supports two sharing paths:
- build from source inside the repo-local Conda environment
- use the Linux prebuilt binary under
ibnot_cli/prebuilt/linux-x86_64/
The prebuilt binary is intended for Linux/WSL users in the group who are willing to create the expected repo-local Conda environment but do not want to compile the CLI themselves.
Expected setup:
cd ibnot_cli
./setup_env.shThen run the bundled binary from the repo root:
./ibnot_cli/prebuilt/linux-x86_64/ibnot_new_cli --helpThe current prebuilt package assumes the repo-local environment exists at
.conda/ibnot_cli.
- Inputs: grayscale
.pgm, optional.datinitial points - Outputs:
.epsand.txt; convert EPS to PNG separately if needed
A separate Python wrapper project lives in python/. It does not bind
the CGAL core directly. It writes inputs, invokes the CLI as a subprocess, and
parses the emitted stats.
- Current input format is grayscale
.pgm. - The shared folder is
ibnot_cli/; the executable name remainsibnot_new_cli. - The main supported path is
--weight-solver newton. - The
gdpath is kept for debugging, not as the preferred comparison mode.
See PROVENANCE.md for derivation and licensing context.