// 3️⃣ Add a perpetual warp animation (rotate around θ) warp( axis: 'θ', speed: 0.25, // radians per second easing: 'linear', );
// 2️⃣ Add a few cards positioned around the torus const data = [ title: 'Welcome', subtitle: 'WebE Tori 01‑05' , title: 'Features', subtitle: 'Parametric Layout' , title: 'Docs', subtitle: 'Read the manual' , title: 'Marketplace', subtitle: 'Install components' , ];
Keep a dual‑bundle during transition ( @webe/tori/legacy ) and gradually replace legacy components. The runtime detects mixed‑mode usage and logs helpful warnings. 7. Performance Benchmarks All tests were run on a MacBook Pro M2 , Chrome 124, with the Chrome DevTools tori‑panel active. webe tori model 01-05
# 2️⃣ Initialise a new project (optional CLI helper) npx webe-tori init my‑tori‑demo cd my‑tori‑demo
data.forEach((item, i) => // θ = i * 90° (π/2 rad), φ = 0 for all cards const theta = (i * Math.PI) / 2; const phi = 0; // 3️⃣ Add a perpetual warp animation (rotate
app.add(card); );
// 1️⃣ Create the root app const app = createTorusApp( // Projection: equirectangular (default) projection: 'equirect', // Optional global theme tokens theme: colors: primary: '#0066ff', surface: '#fafafa' , curvature: 0.8, // 0 = flat, 1 = perfect torus , ); Performance Benchmarks All tests were run on a
| Test | #Elements | Avg. FPS (GPU) | Avg. CPU % | Memory (MB) | Comments | |------|-----------|----------------|------------|-------------|----------| | Simple card carousel (12 cards) | 12 | | 2 % | 38 | Baseline – negligible load. | | Large dashboard (4 200 tiles, each with sparkline) | 4 200 | 61 | 8 % | 212 | GPU‑solver kept frame time < 16 ms. | | AR overlay (180 objects, depth‑sorting) | 180 | 78 | 5 % | 65 | GPU‑based depth‑sort handled 60 Hz head‑tracking. | | Accessibility‑only mode (CPU fallback) | 1 200 | 32 | 14 % | 96 | Acceptable for low‑end devices; auto‑fallback triggered. |