Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 15 additions & 17 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11"]
python-version: ["3.10", "3.11", "3.12", "3.13"]

steps:
- name: Checkout
Expand All @@ -29,22 +29,20 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e .
python -m pip install -r requirements.txt
python -m pip install -e .

- name: Run unit tests
run: |
pytest -q
- name: Compile Python sources
run: python -m compileall -q src scripts examples

- name: Quickstart smoke (scene → nudge → plan → safety)
run: |
python examples/quickstart.py --scene sim/scenes/basic_room.json --verbose
- name: Run automated tests
run: pytest -q

- name: Import benchmark catalog smoke
run: |
python - <<'PY'
from ohip_bench.scenarios import make_core_catalog
catalog = make_core_catalog()
assert len(catalog) >= 3
print("benchmark scenarios:", [scenario.scenario_id for scenario in catalog])
PY
- name: Run protocol quickstart
run: python examples/quickstart.py --scene sim/scenes/basic_room.json --verbose

- name: Run perception-to-contact integration demo
run: python examples/perception_to_contact_demo.py

- name: Run adversarial safety-authority benchmark
run: python scripts/run_safety_authority_benchmark.py
64 changes: 33 additions & 31 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,43 @@
# Changelog

All notable changes to this project will be documented in this file.
All notable changes to IX-HapticSight are documented here.

The format is based on Keep a Changelog.
This project follows semantic versioning principles for tagged releases.

## [Unreleased]
## [0.2.0] - 2026-08-29

### Added
- Python packaging baseline via `pyproject.toml`.
- Repository hygiene baseline via `.gitignore`.
- Changelog for tracking safety, runtime, benchmark, and governance upgrades across the v0.1 to v1.0 buildout.

### Planned
- Repository authorship and scope cleanup.
- Runtime package restructuring.
- ROS 2 lifecycle node scaffolding.
- Motion execution and safety shield expansion.
- Tactile, proximity, thermal, and force/torque interfaces.
- Logging, replay, integrity, and threat-model artifacts.
- Benchmark harnesses and simulation scenario packs.
- HIL scaffolding and safety-case traceability artifacts.
- Executable RGB-D perception pipeline with image ingestion.
- Two independently trained reference semantic segmenters with committed model parameters, deterministic training script, and held-out synthetic calibration metrics.
- Perception quorum that fails closed on model disagreement, critical-class disagreement, or low confidence.
- Vision-derived 3D GREEN/YELLOW/RED hazard projection.
- Deterministic multimodal safety fusion across vision, force/torque, tactile, proximity, and thermal state.
- Model-agnostic LLM/VLA safety broker that hashes untrusted physical proposals and returns bounded decision receipts.
- Independent safety authority that returns explicit `ALLOW`, `MODIFY`, or `DENY` decisions and bounded counterfactual explanations.
- Dynamic force and speed envelopes that derate authority for uncertainty, YELLOW state, and human proximity.
- Cycle-level runtime invariant monitor for consent, force, speed, sensor freshness, perception quorum, watchdog timing, and E-stop state.
- Bounded soft-real-time reference controller with deterministic recovery, zero-effort, retract, safe-hold, and operator-clear semantics.
- Deterministic contact-world simulation for closed-loop regression testing.
- ROS 2 bridge for bounded twist commands, `WrenchStamped` force/torque input, normalized tactile-patch input, E-stop input, and safety events.
- Standard ROS 2 `FollowJointTrajectory` client implementation for physical robot-controller integration when ROS 2 hardware is available.
- WebXR safety observer with live hazard, force-cap, speed-cap, consent, controller-state, and authority visualization.
- Executable HIL harness that can only report `PASSED` from declared hardware capability plus measured samples. Missing hardware produces `NOT_RUN_NO_HARDWARE`, never a synthetic pass.
- SHA-256 chained runtime evidence records and portable evidence-bundle verification.
- Adversarial safety-authority benchmark covering nominal behavior, over-request derating, RED hazards, consent loss, perception disagreement, high uncertainty, and human-proximity cases.
- End-to-end perception-to-contact software demonstration.
- Expanded automated test suite: 183 tests passing at release-candidate build time.

### Corrected
- Package license metadata now matches the MIT `LICENSE` file.
- Responsible-use language moved to a separate non-license statement to avoid contradictory license claims.
- Repository author metadata normalized to Bryce Lovell.

### Evidence limits
- Reference vision models are trained on deterministic synthetic calibration data, not field robot datasets.
- The Python controller is timing-instrumented soft real time, not a certified hard-real-time controller.
- ROS 2 and robot-controller adapters are implemented but not physically validated in this repository build.
- No HIL pass or real-robot pass is claimed without external measured hardware evidence.

## [0.1.0] - 2026-04-10

### Added
- Initial OHIP schemas and protocol reference implementation.
- Consent management logic.
- Contact planning logic.
- Nudge scheduling logic.
- Rest-pose generation logic.
- Safety gate logic.
- Example quickstart script.
- Core configuration files for force limits and culture profiles.
- Basic simulation scene.
- Unit tests for schemas and scheduler.

### Notes
- `0.1.0` is the pre-upgrade baseline imported before the 72-commit architecture and runtime expansion campaign.
- The project at this stage is a reference implementation and documentation-first prototype, not a deployable robotics runtime.
- Consent management, contact planning, nudge scheduling, rest pose generation, safety gating, simulation scene, configuration, and baseline tests.
69 changes: 14 additions & 55 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,62 +1,21 @@
MIT License

Copyright (c) 2025 Bryce Lovell
Copyright (c) 2025-2026 Bryce Lovell

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

-------------------------------------------------------------------------------
Responsible Use Addendum for IX-HapticSight

The Software is intended for humanitarian, assistive, educational, and
industrial safety applications only.

By using, modifying, or distributing this Software, you agree to the
following additional conditions:

1. **No Weaponization**
You may not use the Software, in whole or in part, to design, develop,
train, deploy, or operate any system intended to cause physical harm
to humans, animals, or the environment.

2. **No Coercive Use**
You may not use the Software to engage in coercive control, surveillance
of individuals without their consent, or any other activity that violates
internationally recognized human rights.

3. **Safety Compliance**
Any deployment of this Software in physical systems must implement
adequate safety measures, including force limits, hazard detection,
and emergency stop capabilities, as recommended in the project
documentation.

4. **Ethical Attribution**
Any public or commercial deployment must credit the original author
("Bryce Lovell") and retain this Responsible Use Addendum in all copies
and derivative works.

Violation of these conditions immediately terminates your rights under this
License for the offending use, without limiting any other remedies available
under law.

-------------------------------------------------------------------------------

This Responsible Use Addendum is a non-legally binding expression of intent
and good faith, designed to guide ethical use. However, the prohibitions on
weaponization and unsafe deployment are intended to be enforceable under
applicable law when incorporated into contracts, agreements, or terms of use.
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading
Loading