// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas
// compiled preview • scanner demo /* generated for visual effect – not executed */ const SCAN_WIDTH = 8; const FADE_ZONE = 35; cons t MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b, t) { return a + (b - a) * t; } const now = () => performance.now( ); function rng(min, max) { return Math.random() * (max - min) + m in; } class Particle { constructor(x, y, vx, vy, r, a) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } } const scanner = { x: Math.floor(window.innerWidth / 2), width: SCA N_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y - p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b ounds = { w: window.innerWidth, h: 300 }; const gradient = documen t.createElement('canvas'); const ctx = gradient.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; const state = { intensit y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn erWidth, h: 300 }; const gradient = document.createElement('canvas

Create a free website with Framer, the website builder loved by startups, designers and agencies.