@field/cascade 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +63 -0
- package/dist/assets/{CodeEditor-dOrU3aQg.js → CodeEditor-BLpahZw6.js} +7 -7
- package/dist/assets/{CodePanel-Bqy85qen.js → CodePanel-BqYKqBMH.js} +2 -2
- package/dist/assets/{CustomNodeDialog-DkZlOgjs.js → CustomNodeDialog-CYr9y7dG.js} +1 -1
- package/dist/assets/{ProjectSettings-D192mr6g.js → ProjectSettings-CnYfrkKh.js} +2 -2
- package/dist/assets/{SettingsDialog-BTeeIE3T.js → SettingsDialog-mSS6KUyS.js} +1 -1
- package/dist/assets/{VersionHistoryDialog-TZQKkn3Y.js → VersionHistoryDialog-DZuwNG6s.js} +1 -1
- package/dist/assets/{core-DwbcGL0o.js → core-BOGrwBxU.js} +2 -2
- package/dist/assets/{cssMode-Dcjn356x.js → cssMode-0Z3pyDOW.js} +1 -1
- package/dist/assets/definitions-Cckh442l.js +1 -0
- package/dist/assets/{editor.api-D7Q83606.js → editor.api-D-_7pnnj.js} +1 -1
- package/dist/assets/{freemarker2-DCCiHlV6.js → freemarker2-DE0JRkF7.js} +1 -1
- package/dist/assets/geo-DcAVygkw.js +1 -0
- package/dist/assets/{handlebars-BCxC8xu1.js → handlebars-B_Shirzj.js} +1 -1
- package/dist/assets/{html-COwepzSd.js → html-DI5Qj4gd.js} +1 -1
- package/dist/assets/{htmlMode-Dpg7H0rx.js → htmlMode-CkHZy0mE.js} +1 -1
- package/dist/assets/{image-CMfMMxlC.js → image-B6RU2frM.js} +3 -3
- package/dist/assets/{index-De1cIZ9N.js → index-DTyzl6YV.js} +36 -36
- package/dist/assets/{javascript-CSwWxfLr.js → javascript-zxQfbzS_.js} +1 -1
- package/dist/assets/{jsonMode-BXRriTpj.js → jsonMode-DSQ0uLqA.js} +1 -1
- package/dist/assets/{liquid-Cmkfyogc.js → liquid-0zs2oOuA.js} +1 -1
- package/dist/assets/{lspLanguageFeatures-xH9JbZGO.js → lspLanguageFeatures-7VWaq5lc.js} +1 -1
- package/dist/assets/math-BA6juJD7.js +1 -0
- package/dist/assets/{mdx-BzrNjNvK.js → mdx-BFKlF5Xh.js} +1 -1
- package/dist/assets/pop-Bkzzmp57.js +1 -0
- package/dist/assets/{python-D4E9jbx7.js → python-BgexpWZh.js} +1 -1
- package/dist/assets/{razor-B3x9cIEM.js → razor-E1kWyvkT.js} +1 -1
- package/dist/assets/{tsMode-dhQYPNMZ.js → tsMode-CTmJLLW5.js} +1 -1
- package/dist/assets/{typescript-CITkDxAE.js → typescript-BheZLRDM.js} +1 -1
- package/dist/assets/{workers-BQvF9bbO.js → workers-KIoho05H.js} +1 -1
- package/dist/assets/{xml-DvHlU3A8.js → xml-DaVLg9zI.js} +1 -1
- package/dist/assets/{yaml-uznsLgs8.js → yaml-D6XGTfOj.js} +1 -1
- package/dist/cli/index.js +632 -289
- package/dist/index.html +1 -1
- package/dist/runtime/builtins/index.js +2 -0
- package/dist/runtime/builtins/math/definitions.d.ts +845 -0
- package/dist/runtime/builtins/math/definitions.js +285 -0
- package/dist/runtime/builtins/math/index.d.ts +2 -0
- package/dist/runtime/builtins/math/index.js +2 -0
- package/doc/NODE_REFERENCE.md +115 -0
- package/package.json +1 -1
- package/dist/assets/definitions-C_SY6Bhg.js +0 -1
- package/dist/assets/geo-CT-wtvaE.js +0 -1
- package/dist/assets/pop-BdKEHslJ.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,69 @@
|
|
|
2
2
|
|
|
3
3
|
Notable changes to Cascade. Newest first.
|
|
4
4
|
|
|
5
|
+
## 0.6.0 — 2026-09-10
|
|
6
|
+
|
|
7
|
+
All three items from a user's first day with the npm package.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **`cascade.math.*` — arithmetic as nodes.** `Binary` (add, subtract,
|
|
12
|
+
multiply, divide, power, modulo, min, max, atan2), `Unary` (abs, negate,
|
|
13
|
+
floor, ceil, round, sqrt, sign, sin, cos, tan, asin, acos, exp, log, radians,
|
|
14
|
+
degrees, fract), `Clamp`, `Mix` and `Compare`.
|
|
15
|
+
|
|
16
|
+
The maths already existed as expressions — every parameter field takes
|
|
17
|
+
`sin($T)`, `clamp`, `lerp`, `fit`. So these are not a second way to compute
|
|
18
|
+
but a second way to *place* a computation: an expression is private to one
|
|
19
|
+
parameter, and a value you want to look at, reuse, or wire into three places
|
|
20
|
+
has to be a node.
|
|
21
|
+
|
|
22
|
+
Grouped with an operation to pick rather than one node per operation, which
|
|
23
|
+
is Houdini's form and would be about twenty-five nodes. Inputs are `any` and
|
|
24
|
+
every operation is component-wise with scalar broadcast, so multiplying a
|
|
25
|
+
`vec2` by a scalar and adding two `vec3`s both work. There is no `Fit`:
|
|
26
|
+
`cascade.core.Remap` already is one.
|
|
27
|
+
|
|
28
|
+
Division and modulo by zero give zero rather than `Infinity`, and `sqrt` of a
|
|
29
|
+
negative gives zero rather than `NaN` — a non-finite number flows into a
|
|
30
|
+
position and the geometry silently vanishes, which is a blank frame with no
|
|
31
|
+
error anywhere.
|
|
32
|
+
|
|
33
|
+
- **Connections can be made backwards.** A drag or click may begin on an
|
|
34
|
+
unconnected input pin and end on an output; the endpoints are normalised
|
|
35
|
+
before the connection is built, so variadic fan-in, the `Input` node a subnet
|
|
36
|
+
auto-creates, and multi-select fan-in all behave identically in either
|
|
37
|
+
direction. A *connected* input keeps the disconnect gesture.
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- **The node search panel no longer closes when the search narrows to one
|
|
42
|
+
result.** The pointer had not left it — the panel shrank away from underneath
|
|
43
|
+
a stationary cursor, which fired `mouseleave` at the exact moment you were
|
|
44
|
+
about to click the thing you searched for. Leave-to-close now applies only
|
|
45
|
+
while the panel is being browsed by hover, not once you have typed.
|
|
46
|
+
|
|
47
|
+
## 0.5.2 — 2026-09-10
|
|
48
|
+
|
|
49
|
+
### Fixed
|
|
50
|
+
|
|
51
|
+
- **The load warm-up no longer reports false errors.** A node's ports are
|
|
52
|
+
created by running its code, so on load a connection into a node that has
|
|
53
|
+
never executed has no port to attach to, and Studio cooks the graph
|
|
54
|
+
repeatedly until the wiring settles. Early passes reached nodes whose
|
|
55
|
+
upstream edge had not bound, those nodes ran with `undefined` on that input
|
|
56
|
+
and threw their own "nothing wired to my image input", and a later pass then
|
|
57
|
+
succeeded — leaving a correct graph and a log full of errors that never
|
|
58
|
+
cleared. Reported against the `volume-field` sketch by someone who had
|
|
59
|
+
verified from the cache files that the render was in fact right.
|
|
60
|
+
|
|
61
|
+
The scheduler now distinguishes an input that is *pending* from one that is
|
|
62
|
+
*missing*: a node with an unbound inbound edge is held back as not-ready
|
|
63
|
+
rather than cooked and failed. Once the warm-up stops making progress the
|
|
64
|
+
graph says so, and an edge that still has not bound is treated as unbindable
|
|
65
|
+
— so a genuinely unwired node errors as it always did, rather than silently
|
|
66
|
+
never cooking.
|
|
67
|
+
|
|
5
68
|
## 0.5.1 — 2026-09-09
|
|
6
69
|
|
|
7
70
|
- Prepared the 0.5 browser-player release for npm, with updated README and
|