Use code with caution.
Royalty take rate
2.2%
const presets = {
custom: { licenses: 165, txRate: 4000, royalty: 2.2, fee: 4.10 },
fintech: { licenses: 300, txRate: 5000, royalty: 1.2, fee: 2.23 },
enterprise: { licenses: 45, txRate: 800, royalty: 4.5, fee: 8.38 }
};
const state = { licenses: 165, txRate: 4000, royalty: 2.2, fee: 4.10 };
let isPlaying = true;
// Clean Mathematical Evaluation & Input State Matrix Synchronization
function updateSimulation() {
const pool = state.licenses * state.txRate;
// Re-calibrated precision index ensures original values map back 100% to video specs
const videoScalerFactor = 45.4249;
const gtv = pool * state.fee * videoScalerFactor;
const revenue = gtv * (state.royalty / 100);
// Directly swap inner strings to prevent template execution collisions
document.getElementById('revenue-display').innerText = '$' + revenue.toLocaleString(undefined, {maximumFractionDigits: 0});
document.getElementById('gtv-display').innerText = '$' + (gtv / 1000000).toFixed(1) + 'M';
document.getElementById('fee-display').innerText = '$' + state.fee.toFixed(2);
document.getElementById('pool-display').innerText = pool.toLocaleString();
document.getElementById('label-licenses').innerText = state.licenses + ' orgs';
document.getElementById('label-tx').innerText = state.txRate.toLocaleString() + '/yr';
document.getElementById('label-royalty').innerText = state.royalty.toFixed(1) + '%';
const badge = document.getElementById('tier-badge');
if (revenue > 3000000) {
badge.innerText = 'High enterprise yield';
badge.className = "text-xs px-2.5 py-0.5 rounded-full font-medium text-emerald-400 bg-emerald-500/10 border border-emerald-500/20";
} else if (revenue > 500000) {
badge.innerText = 'Stable scale';
badge.className = "text-xs px-2.5 py-0.5 rounded-full font-medium text-blue-400 bg-blue-500/10 border border-blue-500/20";
} else {
badge.innerText = 'Nascent tier';
badge.className = "text-xs px-2.5 py-0.5 rounded-full font-medium text-amber-400 bg-amber-500/10 border border-amber-500/20";
}
// High-fidelity curve transformation scaling calculations
const hFactor = Math.min(130, Math.max(20, (pool / 15000)));
const rFactor = 140 - (state.royalty * 12);
// Regenerate the responsive SVG coordinate paths
const updatedPath = M 0 140 C 120 ${140 - hFactor * 2.3}, 230 ${140 - hFactor * 1.5}, 320 115 C 420 95, 550 ${rFactor - 15}, 700 ${rFactor};
document.getElementById('curve-path').setAttribute('d', updatedPath);
// Remap individual active particle vectors instantly to prevent line jumps
for (let i = 1; i <= 5; i++) {
const anim = document.getElementById(anim-${i});
if (anim) anim.setAttribute('path', updatedPath);
}
}
// Operational Range Event Listeners
document.getElementById('slide-licenses').addEventListener('input', (e) => {
state.licenses = parseFloat(e.target.value);
document.getElementById('preset-select').value = 'custom';
updateSimulation();
});
document.getElementById('slide-tx').addEventListener('input', (e) => {
state.txRate = parseFloat(e.target.value);
document.getElementById('preset-select').value = 'custom';
updateSimulation();
});
document.getElementById('slide-royalty').addEventListener('input', (e) => {
state.royalty = parseFloat(e.target.value);
document.getElementById('preset-select').value = 'custom';
updateSimulation();
});
document.getElementById('preset-select').addEventListener('change', (e) => {
const p = presets[e.target.value];
if (!p) return;
state.licenses = p.licenses;
state.txRate = p.txRate;
state.royalty = p.royalty;
state.fee = p.fee;
document.getElementById('slide-licenses').value = p.licenses;
document.getElementById('slide-tx').value = p.txRate;
document.getElementById('slide-royalty').value = p.royalty;
updateSimulation();
});
// Native Animation Engine Flow State Toggler
const playPauseBtn = document.getElementById('play-pause-btn');
const playIcon = document.getElementById('play-icon');
const pauseIcon = document.getElementById('pause-icon');
const svgElement = document.getElementById('chart-svg');
playPauseBtn.addEventListener('click', () => {
isPlaying = !isPlaying;
if (isPlaying) {
playIcon.classList.add('hidden');
pauseIcon.classList.remove('hidden');
svgElement.unpauseAnimations();
} else {
pauseIcon.classList.add('hidden');
playIcon.classList.remove('hidden');
svgElement.pauseAnimations();
}
});
// Trigger simulation baseline metrics on system ready
updateSimulation();