@jjlmoya/utils-science 1.27.0 → 1.28.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.
- package/package.json +1 -1
- package/src/category/index.ts +2 -1
- package/src/entries.ts +3 -1
- package/src/index.ts +1 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/entropy-second-law/bibliography.astro +14 -0
- package/src/tool/entropy-second-law/bibliography.ts +12 -0
- package/src/tool/entropy-second-law/component.astro +366 -0
- package/src/tool/entropy-second-law/entropy-second-law-simulator.css +445 -0
- package/src/tool/entropy-second-law/entry.ts +26 -0
- package/src/tool/entropy-second-law/i18n/de.ts +210 -0
- package/src/tool/entropy-second-law/i18n/en.ts +210 -0
- package/src/tool/entropy-second-law/i18n/es.ts +210 -0
- package/src/tool/entropy-second-law/i18n/fr.ts +210 -0
- package/src/tool/entropy-second-law/i18n/id.ts +210 -0
- package/src/tool/entropy-second-law/i18n/it.ts +210 -0
- package/src/tool/entropy-second-law/i18n/ja.ts +210 -0
- package/src/tool/entropy-second-law/i18n/ko.ts +210 -0
- package/src/tool/entropy-second-law/i18n/nl.ts +210 -0
- package/src/tool/entropy-second-law/i18n/pl.ts +210 -0
- package/src/tool/entropy-second-law/i18n/pt.ts +210 -0
- package/src/tool/entropy-second-law/i18n/ru.ts +210 -0
- package/src/tool/entropy-second-law/i18n/sv.ts +210 -0
- package/src/tool/entropy-second-law/i18n/tr.ts +210 -0
- package/src/tool/entropy-second-law/i18n/zh.ts +210 -0
- package/src/tool/entropy-second-law/index.ts +11 -0
- package/src/tool/entropy-second-law/logic.ts +208 -0
- package/src/tool/entropy-second-law/seo.astro +15 -0
- package/src/tools.ts +2 -0
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
.entropy-lab {
|
|
2
|
+
--entropy-ink: #162033;
|
|
3
|
+
--entropy-muted: rgba(22, 32, 51, 0.64);
|
|
4
|
+
--entropy-shell: #edf4fb;
|
|
5
|
+
--entropy-cold: #56d7ff;
|
|
6
|
+
--entropy-cold-deep: #1a71ff;
|
|
7
|
+
--entropy-hot: #ffa347;
|
|
8
|
+
--entropy-line: rgba(22, 32, 51, 0.12);
|
|
9
|
+
--entropy-shadow: rgba(41, 79, 120, 0.16);
|
|
10
|
+
--entropy-guide: rgba(22, 32, 51, 0.16);
|
|
11
|
+
--entropy-area: rgba(255, 163, 71, 0.14);
|
|
12
|
+
--entropy-thumb-shadow: rgba(26, 113, 255, 0.18);
|
|
13
|
+
--entropy-canvas-top-glow: rgba(255, 255, 255, 0.26);
|
|
14
|
+
--entropy-cold-rgb: 86, 215, 255;
|
|
15
|
+
--entropy-hot-rgb: 255, 163, 71;
|
|
16
|
+
|
|
17
|
+
display: grid;
|
|
18
|
+
gap: 1.8rem;
|
|
19
|
+
width: min(100%, 1220px);
|
|
20
|
+
padding: clamp(1rem, 3vw, 2.4rem);
|
|
21
|
+
color: var(--entropy-ink);
|
|
22
|
+
background:
|
|
23
|
+
radial-gradient(circle at top left, rgba(86, 215, 255, 0.22), transparent 26%),
|
|
24
|
+
radial-gradient(circle at top right, rgba(255, 163, 71, 0.2), transparent 28%),
|
|
25
|
+
linear-gradient(145deg, #f7fbff, #edf4fb 54%, #e5eef8);
|
|
26
|
+
border: 1px solid rgba(22, 32, 51, 0.08);
|
|
27
|
+
border-radius: 32px;
|
|
28
|
+
box-shadow: 0 30px 80px var(--entropy-shadow);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.theme-dark .entropy-lab {
|
|
32
|
+
--entropy-ink: #fff7e8;
|
|
33
|
+
--entropy-muted: rgba(255, 247, 232, 0.72);
|
|
34
|
+
--entropy-line: rgba(255, 247, 232, 0.14);
|
|
35
|
+
--entropy-shadow: rgba(2, 9, 18, 0.5);
|
|
36
|
+
--entropy-guide: rgba(255, 247, 232, 0.16);
|
|
37
|
+
--entropy-area: rgba(255, 211, 106, 0.13);
|
|
38
|
+
--entropy-thumb-shadow: rgba(86, 215, 255, 0.24);
|
|
39
|
+
--entropy-canvas-top-glow: rgba(255, 255, 255, 0.03);
|
|
40
|
+
|
|
41
|
+
background:
|
|
42
|
+
radial-gradient(circle at top left, rgba(86, 215, 255, 0.26), transparent 26%),
|
|
43
|
+
radial-gradient(circle at top right, rgba(255, 163, 71, 0.24), transparent 28%),
|
|
44
|
+
linear-gradient(145deg, #07111d, #0f1a2b 54%, #09131f);
|
|
45
|
+
border-color: rgba(255, 255, 255, 0.06);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.entropy-controls,
|
|
49
|
+
.entropy-stage,
|
|
50
|
+
.entropy-console {
|
|
51
|
+
min-width: 0;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.entropy-controls {
|
|
55
|
+
width: min(100%, 260px);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.entropy-controls,
|
|
59
|
+
.entropy-stage,
|
|
60
|
+
.entropy-console,
|
|
61
|
+
.entropy-control-grid,
|
|
62
|
+
.entropy-canvas-head,
|
|
63
|
+
.entropy-actions,
|
|
64
|
+
.entropy-metrics {
|
|
65
|
+
display: grid;
|
|
66
|
+
gap: 1rem;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.entropy-status,
|
|
70
|
+
.entropy-canvas-side span,
|
|
71
|
+
.entropy-readout span,
|
|
72
|
+
.entropy-field span,
|
|
73
|
+
.entropy-metrics span,
|
|
74
|
+
.entropy-divider span,
|
|
75
|
+
.entropy-graph-meta span,
|
|
76
|
+
.entropy-note span {
|
|
77
|
+
margin: 0;
|
|
78
|
+
color: var(--entropy-muted);
|
|
79
|
+
font-size: 0.74rem;
|
|
80
|
+
font-weight: 600;
|
|
81
|
+
letter-spacing: 0.04em;
|
|
82
|
+
text-transform: uppercase;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.entropy-status {
|
|
86
|
+
color: var(--entropy-cold-deep);
|
|
87
|
+
font-size: 0.75rem;
|
|
88
|
+
letter-spacing: 0.15em;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.entropy-field {
|
|
92
|
+
display: grid;
|
|
93
|
+
gap: 0.7rem;
|
|
94
|
+
width: 100%;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.entropy-field-barrier {
|
|
98
|
+
margin-top: 0.2rem;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.entropy-field output,
|
|
102
|
+
.entropy-readout strong,
|
|
103
|
+
.entropy-canvas-side strong,
|
|
104
|
+
.entropy-metrics strong {
|
|
105
|
+
font-weight: 650;
|
|
106
|
+
letter-spacing: -0.04em;
|
|
107
|
+
line-height: 0.86;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.entropy-field output {
|
|
111
|
+
font-size: clamp(1.8rem, 6vw, 2.6rem);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.entropy-field input[type='range'] {
|
|
115
|
+
--fill: 50%;
|
|
116
|
+
--track-base: rgba(22, 32, 51, 0.14);
|
|
117
|
+
--track-active: rgba(var(--entropy-cold-rgb), 0.5);
|
|
118
|
+
|
|
119
|
+
width: 100%;
|
|
120
|
+
height: 28px;
|
|
121
|
+
margin: 0;
|
|
122
|
+
appearance: none;
|
|
123
|
+
background: transparent;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.theme-dark .entropy-field input[type='range'] {
|
|
127
|
+
--track-base: rgba(255, 247, 232, 0.15);
|
|
128
|
+
--track-active: rgba(var(--entropy-cold-rgb), 0.72);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.entropy-field input[type='range']::-webkit-slider-runnable-track {
|
|
132
|
+
height: 2px;
|
|
133
|
+
border-radius: 0;
|
|
134
|
+
background:
|
|
135
|
+
linear-gradient(90deg, var(--track-active) 0, var(--track-active) var(--fill), var(--track-base) var(--fill), var(--track-base) 100%);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.entropy-field input[type='range']::-webkit-slider-thumb {
|
|
139
|
+
width: 10px;
|
|
140
|
+
height: 10px;
|
|
141
|
+
margin-top: -4px;
|
|
142
|
+
border: 1px solid var(--entropy-shell);
|
|
143
|
+
border-radius: 50%;
|
|
144
|
+
appearance: none;
|
|
145
|
+
background: var(--entropy-ink);
|
|
146
|
+
box-shadow: 0 8px 18px var(--entropy-thumb-shadow);
|
|
147
|
+
cursor: grab;
|
|
148
|
+
transition:
|
|
149
|
+
transform 100ms ease,
|
|
150
|
+
box-shadow 160ms ease;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.entropy-field input[type='range']::-moz-range-track {
|
|
154
|
+
height: 2px;
|
|
155
|
+
border-radius: 0;
|
|
156
|
+
background: var(--track-base);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.entropy-field input[type='range']::-moz-range-progress {
|
|
160
|
+
height: 2px;
|
|
161
|
+
border-radius: 0;
|
|
162
|
+
background: var(--track-active);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.entropy-field input[type='range']::-moz-range-thumb {
|
|
166
|
+
width: 10px;
|
|
167
|
+
height: 10px;
|
|
168
|
+
border: 1px solid var(--entropy-shell);
|
|
169
|
+
border-radius: 50%;
|
|
170
|
+
background: var(--entropy-ink);
|
|
171
|
+
box-shadow: 0 8px 18px var(--entropy-thumb-shadow);
|
|
172
|
+
cursor: grab;
|
|
173
|
+
transition:
|
|
174
|
+
transform 100ms ease,
|
|
175
|
+
box-shadow 160ms ease;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.entropy-field input[type='range']:hover::-webkit-slider-thumb {
|
|
179
|
+
transform: scale(1.2);
|
|
180
|
+
box-shadow: 0 0 0 6px rgba(var(--entropy-cold-rgb), 0.08), 0 10px 20px var(--entropy-thumb-shadow);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.entropy-field input[type='range']:hover::-moz-range-thumb {
|
|
184
|
+
transform: scale(1.2);
|
|
185
|
+
box-shadow: 0 0 0 6px rgba(var(--entropy-cold-rgb), 0.08), 0 10px 20px var(--entropy-thumb-shadow);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.entropy-field input[type='range']:active::-webkit-slider-thumb {
|
|
189
|
+
transform: scale(1.3);
|
|
190
|
+
box-shadow: 0 0 0 7px rgba(var(--entropy-cold-rgb), 0.12), 0 12px 24px var(--entropy-thumb-shadow);
|
|
191
|
+
cursor: grabbing;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.entropy-field input[type='range']:active::-moz-range-thumb {
|
|
195
|
+
transform: scale(1.3);
|
|
196
|
+
box-shadow: 0 0 0 7px rgba(var(--entropy-cold-rgb), 0.12), 0 12px 24px var(--entropy-thumb-shadow);
|
|
197
|
+
cursor: grabbing;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.entropy-actions {
|
|
201
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
202
|
+
width: 100%;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.entropy-actions button {
|
|
206
|
+
width: 100%;
|
|
207
|
+
min-height: 52px;
|
|
208
|
+
border: 1px solid var(--entropy-line);
|
|
209
|
+
border-radius: 999px;
|
|
210
|
+
color: var(--entropy-ink);
|
|
211
|
+
background: transparent;
|
|
212
|
+
font-size: 0.9rem;
|
|
213
|
+
font-weight: 700;
|
|
214
|
+
cursor: pointer;
|
|
215
|
+
transition:
|
|
216
|
+
color 300ms ease,
|
|
217
|
+
background-color 300ms ease,
|
|
218
|
+
border-color 300ms ease;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.entropy-actions button:hover {
|
|
222
|
+
border-color: rgba(86, 215, 255, 0.3);
|
|
223
|
+
background: rgba(86, 215, 255, 0.06);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.entropy-canvas-head {
|
|
227
|
+
grid-template-columns: 1fr;
|
|
228
|
+
justify-items: center;
|
|
229
|
+
padding-bottom: 0.15rem;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.entropy-divider {
|
|
233
|
+
display: flex;
|
|
234
|
+
align-items: center;
|
|
235
|
+
gap: 0.7rem;
|
|
236
|
+
width: 100%;
|
|
237
|
+
justify-content: center;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.entropy-divider-line {
|
|
241
|
+
display: block;
|
|
242
|
+
width: 1px;
|
|
243
|
+
height: 1.2rem;
|
|
244
|
+
background: var(--entropy-line);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
#entropy-canvas {
|
|
248
|
+
width: 100%;
|
|
249
|
+
height: auto;
|
|
250
|
+
aspect-ratio: 18 / 11;
|
|
251
|
+
background:
|
|
252
|
+
radial-gradient(circle at 22% 50%, rgba(86, 215, 255, 0.05), transparent 34%),
|
|
253
|
+
radial-gradient(circle at 78% 50%, rgba(255, 163, 71, 0.05), transparent 34%),
|
|
254
|
+
linear-gradient(180deg, var(--entropy-canvas-top-glow), transparent);
|
|
255
|
+
border: 0;
|
|
256
|
+
border-radius: 28px;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.entropy-graph-shell {
|
|
260
|
+
display: grid;
|
|
261
|
+
gap: 0.8rem;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.entropy-graph-meta {
|
|
265
|
+
display: flex;
|
|
266
|
+
justify-content: space-between;
|
|
267
|
+
gap: 1rem;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.entropy-graph {
|
|
271
|
+
width: 100%;
|
|
272
|
+
height: auto;
|
|
273
|
+
overflow: visible;
|
|
274
|
+
padding-top: 0.35rem;
|
|
275
|
+
border-top: 1px solid var(--entropy-line);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.entropy-graph text {
|
|
279
|
+
fill: var(--entropy-muted);
|
|
280
|
+
font-size: 9px;
|
|
281
|
+
letter-spacing: 0.14em;
|
|
282
|
+
opacity: 0.4;
|
|
283
|
+
text-transform: uppercase;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
.entropy-graph-guide,
|
|
287
|
+
.entropy-graph-line,
|
|
288
|
+
.entropy-graph-area {
|
|
289
|
+
fill: none;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
.entropy-graph-guide {
|
|
293
|
+
stroke: var(--entropy-guide);
|
|
294
|
+
stroke-width: 1.5;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.entropy-graph-line {
|
|
298
|
+
stroke: url("#entropy-fill");
|
|
299
|
+
stroke-width: 5;
|
|
300
|
+
stroke-linecap: round;
|
|
301
|
+
stroke-linejoin: round;
|
|
302
|
+
filter: url("#entropy-line-glow");
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.entropy-graph-area {
|
|
306
|
+
fill: var(--entropy-area);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.entropy-console {
|
|
310
|
+
align-content: start;
|
|
311
|
+
gap: 1.3rem;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.entropy-readout {
|
|
315
|
+
display: grid;
|
|
316
|
+
gap: 0.35rem;
|
|
317
|
+
padding-bottom: 0.85rem;
|
|
318
|
+
border-bottom: 1px solid var(--entropy-line);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.entropy-readout strong {
|
|
322
|
+
font-size: clamp(3rem, 9vw, 5.4rem);
|
|
323
|
+
line-height: 0.82;
|
|
324
|
+
letter-spacing: -0.05em;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.entropy-metrics article {
|
|
328
|
+
display: grid;
|
|
329
|
+
gap: 0.32rem;
|
|
330
|
+
padding: 0.7rem 0;
|
|
331
|
+
border-bottom: 1px solid var(--entropy-line);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
.entropy-metrics {
|
|
335
|
+
padding-top: 0.8rem;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
.entropy-metrics strong {
|
|
339
|
+
font-size: 2rem;
|
|
340
|
+
line-height: 0.88;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.entropy-note {
|
|
344
|
+
display: grid;
|
|
345
|
+
gap: 0.65rem;
|
|
346
|
+
max-width: 38ch;
|
|
347
|
+
padding-top: 0.9rem;
|
|
348
|
+
border-top: 1px solid rgba(22, 32, 51, 0.06);
|
|
349
|
+
opacity: 0.5;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
.theme-dark .entropy-note {
|
|
353
|
+
border-top-color: rgba(255, 247, 232, 0.06);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
.entropy-note p {
|
|
357
|
+
margin: 0;
|
|
358
|
+
color: var(--entropy-muted);
|
|
359
|
+
font-size: 10px;
|
|
360
|
+
line-height: 1.6;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.entropy-stateboard {
|
|
364
|
+
display: grid;
|
|
365
|
+
grid-template-columns: 16px minmax(0, 1fr);
|
|
366
|
+
gap: 0.9rem;
|
|
367
|
+
align-items: start;
|
|
368
|
+
min-height: 4.8rem;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
.entropy-state-dial {
|
|
372
|
+
--entropy-progress: 0;
|
|
373
|
+
|
|
374
|
+
position: relative;
|
|
375
|
+
width: 16px;
|
|
376
|
+
min-height: 4.8rem;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
.entropy-state-track {
|
|
380
|
+
position: absolute;
|
|
381
|
+
top: 0.2rem;
|
|
382
|
+
bottom: 0.2rem;
|
|
383
|
+
left: 50%;
|
|
384
|
+
width: 1px;
|
|
385
|
+
background: currentcolor;
|
|
386
|
+
opacity: 0.24;
|
|
387
|
+
transform: translateX(-50%);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
.entropy-state-node {
|
|
391
|
+
position: absolute;
|
|
392
|
+
bottom: 0.2rem;
|
|
393
|
+
left: 50%;
|
|
394
|
+
width: 7px;
|
|
395
|
+
height: 7px;
|
|
396
|
+
border-radius: 50%;
|
|
397
|
+
background: currentcolor;
|
|
398
|
+
box-shadow: 0 0 0 0 rgba(var(--entropy-cold-rgb), 0);
|
|
399
|
+
opacity: 0.9;
|
|
400
|
+
transform: translate(-50%, calc(var(--entropy-progress) * -4rem));
|
|
401
|
+
transition:
|
|
402
|
+
transform 280ms ease,
|
|
403
|
+
box-shadow 280ms ease,
|
|
404
|
+
opacity 280ms ease;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
.entropy-state-dial.is-equilibrium .entropy-state-node {
|
|
408
|
+
box-shadow: 0 0 0 6px rgba(var(--entropy-cold-rgb), 0.1);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
.entropy-state-labels {
|
|
412
|
+
display: grid;
|
|
413
|
+
gap: 0.38rem;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
.entropy-state-labels strong {
|
|
417
|
+
color: var(--entropy-muted);
|
|
418
|
+
font-size: 9px;
|
|
419
|
+
font-weight: 500;
|
|
420
|
+
letter-spacing: 0.18em;
|
|
421
|
+
opacity: 0.2;
|
|
422
|
+
text-transform: uppercase;
|
|
423
|
+
transition: opacity 220ms ease, color 220ms ease;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
.entropy-state-labels strong.is-active {
|
|
427
|
+
color: var(--entropy-ink);
|
|
428
|
+
opacity: 1;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
@media (min-width: 960px) {
|
|
432
|
+
.entropy-lab {
|
|
433
|
+
grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.45fr) minmax(280px, 0.72fr);
|
|
434
|
+
align-items: start;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
.entropy-controls {
|
|
438
|
+
width: 260px;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
.entropy-metrics {
|
|
442
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
443
|
+
column-gap: 1.25rem;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ScienceToolEntry } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const entropySecondLaw: ScienceToolEntry = {
|
|
4
|
+
id: 'entropy-second-law',
|
|
5
|
+
icons: {
|
|
6
|
+
bg: 'mdi:chart-timeline-variant',
|
|
7
|
+
fg: 'mdi:molecule-co2',
|
|
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,210 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'entropie-zweiter-hauptsatz-simulator';
|
|
5
|
+
const title = 'Simulator für Entropie und den zweiten Hauptsatz der Thermodynamik';
|
|
6
|
+
const description = 'Beobachte, wie heiße und kalte Teilchenkammern sich vermischen, angleichen und die Entropie nach oben treiben - mit einem visuellen Diffusionssimulator und einem Live-Entropie-Diagramm.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Linke und rechte Temperatur einstellen',
|
|
11
|
+
text: 'Wähle eine kältere und eine heißere Kammer, um ein anfängliches thermisches Ungleichgewicht zu erzeugen. Größere Unterschiede machen den irreversiblen Weg zum Gleichgewicht besser sichtbar.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Die Barrierenöffnung anpassen',
|
|
15
|
+
text: 'Öffne oder verenge den Durchlass zwischen den beiden Kammern. Eine breitere Öffnung lässt Teilchen und Energie schneller diffundieren, sodass die Entropiekurve steiler ansteigt.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Die Teilchenbox beobachten',
|
|
19
|
+
text: 'Blaue Teilchen stellen energieärmere Bewegungen dar, orange Teilchen energiereichere. Mit zunehmenden Kollisionen und Übertritten wird die Box durchmischter und ungeordneter.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Das Entropie-Diagramm auswerten',
|
|
23
|
+
text: 'Verfolge, wie sich räumliche Durchmischung und thermische Angleichung zu einem einzigen steigenden Entropiewert verbinden. Die Kurve soll ein Gefühl dafür vermitteln, warum isolierte Systeme zu wahrscheinlicheren Makrozuständen streben.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
question: 'Warum steigt die Entropie in diesem Simulator?',
|
|
30
|
+
answer: 'Der Anfangszustand ist künstlich geordnet: eine Seite ist kälter, die andere heißer. Sobald die Barriere einen Austausch zulässt, gibt es weit mehr durchmischte Anordnungen als getrennte. Das System bewegt sich daher natürlicherweise in den überwältigend wahrscheinlicheren Makrozustand.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Beweist das den zweiten Hauptsatz exakt?',
|
|
34
|
+
answer: 'Nein. Es handelt sich um ein didaktisches Teilchenmodell, nicht um einen molekulardynamischen Laborcode. Es vermittelt die grundlegende Intuition hinter irreversibler Diffusion und thermischer Angleichung " genau das, wonach die meisten Nutzer fragen, wenn sie wissen wollen, warum Entropie zunimmt.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Was bedeuten hier räumliche Entropie und thermische Entropie?',
|
|
38
|
+
answer: 'Die räumliche Entropie misst, wie gleichmäßig die Teilchen zwischen linker und rechter Kammer verteilt sind. Die thermische Entropie misst in diesem Simulator, wie klein die Energielücke zwischen den beiden Hälften ist. Der Gesamtwert kombiniert beide, sodass Nutzer Durchmischung und Wärmefluss gleichzeitig sehen können.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: 'Warum bewegen sich die Teilchen auch nahe dem Gleichgewicht weiter?',
|
|
42
|
+
answer: 'Gleichgewicht bedeutet nicht, dass die Bewegung aufhört. Es bedeutet, dass das makroskopische Ungleichgewicht verschwindet. Moleküle bewegen, stoßen und tauschen weiterhin Energie aus, aber es gibt keine anhaltende großräumige Richtung mehr, die ausgenutzt werden könnte.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
question: 'Kann die Entropie jemals kurzzeitig sinken?',
|
|
46
|
+
answer: 'In mikroskopischen Systemen sind kleine Fluktuationen möglich. Dieses visuelle Tool glättet diese Fluktuationen und betont den statistischen Gesamttrend: in einem großen isolierten System sind geordnete Zustände mit niedriger Entropie extrem viel unwahrscheinlicher als durchmischte Zustände.',
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
export const content: ToolLocaleContent = {
|
|
51
|
+
slug,
|
|
52
|
+
title,
|
|
53
|
+
description,
|
|
54
|
+
ui: {
|
|
55
|
+
status: 'Irreversible Durchmischung',
|
|
56
|
+
results: 'Ergebnisse des Entropie-Simulators',
|
|
57
|
+
particleBox: 'Teilchen-Diffusionsbox',
|
|
58
|
+
barrier: 'Barriere',
|
|
59
|
+
entropyGraph: 'Entropie im Zeitverlauf',
|
|
60
|
+
liveTrace: 'Live-Verlauf',
|
|
61
|
+
highEntropy: 'hoch',
|
|
62
|
+
midEntropy: 'mittel',
|
|
63
|
+
lowEntropy: 'niedrig',
|
|
64
|
+
controls: 'Steuerung des Entropie-Simulators',
|
|
65
|
+
leftTemperature: 'Linke Temperatur',
|
|
66
|
+
rightTemperature: 'Rechte Temperatur',
|
|
67
|
+
gateAperture: 'Barrierenöffnung',
|
|
68
|
+
pause: 'Pause',
|
|
69
|
+
reset: 'Zurücksetzen',
|
|
70
|
+
resume: 'Fortsetzen',
|
|
71
|
+
totalEntropy: 'Gesamtentropie',
|
|
72
|
+
particleBalance: 'Teilchen links/rechts',
|
|
73
|
+
spatialEntropy: 'Räumliche Entropie',
|
|
74
|
+
thermalEntropy: 'Thermische Entropie',
|
|
75
|
+
energyGap: 'Energielücke',
|
|
76
|
+
noteLabel: 'Interpretation',
|
|
77
|
+
stateGradient: 'Gradient',
|
|
78
|
+
stateMixing: 'Durchmischung',
|
|
79
|
+
stateEquilibrium: 'Gleichgewicht',
|
|
80
|
+
note: 'Die Wahrscheinlichkeit von Makrozuständen zeigt in Richtung maximaler Unordnung.',
|
|
81
|
+
},
|
|
82
|
+
seo: [
|
|
83
|
+
{
|
|
84
|
+
type: 'title',
|
|
85
|
+
text: 'Entropie-Simulator für den zweiten Hauptsatz der Thermodynamik und irreversible Diffusion',
|
|
86
|
+
level: 2,
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'paragraph',
|
|
90
|
+
html: 'Nutze diesen Entropie-Simulator, um eine der wichtigsten Ideen der Physik zu visualisieren: isolierte Systeme entwickeln sich von künstlich geordneten Zuständen hin zu wahrscheinlicheren durchmischten Zuständen. Statt eine statische Definition von Entropie zu lesen, kannst du in Echtzeit beobachten, wie eine heiße und eine kalte Kammer Teilchen und Energie austauschen, während eine Live-Kurve den Anstieg der Unordnung verfolgt.',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'paragraph',
|
|
94
|
+
html: 'Dieses Tool ist auf die häufigste Suchintention hinter Fragen wie "Warum nimmt Entropie zu?", "Wie funktioniert der zweite Hauptsatz?" und "Was ist thermische Diffusion?" zugeschnitten. Ziel ist es nicht nur, einen Slogan über Unordnung zu liefern, sondern Entropie mit Wahrscheinlichkeit, Wärmefluss, Durchmischung und Gleichgewicht so zu verbinden, dass es unmittelbar sichtbar wird.',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: 'title',
|
|
98
|
+
text: 'Was der zweite Hauptsatz der Thermodynamik praktisch bedeutet',
|
|
99
|
+
level: 3,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'paragraph',
|
|
103
|
+
html: 'Der zweite Hauptsatz besagt, dass sich spontane Prozesse in einem isolierten System in Richtung von Makrozuständen mit höherer Entropie bewegen. Alltagssprachlich bedeutet das: eine stark organisierte thermische Anordnung " heiße Teilchen auf einer Seite, kalte auf der anderen " bleibt nur dann getrennt, wenn kontinuierlich Arbeit aufgewendet wird, um sie aufrechtzuerhalten.',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'paragraph',
|
|
107
|
+
html: 'Das geschieht nicht, weil Materie im mystischen Sinne "Chaos bevorzugt". Es geschieht, weil es enorm viele mikroskopische Anordnungen gibt, die einem durchmischten Zustand entsprechen, im Vergleich zu einem getrennten. Entropie verbindet daher Thermodynamik mit Abzählen: je größer die Anzahl kompatibler Mikrozustände, desto größer die Entropie.',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'title',
|
|
111
|
+
text: 'Wie dieser Entropie-Diffusionssimulator funktioniert',
|
|
112
|
+
level: 3,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'paragraph',
|
|
116
|
+
html: 'Die Teilchenbox startet in einer Konfiguration mit niedriger Entropie und einem Temperaturungleichgewicht auf beiden Seiten einer Barriere. Wenn der Durchlass zwischen den Kammern geöffnet ist, kreuzen Teilchen die Grenze, kollidieren und transportieren Energie von einer Seite zur anderen. Die Simulation verfolgt zwei intuitive Größen: die <strong>räumliche Entropie</strong>, die steigt, wenn die Teilchen weniger getrennt sind, und die <strong>thermische Entropie</strong>, die steigt, wenn sich die Energieverteilungen links und rechts angleichen.',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'paragraph',
|
|
120
|
+
html: 'Der auf dem Bildschirm angezeigte Gesamtentropiewert ist ein didaktischer Proxy, der aus diesen beiden Größen gebildet wird. Es handelt sich nicht um eine laborreife Zustandsfunktion, und sie erhebt nicht den Anspruch, die vollständige statistische Mechanik abzubilden. Ihr Zweck ist es, Nutzern eine korrekte Intuition zu vermitteln: irreversibler Wärmefluss und Diffusion bewegen das System in Richtung Gleichgewicht, weil das Gleichgewicht weit mehr zugänglichen Anordnungen entspricht.',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'table',
|
|
124
|
+
headers: ['Visuelles Signal', 'Bedeutung', 'Warum es wichtig ist'],
|
|
125
|
+
rows: [
|
|
126
|
+
['Blaue vs. orange Teilchen', 'Relative kinetische Energie', 'Zeigt, dass Temperaturunterschiede eigentlich Unterschiede in der mittleren mikroskopischen Bewegung sind.'],
|
|
127
|
+
['Barrierenöffnung', 'Leichtigkeit des Austauschs zwischen den Kammern', 'Lässt dich erkennen, warum sich die Diffusionsrate ändert, wenn sich der Transportweg verändert.'],
|
|
128
|
+
['Räumlicher Entropie-Messer', 'Gleichmäßigkeit der Teilchenverteilung', 'Erklärt, dass allein die Durchmischung den Makrozustand bereits wahrscheinlicher macht.'],
|
|
129
|
+
['Thermischer Entropie-Messer', 'Wie klein die Energielücke wird', 'Zeigt, dass Gleichgewicht nicht nur eine Frage der Position, sondern auch der Energieverteilung ist.'],
|
|
130
|
+
['Entropiekurve', 'Trend über die Zeit', 'Verwandelt die abstrakte Idee der Irreversibilität in einen sichtbaren, einseitigen Relaxationsprozess.'],
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'title',
|
|
135
|
+
text: 'Warum Entropie zunehmen kann, obwohl jedes Teilchen einfachen Bewegungen folgt',
|
|
136
|
+
level: 3,
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'paragraph',
|
|
140
|
+
html: 'Schüler und Studierende nehmen oft an, dass der zweite Hauptsatz Reibung, Absicht oder eine spezielle "Kraft des Zeitpfeils" erfordert. Der tiefere Punkt ist statistischer Natur. Jedes Teilchen folgt lokalen Regeln, aber wenn viele Teilchen interagieren, dominiert die Anzahl der durchmischten Makrozustände völlig die Anzahl der geordneten Makrozustände. Das System verbringt daher fast seine gesamte Zeit in durchmischten Konfigurationen und nur einen verschwindend geringen Anteil in ordentlich getrennten.',
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: 'Deshalb breitet sich ein Tintentropfen in Wasser aus, deshalb gleicht sich die Temperatur in einem Raum nach dem Ausschalten der Heizung an, und deshalb kühlt ein heißer Gegenstand in Kontakt mit einem kälteren ab. Der umgekehrte Vorgang ist im streng mikroskopischen Sinne nicht durch die newtonsche Bewegung verboten, aber er ist für große Systeme so statistisch unwahrscheinlich, dass er auf menschlichen Skalen praktisch nie beobachtet wird.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Entropie, Gleichgewicht und häufige Missverständnisse',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'list',
|
|
153
|
+
items: [
|
|
154
|
+
'<strong>Entropie ist nicht einfach "Unordnung":</strong> die präzisere Vorstellung ist die Anzahl der mikroskopischen Anordnungen, die mit derselben makroskopischen Beschreibung vereinbar sind.',
|
|
155
|
+
'<strong>Gleichgewicht bedeutet nicht Stillstand:</strong> Teilchen bewegen sich ständig weiter, aber ihre großräumigen Ungleichgewichte heben sich auf.',
|
|
156
|
+
'<strong>Wärmefluss ist gerichtet, weil Wahrscheinlichkeit gerichtet ist:</strong> es gibt überwältigend mehr Möglichkeiten, Energie zu teilen, als sie scharf getrennt zu halten.',
|
|
157
|
+
'<strong>Niedrige Entropie ist nicht unmöglich:</strong> sie erfordert lediglich Randbedingungen, Präparation oder Arbeit von außerhalb des isolierten Systems.',
|
|
158
|
+
'<strong>Dieser Simulator ist qualitativ:</strong> er vermittelt physikalische Intuition, keine exakte Kalorimetrie, Zustandssummen oder molekulare Transportkoeffizienten.',
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'title',
|
|
163
|
+
text: 'Wann dieser Simulator verwendet werden sollte',
|
|
164
|
+
level: 3,
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'paragraph',
|
|
168
|
+
html: 'Nutze ihn für Unterrichtsdemonstrationen, Physikwiederholungen, Chemieunterricht, wissenschaftliche Texte und schnelle konzeptionelle Erklärungen. Er ist besonders nützlich, wenn jemand versteht, dass Wärme von heiß nach kalt fließt, aber noch nicht erkennt, wie dies mit Wahrscheinlichkeit, Makrozustands-Zählung und dem zweiten Hauptsatz der Thermodynamik zusammenhängt.',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'paragraph',
|
|
172
|
+
html: 'Wenn du eine rigorose thermodynamische Berechnung für ein reales Gas, einen Motorkreislauf oder ein Laborsystem durchführen möchtest, benötigst du Zustandsgleichungen, Randbedingungen und experimentell gestützte Parameter. Wenn du jedoch eine Intuition dafür suchst, warum Diffusion irreversibel ist und warum Entropie tendenziell steigt, ist dieser Simulator genau für diese Frage gebaut.',
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
faq,
|
|
176
|
+
bibliography,
|
|
177
|
+
howTo,
|
|
178
|
+
schemas: [
|
|
179
|
+
{
|
|
180
|
+
'@context': 'https://schema.org',
|
|
181
|
+
'@type': 'SoftwareApplication',
|
|
182
|
+
name: title,
|
|
183
|
+
description,
|
|
184
|
+
applicationCategory: 'ScientificApplication',
|
|
185
|
+
operatingSystem: 'Any',
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
'@context': 'https://schema.org',
|
|
189
|
+
'@type': 'FAQPage',
|
|
190
|
+
mainEntity: faq.map((item) => ({
|
|
191
|
+
'@type': 'Question',
|
|
192
|
+
name: item.question,
|
|
193
|
+
acceptedAnswer: {
|
|
194
|
+
'@type': 'Answer',
|
|
195
|
+
text: item.answer,
|
|
196
|
+
},
|
|
197
|
+
})),
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
'@context': 'https://schema.org',
|
|
201
|
+
'@type': 'HowTo',
|
|
202
|
+
name: title,
|
|
203
|
+
step: howTo.map((step) => ({
|
|
204
|
+
'@type': 'HowToStep',
|
|
205
|
+
name: step.name,
|
|
206
|
+
text: step.text,
|
|
207
|
+
})),
|
|
208
|
+
},
|
|
209
|
+
],
|
|
210
|
+
};
|