feat: init project with docs, CLAUDE.md, and empty python script

This commit is contained in:
teier committed 2026-10-28 15:09:25 +01:00
1 parent bf116ea16f
commit fabbc6d147
13 files changed
+139 -1

No files matched your search

+5
View File
@@ -0,0 +1,5 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
+6
View File
@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="~/development/modellierung-und-simulation-ue1/.venv" project-jdk-type="Python SDK" />
</project>
+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.system.id="pyproject.toml" type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.venv" />
</content>
<orderEntry type="jdk" jdkName="~/development/modellierung-und-simulation-ue1/.venv" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PackageRequirementsSettings" />
<component name="PyDocumentationSettings" />
<component name="ReSTService" />
<component name="TestRunnerService" />
</module>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/modellierung-und-simulation-ue1.iml" filepath="$PROJECT_DIR$/.idea/modellierung-und-simulation-ue1.iml" />
</modules>
</component>
</project>
Generated
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
+13
View File
@@ -0,0 +1,13 @@
# Modellierung und Simulation UE1
This project is an exercise for the university course in modelling and simulation.
## Requirements
The requirements by the professor are saved to docs/requirements.md
My interpretation of them is available at docs/docs.md
An UML diagram is available at docs/uml.svg
## Web
The web implementation is pure JavaScript
## Python
The python implementation is a single-file script, which can be run on the command line or a Jupyter notebook
+9 -1
View File
@@ -1,2 +1,10 @@
# modellierung-und-simulation-ue1
# Modellierung und Simulation Übung 1
Dieses Reposiotry enthält zwei Projekte:
1) Im Ordner "python" die Python-Implementierung
2) Im Ordner "web" die JavaScript-Implementierung verfügbar und https://sim.teier.net/ue1
## Python
## Web
+31
View File
@@ -0,0 +1,31 @@
# Zellulärer Automat
Eigenschaften einer Zelle:
Brandfaktor (quasi die “Trockenheit”)
Restbrenndauer
Zustände:
Wald: Brandfaktor zwischen 0,1 und 1 (“Trockenheit”), Restbrenndauer konstant
Brennend: Brandfaktor irrelevant, Restbrenndauer sinkend
Abgebrannt, Brandfaktor 0, Restbrenndauer 0
Gelöscht, Brandfaktor 0, Restbrenndauer 0
Brandschneise (künstlich oder natürlich wie Wasser), Brandfaktor 0, Restbrenndauer 0
Die Simulation behandelt die Zustände Brandschneise, Abgebrannt und Gelöscht gleich, aber für die Visualisierung sind diese Zustände interessant
Nachbarschaft: 8 Zellen
Faktoren für Verbreitung:
Nachbarschaft: direkt mit Gewichtung 1, diagonal mit Gewichtung 0.7 (Moore)
Windrichtung: Vektor (x, y)
Windstärke: 0-1 (0=kein Wind, 1=Wind so stark, dass er Wahrscheinlichkeit in Windrichtung verdoppelt)
Windfaktor für Verbreitung:
1 + Windstärke * cos(Winkel(Vektorwind, Vektorzellen))
Entzündungswahrscheinlichkeit eine Zelle:
Distanz * Brandfaktor * Windfaktor
Code: https://git.teier.net/teier/modellierung-und-simulation-ue1.git
Link: https://sim.teier.net/ue1
+33
View File
@@ -0,0 +1,33 @@
Ausgangspunkt ist die Idee des zellulären Automaten, wie wir sie am Beispiel des Game of Life kennengelernt haben. Ein Raum wird in Zellen aufgeteilt. Jede Zelle besitzt einen Zustand und verändert diesen in diskreten Zeitschritten aufgrund festgelegter Regeln und der Zustände ihrer Nachbarzellen.
Entwickelt auf dieser Grundlage ein eigenes Modell für die Ausbreitung eines Waldbrandes.
Legt zunächst euer Modell fest und beschreibt:
Welche Zustände kann eine Zelle haben? Zum Beispiel Wald, brennend, abgebrannt, Wasser oder Brandschneise.
Welche Nachbarschaft wird verwendet? Vier oder acht angrenzende Zellen?
Unter welchen Bedingungen entzündet sich eine Zelle?
Was passiert mit einer brennenden Zelle im nächsten Zeitschritt?
Welche zusätzlichen Eigenschaften oder Parameter können berücksichtigt werden? zB Trockenheit, Feuchtigkeit, Wind oder Menge Löschwasser?
Wie wird der Rand des Modells behandelt?
Formuliert die Regeln so genau, dass eine andere Person eure Simulation allein anhand dieser Beschreibung implementieren könnte.
Setzt das Modell anschließend in Python um. Ihr dürft dafür KI verwenden.
Führt danach mindestens zwei unterschiedliche Simulationen durch, indem ihr gezielt einen Parameter oder eine Maßnahme verändert, zum Beispiel Trockenheit, Wind, Brandschneisen oder Löschwasser.
Vergleicht die Ergebnisse und beantwortet abschließend kurz:
Was lässt sich mit eurem Modell untersuchen? Welche Annahmen und Vereinfachungen habt ihr getroffen? Welche Aspekte eines echten Waldbrandes bildet euer Modell nicht ab? Was musstet ihr bei der Umsetzung mit KI eventuell korrigieren oder präzisieren?
Abgabe
Gebt das in einem PDF Dokument oder Colab Notebook mit dieser Struktur ab:
Modellbeschreibung
Python-Code oder einen Link zur lauffähigen Simulation
die Ergebnisse eurer beiden Versuche und
kurze Reflexion
Modus: Einzelarbeit oder Gruppenarbeit (max 2)
Frist: 9.11. (nächste Einheit)
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than draw.io -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" style="background: #ffffff; background-color: var(--ge-adaptive-bg, #ffffff); color-scheme: light dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1252px" height="1172px" viewBox="0 0 1252 1172" id="ge-svg-Y9A-iCAgniLj27S3n44-" content="&lt;mxfile host=&quot;app.diagrams.net&quot; scale=&quot;1&quot; border=&quot;0&quot;&gt;&#10; &lt;diagram name=&quot;Page-1&quot; id=&quot;ybR0R8uh0gsWY412Z8hE&quot;&gt;&#10; &lt;mxGraphModel dx=&quot;1291&quot; dy=&quot;2434&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;827&quot; pageHeight=&quot;1169&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#10; &lt;root&gt;&#10; &lt;mxCell id=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;vpmAtYMeYcpatCYC-Gde-1&quot; parent=&quot;1&quot; style=&quot;ellipse;html=1;shape=startState;fillColor=#000000;strokeColor=#ff0000;&quot; value=&quot;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;30&quot; width=&quot;30&quot; x=&quot;372.5&quot; y=&quot;-90&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;vpmAtYMeYcpatCYC-Gde-2&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;vpmAtYMeYcpatCYC-Gde-1&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;rounded=0;fontSize=12;defaultLabelBackgroundColor=page;curved=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; target=&quot;vpmAtYMeYcpatCYC-Gde-59&quot; value=&quot;&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;255&quot; y=&quot;280&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;vpmAtYMeYcpatCYC-Gde-7&quot; parent=&quot;1&quot; style=&quot;shape=umlFrame;whiteSpace=wrap;html=1;pointerEvents=0;&quot; value=&quot;Für jede Zelle&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;700&quot; width=&quot;1130&quot; x=&quot;180&quot; y=&quot;150&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;vpmAtYMeYcpatCYC-Gde-25&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;vpmAtYMeYcpatCYC-Gde-8&quot; style=&quot;edgeStyle=none;curved=1;rounded=0;curveGeometry=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;defaultLabelBackgroundColor=page;startSize=8;endSize=8;&quot; target=&quot;vpmAtYMeYcpatCYC-Gde-24&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;vpmAtYMeYcpatCYC-Gde-54&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;vpmAtYMeYcpatCYC-Gde-8&quot; style=&quot;edgeStyle=none;curved=1;rounded=0;curveGeometry=1;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;defaultLabelBackgroundColor=page;startSize=8;endSize=8;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; target=&quot;vpmAtYMeYcpatCYC-Gde-64&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;255&quot; y=&quot;770&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;vpmAtYMeYcpatCYC-Gde-8&quot; parent=&quot;1&quot; style=&quot;rhombus;whiteSpace=wrap;html=1;shapeInside=1;&quot; value=&quot;Zellenzustand&amp;lt;div&amp;gt;ist brennend?&amp;lt;/div&amp;gt;&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;120&quot; width=&quot;120&quot; x=&quot;195&quot; y=&quot;280&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;vpmAtYMeYcpatCYC-Gde-20&quot; parent=&quot;1&quot; style=&quot;shape=umlFrame;whiteSpace=wrap;html=1;pointerEvents=0;width=100;height=40;&quot; value=&quot;Für jeden Moore-Nachbarn&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry height=&quot;540&quot; width=&quot;440&quot; x=&quot;827&quot; y=&quot;260&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;vpmAtYMeYcpatCYC-Gde-40&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;vpmAtYMeYcpatCYC-Gde-22&quot; style=&quot;edgeStyle=none;curved=1;rounded=0;curveGeometry=1;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;defaultLabelBackgroundColor=page;startSize=8;endSize=8;exitX=0.5;exitY=1;exitDx=0;exitDy=0;&quot; target=&quot;vpmAtYMeYcpatCYC-Gde-64&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;Array as=&quot;points&quot;&gt;&#10; &lt;mxPoint x=&quot;710&quot; y=&quot;680&quot; Line truncated

After

Width:  |  Height:  |  Size: 341 KiB

+5
View File
@@ -0,0 +1,5 @@
[project]
name = "modellierung-und-simulation-ue1"
version = "0.1.0"
requires-python = ">=3.9"
dependencies = []
+1
View File
@@ -0,0 +1 @@