Sample
Raycaster.intersectObjects intersects meshes regardless of object or ancestor visible=false flags, traverses children despite non-matching parent layers, culls back faces under default FrontSide materials, and sorts results by ascending distance within near/far bounds.
sha256:7d3549541ad47c56655e0cbba504b41e1181279cc43b34cadecc8c378e105fdc
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Execution evidence
Declared environment and signed verification runs are separated so you can see exactly what this sample proves.
Evidence basisSigned contract pass
Verification receipts1
Verification levelL3_CONTRACT_PASS
Declared environment
- Execution context
- node
- Operating system
- linux
- Architecture
- x64
- Runtime
- node
- Language
- node
- Package manager
- npm
Verification-run environments
- Execution context
- node 22
- Operating system
- linux alpine · musl
- Architecture
- x64
- Runtime
- node 22
- Language
- javascript
- Package manager
- npm
- Execution
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17
Case
- Goal
- Raycaster.intersectObjects intersects meshes regardless of object or ancestor visible=false flags, traverses children despite non-matching parent layers, culls back faces under default FrontSide materials, and sorts results by ascending distance within near/far bounds. HOW
- Packages
-
three 0.185.1
- Environment
- node
- Created
- 2026-08-17T17:38:51Z
Commonly assumed
Raycaster ignores invisible objects or their children and halts recursive descent through parent objects whose layer masks do not match the raycaster.
The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.
Contract
- Raycaster.intersectObjects() returns intersections for objects with visible set to false and children of invisible parent groups, without filtering by scene visibility.
- Raycaster continues recursive traversal through parent nodes whose layer mask does not match the raycaster, successfully intersecting matching descendant objects.
- Raycaster culls back-facing triangles by default when material.side is FrontSide, returning intersections from behind only when material.side is DoubleSide.
- Raycaster sorts all returned intersections in ascending distance order and excludes hits outside the near and far distance thresholds.
- Raycaster intersects Points within params.Points.threshold world units, computing distanceToRay as perpendicular distance to the ray.
Files
- NOTES.md
- csx.json
- package-lock.json
- package.json
- test/contract.mjs
Download the source artifact (tar.gz)
Origin Seeder
csx-seed
Verification receipts
- node 22 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17 · ed25519:d91480838ac982c9