@cazala/party 0.2.1 → 0.4.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.
@@ -19,6 +19,22 @@ export interface IParticle {
19
19
  a: number;
20
20
  };
21
21
  }
22
+ export type ParticleQuery = {
23
+ index: number;
24
+ position: {
25
+ x: number;
26
+ y: number;
27
+ };
28
+ size: number;
29
+ mass: number;
30
+ };
31
+ export type GetParticlesInRadiusOptions = {
32
+ maxResults?: number;
33
+ };
34
+ export type GetParticlesInRadiusResult = {
35
+ particles: ParticleQuery[];
36
+ truncated: boolean;
37
+ };
22
38
  export interface IEngine {
23
39
  initialize(): Promise<void>;
24
40
  play(): void;
@@ -39,10 +55,31 @@ export interface IEngine {
39
55
  };
40
56
  setZoom(z: number): void;
41
57
  getZoom(): number;
42
- addParticle(p: IParticle): void;
58
+ addParticle(p: IParticle): number;
59
+ /**
60
+ * Set a particle at an existing index without reallocating the whole list.
61
+ * Intended for tool/undo operations; avoids full-scene readbacks on WebGPU.
62
+ */
63
+ setParticle(index: number, p: IParticle): void;
64
+ /**
65
+ * Fast path to "remove" (mass=0) or pin/unpin (mass<0 / mass>0) without
66
+ * fetching all particles.
67
+ */
68
+ setParticleMass(index: number, mass: number): void;
43
69
  setParticles(p: IParticle[]): void;
44
70
  getParticles(): Promise<IParticle[]>;
45
71
  getParticle(index: number): Promise<IParticle>;
72
+ /**
73
+ * Fetch particles near a region for local occupancy queries (Brush/Pin/Remove tools).
74
+ * Implementations should avoid full-scene GPU->CPU readbacks when possible.
75
+ *
76
+ * Semantics: returns particles whose discs intersect the query circle, i.e.
77
+ * `distance(center, p.position) <= radius + p.size`.
78
+ */
79
+ getParticlesInRadius(center: {
80
+ x: number;
81
+ y: number;
82
+ }, radius: number, opts?: GetParticlesInRadiusOptions): Promise<GetParticlesInRadiusResult>;
46
83
  clear(): void;
47
84
  getCount(): number;
48
85
  getFPS(): number;
@@ -138,10 +175,16 @@ export declare abstract class AbstractEngine implements IEngine {
138
175
  abstract initialize(): Promise<void>;
139
176
  abstract destroy(): Promise<void>;
140
177
  abstract setSize(width: number, height: number): void;
141
- abstract addParticle(p: IParticle): void;
178
+ abstract addParticle(p: IParticle): number;
179
+ abstract setParticle(index: number, p: IParticle): void;
180
+ abstract setParticleMass(index: number, mass: number): void;
142
181
  abstract setParticles(p: IParticle[]): void;
143
182
  abstract getParticles(): Promise<IParticle[]>;
144
183
  abstract getParticle(index: number): Promise<IParticle>;
184
+ abstract getParticlesInRadius(center: {
185
+ x: number;
186
+ y: number;
187
+ }, radius: number, opts?: GetParticlesInRadiusOptions): Promise<GetParticlesInRadiusResult>;
145
188
  abstract clear(): void;
146
189
  abstract getCount(): number;
147
190
  protected abstract startAnimationLoop(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAExE,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;CACH;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,IAAI,IAAI,CAAC;IACf,SAAS,IAAI,OAAO,CAAC;IACrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,SAAS,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,IAAI,MAAM,CAAC;IAClB,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACnC,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACrC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/C,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,IAAI,MAAM,CAAC;IACnB,MAAM,IAAI,MAAM,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAG/D,aAAa,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,aAAa,CAAC,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3E,WAAW,IAAI,MAAM,CAAC;IACtB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,IAAI,MAAM,CAAC;IAC1B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,IAAI,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5C,sBAAsB,IAAI,MAAM,CAAC;IACjC,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAG5C,aAAa,CAAC,MAAM,EAAE;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,oBAAoB,CAAC;KAChC,GAAG,MAAM,CAAC;IACX,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,IAAI,CAAC;IACR,sBAAsB,CACpB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI,CAAC;IACR,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9D,aAAa,CACX,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAEf;QACE,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;KACjB,GACD,SAAS,CAAC;IACd,gBAAgB,IAAI,IAAI,CAAC;IACzB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,IAAI,CAAC;IACR,wBAAwB,CACtB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,IAAI,CAAC;IACR,kBAAkB,CAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GACxB,OAAO,CAAC;IACX,4BAA4B,IAAI,MAAM,CAAC;IACvC,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACrD;AAED,8BAAsB,cAAe,YAAW,OAAO;IACrD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAS;IACnC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAK;IAC/B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAM;IACnC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAQ;IACtC,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,UAAU,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7C,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IACrB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAK;IAC9B,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;gBAEnC,OAAO,EAAE;QACnB,MAAM,EAAE,iBAAiB,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;IAsBD,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IACrD,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IACxC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI;IAC3C,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IACvD,QAAQ,CAAC,KAAK,IAAI,IAAI;IACtB,QAAQ,CAAC,QAAQ,IAAI,MAAM;IAG3B,SAAS,CAAC,QAAQ,CAAC,kBAAkB,IAAI,IAAI;IAC7C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,IAAI;IAG5C,IAAI,IAAI,IAAI;IAOZ,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAKZ,MAAM,IAAI,IAAI;IAId,SAAS,IAAI,OAAO;IAIpB,OAAO,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAI5C,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKrC,SAAS,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;IAIrC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKxB,OAAO,IAAI,MAAM;IAIjB,MAAM,IAAI,MAAM;IAKhB,aAAa,CAAC,MAAM,EAAE;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,oBAAoB,CAAC;KAChC,GAAG,MAAM;IAGV,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAG7D,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,IAAI;IAOP,sBAAsB,CACpB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI;IAQP,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAG7D,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAGnD,gBAAgB,IAAI,IAAI;IAGxB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAGhD,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,IAAI;IAOP,wBAAwB,CACtB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,IAAI;IAOP,kBAAkB,CAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GACxB,OAAO;IASV,4BAA4B,IAAI,MAAM;IAItC,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInD,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAahD,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI;IAkB9D,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAarC,SAAS,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK7C,SAAS,CAAC,YAAY,IAAI,MAAM;IAQhC,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAKzC,aAAa,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;IAI/D,aAAa,CAAC,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAK1E,WAAW,IAAI,MAAM;IAIrB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ/B,eAAe,IAAI,MAAM;IAIzB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQnC,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAQ3C,sBAAsB,IAAI,MAAM;IAIhC,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAShD,UAAU,IAAI,MAAM;IAIpB,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3C,SAAS,CAAC,YAAY,IAAI,IAAI;IAK9B,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAIrC,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAInC,SAAS,CAAC,4BAA4B,IAAI,IAAI;IAI9C,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAIvC,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAIvC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;CAGzD"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../../src/modules/forces/boundary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,MAAM,EACN,KAAK,gBAAgB,EACrB,UAAU,EACV,aAAa,EACb,QAAQ,EACT,MAAM,cAAc,CAAC;AAGtB,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/D,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,qBAAqB,EAAE,YAAuB,CAAC;AAC5D,eAAO,MAAM,+BAA+B,IAAM,CAAC;AACnD,eAAO,MAAM,+BAA+B,IAAM,CAAC;AAEnD,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,qBAAa,QAAS,SAAQ,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,MAAM;;;;;;MAMJ;gBAEC,IAAI,CAAC,EAAE;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,YAAY,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;IAeD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAIjC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,cAAc,IAAI,MAAM;IAGxB,WAAW,IAAI,MAAM;IAGrB,OAAO,IAAI,MAAM;IAGjB,gBAAgB,IAAI,MAAM;IAG1B,gBAAgB,IAAI,MAAM;IAI1B,OAAO,CAAC,aAAa;IAerB,MAAM,IAAI,gBAAgB,CAAC,cAAc,CAAC;IAsH1C,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC;CAsHrC"}
1
+ {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../../src/modules/forces/boundary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,MAAM,EACN,KAAK,gBAAgB,EACrB,UAAU,EACV,aAAa,EACb,QAAQ,EACT,MAAM,cAAc,CAAC;AAGtB,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/D,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,qBAAqB,EAAE,YAAuB,CAAC;AAC5D,eAAO,MAAM,+BAA+B,IAAM,CAAC;AACnD,eAAO,MAAM,+BAA+B,IAAM,CAAC;AAEnD,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,qBAAa,QAAS,SAAQ,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,MAAM;;;;;;MAMJ;gBAEC,IAAI,CAAC,EAAE;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,YAAY,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;IAeD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAIjC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,cAAc,IAAI,MAAM;IAGxB,WAAW,IAAI,MAAM;IAGrB,OAAO,IAAI,MAAM;IAGjB,gBAAgB,IAAI,MAAM;IAG1B,gBAAgB,IAAI,MAAM;IAI1B,OAAO,CAAC,aAAa;IAerB,MAAM,IAAI,gBAAgB,CAAC,cAAc,CAAC;IA6H1C,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC;CA8HrC"}
@@ -1,10 +1,11 @@
1
- import { AbstractEngine, IParticle } from "../../interfaces";
1
+ import { AbstractEngine, GetParticlesInRadiusOptions, GetParticlesInRadiusResult, IParticle } from "../../interfaces";
2
2
  import { Module } from "../../module";
3
3
  export declare class CPUEngine extends AbstractEngine {
4
4
  private particles;
5
5
  private canvas;
6
6
  private grid;
7
7
  private animationId;
8
+ private particleIdToIndex;
8
9
  constructor(options: {
9
10
  canvas: HTMLCanvasElement;
10
11
  forces: Module[];
@@ -41,9 +42,15 @@ export declare class CPUEngine extends AbstractEngine {
41
42
  protected getEffectiveCount(): number;
42
43
  setSize(width: number, height: number): void;
43
44
  setParticles(particle: IParticle[]): void;
44
- addParticle(particle: IParticle): void;
45
+ addParticle(particle: IParticle): number;
46
+ setParticle(index: number, p: IParticle): void;
47
+ setParticleMass(index: number, mass: number): void;
45
48
  getParticles(): Promise<IParticle[]>;
46
49
  getParticle(index: number): Promise<IParticle>;
50
+ getParticlesInRadius(center: {
51
+ x: number;
52
+ y: number;
53
+ }, radius: number, opts?: GetParticlesInRadiusOptions): Promise<GetParticlesInRadiusResult>;
47
54
  destroy(): Promise<void>;
48
55
  protected onClearColorChanged(): void;
49
56
  protected onCellSizeChanged(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cpu/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,MAAM,EAKP,MAAM,cAAc,CAAC;AAKtB,qBAAa,SAAU,SAAQ,cAAc;IAC3C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,WAAW,CAAuB;gBAE9B,OAAO,EAAE;QACnB,MAAM,EAAE,iBAAiB,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAUD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAQpC,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAOnC;;;OAGG;IACI,WAAW,IAAI,IAAI;IAI1B;;;;;;;;OAQG;IACI,KAAK,IAAI,IAAI;IAapB,KAAK,IAAI,IAAI;IAQb,QAAQ,IAAI,MAAM;IAQlB,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAKrC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5C,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI;IASzC,WAAW,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAMtC,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAIpC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAKrC,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAKnC,SAAS,CAAC,4BAA4B,IAAI,IAAI;IAK9C,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAIvC,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAIvC,OAAO,CAAC,OAAO,CAab;IAEF,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,YAAY;IAoCpB,OAAO,CAAC,MAAM;IAwOd,OAAO,CAAC,iBAAiB;IAwCzB,OAAO,CAAC,MAAM;CAgHf"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cpu/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,0BAA0B,EAC1B,SAAS,EAEV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,MAAM,EAKP,MAAM,cAAc,CAAC;AAKtB,qBAAa,SAAU,SAAQ,cAAc;IAC3C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,iBAAiB,CAAkC;gBAE/C,OAAO,EAAE;QACnB,MAAM,EAAE,iBAAiB,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAUD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAQpC,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAOnC;;;OAGG;IACI,WAAW,IAAI,IAAI;IAI1B;;;;;;;;OAQG;IACI,KAAK,IAAI,IAAI;IAapB,KAAK,IAAI,IAAI;IASb,QAAQ,IAAI,MAAM;IAQlB,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAKrC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5C,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI;IAUzC,WAAW,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM;IAUxC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,GAAG,IAAI;IAQ9C,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMlD,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAIpC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIxC,oBAAoB,CACxB,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAChC,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,2BAA2B,GACjC,OAAO,CAAC,0BAA0B,CAAC;IAyCtC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASxB,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAKrC,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAKnC,SAAS,CAAC,4BAA4B,IAAI,IAAI;IAK9C,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAIvC,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAIvC,OAAO,CAAC,OAAO,CAab;IAEF,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,YAAY;IAoCpB,OAAO,CAAC,MAAM;IA0Od,OAAO,CAAC,iBAAiB;IAwCzB,OAAO,CAAC,MAAM;CAgHf"}
@@ -15,7 +15,7 @@
15
15
  * - Present the final texture to the canvas, tracking an EMA FPS estimate
16
16
  */
17
17
  import type { Module } from "../../module";
18
- import { AbstractEngine, IParticle } from "../../interfaces";
18
+ import { AbstractEngine, GetParticlesInRadiusOptions, GetParticlesInRadiusResult, IParticle } from "../../interfaces";
19
19
  export declare class WebGPUEngine extends AbstractEngine {
20
20
  private resources;
21
21
  private particles;
@@ -29,6 +29,7 @@ export declare class WebGPUEngine extends AbstractEngine {
29
29
  private shouldSyncNextTick;
30
30
  private animationId;
31
31
  private didSwapchainWarmup;
32
+ private localQuery;
32
33
  constructor(options: {
33
34
  canvas: HTMLCanvasElement;
34
35
  forces: Module[];
@@ -52,13 +53,19 @@ export declare class WebGPUEngine extends AbstractEngine {
52
53
  setSize(width: number, height: number): void;
53
54
  protected onViewChanged(): void;
54
55
  setParticles(p: IParticle[]): void;
55
- addParticle(p: IParticle): Promise<void>;
56
+ addParticle(p: IParticle): number;
57
+ setParticle(index: number, p: IParticle): void;
58
+ setParticleMass(index: number, mass: number): void;
56
59
  /**
57
60
  * Forces GPU-to-CPU synchronization and returns current particle data.
58
61
  * Use this when you need the most up-to-date particle positions from GPU.
59
62
  */
60
63
  getParticles(): Promise<IParticle[]>;
61
64
  getParticle(index: number): Promise<IParticle>;
65
+ getParticlesInRadius(center: {
66
+ x: number;
67
+ y: number;
68
+ }, radius: number, opts?: GetParticlesInRadiusOptions): Promise<GetParticlesInRadiusResult>;
62
69
  getCount(): number;
63
70
  clear(): void;
64
71
  private animate;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/runtimes/webgpu/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAM7D,qBAAa,YAAa,SAAQ,cAAc;IAC9C,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,kBAAkB,CAAkB;gBAEhC,OAAO,EAAE;QACnB,MAAM,EAAE,iBAAiB,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;IAkBK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiDjC,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAQpC,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAK7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAa5C,SAAS,CAAC,aAAa,IAAI,IAAI;IAQ/B,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI;IAU5B,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAKpC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAKpD,QAAQ,IAAI,MAAM;IAQlB,KAAK,IAAI,IAAI;IAUb,OAAO,CAAC,OAAO,CA2Eb;IAEF,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;YAkBR,uBAAuB;IA2BrC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAUhD,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAKzC,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAKrC,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAenC,SAAS,CAAC,4BAA4B,IAAI,IAAI;IAK9C,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAIvC,SAAS,CAAC,qBAAqB,IAAI,IAAI;CAGxC"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/runtimes/webgpu/engine.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,11 @@ export declare class GPUResources {
76
76
  * Reads particle data back from GPU to CPU
77
77
  */
78
78
  readParticleBuffer(sizeFloats: number): Promise<Float32Array>;
79
+ /**
80
+ * Read an arbitrary GPUBuffer (storage/uniform) into an ArrayBuffer.
81
+ * Caller is responsible for interpreting the bytes.
82
+ */
83
+ readBuffer(buffer: GPUBuffer, sizeBytes: number): Promise<ArrayBuffer>;
79
84
  createModuleUniformBuffers(layouts: ModuleUniformLayout[]): void;
80
85
  createRenderUniformBuffer(byteSize: number): void;
81
86
  writeRenderUniforms(snapshot: ViewSnapshot): void;
@@ -1 +1 @@
1
- {"version":3,"file":"gpu-resources.d.ts","sourceRoot":"","sources":["../../../src/runtimes/webgpu/gpu-resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gpu-resources.d.ts","sourceRoot":"","sources":["../../../src/runtimes/webgpu/gpu-resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { GetParticlesInRadiusOptions, GetParticlesInRadiusResult } from "../../interfaces";
2
+ import type { GPUResources } from "./gpu-resources";
3
+ /**
4
+ * LocalQuery
5
+ *
6
+ * A small WebGPU compute pipeline used to query a bounded set of particles
7
+ * in a region without doing a full GPU→CPU readback of the entire particle buffer.
8
+ *
9
+ * This is used by tool-like features (brush/pin/remove) that need local occupancy.
10
+ */
11
+ export declare class LocalQuery {
12
+ private pipeline;
13
+ private uniform;
14
+ private count;
15
+ private out;
16
+ private outIdx;
17
+ private capacity;
18
+ private device;
19
+ dispose(): void;
20
+ private ensure;
21
+ getParticlesInRadius(resources: GPUResources, center: {
22
+ x: number;
23
+ y: number;
24
+ }, radius: number, particleCount: number, opts?: GetParticlesInRadiusOptions): Promise<GetParticlesInRadiusResult>;
25
+ }
26
+ //# sourceMappingURL=local-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-query.d.ts","sourceRoot":"","sources":["../../../src/runtimes/webgpu/local-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAE3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;GAOG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,MAAM,CAA0B;IAExC,OAAO,IAAI,IAAI;IAcf,OAAO,CAAC,MAAM;IA8FR,oBAAoB,CACxB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAChC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,2BAA2B,GACjC,OAAO,CAAC,0BAA0B,CAAC;CAkEvC"}
@@ -20,11 +20,22 @@ export declare class ParticleStore {
20
20
  private count;
21
21
  constructor(maxParticles: number, floatsPerParticle?: number);
22
22
  setParticles(list: IParticle[]): void;
23
- addParticle(p: IParticle): void;
23
+ addParticle(p: IParticle): number;
24
+ setParticle(index: number, p: IParticle): void;
25
+ setParticleMass(index: number, mass: number): void;
24
26
  clear(): void;
25
27
  getCount(): number;
26
28
  getParticles(): IParticle[];
27
29
  getParticle(index: number): IParticle;
30
+ getFloatsPerParticle(): number;
31
+ /**
32
+ * Write a full particle record at index into GPU storage.
33
+ */
34
+ syncParticleToGPU(resources: GPUResources, index: number): void;
35
+ /**
36
+ * Write a single mass value at index into GPU storage.
37
+ */
38
+ syncParticleMassToGPU(resources: GPUResources, index: number): void;
28
39
  /**
29
40
  * Writes the currently active particle slice to the GPU particle buffer.
30
41
  * Assumes the GPU storage buffer has already been created with matching capacity.
@@ -1 +1 @@
1
- {"version":3,"file":"particle-store.d.ts","sourceRoot":"","sources":["../../../src/runtimes/webgpu/particle-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,KAAK,CAAa;gBAEd,YAAY,EAAE,MAAM,EAAE,iBAAiB,SAAK;IAMxD,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI;IAMrC,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAM/B,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,SAAS,EAAE;IAQ3B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAgBrC;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;IAMxC;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAezD;;OAEG;IACH,OAAO,CAAC,YAAY;CAiBrB"}
1
+ {"version":3,"file":"particle-store.d.ts","sourceRoot":"","sources":["../../../src/runtimes/webgpu/particle-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,KAAK,CAAa;gBAEd,YAAY,EAAE,MAAM,EAAE,iBAAiB,SAAK;IAMxD,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI;IAMrC,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM;IAQjC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,GAAG,IAAI;IAK9C,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMlD,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,SAAS,EAAE;IAQ3B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAgBrC,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAO/D;;OAEG;IACH,qBAAqB,CACnB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,MAAM,GACZ,IAAI;IAMP;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;IAMxC;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAezD;;OAEG;IACH,OAAO,CAAC,YAAY;CAiBrB"}
package/dist/spawner.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Spawner
3
3
  *
4
4
  * Utility for generating initial `IParticle[]` configurations for common
5
- * shapes (grid, random, circle, donut, square) with optional initial velocity
5
+ * shapes (grid, random, circle, donut, square, text) with optional initial velocity
6
6
  * presets (random/in/out/clockwise/counter-clockwise/custom). Also includes
7
7
  * lightweight color parsing helpers.
8
8
  */
@@ -13,9 +13,14 @@ export interface VelocityConfig {
13
13
  direction: VelocityDirection;
14
14
  angle?: number;
15
15
  }
16
+ export type SpawnShape = "grid" | "random" | "circle" | "donut" | "square" | "text";
17
+ export type TextHorizontalAlign = "left" | "center" | "right";
18
+ export type TextVerticalAlign = "top" | "center" | "bottom";
19
+ export declare const TEXT_SPAWNER_FONTS: readonly ["sans-serif", "serif", "monospace"];
20
+ export type TextSpawnerFont = (typeof TEXT_SPAWNER_FONTS)[number];
16
21
  export interface SpawnOptions {
17
22
  count: number;
18
- shape: "grid" | "random" | "circle" | "donut" | "square";
23
+ shape: SpawnShape;
19
24
  center: {
20
25
  x: number;
21
26
  y: number;
@@ -33,6 +38,17 @@ export interface SpawnOptions {
33
38
  height: number;
34
39
  };
35
40
  velocity?: VelocityConfig;
41
+ text?: string;
42
+ font?: TextSpawnerFont | string;
43
+ textSize?: number;
44
+ position?: {
45
+ x: number;
46
+ y: number;
47
+ };
48
+ align?: {
49
+ horizontal: TextHorizontalAlign;
50
+ vertical: TextVerticalAlign;
51
+ };
36
52
  }
37
53
  export declare class Spawner {
38
54
  initParticles(options: SpawnOptions): IParticle[];
@@ -1 +1 @@
1
- {"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../src/spawner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,IAAI,GACJ,KAAK,GACL,QAAQ,GACR,WAAW,GACX,mBAAmB,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACzD,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAgDD,qBAAa,OAAO;IAClB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,EAAE;CAoUlD"}
1
+ {"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../src/spawner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,IAAI,GACJ,KAAK,GACL,QAAQ,GACR,WAAW,GACX,mBAAmB,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,MAAM,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC9D,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5D,eAAO,MAAM,kBAAkB,+CAAgD,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,mBAAmB,CAAC;QAAC,QAAQ,EAAE,iBAAiB,CAAA;KAAE,CAAC;CAC1E;AAgDD,qBAAa,OAAO;IAClB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,EAAE;CA+alD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cazala/party",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "description": "High-performance TypeScript particle physics engine with dual runtime support (WebGPU compute + CPU fallback). Features modular architecture, real-time parameter oscillation, advanced physics modules, and comprehensive rendering capabilities.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",