@sarmal/core 0.16.0 → 0.17.1

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 (84) hide show
  1. package/README.md +4 -4
  2. package/dist/auto-init.cjs +145 -89
  3. package/dist/auto-init.cjs.map +1 -1
  4. package/dist/auto-init.js +144 -88
  5. package/dist/auto-init.js.map +1 -1
  6. package/dist/curves/artemis2.cjs +7 -10
  7. package/dist/curves/artemis2.d.cts +1 -1
  8. package/dist/curves/artemis2.d.ts +1 -1
  9. package/dist/curves/artemis2.js +6 -9
  10. package/dist/curves/astroid.cjs +4 -4
  11. package/dist/curves/astroid.d.cts +1 -1
  12. package/dist/curves/astroid.d.ts +1 -1
  13. package/dist/curves/astroid.js +3 -3
  14. package/dist/curves/deltoid.cjs +4 -4
  15. package/dist/curves/deltoid.d.cts +1 -1
  16. package/dist/curves/deltoid.d.ts +1 -1
  17. package/dist/curves/deltoid.js +3 -3
  18. package/dist/curves/epicycloid3.cjs +4 -4
  19. package/dist/curves/epicycloid3.d.cts +1 -1
  20. package/dist/curves/epicycloid3.d.ts +1 -1
  21. package/dist/curves/epicycloid3.js +3 -3
  22. package/dist/curves/epitrochoid7.cjs +5 -5
  23. package/dist/curves/epitrochoid7.d.cts +1 -1
  24. package/dist/curves/epitrochoid7.d.ts +1 -1
  25. package/dist/curves/epitrochoid7.js +4 -4
  26. package/dist/curves/index.cjs +101 -33
  27. package/dist/curves/index.cjs.map +1 -1
  28. package/dist/curves/index.d.cts +29 -21
  29. package/dist/curves/index.d.ts +29 -21
  30. package/dist/curves/index.js +97 -45
  31. package/dist/curves/index.js.map +1 -1
  32. package/dist/curves/lame.cjs +5 -6
  33. package/dist/curves/lame.d.cts +1 -1
  34. package/dist/curves/lame.d.ts +1 -1
  35. package/dist/curves/lame.js +4 -5
  36. package/dist/curves/lissajous32.cjs +4 -4
  37. package/dist/curves/lissajous32.d.cts +1 -1
  38. package/dist/curves/lissajous32.d.ts +1 -1
  39. package/dist/curves/lissajous32.js +3 -3
  40. package/dist/curves/lissajous43.cjs +4 -4
  41. package/dist/curves/lissajous43.d.cts +1 -1
  42. package/dist/curves/lissajous43.d.ts +1 -1
  43. package/dist/curves/lissajous43.js +3 -3
  44. package/dist/curves/rose3.cjs +4 -4
  45. package/dist/curves/rose3.d.cts +1 -1
  46. package/dist/curves/rose3.d.ts +1 -1
  47. package/dist/curves/rose3.js +3 -3
  48. package/dist/curves/rose5.cjs +4 -4
  49. package/dist/curves/rose5.d.cts +1 -1
  50. package/dist/curves/rose5.d.ts +1 -1
  51. package/dist/curves/rose5.js +3 -3
  52. package/dist/curves/rose52.cjs +21 -0
  53. package/dist/curves/rose52.cjs.map +1 -0
  54. package/dist/curves/rose52.d.cts +9 -0
  55. package/dist/curves/rose52.d.ts +9 -0
  56. package/dist/curves/rose52.js +19 -0
  57. package/dist/curves/rose52.js.map +1 -0
  58. package/dist/curves/star.cjs +21 -0
  59. package/dist/curves/star.cjs.map +1 -0
  60. package/dist/curves/star.d.cts +8 -0
  61. package/dist/curves/star.d.ts +8 -0
  62. package/dist/curves/star.js +19 -0
  63. package/dist/curves/star.js.map +1 -0
  64. package/dist/curves/star4.cjs +21 -0
  65. package/dist/curves/star4.cjs.map +1 -0
  66. package/dist/curves/star4.d.cts +9 -0
  67. package/dist/curves/star4.d.ts +9 -0
  68. package/dist/curves/star4.js +19 -0
  69. package/dist/curves/star4.js.map +1 -0
  70. package/dist/curves/star7.cjs +21 -0
  71. package/dist/curves/star7.cjs.map +1 -0
  72. package/dist/curves/star7.d.cts +9 -0
  73. package/dist/curves/star7.d.ts +9 -0
  74. package/dist/curves/star7.js +19 -0
  75. package/dist/curves/star7.js.map +1 -0
  76. package/dist/index.cjs +139 -85
  77. package/dist/index.cjs.map +1 -1
  78. package/dist/index.d.cts +39 -72
  79. package/dist/index.d.ts +39 -72
  80. package/dist/index.js +139 -103
  81. package/dist/index.js.map +1 -1
  82. package/dist/types-BL9HhEmk.d.cts +246 -259
  83. package/dist/types-BL9HhEmk.d.ts +246 -259
  84. package/package.json +1 -1
@@ -1,30 +1,38 @@
1
- import { C as CurveDef } from "../types-BL9HhEmk.js";
2
- export { artemis2 } from "./artemis2.js";
3
- export { astroid } from "./astroid.js";
4
- export { deltoid } from "./deltoid.js";
5
- export { epicycloid3 } from "./epicycloid3.js";
6
- export { epitrochoid7 } from "./epitrochoid7.js";
7
- export { lissajous32 } from "./lissajous32.js";
8
- export { lissajous43 } from "./lissajous43.js";
9
- export { lame } from "./lame.js";
10
- export { rose3 } from "./rose3.js";
11
- export { rose5 } from "./rose5.js";
1
+ import { C as CurveDef } from '../types-BL9HhEmk.js';
2
+ export { artemis2 } from './artemis2.js';
3
+ export { astroid } from './astroid.js';
4
+ export { deltoid } from './deltoid.js';
5
+ export { epicycloid3 } from './epicycloid3.js';
6
+ export { epitrochoid7 } from './epitrochoid7.js';
7
+ export { lissajous32 } from './lissajous32.js';
8
+ export { lissajous43 } from './lissajous43.js';
9
+ export { lame } from './lame.js';
10
+ export { rose3 } from './rose3.js';
11
+ export { rose5 } from './rose5.js';
12
+ export { rose52 } from './rose52.js';
13
+ export { star } from './star.js';
14
+ export { star4 } from './star4.js';
15
+ export { star7 } from './star7.js';
12
16
 
13
17
  /**
14
18
  * Collection of all built-in sarmal curves
15
19
  * Import individual curves for better tree-shaking
16
20
  */
17
21
  declare const curves: {
18
- readonly artemis2: CurveDef;
19
- readonly epitrochoid7: CurveDef;
20
- readonly astroid: CurveDef;
21
- readonly deltoid: CurveDef;
22
- readonly rose5: CurveDef;
23
- readonly rose3: CurveDef;
24
- readonly lissajous32: CurveDef;
25
- readonly lissajous43: CurveDef;
26
- readonly epicycloid3: CurveDef;
27
- readonly lame: CurveDef;
22
+ readonly artemis2: CurveDef;
23
+ readonly epitrochoid7: CurveDef;
24
+ readonly astroid: CurveDef;
25
+ readonly deltoid: CurveDef;
26
+ readonly rose3: CurveDef;
27
+ readonly rose5: CurveDef;
28
+ readonly rose52: CurveDef;
29
+ readonly star: CurveDef;
30
+ readonly star4: CurveDef;
31
+ readonly star7: CurveDef;
32
+ readonly lissajous32: CurveDef;
33
+ readonly lissajous43: CurveDef;
34
+ readonly epicycloid3: CurveDef;
35
+ readonly lame: CurveDef;
28
36
  };
29
37
  type CurveName = keyof typeof curves;
30
38
 
@@ -1,22 +1,19 @@
1
1
  // src/curves/artemis2.ts
2
2
  var TWO_PI = Math.PI * 2;
3
3
  function artemis2Fn(t, _time, _params) {
4
- const a = 0.35,
5
- b = 0.15,
6
- ox = 0.175;
7
- const s = Math.sin(t),
8
- c = Math.cos(t);
4
+ const a = 0.35, b = 0.15, ox = 0.175;
5
+ const s = Math.sin(t), c = Math.cos(t);
9
6
  const denom = 1 + s * s;
10
7
  return {
11
- x: (c * (1 + a * c)) / denom - ox,
12
- y: (s * c * (1 + b * c)) / denom,
8
+ x: c * (1 + a * c) / denom - ox,
9
+ y: s * c * (1 + b * c) / denom
13
10
  };
14
11
  }
15
12
  var artemis2 = {
16
13
  name: "Artemis II",
17
14
  fn: artemis2Fn,
18
15
  period: TWO_PI,
19
- speed: 0.7,
16
+ speed: 0.7
20
17
  };
21
18
 
22
19
  // src/curves/astroid.ts
@@ -26,14 +23,14 @@ function astroidFn(t, _time, _params) {
26
23
  const s = Math.sin(t);
27
24
  return {
28
25
  x: c * c * c,
29
- y: s * s * s,
26
+ y: s * s * s
30
27
  };
31
28
  }
32
29
  var astroid = {
33
30
  name: "Astroid",
34
31
  fn: astroidFn,
35
32
  period: TWO_PI2,
36
- speed: 1.1,
33
+ speed: 1.1
37
34
  };
38
35
 
39
36
  // src/curves/deltoid.ts
@@ -41,14 +38,14 @@ var TWO_PI3 = Math.PI * 2;
41
38
  function deltoidFn(t, _time, _params) {
42
39
  return {
43
40
  x: 2 * Math.cos(t) + Math.cos(2 * t),
44
- y: 2 * Math.sin(t) - Math.sin(2 * t),
41
+ y: 2 * Math.sin(t) - Math.sin(2 * t)
45
42
  };
46
43
  }
47
44
  var deltoid = {
48
45
  name: "Deltoid",
49
46
  fn: deltoidFn,
50
47
  period: TWO_PI3,
51
- speed: 0.9,
48
+ speed: 0.9
52
49
  };
53
50
 
54
51
  // src/curves/epicycloid3.ts
@@ -56,14 +53,14 @@ var TWO_PI4 = Math.PI * 2;
56
53
  function epicycloid3Fn(t, _time, _params) {
57
54
  return {
58
55
  x: 4 * Math.cos(t) - Math.cos(4 * t),
59
- y: 4 * Math.sin(t) - Math.sin(4 * t),
56
+ y: 4 * Math.sin(t) - Math.sin(4 * t)
60
57
  };
61
58
  }
62
59
  var epicycloid3 = {
63
60
  name: "Epicycloid (n=3)",
64
61
  fn: epicycloid3Fn,
65
62
  period: TWO_PI4,
66
- speed: 0.75,
63
+ speed: 0.75
67
64
  };
68
65
 
69
66
  // src/curves/epitrochoid7.ts
@@ -72,14 +69,14 @@ function epitrochoid7Fn(t, _time, _params) {
72
69
  const d = 1 + 0.55 * Math.sin(t * 0.5);
73
70
  return {
74
71
  x: 7 * Math.cos(t) - d * Math.cos(7 * t),
75
- y: 7 * Math.sin(t) - d * Math.sin(7 * t),
72
+ y: 7 * Math.sin(t) - d * Math.sin(7 * t)
76
73
  };
77
74
  }
78
75
  function epitrochoid7SkeletonFn(t) {
79
76
  const d = 1.275;
80
77
  return {
81
78
  x: 7 * Math.cos(t) - d * Math.cos(7 * t),
82
- y: 7 * Math.sin(t) - d * Math.sin(7 * t),
79
+ y: 7 * Math.sin(t) - d * Math.sin(7 * t)
83
80
  };
84
81
  }
85
82
  var epitrochoid7 = {
@@ -87,7 +84,7 @@ var epitrochoid7 = {
87
84
  fn: epitrochoid7Fn,
88
85
  period: TWO_PI5,
89
86
  speed: 1.4,
90
- skeletonFn: epitrochoid7SkeletonFn,
87
+ skeletonFn: epitrochoid7SkeletonFn
91
88
  };
92
89
 
93
90
  // src/curves/lissajous32.ts
@@ -96,7 +93,7 @@ function lissajous32Fn(t, time, _params) {
96
93
  const phi = time * 0.45;
97
94
  return {
98
95
  x: Math.sin(3 * t + phi),
99
- y: Math.sin(2 * t),
96
+ y: Math.sin(2 * t)
100
97
  };
101
98
  }
102
99
  var lissajous32 = {
@@ -104,7 +101,7 @@ var lissajous32 = {
104
101
  fn: lissajous32Fn,
105
102
  period: TWO_PI6,
106
103
  speed: 2,
107
- skeleton: "live",
104
+ skeleton: "live"
108
105
  };
109
106
 
110
107
  // src/curves/lissajous43.ts
@@ -113,7 +110,7 @@ function lissajous43Fn(t, time, _params) {
113
110
  const phi = time * 0.38;
114
111
  return {
115
112
  x: Math.sin(4 * t + phi),
116
- y: Math.sin(3 * t),
113
+ y: Math.sin(3 * t)
117
114
  };
118
115
  }
119
116
  var lissajous43 = {
@@ -121,18 +118,17 @@ var lissajous43 = {
121
118
  fn: lissajous43Fn,
122
119
  period: TWO_PI7,
123
120
  speed: 1.8,
124
- skeleton: "live",
121
+ skeleton: "live"
125
122
  };
126
123
 
127
124
  // src/curves/lame.ts
128
125
  var TWO_PI8 = Math.PI * 2;
129
126
  function lameFn(t, time, _params) {
130
127
  const p = 1.75 + 1.25 * Math.sin(time * 0.48);
131
- const c = Math.cos(t),
132
- s = Math.sin(t);
128
+ const c = Math.cos(t), s = Math.sin(t);
133
129
  return {
134
130
  x: Math.sign(c) * Math.pow(Math.abs(c), p),
135
- y: Math.sign(s) * Math.pow(Math.abs(s), p),
131
+ y: Math.sign(s) * Math.pow(Math.abs(s), p)
136
132
  };
137
133
  }
138
134
  var lame = {
@@ -140,7 +136,7 @@ var lame = {
140
136
  fn: lameFn,
141
137
  period: TWO_PI8,
142
138
  speed: 1,
143
- skeleton: "live",
139
+ skeleton: "live"
144
140
  };
145
141
 
146
142
  // src/curves/rose3.ts
@@ -149,14 +145,14 @@ function rose3Fn(t, _time, _params) {
149
145
  const r = Math.cos(3 * t);
150
146
  return {
151
147
  x: r * Math.cos(t),
152
- y: r * Math.sin(t),
148
+ y: r * Math.sin(t)
153
149
  };
154
150
  }
155
151
  var rose3 = {
156
152
  name: "Rose (n=3)",
157
153
  fn: rose3Fn,
158
154
  period: TWO_PI9,
159
- speed: 1.15,
155
+ speed: 1.15
160
156
  };
161
157
 
162
158
  // src/curves/rose5.ts
@@ -165,14 +161,78 @@ function rose5Fn(t, _time, _params) {
165
161
  const r = Math.cos(5 * t);
166
162
  return {
167
163
  x: r * Math.cos(t),
168
- y: r * Math.sin(t),
164
+ y: r * Math.sin(t)
169
165
  };
170
166
  }
171
167
  var rose5 = {
172
168
  name: "Rose (n=5)",
173
169
  fn: rose5Fn,
174
170
  period: TWO_PI10,
175
- speed: 1,
171
+ speed: 1
172
+ };
173
+
174
+ // src/curves/rose52.ts
175
+ var FOUR_PI = Math.PI * 4;
176
+ function rose52Fn(t, _time, _params) {
177
+ const r = Math.cos(5 / 2 * t);
178
+ return {
179
+ x: r * Math.cos(t),
180
+ y: r * Math.sin(t)
181
+ };
182
+ }
183
+ var rose52 = {
184
+ name: "Rose (n=5/2)",
185
+ fn: rose52Fn,
186
+ period: FOUR_PI,
187
+ speed: 0.8
188
+ };
189
+
190
+ // src/curves/star.ts
191
+ var TWO_PI11 = Math.PI * 2;
192
+ function starFn(t, _time, _params) {
193
+ const r = Math.abs(Math.cos(5 / 2 * t)) + 0.35 * Math.abs(Math.cos(15 / 2 * t)) + 0.15 * Math.abs(Math.cos(25 / 2 * t));
194
+ return {
195
+ x: r * Math.cos(t),
196
+ y: r * Math.sin(t)
197
+ };
198
+ }
199
+ var star = {
200
+ name: "Star",
201
+ fn: starFn,
202
+ period: TWO_PI11,
203
+ speed: 1
204
+ };
205
+
206
+ // src/curves/star4.ts
207
+ var TWO_PI12 = Math.PI * 2;
208
+ function star4Fn(t, _time, _params) {
209
+ const r = Math.abs(Math.cos(2 * t)) + 0.35 * Math.abs(Math.cos(6 * t)) + 0.15 * Math.abs(Math.cos(10 * t));
210
+ return {
211
+ x: r * Math.cos(t),
212
+ y: r * Math.sin(t)
213
+ };
214
+ }
215
+ var star4 = {
216
+ name: "Star (4-arm)",
217
+ fn: star4Fn,
218
+ period: TWO_PI12,
219
+ speed: 1
220
+ };
221
+
222
+ // src/curves/star7.ts
223
+ var TWO_PI13 = Math.PI * 2;
224
+ function star7Fn(t, _time, _params) {
225
+ const r = Math.abs(Math.cos(7 / 2 * t)) + 0.35 * Math.abs(Math.cos(21 / 2 * t)) + 0.15 * Math.abs(Math.cos(35 / 2 * t));
226
+ return {
227
+ x: r * Math.cos(t),
228
+ y: r * Math.sin(t)
229
+ };
230
+ }
231
+ var star7 = {
232
+ name: "Star (7-arm)",
233
+ fn: star7Fn,
234
+ period: TWO_PI13,
235
+ speed: 1
176
236
  };
177
237
 
178
238
  // src/curves/index.ts
@@ -181,26 +241,18 @@ var curves = {
181
241
  epitrochoid7,
182
242
  astroid,
183
243
  deltoid,
184
- rose5,
185
244
  rose3,
245
+ rose5,
246
+ rose52,
247
+ star,
248
+ star4,
249
+ star7,
186
250
  lissajous32,
187
251
  lissajous43,
188
252
  epicycloid3,
189
- lame,
253
+ lame
190
254
  };
191
255
 
192
- export {
193
- artemis2,
194
- astroid,
195
- curves,
196
- deltoid,
197
- epicycloid3,
198
- epitrochoid7,
199
- lame,
200
- lissajous32,
201
- lissajous43,
202
- rose3,
203
- rose5,
204
- };
205
- //# sourceMappingURL=index.js.map
256
+ export { artemis2, astroid, curves, deltoid, epicycloid3, epitrochoid7, lame, lissajous32, lissajous43, rose3, rose5, rose52, star, star4, star7 };
206
257
  //# sourceMappingURL=index.js.map
258
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/curves/artemis2.ts","../../src/curves/astroid.ts","../../src/curves/deltoid.ts","../../src/curves/epicycloid3.ts","../../src/curves/epitrochoid7.ts","../../src/curves/lissajous32.ts","../../src/curves/lissajous43.ts","../../src/curves/lame.ts","../../src/curves/rose3.ts","../../src/curves/rose5.ts","../../src/curves/index.ts"],"names":["TWO_PI"],"mappings":"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","file":"index.js","sourcesContent":["import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\n/**\n * Artemis II free-return lunar trajectory\n * @see https://www.nasa.gov/wp-content/uploads/2025/09/artemis-ii-map-508.pdf\n * a = x-axis asymmetry (widens one lobe),\n * b = y-axis asymmetry,\n * ox = horizontal offset to visually center the shape\n */\nfunction artemis2Fn(t: number, _time: number, _params: Record<string, number>) {\n const a = 0.35,\n b = 0.15,\n ox = 0.175;\n const s = Math.sin(t),\n c = Math.cos(t);\n const denom = 1 + s * s;\n return {\n x: (c * (1 + a * c)) / denom - ox,\n y: (s * c * (1 + b * c)) / denom,\n };\n}\n\n/**\n * Artemis II free-return lunar trajectory curve\n * Traces the path of the Orion spacecraft during the Artemis II mission\n */\nexport const artemis2: CurveDef = {\n name: \"Artemis II\",\n fn: artemis2Fn,\n period: TWO_PI,\n speed: 0.7,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction astroidFn(t: number, _time: number, _params: Record<string, number>) {\n const c = Math.cos(t);\n const s = Math.sin(t);\n return {\n x: c * c * c,\n y: s * s * s,\n };\n}\n\n/**\n * Astroid curve - a 4-cusped hypocycloid\n * Creates a star-like shape with four sharp corners\n */\nexport const astroid: CurveDef = {\n name: \"Astroid\",\n fn: astroidFn,\n period: TWO_PI,\n speed: 1.1,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction deltoidFn(t: number, _time: number, _params: Record<string, number>) {\n return {\n x: 2 * Math.cos(t) + Math.cos(2 * t),\n y: 2 * Math.sin(t) - Math.sin(2 * t),\n };\n}\n\n/**\n * Deltoid curve - a 3-cusped hypocycloid\n * Creates a triangular shape with curved sides\n */\nexport const deltoid: CurveDef = {\n name: \"Deltoid\",\n fn: deltoidFn,\n period: TWO_PI,\n speed: 0.9,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction epicycloid3Fn(t: number, _time: number, _params: Record<string, number>) {\n return {\n x: 4 * Math.cos(t) - Math.cos(4 * t),\n y: 4 * Math.sin(t) - Math.sin(4 * t),\n };\n}\n\n/**\n * Epicycloid with 3 cusps\n * Creates a three-pointed star shape\n */\nexport const epicycloid3: CurveDef = {\n name: \"Epicycloid (n=3)\",\n fn: epicycloid3Fn,\n period: TWO_PI,\n speed: 0.75,\n};\n","import type { CurveDef, Point } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction epitrochoid7Fn(t: number, _time: number, _params: Record<string, number>) {\n const d = 1.0 + 0.55 * Math.sin(t * 0.5);\n return {\n x: 7 * Math.cos(t) - d * Math.cos(7 * t),\n y: 7 * Math.sin(t) - d * Math.sin(7 * t),\n };\n}\n\nfunction epitrochoid7SkeletonFn(t: number): Point {\n // average of the oscillating range for a stable base shape\n const d = 1.275;\n return {\n x: 7 * Math.cos(t) - d * Math.cos(7 * t),\n y: 7 * Math.sin(t) - d * Math.sin(7 * t),\n };\n}\n\n/**\n * Epitrochoid with 7 lobes and dynamic variation\n * Creates a flower-like pattern with undulating petals\n */\nexport const epitrochoid7: CurveDef = {\n name: \"Epitrochoid\",\n fn: epitrochoid7Fn,\n period: TWO_PI,\n speed: 1.4,\n skeletonFn: epitrochoid7SkeletonFn,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction lissajous32Fn(t: number, time: number, _params: Record<string, number>) {\n const phi = time * 0.45;\n return {\n x: Math.sin(3 * t + phi),\n y: Math.sin(2 * t),\n };\n}\n\n/**\n * Lissajous curve with frequency ratio 3:2\n * Creates a figure-eight-like pattern with live skeleton\n */\nexport const lissajous32: CurveDef = {\n name: \"Lissajous 3:2\",\n fn: lissajous32Fn,\n period: TWO_PI,\n speed: 2.0,\n skeleton: \"live\",\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction lissajous43Fn(t: number, time: number, _params: Record<string, number>) {\n const phi = time * 0.38;\n return {\n x: Math.sin(4 * t + phi),\n y: Math.sin(3 * t),\n };\n}\n\n/**\n * Lissajous curve with frequency ratio 4:3\n * Creates a complex interweaving pattern with live skeleton\n */\nexport const lissajous43: CurveDef = {\n name: \"Lissajous 4:3\",\n fn: lissajous43Fn,\n period: TWO_PI,\n speed: 1.8,\n skeleton: \"live\",\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction lameFn(t: number, time: number, _params: Record<string, number>) {\n const p = 1.75 + 1.25 * Math.sin(time * 0.48);\n const c = Math.cos(t),\n s = Math.sin(t);\n return {\n x: Math.sign(c) * Math.pow(Math.abs(c), p),\n y: Math.sign(s) * Math.pow(Math.abs(s), p),\n };\n}\n\n/**\n * Lamé curve (superellipse) with time-varying exponent\n * Creates a squircle-like shape that morphs over time\n */\nexport const lame: CurveDef = {\n name: \"Lamé Curve\",\n fn: lameFn,\n period: TWO_PI,\n speed: 1.0,\n skeleton: \"live\",\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction rose3Fn(t: number, _time: number, _params: Record<string, number>) {\n const r = Math.cos(3 * t);\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * Rose curve with 3 petals\n * Creates a three-petaled flower pattern\n */\nexport const rose3: CurveDef = {\n name: \"Rose (n=3)\",\n fn: rose3Fn,\n period: TWO_PI,\n speed: 1.15,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction rose5Fn(t: number, _time: number, _params: Record<string, number>) {\n const r = Math.cos(5 * t);\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * Rose curve with 5 petals\n * Creates a five-petaled flower pattern\n */\nexport const rose5: CurveDef = {\n name: \"Rose (n=5)\",\n fn: rose5Fn,\n period: TWO_PI,\n speed: 1.0,\n};\n","// Individual curve exports for tree-shaking\nexport { artemis2 } from \"./artemis2\";\nexport { astroid } from \"./astroid\";\nexport { deltoid } from \"./deltoid\";\nexport { epicycloid3 } from \"./epicycloid3\";\nexport { epitrochoid7 } from \"./epitrochoid7\";\nexport { lissajous32 } from \"./lissajous32\";\nexport { lissajous43 } from \"./lissajous43\";\nexport { lame } from \"./lame\";\nexport { rose3 } from \"./rose3\";\nexport { rose5 } from \"./rose5\";\n\n// Bulk export for convenience\n// >> Standard\nimport { rose3 } from \"./rose3\";\nimport { rose5 } from \"./rose5\";\nimport { astroid } from \"./astroid\";\nimport { deltoid } from \"./deltoid\";\nimport { epicycloid3 } from \"./epicycloid3\";\nimport { epitrochoid7 } from \"./epitrochoid7\";\nimport { lissajous32 } from \"./lissajous32\";\nimport { lissajous43 } from \"./lissajous43\";\nimport { lame } from \"./lame\";\n// >> Iconic\nimport { artemis2 } from \"./artemis2\";\n\n/**\n * Collection of all built-in sarmal curves\n * Import individual curves for better tree-shaking\n */\nexport const curves = {\n artemis2,\n epitrochoid7,\n astroid,\n deltoid,\n rose5,\n rose3,\n lissajous32,\n lissajous43,\n epicycloid3,\n lame,\n} as const;\nexport type CurveName = keyof typeof curves;\n"]}
1
+ {"version":3,"sources":["../../src/curves/artemis2.ts","../../src/curves/astroid.ts","../../src/curves/deltoid.ts","../../src/curves/epicycloid3.ts","../../src/curves/epitrochoid7.ts","../../src/curves/lissajous32.ts","../../src/curves/lissajous43.ts","../../src/curves/lame.ts","../../src/curves/rose3.ts","../../src/curves/rose5.ts","../../src/curves/rose52.ts","../../src/curves/star.ts","../../src/curves/star4.ts","../../src/curves/star7.ts","../../src/curves/index.ts"],"names":["TWO_PI"],"mappings":"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","file":"index.js","sourcesContent":["import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\n/**\n * Artemis II free-return lunar trajectory\n * @see https://www.nasa.gov/wp-content/uploads/2025/09/artemis-ii-map-508.pdf\n * a = x-axis asymmetry (widens one lobe),\n * b = y-axis asymmetry,\n * ox = horizontal offset to visually center the shape\n */\nfunction artemis2Fn(t: number, _time: number, _params: Record<string, number>) {\n const a = 0.35,\n b = 0.15,\n ox = 0.175;\n const s = Math.sin(t),\n c = Math.cos(t);\n const denom = 1 + s * s;\n return {\n x: (c * (1 + a * c)) / denom - ox,\n y: (s * c * (1 + b * c)) / denom,\n };\n}\n\n/**\n * Artemis II free-return lunar trajectory curve\n * Traces the path of the Orion spacecraft during the Artemis II mission\n */\nexport const artemis2: CurveDef = {\n name: \"Artemis II\",\n fn: artemis2Fn,\n period: TWO_PI,\n speed: 0.7,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction astroidFn(t: number, _time: number, _params: Record<string, number>) {\n const c = Math.cos(t);\n const s = Math.sin(t);\n return {\n x: c * c * c,\n y: s * s * s,\n };\n}\n\n/**\n * Astroid curve - a 4-cusped hypocycloid\n * Creates a star-like shape with four sharp corners\n */\nexport const astroid: CurveDef = {\n name: \"Astroid\",\n fn: astroidFn,\n period: TWO_PI,\n speed: 1.1,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction deltoidFn(t: number, _time: number, _params: Record<string, number>) {\n return {\n x: 2 * Math.cos(t) + Math.cos(2 * t),\n y: 2 * Math.sin(t) - Math.sin(2 * t),\n };\n}\n\n/**\n * Deltoid curve - a 3-cusped hypocycloid\n * Creates a triangular shape with curved sides\n */\nexport const deltoid: CurveDef = {\n name: \"Deltoid\",\n fn: deltoidFn,\n period: TWO_PI,\n speed: 0.9,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction epicycloid3Fn(t: number, _time: number, _params: Record<string, number>) {\n return {\n x: 4 * Math.cos(t) - Math.cos(4 * t),\n y: 4 * Math.sin(t) - Math.sin(4 * t),\n };\n}\n\n/**\n * Epicycloid with 3 cusps\n * Creates a three-pointed star shape\n */\nexport const epicycloid3: CurveDef = {\n name: \"Epicycloid (n=3)\",\n fn: epicycloid3Fn,\n period: TWO_PI,\n speed: 0.75,\n};\n","import type { CurveDef, Point } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction epitrochoid7Fn(t: number, _time: number, _params: Record<string, number>) {\n const d = 1.0 + 0.55 * Math.sin(t * 0.5);\n return {\n x: 7 * Math.cos(t) - d * Math.cos(7 * t),\n y: 7 * Math.sin(t) - d * Math.sin(7 * t),\n };\n}\n\nfunction epitrochoid7SkeletonFn(t: number): Point {\n // average of the oscillating range for a stable base shape\n const d = 1.275;\n return {\n x: 7 * Math.cos(t) - d * Math.cos(7 * t),\n y: 7 * Math.sin(t) - d * Math.sin(7 * t),\n };\n}\n\n/**\n * Epitrochoid with 7 lobes and dynamic variation\n * Creates a flower-like pattern with undulating petals\n */\nexport const epitrochoid7: CurveDef = {\n name: \"Epitrochoid\",\n fn: epitrochoid7Fn,\n period: TWO_PI,\n speed: 1.4,\n skeletonFn: epitrochoid7SkeletonFn,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction lissajous32Fn(t: number, time: number, _params: Record<string, number>) {\n const phi = time * 0.45;\n return {\n x: Math.sin(3 * t + phi),\n y: Math.sin(2 * t),\n };\n}\n\n/**\n * Lissajous curve with frequency ratio 3:2\n * Creates a figure-eight-like pattern with live skeleton\n */\nexport const lissajous32: CurveDef = {\n name: \"Lissajous 3:2\",\n fn: lissajous32Fn,\n period: TWO_PI,\n speed: 2.0,\n skeleton: \"live\",\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction lissajous43Fn(t: number, time: number, _params: Record<string, number>) {\n const phi = time * 0.38;\n return {\n x: Math.sin(4 * t + phi),\n y: Math.sin(3 * t),\n };\n}\n\n/**\n * Lissajous curve with frequency ratio 4:3\n * Creates a complex interweaving pattern with live skeleton\n */\nexport const lissajous43: CurveDef = {\n name: \"Lissajous 4:3\",\n fn: lissajous43Fn,\n period: TWO_PI,\n speed: 1.8,\n skeleton: \"live\",\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction lameFn(t: number, time: number, _params: Record<string, number>) {\n const p = 1.75 + 1.25 * Math.sin(time * 0.48);\n const c = Math.cos(t),\n s = Math.sin(t);\n return {\n x: Math.sign(c) * Math.pow(Math.abs(c), p),\n y: Math.sign(s) * Math.pow(Math.abs(s), p),\n };\n}\n\n/**\n * Lamé curve (superellipse) with time-varying exponent\n * Creates a squircle-like shape that morphs over time\n */\nexport const lame: CurveDef = {\n name: \"Lamé Curve\",\n fn: lameFn,\n period: TWO_PI,\n speed: 1.0,\n skeleton: \"live\",\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction rose3Fn(t: number, _time: number, _params: Record<string, number>) {\n const r = Math.cos(3 * t);\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * Rose curve with 3 petals\n * Creates a three-petaled flower pattern\n */\nexport const rose3: CurveDef = {\n name: \"Rose (n=3)\",\n fn: rose3Fn,\n period: TWO_PI,\n speed: 1.15,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction rose5Fn(t: number, _time: number, _params: Record<string, number>) {\n const r = Math.cos(5 * t);\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * Rose curve with 5 petals\n * Creates a five-petaled flower pattern\n */\nexport const rose5: CurveDef = {\n name: \"Rose (n=5)\",\n fn: rose5Fn,\n period: TWO_PI,\n speed: 1.0,\n};\n","import type { CurveDef } from \"../types\";\n\nconst FOUR_PI = Math.PI * 4;\n\nfunction rose52Fn(t: number, _time: number, _params: Record<string, number>) {\n const r = Math.cos((5 / 2) * t);\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * Rose curve with n=5/2 that traces 5 petals over two full revolutions\n * The head passes through the center between petals, creating elegant crossing trails.\n */\nexport const rose52: CurveDef = {\n name: \"Rose (n=5/2)\",\n fn: rose52Fn,\n period: FOUR_PI,\n speed: 0.8,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction starFn(t: number, _time: number, _params: Record<string, number>) {\n const r =\n Math.abs(Math.cos((5 / 2) * t)) +\n 0.35 * Math.abs(Math.cos((15 / 2) * t)) +\n 0.15 * Math.abs(Math.cos((25 / 2) * t));\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * 5-pointed star based on Fourier harmonics.\n */\nexport const star: CurveDef = {\n name: \"Star\",\n fn: starFn,\n period: TWO_PI,\n speed: 1.0,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction star4Fn(t: number, _time: number, _params: Record<string, number>) {\n const r =\n Math.abs(Math.cos(2 * t)) +\n 0.35 * Math.abs(Math.cos(6 * t)) +\n 0.15 * Math.abs(Math.cos(10 * t));\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * 4-pointed star based on Fourier harmonics.\n * Same construction as `star` but with base frequency `2t`, producing 4 tips.\n */\nexport const star4: CurveDef = {\n name: \"Star (4-arm)\",\n fn: star4Fn,\n period: TWO_PI,\n speed: 1.0,\n};\n","import type { CurveDef } from \"../types\";\n\nconst TWO_PI = Math.PI * 2;\n\nfunction star7Fn(t: number, _time: number, _params: Record<string, number>) {\n const r =\n Math.abs(Math.cos((7 / 2) * t)) +\n 0.35 * Math.abs(Math.cos((21 / 2) * t)) +\n 0.15 * Math.abs(Math.cos((35 / 2) * t));\n return {\n x: r * Math.cos(t),\n y: r * Math.sin(t),\n };\n}\n\n/**\n * 7-pointed star based on Fourier harmonics.\n * Same construction as `star` but with base frequency `7t/2`, producing 7 tips.\n */\nexport const star7: CurveDef = {\n name: \"Star (7-arm)\",\n fn: star7Fn,\n period: TWO_PI,\n speed: 1.0,\n};\n","// Individual curve exports for tree-shaking\nexport { artemis2 } from \"./artemis2\";\nexport { astroid } from \"./astroid\";\nexport { deltoid } from \"./deltoid\";\nexport { epicycloid3 } from \"./epicycloid3\";\nexport { epitrochoid7 } from \"./epitrochoid7\";\nexport { lissajous32 } from \"./lissajous32\";\nexport { lissajous43 } from \"./lissajous43\";\nexport { lame } from \"./lame\";\nexport { rose3 } from \"./rose3\";\nexport { rose5 } from \"./rose5\";\nexport { rose52 } from \"./rose52\";\nexport { star } from \"./star\";\nexport { star4 } from \"./star4\";\nexport { star7 } from \"./star7\";\n\n// Bulk export for convenience\n// >> Standard\nimport { rose3 } from \"./rose3\";\nimport { rose5 } from \"./rose5\";\nimport { rose52 } from \"./rose52\";\nimport { star } from \"./star\";\nimport { star4 } from \"./star4\";\nimport { star7 } from \"./star7\";\nimport { astroid } from \"./astroid\";\nimport { deltoid } from \"./deltoid\";\nimport { epicycloid3 } from \"./epicycloid3\";\nimport { epitrochoid7 } from \"./epitrochoid7\";\nimport { lissajous32 } from \"./lissajous32\";\nimport { lissajous43 } from \"./lissajous43\";\nimport { lame } from \"./lame\";\n// >> Iconic\nimport { artemis2 } from \"./artemis2\";\n\n/**\n * Collection of all built-in sarmal curves\n * Import individual curves for better tree-shaking\n */\nexport const curves = {\n artemis2,\n epitrochoid7,\n astroid,\n deltoid,\n rose3,\n rose5,\n rose52,\n star,\n star4,\n star7,\n lissajous32,\n lissajous43,\n epicycloid3,\n lame,\n} as const;\nexport type CurveName = keyof typeof curves;\n"]}
@@ -1,14 +1,13 @@
1
- "use strict";
1
+ 'use strict';
2
2
 
3
3
  // src/curves/lame.ts
4
4
  var TWO_PI = Math.PI * 2;
5
5
  function lameFn(t, time, _params) {
6
6
  const p = 1.75 + 1.25 * Math.sin(time * 0.48);
7
- const c = Math.cos(t),
8
- s = Math.sin(t);
7
+ const c = Math.cos(t), s = Math.sin(t);
9
8
  return {
10
9
  x: Math.sign(c) * Math.pow(Math.abs(c), p),
11
- y: Math.sign(s) * Math.pow(Math.abs(s), p),
10
+ y: Math.sign(s) * Math.pow(Math.abs(s), p)
12
11
  };
13
12
  }
14
13
  var lame = {
@@ -16,9 +15,9 @@ var lame = {
16
15
  fn: lameFn,
17
16
  period: TWO_PI,
18
17
  speed: 1,
19
- skeleton: "live",
18
+ skeleton: "live"
20
19
  };
21
20
 
22
21
  exports.lame = lame;
23
22
  //# sourceMappingURL=lame.cjs.map
24
- //# sourceMappingURL=lame.cjs.map
23
+ //# sourceMappingURL=lame.cjs.map
@@ -1,4 +1,4 @@
1
- import { C as CurveDef } from "../types-BL9HhEmk.cjs";
1
+ import { C as CurveDef } from '../types-BL9HhEmk.cjs';
2
2
 
3
3
  /**
4
4
  * Lamé curve (superellipse) with time-varying exponent
@@ -1,4 +1,4 @@
1
- import { C as CurveDef } from "../types-BL9HhEmk.js";
1
+ import { C as CurveDef } from '../types-BL9HhEmk.js';
2
2
 
3
3
  /**
4
4
  * Lamé curve (superellipse) with time-varying exponent
@@ -2,11 +2,10 @@
2
2
  var TWO_PI = Math.PI * 2;
3
3
  function lameFn(t, time, _params) {
4
4
  const p = 1.75 + 1.25 * Math.sin(time * 0.48);
5
- const c = Math.cos(t),
6
- s = Math.sin(t);
5
+ const c = Math.cos(t), s = Math.sin(t);
7
6
  return {
8
7
  x: Math.sign(c) * Math.pow(Math.abs(c), p),
9
- y: Math.sign(s) * Math.pow(Math.abs(s), p),
8
+ y: Math.sign(s) * Math.pow(Math.abs(s), p)
10
9
  };
11
10
  }
12
11
  var lame = {
@@ -14,9 +13,9 @@ var lame = {
14
13
  fn: lameFn,
15
14
  period: TWO_PI,
16
15
  speed: 1,
17
- skeleton: "live",
16
+ skeleton: "live"
18
17
  };
19
18
 
20
19
  export { lame };
21
20
  //# sourceMappingURL=lame.js.map
22
- //# sourceMappingURL=lame.js.map
21
+ //# sourceMappingURL=lame.js.map
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ 'use strict';
2
2
 
3
3
  // src/curves/lissajous32.ts
4
4
  var TWO_PI = Math.PI * 2;
@@ -6,7 +6,7 @@ function lissajous32Fn(t, time, _params) {
6
6
  const phi = time * 0.45;
7
7
  return {
8
8
  x: Math.sin(3 * t + phi),
9
- y: Math.sin(2 * t),
9
+ y: Math.sin(2 * t)
10
10
  };
11
11
  }
12
12
  var lissajous32 = {
@@ -14,9 +14,9 @@ var lissajous32 = {
14
14
  fn: lissajous32Fn,
15
15
  period: TWO_PI,
16
16
  speed: 2,
17
- skeleton: "live",
17
+ skeleton: "live"
18
18
  };
19
19
 
20
20
  exports.lissajous32 = lissajous32;
21
21
  //# sourceMappingURL=lissajous32.cjs.map
22
- //# sourceMappingURL=lissajous32.cjs.map
22
+ //# sourceMappingURL=lissajous32.cjs.map
@@ -1,4 +1,4 @@
1
- import { C as CurveDef } from "../types-BL9HhEmk.cjs";
1
+ import { C as CurveDef } from '../types-BL9HhEmk.cjs';
2
2
 
3
3
  /**
4
4
  * Lissajous curve with frequency ratio 3:2
@@ -1,4 +1,4 @@
1
- import { C as CurveDef } from "../types-BL9HhEmk.js";
1
+ import { C as CurveDef } from '../types-BL9HhEmk.js';
2
2
 
3
3
  /**
4
4
  * Lissajous curve with frequency ratio 3:2
@@ -4,7 +4,7 @@ function lissajous32Fn(t, time, _params) {
4
4
  const phi = time * 0.45;
5
5
  return {
6
6
  x: Math.sin(3 * t + phi),
7
- y: Math.sin(2 * t),
7
+ y: Math.sin(2 * t)
8
8
  };
9
9
  }
10
10
  var lissajous32 = {
@@ -12,9 +12,9 @@ var lissajous32 = {
12
12
  fn: lissajous32Fn,
13
13
  period: TWO_PI,
14
14
  speed: 2,
15
- skeleton: "live",
15
+ skeleton: "live"
16
16
  };
17
17
 
18
18
  export { lissajous32 };
19
19
  //# sourceMappingURL=lissajous32.js.map
20
- //# sourceMappingURL=lissajous32.js.map
20
+ //# sourceMappingURL=lissajous32.js.map
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ 'use strict';
2
2
 
3
3
  // src/curves/lissajous43.ts
4
4
  var TWO_PI = Math.PI * 2;
@@ -6,7 +6,7 @@ function lissajous43Fn(t, time, _params) {
6
6
  const phi = time * 0.38;
7
7
  return {
8
8
  x: Math.sin(4 * t + phi),
9
- y: Math.sin(3 * t),
9
+ y: Math.sin(3 * t)
10
10
  };
11
11
  }
12
12
  var lissajous43 = {
@@ -14,9 +14,9 @@ var lissajous43 = {
14
14
  fn: lissajous43Fn,
15
15
  period: TWO_PI,
16
16
  speed: 1.8,
17
- skeleton: "live",
17
+ skeleton: "live"
18
18
  };
19
19
 
20
20
  exports.lissajous43 = lissajous43;
21
21
  //# sourceMappingURL=lissajous43.cjs.map
22
- //# sourceMappingURL=lissajous43.cjs.map
22
+ //# sourceMappingURL=lissajous43.cjs.map
@@ -1,4 +1,4 @@
1
- import { C as CurveDef } from "../types-BL9HhEmk.cjs";
1
+ import { C as CurveDef } from '../types-BL9HhEmk.cjs';
2
2
 
3
3
  /**
4
4
  * Lissajous curve with frequency ratio 4:3
@@ -1,4 +1,4 @@
1
- import { C as CurveDef } from "../types-BL9HhEmk.js";
1
+ import { C as CurveDef } from '../types-BL9HhEmk.js';
2
2
 
3
3
  /**
4
4
  * Lissajous curve with frequency ratio 4:3
@@ -4,7 +4,7 @@ function lissajous43Fn(t, time, _params) {
4
4
  const phi = time * 0.38;
5
5
  return {
6
6
  x: Math.sin(4 * t + phi),
7
- y: Math.sin(3 * t),
7
+ y: Math.sin(3 * t)
8
8
  };
9
9
  }
10
10
  var lissajous43 = {
@@ -12,9 +12,9 @@ var lissajous43 = {
12
12
  fn: lissajous43Fn,
13
13
  period: TWO_PI,
14
14
  speed: 1.8,
15
- skeleton: "live",
15
+ skeleton: "live"
16
16
  };
17
17
 
18
18
  export { lissajous43 };
19
19
  //# sourceMappingURL=lissajous43.js.map
20
- //# sourceMappingURL=lissajous43.js.map
20
+ //# sourceMappingURL=lissajous43.js.map
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ 'use strict';
2
2
 
3
3
  // src/curves/rose3.ts
4
4
  var TWO_PI = Math.PI * 2;
@@ -6,16 +6,16 @@ function rose3Fn(t, _time, _params) {
6
6
  const r = Math.cos(3 * t);
7
7
  return {
8
8
  x: r * Math.cos(t),
9
- y: r * Math.sin(t),
9
+ y: r * Math.sin(t)
10
10
  };
11
11
  }
12
12
  var rose3 = {
13
13
  name: "Rose (n=3)",
14
14
  fn: rose3Fn,
15
15
  period: TWO_PI,
16
- speed: 1.15,
16
+ speed: 1.15
17
17
  };
18
18
 
19
19
  exports.rose3 = rose3;
20
20
  //# sourceMappingURL=rose3.cjs.map
21
- //# sourceMappingURL=rose3.cjs.map
21
+ //# sourceMappingURL=rose3.cjs.map
@@ -1,4 +1,4 @@
1
- import { C as CurveDef } from "../types-BL9HhEmk.cjs";
1
+ import { C as CurveDef } from '../types-BL9HhEmk.cjs';
2
2
 
3
3
  /**
4
4
  * Rose curve with 3 petals
@@ -1,4 +1,4 @@
1
- import { C as CurveDef } from "../types-BL9HhEmk.js";
1
+ import { C as CurveDef } from '../types-BL9HhEmk.js';
2
2
 
3
3
  /**
4
4
  * Rose curve with 3 petals