Chrysanthemum Polar Blossom
High-density harmonic polar flower foliation based on Paul Bourke's Chrysanthemum curve, displaying hundreds of golden amber curved petal curls unfolding around a Fibonacci disk core.
60 FPS • Canvas 2D
Click + Drag to interact with field
</>
Full Executable Algorithm Code
128 lines
4322 chars
// 068 - Chrysanthemum Polar Blossom (botany)
// 1:1 Original algorithm engine source
function createChrysanthemumBloom() {
return {
setup() {
},
render(context, timeState, params) {
const { ctx, width, height } = context;
const speed = Number(params.bloomRate ?? 0.5);
const petalDensity = Number(params.petalDensity ?? 11);
const curlIntensity = Number(params.curlIntensity ?? 4);
const layers = Math.max(2, Math.min(5, Math.round(Number(params.spiralLayers ?? 3))));
const t = timeState.time * speed;
ctx.fillStyle = "#060504";
ctx.fillRect(0, 0, width, height);
const cx = width * 0.5;
const cy = height * 0.5;
const maxR = Math.min(width, height) * 0.42;
ctx.save();
ctx.translate(cx, cy);
const baseHue = 38;
const totalSteps = 1200;
const totalTurns = 16 * Math.PI;
for (let layer = 1; layer <= layers; layer++) {
const lFrac = layer / layers;
const scale = maxR / 11 * (0.4 + 0.6 * lFrac);
const pMod = petalDensity + Math.sin(t * 0.5 + layer) * 0.4;
const layerPhase = t * (layer % 2 === 0 ? 0.35 : -0.28) + layer * Math.PI / layers;
ctx.beginPath();
for (let i = 0; i <= totalSteps; i++) {
const u = i / totalSteps;
const theta = u * totalTurns;
const p1 = 5 * (1 + Math.sin(pMod * theta / 5 + layerPhase));
const p2 = curlIntensity * Math.pow(Math.sin(17 * theta / 3 - t * 0.8), 4);
const p3 = Math.pow(Math.sin(9 * theta - Math.PI * 0.5 + layerPhase * 0.5), 8);
const r = Math.max(0.1, p1 - p2 * p3) * scale;
const px = Math.cos(theta) * r;
const py = Math.sin(theta) * r;
if (i === 0) ctx.moveTo(px, py);
else ctx.lineTo(px, py);
}
const layerHue = (baseHue + (layer - 1) * 14 + Math.sin(t * 2) * 6) % 360;
ctx.strokeStyle = hsla(layerHue, 92, 68 + layer * 4, 0.45 + lFrac * 0.35);
ctx.lineWidth = 1.2;
ctx.stroke();
}
const coreR = maxR * 0.12;
const diskFlorets = 60;
for (let f = 0; f < diskFlorets; f++) {
const theta = f * 137.508 * (Math.PI / 180) + t * 0.1;
const fr = coreR * Math.sqrt(f / diskFlorets);
const fx = Math.cos(theta) * fr;
const fy = Math.sin(theta) * fr;
ctx.fillStyle = hsla(baseHue - 15 + f % 10 * 2, 95, 78, 0.85);
ctx.beginPath();
ctx.arc(fx, fy, 1.8, 0, Math.PI * 2);
ctx.fill();
}
ctx.fillStyle = hsla(baseHue + 15, 100, 90, 0.95);
ctx.beginPath();
ctx.arc(0, 0, 3.2, 0, Math.PI * 2);
ctx.fill();
ctx.restore();
}
};
}
// Default parameters from content metadata
const defaultParams = [
{
"key": "petalDensity",
"label": "Harmonic Petal Pitch",
"type": "range",
"min": 7,
"max": 19,
"step": 2,
"defaultValue": 11,
"description": "Harmonic frequency of primary petal oscillations"
},
{
"key": "curlIntensity",
"label": "Petal Curl Depth",
"type": "range",
"min": 2,
"max": 6,
"step": 0.5,
"defaultValue": 4,
"description": "High-order sine power curl amplitude"
},
{
"key": "spiralLayers",
"label": "Nested Layers",
"type": "range",
"min": 2,
"max": 5,
"step": 1,
"defaultValue": 3,
"description": "Number of concentric foliation passes"
},
{
"key": "bloomRate",
"label": "Unfurling Speed",
"type": "range",
"min": 0.2,
"max": 1.5,
"step": 0.1,
"defaultValue": 0.5,
"description": "Angular rotation and dynamic curl rate"
}
];
if (!window.__art_instances) window.__art_instances = {};
if (!window.__art_instances['chrysanthemum-bloom']) {
const inst = typeof createChrysanthemumBloom === 'function' ? createChrysanthemumBloom() : null;
if (inst && inst.setup) {
inst.setup({ ctx, width, height, dpr: 1, aspectRatio: width / height }, defaultParams);
}
window.__art_instances['chrysanthemum-bloom'] = inst;
}
const instance = window.__art_instances['chrysanthemum-bloom'];
if (instance && instance.render) {
instance.render(
{ ctx, width, height, dpr: 1, aspectRatio: width / height },
{ time, deltaTime: dt, frameCount: Math.floor(time * 60), fps: 60 },
defaultParams
);
} Edit in Interactive Playground
Zero Dependencies • Standalone Canvas 2D
ƒ
Mathematical Formulation
high
Analytical Equation
r(θ)=5(1+sin511θ)−4sin4317θsin8(9θ−2π),0≤θ≤16π
Click to expand
∑
Chrysanthemum Polar Blossom
Full Mathematical System • botany
100%
Complete System of Equations
[Governing Law][Discrete Progression]theta/5))−4⋅sin4(17theta/3)⋅sin8(9theta−π/2)[Domain & Space][Parameter State]r(θ)=5(1+sin511θ)−4sin4317θsin8(9θ−2π),0≤θ≤16πr=5⋅(1+sin(11x∈R2,t∈R+,ω∈[0,2π]λpetalDensity=11(Harmonic Petal Pitch),λcurlIntensity=4(Petal Curl Depth),λspiralLayers=3(Nested Layers),λbloomRate=0.5(Unfurling Speed)
r(θ)=5(1+sin511θ)−4sin4317θsin8(9θ−2π),0≤θ≤16π
Computational Implementation (JavaScript Engine Equivalent)
r = 5*(1 + sin(11θ/5)) - 4*sin^4(17θ/3)*sin^8(9θ - π/2) Compact Formula
r = 5*(1 + sin(11θ/5)) - 4*sin^4(17θ/3)*sin^8(9θ - π/2) Mathematical Tags
#chrysanthemum
#flower
#bourke
#polar
#botany
#harmonics
#petals
#gold
Author: Math Art Core Target: 60 FPS
Press ESC or F to exit