Ich habe mir als Deko eine der im Internet vertriebenen "Sandzeichnungssysteme" (oder wie man die nennen könnte) bestellt und bin erstaunt, was man darin alles beobachten kann: Das Teil besteht aus einer Doppelscheibe mit Flüssigkeit im Hohlraum, einer Luftblase und unterschiedlich gefärbten Partikeln. Das meiste scheint Quarzsand zu sein, es gibt aber auch glitzernde Partikel, die besonders leicht zu sein scheinen. Je nachdem wie man es schwenkt, umkippt und von welcher Ausgangssituation es loslegt, bilden sich sehr unterschiedliche Szenarien, die - wie zu erwarten - völlig chaotisch ablaufen, wodurch es bisweilen zu sehr interessanten Bildern kommt. Neben den Wirbeln im Wasser und den Dünenrolleffekten, die man erwarten konnte, sieht man auch Erosionseffekte, wie man sie vom Abtragen bei Bergen kennt, sowie das Aufwachsen derselben aus Geröll, wie man es von Meteoriteneinschlägen kennt. Oben, im speisenden Teil des Sandgebietes gibt es "Regen" und Erdeinbruchseffekte wie im Bergbau. Umgedreht angesehen, schauen die wiederum oft aus, wie Magmakammern aus denen es aufsteigt. Entscheidend dabei ist jeweils, wie sich die Luftblase beim Umkippen teilt und den Sand blockiert. Es bilden sich manchmal totale Barrieren, die bis zum völligen Stillstand des Systens führen und dafür sorgen, dass es praktisch statisch ist, bis sich dann scheinbar aus dem Nichts "Löcher in der Wolkendecke" bilden und es Sand regnet. Dann wachsen minutenlang kleine Sandberge, die abrutschen und plötzlich bricht alles zusammen und es kippt binnen Sekunden komplett - es gibt dann Wirkelstürme und "Platzregen". Das Ding hat mich nun auf die Idee gebracht, es zu simulieren und zum Bildermalen zu nutzen. Ich habe ja bereits einen Videorenderer, der unter anderem Audio verarbeitet, allerdings total in Echtzeit zeichnet und keine Zustände in dem Sinn kennt und verarbeiten kann. Des weiteren hätte ich einen Emulator für Audiowellen auf Partikelbasis, um Diffusoreneffekte zu simulieren. (Luft als Teilchen mit Bewegung derselben und Berechung über DGL 2. Ordnung mit Abstossung und Kompression). Das würde ich gerne nutzen / kombinieren - es fehlt aber noch an der zündenden Idee wie man das Wasser und die Luft und dessen Effekte in Sachen Blasenbildung und Oberflächenspannung am Geschicktesten ins Spiel bringen könnte. Meine Frage wäre nun, ob jemand etwas derartiges kennt, oder gfs. auch eine Library zur Partikelsimulation und Wirbelsimuation, die man anwenden könnte.
Mir fällt dazu nur ein die Library OpenCV zu nutzen. Musst du dir allerdings alles selber programmieren in C++ oder Python. Da kannste dann deine Bilder erstmal zurecht schneiden dann filtern und herausselektieren welche Daten du willst und dann entsprechend nachzeichnen lassen. Alles übers programmieren. Das ist kein leichtes Projekt! Nutze aber eine stabile OpenCV Version(3.7 mein letzter Kenntnisstand). Würde dir auch empfehlen immer denselben Hintergrund zu nehmen der auch eine gleichbleibende Helligkeit hat. Macht vieles einfacher.
:
Bearbeitet durch User
Hm, das ist ja eine Grafik-Lib, die das Zeichnen unterstürzt. Da sehe ich wenig Probleme das umzusetzen. Es geht mir mehr um die Realisation und Abbildung der Physik dahinter. Vereinfacht ausgedrückt haben wir ja eine Art von Tetris von "runden" Partikeln, bei denen sich sowohl oben als auch unten Lasten auftürmen können, die dann zu einem Fluss über die Kante oder gar dem Einbrechen von Mulden führen können. Dafür bräuchte man ein Druckmodell für die Sandkörner und eine Funktionen fürs Verhaken und Loslösen. Dann etwas Ähnliches für die Luftpartikel, die sichzusammenschließen, gfs auch für die Wassercluster und deren Wirbel. Die Wirbel möchte ich einfach den Sandkörnern überlagern, weil sich das ja durchdringt. Es muss dann sicher eine Kraftübertragung geben, die als Konsequenz dazu führt, dass Wirbel und Wasserströmung Sand beschleunigen können, rieselnder Sand aber auch das Wasser. Fürs Erste wird man wohl 2D bleiben.
Sieh Dir "Blender" an. Da gibt es Simulationen für 'physics', 'flow', 'hard und soft-bodies', particle systems, geometry nodes, force fields etc. Wenn man so eine Simulation zwischen zwei (unsichtbaren) Glasplatten laufen lässt, könnte das den gewünschten Effekt liefern. In YouTube findet man massenweise detaillierte Anleitungen zu den jeweiligen Simulationen.
Anton B. schrieb: > Sieh Dir "Blender" an. Da gibt es Simulationen für 'physics' Ja, das kenne ich, benutze ich auch vereinzelt. Früher was es öfters Cinema 4D. Die bieten aber nicht die realen Möglichkeiten. Man kann dort Strudel und Attraktoren vorgeben aber es physikalisch realistisch zu machen, ist schwierig.
Da brauchst du wohl eine Software für Partikel Simulation. Open Source kenn ich nichts gutes. Die Anzahl der notwendigen Partikel ist für so ein Vorhaben aber nicht wirklich realistisch simulierbar, nichtmal in 2d. Mit z.B. x-Particles lässt sich zumindest etwas optisch ansprechendes umsetzten, aber zahlen will man das eher nicht.
Die Menge ist das Problem, stimmt. Ich habe für einzelne Partikel ein System um Wellenbewegungen in Luft zu simulieren, z.B. für Akustiksimulation. Da reicht was Grobes. Für größere Mengen, gibt es Modelle mit analytischer Definition von Luftdichte, d.h. eine Formel beschreibt den Druck und Dichteverlauf in einem kompletten Voxel. Für Sand bräuchte ich aber schon einzelne Partikel. Zumindest die, die sich bewegen, müssten aktiv simuliert werden.
Knut _. schrieb: > Da brauchst du wohl eine Software für Partikel Simulation. Open Source > kenn ich nichts gutes. Die Anzahl der notwendigen Partikel ist für so > ein Vorhaben aber nicht wirklich realistisch simulierbar, nichtmal in > 2d. Naja, hier [1] gibt es eine Liste, unter anderem mit [2] und [3], aber [4], [5] und [6] gibt es auch noch, und letzteres Projekt wirbt mit einer 3D-Demo (Rover), die 2 Millionen Objekte enthalten soll. [1] https://www.simonwenkel.com/lists/software/list-of-opensource-DEM-software.html [2] https://www.cfdem.com/liggghts-open-source-discrete-element-method-particle-simulation-code [3] https://www.mercurydpm.org/ [4] https://www.sphinxsys.org/ [5] https://f-droid.org/de/packages/com.tss.android/ [6] https://projectchrono.org/
"An Open Source Multi-physics Simulation Engine" hört sich sehr gut an. Danke!
:
Bearbeitet durch User
Vermutlich könnte man Powdertoy relativ einfach anpassen, um die gewünschten Effekte zu erzielen. Die komplette Partikelsimulation ist schon drin. Man müsste lediglich das schwenken durch Manipulation des Gravitationsvektors implementieren: https://github.com/The-Powder-Toy/The-Powder-Toy Das kann auch nicht alles, was man so braucht um die Physik realistisch nachzubilden (Erosion, Oberflächenspannung, ...). Aber ein Anfang ist es schonmal.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.