Bioluminescent Orchid Epiphyte
Exotic tropical orchid displaying zygomorphic bilateral floral symmetry, glowing violet dorsal sepals, flared lateral petals, a neon cyan labellum lip, and floating luminous pollen spores.
60 FPS • Canvas 2D
Click + Drag to interact with field
</>
Full Executable Algorithm Code
161 lines
5975 chars
// 069 - Bioluminescent Orchid Epiphyte (botany)
// 1:1 Original algorithm engine source
function createBioluminescentOrchid() {
return {
setup() {
},
render(context, timeState, params) {
const { ctx, width, height } = context;
const glow = Number(params.luminescence ?? 1);
const pulseSpeed = Number(params.pulseSpeed ?? 0.5);
const veinDensity = Math.max(3, Math.min(8, Math.round(Number(params.veinDensity ?? 5))));
const t = timeState.time * pulseSpeed;
ctx.fillStyle = "#040308";
ctx.fillRect(0, 0, width, height);
const cx = width * 0.5;
const cy = height * 0.52;
const maxR = Math.min(width, height) * 0.42;
ctx.save();
ctx.translate(cx, cy);
const cyanHue = 185;
const violetHue = 285;
const pulse = 1 + 0.08 * Math.sin(t * 2);
for (let s = 0; s < 25; s++) {
const sSeed = s * 99.7;
const sa = Math.sin(sSeed + t * 0.3) * Math.PI * 2;
const sr = maxR * 0.2 + s * 37 % Math.floor(maxR * 0.85);
const px = Math.cos(sa) * sr;
const py = Math.sin(sa) * sr - Math.sin(t + s) * 15;
const sAlpha = 0.2 + 0.4 * Math.sin(t * 1.5 + s);
ctx.fillStyle = hsla(cyanHue + s % 3 * 30, 95, 75, sAlpha * glow);
ctx.beginPath();
ctx.arc(px, py, 1.2 + s % 3 * 0.6, 0, Math.PI * 2);
ctx.fill();
}
function drawPetal(ctrl1X, ctrl1Y, tipX, tipY, ctrl2X, ctrl2Y, hue, alpha) {
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.bezierCurveTo(ctrl1X, ctrl1Y, tipX * 0.7, tipY * 0.9, tipX, tipY);
ctx.bezierCurveTo(tipX * 0.3, tipY * 0.9, ctrl2X, ctrl2Y, 0, 0);
ctx.fillStyle = hsla(hue, 90, 60, alpha * 0.35 * glow);
ctx.fill();
ctx.strokeStyle = hsla(hue + 15, 95, 78, alpha * glow);
ctx.lineWidth = 1.3;
ctx.stroke();
for (let v = 1; v <= veinDensity; v++) {
const vFrac = v / (veinDensity + 1);
ctx.beginPath();
ctx.moveTo(0, 0);
const vx = tipX * vFrac + (ctrl1X + ctrl2X) * 0.25 * (1 - vFrac);
const vy = tipY * vFrac;
ctx.quadraticCurveTo(vx * 0.7, vy * 0.7, vx, vy);
ctx.strokeStyle = hsla(cyanHue, 100, 85, 0.25 * glow);
ctx.lineWidth = 0.75;
ctx.stroke();
}
}
const dLen = maxR * 0.75 * pulse;
const dWidth = dLen * 0.38;
drawPetal(-dWidth, -dLen * 0.45, 0, -dLen, dWidth, -dLen * 0.45, violetHue, 0.85);
const latSepLen = maxR * 0.78 * pulse;
const latSepWidth = latSepLen * 0.35;
ctx.save();
ctx.rotate(Math.PI * 0.38 + Math.sin(t) * 0.03);
drawPetal(-latSepWidth, latSepLen * 0.45, 0, latSepLen, latSepWidth, latSepLen * 0.45, violetHue + 15, 0.8);
ctx.restore();
ctx.save();
ctx.rotate(-Math.PI * 0.38 - Math.sin(t) * 0.03);
drawPetal(-latSepWidth, latSepLen * 0.45, 0, latSepLen, latSepWidth, latSepLen * 0.45, violetHue + 15, 0.8);
ctx.restore();
const wingLen = maxR * 0.88 * pulse;
const wingWidth = wingLen * 0.45;
ctx.save();
ctx.rotate(Math.PI * 0.58 + Math.sin(t * 1.2) * 0.04);
drawPetal(-wingWidth * 0.7, -wingLen * 0.3, 0, -wingLen, wingWidth * 0.7, -wingLen * 0.3, violetHue - 15, 0.9);
ctx.restore();
ctx.save();
ctx.rotate(-Math.PI * 0.58 - Math.sin(t * 1.2) * 0.04);
drawPetal(-wingWidth * 0.7, -wingLen * 0.3, 0, -wingLen, wingWidth * 0.7, -wingLen * 0.3, violetHue - 15, 0.9);
ctx.restore();
const lipLen = maxR * 0.55 * pulse;
const lipWidth = lipLen * 0.65;
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.bezierCurveTo(-lipWidth * 0.8, lipLen * 0.3, -lipWidth, lipLen * 0.8, 0, lipLen);
ctx.bezierCurveTo(lipWidth, lipLen * 0.8, lipWidth * 0.8, lipLen * 0.3, 0, 0);
ctx.fillStyle = hsla(cyanHue, 95, 55, 0.45 * glow);
ctx.fill();
ctx.strokeStyle = hsla(cyanHue + 15, 100, 85, 0.95 * glow);
ctx.lineWidth = 1.6;
ctx.stroke();
for (let r = 1; r <= 3; r++) {
ctx.beginPath();
ctx.ellipse(0, lipLen * 0.45, lipWidth * (0.2 * r), lipLen * (0.15 * r), 0, 0, Math.PI * 2);
ctx.strokeStyle = hsla(50, 100, 80, 0.5 * glow);
ctx.lineWidth = 1;
ctx.stroke();
}
ctx.fillStyle = hsla(55, 100, 90, 0.95);
ctx.beginPath();
ctx.arc(0, 0, 3.5, 0, Math.PI * 2);
ctx.fill();
ctx.fillStyle = hsla(cyanHue, 100, 90, 0.4 * glow);
ctx.beginPath();
ctx.arc(0, 0, 9, 0, Math.PI * 2);
ctx.fill();
ctx.restore();
}
};
}
// Default parameters from content metadata
const defaultParams = [
{
"key": "luminescence",
"label": "Glow Intensity",
"type": "range",
"min": 0.4,
"max": 1.6,
"step": 0.1,
"defaultValue": 1,
"description": "Bioluminescent emission strength"
},
{
"key": "veinDensity",
"label": "Vein Strands",
"type": "range",
"min": 3,
"max": 8,
"step": 1,
"defaultValue": 5,
"description": "Number of radiant petal vein filaments"
},
{
"key": "pulseSpeed",
"label": "Pulse Cadence",
"type": "range",
"min": 0.2,
"max": 1.5,
"step": 0.1,
"defaultValue": 0.5,
"description": "Luminous breathing rate"
}
];
if (!window.__art_instances) window.__art_instances = {};
if (!window.__art_instances['bioluminescent-orchid']) {
const inst = typeof createBioluminescentOrchid === 'function' ? createBioluminescentOrchid() : null;
if (inst && inst.setup) {
inst.setup({ ctx, width, height, dpr: 1, aspectRatio: width / height }, defaultParams);
}
window.__art_instances['bioluminescent-orchid'] = inst;
}
const instance = window.__art_instances['bioluminescent-orchid'];
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
Bsepal(u)=i=0∑3(i3)(1−u)3−iuiPi,pleft(x,y)=[−xy]right
Click to expand
∑
Bioluminescent Orchid Epiphyte
Full Mathematical System • botany
100%
Complete System of Equations
[Governing Law][Discrete Progression][Domain & Space][Parameter State]Bsepal(u)=i=0∑3(i3)(1−u)3−iuiPi,pleft(x,y)=[−xy]rightdorsal=bezier(base,ctrl,tip),lip=bezier(base,cyanctrl,nectarspur)x∈R2,t∈R+,ω∈[0,2π]λluminescence=1(Glow Intensity),λveinDensity=5(Vein Strands),λpulseSpeed=0.5(Pulse Cadence)
Bsepal(u)=i=0∑3(i3)(1−u)3−iuiPi,pleft(x,y)=[−xy]right
Computational Implementation (JavaScript Engine Equivalent)
dorsal = bezier(base, ctrl, tip), lip = bezier(base, cyan_ctrl, nectar_spur) Compact Formula
dorsal = bezier(base, ctrl, tip), lip = bezier(base, cyan_ctrl, nectar_spur) Mathematical Tags
#orchid
#bioluminescent
#flower
#botany
#neon
#cyan
#violet
#symmetry
#exotic
Author: Math Art Core Target: 60 FPS
Press ESC or F to exit