From 149a338230bd70bdb3ba00d21bf8a73abc1c1eb1 Mon Sep 17 00:00:00 2001 From: tiye Date: Fri, 19 Apr 2024 01:58:02 +0800 Subject: [PATCH 1/6] drafting another orbit demo --- src/apps/orbits-2.mts | 85 +++++++++++++++++++++++++++++++ src/apps/orbits-2.wgsl | 111 +++++++++++++++++++++++++++++++++++++++++ src/apps/orbits.wgsl | 12 ----- 3 files changed, 196 insertions(+), 12 deletions(-) create mode 100644 src/apps/orbits-2.mts create mode 100644 src/apps/orbits-2.wgsl diff --git a/src/apps/orbits-2.mts b/src/apps/orbits-2.mts new file mode 100644 index 0000000..450cfa5 --- /dev/null +++ b/src/apps/orbits-2.mts @@ -0,0 +1,85 @@ +import { createRenderer } from "../index.mjs"; +import computeOrbits from "./orbits-2.wgsl?raw"; +import { fiboGridN } from "../math.mjs"; + +export let loadRenderer = async (canvas: HTMLCanvasElement) => { + let seedSize = 800000; + + let renderFrame = await createRenderer( + canvas, + { + seedSize, + seedData: makeSeed(seedSize, 0), + params: [ + 0.004, // deltaT + 0.6, // height + 0.2, // width + 0.8, // opacity + ], + // computeShader: updateSpritesWGSL, + // computeShader: computeGravityWgsl, + computeShader: computeOrbits, + }, + { + vertexCount: 1, + vertexData: [0, 1, 2, 3], + indexData: [0, 1, 2, 1, 2, 3], + vertexBufferLayout: vertexBufferLayout, + // topology: "line-list", + bgColor: [0.1, 0.0, 0.2, 1.0], + } + ); + + return renderFrame; +}; + +function makeSeed(numParticles: number, _s: number): Float32Array { + const unit = 8; + const buf = new Float32Array(numParticles * unit); + // let scale = 200 * (Math.random() * 0.5 + 0.5); + let scale_base = 50; + for (let i = 0; i < numParticles; ++i) { + let scale = scale_base + 0.0 * i; + let p = fiboGridN(i, numParticles); + // let q = randPointInSphere(100); + let b = unit * i; + buf[b + 0] = p[0] * scale; + buf[b + 1] = p[1] * scale; + buf[b + 2] = p[2] * 0; + buf[b + 3] = i; // index + buf[b + 4] = p[0] * scale; + buf[b + 5] = p[1] * scale; + buf[b + 6] = p[2] * scale; + buf[b + 7] = 0; + // buf[b + 8] = 0; + // buf[b + 9] = 0; + // buf[b + 10] = 0; + // buf[b + 11] = 0; + } + + return buf; +} + +let vertexBufferLayout: GPUVertexBufferLayout[] = [ + { + // instanced particles buffer + arrayStride: 8 * 4, + stepMode: "instance", + attributes: [ + { shaderLocation: 0, offset: 0, format: "float32x3" }, + { shaderLocation: 1, offset: 3 * 4, format: "float32" }, + { shaderLocation: 2, offset: 4 * 4, format: "float32x3" }, + { shaderLocation: 3, offset: 7 * 4, format: "float32" }, + // { shaderLocation: 4, offset: 8 * 4, format: "float32" }, + // { shaderLocation: 5, offset: 9 * 4, format: "float32" }, + // { shaderLocation: 6, offset: 10 * 4, format: "float32" }, + // { shaderLocation: 7, offset: 11 * 4, format: "float32" }, + ], + }, + { + // vertex buffer + arrayStride: 1 * 4, + stepMode: "vertex", + attributes: [{ shaderLocation: 4, offset: 0, format: "uint32" }], + }, +]; diff --git a/src/apps/orbits-2.wgsl b/src/apps/orbits-2.wgsl new file mode 100644 index 0000000..65a4014 --- /dev/null +++ b/src/apps/orbits-2.wgsl @@ -0,0 +1,111 @@ + +#import protea::perspective +#import protea::colors + +struct Particle { + pos: vec3, + idx: f32, + velocity: vec3, + times: f32, + // p1: f32, + // p2: f32, + // p3: f32, + // p4: f32, +} + +struct Params { + delta_t: f32, + height: f32, + width: f32, + opacity: f32, +} + +struct Particles { + particles: array, +} + +@group(0) @binding(1) var params: Params; +@group(1) @binding(0) var pass_in: Particles; +@group(1) @binding(1) var pass_out: Particles; + +fn rand(n: f32) -> f32 { return fract(sin(n) * 43758.5453123); } + +fn iterate(p: vec3) -> vec3 { + let x = p[0]; + let y = p[1]; + let z = p[2]; + let next_x = sin(x * x - y * y + 0.848); + let next_y = cos(2. * x * y + 4.783); + return vec3(next_x, next_y, z); +} + +// https://github.com/austinEng/Project6-Vulkan-Flocking/blob/master/data/shaders/computeparticles/particle.comp +@compute @workgroup_size(64) +fn main(@builtin(global_invocation_id) GlobalInvocationID: vec3) { + var index = GlobalInvocationID.x; + let item = pass_in.particles[index]; + + var v_pos = item.pos; + + if item.times < item.idx * 0.0001 { + let next = iterate(v_pos); + pass_out.particles[index].pos = vec3(next.x, next.y, next.z); + } else { + pass_out.particles[index].pos = item.pos; + } + pass_out.particles[index].times = item.times + 1.; +} + +struct VertexOutput { + @builtin(position) position: vec4, + @location(4) color: vec4, +} + +@vertex +fn vert_main( + @location(0) position0: vec3, + @location(1) point_idx: f32, + @location(2) velocity: vec3, + @location(3) times: f32, + @location(4) idx: u32, +) -> VertexOutput { + let position = position0 * 100.; + var pos: vec3; + let rightward: vec3 = uniforms.rightward; + let upward: vec3 = uniforms.upward; + let right = normalize(rightward); + let up = normalize(upward); + + // let front = params.length; + var width = params.width * 1.4; + + if idx == 0u { + pos = position + right * width; + // pos += vec3(1.,1.,1.) * 100.0; + } else if idx == 1u { + pos = position; + } else if idx == 2u { + pos = position + right * width + up * width; + } else if idx == 3u { + pos = position + up * width; + } else { + pos = position; + } + + var output: VertexOutput; + let p0 = vec4(pos * 10.0, 1.0); + + let p: vec3 = transform_perspective(p0.xyz).point_position; + let scale: f32 = 0.002; + + output.position = vec4(p[0] * scale, p[1] * scale, p[2] * scale, 1.0); + let c3: vec3 = hsl(fract(point_idx / 4000000.), 0.8, max(0.1, 0.9 - 0.2)); + output.color = vec4(c3, params.opacity); + return output; +} + +@fragment +fn frag_main(@location(4) color: vec4) -> @location(0) vec4 { + return color; + // return vec4(1., 0., 0., 1.0); +} \ No newline at end of file diff --git a/src/apps/orbits.wgsl b/src/apps/orbits.wgsl index 7d1e6cf..d355362 100644 --- a/src/apps/orbits.wgsl +++ b/src/apps/orbits.wgsl @@ -25,12 +25,6 @@ struct Particles { @group(1) @binding(0) var particles_a: Particles; @group(1) @binding(1) var particles_b: Particles; -struct SphereConstraint { - center: vec3, - radius: f32, - inside: bool, -} - fn rand(n: f32) -> f32 { return fract(sin(n) * 43758.5453123); } fn iterate(p: vec3) -> vec3 { @@ -50,12 +44,6 @@ fn main(@builtin(global_invocation_id) GlobalInvocationID: vec3) { let item = particles_a.particles[index]; let write_target = &particles_b.particles[index]; - let constraints = array( - SphereConstraint(vec3(0.0, 0.0, 0.0), 100.0, true), - SphereConstraint(vec3(0.0, 100.0, 0.0), 180.0, true), - SphereConstraint(vec3(0.0, -150.0, 0.0), 20.0, false) - ); - var v_pos = item.pos; let next = iterate(v_pos * 0.01) * 101.; From 475b43110982b6b65d22c4754187fe0f5f8ba980 Mon Sep 17 00:00:00 2001 From: tiye Date: Fri, 19 Apr 2024 09:55:49 +0800 Subject: [PATCH 2/6] refine params --- calcit.cirru | 739 +---------------------------------------- compact.cirru | 4 +- package.json | 6 +- src/apps/orbits-2.mts | 2 +- src/apps/orbits-2.wgsl | 16 +- src/demo-entry.mts | 1 + yarn.lock | 534 +++++++++++++++-------------- 7 files changed, 311 insertions(+), 991 deletions(-) diff --git a/calcit.cirru b/calcit.cirru index e3fe6b7..0634877 100644 --- a/calcit.cirru +++ b/calcit.cirru @@ -402,6 +402,12 @@ |X $ %{} :Leaf (:at 1710175422947) (:by |rJG4IHzWf) (:text |:bouali) |b $ %{} :Leaf (:at 1710175427155) (:by |rJG4IHzWf) (:text "|\"Bouali") |h $ %{} :Leaf (:at 1710063105599) (:by |rJG4IHzWf) (:text |:dark) + |zs $ %{} :Expr (:at 1713461149809) (:by |rJG4IHzWf) + :data $ {} + |T $ %{} :Leaf (:at 1713461150298) (:by |rJG4IHzWf) (:text |::) + |b $ %{} :Leaf (:at 1713461164759) (:by |rJG4IHzWf) (:text |:orbits2) + |h $ %{} :Leaf (:at 1713461183671) (:by |rJG4IHzWf) (:text "|\"Orbits 2") + |l $ %{} :Leaf (:at 1713461169806) (:by |rJG4IHzWf) (:text |:dark) |threshold $ %{} :CodeEntry (:doc |) :code $ %{} :Expr (:at 1709145122009) (:by |rJG4IHzWf) :data $ {} @@ -917,6 +923,13 @@ :data $ {} |T $ %{} :Leaf (:at 1709576589750) (:by |rJG4IHzWf) (:text |orbits/loadRenderer) |b $ %{} :Leaf (:at 1709576589750) (:by |rJG4IHzWf) (:text |canvas) + |zr $ %{} :Expr (:at 1709576589750) (:by |rJG4IHzWf) + :data $ {} + |T $ %{} :Leaf (:at 1713461307605) (:by |rJG4IHzWf) (:text |:orbits2) + |b $ %{} :Expr (:at 1709576589750) (:by |rJG4IHzWf) + :data $ {} + |T $ %{} :Leaf (:at 1713461310274) (:by |rJG4IHzWf) (:text |orbits-2/loadRenderer) + |b $ %{} :Leaf (:at 1709576589750) (:by |rJG4IHzWf) (:text |canvas) |zs $ %{} :Expr (:at 1709576589750) (:by |rJG4IHzWf) :data $ {} |T $ %{} :Leaf (:at 1709576589750) (:by |rJG4IHzWf) (:text |:lamps) @@ -1303,6 +1316,11 @@ |T $ %{} :Leaf (:at 1709317688134) (:by |rJG4IHzWf) (:text "|\"../src/apps/orbits") |b $ %{} :Leaf (:at 1709571076210) (:by |rJG4IHzWf) (:text |:as) |e $ %{} :Leaf (:at 1709571078591) (:by |rJG4IHzWf) (:text |orbits) + |zCz5 $ %{} :Expr (:at 1699776611129) (:by |rJG4IHzWf) + :data $ {} + |T $ %{} :Leaf (:at 1713461334445) (:by |rJG4IHzWf) (:text "|\"../src/apps/orbits-2") + |b $ %{} :Leaf (:at 1709571076210) (:by |rJG4IHzWf) (:text |:as) + |e $ %{} :Leaf (:at 1713461319720) (:by |rJG4IHzWf) (:text |orbits-2) |zCzD $ %{} :Expr (:at 1709356808034) (:by |rJG4IHzWf) :data $ {} |T $ %{} :Leaf (:at 1709356842144) (:by |rJG4IHzWf) (:text "|\"../src/apps/lamps") @@ -1455,727 +1473,6 @@ |v $ %{} :Expr (:at 1584874621524) (:by |rJG4IHzWf) :data $ {} |j $ %{} :Leaf (:at 1584874623096) (:by |rJG4IHzWf) (:text |update-states) - :ir $ {} (:package |app) - :files $ {} - |app.comp.container $ {} - :defs $ {} - |comp-container $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |defcomp) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |comp-container) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1507461830530) (:by |root) (:text |reel) - |v $ %{} :Expr (:at 1507461832154) (:by |root) - :data $ {} - |D $ %{} :Leaf (:at 1507461833421) (:by |root) (:text |let) - |L $ %{} :Expr (:at 1507461834351) (:by |root) - :data $ {} - |T $ %{} :Expr (:at 1507461834650) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1507461835738) (:by |root) (:text |store) - |j $ %{} :Expr (:at 1507461836110) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1507461837276) (:by |root) (:text |:store) - |j $ %{} :Leaf (:at 1507461838285) (:by |root) (:text |reel) - |j $ %{} :Expr (:at 1509727104820) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1509727105928) (:by |root) (:text |states) - |j $ %{} :Expr (:at 1509727106316) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1509727107223) (:by |root) (:text |:states) - |j $ %{} :Leaf (:at 1626777497473) (:by |rJG4IHzWf) (:text |store) - |n $ %{} :Expr (:at 1584780921790) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1584780923771) (:by |rJG4IHzWf) (:text |cursor) - |j $ %{} :Expr (:at 1584780991636) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1627849325504) (:by |rJG4IHzWf) (:text |or) - |T $ %{} :Expr (:at 1584780923944) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1584780925829) (:by |rJG4IHzWf) (:text |:cursor) - |j $ %{} :Leaf (:at 1584780926681) (:by |rJG4IHzWf) (:text |states) - |b $ %{} :Expr (:at 1679237728653) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1679237728821) (:by |rJG4IHzWf) (:text |[]) - |r $ %{} :Expr (:at 1584780887905) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1584780889620) (:by |rJG4IHzWf) (:text |state) - |j $ %{} :Expr (:at 1584780889933) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1627849327831) (:by |rJG4IHzWf) (:text |or) - |j $ %{} :Expr (:at 1584780894090) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1584780894689) (:by |rJG4IHzWf) (:text |:data) - |j $ %{} :Leaf (:at 1584780900314) (:by |rJG4IHzWf) (:text |states) - |r $ %{} :Expr (:at 1584780901014) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1584780901408) (:by |rJG4IHzWf) (:text |{}) - |j $ %{} :Expr (:at 1584780901741) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1584780906050) (:by |rJG4IHzWf) (:text |:content) - |j $ %{} :Leaf (:at 1584780907617) (:by |rJG4IHzWf) (:text "|\"") - |T $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |div) - |j $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |{}) - |j $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:style) - |j $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |merge) - |j $ %{} :Leaf (:at 1521129814235) (:by |root) (:text |ui/global) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |ui/row) - |n $ %{} :Expr (:at 1512359496483) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1552321295613) (:by |rJG4IHzWf) (:text |textarea) - |j $ %{} :Expr (:at 1512359504511) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359504843) (:by |rJG4IHzWf) (:text |{}) - |j $ %{} :Expr (:at 1512359505095) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359505740) (:by |rJG4IHzWf) (:text |:value) - |j $ %{} :Expr (:at 1512359518303) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359519072) (:by |rJG4IHzWf) (:text |:content) - |j $ %{} :Leaf (:at 1584780914332) (:by |rJG4IHzWf) (:text |state) - |n $ %{} :Expr (:at 1512359562842) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359565393) (:by |rJG4IHzWf) (:text |:placeholder) - |j $ %{} :Leaf (:at 1626201966743) (:by |rJG4IHzWf) (:text "|\"Content") - |p $ %{} :Expr (:at 1512359616676) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359618050) (:by |rJG4IHzWf) (:text |:style) - |j $ %{} :Expr (:at 1512359674211) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1512359675059) (:by |rJG4IHzWf) (:text |merge) - |L $ %{} :Leaf (:at 1555609489873) (:by |rJG4IHzWf) (:text |ui/expand) - |T $ %{} :Leaf (:at 1512359621430) (:by |rJG4IHzWf) (:text |ui/textarea) - |j $ %{} :Expr (:at 1512359675605) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359676048) (:by |rJG4IHzWf) (:text |{}) - |r $ %{} :Expr (:at 1512359678671) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359679785) (:by |rJG4IHzWf) (:text |:height) - |j $ %{} :Leaf (:at 1574608185129) (:by |rJG4IHzWf) (:text |320) - |r $ %{} :Expr (:at 1512359551423) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1515731637149) (:by |root) (:text |:on-input) - |r $ %{} :Expr (:at 1573355456413) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1573355458962) (:by |rJG4IHzWf) (:text |fn) - |L $ %{} :Expr (:at 1573355459236) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1573355459482) (:by |rJG4IHzWf) (:text |e) - |j $ %{} :Leaf (:at 1573355459980) (:by |rJG4IHzWf) (:text |d!) - |T $ %{} :Expr (:at 1515731639686) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1573355463209) (:by |rJG4IHzWf) (:text |d!) - |r $ %{} :Leaf (:at 1584780918978) (:by |rJG4IHzWf) (:text |cursor) - |v $ %{} :Expr (:at 1584780929603) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1584780932163) (:by |rJG4IHzWf) (:text |assoc) - |L $ %{} :Leaf (:at 1584780932805) (:by |rJG4IHzWf) (:text |state) - |P $ %{} :Leaf (:at 1584780935039) (:by |rJG4IHzWf) (:text |:content) - |T $ %{} :Expr (:at 1512359558827) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359559399) (:by |rJG4IHzWf) (:text |:value) - |j $ %{} :Leaf (:at 1573355472480) (:by |rJG4IHzWf) (:text |e) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |=<) - |j $ %{} :Leaf (:at 1584875384898) (:by |rJG4IHzWf) (:text |8) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |nil) - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |div) - |f $ %{} :Expr (:at 1512359526483) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359526843) (:by |rJG4IHzWf) (:text |{}) - |j $ %{} :Expr (:at 1535563521753) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1535563522569) (:by |rJG4IHzWf) (:text |:style) - |j $ %{} :Leaf (:at 1555609487202) (:by |rJG4IHzWf) (:text |ui/expand) - |l $ %{} :Expr (:at 1519699101175) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1519699101706) (:by |root) (:text |comp-md) - |j $ %{} :Leaf (:at 1596818901713) (:by |rJG4IHzWf) (:text "||This is some content with `code`") - |o $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |=<) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text ||8px) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |nil) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |button) - |j $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |{}) - |j $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:style) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |ui/button) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:inner-text) - |j $ %{} :Leaf (:at 1584875392985) (:by |rJG4IHzWf) (:text "|\"Run") - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1515731664266) (:by |root) (:text |:on-click) - |j $ %{} :Expr (:at 1512359578073) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359578445) (:by |rJG4IHzWf) (:text |fn) - |j $ %{} :Expr (:at 1512359578681) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359578853) (:by |rJG4IHzWf) (:text |e) - |j $ %{} :Leaf (:at 1512359579539) (:by |rJG4IHzWf) (:text |d!) - |r $ %{} :Expr (:at 1512359581078) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359582042) (:by |rJG4IHzWf) (:text |println) - |j $ %{} :Expr (:at 1512359587492) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1512359588770) (:by |rJG4IHzWf) (:text |:content) - |j $ %{} :Leaf (:at 1584780962830) (:by |rJG4IHzWf) (:text |state) - |x $ %{} :Expr (:at 1521954055333) (:by |root) - :data $ {} - |D $ %{} :Leaf (:at 1521954057510) (:by |root) (:text |when) - |L $ %{} :Leaf (:at 1521954059290) (:by |root) (:text |dev?) - |T $ %{} :Expr (:at 1507461809635) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1507461815046) (:by |root) (:text |comp-reel) - |b $ %{} :Expr (:at 1584780610581) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1584780611347) (:by |rJG4IHzWf) (:text |>>) - |T $ %{} :Leaf (:at 1509727101297) (:by |root) (:text |states) - |j $ %{} :Leaf (:at 1584780613268) (:by |rJG4IHzWf) (:text |:reel) - |j $ %{} :Leaf (:at 1507461840459) (:by |root) (:text |reel) - |r $ %{} :Expr (:at 1507461840980) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1507461841342) (:by |root) (:text |{}) - :ns $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |ns) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |app.comp.container) - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:require) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |j $ %{} :Leaf (:at 1516527080962) (:by |root) (:text |respo-ui.core) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:as) - |v $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |ui) - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |j $ %{} :Leaf (:at 1540958704705) (:by |root) (:text |respo.core) - |r $ %{} :Leaf (:at 1508946162679) (:by |root) (:text |:refer) - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |defcomp) - |l $ %{} :Leaf (:at 1573355389740) (:by |rJG4IHzWf) (:text |defeffect) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |<>) - |t $ %{} :Leaf (:at 1584780606618) (:by |rJG4IHzWf) (:text |>>) - |v $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |div) - |x $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |button) - |xT $ %{} :Leaf (:at 1512359490531) (:by |rJG4IHzWf) (:text |textarea) - |y $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |span) - |yT $ %{} :Leaf (:at 1552321107012) (:by |rJG4IHzWf) (:text |input) - |x $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |respo.comp.space) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:refer) - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |=<) - |y $ %{} :Expr (:at 1507461845717) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1507461855480) (:by |root) (:text |reel.comp.reel) - |r $ %{} :Leaf (:at 1507461856264) (:by |root) (:text |:refer) - |v $ %{} :Expr (:at 1507461856484) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1507461858342) (:by |root) (:text |comp-reel) - |yT $ %{} :Expr (:at 1519699088529) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1519699092590) (:by |root) (:text |respo-md.comp.md) - |r $ %{} :Leaf (:at 1519699093410) (:by |root) (:text |:refer) - |v $ %{} :Expr (:at 1519699093683) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1519699096732) (:by |root) (:text |comp-md) - |yj $ %{} :Expr (:at 1521954061310) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1527788377809) (:by |root) (:text |app.config) - |r $ %{} :Leaf (:at 1521954064826) (:by |root) (:text |:refer) - |v $ %{} :Expr (:at 1521954065004) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1521954067604) (:by |root) (:text |dev?) - |app.config $ {} - :defs $ {} - |dev? $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1544873875614) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1544873875614) (:by |rJG4IHzWf) (:text |def) - |j $ %{} :Leaf (:at 1544873875614) (:by |rJG4IHzWf) (:text |dev?) - |r $ %{} :Expr (:at 1624469709435) (:by |rJG4IHzWf) - :data $ {} - |5 $ %{} :Leaf (:at 1624469715390) (:by |rJG4IHzWf) (:text |=) - |D $ %{} :Leaf (:at 1624469714304) (:by |rJG4IHzWf) (:text "|\"dev") - |T $ %{} :Expr (:at 1624469701389) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1624469706777) (:by |rJG4IHzWf) (:text |get-env) - |T $ %{} :Leaf (:at 1624469708397) (:by |rJG4IHzWf) (:text "|\"mode") - |b $ %{} :Leaf (:at 1658121345573) (:by |rJG4IHzWf) (:text "|\"release") - |site $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1545933382603) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1518157345496) (:by |root) (:text |def) - |j $ %{} :Leaf (:at 1518157327696) (:by |root) (:text |site) - |r $ %{} :Expr (:at 1518157327696) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1518157346643) (:by |root) (:text |{}) - |yf $ %{} :Expr (:at 1544956719115) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1544956719115) (:by |rJG4IHzWf) (:text |:storage-key) - |j $ %{} :Leaf (:at 1544956719115) (:by |rJG4IHzWf) (:text "|\"workflow") - :ns $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1527788237503) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1527788237503) (:by |root) (:text |ns) - |j $ %{} :Leaf (:at 1527788237503) (:by |root) (:text |app.config) - |app.main $ {} - :defs $ {} - |*reel $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1610792986987) (:by |rJG4IHzWf) (:text |defatom) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |*reel) - |r $ %{} :Expr (:at 1507399777531) (:by |root) - :data $ {} - |D $ %{} :Leaf (:at 1507399778895) (:by |root) (:text |->) - |T $ %{} :Leaf (:at 1507399776350) (:by |root) (:text |reel-schema/reel) - |j $ %{} :Expr (:at 1507399779656) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1507399781682) (:by |root) (:text |assoc) - |j $ %{} :Leaf (:at 1507401405076) (:by |root) (:text |:base) - |r $ %{} :Leaf (:at 1507399787471) (:by |root) (:text |schema/store) - |r $ %{} :Expr (:at 1507399779656) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1507399781682) (:by |root) (:text |assoc) - |j $ %{} :Leaf (:at 1507399793097) (:by |root) (:text |:store) - |r $ %{} :Leaf (:at 1507399787471) (:by |root) (:text |schema/store) - |dispatch! $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |defn) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |dispatch!) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |op) - |t $ %{} :Expr (:at 1547437686766) (:by |root) - :data $ {} - |D $ %{} :Leaf (:at 1547437687530) (:by |root) (:text |when) - |L $ %{} :Expr (:at 1584874661674) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1584874662518) (:by |rJG4IHzWf) (:text |and) - |T $ %{} :Leaf (:at 1547437691006) (:by |root) (:text |config/dev?) - |j $ %{} :Expr (:at 1584874663522) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1584874664551) (:by |rJG4IHzWf) (:text |not=) - |j $ %{} :Leaf (:at 1584874665829) (:by |rJG4IHzWf) (:text |op) - |r $ %{} :Leaf (:at 1584874671745) (:by |rJG4IHzWf) (:text |:states) - |T $ %{} :Expr (:at 1518156274050) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1518156276516) (:by |root) (:text |println) - |r $ %{} :Leaf (:at 1547437698992) (:by |root) (:text "|\"Dispatch:") - |v $ %{} :Leaf (:at 1518156280471) (:by |root) (:text |op) - |v $ %{} :Expr (:at 1584780634192) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |reset!) - |j $ %{} :Leaf (:at 1507399899641) (:by |root) (:text |*reel) - |r $ %{} :Expr (:at 1507399884621) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1507399887573) (:by |root) (:text |reel-updater) - |j $ %{} :Leaf (:at 1507399888500) (:by |root) (:text |updater) - |r $ %{} :Leaf (:at 1507399891576) (:by |root) (:text |@*reel) - |v $ %{} :Leaf (:at 1507399892687) (:by |root) (:text |op) - |main! $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |defn) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |main!) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |t $ %{} :Expr (:at 1544874433785) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1544874434638) (:by |rJG4IHzWf) (:text |println) - |j $ %{} :Leaf (:at 1544874509800) (:by |rJG4IHzWf) (:text "|\"Running mode:") - |r $ %{} :Expr (:at 1544874440404) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1544874440190) (:by |rJG4IHzWf) (:text |if) - |j $ %{} :Leaf (:at 1544874446442) (:by |rJG4IHzWf) (:text |config/dev?) - |r $ %{} :Leaf (:at 1544874449063) (:by |rJG4IHzWf) (:text "|\"dev") - |v $ %{} :Leaf (:at 1544874452316) (:by |rJG4IHzWf) (:text "|\"release") - |v $ %{} :Expr (:at 1636914348413) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1636914349962) (:by |rJG4IHzWf) (:text |if) - |j $ %{} :Leaf (:at 1636914351563) (:by |rJG4IHzWf) (:text |config/dev?) - |r $ %{} :Expr (:at 1636914352112) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1636914358071) (:by |rJG4IHzWf) (:text |load-console-formatter!) - |x $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |render-app!) - |y $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |add-watch) - |j $ %{} :Leaf (:at 1507399915531) (:by |root) (:text |*reel) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:changes) - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |fn) - |j $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1612280609284) (:by |rJG4IHzWf) (:text |reel) - |j $ %{} :Leaf (:at 1612280610651) (:by |rJG4IHzWf) (:text |prev) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |render-app!) - |yD $ %{} :Expr (:at 1507461684494) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1507461739167) (:by |root) (:text |listen-devtools!) - |j $ %{} :Leaf (:at 1624007376825) (:by |rJG4IHzWf) (:text ||k) - |r $ %{} :Leaf (:at 1507461693919) (:by |root) (:text |dispatch!) - |yL $ %{} :Expr (:at 1518157357847) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1646150136497) (:by |rJG4IHzWf) (:text |js/window.addEventListener) - |r $ %{} :Leaf (:at 1518157458163) (:by |root) (:text ||beforeunload) - |v $ %{} :Expr (:at 1612344221583) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1612344222204) (:by |rJG4IHzWf) (:text |fn) - |L $ %{} :Expr (:at 1612344222530) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1612344223520) (:by |rJG4IHzWf) (:text |event) - |T $ %{} :Expr (:at 1612344224533) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1533919515671) (:by |rJG4IHzWf) (:text |persist-storage!) - |yO $ %{} :Expr (:at 1646150039456) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1646150045747) (:by |rJG4IHzWf) (:text |flipped) - |T $ %{} :Leaf (:at 1646150042154) (:by |rJG4IHzWf) (:text |js/setInterval) - |b $ %{} :Leaf (:at 1646150175987) (:by |rJG4IHzWf) (:text |60000) - |h $ %{} :Leaf (:at 1646150050057) (:by |rJG4IHzWf) (:text |persist-storage!) - |yP $ %{} :Expr (:at 1518157492640) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1518157495438) (:by |root) (:text |let) - |j $ %{} :Expr (:at 1518157495644) (:by |root) - :data $ {} - |T $ %{} :Expr (:at 1518157495826) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1518157496930) (:by |root) (:text |raw) - |j $ %{} :Expr (:at 1518157497615) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1646150065132) (:by |rJG4IHzWf) (:text |js/localStorage.getItem) - |r $ %{} :Expr (:at 1518157506313) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1544956709260) (:by |rJG4IHzWf) (:text |:storage-key) - |j $ %{} :Leaf (:at 1527788293499) (:by |root) (:text |config/site) - |r $ %{} :Expr (:at 1518157514334) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1533919640958) (:by |rJG4IHzWf) (:text |when) - |j $ %{} :Expr (:at 1518157515117) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1518157515786) (:by |root) (:text |some?) - |j $ %{} :Leaf (:at 1518157516878) (:by |root) (:text |raw) - |r $ %{} :Expr (:at 1518157521635) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1518157523818) (:by |root) (:text |dispatch!) - |j $ %{} :Expr (:at 1688397806134) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1688397806833) (:by |rJG4IHzWf) (:text |::) - |T $ %{} :Leaf (:at 1518157669936) (:by |root) (:text |:hydrate-storage) - |b $ %{} :Expr (:at 1688397811073) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1688397811073) (:by |rJG4IHzWf) (:text |parse-cirru-edn) - |b $ %{} :Leaf (:at 1688397811073) (:by |rJG4IHzWf) (:text |raw) - |yT $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |println) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text "||App started.") - |mount-target $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |def) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |mount-target) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1624469553191) (:by |rJG4IHzWf) (:text |.!querySelector) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |js/document) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text ||.app) - |persist-storage! $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1533919515671) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1533919517365) (:by |rJG4IHzWf) (:text |defn) - |j $ %{} :Leaf (:at 1533919515671) (:by |rJG4IHzWf) (:text |persist-storage!) - |n $ %{} :Expr (:at 1646150052705) (:by |rJG4IHzWf) - :data $ {} - |r $ %{} :Expr (:at 1646150152124) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1646150154932) (:by |rJG4IHzWf) (:text |js/console.log) - |b $ %{} :Leaf (:at 1646150157857) (:by |rJG4IHzWf) (:text "|\"persist") - |v $ %{} :Expr (:at 1533919515671) (:by |rJG4IHzWf) - :data $ {} - |j $ %{} :Leaf (:at 1646150150852) (:by |rJG4IHzWf) (:text |js/localStorage.setItem) - |r $ %{} :Expr (:at 1533919515671) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1544956703087) (:by |rJG4IHzWf) (:text |:storage-key) - |j $ %{} :Leaf (:at 1533919515671) (:by |rJG4IHzWf) (:text |config/site) - |v $ %{} :Expr (:at 1533919515671) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1624469402829) (:by |rJG4IHzWf) (:text |format-cirru-edn) - |j $ %{} :Expr (:at 1533919515671) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1533919515671) (:by |rJG4IHzWf) (:text |:store) - |j $ %{} :Leaf (:at 1533919515671) (:by |rJG4IHzWf) (:text |@*reel) - |reload! $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1626201152815) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1626201153853) (:by |rJG4IHzWf) (:text |defn) - |L $ %{} :Leaf (:at 1626201157449) (:by |rJG4IHzWf) (:text |reload!) - |P $ %{} :Expr (:at 1626201163076) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Expr (:at 1626201191606) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1626201192115) (:by |rJG4IHzWf) (:text |if) - |L $ %{} :Expr (:at 1626201192626) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1626201534497) (:by |rJG4IHzWf) (:text |nil?) - |j $ %{} :Leaf (:at 1626201194806) (:by |rJG4IHzWf) (:text |build-errors) - |T $ %{} :Expr (:at 1626201164538) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1626201161775) (:by |rJG4IHzWf) (:text |do) - |j $ %{} :Expr (:at 1614750747553) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1614750747553) (:by |rJG4IHzWf) (:text |remove-watch) - |j $ %{} :Leaf (:at 1614750747553) (:by |rJG4IHzWf) (:text |*reel) - |r $ %{} :Leaf (:at 1614750747553) (:by |rJG4IHzWf) (:text |:changes) - |r $ %{} :Expr (:at 1507461699387) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1507461702453) (:by |root) (:text |clear-cache!) - |v $ %{} :Expr (:at 1612280627439) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1612280627439) (:by |rJG4IHzWf) (:text |add-watch) - |j $ %{} :Leaf (:at 1612280627439) (:by |rJG4IHzWf) (:text |*reel) - |r $ %{} :Leaf (:at 1612280627439) (:by |rJG4IHzWf) (:text |:changes) - |v $ %{} :Expr (:at 1612280627439) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1612280627439) (:by |rJG4IHzWf) (:text |fn) - |j $ %{} :Expr (:at 1612280627439) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1612280627439) (:by |rJG4IHzWf) (:text |reel) - |j $ %{} :Leaf (:at 1612280627439) (:by |rJG4IHzWf) (:text |prev) - |r $ %{} :Expr (:at 1612280627439) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1612280627439) (:by |rJG4IHzWf) (:text |render-app!) - |x $ %{} :Expr (:at 1507461704162) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1507461706990) (:by |root) (:text |reset!) - |j $ %{} :Leaf (:at 1507461708965) (:by |root) (:text |*reel) - |r $ %{} :Expr (:at 1507461710020) (:by |root) - :data $ {} - |T $ %{} :Leaf (:at 1507461730190) (:by |root) (:text |refresh-reel) - |j $ %{} :Leaf (:at 1507461719097) (:by |root) (:text |@*reel) - |r $ %{} :Leaf (:at 1507461721870) (:by |root) (:text |schema/store) - |v $ %{} :Leaf (:at 1507461722724) (:by |root) (:text |updater) - |y $ %{} :Expr (:at 1626777542168) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1626777542168) (:by |rJG4IHzWf) (:text |hud!) - |j $ %{} :Leaf (:at 1626777542168) (:by |rJG4IHzWf) (:text "|\"ok~") - |r $ %{} :Leaf (:at 1679237703306) (:by |rJG4IHzWf) (:text "|\"Ok") - |j $ %{} :Expr (:at 1626201203433) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1626290831868) (:by |rJG4IHzWf) (:text |hud!) - |b $ %{} :Leaf (:at 1626290930377) (:by |rJG4IHzWf) (:text "|\"error") - |j $ %{} :Leaf (:at 1626201209903) (:by |rJG4IHzWf) (:text |build-errors) - |render-app! $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |defn) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |render-app!) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1624469436438) (:by |rJG4IHzWf) (:text |render!) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |mount-target) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |comp-container) - |j $ %{} :Leaf (:at 1507400119272) (:by |root) (:text |@*reel) - |v $ %{} :Leaf (:at 1623915174985) (:by |rJG4IHzWf) (:text |dispatch!) - :ns $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |ns) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |app.main) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:require) - |j $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |respo.core) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:refer) - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |render!) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |clear-cache!) - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |app.comp.container) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:refer) - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |comp-container) - |y $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |j $ %{} :Leaf (:at 1508556737455) (:by |root) (:text |app.updater) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:refer) - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |updater) - |yT $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |app.schema) - |r $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:as) - |v $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |schema) - |yj $ %{} :Expr (:at 1507399674125) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1507399678694) (:by |root) (:text |reel.util) - |r $ %{} :Leaf (:at 1507399680625) (:by |root) (:text |:refer) - |v $ %{} :Expr (:at 1507399680857) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1518156292092) (:by |root) (:text |listen-devtools!) - |yr $ %{} :Expr (:at 1507399683930) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1507399687162) (:by |root) (:text |reel.core) - |r $ %{} :Leaf (:at 1507399688098) (:by |root) (:text |:refer) - |v $ %{} :Expr (:at 1507399688322) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1507399691010) (:by |root) (:text |reel-updater) - |q $ %{} :Leaf (:at 1518156288482) (:by |root) (:text |refresh-reel) - |yv $ %{} :Expr (:at 1507399715229) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1507399717674) (:by |root) (:text |reel.schema) - |r $ %{} :Leaf (:at 1507399755750) (:by |root) (:text |:as) - |v $ %{} :Leaf (:at 1507399757678) (:by |root) (:text |reel-schema) - |yy $ %{} :Expr (:at 1527788302920) (:by |root) - :data $ {} - |j $ %{} :Leaf (:at 1527788304925) (:by |root) (:text |app.config) - |r $ %{} :Leaf (:at 1527788306048) (:by |root) (:text |:as) - |v $ %{} :Leaf (:at 1527788306884) (:by |root) (:text |config) - |yyT $ %{} :Expr (:at 1626201173819) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1626201180939) (:by |rJG4IHzWf) (:text "|\"./calcit.build-errors") - |j $ %{} :Leaf (:at 1626201183958) (:by |rJG4IHzWf) (:text |:default) - |r $ %{} :Leaf (:at 1626201187310) (:by |rJG4IHzWf) (:text |build-errors) - |yyj $ %{} :Expr (:at 1626290808117) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1626290810913) (:by |rJG4IHzWf) (:text "|\"bottom-tip") - |j $ %{} :Leaf (:at 1626290816153) (:by |rJG4IHzWf) (:text |:default) - |r $ %{} :Leaf (:at 1626290825711) (:by |rJG4IHzWf) (:text |hud!) - |app.schema $ {} - :defs $ {} - |store $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |def) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |store) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |{}) - |j $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |:states) - |j $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |{}) - |j $ %{} :Expr (:at 1584781004285) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1584781007054) (:by |rJG4IHzWf) (:text |:cursor) - |j $ %{} :Expr (:at 1584781007287) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1584781007486) (:by |rJG4IHzWf) (:text |[]) - :ns $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |ns) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |app.schema) - |app.updater $ {} - :defs $ {} - |updater $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |defn) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |updater) - |r $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |store) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |op) - |v $ %{} :Leaf (:at 1519489491135) (:by |root) (:text |op-id) - |x $ %{} :Leaf (:at 1519489492110) (:by |root) (:text |op-time) - |v $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1688397777636) (:by |rJG4IHzWf) (:text |tag-match) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |op) - |n $ %{} :Expr (:at 1507399852251) (:by |root) - :data $ {} - |T $ %{} :Expr (:at 1688397783265) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1507399855618) (:by |root) (:text |:states) - |b $ %{} :Leaf (:at 1688397785768) (:by |rJG4IHzWf) (:text |cursor) - |h $ %{} :Leaf (:at 1688397786090) (:by |rJG4IHzWf) (:text |s) - |j $ %{} :Expr (:at 1584874625235) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1584874626558) (:by |rJG4IHzWf) (:text |update-states) - |j $ %{} :Leaf (:at 1584874628374) (:by |rJG4IHzWf) (:text |store) - |r $ %{} :Leaf (:at 1688397788043) (:by |rJG4IHzWf) (:text |cursor) - |t $ %{} :Leaf (:at 1688397788324) (:by |rJG4IHzWf) (:text |s) - |t $ %{} :Expr (:at 1518157547521) (:by |root) - :data $ {} - |T $ %{} :Expr (:at 1688397789504) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1518157657108) (:by |root) (:text |:hydrate-storage) - |b $ %{} :Leaf (:at 1688397790936) (:by |rJG4IHzWf) (:text |data) - |j $ %{} :Leaf (:at 1584874637339) (:by |rJG4IHzWf) (:text |data) - |u $ %{} :Expr (:at 1688397780767) (:by |rJG4IHzWf) - :data $ {} - |D $ %{} :Leaf (:at 1688397781225) (:by |rJG4IHzWf) (:text |_) - |T $ %{} :Expr (:at 1688397780408) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1688397780408) (:by |rJG4IHzWf) (:text |do) - |b $ %{} :Expr (:at 1688397780408) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1688397780408) (:by |rJG4IHzWf) (:text |println) - |b $ %{} :Leaf (:at 1688397780408) (:by |rJG4IHzWf) (:text "|\"unknown op:") - |h $ %{} :Leaf (:at 1688397780408) (:by |rJG4IHzWf) (:text |op) - |h $ %{} :Leaf (:at 1688397780408) (:by |rJG4IHzWf) (:text |store) - :ns $ %{} :CodeEntry (:doc |) - :code $ %{} :Expr (:at 1499755354983) (:by nil) - :data $ {} - |T $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |ns) - |j $ %{} :Leaf (:at 1499755354983) (:by |root) (:text |app.updater) - |r $ %{} :Expr (:at 1584874614885) (:by |rJG4IHzWf) - :data $ {} - |T $ %{} :Leaf (:at 1584874616480) (:by |rJG4IHzWf) (:text |:require) - |j $ %{} :Expr (:at 1584874616720) (:by |rJG4IHzWf) - :data $ {} - |j $ %{} :Leaf (:at 1584874620034) (:by |rJG4IHzWf) (:text |respo.cursor) - |r $ %{} :Leaf (:at 1584874621356) (:by |rJG4IHzWf) (:text |:refer) - |v $ %{} :Expr (:at 1584874621524) (:by |rJG4IHzWf) - :data $ {} - |j $ %{} :Leaf (:at 1584874623096) (:by |rJG4IHzWf) (:text |update-states) :users $ {} |rJG4IHzWf $ {} (:avatar nil) (:id |rJG4IHzWf) (:name |chen) (:nickname |chen) (:password |d41d8cd98f00b204e9800998ecf8427e) (:theme :star-trail) |root $ {} (:avatar nil) (:id |root) (:name |root) (:nickname |root) (:password |d41d8cd98f00b204e9800998ecf8427e) (:theme :star-trail) diff --git a/compact.cirru b/compact.cirru index 36e2601..41616a6 100644 --- a/compact.cirru +++ b/compact.cirru @@ -51,7 +51,7 @@ def skip-rendering? $ = "\"true" (get-env "\"skip" "\"false") |tabs $ %{} :CodeEntry (:doc |) :code $ quote - def tabs $ [] (:: :fireworks |Fireworks :dark) (:: :lorenz |Lorenz :dark) (:: :aizawa |Aizawa :dark) (:: :fourwing "|Four Wing" :dark) (:: :fractal |Fractal :dark) (:: :collision |Collision :dark) (:: :bounce |Bounce :dark) (:: :feday |FEDAY :dark) (:: :bifurcation "\"Bifurcation" :dark) (:: :ball-spin "\"Ball Spin" :dark) (:: :lifegame "\"Lifegame" :dark) (:: :lifegame-trail "\"Lifegame Trail" :dark) (:: :bounce-trail "|Bounce Trail" :dark) (:: :orbit-spark "|Orbit Spark" :dark) (:: :chen |Chen :dark) (:: :sprott |Sprott :dark) (:: :lorenz83 |Lorenz83 :dark) (:: :orbits |Orbits :dark) (:: :lamps |Lamps :dark) (:: :debug-grid "|Debug Grid" :dark) (:: :den-tsucs "\"Den Tsucs" :dark) (:: :bouali "\"Bouali" :dark) + def tabs $ [] (:: :fireworks |Fireworks :dark) (:: :lorenz |Lorenz :dark) (:: :aizawa |Aizawa :dark) (:: :fourwing "|Four Wing" :dark) (:: :fractal |Fractal :dark) (:: :collision |Collision :dark) (:: :bounce |Bounce :dark) (:: :feday |FEDAY :dark) (:: :bifurcation "\"Bifurcation" :dark) (:: :ball-spin "\"Ball Spin" :dark) (:: :lifegame "\"Lifegame" :dark) (:: :lifegame-trail "\"Lifegame Trail" :dark) (:: :bounce-trail "|Bounce Trail" :dark) (:: :orbit-spark "|Orbit Spark" :dark) (:: :chen |Chen :dark) (:: :sprott |Sprott :dark) (:: :lorenz83 |Lorenz83 :dark) (:: :orbits |Orbits :dark) (:: :lamps |Lamps :dark) (:: :debug-grid "|Debug Grid" :dark) (:: :den-tsucs "\"Den Tsucs" :dark) (:: :bouali "\"Bouali" :dark) (:: :orbits2 "\"Orbits 2" :dark) |threshold $ %{} :CodeEntry (:doc |) :code $ quote def threshold $ js/parseFloat @@ -141,6 +141,7 @@ :sprott $ sprott/loadRenderer canvas :lorenz83 $ lorenz-83/loadRenderer canvas :orbits $ orbits/loadRenderer canvas + :orbits2 $ orbits-2/loadRenderer canvas :lamps $ lamps/loadRenderer canvas :debug-grid $ debug-grid/loadRenderer canvas :den-tsucs $ den-tsucs/loadRenderer canvas @@ -209,6 +210,7 @@ "\"../src/apps/lifegame-trail" :as lifegame-trail "\"../src/apps/orbit-spark" :as orbit-spark "\"../src/apps/orbits" :as orbits + "\"../src/apps/orbits-2" :as orbits-2 "\"../src/apps/lamps" :as lamps "\"../src/apps/debug-grid" :as debug-grid "\"../src/apps/attractor-den-tsucs" :as den-tsucs diff --git a/package.json b/package.json index 5dbbbd9..56ad65a 100644 --- a/package.json +++ b/package.json @@ -6,11 +6,11 @@ "@webgpu/types": "^0.1.40", "bottom-tip": "^0.1.5", "query-string": "^9.0.0", - "typescript": "^5.4.2", - "vite": "^5.1.6" + "typescript": "^5.4.5", + "vite": "^5.2.9" }, "dependencies": { - "@calcit/procs": "^0.8.40", + "@calcit/procs": "^0.8.50", "@triadica/touch-control": "^0.0.4-a1", "ismobilejs": "^1.1.1" }, diff --git a/src/apps/orbits-2.mts b/src/apps/orbits-2.mts index 450cfa5..917599d 100644 --- a/src/apps/orbits-2.mts +++ b/src/apps/orbits-2.mts @@ -37,7 +37,7 @@ function makeSeed(numParticles: number, _s: number): Float32Array { const unit = 8; const buf = new Float32Array(numParticles * unit); // let scale = 200 * (Math.random() * 0.5 + 0.5); - let scale_base = 50; + let scale_base = 1; for (let i = 0; i < numParticles; ++i) { let scale = scale_base + 0.0 * i; let p = fiboGridN(i, numParticles); diff --git a/src/apps/orbits-2.wgsl b/src/apps/orbits-2.wgsl index 65a4014..adb074f 100644 --- a/src/apps/orbits-2.wgsl +++ b/src/apps/orbits-2.wgsl @@ -34,9 +34,13 @@ fn iterate(p: vec3) -> vec3 { let x = p[0]; let y = p[1]; let z = p[2]; - let next_x = sin(x * x - y * y + 0.848); - let next_y = cos(2. * x * y + 4.783); - return vec3(next_x, next_y, z); + // let next_x = sin(x * x - y * y + 0.848); + // let next_y = cos(2. * x * y + 4.783); + // let next_x = sin(x * x - y * y + 1.158); + // let next_y = cos(2. * x * y + 1.93); + let next_x = sin(x * x - y * y + 3.536); + let next_y = cos(2. * x * y + 5.575); + return vec3(next_y, next_x, z); } // https://github.com/austinEng/Project6-Vulkan-Flocking/blob/master/data/shaders/computeparticles/particle.comp @@ -45,10 +49,8 @@ fn main(@builtin(global_invocation_id) GlobalInvocationID: vec3) { var index = GlobalInvocationID.x; let item = pass_in.particles[index]; - var v_pos = item.pos; - - if item.times < item.idx * 0.0001 { - let next = iterate(v_pos); + if (item.times * item.times) < item.idx * 0.2 { + let next = iterate(item.pos); pass_out.particles[index].pos = vec3(next.x, next.y, next.z); } else { pass_out.particles[index].pos = item.pos; diff --git a/src/demo-entry.mts b/src/demo-entry.mts index 0c2dc97..f8c593d 100644 --- a/src/demo-entry.mts +++ b/src/demo-entry.mts @@ -22,6 +22,7 @@ import {} from "./apps/lamps.mjs"; import {} from "./apps/debug-grid.mjs"; import {} from "./apps/attractor-den-tsucs.mjs"; import {} from "./apps/attractor-bouali.mjs"; +import {} from "./apps/orbits-2.mjs"; let instanceRenderer: (t: number, skipComputing: boolean) => void; let canvas = document.querySelector("#canvas-container") as HTMLCanvasElement; diff --git a/yarn.lock b/yarn.lock index 37432c9..8fa2cf7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,209 +2,224 @@ # yarn lockfile v1 -"@calcit/procs@^0.8.40": - version "0.8.40" - resolved "https://registry.yarnpkg.com/@calcit/procs/-/procs-0.8.40.tgz#ce2a6e3269816b021d674a3274d5a6b9f44ea1ff" - integrity sha512-kFMMggIQZlmg/gB1D3bRCzeoULXJu10y/vgmCIj9VKQPrBcfYB+9580Qa1NY/5hmzI5Pj84Iplr3YjlZb7WPQg== +"@calcit/procs@^0.8.50": + version "0.8.50" + resolved "https://registry.yarnpkg.com/@calcit/procs/-/procs-0.8.50.tgz#64466bc233297b195297eb4e5be5fc82215fe277" + integrity sha512-tU3u0uCmBmagU5ZDmjwud2MwGlWE7QL2fRAbzAuaZE+5G4rA2MrZcnZNIOJYeiJkd90fQV1c67EkqFWplGWKSw== dependencies: - "@calcit/ternary-tree" "0.0.23" + "@calcit/ternary-tree" "0.0.24" "@cirru/parser.ts" "^0.0.6" - "@cirru/writer.ts" "^0.1.4" + "@cirru/writer.ts" "^0.1.5" -"@calcit/ternary-tree@0.0.23": - version "0.0.23" - resolved "https://registry.yarnpkg.com/@calcit/ternary-tree/-/ternary-tree-0.0.23.tgz#a299f7ffd614ac2dfe2cbcf78506934df4008c77" - integrity sha512-GKHfokm1YBUvPprV9p227fDpE+w4lVl4YKQpfKoNEqvprJnC4HRXaa+QSLwZkvZlXr09hAA0x4l4ZKUIcbYydg== +"@calcit/ternary-tree@0.0.24": + version "0.0.24" + resolved "https://registry.yarnpkg.com/@calcit/ternary-tree/-/ternary-tree-0.0.24.tgz#9b58cf9f76c08c3995b98b59c71b85e1da32385c" + integrity sha512-IGs+VNYIrIF2bI3/cnQe2lFmZYaJe3+A0LArDloGbNaEzUTRoyba37FTZ8K9C+XRpUAO9K0q61sKY2vb4teWAA== "@cirru/parser.ts@^0.0.6": version "0.0.6" resolved "https://registry.yarnpkg.com/@cirru/parser.ts/-/parser.ts-0.0.6.tgz#b95a84e02273fcbd71ff100925782b6f86410234" integrity sha512-qpDNPq+IuuwYjQFI+wzpd3ntbF7lwJs90v1XWyLQbL9Ru4ld4aHxVGwW/9F/QOu5mEGCMXtagCoYDf0HtOpDZg== -"@cirru/writer.ts@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@cirru/writer.ts/-/writer.ts-0.1.4.tgz#4b5851d002ab7c4891457bf8c707f09620c8f122" - integrity sha512-Uy3Y7jjLdaxLW9ajZuIS9rp+dhaSVU95hRRwvnP6E16PwgPl+zGs6Xqn1L7Lqw07ypujrdBBdFQyRJOLc6IHQQ== - -"@esbuild/aix-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" - integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== - -"@esbuild/android-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" - integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== - -"@esbuild/android-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" - integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== - -"@esbuild/android-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" - integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== - -"@esbuild/darwin-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" - integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== - -"@esbuild/darwin-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" - integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== - -"@esbuild/freebsd-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" - integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== - -"@esbuild/freebsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" - integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== - -"@esbuild/linux-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" - integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== - -"@esbuild/linux-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" - integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== - -"@esbuild/linux-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" - integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== - -"@esbuild/linux-loong64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" - integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== - -"@esbuild/linux-mips64el@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" - integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== - -"@esbuild/linux-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" - integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== - -"@esbuild/linux-riscv64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" - integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== - -"@esbuild/linux-s390x@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" - integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== - -"@esbuild/linux-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" - integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== - -"@esbuild/netbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" - integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== - -"@esbuild/openbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" - integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== - -"@esbuild/sunos-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" - integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== - -"@esbuild/win32-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" - integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== - -"@esbuild/win32-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" - integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== - -"@esbuild/win32-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" - integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== - -"@rollup/rollup-android-arm-eabi@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz#b98786c1304b4ff8db3a873180b778649b5dff2b" - integrity sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg== - -"@rollup/rollup-android-arm64@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz#8833679af11172b1bf1ab7cb3bad84df4caf0c9e" - integrity sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q== - -"@rollup/rollup-darwin-arm64@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz#ef02d73e0a95d406e0eb4fd61a53d5d17775659b" - integrity sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g== - -"@rollup/rollup-darwin-x64@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz#3ce5b9bcf92b3341a5c1c58a3e6bcce0ea9e7455" - integrity sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg== - -"@rollup/rollup-linux-arm-gnueabihf@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz#3d3d2c018bdd8e037c6bfedd52acfff1c97e4be4" - integrity sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ== - -"@rollup/rollup-linux-arm64-gnu@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz#5fc8cc978ff396eaa136d7bfe05b5b9138064143" - integrity sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w== - -"@rollup/rollup-linux-arm64-musl@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz#f2ae7d7bed416ffa26d6b948ac5772b520700eef" - integrity sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw== - -"@rollup/rollup-linux-riscv64-gnu@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz#303d57a328ee9a50c85385936f31cf62306d30b6" - integrity sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA== - -"@rollup/rollup-linux-x64-gnu@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz#f672f6508f090fc73f08ba40ff76c20b57424778" - integrity sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA== - -"@rollup/rollup-linux-x64-musl@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz#d2f34b1b157f3e7f13925bca3288192a66755a89" - integrity sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw== - -"@rollup/rollup-win32-arm64-msvc@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz#8ffecc980ae4d9899eb2f9c4ae471a8d58d2da6b" - integrity sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA== - -"@rollup/rollup-win32-ia32-msvc@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz#a7505884f415662e088365b9218b2b03a88fc6f2" - integrity sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw== - -"@rollup/rollup-win32-x64-msvc@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz#6abd79db7ff8d01a58865ba20a63cfd23d9e2a10" - integrity sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw== +"@cirru/writer.ts@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@cirru/writer.ts/-/writer.ts-0.1.5.tgz#890d96cd4a69609f1682932dad5d2d467abb327e" + integrity sha512-QQVFJAOIdUtVJZwT23THZOzumSDXCLMQ0yFz5DzIGlWGXPNBuB7BwUvGtRuiQrzM2XV7ALOWmNsVC7vEOjObQQ== + +"@esbuild/aix-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" + integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== + +"@esbuild/android-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" + integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== + +"@esbuild/android-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" + integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== + +"@esbuild/android-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" + integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== + +"@esbuild/darwin-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" + integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== + +"@esbuild/darwin-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" + integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== + +"@esbuild/freebsd-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" + integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== + +"@esbuild/freebsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" + integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== + +"@esbuild/linux-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" + integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== + +"@esbuild/linux-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" + integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== + +"@esbuild/linux-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" + integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== + +"@esbuild/linux-loong64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" + integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== + +"@esbuild/linux-mips64el@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" + integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== + +"@esbuild/linux-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" + integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== + +"@esbuild/linux-riscv64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" + integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== + +"@esbuild/linux-s390x@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" + integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== + +"@esbuild/linux-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" + integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== + +"@esbuild/netbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" + integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== + +"@esbuild/openbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" + integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== + +"@esbuild/sunos-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" + integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== + +"@esbuild/win32-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" + integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== + +"@esbuild/win32-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" + integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== + +"@esbuild/win32-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" + integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== + +"@rollup/rollup-android-arm-eabi@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz#bddf05c3387d02fac04b6b86b3a779337edfed75" + integrity sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g== + +"@rollup/rollup-android-arm64@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz#b26bd09de58704c0a45e3375b76796f6eda825e4" + integrity sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ== + +"@rollup/rollup-darwin-arm64@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz#c5f3fd1aa285b6d33dda6e3f3ca395f8c37fd5ca" + integrity sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA== + +"@rollup/rollup-darwin-x64@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz#8e4673734d7dc9d68f6d48e81246055cda0e840f" + integrity sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw== + +"@rollup/rollup-linux-arm-gnueabihf@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz#53ed38eb13b58ababdb55a7f66f0538a7f85dcba" + integrity sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw== + +"@rollup/rollup-linux-arm-musleabihf@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz#0706ee38330e267a5c9326956820f009cfb21fcd" + integrity sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw== + +"@rollup/rollup-linux-arm64-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz#426fce7b8b242ac5abd48a10a5020f5a468c6cb4" + integrity sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA== + +"@rollup/rollup-linux-arm64-musl@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz#65bf944530d759b50d7ffd00dfbdf4125a43406f" + integrity sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw== + +"@rollup/rollup-linux-powerpc64le-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz#494ba3b31095e9a45df9c3f646d21400fb631a95" + integrity sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw== + +"@rollup/rollup-linux-riscv64-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz#8b88ed0a40724cce04aa15374ebe5ba4092d679f" + integrity sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ== + +"@rollup/rollup-linux-s390x-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz#09c9e5ec57a0f6ec3551272c860bb9a04b96d70f" + integrity sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg== + +"@rollup/rollup-linux-x64-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz#197f27fd481ad9c861021d5cbbf21793922a631c" + integrity sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA== + +"@rollup/rollup-linux-x64-musl@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz#5cc0522f4942f2df625e9bfb6fb02c6580ffbce6" + integrity sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg== + +"@rollup/rollup-win32-arm64-msvc@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz#a648122389d23a7543b261fba082e65fefefe4f6" + integrity sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg== + +"@rollup/rollup-win32-ia32-msvc@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz#34727b5c7953c35fc6e1ae4f770ad3a2025f8e03" + integrity sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw== + +"@rollup/rollup-win32-x64-msvc@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz#5b2fb4d8cd44c05deef8a7b0e6deb9ccb8939d18" + integrity sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA== "@triadica/touch-control@^0.0.4-a1": version "0.0.4-a1" @@ -258,34 +273,34 @@ error@^4.3.0: string-template "~0.2.0" xtend "~4.0.0" -esbuild@^0.19.3: - version "0.19.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" - integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== +esbuild@^0.20.1: + version "0.20.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" + integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== optionalDependencies: - "@esbuild/aix-ppc64" "0.19.12" - "@esbuild/android-arm" "0.19.12" - "@esbuild/android-arm64" "0.19.12" - "@esbuild/android-x64" "0.19.12" - "@esbuild/darwin-arm64" "0.19.12" - "@esbuild/darwin-x64" "0.19.12" - "@esbuild/freebsd-arm64" "0.19.12" - "@esbuild/freebsd-x64" "0.19.12" - "@esbuild/linux-arm" "0.19.12" - "@esbuild/linux-arm64" "0.19.12" - "@esbuild/linux-ia32" "0.19.12" - "@esbuild/linux-loong64" "0.19.12" - "@esbuild/linux-mips64el" "0.19.12" - "@esbuild/linux-ppc64" "0.19.12" - "@esbuild/linux-riscv64" "0.19.12" - "@esbuild/linux-s390x" "0.19.12" - "@esbuild/linux-x64" "0.19.12" - "@esbuild/netbsd-x64" "0.19.12" - "@esbuild/openbsd-x64" "0.19.12" - "@esbuild/sunos-x64" "0.19.12" - "@esbuild/win32-arm64" "0.19.12" - "@esbuild/win32-ia32" "0.19.12" - "@esbuild/win32-x64" "0.19.12" + "@esbuild/aix-ppc64" "0.20.2" + "@esbuild/android-arm" "0.20.2" + "@esbuild/android-arm64" "0.20.2" + "@esbuild/android-x64" "0.20.2" + "@esbuild/darwin-arm64" "0.20.2" + "@esbuild/darwin-x64" "0.20.2" + "@esbuild/freebsd-arm64" "0.20.2" + "@esbuild/freebsd-x64" "0.20.2" + "@esbuild/linux-arm" "0.20.2" + "@esbuild/linux-arm64" "0.20.2" + "@esbuild/linux-ia32" "0.20.2" + "@esbuild/linux-loong64" "0.20.2" + "@esbuild/linux-mips64el" "0.20.2" + "@esbuild/linux-ppc64" "0.20.2" + "@esbuild/linux-riscv64" "0.20.2" + "@esbuild/linux-s390x" "0.20.2" + "@esbuild/linux-x64" "0.20.2" + "@esbuild/netbsd-x64" "0.20.2" + "@esbuild/openbsd-x64" "0.20.2" + "@esbuild/sunos-x64" "0.20.2" + "@esbuild/win32-arm64" "0.20.2" + "@esbuild/win32-ia32" "0.20.2" + "@esbuild/win32-x64" "0.20.2" ev-store@^7.0.0: version "7.0.0" @@ -354,14 +369,14 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -postcss@^8.4.35: - version "8.4.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" - integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== +postcss@^8.4.38: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" - source-map-js "^1.0.2" + source-map-js "^1.2.0" process@^0.11.10: version "0.11.10" @@ -377,32 +392,35 @@ query-string@^9.0.0: filter-obj "^5.1.0" split-on-first "^3.0.0" -rollup@^4.2.0: - version "4.13.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.13.0.tgz#dd2ae144b4cdc2ea25420477f68d4937a721237a" - integrity sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg== +rollup@^4.13.0: + version "4.14.3" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.14.3.tgz#bcbb7784b35826d3164346fa6d5aac95190d8ba9" + integrity sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.13.0" - "@rollup/rollup-android-arm64" "4.13.0" - "@rollup/rollup-darwin-arm64" "4.13.0" - "@rollup/rollup-darwin-x64" "4.13.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.13.0" - "@rollup/rollup-linux-arm64-gnu" "4.13.0" - "@rollup/rollup-linux-arm64-musl" "4.13.0" - "@rollup/rollup-linux-riscv64-gnu" "4.13.0" - "@rollup/rollup-linux-x64-gnu" "4.13.0" - "@rollup/rollup-linux-x64-musl" "4.13.0" - "@rollup/rollup-win32-arm64-msvc" "4.13.0" - "@rollup/rollup-win32-ia32-msvc" "4.13.0" - "@rollup/rollup-win32-x64-msvc" "4.13.0" + "@rollup/rollup-android-arm-eabi" "4.14.3" + "@rollup/rollup-android-arm64" "4.14.3" + "@rollup/rollup-darwin-arm64" "4.14.3" + "@rollup/rollup-darwin-x64" "4.14.3" + "@rollup/rollup-linux-arm-gnueabihf" "4.14.3" + "@rollup/rollup-linux-arm-musleabihf" "4.14.3" + "@rollup/rollup-linux-arm64-gnu" "4.14.3" + "@rollup/rollup-linux-arm64-musl" "4.14.3" + "@rollup/rollup-linux-powerpc64le-gnu" "4.14.3" + "@rollup/rollup-linux-riscv64-gnu" "4.14.3" + "@rollup/rollup-linux-s390x-gnu" "4.14.3" + "@rollup/rollup-linux-x64-gnu" "4.14.3" + "@rollup/rollup-linux-x64-musl" "4.14.3" + "@rollup/rollup-win32-arm64-msvc" "4.14.3" + "@rollup/rollup-win32-ia32-msvc" "4.14.3" + "@rollup/rollup-win32-x64-msvc" "4.14.3" fsevents "~2.3.2" -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== split-on-first@^3.0.0: version "3.0.0" @@ -414,10 +432,10 @@ string-template@~0.2.0: resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" integrity sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== -typescript@^5.4.2: - version "5.4.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.2.tgz#0ae9cebcfae970718474fe0da2c090cad6577372" - integrity sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ== +typescript@^5.4.5: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== virtual-dom@^2.1.1: version "2.1.1" @@ -433,14 +451,14 @@ virtual-dom@^2.1.1: x-is-array "0.1.0" x-is-string "0.1.0" -vite@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.1.6.tgz#706dae5fab9e97f57578469eef1405fc483943e4" - integrity sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA== +vite@^5.2.9: + version "5.2.9" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.9.tgz#cd9a356c6ff5f7456c09c5ce74068ffa8df743d9" + integrity sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw== dependencies: - esbuild "^0.19.3" - postcss "^8.4.35" - rollup "^4.2.0" + esbuild "^0.20.1" + postcss "^8.4.38" + rollup "^4.13.0" optionalDependencies: fsevents "~2.3.3" From 365af9fc27cef9342d3010fe3f84bd7b8d6673a9 Mon Sep 17 00:00:00 2001 From: tiye Date: Sat, 20 Apr 2024 02:45:51 +0800 Subject: [PATCH 3/6] move orbits iterator to js --- src/apps/orbits-2.mts | 55 ++++++++++++++++++++++++------------------ src/apps/orbits-2.wgsl | 35 +++++---------------------- 2 files changed, 37 insertions(+), 53 deletions(-) diff --git a/src/apps/orbits-2.mts b/src/apps/orbits-2.mts index 917599d..8337c0a 100644 --- a/src/apps/orbits-2.mts +++ b/src/apps/orbits-2.mts @@ -3,7 +3,8 @@ import computeOrbits from "./orbits-2.wgsl?raw"; import { fiboGridN } from "../math.mjs"; export let loadRenderer = async (canvas: HTMLCanvasElement) => { - let seedSize = 800000; + let seedSize = 4194240; + // 4194304 let renderFrame = await createRenderer( canvas, @@ -33,28 +34,40 @@ export let loadRenderer = async (canvas: HTMLCanvasElement) => { return renderFrame; }; +let vv: [number, number] = [5.46, 4.55]; +// vv = [0.848, 4.783]; +// vv = [1.158, 1.93]; +// vv = [3.667, 3.934]; +// vv = [3.536, 5.575]; +// vv = [5.655, 5.16]; +vv = [5.937, 5.482]; +// vv = [2.3, 2.72]; +// vv = [5.46, 4.55]; + +let iterate = (p: [number, number]): [number, number] => { + let x = p[0]; + let y = p[1]; + let next_x = Math.sin(x * x - y * y + vv[0]); + let next_y = Math.cos(2 * x * y + vv[1]); + return [next_x, next_y]; +}; + function makeSeed(numParticles: number, _s: number): Float32Array { - const unit = 8; + const unit = 4; const buf = new Float32Array(numParticles * unit); // let scale = 200 * (Math.random() * 0.5 + 0.5); let scale_base = 1; + let p = [0.8, 0.8] as [number, number]; for (let i = 0; i < numParticles; ++i) { - let scale = scale_base + 0.0 * i; - let p = fiboGridN(i, numParticles); // let q = randPointInSphere(100); let b = unit * i; - buf[b + 0] = p[0] * scale; - buf[b + 1] = p[1] * scale; - buf[b + 2] = p[2] * 0; - buf[b + 3] = i; // index - buf[b + 4] = p[0] * scale; - buf[b + 5] = p[1] * scale; - buf[b + 6] = p[2] * scale; - buf[b + 7] = 0; - // buf[b + 8] = 0; - // buf[b + 9] = 0; - // buf[b + 10] = 0; - // buf[b + 11] = 0; + // buf[b + 0] = p[0] * scale; + // buf[b + 1] = p[1] * scale; + buf[b + 0] = p[0] * scale_base; + buf[b + 1] = p[1] * scale_base; + buf[b + 2] = 0; + buf[b + 3] = 0; // index + p = iterate(p); } return buf; @@ -63,23 +76,17 @@ function makeSeed(numParticles: number, _s: number): Float32Array { let vertexBufferLayout: GPUVertexBufferLayout[] = [ { // instanced particles buffer - arrayStride: 8 * 4, + arrayStride: 4 * 4, stepMode: "instance", attributes: [ { shaderLocation: 0, offset: 0, format: "float32x3" }, { shaderLocation: 1, offset: 3 * 4, format: "float32" }, - { shaderLocation: 2, offset: 4 * 4, format: "float32x3" }, - { shaderLocation: 3, offset: 7 * 4, format: "float32" }, - // { shaderLocation: 4, offset: 8 * 4, format: "float32" }, - // { shaderLocation: 5, offset: 9 * 4, format: "float32" }, - // { shaderLocation: 6, offset: 10 * 4, format: "float32" }, - // { shaderLocation: 7, offset: 11 * 4, format: "float32" }, ], }, { // vertex buffer arrayStride: 1 * 4, stepMode: "vertex", - attributes: [{ shaderLocation: 4, offset: 0, format: "uint32" }], + attributes: [{ shaderLocation: 2, offset: 0, format: "uint32" }], }, ]; diff --git a/src/apps/orbits-2.wgsl b/src/apps/orbits-2.wgsl index adb074f..6b07892 100644 --- a/src/apps/orbits-2.wgsl +++ b/src/apps/orbits-2.wgsl @@ -5,8 +5,8 @@ struct Particle { pos: vec3, idx: f32, - velocity: vec3, - times: f32, + // velocity: vec3, + // times: f32, // p1: f32, // p2: f32, // p3: f32, @@ -30,32 +30,9 @@ struct Particles { fn rand(n: f32) -> f32 { return fract(sin(n) * 43758.5453123); } -fn iterate(p: vec3) -> vec3 { - let x = p[0]; - let y = p[1]; - let z = p[2]; - // let next_x = sin(x * x - y * y + 0.848); - // let next_y = cos(2. * x * y + 4.783); - // let next_x = sin(x * x - y * y + 1.158); - // let next_y = cos(2. * x * y + 1.93); - let next_x = sin(x * x - y * y + 3.536); - let next_y = cos(2. * x * y + 5.575); - return vec3(next_y, next_x, z); -} - // https://github.com/austinEng/Project6-Vulkan-Flocking/blob/master/data/shaders/computeparticles/particle.comp @compute @workgroup_size(64) fn main(@builtin(global_invocation_id) GlobalInvocationID: vec3) { - var index = GlobalInvocationID.x; - let item = pass_in.particles[index]; - - if (item.times * item.times) < item.idx * 0.2 { - let next = iterate(item.pos); - pass_out.particles[index].pos = vec3(next.x, next.y, next.z); - } else { - pass_out.particles[index].pos = item.pos; - } - pass_out.particles[index].times = item.times + 1.; } struct VertexOutput { @@ -67,9 +44,9 @@ struct VertexOutput { fn vert_main( @location(0) position0: vec3, @location(1) point_idx: f32, - @location(2) velocity: vec3, - @location(3) times: f32, - @location(4) idx: u32, + // @location(2) velocity: vec3, + // @location(3) times: f32, + @location(2) idx: u32, ) -> VertexOutput { let position = position0 * 100.; var pos: vec3; @@ -79,7 +56,7 @@ fn vert_main( let up = normalize(upward); // let front = params.length; - var width = params.width * 1.4; + var width = params.width * 0.4; if idx == 0u { pos = position + right * width; From 2b38ec752a70f3d135a3db9081b507ab8192fd78 Mon Sep 17 00:00:00 2001 From: tiye Date: Sat, 20 Apr 2024 12:13:36 +0800 Subject: [PATCH 4/6] range initial values and retry with constant steps --- src/apps/orbits-2.mts | 48 ++++++++++++++++++++++++------------------ src/apps/orbits-2.wgsl | 35 +++++++++++++++++++++++++++++- 2 files changed, 62 insertions(+), 21 deletions(-) diff --git a/src/apps/orbits-2.mts b/src/apps/orbits-2.mts index 8337c0a..85df5ab 100644 --- a/src/apps/orbits-2.mts +++ b/src/apps/orbits-2.mts @@ -34,40 +34,48 @@ export let loadRenderer = async (canvas: HTMLCanvasElement) => { return renderFrame; }; -let vv: [number, number] = [5.46, 4.55]; -// vv = [0.848, 4.783]; -// vv = [1.158, 1.93]; -// vv = [3.667, 3.934]; -// vv = [3.536, 5.575]; -// vv = [5.655, 5.16]; -vv = [5.937, 5.482]; -// vv = [2.3, 2.72]; -// vv = [5.46, 4.55]; +// let vv: [number, number] = [5.46, 4.55]; +// // vv = [0.848, 4.783]; +// // vv = [1.158, 1.93]; +// // vv = [3.667, 3.934]; +// // vv = [3.536, 5.575]; +// // vv = [5.655, 5.16]; +// // vv = [5.937, 5.482]; +// // vv = [2.3, 2.72]; +// // vv = [5.46, 4.55]; +// // vv = [3.65, 4.58]; +// // vv = [0.02, 1.07]; +// vv = [5.68, 5.02]; -let iterate = (p: [number, number]): [number, number] => { - let x = p[0]; - let y = p[1]; - let next_x = Math.sin(x * x - y * y + vv[0]); - let next_y = Math.cos(2 * x * y + vv[1]); - return [next_x, next_y]; -}; +// let iterate = (p: [number, number]): [number, number] => { +// let x = p[0]; +// let y = p[1]; +// let next_x = Math.sin(x * x - y * y + vv[0]); +// let next_y = Math.cos(2 * x * y + vv[1]); +// return [next_x, next_y]; +// }; function makeSeed(numParticles: number, _s: number): Float32Array { const unit = 4; const buf = new Float32Array(numParticles * unit); // let scale = 200 * (Math.random() * 0.5 + 0.5); let scale_base = 1; - let p = [0.8, 0.8] as [number, number]; + // let p = [-0.4, 0.6] as [number, number]; + // p = [Math.random(), Math.random()]; for (let i = 0; i < numParticles; ++i) { // let q = randPointInSphere(100); + let p = fiboGridN(i, numParticles).slice(0, 2) as [number, number]; + // for (let j = 0; j < 20; ++j) { + // p = iterate(p); + // } let b = unit * i; // buf[b + 0] = p[0] * scale; // buf[b + 1] = p[1] * scale; buf[b + 0] = p[0] * scale_base; buf[b + 1] = p[1] * scale_base; - buf[b + 2] = 0; - buf[b + 3] = 0; // index - p = iterate(p); + buf[b + 2] = Math.random(); + buf[b + 3] = 0; // times + // p = iterate(p); } return buf; diff --git a/src/apps/orbits-2.wgsl b/src/apps/orbits-2.wgsl index 6b07892..70d6024 100644 --- a/src/apps/orbits-2.wgsl +++ b/src/apps/orbits-2.wgsl @@ -4,7 +4,7 @@ struct Particle { pos: vec3, - idx: f32, + times: f32, // velocity: vec3, // times: f32, // p1: f32, @@ -30,9 +30,41 @@ struct Particles { fn rand(n: f32) -> f32 { return fract(sin(n) * 43758.5453123); } +fn iterate(p: vec3) -> vec3 { + let x = p[0]; + let y = p[1]; + let z = p[2]; + + var vv = vec2f(0.848, 4.783); + // vv = vec2f(1.158, 1.93); + // vv = vec2f(3.667, 3.934); + // vv = vec2f(3.536, 5.575); + // vv = vec2f(5.655, 5.16); + // vv = vec2f(5.937, 5.482); + // vv = vec2f(2.3, 2.72); + // vv = vec2f(5.46, 4.55); + vv = vec2f(3.65, 4.58); + // vv = vec2f(0.02, 1.07); + let next_x = sin(x * x - y * y + vv.x); + let next_y = cos(2. * x * y + vv.y); + return vec3(next_y, next_x, z); +} + // https://github.com/austinEng/Project6-Vulkan-Flocking/blob/master/data/shaders/computeparticles/particle.comp @compute @workgroup_size(64) fn main(@builtin(global_invocation_id) GlobalInvocationID: vec3) { + var index = GlobalInvocationID.x; + let item = pass_in.particles[index]; + + let next = iterate(item.pos); + if item.times < 20. { + pass_out.particles[index].pos.x = next.x; + pass_out.particles[index].pos.y = next.y; + pass_out.particles[index].pos.z = item.pos.z; + } else { + pass_out.particles[index].pos = item.pos; + } + pass_out.particles[index].times = item.times + 1.; } struct VertexOutput { @@ -70,6 +102,7 @@ fn vert_main( } else { pos = position; } + pos.z = 0.0; var output: VertexOutput; let p0 = vec4(pos * 10.0, 1.0); From 7e05c631be01d187bfb2da635663a500fe93c657 Mon Sep 17 00:00:00 2001 From: tiye Date: Wed, 24 Apr 2024 01:36:28 +0800 Subject: [PATCH 5/6] loop variants of orbits --- src/apps/orbits-2.mts | 12 +++++-- src/apps/orbits-2.wgsl | 77 +++++++++++++++++++++++++++++++----------- 2 files changed, 66 insertions(+), 23 deletions(-) diff --git a/src/apps/orbits-2.mts b/src/apps/orbits-2.mts index 85df5ab..268e280 100644 --- a/src/apps/orbits-2.mts +++ b/src/apps/orbits-2.mts @@ -56,7 +56,7 @@ export let loadRenderer = async (canvas: HTMLCanvasElement) => { // }; function makeSeed(numParticles: number, _s: number): Float32Array { - const unit = 4; + const unit = 8; const buf = new Float32Array(numParticles * unit); // let scale = 200 * (Math.random() * 0.5 + 0.5); let scale_base = 1; @@ -75,6 +75,10 @@ function makeSeed(numParticles: number, _s: number): Float32Array { buf[b + 1] = p[1] * scale_base; buf[b + 2] = Math.random(); buf[b + 3] = 0; // times + buf[b + 4] = p[0] * scale_base; + buf[b + 5] = p[1] * scale_base; + buf[b + 6] = Math.random(); + buf[b + 7] = 0; // times // p = iterate(p); } @@ -84,17 +88,19 @@ function makeSeed(numParticles: number, _s: number): Float32Array { let vertexBufferLayout: GPUVertexBufferLayout[] = [ { // instanced particles buffer - arrayStride: 4 * 4, + arrayStride: 8 * 4, stepMode: "instance", attributes: [ { shaderLocation: 0, offset: 0, format: "float32x3" }, { shaderLocation: 1, offset: 3 * 4, format: "float32" }, + { shaderLocation: 2, offset: 4 * 4, format: "float32x3" }, + { shaderLocation: 3, offset: 7 * 4, format: "float32" }, ], }, { // vertex buffer arrayStride: 1 * 4, stepMode: "vertex", - attributes: [{ shaderLocation: 2, offset: 0, format: "uint32" }], + attributes: [{ shaderLocation: 4, offset: 0, format: "uint32" }], }, ]; diff --git a/src/apps/orbits-2.wgsl b/src/apps/orbits-2.wgsl index 70d6024..c7d6b10 100644 --- a/src/apps/orbits-2.wgsl +++ b/src/apps/orbits-2.wgsl @@ -5,8 +5,8 @@ struct Particle { pos: vec3, times: f32, - // velocity: vec3, - // times: f32, + pos0: vec3, + times2: f32, // p1: f32, // p2: f32, // p3: f32, @@ -30,21 +30,50 @@ struct Particles { fn rand(n: f32) -> f32 { return fract(sin(n) * 43758.5453123); } -fn iterate(p: vec3) -> vec3 { +fn pick_param(n: u32) -> vec2f { + switch n { + case 0u: { + return vec2f(0.1, 0.6); + } + case 1u: { + return vec2f(3.667, 3.934); + } + case 2u: { + return vec2f(3.536, 5.575); + } + case 3u: { + return vec2f(5.655, 5.16); + } + case 4u: { + return vec2f(5.937, 5.482); + } + case 5u: { + return vec2f(2.3, 2.72); + } + case 6u: { + return vec2f(5.46, 4.55); + } + case 7u: { + return vec2f(3.65, 4.58); + } + case 8u: { + return vec2f(2.65, 1.58); + } + case 9u: { + return vec2f(-2.65, -.8); + } + default: { + return vec2f(1.158, 1.93); + } + } +} + +fn iterate(p: vec3, n: u32) -> vec3 { let x = p[0]; let y = p[1]; let z = p[2]; - var vv = vec2f(0.848, 4.783); - // vv = vec2f(1.158, 1.93); - // vv = vec2f(3.667, 3.934); - // vv = vec2f(3.536, 5.575); - // vv = vec2f(5.655, 5.16); - // vv = vec2f(5.937, 5.482); - // vv = vec2f(2.3, 2.72); - // vv = vec2f(5.46, 4.55); - vv = vec2f(3.65, 4.58); - // vv = vec2f(0.02, 1.07); + var vv = pick_param(n); let next_x = sin(x * x - y * y + vv.x); let next_y = cos(2. * x * y + vv.y); return vec3(next_y, next_x, z); @@ -56,15 +85,23 @@ fn main(@builtin(global_invocation_id) GlobalInvocationID: vec3) { var index = GlobalInvocationID.x; let item = pass_in.particles[index]; - let next = iterate(item.pos); - if item.times < 20. { + let duration = 50.; + let try_idx = u32(item.times2 / duration) % 10u; + + let next = iterate(item.pos, try_idx); + if item.times < duration { pass_out.particles[index].pos.x = next.x; pass_out.particles[index].pos.y = next.y; pass_out.particles[index].pos.z = item.pos.z; + pass_out.particles[index].times = item.times + 1.; + pass_out.particles[index].times2 = item.times2 + 1.; } else { - pass_out.particles[index].pos = item.pos; + pass_out.particles[index].pos.x = item.pos0.x; + pass_out.particles[index].pos.y = item.pos0.y; + pass_out.particles[index].times = 0.; + pass_out.particles[index].times2 = item.times2 + 1.; + // pass_out.particles[index].pos = item.pos; } - pass_out.particles[index].times = item.times + 1.; } struct VertexOutput { @@ -76,9 +113,9 @@ struct VertexOutput { fn vert_main( @location(0) position0: vec3, @location(1) point_idx: f32, - // @location(2) velocity: vec3, - // @location(3) times: f32, - @location(2) idx: u32, + @location(2) velocity: vec3, + @location(3) times: f32, + @location(4) idx: u32, ) -> VertexOutput { let position = position0 * 100.; var pos: vec3; From 73fc15e5357921e8d5217f2c14f2a38504e4da23 Mon Sep 17 00:00:00 2001 From: tiye Date: Wed, 24 Apr 2024 01:38:30 +0800 Subject: [PATCH 6/6] fix calcit in ci script --- .github/workflows/upload.yaml | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/.github/workflows/upload.yaml b/.github/workflows/upload.yaml index 4eded86..003c2d0 100644 --- a/.github/workflows/upload.yaml +++ b/.github/workflows/upload.yaml @@ -17,17 +17,9 @@ jobs: node-version: 20 cache: 'yarn' - - uses: supplypike/setup-bin@v3 + - uses: calcit-lang/setup-cr@0.0.3 with: - uri: 'https://github.com/calcit-lang/calcit/releases/download/0.8.19/cr' - name: 'cr' - version: '0.8.19' - - - uses: supplypike/setup-bin@v3 - with: - uri: 'https://github.com/calcit-lang/calcit/releases/download/0.8.19/caps' - name: 'caps' - version: '0.8.19' + version: "0.8.50" - name: "compiles calcit to js" run: caps --ci && cr --emit-js --once