cde832eaca0c052842232fd925617ba337a8ee67
`tools/lint_gate.py` now also runs `D:\orisys_ws\scripts\doc_lint.py`, the workspace's single documentation gate, alongside Ruff: - changed Markdown by default, the whole corpus under --all - `--files` names Python files explicitly, so it skips the doc gate - `--no-docs` opts out - the docs verdict is reported even when Ruff is missing, so a missing linter cannot hide it (the exit code still signals the environment problem) The doc rules live in exactly one place on purpose: this file is duplicated across three repositories and had already drifted, so adding a fourth copy of lint logic would repeat the mistake. Failing checks are the documentation budget, inventory membership, a declared kind, unresolved mojibake, paragraph walls, and duplicate explanations across documents. Emphasis density is advisory only - measured as a continuum from 12% to 48% across the corpus, so no threshold separates signal from noise. Pre-existing oversized documents are recorded as budget-exempt with a written reason in D:\orisys_ws\docs\inventory.json, and pre-existing findings are baselined there, so this gate is red only for new regression. With Ruff unavailable in the current environment the doc half still reports, which is how it was verified.
Orisys SDK
Orisys SDK is a Python toolkit for optical tactile sensing. It provides image capture, stitching, dense optical flow, Helmholtz-Hodge decomposition, contact/depth estimation, and several runnable examples for camera and video-based workflows.
PyPI: https://pypi.org/project/orisys/
Repository Layout
src/orisys/: installable SDK packageconfig/: default and lab/runtime JSON configurationsexamples/: runnable demos (basic_pipeline.py,mini_pipeline.py,finger_pipeline*.py) plus sharedgui/,pipeline/,viz/scripts/: maintenance, calibration, packaging, and demo scriptstools/: non-package tooling such as patch-generation utilitiestests/: automated pytest suitedocs/: usage and API documentation
Quick Start
1. Create an environment
conda create -n orisys python=3.10
conda activate orisys
2. Install the SDK in editable mode
pip install -e .
Optional GPU extras:
pip install -e .[cuda12]
or
pip install -e .[cuda13]
3. Run tests
pytest
4. Run an example
ORY-BOX:
python examples/basic_pipeline.py -v 0 -c box
ORY-MINI:
python examples/mini_pipeline.py -v 0 -c mini
ORY-FINGER:
python examples/finger_pipeline.py --camera_id 0 --config finger
Run commands from the repository root.
Configuration
The canonical configuration files now live in the repo-level config/ folder.
The package loader orisys.configs resolves configs from:
- an explicit JSON file path
- a config file stem under
config/(for examplebox,mini,finger) - a product alias such as
dd02->dd02-ov - a backward-compatible JSON
"name"match, such as"prototype"
Examples:
import orisys
sensor = orisys.Sensor(0, config_name="box")
cfg = orisys.export_config("box", "./config/exported_config.json")
Examples and Tools
- Example entry points:
examples/README.md - User documentation:
docs/get_started.md - Build launcher:
python build/run.py(seebuild/README.md) - Manylinux / PyPI binary wheel:
docs/publishing.md - Specialized utilities:
tools/
Publishing (Linux manylinux)
To build PyPI-compliant CPython 3.10/3.11/3.12 Linux wheels from Windows Docker Desktop:
python build/run.py manylinux
Upload candidates land in dist/repaired/. Full TestPyPI → PyPI steps:
docs/publishing.md.
Notes for Collaborators
- Generated build outputs such as
build/,dist/, andSDK/are intentionally ignored. - Large or generated tooling outputs should stay under ignored output folders rather than be committed.
- If you add new images or arrays that should be versioned, review
.gitignorefirst. - Never commit PyPI / TestPyPI API tokens.
Description
Languages
Python
99.3%
PowerShell
0.3%
Shell
0.2%
Batchfile
0.2%