Nishi FamilyCompare › THERAPEUTIC HAPTICS AND SEXUAL HEALTH

Nishi Compare · measured, not asserted

THERAPEUTIC HAPTICS AND SEXUAL HEALTH

Nishi vs the field — every Nishi cell is measured against real organ source at emit time; each gap names the watch contract that will close it.

Device abstraction, measured touch, and a privacy floor cleared BEFORE anything is collected

Layer 1 · Executive

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.

The unit. Newtons (or the stated integer scale) for force; microseconds for the touch loop; k for the anonymity floor; days for statutory clocks. A comfort or efficacy claim has no unit here and is therefore not made.
Where we already stand: 0 u. Entirely on the substrate. The tissue model and the privacy floor are both live and proven elsewhere in this estate. Nothing between them exists.
Cost to a first honest touch loop: 11 u. HC1 force readback (shared with softbody SB2) and HC2 one device class driven end to end, with HC3 measuring the loop against the banked 11 ms budget.
Cost to collect anything at all, lawfully: 14 u. HC4 consent as a revocable ledger row and HC6 the release gate. Neither is optional and neither is downstream of the fun part -- they gate it.

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

6 of 11 capabilities measured|0 of them measured exceeds|5 open|coverage 545/1000|adoption 5 full / 1 partial

Layer 2 · Roadmap

Do this next — computed by the ranker, never chosen by a seat

Order from nx_compare_rank (nx_dr_ocm: (deficit + cost-of-delay + option + enables) x sponsor x self-sufficiency x momentum / cost). FINISH rows are rungs whose symbol is present but whose organ is short of full adoption: the cheapest closures on this board, listed before any new work. Stamp: # asof=1787883583 domain=hapticcare target_version=0.1 rungs=6 done=1 open=5 finish=0 ranker=nx_dr_ocm

#StageRungPriorityDerivation
#10.1One device class driven end to end from a NishiLang organ (HC2) hc_device_open175v=7 m=2 c=80
#20.1Touch-loop latency measured against the banked budget (HC3) hc_loop_us33v=1 m=1 c=30
#3laterConsent as a revocable, scoped, provable ledger row (HC4) hc_consent_grant100v=3 m=1 c=30
#4laterOne published instrument admitted as data (HC5) hc_instrument_row50v=1 m=1 c=20
#5laterThe release gate that binds the two halves (HC6) hc_release_gate20v=1 m=1 c=50

Critical path — contract, done-rule, executor, cost

RungCloses withDefinition of done (pre-declared)ExecutorEst.
Contact reaction force out of the tissue solver (HC1)
after
st_contact_forceA 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.Organ3 u
One device class driven end to end from a NishiLang organ (HC2)
after HC1
hc_device_openA 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.Organ8 u
Touch-loop latency measured against the banked budget (HC3)
after HC2
hc_loop_usReports 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.Organ3 u
Consent as a revocable, scoped, provable ledger row (HC4)
after
hc_consent_grantA 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.Organ6 u
One published instrument admitted as data (HC5)
after HC4
hc_instrument_rowA 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.Data4 u
The release gate that binds the two halves (HC6)
after HC4
hc_release_gateNo 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.Organ5 u

Milestones

MilestoneRungsCumulative
M1 · Touch that is measured rather than assertedHC1,HC2,HC314 u
M2 · Lawful to collectHC4,HC611 u
M3 · Outcomes that can be citedHC54 u
Layer 3 · Engineering
How this is scored. Every Nishi mark is measured: the generator reads the real organ source on disk and requires the implementing symbol to exist (no self-grading). A watching tag names the organ and symbol contracted to close a gap — the mark flips itself on the next compare beat when that workstream ships, and the comparewatch- plane row flips with it. The flip is necessary, not sufficient: it proves the symbol exists, never that the capability is good. The bar is the rung's pre-declared done-rule, proven by its gate — a symbol shipped without the behaviour behind it is a defect, and the flip is exactly what makes that defect visible instead of quiet. Competitor marks record documented capability presence — presence, not depth or scale. Adoption is measured too: every measured row carries where its organ stands on the estate's ladder (source → built → promoted → registered → invoked; libraries by importer reach minus validation importers; gates by the execution surfaces that run them). A row is fully adopted only at the top of its ladder; anything short is tagged partial with the exact remedy, so a build nobody promoted can no longer read as shipped. Census stamps: importers asof 1787849099, gate census asof 1787855507 (unix seconds; -1 = census absent).

Capability matrix — measured against source

leads / measured exceed present partial absent · click any capability for its evidence

CapabilityNishiButtplug.ioLovense SDKOSSMXToys
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=12 nonval=2 — fully adopted (top of its ladder).
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=12 nonval=2 — fully adopted (top of its ladder).
device-protocol-abstractionOpen — watching runtime/_hdl_build/nx_anon_transport.nx : hc_device_open, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. 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.
watching hc_device_open
latency-loop-budgetOpen — watching runtime/_hdl_build/nx_gamefeel_oracle_gate.nx : hc_loop_us, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. 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.
watching hc_loop_us
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).
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).
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).
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.
adoption LIB-GATE-ONLY importers=1
consent-as-a-ledger-rowOpen — watching runtime/nx_privacy_lib.nx : hc_consent_grant, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. 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.
watching hc_consent_grant
clinical-instrument-as-dataOpen — watching runtime/nx_privacy_lib.nx : hc_instrument_row, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. 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.
watching hc_instrument_row
outcome-reporting-gateOpen — watching runtime/nx_kfloor_lib.nx : hc_release_gate, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. 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.
watching hc_release_gate

Risk register

RiskLikelihood x impactMitigation
Collecting anything before the consent and release rows existcertain x highHC4 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 MDRlikely x highNamed 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 itcertain x highnx_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 unitlikely x highHC5 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 progresspossible x mediumThe 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.
On these two registers. Rows are declared in the domain's plan file and carry the debt id, which is the join key back to the sovereign debt plane — that plane, not this page, is the authority on state. Reconciling them automatically (the regen reading the plane and refreshing these rows) is a named, owed rung; until it lands, treat an id here as a pointer to look up, not a status to trust.
Honest verdict. The two substrates that matter both already exist here and are proven elsewhere in this estate -- an XPBD tissue solver and a k-anonymity release floor with complementary suppression. What is entirely missing is the seam between them and any device at all. Buttplug.io [@buttplug] is the abstraction to interoperate with rather than reimplement: there is no sovereignty won by re-deriving a working wire protocol, and a great deal won by owning the force model underneath it. Nothing on this board may collect a byte until the consent and release rows are wired, and the domain collects nothing today.

Person · product · place — not yet measured for this domain

Every compare carries this layer. Declare 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).

References

Beyond a link list. Every reference below resolves twice — the publisher's copy and, where banked, the estate's own non-rottable library mirror with a content pin — and carries its evidence class plus the exact claim on this page it grounds. Keyed marks like [key] in the matrix notes jump here. A dash means honestly absent, never assumed.
  1. [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 · pin h35600d309a3a93d3d6e7dfb79060aea587de8f42ef8a0c41c0811e9e587790fb · accessed 2026-08-25 · vendor-docGrounds: device-protocol-abstraction
  2. [buttplugrepo] buttplugio/buttplug -- the protocol and reference implementation repository publisher · read in our library knowledge/fetched/cmp_hapticcare_buttplugrepo.html · pin h4f16629da20cecff5d8f74ed93935b36df1312b5135cbb49aab4bae26e674010 · accessed 2026-08-25 · source-readGrounds: device-protocol-abstraction
  3. [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 · pin h940930ee24dcacdf1300bde77ef854825735158d221f0847234037b7c6da606a · accessed 2026-08-25 · vendor-docGrounds: device-protocol-abstraction
  4. [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 · pin h46b0ef604d3933f3506b22d191a0253aebf1c1569d1a4a1003cd66b0cb49ec9c · accessed 2026-08-25 · source-readGrounds: device-protocol-abstraction
  5. [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 · pin hcae8d06778a5fe59b0ec452f2bc451bc76e473c3a07fac51dd53e6f7664be0f2 · accessed 2026-08-25 · vendor-docGrounds: device-protocol-abstraction

generated by nx_swcompare_matrix (sovereign NishiLang organ) from knowledge/compare/hapticcare.matrix · every Nishi cell verified against organ source at emit time · watch cells re-measured on every compare beat · zero JS, zero trackers