@jjlmoya/utils-science 1.33.0 → 1.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +3 -1
  4. package/src/index.ts +1 -0
  5. package/src/tests/locale_completeness.test.ts +2 -2
  6. package/src/tests/tool_validation.test.ts +2 -2
  7. package/src/tool/natural-selection-drift/component.astro +37 -6
  8. package/src/tool/natural-selection-drift/natural-selection-drift.css +134 -0
  9. package/src/tool/three-body-problem/app.ts +274 -0
  10. package/src/tool/three-body-problem/bibliography.astro +14 -0
  11. package/src/tool/three-body-problem/bibliography.ts +16 -0
  12. package/src/tool/three-body-problem/component.astro +70 -0
  13. package/src/tool/three-body-problem/entry.ts +26 -0
  14. package/src/tool/three-body-problem/i18n/de.ts +162 -0
  15. package/src/tool/three-body-problem/i18n/en.ts +162 -0
  16. package/src/tool/three-body-problem/i18n/es.ts +162 -0
  17. package/src/tool/three-body-problem/i18n/fr.ts +162 -0
  18. package/src/tool/three-body-problem/i18n/id.ts +162 -0
  19. package/src/tool/three-body-problem/i18n/it.ts +162 -0
  20. package/src/tool/three-body-problem/i18n/ja.ts +162 -0
  21. package/src/tool/three-body-problem/i18n/ko.ts +162 -0
  22. package/src/tool/three-body-problem/i18n/nl.ts +162 -0
  23. package/src/tool/three-body-problem/i18n/pl.ts +162 -0
  24. package/src/tool/three-body-problem/i18n/pt.ts +162 -0
  25. package/src/tool/three-body-problem/i18n/ru.ts +162 -0
  26. package/src/tool/three-body-problem/i18n/sv.ts +162 -0
  27. package/src/tool/three-body-problem/i18n/tr.ts +162 -0
  28. package/src/tool/three-body-problem/i18n/zh.ts +162 -0
  29. package/src/tool/three-body-problem/index.ts +11 -0
  30. package/src/tool/three-body-problem/logic/ThreeBodyEngine.ts +179 -0
  31. package/src/tool/three-body-problem/seo.astro +15 -0
  32. package/src/tool/three-body-problem/three-body-problem-simulator.css +503 -0
  33. package/src/tools.ts +2 -0
@@ -0,0 +1,26 @@
1
+ import type { ScienceToolEntry } from '../../types';
2
+
3
+ export const threeBodyProblem: ScienceToolEntry = {
4
+ id: 'three-body-problem-simulator',
5
+ icons: {
6
+ bg: 'mdi:orbit-variant',
7
+ fg: 'mdi:vector-polyline',
8
+ },
9
+ i18n: {
10
+ de: () => import('./i18n/de').then((m) => m.content),
11
+ en: () => import('./i18n/en').then((m) => m.content),
12
+ es: () => import('./i18n/es').then((m) => m.content),
13
+ fr: () => import('./i18n/fr').then((m) => m.content),
14
+ id: () => import('./i18n/id').then((m) => m.content),
15
+ it: () => import('./i18n/it').then((m) => m.content),
16
+ ja: () => import('./i18n/ja').then((m) => m.content),
17
+ ko: () => import('./i18n/ko').then((m) => m.content),
18
+ nl: () => import('./i18n/nl').then((m) => m.content),
19
+ pl: () => import('./i18n/pl').then((m) => m.content),
20
+ pt: () => import('./i18n/pt').then((m) => m.content),
21
+ ru: () => import('./i18n/ru').then((m) => m.content),
22
+ sv: () => import('./i18n/sv').then((m) => m.content),
23
+ tr: () => import('./i18n/tr').then((m) => m.content),
24
+ zh: () => import('./i18n/zh').then((m) => m.content),
25
+ },
26
+ };
@@ -0,0 +1,162 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'dreikoerperproblem-simulator';
5
+ const title = 'Dreikörperproblem Simulator';
6
+ const description = 'Simuliere drei Gravitationskörper in einer zweidimensionalen Ebene mit einstellbaren Massen, Geschwindigkeitsvektoren, Spuren und stabilen oder chaotischen Voreinstellungen.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Wähle eine orbitale Voreinstellung',
11
+ text: 'Beginne mit der Achterbahn für einen stabilen Referenzfall, dem Lagrange-Dreieck für ein rotierendes Gleichgewicht oder der Schleudervoreinstellung für eine sichtbar chaotische Begegnung.',
12
+ },
13
+ {
14
+ name: 'Passe Massen und Geschwindigkeitsvektoren an',
15
+ text: 'Nutze die Schieberegler für jeden Körper, um Masse und anfängliche Geschwindigkeitskomponenten zu ändern. Kleine Änderungen können ein Muster bewahren, verformen oder vollständig zerstören.',
16
+ },
17
+ {
18
+ name: 'Lies die Diagnosewerte',
19
+ text: 'Beobachte die Gesamtenergie, die nächste und entfernteste Entfernung sowie den Massenschwerpunkt, um zu verstehen, ob die numerische Umlaufbahn gebunden bleibt oder auseinanderdriftet.',
20
+ },
21
+ ];
22
+
23
+ const faq = [
24
+ {
25
+ question: 'Was ist das Dreikörperproblem?',
26
+ answer: 'Das Dreikörperproblem fragt, wie sich drei Massen bewegen, wenn jeder Körper die beiden anderen gravitativ anzieht. Anders als beim Zweikörperproblem gibt es keine allgemeine geschlossene Gleichung, die jede mögliche Konfiguration löst, daher werden die meisten praktischen Fälle mit numerischer Integration untersucht.',
27
+ },
28
+ {
29
+ question: 'Warum sind Dreikörperumlaufbahnen instabil?',
30
+ answer: 'Viele Dreikörpersysteme sind empfindlich gegenüber Anfangsbedingungen. Eine winzige Änderung der Geschwindigkeit, Position oder Masse verändert den Zeitpunkt naher Begegnungen, und diese Begegnungen können dramatisch Energie austauschen. Das Ergebnis ist ein System, das eine Weile gebunden bleiben und dann plötzlich einen Körper ausstoßen kann.',
31
+ },
32
+ {
33
+ question: 'Was zeigt die Achterbahn-Voreinstellung?',
34
+ answer: 'Die Achterbahn-Voreinstellung ist eine berühmte periodische Lösung für drei gleiche Massen. Jeder Körper folgt derselben Bahn mit einem Phasenversatz und zeigt, dass das Dreikörperproblem elegante stabile Inseln innerhalb einer viel größeren chaotischen Landschaft enthalten kann.',
35
+ },
36
+ {
37
+ question: 'Ist dies ein physikalisch exakter Astronomie-Simulator?',
38
+ answer: 'Dieses Werkzeug verwendet ein abgeschwächtes newtonsches Modell und einen symplektischen Geschwindigkeits-Verlet-Schritt, damit die Bewegung für das Lernen treu und stabil wirkt. Es ist für die interaktive Erkundung konzipiert, nicht für die hochpräzise Ephemeridenvorhersage.',
39
+ },
40
+ {
41
+ question: 'Wie sollte ich die Gesamtenergie interpretieren?',
42
+ answer: 'Negative Gesamtenergie deutet normalerweise auf ein gebundenes System hin, während Energie nahe Null eine Flucht erleichtern kann. In einer numerischen Simulation warnt eine große Energiedrift auch davor, dass der Zeitschritt oder die Begegnungsgeometrie den Integrator überlastet.',
43
+ },
44
+ ];
45
+
46
+ export const content: ToolLocaleContent = {
47
+ slug,
48
+ title,
49
+ description,
50
+ ui: {
51
+ title,
52
+ kicker: 'Gravitations-Chaos-Labor',
53
+ canvasLabel: 'Interaktive zweidimensionale Dreikörper-Orbit-Leinwand',
54
+ presetsLabel: 'Orbitale Voreinstellungen',
55
+ figureEightPreset: 'Achterbahn',
56
+ lagrangePreset: 'Lagrange-Dreieck',
57
+ slingshotPreset: 'Schleuder',
58
+ pauseButton: 'Pause',
59
+ playButton: 'Abspielen',
60
+ resetButton: 'Zurücksetzen',
61
+ speedLabel: 'Simulationsgeschwindigkeit',
62
+ trailLabel: 'Spurlänge',
63
+ massLabel: 'Masse',
64
+ velocityXLabel: 'Geschwindigkeit X',
65
+ velocityYLabel: 'Geschwindigkeit Y',
66
+ energyLabel: 'Gesamtenergie',
67
+ separationLabel: 'Entfernungsbereich',
68
+ centerMassLabel: 'Massenschwerpunkt',
69
+ },
70
+ seo: [
71
+ {
72
+ type: 'title',
73
+ text: 'Interaktiver Dreikörperproblem-Simulator für orbitales Chaos',
74
+ level: 2,
75
+ },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'Das Dreikörperproblem ist eine der klarsten Demonstrationen dafür, dass einfache Gesetze komplizierte Bewegungen erzeugen können. Die newtonsche Gravitation liefert eine kompakte Kraftregel, aber sobald ein dritter massiver Körper zum System hinzukommt, formt jeder Orbit kontinuierlich die beiden anderen um. Dieser Simulator lässt dich direkt mit dieser Instabilität experimentieren: Wähle eine bekannte Konfiguration, passe Massen und Geschwindigkeitsvektoren an und beobachte, ob die Körper eine sich wiederholende Umlaufbahn, ein rotierendes Dreieck oder ein chaotisches Streuereignis bilden.',
79
+ },
80
+ {
81
+ type: 'title',
82
+ text: 'Was die Voreinstellungen zeigen',
83
+ level: 3,
84
+ },
85
+ {
86
+ type: 'table',
87
+ headers: ['Voreinstellung', 'Physikalische Idee', 'Worauf achten'],
88
+ rows: [
89
+ ['<strong>Achterbahn</strong>', 'Eine periodische Lösung mit gleichen Massen, bei der alle drei Körper dieselbe Schleife teilen.', 'Der Orbit bleibt nur organisiert, wenn Symmetrie und Geschwindigkeitsgleichgewicht sorgfältig erhalten bleiben.'],
90
+ ['<strong>Lagrange-Dreieck</strong>', 'Drei Körper besetzen ein gleichseitiges Dreieck, das sich um den Massenschwerpunkt dreht.', 'Massenbilanz und Tangentialgeschwindigkeit verhindern, dass das Dreieck nach innen kollabiert.'],
91
+ ['<strong>Schleuder</strong>', 'Eine nahe Begegnung überträgt Energie zwischen den Körpern.', 'Ein Körper kann an Geschwindigkeit gewinnen, während ein anderer stärker gebunden wird, was zeigt, warum chaotische Ausstöße auftreten.'],
92
+ ],
93
+ },
94
+ {
95
+ type: 'title',
96
+ text: 'Warum kleine Änderungen wichtig sind',
97
+ level: 3,
98
+ },
99
+ {
100
+ type: 'paragraph',
101
+ html: 'Bei einem Zweikörper-Orbit bieten der Massenschwerpunkt und die Orbitalellipse ein stabiles geometrisches Bild. In einem Dreikörpersystem wirken nahe Vorbeiflüge wie gravitative Verhandlungen: Ein Körper kann orbitale Energie ausleihen, scharf die Richtung ändern oder eine geordnete Schleife in ein Streuereignis verwandeln. Diese Empfindlichkeit ist der Grund, warum reale astrophysikalische Systeme wie Dreifachsterne, Planeten-Mond-Begegnungen und frühe Sonnensystem-Planetesimale oft numerische Integration erfordern und nicht eine einzige einfache Formel.',
102
+ },
103
+ {
104
+ type: 'title',
105
+ text: 'Wie man die Diagnose verwendet',
106
+ level: 3,
107
+ },
108
+ {
109
+ type: 'list',
110
+ items: [
111
+ '<strong>Gesamtenergie</strong> hilft dir zu beurteilen, ob das System gebunden ist und ob die numerische Integration stabil bleibt.',
112
+ '<strong>Entfernungsbereich</strong> zeigt die nächsten und entferntesten Paarabstände, wodurch Beinahekollisionen und Ausstöße leicht zu erkennen sind.',
113
+ '<strong>Massenschwerpunkt</strong> sollte relativ stabil bleiben, wenn der anfängliche Impuls ausgeglichen ist; eine Drift deutet auf eine absichtlich asymmetrische Konfiguration oder einen geänderten Geschwindigkeitsvektor hin.',
114
+ '<strong>Spurlänge</strong> offenbart die langfristige Struktur: Kurze Spuren betonen die aktuelle Interaktion, während lange Spuren sich wiederholende Schleifen und langsame orbitale Präzession sichtbar machen.',
115
+ ],
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'Im Werkzeug verwendetes numerisches Modell',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'Der Simulator verwendet die newtonsche invers-quadratische Anziehung mit einem kleinen Glättungsterm, der visuelle Explosionen bei extrem nahen Vorbeiflügen verhindert. Die Bewegung wird mit einem Geschwindigkeits-Verlet-Schritt vorangetrieben, einer gängigen Wahl für Orbit-Demonstrationen, da er das Energieverhalten besser handhabt als ein einfaches Euler-Update. Das Ergebnis ist ein reaktionsschnelles Bildungsmodell, das das qualitative Verhalten des Dreikörperproblems sichtbar macht, ohne professionelle Himmelsmechanik-Software ersetzen zu wollen.',
125
+ },
126
+ ],
127
+ faq,
128
+ bibliography,
129
+ howTo,
130
+ schemas: [
131
+ {
132
+ '@context': 'https://schema.org',
133
+ '@type': 'SoftwareApplication',
134
+ name: title,
135
+ description,
136
+ applicationCategory: 'ScientificApplication',
137
+ operatingSystem: 'Any',
138
+ },
139
+ {
140
+ '@context': 'https://schema.org',
141
+ '@type': 'FAQPage',
142
+ mainEntity: faq.map((item) => ({
143
+ '@type': 'Question',
144
+ name: item.question,
145
+ acceptedAnswer: {
146
+ '@type': 'Answer',
147
+ text: item.answer,
148
+ },
149
+ })),
150
+ },
151
+ {
152
+ '@context': 'https://schema.org',
153
+ '@type': 'HowTo',
154
+ name: title,
155
+ step: howTo.map((step) => ({
156
+ '@type': 'HowToStep',
157
+ name: step.name,
158
+ text: step.text,
159
+ })),
160
+ },
161
+ ],
162
+ };
@@ -0,0 +1,162 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'three-body-problem-simulator';
5
+ const title = 'Three Body Problem Simulator';
6
+ const description = 'Simulate three gravitational bodies in a two-dimensional plane with editable masses, velocity vectors, trails, and stable or chaotic presets.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Choose an orbital preset',
11
+ text: 'Start with the figure-eight orbit for a stable benchmark, the Lagrange triangle for a rotating equilibrium, or the slingshot preset for a visibly chaotic encounter.',
12
+ },
13
+ {
14
+ name: 'Adjust masses and velocity vectors',
15
+ text: 'Use the sliders for each body to change mass and initial velocity components. Small changes can preserve a pattern, deform it, or destroy it entirely.',
16
+ },
17
+ {
18
+ name: 'Read the diagnostics',
19
+ text: 'Watch total energy, nearest and farthest separation, and center of mass to understand whether the numerical orbit remains bounded or is drifting apart.',
20
+ },
21
+ ];
22
+
23
+ const faq = [
24
+ {
25
+ question: 'What is the three-body problem?',
26
+ answer: 'The three-body problem asks how three masses move when each body gravitationally attracts the other two. Unlike the two-body problem, there is no general closed-form equation that solves every possible configuration, so most practical cases are explored with numerical integration.',
27
+ },
28
+ {
29
+ question: 'Why are three-body orbits unstable?',
30
+ answer: 'Many three-body systems are sensitive to initial conditions. A tiny change in velocity, position, or mass changes the timing of close encounters, and those encounters can exchange energy dramatically. The result is a system that may remain bounded for a while and then suddenly eject one body.',
31
+ },
32
+ {
33
+ question: 'What does the figure-eight preset show?',
34
+ answer: 'The figure-eight preset is a famous periodic solution for three equal masses. Each body follows the same path with a phase offset, demonstrating that the three-body problem can contain elegant stable islands inside a much larger chaotic landscape.',
35
+ },
36
+ {
37
+ question: 'Is this a physically exact astronomy simulator?',
38
+ answer: 'This tool uses a softened Newtonian model and a symplectic-style velocity Verlet step so the motion feels faithful and stable for learning. It is designed for interactive exploration rather than high-precision ephemeris prediction.',
39
+ },
40
+ {
41
+ question: 'How should I interpret total energy?',
42
+ answer: 'Negative total energy usually indicates a bound system, while energy closer to zero can make escape easier. In a numerical simulation, large energy drift also warns that the time step or encounter geometry is stressing the integrator.',
43
+ },
44
+ ];
45
+
46
+ export const content: ToolLocaleContent = {
47
+ slug,
48
+ title,
49
+ description,
50
+ ui: {
51
+ title,
52
+ kicker: 'Gravitational chaos lab',
53
+ canvasLabel: 'Interactive two-dimensional three-body orbit canvas',
54
+ presetsLabel: 'Orbital presets',
55
+ figureEightPreset: 'Figure eight',
56
+ lagrangePreset: 'Lagrange triangle',
57
+ slingshotPreset: 'Slingshot',
58
+ pauseButton: 'Pause',
59
+ playButton: 'Play',
60
+ resetButton: 'Reset',
61
+ speedLabel: 'Simulation speed',
62
+ trailLabel: 'Trail length',
63
+ massLabel: 'Mass',
64
+ velocityXLabel: 'Velocity X',
65
+ velocityYLabel: 'Velocity Y',
66
+ energyLabel: 'Total energy',
67
+ separationLabel: 'Separation range',
68
+ centerMassLabel: 'Center of mass',
69
+ },
70
+ seo: [
71
+ {
72
+ type: 'title',
73
+ text: 'Interactive Three-Body Problem Simulator for Orbital Chaos',
74
+ level: 2,
75
+ },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'The three-body problem is one of the clearest demonstrations that simple laws can produce complicated motion. Newtonian gravity gives a compact force rule, but the moment a third massive body joins the system, each orbit continuously reshapes the other two. This simulator lets you experiment with that instability directly: choose a known configuration, adjust masses and velocity vectors, and watch whether the bodies form a repeating orbit, a rotating triangle, or a chaotic scattering event.',
79
+ },
80
+ {
81
+ type: 'title',
82
+ text: 'What the Presets Demonstrate',
83
+ level: 3,
84
+ },
85
+ {
86
+ type: 'table',
87
+ headers: ['Preset', 'Physical idea', 'What to look for'],
88
+ rows: [
89
+ ['<strong>Figure eight</strong>', 'A periodic equal-mass solution where all three bodies share the same loop.', 'The orbit remains organized only when symmetry and velocity balance are carefully preserved.'],
90
+ ['<strong>Lagrange triangle</strong>', 'Three bodies occupy an equilateral triangle that rotates around the center of mass.', 'Mass balance and tangential velocity keep the triangle from collapsing inward.'],
91
+ ['<strong>Slingshot</strong>', 'A close encounter transfers energy between bodies.', 'One body can gain speed while another becomes more tightly bound, revealing why chaotic ejections occur.'],
92
+ ],
93
+ },
94
+ {
95
+ type: 'title',
96
+ text: 'Why Small Changes Matter',
97
+ level: 3,
98
+ },
99
+ {
100
+ type: 'paragraph',
101
+ html: 'In a two-body orbit, the center of mass and orbital ellipse provide a stable geometric picture. In a three-body system, close passes act like gravitational negotiations: a body can borrow orbital energy, change direction sharply, or convert an orderly loop into a scattering event. That sensitivity is why real astrophysical systems such as triple stars, planet-moon encounters, and early solar-system planetesimals often require numerical integration rather than a single neat formula.',
102
+ },
103
+ {
104
+ type: 'title',
105
+ text: 'How to Use the Diagnostics',
106
+ level: 3,
107
+ },
108
+ {
109
+ type: 'list',
110
+ items: [
111
+ '<strong>Total energy</strong> helps you judge whether the system is bound and whether the numerical integration is staying stable.',
112
+ '<strong>Separation range</strong> shows the closest and farthest pair distances, making near-collisions and ejections easy to spot.',
113
+ '<strong>Center of mass</strong> should remain relatively steady when the initial momentum is balanced; drift suggests an intentionally asymmetric setup or a changed velocity vector.',
114
+ '<strong>Trail length</strong> reveals long-term structure: short trails emphasize the current interaction, while long trails expose repeating loops and slow orbital precession.',
115
+ ],
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'Numerical Model Used in the Tool',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'The simulator uses Newtonian inverse-square attraction with a small softening term that prevents visual blow-ups during extremely close passes. Motion is advanced with a velocity Verlet style step, a common choice for orbital demonstrations because it handles energy behavior better than a simple Euler update. The result is a responsive educational model that makes the qualitative behavior of the three-body problem visible without pretending to replace professional celestial mechanics software.',
125
+ },
126
+ ],
127
+ faq,
128
+ bibliography,
129
+ howTo,
130
+ schemas: [
131
+ {
132
+ '@context': 'https://schema.org',
133
+ '@type': 'SoftwareApplication',
134
+ name: title,
135
+ description,
136
+ applicationCategory: 'ScientificApplication',
137
+ operatingSystem: 'Any',
138
+ },
139
+ {
140
+ '@context': 'https://schema.org',
141
+ '@type': 'FAQPage',
142
+ mainEntity: faq.map((item) => ({
143
+ '@type': 'Question',
144
+ name: item.question,
145
+ acceptedAnswer: {
146
+ '@type': 'Answer',
147
+ text: item.answer,
148
+ },
149
+ })),
150
+ },
151
+ {
152
+ '@context': 'https://schema.org',
153
+ '@type': 'HowTo',
154
+ name: title,
155
+ step: howTo.map((step) => ({
156
+ '@type': 'HowToStep',
157
+ name: step.name,
158
+ text: step.text,
159
+ })),
160
+ },
161
+ ],
162
+ };
@@ -0,0 +1,162 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'simulador-problema-tres-cuerpos';
5
+ const title = 'Simulador del Problema de los Tres Cuerpos';
6
+ const description = 'Simula tres cuerpos gravitacionales en un plano bidimensional con masas editables, vectores de velocidad, estelas y ajustes preestablecidos estables o caóticos.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Elige un ajuste orbital preestablecido',
11
+ text: 'Empieza con la órbita en forma de ocho para una referencia estable, el triángulo de Lagrange para un equilibrio rotatorio o el ajuste de honda gravitatoria para un encuentro visiblemente caótico.',
12
+ },
13
+ {
14
+ name: 'Ajusta las masas y los vectores de velocidad',
15
+ text: 'Usa los deslizadores de cada cuerpo para cambiar la masa y las componentes iniciales de la velocidad. Cambios pequeños pueden conservar un patrón, deformarlo o destruirlo por completo.',
16
+ },
17
+ {
18
+ name: 'Lee los diagnósticos',
19
+ text: 'Vigila la energía total, la separación máxima y mínima, y el centro de masas para saber si la órbita numérica sigue siendo estable o se está desintegrando.',
20
+ },
21
+ ];
22
+
23
+ const faq = [
24
+ {
25
+ question: '¿Qué es el problema de los tres cuerpos?',
26
+ answer: 'El problema de los tres cuerpos pregunta cómo se mueven tres masas cuando cada una atrae gravitacionalmente a las otras dos. A diferencia del problema de dos cuerpos, no existe una ecuación general de forma cerrada que resuelva toda configuración posible, por lo que la mayoría de los casos prácticos se exploran con integración numérica.',
27
+ },
28
+ {
29
+ question: '¿Por qué son inestables las órbitas de tres cuerpos?',
30
+ answer: 'Muchos sistemas de tres cuerpos son sensibles a las condiciones iniciales. Un cambio mínimo en la velocidad, la posición o la masa altera el momento de los encuentros cercanos, y esos encuentros pueden intercambiar energía de forma drástica. El resultado es un sistema que puede permanecer estable un tiempo y luego expulsar de repente a uno de los cuerpos.',
31
+ },
32
+ {
33
+ question: '¿Qué muestra el ajuste preestablecido de la órbita en forma de ocho?',
34
+ answer: 'El ajuste en forma de ocho es una famosa solución periódica para tres masas iguales. Cada cuerpo sigue la misma trayectoria con un desfase, demostrando que el problema de los tres cuerpos puede contener islas estables y elegantes dentro de un panorama mucho más caótico.',
35
+ },
36
+ {
37
+ question: '¿Es este un simulador astronómico físicamente exacto?',
38
+ answer: 'Esta herramienta usa un modelo newtoniano suavizado y un paso tipo Verlet de velocidad simpléctico para que el movimiento sea fiel y estable para el aprendizaje. Está diseñada para exploración interactiva, no para predicción de alta precisión de efemérides.',
39
+ },
40
+ {
41
+ question: '¿Cómo debo interpretar la energía total?',
42
+ answer: 'La energía total negativa suele indicar un sistema ligado, mientras que una energía cercana a cero puede facilitar la fuga. En una simulación numérica, una deriva energética grande también advierte que el paso temporal o la geometría del encuentro están forzando al integrador.',
43
+ },
44
+ ];
45
+
46
+ export const content: ToolLocaleContent = {
47
+ slug,
48
+ title,
49
+ description,
50
+ ui: {
51
+ title,
52
+ kicker: 'Laboratorio de caos gravitacional',
53
+ canvasLabel: 'Lienzo interactivo bidimensional de órbita de tres cuerpos',
54
+ presetsLabel: 'Ajustes orbitales preestablecidos',
55
+ figureEightPreset: 'Figura en ocho',
56
+ lagrangePreset: 'Triángulo de Lagrange',
57
+ slingshotPreset: 'Honda gravitatoria',
58
+ pauseButton: 'Pausa',
59
+ playButton: 'Reproducir',
60
+ resetButton: 'Reiniciar',
61
+ speedLabel: 'Velocidad de simulación',
62
+ trailLabel: 'Longitud de estela',
63
+ massLabel: 'Masa',
64
+ velocityXLabel: 'Velocidad X',
65
+ velocityYLabel: 'Velocidad Y',
66
+ energyLabel: 'Energía total',
67
+ separationLabel: 'Rango de separación',
68
+ centerMassLabel: 'Centro de masas',
69
+ },
70
+ seo: [
71
+ {
72
+ type: 'title',
73
+ text: 'Simulador interactivo del problema de los tres cuerpos para caos orbital',
74
+ level: 2,
75
+ },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'El problema de los tres cuerpos es una de las demostraciones más claras de que leyes simples pueden producir movimiento complicado. La gravedad newtoniana da una regla de fuerza compacta, pero en cuanto un tercer cuerpo masivo se une al sistema, cada órbita remodela continuamente a las otras dos. Este simulador te permite experimentar directamente con esa inestabilidad: elige una configuración conocida, ajusta masas y vectores de velocidad, y observa si los cuerpos forman una órbita repetitiva, un triángulo rotatorio o un evento de dispersión caótica.',
79
+ },
80
+ {
81
+ type: 'title',
82
+ text: 'Qué demuestran los ajustes preestablecidos',
83
+ level: 3,
84
+ },
85
+ {
86
+ type: 'table',
87
+ headers: ['Ajuste', 'Idea física', 'Qué observar'],
88
+ rows: [
89
+ ['<strong>Figura en ocho</strong>', 'Una solución periódica de masas iguales donde los tres cuerpos comparten el mismo bucle.', 'La órbita se mantiene organizada solo cuando la simetría y el equilibrio de velocidades se conservan cuidadosamente.'],
90
+ ['<strong>Triángulo de Lagrange</strong>', 'Tres cuerpos ocupan un triángulo equilátero que gira alrededor del centro de masas.', 'El equilibrio de masas y la velocidad tangencial evitan que el triángulo colapse hacia adentro.'],
91
+ ['<strong>Honda gravitatoria</strong>', 'Un encuentro cercano transfiere energía entre los cuerpos.', 'Un cuerpo puede ganar velocidad mientras otro se vuelve más ligado, revelando por qué ocurren las eyecciones caóticas.'],
92
+ ],
93
+ },
94
+ {
95
+ type: 'title',
96
+ text: 'Por qué los pequeños cambios importan',
97
+ level: 3,
98
+ },
99
+ {
100
+ type: 'paragraph',
101
+ html: 'En una órbita de dos cuerpos, el centro de masas y la elipse orbital ofrecen una imagen geométrica estable. En un sistema de tres cuerpos, los pasos cercanos actúan como negociaciones gravitacionales: un cuerpo puede tomar prestada energía orbital, cambiar de dirección bruscamente o convertir un bucle ordenado en un evento de dispersión. Esa sensibilidad es la razón por la que los sistemas astrofísicos reales, como las estrellas triples, los encuentros planeta-luna y los planetesimales del sistema solar temprano, a menudo requieren integración numérica en lugar de una única fórmula simple.',
102
+ },
103
+ {
104
+ type: 'title',
105
+ text: 'Cómo usar los diagnósticos',
106
+ level: 3,
107
+ },
108
+ {
109
+ type: 'list',
110
+ items: [
111
+ '<strong>Energía total</strong> te ayuda a juzgar si el sistema está ligado y si la integración numérica se mantiene estable.',
112
+ '<strong>Rango de separación</strong> muestra las distancias de par más cercanas y más lejanas, haciendo fáciles de detectar las casi colisiones y las eyecciones.',
113
+ '<strong>Centro de masas</strong> debería permanecer relativamente estable cuando el momento inicial está equilibrado; la deriva sugiere una configuración intencionalmente asimétrica o un vector de velocidad alterado.',
114
+ '<strong>Longitud de estela</strong> revela la estructura a largo plazo: las estelas cortas enfatizan la interacción actual, mientras que las largas exponen bucles repetitivos y precesión orbital lenta.',
115
+ ],
116
+ },
117
+ {
118
+ type: 'title',
119
+ text: 'Modelo numérico usado en la herramienta',
120
+ level: 3,
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'El simulador usa la atracción newtoniana de cuadrado inverso con un pequeño término de suavizado que evita explosiones visuales durante pasos extremadamente cercanos. El movimiento avanza con un paso tipo Verlet de velocidad, una elección común para demostraciones orbitales porque maneja el comportamiento energético mejor que una simple actualización de Euler. El resultado es un modelo educativo receptivo que hace visible el comportamiento cualitativo del problema de los tres cuerpos sin pretender reemplazar el software profesional de mecánica celeste.',
125
+ },
126
+ ],
127
+ faq,
128
+ bibliography,
129
+ howTo,
130
+ schemas: [
131
+ {
132
+ '@context': 'https://schema.org',
133
+ '@type': 'SoftwareApplication',
134
+ name: title,
135
+ description,
136
+ applicationCategory: 'ScientificApplication',
137
+ operatingSystem: 'Any',
138
+ },
139
+ {
140
+ '@context': 'https://schema.org',
141
+ '@type': 'FAQPage',
142
+ mainEntity: faq.map((item) => ({
143
+ '@type': 'Question',
144
+ name: item.question,
145
+ acceptedAnswer: {
146
+ '@type': 'Answer',
147
+ text: item.answer,
148
+ },
149
+ })),
150
+ },
151
+ {
152
+ '@context': 'https://schema.org',
153
+ '@type': 'HowTo',
154
+ name: title,
155
+ step: howTo.map((step) => ({
156
+ '@type': 'HowToStep',
157
+ name: step.name,
158
+ text: step.text,
159
+ })),
160
+ },
161
+ ],
162
+ };