Autore Topic: Particle Simulation su Commodore 64  (Letto 3001 volte)

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Particle Simulation su Commodore 64
« il: 29 Marzo 2013, 23:16:44 »
Particle Simulation su Commodore 64 - Blog[005]

Per chi volesse saltare al C64, andate al minuto 27:12 :-)

Offline Allanon

  • Administrator
  • Synthetic Voodoo
  • *****
  • Post: 3498
  • Karma: +17/-4
    • Mostra profilo
    • http://www.a-mc.biz
Re:Particle Simulation su Commodore 64
« Risposta #1 il: 29 Marzo 2013, 23:24:42 »
Muoooohhh!!! che figata! Dopo me lo guardo con calma! :)

Offline evilone

  • Nerd
  • *****
  • Post: 561
  • Karma: +2/-0
    • Mostra profilo
Re:Particle Simulation su Commodore 64
« Risposta #2 il: 30 Marzo 2013, 00:33:32 »
@TheKaneB:

Che figata pazzesca!!!Gran figata...a 364gradi!
Poi,vabbè,più nerd di codì si muore... ;)
Grandissimo TheKaneB,il C=64 domina ancora!!!

Offline lucommodore

  • Human Debugger
  • *****
  • Post: 6176
  • Karma: +48/-9
    • Mostra profilo
Re:Particle Simulation su Commodore 64
« Risposta #3 il: 30 Marzo 2013, 00:43:47 »
Se c'è qualche spectrumista gli facciamo il mazzo a tarallo!!!

Grande, grandissimo compare! Sono talmente SMODATAMENTE ORGOGLIONE di te che son senza parole...

Cioè, quindi te ne sei andato in UK e incurante dell'estremo pericolo di vita hai portato una demo per "The ALMIGHTY Commodore 64" in pieno territorio Spectrumiano!
Una roba che in confronto Alessandro Magno era un cagasotto...
Un altro paio di miracoli così e ti fanno santo subito. ;D


EDIT:
Domandazza niubba:
forse ricordo male ma una volta non si usava fortran per fare simulazioni di particelle?
« Ultima modifica: 30 Marzo 2013, 00:49:33 da lucommodore »
Solo chi è folle sfida le sue molle!
http://www.questolibro.it/retro-garage << Scambio/Vendo RetroGame

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:Particle Simulation su Commodore 64
« Risposta #4 il: 30 Marzo 2013, 07:41:19 »
Sì, si usa anche per quello. Dove c'è bisogno di prestazioni senza scendere a livello di assembly, in genere si usa il Fortran, nonostante sia stato il primo linguaggio ad alto livello realizzato.

@Antonio: complimenti! Mi sono goduto tutta la presentazione, ma francamente quando hai pronunciato "C plas plas" m'è apparsa la visione del Golgota e il protagonista eri tu (mentre una guardia ero io :D).

Comunque non so se per questo tipo di calcoli lo Z80 a 3,5Mhz avrebbe potuto offrire prestazioni migliori, visto che è in grado di eseguire operazioni a 16 bit. Di certo lo schermo dello Spectrum era inferiore a quello del Commodore 64 a livello di risoluzione.

P.S. Quel WHAT?!!1! è uscito fuori così, tanto per, oppure è una battutina? ::)

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Particle Simulation su Commodore 64
« Risposta #5 il: 30 Marzo 2013, 12:35:20 »
Citazione
@Antonio: complimenti! Mi sono goduto tutta la presentazione, ma francamente quando hai pronunciato "C plas plas" m'è apparsa la visione del Golgota e il protagonista eri tu (mentre una guardia ero io ).

Buhahaha, che ci vuoi fare è l'abitudine  ;D

Citazione
P.S. Quel WHAT?!!1! è uscito fuori così, tanto per, oppure è una battutina?
Da quel momento in poi la presentazione perde di serietà professionale, quindi ci stava la niubbata (ergo: fatto apposta)  ;)

@lucommodore: Si infatti ho citato il fortran tra i linguaggi classici in uso agli scienziati, insieme al Matlab ed al Python che ultimamente si sta diffondendo parecchio anche in quel campo :)
E comunque, i tipi Dublinesi, in quanto Irish nel midollo, hanno sempre preso un po' le distanze da UK ed in effetti quando ho chiesto "Is there any Spectrumist in this room?" quasi tutti hanno detto di no, tranne due che si guardavano tra loro e stavano zitti (visibilmente intimoriti dalla visione dell'onnipotente C64) :D


Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Particle Simulation su Commodore 64
« Risposta #6 il: 30 Marzo 2013, 12:35:56 »
@TheKaneB:

Che figata pazzesca!!!Gran figata...a 364gradi!
Poi,vabbè,più nerd di codì si muore... ;)
Grandissimo TheKaneB,il C=64 domina ancora!!!

Grazie, non ce l'avrei mai fatta senza la "putenza" del C64  8)

Offline Amig4be

  • Human Debugger
  • *****
  • Post: 6000
  • Karma: +45/-27
    • Mostra profilo
    • Commodore Computer Blog
Re:Particle Simulation su Commodore 64
« Risposta #7 il: 30 Marzo 2013, 13:18:05 »
Beh in effetti è proprio l'esempio sbagliato nel portare nella guerra tra 8 bit, per il calcolo credo che lo speccy era più forte :-)

Ma esattamente sulle particelle della simulazione quali forze agiscono? Solo inerzia o c'è un qualche campo o interazione reciproca?

Se la memoria non mi inganna ciò che interessa in questi casi è la risoluzione delle equazioni differenziali del moto del sistema, e a parte i casi lineari, e non, per i quali esiste la soluzione esatta, si ricorre all'integrazione con metodi matematici, che come spiegato nel video devono tenere conto dell'errore di calcolo per far si che ad esempio l'energia complessiva resti costante, senza aumentare.

Nei giochi come detto questa precisione non è necessaria, l'altro giorno stavo giusto cercando di capire i livelli di precisione del motore fisico di Blender con questa demo

http://youtu.be/cLgL7_W7cc4

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Particle Simulation su Commodore 64
« Risposta #8 il: 30 Marzo 2013, 13:22:29 »
Il C64 può fare TUTTO, e se non sei d'accordo ti aspetto all'uscita  8)

Per quanto riguarda la simulazione, ogni particella ha una carica ed una massa random. Il diametro della circonferenza è proporzionale alla massa, mentre la carica non è visibile a occhio. La carica genera un campo simile a quello Coulombiano, cioè stessa formula ma diversa costante moltiplicativa.


Offline Amig4be

  • Human Debugger
  • *****
  • Post: 6000
  • Karma: +45/-27
    • Mostra profilo
    • Commodore Computer Blog
Re:Particle Simulation su Commodore 64
« Risposta #9 il: 30 Marzo 2013, 13:30:05 »
ah ok, forze inversamente proporzionali al quadrato della distanza...

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Particle Simulation su Commodore 64
« Risposta #10 il: 30 Marzo 2013, 13:37:59 »
yep :p

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:Particle Simulation su Commodore 64
« Risposta #11 il: 30 Marzo 2013, 16:34:21 »
Secondo me lo ZX Spectrum nel number crunching può andare meglio... 8)

Per quanto riguarda la simulazione, ogni particella ha una carica ed una massa random. Il diametro della circonferenza è proporzionale alla massa, mentre la carica non è visibile a occhio. La carica genera un campo simile a quello Coulombiano, cioè stessa formula ma diversa costante moltiplicativa.

Quindi non gestisci collisioni tra le particelle, ma solo il campo Coulombiano?

Stavo analizzando l'implementazione a 23:32, e mi sembra che la radice quadrata len = isqrt(len2); non deve essere fatta, perchè serve la lunghezza quadrata. Anche se "questo qui lo devo mettere sotto" non c'è uso per len. :P

Le particelle come le disegni? Usi sprite o gestisci a mano la bitmap? (Sembra la seconda dal flickering)

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Particle Simulation su Commodore 64
« Risposta #12 il: 30 Marzo 2013, 16:47:00 »
Sì lo screenshot contiene degli errori, consideralo solo un abbellimento per la slide,. La versione del video è quella con tutti gli errori fixati (a parte il glitch dovuto ad un problema nel calcolo fixed point).
In realtà la distanza mi serve anche in forma non quadrata, perchè nell'implementazione finale ho fatto le cose per bene, cioè ho separato il calcolo del potenziale da quello della forza, e nella formula del potenziale la distanza non è quadrata.

Una volta ottenuto il campo scalare del potenziale elettrostatico, la direzione della forza è data dal gradiente negativo del potenziale.

Per simulare gli urti, in molecular dynamics si usa un secondo potenziale che modelli le interazioni a corto raggio. Di solito si usa il modello di Lennard-Jones che è semplice ed al tempo stesso abbastanza accurato. Questo potenziale tiene in conto sia gli urti (in realtà è più simile ad una forza elastica) tra particelle a bassa energia, sia il fatto che particelle ad alta energia possano rimanere incollate dopo l'urto. E' utile infatti nella simulazione di materiali, per calcolare il punto di fusione, il calore latente e altri parametri.

Per la grafica disegno a mano tutto il framebuffer senza sprite, anche perchè i cerchi potrebbero avere dimensioni arbitrarie.

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:Particle Simulation su Commodore 64
« Risposta #13 il: 30 Marzo 2013, 17:17:21 »
In realtà la distanza mi serve anche in forma non quadrata, perchè nell'implementazione finale ho fatto le cose per bene, cioè ho separato il calcolo del potenziale da quello della forza, e nella formula del potenziale la distanza non è quadrata.

Una volta ottenuto il campo scalare del potenziale elettrostatico, la direzione della forza è data dal gradiente negativo del potenziale.
Giusto, ora che ci penso lo ho fatto anche io in un progettino dove ho "visualizzato" il campo elettrostatico di n particelle attraverso GLSL:


(le linee azzurre sono circa-equipotenziali)

... ciò però mi ricorda anche che devo fare l'esame di Fisica 2 a giugno/luglio. :'(

Citazione
Per simulare gli urti, in molecular dynamics si usa un secondo potenziale che modelli le interazioni a corto raggio. Di solito si usa il modello di Lennard-Jones che è semplice ed al tempo stesso abbastanza accurato. Questo potenziale tiene in conto sia gli urti (in realtà è più simile ad una forza elastica) tra particelle a bassa energia, sia il fatto che particelle ad alta energia possano rimanere incollate dopo l'urto. E' utile infatti nella simulazione di materiali, per calcolare il punto di fusione, il calore latente e altri parametri.
Figo!

Offline Allanon

  • Administrator
  • Synthetic Voodoo
  • *****
  • Post: 3498
  • Karma: +17/-4
    • Mostra profilo
    • http://www.a-mc.biz
Re:Particle Simulation su Commodore 64
« Risposta #14 il: 30 Marzo 2013, 17:21:30 »
Finalmente mi sono visto il video, molto interessante e con un livello di nerdosità impressionante :P
Thanks for sharing!
 

Tags: