Nishi Family › Compare › THERAPEUTIC HAPTICS AND SEXUAL HEALTH
Nishi Compare · capabilities, evidence and delivery
THERAPEUTIC HAPTICS AND SEXUAL HEALTH
Compare capabilities and delivery evidence. Source discovery, qualification, deployment and accepted outcomes are separate; an open contract names work still to verify.
Device abstraction, measured touch, and a privacy floor cleared BEFORE anything is collected
Overview
The purpose, declared position and evidence coverage of this domain. Source presence and completed acceptance are different measures.
Where we are. Measured 2026-08-25. WORKING, and all of it inherited rather than built for this domain: an XPBD soft-tissue solver with layered compliance, gate-proven, which is the only thing that can make touch mean anything; a hierarchical k-anonymity release with COMPLEMENTARY SUPPRESSION, which is the hard half of not leaking a small cell by subtraction; the pure k-floor primitive underneath it; GDPR and CCPA subject-request and breach clocks as pure functions; and an anonymising transport interface that makes anonymity an interface decision instead of a per-caller discipline. OPEN, and it is the whole domain: there is NO device layer of any kind, the solver never reports a reaction FORCE so no feedback loop can close, there is no consent object, no admitted clinical instrument, and no release gate binding the privacy floor to any output. This domain currently collects nothing, which is the correct state until those rows land.
Where we need to go. A sovereign therapeutic-haptics substrate: measured touch from our own tissue solver, a device seam that interoperates rather than reinvents, and a privacy floor that is cleared BEFORE the first byte is collected -- not retrofitted after.
Research bar. Buttplug.io and Intiface is measured on open-source abstraction over intimate hardware across many devices and transports, with a public protocol and reference implementation. Theirs: front door and repository fetched and content-pinned 2026-08-25, grade-1 for existence and role. Ours: The abstraction to interoperate with. Rebuilding a working wire protocol for its own sake would be sovereignty theatre; owning the FORCE MODEL underneath it is the part nobody else has. Specific capability comparisons beyond this are deliberately not made from recollection..
Latest recorded release
No valid dated release entry is recorded for this domain.
Release entries describe recorded changes; they do not establish that every capability passed evaluation.
6 of 11 capability source symbols found|0 of them authored stronger-claims|5 open|coverage 545/1000|adoption 5 full / 1 partial
Evidence profile — what the gaps on this board actually are
Measured by nx_swcompare_evidence, read back by nx_evprofile_lib. Every figure is a count with its denominator — there is deliberately no score, no grade and no percentage anywhere in this band, because a stored scalar is a field a seat can edit and a counted partition is not.
evidence|grounded 6/6|unsupported 0|gates green 1/1|proven able to fail 0/1|never bitten 1|green at 0/0 0|open gaps 5|of them unnamed 0|of them proof withheld 0|flips ready 0
proven able to fail counts the gates that have a RECORDED RED — nx_gate_bite mutated the gate subject, rebuilt it, watched the gate go red, and that record is inside the shared TTL. never bitten is its complement over the same denominator: those gates ran and were green, and nothing has ever shown them able to detect anything, so their green is a statement about this run and not about the gate. green at 0/0 is a separate and much weaker observation — the gate printed GREEN on a zero denominator, so its own tooth counter says it examined nothing. A gate can be green, non-zero, and still never bitten; that is the common case and it is now visible instead of implied.
partition: grounded + unsupported = 6 vs present 6 · named + unnamed + withheld = 5 vs open 5 · both reconcile
liar-kill conj=GPQN · all four conjuncts held
graded document: BUILDROOT tree, 9210 bytes · gates map: PRIMARY · stamped 3d 22h ago · source ../knowledge/status/evstamp_hapticcare.verdict
| Gap class | What it is, and the work it names |
|---|---|
| NONE | No gap class fires on this board: every published claim is grounded, the declared gates ran and were green, no watch contract is unnamed or already landed, and the stamp is inside its TTL. That is a statement about evidence, not about depth, scale or polish. |
nx_swcompare_evidence hapticcare itself and are not carried on the stamp, so this page names the classes and the producer names the rows. That split is stated rather than hidden: a count without a worklist is not actionable, and this band is honest about which half of that it is.Production map
Follow the dependencies, declared acceptance criteria and recorded priorities. Inspect source binding before treating a rank as executable work.
Ranking source binding: UNBOUND. Recorded priorities require current acceptance evidence and resource checks before execution.
Recorded ranking withheld
Current prerequisite graph is invalid or unavailable. Historical rank data is retained, but cannot establish a current order. Latest execution outcome is unverified.
Declared roadmap — contract, acceptance, executor, effort
| Rung | Closes with | Definition of done (pre-declared) | Executor | Est. |
|---|---|---|---|---|
| Contact reaction force out of the tissue solver (HC1) after | st_contact_force | A signed contact force in stated units, monotonic in penetration depth, distinguishing a soft layer from the stiff structure beneath, bite-proven against a known load. SHARED with softbody SB2 -- one organ, counted once, not built twice. | Organ | 3 u |
| One device class driven end to end from a NishiLang organ (HC2) after HC1 | hc_device_open | A real device of one named class opened, driven and closed from an organ, with the transport named and a neg-control proving a refused or absent device is reported by name rather than silently no-oping. | Organ | 8 u |
| Touch-loop latency measured against the banked budget (HC3) after HC2 | hc_loop_us | Reports microseconds round trip from contact event to device command and REFUSES above knowledge/gamefeel_oracle.conf frame_budget_ms_90hz, with js_block_ms as the second conjunct. Same shape as softbody SB1 and it should reuse that organ, not fork it. | Organ | 3 u |
| Consent as a revocable, scoped, provable ledger row (HC4) after | hc_consent_grant | A grant is a durable row carrying scope and expiry; revocation takes effect at the NEXT call rather than eventually; and a neg-control proves a revoked or expired grant is refused BY NAME. Nothing in this domain may read or write subject data without one. | Organ | 6 u |
| One published instrument admitted as data (HC5) after HC4 | hc_instrument_row | A published, validated instrument carried VERBATIM as conf rows with its citation in the row, scored by a pure function -- the pattern communitypulse already proved with a 12-item measure. Never paraphrased into code, because a paraphrased instrument is a different instrument. | Data | 4 u |
| The release gate that binds the two halves (HC6) after HC4 | hc_release_gate | No aggregate leaves this domain unless it passed the k-floor WITH complementary suppression and every contributing grant is unrevoked. Bite-proven twice: a planted under-floor cell must be refused, and a planted revoked grant must be refused, each naming its rule. | Organ | 5 u |
Milestones
| Milestone | Rungs | Cumulative |
|---|---|---|
| M1 · Touch that is measured rather than asserted | HC1,HC2,HC3 | 14 u |
| M2 · Lawful to collect | HC4,HC6 | 11 u |
| M3 · Outcomes that can be cited | HC5 | 4 u |
| Class | Count | Note |
|---|---|---|
| bars | 0 | sotabar rows on the plan |
| fresh | 0 | the bar month is the current month |
| attested | 0 | an older bar with a this-month barscan reporting no newer entry |
| stale | 0 | a this-month scan saw a newer month the bar ignores |
| unattested | 0 | nobody looked this month |
| malformed | 0 | a sotabar row missing a field |
| duplicate | 0 | bar ids an earlier row already carries |
| bars, summed | 0 | RECONCILED: the parts sum to the total 0 |
| current month | 2026-10 | the month every bar is judged against |
Inspect a rung and its prerequisites
Declared nodes 6. Rank input binding: UNBOUND. Dependency order is authored. Implementation, acceptance evidence, authority and resource readiness are unverified. No action is recommended or dispatched here.
Plan SHA-256 ff0a53348472eae6eec67743f9327bd7b75d9b9714728e589c5f0cb61b9f9337. Target rows 0; role rows 0. Existing risks and release worklog retain their own scope; no node completion is inferred.
Invalid declared graph. Malformed rows or IDs 2; duplicate IDs 0; duplicate prerequisites 0; missing prerequisites 0; cyclic or cycle-dependent nodes 0. Node paths withheld.
Learning and practice paths
No structured learning path is declared for this plan. Existing research, roadmap and worklog remain available above.
Rung dossiers — every record that bears on a rung, in one place
nx_swcompare_evidence hapticcare writes it beside its stamp); every gate below reads UNRECORDED until it runs.knowledge/organ_gate.conf read from this working directory (1 rows) and from the estate root (196 rows); rows in both counted once: 0; declarations read: 197. Every declaration in either copy counts, so a stub beside the publisher can never hide the root.HC1 Contact reaction force out of the tissue solver · cell PRESENT · gate NO-GATE-DECLARED
| Contract | st_contact_force · executor Organ · 3 u · stands on |
|---|---|
| Definition of done | A signed contact force in stated units, monotonic in penetration depth, distinguishing a soft layer from the stiff structure beneath, bite-proven against a known load. SHARED with softbody SB2 -- one organ, counted once, not built twice. |
| Matrix cell | contact-force-readback · runtime/nx_softtissue.nx · PRESENT decl |
| Gate | NO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_softtissue; declare nx_softtissue TAB <gate> and the ship loop proves it and the verdict lands here. |
| Work log | no log row names this rung yet |
HC2 One device class driven end to end from a NishiLang organ · cell WATCHING · gate NO-GATE-DECLARED
| Contract | hc_device_open · executor Organ · 8 u · stands on HC1 |
|---|---|
| Definition of done | A real device of one named class opened, driven and closed from an organ, with the transport named and a neg-control proving a refused or absent device is reported by name rather than silently no-oping. |
| Matrix cell | device-protocol-abstraction · runtime/_hdl_build/nx_anon_transport.nx · WATCHING decl |
| Gate | NO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_anon_transport; declare nx_anon_transport TAB <gate> and the ship loop proves it and the verdict lands here. |
| Work log | no log row names this rung yet |
HC3 Touch-loop latency measured against the banked budget · cell WATCHING · gate NO-GATE-DECLARED
| Contract | hc_loop_us · executor Organ · 3 u · stands on HC2 |
|---|---|
| Definition of done | Reports microseconds round trip from contact event to device command and REFUSES above knowledge/gamefeel_oracle.conf frame_budget_ms_90hz, with js_block_ms as the second conjunct. Same shape as softbody SB1 and it should reuse that organ, not fork it. |
| Matrix cell | latency-loop-budget · runtime/_hdl_build/nx_gamefeel_oracle_gate.nx · WATCHING decl |
| Gate | NO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_gamefeel_oracle_gate; declare nx_gamefeel_oracle_gate TAB <gate> and the ship loop proves it and the verdict lands here. |
| Work log | no log row names this rung yet |
HC4 Consent as a revocable, scoped, provable ledger row · cell WATCHING · gate NO-GATE-DECLARED
| Contract | hc_consent_grant · executor Organ · 6 u · stands on |
|---|---|
| Definition of done | A grant is a durable row carrying scope and expiry; revocation takes effect at the NEXT call rather than eventually; and a neg-control proves a revoked or expired grant is refused BY NAME. Nothing in this domain may read or write subject data without one. |
| Matrix cell | consent-as-a-ledger-row · runtime/nx_privacy_lib.nx · WATCHING decl |
| Gate | NO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_privacy_lib; declare nx_privacy_lib TAB <gate> and the ship loop proves it and the verdict lands here. |
| Work log | no log row names this rung yet |
HC5 One published instrument admitted as data · cell WATCHING · gate NO-GATE-DECLARED
| Contract | hc_instrument_row · executor Data · 4 u · stands on HC4 |
|---|---|
| Definition of done | A published, validated instrument carried VERBATIM as conf rows with its citation in the row, scored by a pure function -- the pattern communitypulse already proved with a 12-item measure. Never paraphrased into code, because a paraphrased instrument is a different instrument. |
| Matrix cell | clinical-instrument-as-data · runtime/nx_privacy_lib.nx · WATCHING decl |
| Gate | NO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_privacy_lib; declare nx_privacy_lib TAB <gate> and the ship loop proves it and the verdict lands here. |
| Work log | no log row names this rung yet |
HC6 The release gate that binds the two halves · cell WATCHING · gate NO-GATE-DECLARED
| Contract | hc_release_gate · executor Organ · 5 u · stands on HC4 |
|---|---|
| Definition of done | No aggregate leaves this domain unless it passed the k-floor WITH complementary suppression and every contributing grant is unrevoked. Bite-proven twice: a planted under-floor cell must be refused, and a planted revoked grant must be refused, each naming its rule. |
| Matrix cell | outcome-reporting-gate · runtime/nx_kfloor_lib.nx · WATCHING decl |
| Gate | NO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_kfloor_lib; declare nx_kfloor_lib TAB <gate> and the ship loop proves it and the verdict lands here. |
| Work log | no log row names this rung yet |
dossiers=6 cells_joined=6 no_matrix_row=0 (sum 6) gates_recorded=0 gates_unrecorded=0 no_gate_declared=6 (sum 6 of cells_joined) evgates=UNSTAMPED
Capability comparisons
Compare the field, search individual capabilities and open their source and adoption evidence. Documented presence does not establish comparative quality.
Position map — centrality and distinctiveness
The four-quadrant map the field uses for brand strategy (Dawar and Bagga, HBR June 2015), re-derived from this matrix on every publish. Centrality is the share of the category's feature mass a player covers, each feature weighted by how many hold it; distinctiveness is the average lead over each rival on the rows the player holds; breadth is the depth-weighted share of the whole matrix (the bubble); depth is how deeply the rows held are held; momentum is the day-over-day move off the spine (green rising, red falling, grey until day two); the dashed path runs first day → previous day → today. Dividers are the category means. Axes are fitted to the field of play, so read the tick numerals, not the frame. Rival marks are documented presence, so a rival's position reads the record, never its quality. The picture grades its own readability below; the table beside it is the same data for a screen reader or a second method.
knowledge/compare/hapticcare.cdmap (cut|x|y, cube|x|y|z); absent = the HBR defaultsbubble area = breadth · ring = momentum (green rising, red falling, grey until day two) · dashed = category means · axes fitted to the field of play: centrality 350–650, distinctiveness 100–800 of 0–1000 permil (the full range put every player in one corner)
readability of the 2D cut, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 3 (a fact of the data: two players that close are that close) · data spread 689 permil of the plot · quadrant words unseated 0
text contrast, measured with wcag2-ratio (floors from contrast.conf), light theme: labels 16.24 (floor 4.50) · notes 16.24 (floor 4.50) · quadrant words 5.89 (floor 4.50) · tick numerals 5.89 (floor 4.50) · axis titles 5.59 (floor 4.50) · dark theme: labels 13.78 (floor 4.50) · quadrant words 5.55 (floor 4.50) · axis titles 5.97 (floor 4.50) · dark classes under their floor 0 (one figure serves both themes: a dark shortfall is a token to fix, never a class to hide) · classes refused under their floor 0 (a refused class is not drawn; the scale classes are measured, never hidden) · export: SVG PNG (receipt, rendered by the estate's own rasteriser from this page)
readability of the 3D cube, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 3 (a fact of the data: two players that close are that close) · data spread 175 permil of the plot
10 panels over 5 registered axes, every pair once (the lower axis on x, the higher on y) · each panel fitted to its own field of play, first and last tick numerals shown · no labels in a small cut, the legend names the colours; the grade below reports the mark terms only (MM summed over the panels, spread averaged)
readability of the small multiples, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 36 (a fact of the data: two players that close are that close) · data spread 593 permil of the plot
| Player | Quadrant | centrality | distinctiveness | breadth | depth | momentum | Rows held | Days on spine | First seen |
|---|---|---|---|---|---|---|---|---|---|
| Nishi | Aspirational | 600 | 666 | 363 | 666 | 0 since 2026-09-23 | 6 | 10 | 2026-09-15 |
| Buttplug.io | Unconventional | 400 | 500 | 90 | 1000 | 0 since 2026-09-23 | 1 | 10 | 2026-09-15 |
| Lovense SDK | Peripheral | 400 | 166 | 60 | 666 | 0 since 2026-09-23 | 1 | 10 | 2026-09-15 |
| OSSM | Peripheral | 400 | 166 | 60 | 666 | 0 since 2026-09-23 | 1 | 10 | 2026-09-15 |
| XToys | Peripheral | 400 | 166 | 60 | 666 | 0 since 2026-09-23 | 1 | 10 | 2026-09-15 |
| Day | Matrix rows reviewed | Players recorded |
|---|---|---|
| 2026-09-15 | 11 | 5 |
| 2026-09-16 | 11 | 5 |
| 2026-09-17 | 11 | 5 |
| 2026-09-18 | 11 | 5 |
| 2026-09-19 | 11 | 5 |
| 2026-09-20 | 11 | 5 |
| 2026-09-21 | 11 | 5 |
| 2026-09-22 | 11 | 5 |
| 2026-09-23 | 11 | 5 |
| 2026-10-08 | 11 | 5 |
players 5|matrix rows 11|feature mass 10|centrality mean 440|distinctiveness mean 332|axes 5|spine days 10 (shown 10)|rows written today 0|readability defects 2D 0 cube 0|spine knowledge/status/cdmap/hapticcare.spine
Capability matrix — measured against source
◉ authored stronger claim; source present● present◐ partial○ absent? unassessed; excluded from relative comparison · click any capability for its evidence
Peer cell coverage: authored assessed 44, unassessed 0. Authored assessments are not verified outcomes.
No capabilities match this filter or search.
| Capability | Nishi | Buttplug.io | Lovense SDK | OSSM | XToys |
|---|---|---|---|---|---|
tissue-force-modelMeasured:st_substep exists in runtime/nx_softtissue.nx, verified at emit. The XPBD solver that would make touch mean anything is LIVE and gate-proven, with layered compliance so a soft layer and the structure beneath it are distinguishable. None of the four is a physics engine, which is not a criticism of them -- it is why this row sits on our side of the board. See /compare/softbody, which owns it. A device protocol with no tissue model underneath is a vibration API. Adoption: LIB-WIRED importers=14 nonval=4 — fully adopted (top of its ladder).Pros Implementing source symbol found; runtime acceptance separate; ahead of Buttplug.io, Lovense SDK, OSSM, XToys; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth) | ● | ○ | ○ | ○ | ○ |
contact-force-readbackMeasured:st_contact_force exists in runtime/nx_softtissue.nx, verified at emit. LANDED 2026-08-25 and THE BLOCKING RUNG FOR THIS DOMAIN IS NOW OPEN. The solver reports the contact constraint's own impulse: a 20 mm press reads 3.2x a 10 mm press (superlinear, because the tissue stiffens under the probe) and firm tissue reads 3.75x harder than soft at the SAME depth. That second number is the one this domain needs -- it is the difference between a vibration API and a surface that can tell you what it is touching. Proven by nx_contactforce_gate 6/6 with both neg-controls firing. Units are solver units, never newtons: there is no kilogram in the solver, so the teeth assert monotonicity and discrimination, which is what a feedback loop consumes anyway. Tracked as SB2 on /compare/softbody; consumed here, not duplicated. Adoption: LIB-WIRED importers=14 nonval=4 — fully adopted (top of its ladder).Pros Implementing source symbol found; runtime acceptance separate; ahead of Buttplug.io, Lovense SDK, OSSM, XToys; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth) | ● | ○ | ○ | ○ | ○ |
device-protocol-abstractionDARK —runtime/_hdl_build/nx_anon_transport.nx EXISTS but does not declare hc_device_open: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. ABSENT ENTIRELY on our side -- we have no device layer of any kind, and this is the row where the field is plainly ahead. Buttplug.io [buttplug] is BEST: a mature open abstraction with its protocol and reference implementation public [buttplugrepo]. Lovense ships a vendor developer SDK [lovense], OSSM is open hardware with its own firmware [ossm], XToys automates control in the browser [xtoys]. Bar: one device class driven end to end from a NishiLang organ, with the transport named -- interoperating, not reinventing.Pros none measured yetCons behind Buttplug.io (leads), Lovense SDK, OSSM, XToys; open contract; expected source declaration not established | ○ | ◉ | ● | ● | ● |
latency-loop-budgetDARK —runtime/_hdl_build/nx_gamefeel_oracle_gate.nx EXISTS but does not declare hc_loop_us: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. OPEN, and the bar is ALREADY BANKED rather than needing research: knowledge/gamefeel_oracle.conf frame_budget_ms_90hz 11..12 and js_block_ms 0..2, cited to vendor VR performance guidance. A touch loop that misses it reads as sensory dissonance rather than as touch. Nothing measures ours because there is no loop yet. Bar: report microseconds round trip and REFUSE above the budget, REUSING nx_tissuebudget rather than forking it -- that organ shipped 2026-08-25 and already reads these same two rows, derives the budget from the frame rate, and carries the neg-control, so this rung is a second caller and not a second ruler.Pros none measured yetCons open contract; expected source declaration not established | ○ | ○ | ○ | ○ | ○ |
k-anonymity-release-floorMeasured:kfl_release exists in runtime/nx_kfloor_lib.nx, verified at emit. LIVE shared lib with HIERARCHICAL release and COMPLEMENTARY SUPPRESSION -- the hard part, because suppressing a small cell while leaving its complement standing leaks it by subtraction. Proven in the communitypulse lane. For this domain it is the difference between an outcome statistic and an outing. The four rivals do not publish aggregates at all, so this is a capability they have no occasion to have. Adoption: LIB-WIRED importers=1 nonval=1 — fully adopted (top of its ladder).Pros Implementing source symbol found; runtime acceptance separate; ahead of Buttplug.io, Lovense SDK, OSSM, XToys; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth) | ● | ○ | ○ | ○ | ○ |
k-anonymity-floor-primitiveMeasured:kn_release exists in runtime/_hdl_build/nx_kanon.nx, verified at emit. LIVE pure-math floor primitive (kn_release, kn_apply, kn_count_below) with no I/O, so it is testable in isolation and cannot leak by construction. The layer kfl_release composes. Adoption: LIB-WIRED importers=6 nonval=3 — fully adopted (top of its ladder).Pros Implementing source symbol found; runtime acceptance separate; ahead of Buttplug.io, Lovense SDK, OSSM, XToys; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth) | ● | ○ | ○ | ○ | ○ |
privacy-request-clocksMeasured:prv_gdpr_dsar_pure exists in runtime/nx_privacy_lib.nx, verified at emit. LIVE: GDPR and CCPA subject-request deadlines and breach-notification clocks as PURE functions. A health-adjacent domain acquires these obligations the moment it stores anything, and holding them as deterministic pure functions means the deadline is computed rather than remembered. Vendor platforms certainly have privacy programmes; what they do not have is the clock as a testable function, which is the only form this estate accepts. Adoption: LIB-WIRED importers=2 nonval=1 — fully adopted (top of its ladder).Pros Implementing source symbol found; runtime acceptance separate; ahead of Buttplug.io, Lovense SDK, OSSM, XToys; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth) | ● | ○ | ○ | ○ | ○ |
anonymising-transportMeasured:anon_connect exists in runtime/_hdl_build/nx_anon_transport.nx, verified at emit. LIVE: the single seam the privacy no-leak proof binds to, so anonymity is an interface decision rather than a per-caller discipline. Load-bearing here because device telemetry is identifying by its nature -- what is attached says a great deal about who is attached to it. Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.Pros Implementing source symbol found; runtime acceptance separate; ahead of Buttplug.io, Lovense SDK, OSSM, XToysCons not adopted yet: imported only by validation organs (gates, tests, benches): wire it into a shipping program | ● | ○ | ○ | ○ | ○ |
consent-as-a-ledger-rowDARK —runtime/nx_privacy_lib.nx EXISTS but does not declare hc_consent_grant: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. OPEN. The estate has consent machinery elsewhere but this domain has no consent object of its own, and it is the one domain where consent must be revocable, scoped, time-boxed and PROVABLE after the fact. Bar: a grant is a durable row with scope and expiry, revocation takes effect at the NEXT call rather than eventually, and a neg-control proves a revoked grant is refused by name.Pros none measured yetCons open contract; expected source declaration not established | ○ | ○ | ○ | ○ | ○ |
clinical-instrument-as-dataDARK —runtime/nx_privacy_lib.nx EXISTS but does not declare hc_instrument_row: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. OPEN. The pattern is already proven here: communitypulse carries a published 12-item measure VERBATIM as conf rows rather than as code, so the instrument can be cited and swapped without a rebuild. Sexual health has published, validated instruments; none is admitted here yet, so no outcome may be reported. Bar: one published instrument as data rows with its citation in the row, scored by a pure function, never paraphrased into code.Pros none measured yetCons open contract; expected source declaration not established | ○ | ○ | ○ | ○ | ○ |
outcome-reporting-gateDARK —runtime/nx_kfloor_lib.nx EXISTS but does not declare hc_release_gate: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. OPEN. The rung that binds the two halves: no aggregate leaves this domain unless it passed the k-floor WITH complementary suppression and every contributing grant is unrevoked. Bar: a gate that REFUSES a release by name, bite-proven twice -- a planted under-floor cell and a planted revoked grant.Pros none measured yetCons open contract; expected source declaration not established | ○ | ○ | ○ | ○ | ○ |
| Class | Count | Note |
|---|---|---|
| rows with rival marks | 1 | rows carrying a Yes, Best or Part in a rival column |
| cited | 1 | a reference mark resolves to a pinned mirror |
| uncited | 0 | an observation read, badged until a reference lands |
| rows, summed | 1 | RECONCILED: the parts sum to the total 1 |
Delivery and evidence
Inspect risks, technical debt, rendered observations, experiments and references. Read scope and limitations alongside every result.
Risk register
| Risk | Likelihood x impact | Mitigation |
|---|---|---|
| Collecting anything before the consent and release rows exist | certain x high | HC4 and HC6 gate every collection row, and the matrix header states the precondition once so no row can quietly omit it. The domain collects nothing today and that is deliberate, not incidental. |
| Software informing therapy is a regulated device under FDA SaMD and EU MDR | likely x high | Named as a row and routed through the legal lane before any pilot. HC1 is the first rung that makes a therapeutic claim even reachable, so the review belongs at HC1, not at launch. |
| Device telemetry is identifying by its nature -- what is attached says a great deal about who is attached to it | certain x high | nx_anon_transport is the seam and is already live; HC2 must bind to it rather than opening its own socket, and the neg-control should prove a direct connection is refused. |
| Publishing an efficacy or comfort claim with no instrument and no unit | likely x high | HC5 admits a published instrument before any outcome is reported, and the unit row above states that a claim without a unit is not made here. |
| Rebuilding a working open protocol for sovereignty's sake and calling it progress | possible x medium | The bar row says it plainly: interoperate at the protocol, own the force model. Sovereignty is measured where it buys something, and here that is the tissue physics and the privacy floor. |
Person · product · place — not yet measured for this domain
knowledge/compare/hapticcare.ppp (rows surface|nishi or c1..c4|label|url|connect naming OUR live surface and each rival's front door), run nx_ppp_probe domain hapticcare, and this section fills itself on the next beat: the same ruler on both sides — privacy and CX (third-party hosts, tracker classes, cookies, security headers), design and longevity (design hygiene, computed WCAG contrast, render-blocking resources, unsized media, script weight, theme and motion queries), findability (landmarks, skip link, on-site search, breadcrumb, headings, internal links).Mined from the field — review and competitive intelligence proposed to this board
Rows written by nx_intelmine_propose from nx_reviewmine_lib signals (Steam reviews under the exceeds / meets / mixed / does-not-meet rubric, the installed-title census) and routed here by capability_map.conf. DEFECT names a rival failing that a rung here answers; DEMANDED a capability buyers ask for and do not get; WE-DO-BETTER an exceed the reviews corroborate; THEY-DO-WELL a bar this board must meet; SHIPS a rival capability to match. A proposal is a lead, never a rung — it closes only when a rung with a gate lands, and nothing in this band changes a measured cell.
| Signal | Kind | Term | Title | Proposed rung | Evidence |
|---|---|---|---|---|---|
| WE-DO-BETTER | feature | headset | DanceXR 1905510 | Headset support: DanceXR -- every runtime door measured | praised=1 complained=1 mixed=0 demanded=1 |
| SHIPS | vr | OpenXR | DanceXR 1905510 | OpenXR door: DanceXR ships OpenXR -- the Nishi VR runtime door measured against it | fingerprint=installed-tree |
proposals 2|malformed rows 0 (counted, never rendered: a row that is not prop| with 10 fields)|read-capped 0
The field — discovered, not chosen
Rows written by nx_field_discover from hapticcare.seeds: the industry's own lists (Wikipedia wikitext, GitHub topics, awesome lists) read mechanically, every candidate counted across seeds. The matrix columns above are a SEAT'S pick; this band is the population they were picked from, and the stats line measures one against the other. A rival here is a lead, never a verdict — it earns a column when its capabilities are read and pinned.
| Class | Count | Note |
|---|---|---|
| seeds | 4 | |
| scanned | 4 | |
| fetched | 4 | |
| reused | 0 | |
| failed | 0 | |
| named | 4 | |
| candidates | 4 | |
| mentions | 4 | |
| capped | 0 |
| Rank | Rival | Seeds | Mentions | First seed | Kind | Link |
|---|---|---|---|---|---|---|
| 1 | Buttplug.io | 1 | 1 | col0-buttplug | named | https://buttplug.io/ |
| 2 | Lovense SDK | 1 | 1 | col1-lovense | named | https://developer.lovense.com/ |
| 3 | OSSM | 1 | 1 | col2-ossm | named | https://github.com/KinkyMakers/OSSM-hardware |
| 4 | XToys | 1 | 1 | col3-xtoys | named | https://xtoys.app/ |
field candidates 4|shown 4 of 4|matrix columns in the field 4 of 4|discovered rivals with no column 0|malformed rows 0 (counted, never rendered)|read-capped 0
Exclusive and shared capabilities
This board grades 11 capabilities: 9 exclusive to it and 2 shared with other boards. Shared rows on this page: 2 = home here 0 + home elsewhere 0 + ambiguous 2 + undecided 0 + refused 0 (partition 2); undecided = unmapped 0 + unproven 0 + unevidenced 0; homonyms 0; since the previous census: new 0, resolved 0. Census FRESH age_s=6873.
| Capability | Organ | Boards grading it | Home | Rule | Evidence | Standing on this board |
|---|---|---|---|---|---|---|
| st_substep | nx_softtissue.nx | softbody+, hapticcare+, dcc | — | ambiguous | gates | ambiguous |
| st_contact_force | nx_softtissue.nx | softbody*+, hapticcare*+ | — | ambiguous | plan | ambiguous |
Gaps from the record — what the estate does that no board carries
The record census (nx_goalmap record) reads the invoked-tool population and every plan queue row and files each organ or directive that NO matrix, plan or gates row names. A row here is a callout the boards missed: adjudicate it onto a board or declare it infrastructure. Census state STALE (age 1395978 s), sources read 4 of 7 declared — a BLIND census is a FLOOR: unread sources can only add rows.
| kind | name | board | source | evidence |
|---|
rows shown 0|this board's directives 0|estate-wide un-boarded organs 452 (listed in full on /compare/ecosystem)|census rows 639|malformed 0 (counted, never rendered)
References
- [buttplug] Buttplug.io -- the open-source intimate-hardware abstraction project and its Intiface tooling publisher · read in our library
knowledge/fetched/cmp_hapticcare_buttplug.html· pinh35600d309a3a93d3d6e7dfb79060aea587de8f42ef8a0c41c0811e9e587790fb· accessed 2026-08-25 · vendor-docGrounds: device-protocol-abstraction - [buttplugrepo] buttplugio/buttplug -- the protocol and reference implementation repository publisher · read in our library
knowledge/fetched/cmp_hapticcare_buttplugrepo.html· pinh4f16629da20cecff5d8f74ed93935b36df1312b5135cbb49aab4bae26e674010· accessed 2026-08-25 · source-readGrounds: device-protocol-abstraction - [lovense] Lovense developer portal -- the vendor SDK and API surface for its device line publisher · read in our library
knowledge/fetched/cmp_hapticcare_lovense.html· pinh940930ee24dcacdf1300bde77ef854825735158d221f0847234037b7c6da606a· accessed 2026-08-25 · vendor-docGrounds: device-protocol-abstraction - [ossm] OSSM -- the open-source machine, open hardware with its own firmware and control publisher · read in our library
knowledge/fetched/cmp_hapticcare_ossm.html· pinh46b0ef604d3933f3506b22d191a0253aebf1c1569d1a4a1003cd66b0cb49ec9c· accessed 2026-08-25 · source-readGrounds: device-protocol-abstraction - [xtoys] XToys -- a browser platform for control, online play and automation, per its own description publisher · read in our library
knowledge/fetched/cmp_hapticcare_xtoys.html· pinhcae8d06778a5fe59b0ec452f2bc451bc76e473c3a07fac51dd53e6f7664be0f2· accessed 2026-08-25 · vendor-docGrounds: device-protocol-abstraction
generated by nx_swcompare_matrix (sovereign NishiLang organ) from knowledge/compare/hapticcare.matrix · source checks show implementation presence; runtime and user-outcome evidence are reported separately · JavaScript supports page controls