feat: page interactive, démos Play/Step et simulateur Carnot

Ajoute le pipeline PageSpec (validation, rendu, publication /p/{slug}),
les démos TipTap /demo, et le simulateur Carnot (modes frigo/PAC/moteur,
énergie kJ vs puissance W, unités K/°C/°F) avec correctifs d’équations KaTeX.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Antigravity
2026-07-24 17:51:43 +00:00
parent f385d43d5d
commit 69c99e4f4f
67 changed files with 12005 additions and 33 deletions

View File

@@ -0,0 +1,76 @@
import type { AnimPlugin } from './types'
/**
* Carnot cycle — animated piston + live P-V diagram, 5 beats.
* Scene rendered by components/simulators/carnot-cycle-anim-view.tsx.
*/
export const carnotCycleAnim: AnimPlugin = {
family: 'anim',
id: 'carnot-cycle-anim',
title: {
fr: 'Le cycle de Carnot en mouvement',
en: 'The Carnot cycle in motion',
},
summary: {
fr: 'Animation du cycle de Carnot : piston, détentes/compressions isothermes et adiabatiques, diagramme P-V tracé en direct, échanges Q et W. 2ᵉ principe, machine thermique, réfrigérateur.',
en: 'Animated Carnot cycle: piston, isothermal and adiabatic expansion/compression, live P-V diagram, Q and W exchanges. Second law, heat engine, refrigerator.',
},
keywords: [
'carnot',
'thermodynamique',
'thermodynamics',
'cycle',
'piston',
'isotherme',
'adiabatique',
'isothermal',
'adiabatic',
'entropie',
'entropy',
'machine thermique',
'heat engine',
'deuxième principe',
'second law',
],
disclaimer: {
fr: 'Schéma pédagogique — grandeurs illustratives, gaz parfait.',
en: 'Teaching schematic — illustrative values, ideal gas.',
},
beats: [
{
id: 'b1',
speak: {
fr: '**Détente isotherme** à $T_h$ : le gaz pousse le piston, la chaleur $Q_h$ entre depuis la source chaude.',
en: '**Isothermal expansion** at $T_h$: the gas pushes the piston, heat $Q_h$ flows in from the hot reservoir.',
},
},
{
id: 'b2',
speak: {
fr: '**Détente adiabatique** : isolé, le gaz continue de se détendre et se refroidit de $T_h$ à $T_c$.',
en: '**Adiabatic expansion**: insulated, the gas keeps expanding and cools from $T_h$ down to $T_c$.',
},
},
{
id: 'b3',
speak: {
fr: '**Compression isotherme** à $T_c$ : on travaille sur le gaz, la chaleur $Q_c$ sort vers la source froide.',
en: '**Isothermal compression** at $T_c$: work is done on the gas, heat $Q_c$ flows out to the cold reservoir.',
},
},
{
id: 'b4',
speak: {
fr: '**Compression adiabatique** : le gaz remonte de $T_c$ à $T_h$ — le cycle se referme.',
en: '**Adiabatic compression**: the gas warms back from $T_c$ to $T_h$ — the cycle closes.',
},
},
{
id: 'b5',
speak: {
fr: "Le **travail net** $W = Q_h - Q_c$ est l'aire du cycle sur le diagramme $P$$V$. Le rendement $\eta = 1 - T_c/T_h$ est le maximum permis par le 2ᵉ principe.",
en: '**Net work** $W = Q_h - Q_c$ is the cycle area on the $P$$V$ diagram. Efficiency $\eta = 1 - T_c/T_h$ is the second-law maximum.',
},
},
],
}