Metadata-Version: 2.4
Name: stampify
Version: 0.1.4
Summary: Turn black-and-white artwork into stamp-ready STL models.
Project-URL: Homepage, https://github.com/nwcell/stampify
Project-URL: Repository, https://github.com/nwcell/stampify
Project-URL: Issues, https://github.com/nwcell/stampify/issues
License-Expression: MIT
License-File: LICENSE
Keywords: 3d-printing,cli,ink,stamp,stl
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
Requires-Python: >=3.11
Requires-Dist: manifold3d<4,>=3
Requires-Dist: numpy<3,>=2
Requires-Dist: pillow<12,>=10
Requires-Dist: scikit-image<1,>=0.24
Requires-Dist: shapely<3,>=2
Requires-Dist: triangle>=20250106
Requires-Dist: trimesh<5,>=4
Provides-Extra: test
Requires-Dist: pytest<9,>=8; extra == 'test'
Description-Content-Type: text/markdown

# stampify

Turn black-and-white artwork into stamp-ready STL models.

Repository: https://github.com/nwcell/stampify

## Install

Run the CLI without installing:

```bash
uvx stampify path/to/image.png
```

Install it as a standalone tool:

```bash
uv tool install stampify
stampify path/to/image.png
```

Add it to another Python project:

```bash
uv add stampify
```

## CLI

Generate the bundled sample stamp:

```bash
uv run stampify sample/xmas-cowboy.jpeg
```

Write to a specific STL path:

```bash
uvx stampify path/to/image.png -o stamp.stl
```

Compare the two geometry modes:

```bash
uvx stampify path/to/image.png --mode vector -o stamp-vector.stl
uvx stampify path/to/image.png --mode voxel --resolution 300 -o stamp-voxel.stl
```

Show all options:

```bash
uvx stampify --help
```

## Python API

Use it from Python:

```python
from ink_print import StampOptions, write_stamp

options = StampOptions(mode="vector", size=80, border=2, simplify=0.05)
output_path, mesh = write_stamp("path/to/image.png", options=options)
print(output_path, mesh.extents)
```

## Development

Run from a local checkout:

```bash
uv run stampify sample/xmas-cowboy.jpeg
```

Install the local checkout as a tool:

```bash
uv tool install .
```

Add the local checkout to another project:

```bash
uv add git+https://github.com/nwcell/stampify
```

## Notes

- The repo includes `sample/xmas-cowboy.jpeg` as a sample input.
- `vector` mode is the default and produces smoother, smaller meshes.
- `voxel` mode is still available as a fallback.
- `--resolution 0` keeps the source image resolution.
- `--simplify` and `--min-area` are the main cleanup controls for traced artwork.
- The default stamp mirrors the artwork so the printed impression reads correctly.
- The border is raised by default. Disable it with `--no-raised-border`.

## Release automation

This repo includes:

- `.github/workflows/ci.yml` for tests and build validation on pushes and pull requests.
- `.github/workflows/release.yml` for publishing to PyPI from a GitHub Release via Trusted Publishing.

See `RELEASING.md` for the release process.

## License

MIT. See `LICENSE`.
