Sample
CanvasTexture defaults flipY to true to invert UV y-coordinates during transformUv, leaves transformUv unaffected by offset and repeat changes until updateMatrix is explicitly invoked despite matrixAutoUpdate being true, serializes metadata type as Texture, and dynamically queries width and height from its canvas source.
sha256:ccfffdc4d532f6655a078a8aec64c2e1fcba5f233b00b6548e2fc29475452d30
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
- CanvasTexture defaults flipY to true to invert UV y-coordinates during transformUv, leaves transformUv unaffected by offset and repeat changes until updateMatrix is explicitly invoked despite matrixAutoUpdate being true, serializes metadata type as Texture, and dynamically queries width and height from its canvas source. HOW
- Packages
-
three 0.185.1
- Environment
- node
- Created
- 2026-08-17T09:13:42Z
Commonly assumed
transformUv automatically synchronizes with texture offset and repeat when matrixAutoUpdate is enabled, and CanvasTexture serializes with metadata type CanvasTexture.
The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.
Contract
- CanvasTexture transforms UV coordinates with flipY inversion but leaves transformUv unaffected by offset or repeat changes until updateMatrix is called manually, even when matrixAutoUpdate is true.
- CanvasTexture constructor applies default texture wrapping, filtering, RGBA format, and NoColorSpace while dynamically computing width and height from the underlying canvas.
- Calling transformUv on non-UV mappings skips matrix transformation and flipY inversion entirely.
- Serializing CanvasTexture with toJSON outputs metadata type Texture rather than CanvasTexture and captures wrap, filtering, and flipY settings.
- Setting values with setValues copies Vector2 properties and dispatches synchronous events on dispose.
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