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,74 @@
import type { AnimPlugin } from './types'
/**
* Ts diagram of the Carnot cycle — the canonical 2nd-law diagram:
* isotherms are horizontal, adiabatics vertical, heat = area.
* Same 5 phases as carnot-cycle-anim (piston) so both tell one story.
*/
export const tsDiagramAnim: AnimPlugin = {
family: 'anim',
id: 'ts-diagram',
title: {
fr: 'Le cycle de Carnot sur le diagramme Ts',
en: 'The Carnot cycle on the Ts diagram',
},
summary: {
fr: 'Diagramme températureentropie (Ts) du cycle de Carnot : isothermes horizontales, adiabatiques verticales, aires = chaleurs Q_h et Q_c, aire du cycle = travail W. 2ᵉ principe, entropie, rendement.',
en: 'Temperatureentropy (Ts) diagram of the Carnot cycle: horizontal isotherms, vertical adiabatics, areas = heats Q_h and Q_c, cycle area = work W. Second law, entropy, efficiency.',
},
keywords: [
'carnot',
'entropie',
'entropy',
'diagramme t-s',
't-s diagram',
'thermodynamique',
'thermodynamics',
'deuxième principe',
'second law',
'rendement',
'efficiency',
'cycle',
],
disclaimer: {
fr: 'Diagramme pédagogique — grandeurs illustratives.',
en: 'Teaching diagram — illustrative values.',
},
beats: [
{
id: 'b1',
speak: {
fr: '**Détente isotherme** à $T_h$ : lentropie croît, la chaleur $Q_h = T_h \\Delta s$ est laire sous lisotherme.',
en: '**Isothermal expansion** at $T_h$: entropy grows, heat $Q_h = T_h \\Delta s$ is the area under the isotherm.',
},
},
{
id: 'b2',
speak: {
fr: '**Détente adiabatique** : verticale — lentropie est constante, la température chute de $T_h$ à $T_c$.',
en: '**Adiabatic expansion**: vertical line — entropy is constant, temperature drops from $T_h$ to $T_c$.',
},
},
{
id: 'b3',
speak: {
fr: '**Compression isotherme** à $T_c$ : lentropie décroît, la chaleur $Q_c = T_c \\Delta s$ est rejetée — laire bleue.',
en: '**Isothermal compression** at $T_c$: entropy decreases, heat $Q_c = T_c \\Delta s$ is rejected — the blue area.',
},
},
{
id: 'b4',
speak: {
fr: '**Compression adiabatique** : remontée verticale de $T_c$ à $T_h$ — le rectangle se referme.',
en: '**Adiabatic compression**: vertical climb from $T_c$ back to $T_h$ — the rectangle closes.',
},
},
{
id: 'b5',
speak: {
fr: 'Le **travail net** $W = (T_h - T_c)\\Delta s$ est laire du rectangle. Rapport des aires = rendement $\\eta = 1 - T_c/T_h$ — le maximum du 2ᵉ principe.',
en: '**Net work** $W = (T_h - T_c)\\Delta s$ is the rectangle area. Area ratio = efficiency $\\eta = 1 - T_c/T_h$ — the second-law maximum.',
},
},
],
}