Was macht Teardown – Simulator für reale Maschinen?
Du baust eine echte Maschine Teil für Teil aus reellen Zahlen nach, treibst sie aus einem einzigen physikalischen Zustand an und erstellst ein Engineering-Dashboard darum. Das Ergebnis muss wie ein echter Simulator wirken, nicht wie eine Illustration. Überspringe keinen Schritt und erfinde keine Zahl, ohne sie zu kennzeichnen.
Eingaben
- Die Maschine (ein benanntes reales Modell ist am besten: „Chevrolet 350 Small-Block“, „Mantis Hexapod“, „Airbus A320 Hauptfahrwerk“).
- Ein Referenzfoto des Originals. Wenn der Benutzer eines angehängt hat, verwende es. Falls nicht, frage danach; wenn er keines liefern kann, suche ein frei lizenziertes Foto (Wikimedia Commons, prüfe die Lizenz auf der Dateiseite) und notiere Autor, Lizenz und URL. Sieh dir das Foto vor der Modellierung an: Proportionen, Teilanordnung, Farben und was sich bewegt.
Arbeitsablauf (führe diese Schritte in dieser Reihenfolge aus)
- Identifizieren. Lege die genaue Maschine und Variante fest. Nenne in einer Zeile, für welche du dich entschieden hast.
- Zuerst echte Zahlen, ein Datenblock. Recherchiere und schreibe den
DATA-Block vor jeglicher Geometrie: jedes Maß, jede Masse, jedes Übersetzungsverhältnis, jede Drehzahl, jeder Winkel und jede Zeitsteuerung, die der Bau verwendet, jeweils mitkind(published,derived,estimated) und einer nummerierten Quelle. Liesreferences/research.md. Regeln: bevorzuge Herstellerblätter, Handbücher, Normen, Fachartikel und offizielle Aufzeichnungen; gleiche zwei Quellen ab, wenn möglich; eine Zahl, die du vom Foto abgemessen hast, istestimated; eine Zahl, die du aus anderen berechnet hast, istderived. Zeige diesen Block dem Benutzer im Chat vor dem Bau als kurze Tabelle an. - Starte mit dem Kit. Kopiere
kit/template.htmlin den Ausgabeordner als<machine>-live.htmlund kopierekit/three.jsdaneben. Bearbeite nur die BlöckeMACHINE:CSS,MACHINE:DASHund<script id="machine">. Das Kit liefert dir die Bühne, das three.js-Setup, einfache Orbitsteuerung, Schnittebene, Instrumente und die Uhr. Lesereferences/dashboard.mdfür die API. - Baue Teile aus den Zahlen. Jede Mesh-Abmessung stammt aus
N.<key>(dem Datenblock) oder aus einer Ableitung, die im Code daneben notiert ist. Keine magischen Zahlen für etwas, das ein reales Gegenstück hat. Stimme die Proportionen und Teilformen mit dem Foto ab; verwende Kit-Helfer (TD.span, extrudierte Formen,TD.glow). - Ein physikalischer Zustand treibt alles. Definiere den minimalen integrierten Zustand (Kurbelwinkel, zurückgelegte Strecke, Zeit, Ventilposition).
step()integriert ihn;derive()berechnet die gesamte Maschine daraus mit echter Kinematik (references/kinematics.md): Positionen, Winkel, Geschwindigkeiten, Kräfte, Drücke.pose()kopiert nur abgeleitete Werte auf Meshes. KeinMath.sin(time)-Schmuck an beweglichen Teilen. - Dashboard um denselben Zustand. Jede Anzeige, jeder Chart, jeder Streifen und Balken liest aus dem abgeleiteten Objekt
S, nie aus seinem eigenen Timer. Diagramme über einen Zyklus werden berechnet, indem derselbe Solver an abgetasteten Phasen aufgerufen wird. Enthalten: die Hauptkennzahl, die aktuelle Phase / den aktuellen Hub, mindestens ein Diagramm über Winkel oder Phase mit einem beweglichen Cursor, eine Teileauswahl, den Datenblock mit Quellen, das Referenzfoto mit Quellenangabe und Steuerelemente. Layout und Instrumentenauswahl:references/dashboard.md. - Schnittebene. Füge die Schnittebene (
TD.cutaway) durch das Teil ein, das die Aktion verdeckt; hohle Schalen, sodass nur der Wandausschnitt die Kappenfarbe zeigt; blende das, was davor liegt, durchscheinend aus; mache die verborgene Aktion sichtbar (Verbrennungsblitz, Ölsäule, Zahneingriff).references/cutaway.md. - Optik. Wende
references/look.mdan (dunkles Sci-Fi-Standard, helle Ingenieuroptik auf Wunsch). - Selbstprüfung durch Rendern von Standbildern. Führe
node kit/stills.mjs <absoluter Pfad zur HTML-Datei> 0.5,2,4 <absolutes Verzeichnis>/check-%.pngaus (benötigt Playwright; öffne andernfalls die Seite im Browser-Tool und rufe__renderauf). Lies jedes PNG. Korrigiere, bis: keine Konsolenfehler, die Maschine ist eingerahmt und lesbar, die Schnittebene zeigt das Innere, Instrumente unterscheiden sich sichtbar zwischen den Standbildern (das Skript markiert identische Dashboards) unddeterministic: yes. Gehe dannreferences/qa.mddurch. Lösche die Prüf-PNGs. - Ausliefern. Führe
node kit/inline.mjs <machine>-live.htmlaus, um three.js und Bilder in<machine>-live.standalone.htmleinzubetten – eine einzige offlinefähige Datei. Antworte mit: den Dateien, dem Datenblock (Zahlen + Quellen), der Fotogutschrift und dem, was geschätzt statt veröffentlicht ist.
Harte Vertragsbedingungen für die Ausgabedatei
- Öffnet sich von der Festplatte ohne Netzwerk; three.js ist ein klassisches Script, das
window.THREEbereitstellt (keine ES-Module, kein CDN). window.__render(t): t in Sekunden, deterministisch, keine Echtzeituhr; setzt die Steuerung auf Standardwerte zurück, integriert den Zustand von 0 in festen Schritten neu und zeichnet einen Frame. Das KitTD.runerledigt dies für dich; umgehe es nicht.- Läuft live mit
requestAnimationFrame, wenn normal geöffnet; Steuerelemente ändern den Zustand, und jedes Instrument folgt. - Desktop-Bühne 1600x1000, skaliert, um in jedes Fenster zu passen.
- Der Datenblock, die Quellen und die Fotogutschrift sind auf der Seite sichtbar.
Ehrlichkeitsregeln
- Präsentiere niemals eine geschätzte Zahl als veröffentlicht. Kennzeichne sie.
- Wenn die veröffentlichten Zahlen widersprüchlich sind, wähle eine aus, zeige die andere in der Notiz und sage dies.
- Wenn ein Verhalten vereinfacht modelliert ist (statische Lasten, ideales Gas, keine Reibung), sage es im Antworttext in einer Zeile.