Skip to content
Draft
Changes from 1 commit
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
2070215
Add KHR_interactivity intro
lexaknyazev Jul 1, 2023
09bd2cf
Add socket descriptions and math nodes
lexaknyazev Oct 2, 2023
151f3ad
Add vector and more arithmetic nodes; editorial changes
lexaknyazev Oct 16, 2023
47c12fa
Add comparison nodes; address feedback
lexaknyazev Oct 23, 2023
736e686
Add special float constants
lexaknyazev Nov 6, 2023
667fdb1
Add matrix and integer nodes; update formatting
lexaknyazev Nov 14, 2023
4b7b4fe
Add a note about math/tan return values
lexaknyazev Jan 22, 2024
866ea7f
Add flow nodes
lexaknyazev Feb 26, 2024
f69bfb1
Address feedback
lexaknyazev Mar 4, 2024
29e8acc
Add flow/throttle
lexaknyazev Mar 4, 2024
6ebb25f
Add flow/delay
lexaknyazev Mar 4, 2024
c63a37f
Address feedback
lexaknyazev Mar 11, 2024
48851d2
Mention flow/delay activations limit
lexaknyazev Mar 11, 2024
86bf693
Add pointer/get and pointer/set
lexaknyazev Mar 11, 2024
71860b8
Add variable/get and variable/set
lexaknyazev Mar 11, 2024
ffd99ef
Adjust flow/throttle error condition
lexaknyazev Mar 25, 2024
3260039
Update delay nodes
lexaknyazev Mar 25, 2024
18e12cc
Clarify delay limits
lexaknyazev Apr 1, 2024
e73bc71
Clarify invalid values for pointer/set
lexaknyazev Apr 8, 2024
38e690f
Add boolean arithmetic nodes
lexaknyazev Apr 8, 2024
8fbc866
Add type conversion nodes
lexaknyazev Apr 8, 2024
b681b0a
Add math/select node
lexaknyazev Apr 8, 2024
9e000b9
Add boolean XOR
lexaknyazev Apr 15, 2024
de89f6a
Add vector and matrix combine/extract nodes
lexaknyazev Apr 21, 2024
6867635
Add pointer/interpolate
lexaknyazev May 13, 2024
32fd170
Typo fixes
lexaknyazev May 13, 2024
19630ba
Adjust min/max/clamp node descriptions
lexaknyazev May 13, 2024
a369436
Add animation control nodes
lexaknyazev Jun 3, 2024
4685e06
Add lifecycle nodes
lexaknyazev Jun 3, 2024
09f1f1d
Add custom event nodes
lexaknyazev Jun 3, 2024
22fecec
Add more intro sections
lexaknyazev Jun 10, 2024
63f5d3d
Add JSON syntax
lexaknyazev Jun 17, 2024
4177adf
Initialize floating-point variables to NaN
lexaknyazev Jun 24, 2024
21e1b4c
Update custom event nodes
lexaknyazev Jun 24, 2024
83aa69c
Align async output flow socket names
lexaknyazev Jun 24, 2024
d873db6
Clarify flow/multiGate randomness
lexaknyazev Jun 24, 2024
86409f3
Fix typo
lexaknyazev Jul 22, 2024
4834fcd
Clarify input value sockets for pointer nodes
lexaknyazev Jul 22, 2024
e33a3bc
Clarify configuration value types
lexaknyazev Jul 22, 2024
fbcf696
Clarify pointer nodes for not mutable pointers
lexaknyazev Jul 22, 2024
11339a0
Add active camera pointers
lexaknyazev Jul 22, 2024
220ca40
Clarify pointer nodes validity
lexaknyazev Jul 29, 2024
c77e924
Public specification update
lexaknyazev Jan 13, 2025
45ef4a7
Update GitHub Actions
lexaknyazev Jan 13, 2025
298984e
Address feedback
lexaknyazev Jan 19, 2025
d9aa299
Validation and typo fixes
lexaknyazev Jan 24, 2025
fa4b37c
Add more tips
lexaknyazev Jan 27, 2025
3e8791f
Refine math node definitions
lexaknyazev Jan 27, 2025
02ca19d
Refine vector and matrix nodes
lexaknyazev Feb 3, 2025
a873ea7
Clarify ordering of inline value components
lexaknyazev Feb 10, 2025
82bae09
Clarify that strings are case-sensitive
lexaknyazev Feb 10, 2025
8fb8578
Clarify descriptions of math/clamp and math/saturate
lexaknyazev Feb 10, 2025
be2fa21
Expand flow socket descriptions
lexaknyazev Feb 17, 2025
cdabac1
Fix math/asinh table formatting
lexaknyazev Feb 17, 2025
c2259bf
Add math/matCompose
lexaknyazev Feb 17, 2025
c30626a
Add math/matDecompose
lexaknyazev Feb 24, 2025
111288d
Allow unused input value sockets
lexaknyazev Feb 24, 2025
05e6715
Adjust value socket definitions
lexaknyazev Feb 24, 2025
1ffad04
Tighten validity of configurable nodes
lexaknyazev Feb 24, 2025
1493bcd
Add math/switch
lexaknyazev Mar 3, 2025
518b740
Clarify animation nodes and pointers usage
lexaknyazev Mar 3, 2025
9bc12f7
Add pointer node tips about unsupported pointers
lexaknyazev Mar 3, 2025
d9bfdb0
Clarify animations targeting the same properties
lexaknyazev Mar 10, 2025
5ef1fad
Add variable/setMultiple
lexaknyazev Mar 17, 2025
38bc704
Update pointer template syntax
lexaknyazev Mar 17, 2025
6f6b10d
Clarify effective JSON Pointer generation
lexaknyazev Mar 17, 2025
048bc30
Add debug/log
lexaknyazev Mar 17, 2025
5713a5c
Update math rotate nodes
lexaknyazev Mar 17, 2025
b8e8a5a
Add basic quaternion nodes
lexaknyazev Mar 17, 2025
4f0e47e
Update math/rotate* input sockets
lexaknyazev Mar 17, 2025
72fe934
Update math nodes spelling
lexaknyazev Mar 24, 2025
23bcc6f
Fix typos
lexaknyazev Mar 24, 2025
f6af2bf
Fix table formatting
lexaknyazev Oct 6, 2025
151988b
Support matrix types only for arithmetic operations
lexaknyazev Oct 6, 2025
2c85ad8
Merge variable/set and variable/setMultiple nodes
lexaknyazev Oct 6, 2025
2f4558f
Refine math/inverse, math/matDecompose, and math/quatFromDirections
lexaknyazev Oct 20, 2025
582c2fa
Add math/quatFromUpForward
lexaknyazev Oct 27, 2025
461eb8d
Add math/quatSlerp
lexaknyazev Nov 24, 2025
248c2e3
Tweak Turing completeness language
lexaknyazev Nov 24, 2025
cdc399f
Add math/Tau
lexaknyazev Dec 15, 2025
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
42 changes: 42 additions & 0 deletions extensions/2.0/Khronos/KHR_interactivity/Specification.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1835,6 +1835,48 @@ The graph execution **MAY** be terminated when the amount of pending activations

=== State Manipulation Nodes

==== Custom Variable Access

===== Variable Get

[cols="1h,1,2"]
|===
| Type | `variable/get` | Get a custom variable value
| Configuration
| `int variable` | The custom variable index
| Output value sockets
| `T value` | The custom variable value
|===

This node gets a custom variable value using the variable index provided by the `variable` configuration value. The type `T` is determined by the referenced variable. The variable index **MUST** be non-negative and less than the total number of custom variables, otherwise the node is invalid.

This node has no internal state.

===== Variable Set

[cols="1h,1,2"]
|===
| Type | `variable/set` | Set a custom variable value
| Configuration
| `int variable` | The custom variable index
| Input flow sockets
| `in` | The entry flow into this node
| Input value sockets
| `T value` | The new variable value
| Output flow sockets
| `out` | The flow to be activated after the value is set
|===

This node sets a custom variable value using the variable index provided by the `variable` configuration value and the `value` input value. The type `T` is determined by the referenced variable. The variable index **MUST** be non-negative and less than the total number of custom variables, otherwise the node is invalid.

This node has no internal state.

When the `in` input flow is activated:

1. Evaluate the `value` input value.
2. Set the custom variable with the `variable` configuration value index to the `value` input value.
3. Activate the `out` output flow.

==== Object Model Access

===== Pointer Get
Expand Down