Skip to content

Musialski-Research-Group/BNOT_new

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BNOT_new

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/.

What Is Included

  • Headless C++ source for ibnot_new_cli
  • Repo-local Conda environment bootstrap
  • Smoke-test input data
  • A few example outputs in ibnot_cli/results/

Quick Start

Assumptions:

  • Linux or WSL
  • Miniconda available at the default path, or CONDA_EXE set explicitly

Create the local environment:

cd ibnot_cli
./setup_env.sh

Build:

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 build

Run the built CLI:

conda run --prefix ../.conda/ibnot_cli ./build/ibnot_new_cli --help

Smoke 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.txt

Deployment

This 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/

Prebuilt Linux Binary

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.sh

Then run the bundled binary from the repo root:

./ibnot_cli/prebuilt/linux-x86_64/ibnot_new_cli --help

The current prebuilt package assumes the repo-local environment exists at .conda/ibnot_cli.

Inputs and Outputs

  • Inputs: grayscale .pgm, optional .dat initial points
  • Outputs: .eps and .txt; convert EPS to PNG separately if needed

Python Wrapper

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.

Notes

  • Current input format is grayscale .pgm.
  • The shared folder is ibnot_cli/; the executable name remains ibnot_new_cli.
  • The main supported path is --weight-solver newton.
  • The gd path is kept for debugging, not as the preferred comparison mode.

See PROVENANCE.md for derivation and licensing context.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors