CLAUDE ANIMATIONS

Bonus, frontiera tehnologică

Animații în cod cu Claude, Modvia Academy, 2026

🏅NIVEL ∞

Bonus, frontiera tehnologică

Fizică, WebGPU, mișcare condusă de AI, View Transitions API. Încotro se îndreaptă web-ul.

🎯 XP la finalizare: 800🏅 Badge deblocat

 

 

Lecția 1, Fizică cu Matter.js (2D)

Matter.js e un motor de fizică 2D. Bile care sar la drag-and-drop, text care cade, podele lipicioase, cu gravitație și coliziuni realiste.

📜 Prompt Playbook,
Cel mai bun AI. De ce.
import Matter from 'matter-js';
import { useEffect, useRef } from 'react';

export function FallingLetters({ text }) {
  const ref = useRef();
  useEffect(() => {
    const Engine = Matter.Engine, Render = Matter.Render, Bodies = Matter.Bodies, World = Matter.World, Mouse = Matter.Mouse, MouseConstraint = Matter.MouseConstraint;
    const engine = Engine.create();
    const render = Render.create({ element: ref.current, engine, options: { width: 600, height: 400, wireframes: false, background: 'transparent' } });
    const ground = Bodies.rectangle(300, 400, 600, 20, { isStatic: true });
    const letters = text.split('').map((ch, i) => Bodies.rectangle(50 + i * 35, 50, 30, 30, { restitution: 0.6, render: { fillStyle: '#8b5cf6' } }));
    World.add(engine.world, [ground, ...letters]);
    const mouse = Mouse.create(render.canvas);
    World.add(engine.world, MouseConstraint.create(engine, { mouse }));
    Matter.Runner.run(engine);
    Render.run(render);
    return () => { Render.stop(render); World.clear(engine.world); Engine.clear(engine); };
  }, [text]);
  return <div ref={ref} />;
}

 

Lecția 2, Fizică 3D cu Rapier

Pentru fizică 3D în R3F, folosește @react-three/rapier. Corpuri rigide, joints, vehicule, ragdolls.

📜 Prompt Playbook,
Cel mai bun AI. De ce.
npm install @react-three/rapier

import { Physics, RigidBody, CuboidCollider } from '@react-three/rapier';

<Canvas>
  <Physics gravity={[0, -9.8, 0]}>
    <RigidBody><mesh position={[0, 5, 0]}><boxGeometry /><meshStandardMaterial /></mesh></RigidBody>
    <CuboidCollider args={[10, 0.5, 10]} position={[0, -1, 0]} />
  </Physics>
</Canvas>

 

Lecția 3, View Transitions API, revoluția tranzițiilor între pagini

Browserele au livrat un API nativ pentru animarea între pagini sau stări ale DOM-ului. O singură linie de cod transformă vederea veche în cea nouă.

📜 Prompt Playbook,
Cel mai bun AI. De ce.
// In React Router or any router
function navigate(to) {
  if (!document.startViewTransition) return router.push(to);
  document.startViewTransition(() => router.push(to));
}

/* CSS: dă unui element partajat același view-transition-name pe ambele pagini, iar browserul îl transformă */
.hero-image { view-transition-name: hero; }

 

Lecția 4, WebGPU, viitorul graficii din browser

WebGPU înlocuiește WebGL cu un API modern, cu overhead mai mic. Three.js îl suportă prin WebGPURenderer. Câștigurile mari sunt shaderele grele, compute (rularea de calcule paralele pe GPU) și inferența ML în browser.

În 2026, suportul WebGPU e larg în Chrome, Edge, Safari. Folosește feature detection și cazi înapoi pe WebGL pentru browserele mai vechi.

 

Lecția 5, Mișcare condusă de AI cu Claude în producție

Cea mai futuristă mișcare: generezi animație în timp real cu Claude, pe baza input-ului utilizatorului. Un utilizator scrie 'fă cardul ăsta să pară furios', Claude returnează parametrii de timing GSAP, iar site-ul tău îi aplică.

📜 Prompt Playbook,
Cel mai bun AI. De ce.
// Server endpoint
app.post('/animate', async (req, res) => {
  const { mood } = req.body;
  const r = await client.messages.create({
    model: 'claude-sonnet-4-6',
    max_tokens: 200,
    messages: [{ role: 'user', content: `Return JSON only. Animation params for mood='${mood}'. Schema, { duration: ms, easing: cubic-bezier values, scaleFrom, yFrom, rotation }.` }],
  });
  res.json(JSON.parse(r.content[0].text));
});

 

Lecția 6, Checklist-ul 'gata de Awwwards'

 

🎯 Pachet de quest-uri Bonus

 

🥉 QUEST BRONZ +150 XP
🪐Construiește un hero cu fizică de cădere

Obiectiv. Adaugă o jucăușenie tactilă portofoliului tău.

Pași
  1. Folosește Matter.js ca să construiești un hero în care utilizatorii pot face drag-and-drop la literele numelui tău.
  2. Adaugă un buton mic de 'reset', totul cade înapoi la locul lui.
  3. Adaugă la /bonus/physics în sandbox-ul tău.
Gata când…
  • ☐ Drag-and-drop funcționează pe desktop și mobil
  • ☐ Butonul de reset funcționează

 

🥈 QUEST ARGINT +250 XP
🌐Folosește View Transitions pentru galeria portofoliului

Obiectiv. Dai click pe o miniatură și o vezi transformându-se într-o pagină completă de studiu de caz.

Pași
  1. Alege 3 piese de portofoliu.
  2. Setează view-transition-name pe imaginea hero a fiecăreia.
  3. Conectează document.startViewTransition() la click.
  4. Testează în Chrome și Edge. Documentează fallback-ul pentru Firefox/Safari.
Gata când…
  • ☐ Tranziție de morph fluidă pe browserele suportate
  • ☐ Fallback documentat

 

🥇 QUEST AUR +500 XP
🏆Depune o aplicație la Awwwards

Obiectiv. Chiar dacă nu câștigi, doar badge-ul justifică munca.

Pași
  1. Ia site-ul tău de la Boss Battle sau un proiect nou.
  2. Treci prin checklist-ul din Lecția 6.
  3. Șlefuiește o săptămână, în fiecare zi o mică sesiune de măiestrie.
  4. Depune la Awwwards (taxă de înscriere 15 USD).
  5. Oricare ar fi verdictul, scrie o postare publică 'making of' pe Twitter și pe blogul tău.
  6. Folosește munca ca să câștigi 1 client nou la 8.000+ USD.
Gata când…
  • ☐ Aplicație depusă la Awwwards
  • ☐ Postare 'making of' live
  • ☐ 1 client semnat la 8.000+ USD