Compare commits

..

3 Commits

6 changed files with 270 additions and 0 deletions
+143
View File
@@ -0,0 +1,143 @@
# HartOMat
HartOMat ist eine CAD-, Medien- und Render-Automatisierungsplattform für technische Produktvisualisierung. Das System verbindet STEP/CAD-Import, Materialzuordnung, Produkt- und Asset-Verwaltung, Render-Templates, Output-Typen und einen node-basierten Workflow-Editor in einer gemeinsamen Produktionsoberfläche, ohne den bestehenden Legacy-Pfad zu verlieren.
Eine ausführlichere Projektübersicht mit Screenshots gibt es in [docs/PROJECT_OVERVIEW.md](docs/PROJECT_OVERVIEW.md).
> CAD rein, Produktdaten anreichern, Output-Typ wählen, Rendern ausführen, Ergebnis kontrollieren.
## Start Hier
| Thema | Einstieg |
| --- | --- |
| Projektüberblick | [docs/PROJECT_OVERVIEW.md](docs/PROJECT_OVERVIEW.md) |
| Workflows | [docs/workflows/WORKFLOW_MIGRATION_PLAN.md](docs/workflows/WORKFLOW_MIGRATION_PLAN.md) |
| Architekturziel | [docs/workflows/NODE_BASED_PRODUCTION_ARCHITECTURE.md](docs/workflows/NODE_BASED_PRODUCTION_ARCHITECTURE.md) |
| Umsetzungs-Backlog | [docs/workflows/WORKFLOW_IMPLEMENTATION_BACKLOG.md](docs/workflows/WORKFLOW_IMPLEMENTATION_BACKLOG.md) |
## Inhaltsverzeichnis
- [Kurzüberblick](#kurzüberblick)
- [Kernfunktionen](#kernfunktionen)
- [Stack](#stack)
- [Quick Start](#quick-start)
- [Screenshots](#screenshots)
- [Workflow-System](#workflow-system)
- [Typischer Ablauf](#typischer-ablauf)
- [Projektstruktur](#projektstruktur)
## Kurzüberblick
| Bereich | Zweck |
| --- | --- |
| CAD Intake | STEP-Dateien importieren, aufbereiten und in produktionsfähige Assets überführen |
| Product Ops | Produkte, Medien, Orders, Asset Libraries und Pricing zentral verwalten |
| Rendering | Blender-Templates, GPU-Worker und definierte Output Types für reproduzierbare Bilder |
| Workflows | Legacy-sichere und graph-native Produktionsketten parallel betreiben |
## Kernfunktionen
- Import von CAD- und Mediendaten mit nachgelagerter Material- und Metadatenverarbeitung
- Verwaltung von Produkten, Medien, Asset Libraries, Output Types, Pricing Tiers und Orders
- Blender-basierte Render-Pipeline mit Template-Unterstützung und GPU-Rendering
- Legacy-kompatible Produktionspfade parallel zu graph-basierten Workflows
- Workflow-Editor unter `/workflows` mit backend-definierten Nodes und Settings-Schemas
## Stack
| Ebene | Technologie |
| --- | --- |
| Frontend | React, TypeScript, Vite |
| Backend | FastAPI, SQLAlchemy, Alembic, Celery |
| Infrastruktur | PostgreSQL, Redis, MinIO, Docker Compose |
| Rendering | Blender Worker mit GPU-Support |
## Quick Start
### Betriebsstatus
- Compose-Projektname: `hartomat`
- Frontend lokal: `http://localhost:5173`
- Backend lokal: `http://localhost:8888/docs`
- MinIO Console: `http://localhost:9001`
### Voraussetzungen
- Docker und Docker Compose
- Optional für GPU-Rendering: NVIDIA-Treiber und funktionierende Docker-GPU-Weitergabe
### Lokaler Start
1. Konfiguration anlegen:
```bash
cp .env.example .env
```
2. Stack starten:
```bash
./scripts/start.sh
```
3. Oberflächen öffnen:
- Frontend: `http://localhost:5173`
- Backend API / Swagger: `http://localhost:8888/docs`
- MinIO Console: `http://localhost:9001`
### Standard-Login für lokale Seeds
Beim Container-Start werden Migrationen, Templates und ein Admin-Benutzer gesät. Für eine lokale Standardinstallation ist aktuell typischerweise verfügbar:
- E-Mail: `admin@hartomat.com`
- Passwort: `Admin1234!`
Das ist nur für lokale Entwicklung gedacht und sollte für jede nicht-lokale Umgebung sofort ersetzt werden.
### Nützliche Kommandos
```bash
./scripts/restart.sh
./scripts/restart.sh --build
./scripts/restart.sh backend
./scripts/stop.sh
docker compose logs -f
```
## Screenshots
![Dashboard](docs/assets/screenshots/dashboard.png)
![Workflow Editor](docs/assets/screenshots/workflow-editor.png)
![Product Detail](docs/assets/screenshots/product-detail.png)
![Admin](docs/assets/screenshots/admin.png)
## Workflow-System
HartOMat führt zwei Welten parallel:
- den bestehenden Legacy-Produktionspfad für sichere Rückwärtskompatibilität
- den neuen node-basierten Graph-Workflow für modulare, editorfähige Produktionsketten
Die laufende Migrations- und Architekturarbeit ist über die Start-Hier-Links oben erreichbar.
## Typischer Ablauf
1. CAD- oder Mediendaten importieren.
2. Produkt- und Materialdaten prüfen oder anreichern.
3. Output Type und Render Template wählen.
4. Legacy- oder Graph-Workflow ausführen.
5. Ergebnis im Produkt, Auftrag oder Medienbereich prüfen.
## Projektstruktur
```text
backend/ FastAPI-App, Domänenlogik, Migrationen, Worker
frontend/ React/Vite-Frontend
render-worker/ Blender- und Render-spezifische Laufzeit
scripts/ Start-, Restart-, Vergleichs- und QA-Skripte
docs/ Architektur-, Migrations- und Projektdokumentation
```
+127
View File
@@ -0,0 +1,127 @@
# HartOMat Project Overview
## Überblick
HartOMat ist eine Produktionsplattform für technische Visualisierung. Die Anwendung verbindet CAD-Import, Datenaufbereitung, Material-Mapping, Produkt- und Asset-Verwaltung sowie eine Blender-basierte Render-Pipeline in einer gemeinsamen Oberfläche. Parallel dazu wird die Render-Orchestrierung von einem Legacy-Workflow auf ein node-basiertes Produktionsmodell migriert, ohne dass der bisherige Produktionsweg ausfallen darf.
## Positionierung
HartOMat ist kein isolierter Renderer, sondern die operative Schicht zwischen technischen Quelldaten und reproduzierbarer Medienproduktion. Das Projekt ist darauf ausgelegt, CAD-Assets, kommerzielle Output-Varianten, Template-Logik und Worker-Ausführung in einem System zusammenzuhalten.
## Was das System heute abdeckt
- STEP/CAD-Import mit nachgelagerter Aufbereitung
- Produkt-, Medien-, Order- und Admin-Oberflächen
- Render Templates für definierte Licht- und Kamera-Setups
- Output Types als steuerbare Produktionsprofile
- Graph-basierter Workflow-Editor mit Legacy-Kompatibilität
- Worker-basierte Renderausführung mit Docker, Celery und Blender
## Zielnutzen
- Weniger manuelle Übergaben zwischen CAD, Medienproduktion und Admin
- Reproduzierbare Render-Ergebnisse durch Templates und definierte Output Types
- Sichere Migration in Richtung node-basierter Produktion ohne Abschalten des Bestandssystems
- Klare Trennung zwischen operativen Profilen, Workflow-Definitionen und Render-Modulen
## Laufende Architekturidee
Das Zielbild ist eine modulare Produktionskette, in der einzelne Prozessschritte als wiederverwendbare Backend-Module im Workflow-Editor verfügbar sind. Dazu gehören insbesondere:
- CAD-Import und Dateiauflösung
- Geometrie- und GLB-Aufbereitung
- Materialzuordnung und Auto-Population
- Template-Auflösung
- Blender-Rendering
- Ergebnis-Persistierung und Benachrichtigung
Der Legacy-Weg bleibt dabei als Sicherheitsnetz parallel aktiv.
Weiterführende Architektur- und Migrationsdokumente:
- [WORKFLOW_MIGRATION_PLAN.md](workflows/WORKFLOW_MIGRATION_PLAN.md)
- [NODE_BASED_PRODUCTION_ARCHITECTURE.md](workflows/NODE_BASED_PRODUCTION_ARCHITECTURE.md)
- [WORKFLOW_IMPLEMENTATION_BACKLOG.md](workflows/WORKFLOW_IMPLEMENTATION_BACKLOG.md)
## HowTo
### 1. Umgebung starten
Alle Kommandos werden vom Repo-Root aus ausgeführt.
```bash
cp .env.example .env
./scripts/start.sh
```
Danach sind standardmäßig erreichbar:
- Frontend: `http://localhost:5173`
- Backend API: `http://localhost:8888/docs`
- MinIO Console: `http://localhost:9001`
### 2. Mit lokalem Admin anmelden
Der Backend-Startprozess führt Migrationen und Seeds aus. Für lokale Entwicklungsumgebungen ist standardmäßig ein Admin-Benutzer vorhanden:
- E-Mail: `admin@hartomat.com`
- Passwort: `Admin1234!`
### 3. Zentrale Bereiche im UI
- `/` zeigt Dashboard, KPIs und den operativen Einstieg
- `/products` und einzelne Produktseiten bündeln Medien, Vorschauen und Produktdaten
- `/admin` verwaltet Output Types, Render Templates, Asset Libraries und Systemeinstellungen
- `/workflows` ist die Arbeitsfläche für Legacy-kompatible Graph-Workflows
### 4. Typischer Produktionsfluss
1. CAD-Datei oder Medienquelle hochladen.
2. Produktdaten, Materialzuordnung und Bibliotheken prüfen.
3. Render Template und Output Type auswählen.
4. Produktion über Legacy- oder Graph-Workflow starten.
5. Ergebnisse im Produkt, Auftrag oder Medienkontext kontrollieren.
### 5. Stack steuern
```bash
./scripts/restart.sh
./scripts/restart.sh --build
./scripts/restart.sh backend
./scripts/stop.sh
docker compose ps
docker compose logs -f
```
## Screenshots
### Dashboard
![HartOMat Dashboard](assets/screenshots/dashboard.png)
Das Dashboard ist der operative Einstieg in Produkte, Aufträge, KPIs und offene Prozessschritte. Für die Projektdokumentation werden hier Dark-Theme-Screenshots aus der laufenden lokalen Instanz verwendet.
### Workflow Editor
![HartOMat Workflow Editor](assets/screenshots/workflow-editor.png)
Der Workflow-Editor ist die Zieloberfläche für die modulare Produktionskette. Hier werden Legacy-Bridge-Nodes, Referenzpfade und graph-native Nodes zusammengeführt.
### Product Detail
![HartOMat Product Detail](assets/screenshots/product-detail.png)
Auf der Produktdetailseite laufen Geometrie, Medien, Materialzuordnung, Vorschau und Folgeaktionen zusammen.
### Admin
![HartOMat Admin](assets/screenshots/admin.png)
Die Admin-Oberfläche bündelt die Konfiguration von Render Templates, Output Types, Asset Libraries und Systemparametern.
## Betriebsnotizen
- Docker Compose nutzt den Stack-Namen `hartomat`.
- Der Backend-Container führt beim Start Migrationen und Seeds aus.
- GPU-Rendering ist auf den Blender-Worker ausgelegt und erwartet funktionierende Host-/Docker-GPU-Weitergabe.
- Für tiefergehende Workflow- und Paritätsarbeit liegen zusätzliche Dokumente unter [`docs/workflows/`](workflows/).
Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB