@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.
Files changed (44) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/assets/{CodeEditor-dOrU3aQg.js → CodeEditor-BLpahZw6.js} +7 -7
  3. package/dist/assets/{CodePanel-Bqy85qen.js → CodePanel-BqYKqBMH.js} +2 -2
  4. package/dist/assets/{CustomNodeDialog-DkZlOgjs.js → CustomNodeDialog-CYr9y7dG.js} +1 -1
  5. package/dist/assets/{ProjectSettings-D192mr6g.js → ProjectSettings-CnYfrkKh.js} +2 -2
  6. package/dist/assets/{SettingsDialog-BTeeIE3T.js → SettingsDialog-mSS6KUyS.js} +1 -1
  7. package/dist/assets/{VersionHistoryDialog-TZQKkn3Y.js → VersionHistoryDialog-DZuwNG6s.js} +1 -1
  8. package/dist/assets/{core-DwbcGL0o.js → core-BOGrwBxU.js} +2 -2
  9. package/dist/assets/{cssMode-Dcjn356x.js → cssMode-0Z3pyDOW.js} +1 -1
  10. package/dist/assets/definitions-Cckh442l.js +1 -0
  11. package/dist/assets/{editor.api-D7Q83606.js → editor.api-D-_7pnnj.js} +1 -1
  12. package/dist/assets/{freemarker2-DCCiHlV6.js → freemarker2-DE0JRkF7.js} +1 -1
  13. package/dist/assets/geo-DcAVygkw.js +1 -0
  14. package/dist/assets/{handlebars-BCxC8xu1.js → handlebars-B_Shirzj.js} +1 -1
  15. package/dist/assets/{html-COwepzSd.js → html-DI5Qj4gd.js} +1 -1
  16. package/dist/assets/{htmlMode-Dpg7H0rx.js → htmlMode-CkHZy0mE.js} +1 -1
  17. package/dist/assets/{image-CMfMMxlC.js → image-B6RU2frM.js} +3 -3
  18. package/dist/assets/{index-De1cIZ9N.js → index-DTyzl6YV.js} +36 -36
  19. package/dist/assets/{javascript-CSwWxfLr.js → javascript-zxQfbzS_.js} +1 -1
  20. package/dist/assets/{jsonMode-BXRriTpj.js → jsonMode-DSQ0uLqA.js} +1 -1
  21. package/dist/assets/{liquid-Cmkfyogc.js → liquid-0zs2oOuA.js} +1 -1
  22. package/dist/assets/{lspLanguageFeatures-xH9JbZGO.js → lspLanguageFeatures-7VWaq5lc.js} +1 -1
  23. package/dist/assets/math-BA6juJD7.js +1 -0
  24. package/dist/assets/{mdx-BzrNjNvK.js → mdx-BFKlF5Xh.js} +1 -1
  25. package/dist/assets/pop-Bkzzmp57.js +1 -0
  26. package/dist/assets/{python-D4E9jbx7.js → python-BgexpWZh.js} +1 -1
  27. package/dist/assets/{razor-B3x9cIEM.js → razor-E1kWyvkT.js} +1 -1
  28. package/dist/assets/{tsMode-dhQYPNMZ.js → tsMode-CTmJLLW5.js} +1 -1
  29. package/dist/assets/{typescript-CITkDxAE.js → typescript-BheZLRDM.js} +1 -1
  30. package/dist/assets/{workers-BQvF9bbO.js → workers-KIoho05H.js} +1 -1
  31. package/dist/assets/{xml-DvHlU3A8.js → xml-DaVLg9zI.js} +1 -1
  32. package/dist/assets/{yaml-uznsLgs8.js → yaml-D6XGTfOj.js} +1 -1
  33. package/dist/cli/index.js +632 -289
  34. package/dist/index.html +1 -1
  35. package/dist/runtime/builtins/index.js +2 -0
  36. package/dist/runtime/builtins/math/definitions.d.ts +845 -0
  37. package/dist/runtime/builtins/math/definitions.js +285 -0
  38. package/dist/runtime/builtins/math/index.d.ts +2 -0
  39. package/dist/runtime/builtins/math/index.js +2 -0
  40. package/doc/NODE_REFERENCE.md +115 -0
  41. package/package.json +1 -1
  42. package/dist/assets/definitions-C_SY6Bhg.js +0 -1
  43. package/dist/assets/geo-CT-wtvaE.js +0 -1
  44. 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