 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
If you thought playing with a wavetank was fun...
http://www.falstad.com/ripple/
...then you're doing to love this...
http://texturegarden.com/java/rd/
Reaction-diffusion simulation. (Basically a chemical reaction produces
chemicals, which diffuse out, and the reaction is reversible.) Different
set of differential equations, same very cool organic results. My
favourite presets are "network" and "spotty dots". (Be sure to turn off
the hieght field option!)
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Mmm, apparently I'm the only person retarded enough to actually be
amused by these.
Then again, when I was a child, I used to sit for hours watching the
washing machine. [Remember that when I was a child, "TV" was only
available for a few hours a day...]
Does anybody know how either of these simulations actually work?
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible a écrit :
> Then again, when I was a child, I used to sit for hours watching the
> washing machine. [Remember that when I was a child, "TV" was only
> available for a few hours a day...]
>
Actually I used to watch both TV *and* the washing machine. Imagine my
despair when my parents bought a washing machine without the glass
window at the front ;-)
> Does anybody know how either of these simulations actually work?
>
I suspect they solve the differential equations in question :-D
--
Vincent
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> Then again, when I was a child, I used to sit for hours watching the
>> washing machine. [Remember that when I was a child, "TV" was only
>> available for a few hours a day...]
>>
>
> Actually I used to watch both TV *and* the washing machine. Imagine my
> despair when my parents bought a washing machine without the glass
> window at the front ;-)
That's just cruel...
>> Does anybody know how either of these simulations actually work?
>
> I suspect they solve the differential equations in question :-D
No... really? :-P
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible wrote:
> Mmm, apparently I'm the only person retarded enough to actually be
> amused by these.
Not at all.
>
> Then again, when I was a child, I used to sit for hours watching the
> washing machine. [Remember that when I was a child, "TV" was only
> available for a few hours a day...]
>
> Does anybody know how either of these simulations actually work?
>
Cellula Automata - Each cell (pixel) follows some simple rules based on
its current state and that of its neighbours to determine its state in
the next generation.
This particular example looks like it implements some equations that
model the reaction of chemicals in 2D. There are real mixtures that
exhibit the pulsating and alternating patterns that some settings reproduce.
Fiddling around with the parameters gives some behaviours that are
interesting and some that quickly lead to all dead, all alive or
something else.
The number of possible combinations of the parameters is huge but there
are typically a small number of interesting classes of behaviour on the
boundaries between boring and chaotic.
Some behaviours strike us as biological which I think sheds light on how
complex life can emerge from simple chemical and physical rules.
You probably know already that this is known as 'emergent behaviour' -
When a system exhibits some behaviour often at a large scale that you
can't really predict from the rules.
I found a couple of nice settings. Not sure if anything similar is in
their presets:
Bees Spaceships
Rate (Agent) 1500 982
Rate (Inhibitor) 6190 12853
Speed (Agent) 230 50
Speed (Inhibitor) 85 41
Scale (Agent) 15 15
Scale (Inhibitor) 15 14
For 'Bees' start a small pattern in the middle. One or more individuals
proliferate by binary division and quickly fill the available space.
Then they start to pulsate in some not quite discernible way.
Occasionally an individual dies but the surrounding cells quickly split
and fill the available space to repair the colony.
'Spaceships' is like the similarly named constructs in Conway's Life. A
bit larger and you can imagine a plasma drive towards the rear. Start
with a bit more random stuff and you get lots of spaceships cruising
around. Occasionally they meet and one or both are destroyed. Some
'self-repair' after close encounters. Interesting thing is to vary the
Speed (Inhibitor) around 41. Take it down and the ships reduce in size.
At 37 they suffer spontaneous explosions after a time and are all
destroyed. From around 43 upwards the trailing edges continually break
off to form new ships and it becomes too chaotic.
Fun stuff. Thanks for the link.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>>> Does anybody know how either of these simulations actually work?
>>
>> I suspect they solve the differential equations in question :-D
>
> No... really? :-P
Really.
The wave tank one is easy, for every "pixel" it simply solves the wave
equation.
http://en.wikipedia.org/wiki/Wave_equation
It may look scary if you don't recognise the symbols, but the maths is
actually quite trivial. All the wave equation says is that the 2nd
derivative wrt to time (ie acceleration) of the value of each pixel is
proportional to the 2nd derivative of the value wrt to distance summed over
every axis.
It's easy to code, you can just take the difference between neighbouring
pixel values twice to work out the 2nd derivative in the x and y direction
and hence the acceleration. Then the acceleration can be used to work out
the velocity and new value using Euler integration.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Paul Fuller wrote:
>> Does anybody know how either of these simulations actually work?
>
> Cellula Automata - Each cell (pixel) follows some simple rules based on
> its current state and that of its neighbours to determine its state in
> the next generation.
I thought a cellula automaton is where each cell has a *finite* number
of possible states? In this example, we have (conceptually) continuous
rather than discrete states.
> This particular example looks like it implements some equations that
> model the reaction of chemicals in 2D. There are real mixtures that
> exhibit the pulsating and alternating patterns that some settings
> reproduce.
Indeed. That's how I found the link. ;-) I saw a TV program mention that
the patterns of animal skins can be described by a single mathematical
formula. Searching for this formula, I came across a document claiming
it's due to reaction diffusion - and hence the second link, which is a
simulation of the reaction diffusion differential equation.
Now, if I could figure out what the equation is and how it works, I
might be able to simulate it...
> Fiddling around with the parameters gives some behaviours that are
> interesting and some that quickly lead to all dead, all alive or
> something else.
>
> The number of possible combinations of the parameters is huge but there
> are typically a small number of interesting classes of behaviour on the
> boundaries between boring and chaotic.
Indeed, this is the case with a lot of fractals. A simple set of rules,
iterated a sufficient number of times, gives rise to complicated and
unpredictable behaviour, which is often quite pretty to look at. :-)
> Fun stuff. Thanks for the link.
It's not quite as much fun, but do a search for "boids" to see some
interesting flocking behaviour...
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
scott wrote:
>>>> Does anybody know how either of these simulations actually work?
>>>
>>> I suspect they solve the differential equations in question :-D
>>
>> No... really? :-P
>
> Really.
>
> The wave tank one is easy, for every "pixel" it simply solves the wave
> equation.
>
> http://en.wikipedia.org/wiki/Wave_equation
>
> It may look scary if you don't recognise the symbols, but the maths is
> actually quite trivial. All the wave equation says is that the 2nd
> derivative wrt to time (ie acceleration) of the value of each pixel is
> proportional to the 2nd derivative of the value wrt to distance summed
> over every axis.
>
> It's easy to code, you can just take the difference between neighbouring
> pixel values twice to work out the 2nd derivative in the x and y
> direction and hence the acceleration. Then the acceleration can be used
> to work out the velocity and new value using Euler integration.
So... acceleration = surface curvature?
How does that change when you have things like walls? Do you have to do
anything special at those edges?
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
scott wrote:
> The wave tank one is easy, for every "pixel" it simply solves the wave
> equation.
>
> http://en.wikipedia.org/wiki/Wave_equation
>
> It may look scary if you don't recognise the symbols
The 2nd partial derrivative of u with respect to t (time?) is equal to
the square of the wave velocity multiplied by the Laplacian of u.
What the heck is a Laplacian when it's at home?
Oh, wait - it's a second-order differential operator in the N-dimenional
Euclidian space defined as the divergence of the gradient. Obviously.
._.
Ouch.
Wikipedia - a great reference source, a rubbish way to learn brand new
concepts. (Indeed, I've seen articles marked for revision *because*
"Wikipedia is not a how-to". Hmm, what *is* Wikipedia then?)
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> http://en.wikipedia.org/wiki/Wave_equation
>>
>> It may look scary if you don't recognise the symbols
>
> The 2nd partial derrivative of u with respect to t (time?) is equal to the
> square of the wave velocity multiplied by the Laplacian of u.
>
> What the heck is a Laplacian when it's at home?
>
> Oh, wait - it's a second-order differential operator in the N-dimenional
> Euclidian space defined as the divergence of the gradient. Obviously.
>
> ._.
>
> Ouch.
Well I'm sure you know what the gradient is. But how is it defined in more
than one dimension? And the divergence function? It's all taught in vector
calculus...
> Wikipedia - a great reference source, a rubbish way to learn brand new
> concepts. (Indeed, I've seen articles marked for revision *because*
> "Wikipedia is not a how-to". Hmm, what *is* Wikipedia then?)
Wikipedia is a reference, not a website full of tutorials. Still, they
should link at the bottom of the "vector calculus" page to some good online
tutorial as it's really not very hard if you have a basic understanding of
normal calculus.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> Ouch.
>
> Well I'm sure you know what the gradient is. But how is it defined in
> more than one dimension? And the divergence function? It's all taught
> in vector calculus...
Try to remember: I have never taken any course in any mathematical
subject of any description. I have a GCSE in mathematics (grade C), but
that only covers addition, subtraction, multiplication, division and a
few other bits and pieces. Everything else I know is what I have managed
to figure out from reading books and surfing the net. ;-)
It's a wonder I know anything about mathematics at all... heh.
>> Wikipedia - a great reference source, a rubbish way to learn brand new
>> concepts. (Indeed, I've seen articles marked for revision *because*
>> "Wikipedia is not a how-to". Hmm, what *is* Wikipedia then?)
>
> Wikipedia is a reference, not a website full of tutorials. Still, they
> should link at the bottom of the "vector calculus" page to some good
> online tutorial as it's really not very hard if you have a basic
> understanding of normal calculus.
I agree there.
Certainly the page on digital filters makes them seem like an utterly
incomprehensible topic. But a short read of a good book reveals that
it's all actually quite simple. [Assuming you want linear,
time-invariant filters of course.]
Ah well, never mind.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> Cellula Automata - Each cell (pixel) follows some simple rules based
>> on its current state and that of its neighbours to determine its state
>> in the next generation.
>
> I thought a cellula automaton is where each cell has a *finite* number
> of possible states? In this example, we have (conceptually) continuous
> rather than discrete states.
I don't see anything in this case to say that the number of states of a
cell is infinite :)
OK - this is more properly called a 'continuous automata' or a
'continuous spatial automata' than a CA. Very similar except that the
future state is determined by functions rather than a state table.
Still if you had a large enough state table...
Still the states here seem to converge to certain preferred values and
patterns. Like 'attractors' in a fractal.
>
>> This particular example looks like it implements some equations that
>> model the reaction of chemicals in 2D. There are real mixtures that
>> exhibit the pulsating and alternating patterns that some settings
>> reproduce.
>
> Indeed. That's how I found the link. ;-) I saw a TV program mention that
> the patterns of animal skins can be described by a single mathematical
> formula. Searching for this formula, I came across a document claiming
> it's due to reaction diffusion - and hence the second link, which is a
> simulation of the reaction diffusion differential equation.
>
> Now, if I could figure out what the equation is and how it works, I
> might be able to simulate it...
Don't the references provided by the site give details ?
"It is based on the Gray-Scott model, and was taken from John E.
Pearson's Complex Patterns in a Simple System - Science, 261, 189, 9
July 1993.
More details about the type of system used can be found at the [Xmorphia
web site].
>
>> Fiddling around with the parameters gives some behaviours that are
>> interesting and some that quickly lead to all dead, all alive or
>> something else.
>>
>> The number of possible combinations of the parameters is huge but
>> there are typically a small number of interesting classes of behaviour
>> on the boundaries between boring and chaotic.
>
> Indeed, this is the case with a lot of fractals. A simple set of rules,
> iterated a sufficient number of times, gives rise to complicated and
> unpredictable behaviour, which is often quite pretty to look at. :-)
>
True.
>> Fun stuff. Thanks for the link.
>
> It's not quite as much fun, but do a search for "boids" to see some
> interesting flocking behaviour...
>
Been there. Done that. We have similar interests.
I first saw Chris Langton's work on Boids described in Scientific
American. Maybe 20 years ago (?). Back then I wrote a version (in 2D)
on the Apple ][ and it worked but very slowly. There are many
simulators out there to play around with now and machine performance is
so much better that it is just ridiculous.
Ditto with fractals BTW. I still have the August 1985 Scientific
American with the Mandelbrot Set cover and article by AK Dewdney in his
Computer Recreations column. Talk about a bombshell ! Unfortunately at
1MHz the old Apple was a little slow and the graphics a bit primitive.
It wasn't until I wrote a multi-tasking version in assembler on a
mainframe with output rendered to a laser printer that I was happy.
'Artificial Life' by Steven Levy is a good popular science book on the
A-Life field including CAs, Boids and Genetic Algorithms. It was
published in 1992 so things have progressed a bit and there is a lot of
more recent work available on the Web. Still a good read though.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> I thought a cellula automaton is where each cell has a *finite* number
>> of possible states? In this example, we have (conceptually) continuous
>> rather than discrete states.
>
> I don't see anything in this case to say that the number of states of a
> cell is infinite :)
>
> OK - this is more properly called a 'continuous automata' or a
> 'continuous spatial automata' than a CA. Very similar except that the
> future state is determined by functions rather than a state table. Still
> if you had a large enough state table...
>
> Still the states here seem to converge to certain preferred values and
> patterns. Like 'attractors' in a fractal.
Indeed, yes.
>> Now, if I could figure out what the equation is and how it works, I
>> might be able to simulate it...
>
> Don't the references provided by the site give details ?
>
> "It is based on the Gray-Scott model, and was taken from John E.
> Pearson's Complex Patterns in a Simple System - Science, 261, 189, 9
> July 1993.
>
> More details about the type of system used can be found at the [Xmorphia
> web site].
The Xmorphia web site apparently no longer exists. (Firefox tells me the
server cannot be found.)
As for "Science, 261, 189, 9 July 1993", what does that actually *mean*?
>> It's not quite as much fun, but do a search for "boids" to see some
>> interesting flocking behaviour...
>>
>
> Been there. Done that. We have similar interests.
>
> I first saw Chris Langton's work on Boids described in Scientific
> American. Maybe 20 years ago (?). Back then I wrote a version (in 2D)
> on the Apple ][ and it worked but very slowly. There are many
> simulators out there to play around with now and machine performance is
> so much better that it is just ridiculous.
I could have chosen this for my final year project in my degree.
(Actually I chose distributed MVC, because I figured OpenGL would be
*way* too hard. You have to use C for a start...)
> Ditto with fractals BTW. I still have the August 1985 Scientific
> American with the Mandelbrot Set cover and article by AK Dewdney in his
> Computer Recreations column. Talk about a bombshell ! Unfortunately at
> 1MHz the old Apple was a little slow and the graphics a bit primitive.
> It wasn't until I wrote a multi-tasking version in assembler on a
> mainframe with output rendered to a laser printer that I was happy.
I first came across the M set in an edition of the Guinness Book of
Records. It held the record for "most complicated mathematical object".
Not entirely sure how they arrived at that conclusion... ;-) The text
accompanying it mumbled something about real and imaginary numbers,
fluid dynamics and the stock market. It didn't make a lot of sense.
Later I found books such as The Beauty of Fractals and so on in the
local library. Most of these consisted of miles of very advanced
mathematics, most of it concerning the statistical properties of the
coastline or something, and almost none of it to do with drawing these
fantastic images that I longed for. The tiny selection of actual
*pictures* present usually included only the vaguest suggestion of what
the image *is*, and absolutely no suggestion about HOW TO MAKE IT. It
was an extremely frustrating time...
Eventually, by dint of wading through many, many textbooks on advanced
mathematical techniques, I was eventually able to grok the concept of
complex numbers, and eventually to comprehend *why* the apparently
unrelated formulas Z = Z^2 + C and (X,Y) = (X^2 - Y^2 + A, 2XY + B) are
actually the same thing. This happened while I was at college, where
they actually *had* math books on the shelves. Progress was much more
rapid after that...
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> The Xmorphia web site apparently no longer exists. (Firefox tells me the
> server cannot be found.)
>
> As for "Science, 261, 189, 9 July 1993", what does that actually *mean*?
I dug around and found the equations in some PDF paper:
http://citeseer.ist.psu.edu/45188.html
They're on page two, and if you understood how the wave equation worked then
it should be pretty trivial to implement.
If I get time I would like to try and implement this in a pixel shader, it's
exactly the thing that GPUs are good at - performing the same code on a huge
number of different pixels.
> Later I found books such as The Beauty of Fractals and so on in the local
> library. Most of these consisted of miles of very advanced mathematics,
> most of it concerning the statistical properties of the coastline or
> something, and almost none of it to do with drawing these fantastic images
> that I longed for. The tiny selection of actual *pictures* present usually
> included only the vaguest suggestion of what the image *is*, and
> absolutely no suggestion about HOW TO MAKE IT. It was an extremely
> frustrating time...
I think I looked at a BASIC implementation and figured out what the core
loop was doing. It was pretty cool that such a small simple bit of code
made such nice pictures. I tried writing a version in assembler, it worked
but using fixed point numbers meant you could only zoom in about 3 or 4
times until it all went wrong (no FPU on that machine!).
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
scott wrote:
>> The Xmorphia web site apparently no longer exists. (Firefox tells me
>> the server cannot be found.)
>>
>> As for "Science, 261, 189, 9 July 1993", what does that actually *mean*?
>
> I dug around and found the equations in some PDF paper:
>
> http://citeseer.ist.psu.edu/45188.html
>
> They're on page two, and if you understood how the wave equation worked
> then it should be pretty trivial to implement.
I see. So we have two chemicals, who's concentrations are governed by a
new, more complicated pair of differential equations. Is that basically
what it means?
> If I get time I would like to try and implement this in a pixel shader,
> it's exactly the thing that GPUs are good at - performing the same code
> on a huge number of different pixels.
More precisely, doing the some thing on a huge number of different
pixels *independently*. ;-) All goes horribly wrong with lots of data
dependencies. Still, for this, only neighboring pixels matter, so it
should still move like lightning...
>> Later I found books such as The Beauty of Fractals and so on in the
>> local library. Most of these consisted of miles of very advanced
>> mathematics, most of it concerning the statistical properties of the
>> coastline or something, and almost none of it to do with drawing these
>> fantastic images that I longed for. The tiny selection of actual
>> *pictures* present usually included only the vaguest suggestion of
>> what the image *is*, and absolutely no suggestion about HOW TO MAKE
>> IT. It was an extremely frustrating time...
>
> I think I looked at a BASIC implementation and figured out what the core
> loop was doing.
Me too.
When my dad purchased AMOS Professional (look it up), it came with a
5-disk set of example programs. One was a thing that drew a litle
jellyfish. (I now realise that this was the quadratic Julia set C = 0.26
or so.) And another program drew the Mandelbrot set. Slowly. Very
slowly. (Hello? Interpretted language on an 8 MHz CPU with no FPU?)
The program in question had lots of different colouring options and so
forth. It took a while to dig out the core loop. I was especially
surprised to find that it does all these complicated calculations, and
then THROWS THE ANSWER AWAY and only counts HOW MANY TIMES it's been
round the loop. That was quite unexpected!
> It was pretty cool that such a small simple bit of code
> made such nice pictures.
Indeed yes! I found this to be quite amazing...
Eventually I came to know the Mandelbrot algorithm like the back of my
hand. But how to make that "cubic Mandelbrot" you see in all the books?
Various simple manipulations of the loop formula failed to produce the
correct image. Compare:
X = X*X - Y*Y + A
Y = 2*X*Y + B
Obviously (?!), the correct formula is in fact
X = X*X*X - 3*X*Y*Y + A
Y = 3*X*X*Y - Y*Y*Y + B
I would never have thought of that in a million years. At least, not
until I finally worked out what a "complex number" actually is and how
to do arithmetic with them...
> I tried writing a version in assembler, it
> worked but using fixed point numbers meant you could only zoom in about
> 3 or 4 times until it all went wrong (no FPU on that machine!).
Took 2 hours at 320x240 on my Amiga 1200 with a 20 MHz FPU.
Took 6 hours on the RM Nimbus we had at school, with a 286 and a copy of
RMBASIC. Damn that was slow...!
By the time I got to college, I was writing programs in Pascal with
random dithering, multiple colouring algorithms and other bells and
whistles.
[Other examples that came with AMOS included an L-system that draws
plants. I never did figure out how. Later I saw a Blitz Basic example
that uses the Chaos Game to draw lots of interesting stuff in realtime.
On, and that's also where I first figured out how to do the infinite
trails trick...]
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> I see. So we have two chemicals, who's concentrations are governed by a
> new, more complicated pair of differential equations. Is that basically
> what it means?
I think the equations are actually *simpler* than the wave equation because
it gives you the velocity of the concentrations directly (not the
acceleration). One less integration step to perform, and no need to keep an
array of velocity information.
>> If I get time I would like to try and implement this in a pixel shader,
>> it's exactly the thing that GPUs are good at - performing the same code
>> on a huge number of different pixels.
>
> More precisely, doing the some thing on a huge number of different pixels
> *independently*. ;-) All goes horribly wrong with lots of data
> dependencies. Still, for this, only neighboring pixels matter, so it
> should still move like lightning...
Doesn't matter, because you cannot read pixels from a texture you are
rendering to currently. So you need to have one texture that shows the
previous state, and then your pixel shader will write the new state into a
new texture, performing as many look-ups from the old texture as you like.
After you've created the new states then obviously you can swap the textures
around for the next generation.
I'd then write another pixel shader that read form the two state textures
and outputted to the screen back-buffer some colours, possibly using a 3rd
texture as a look-up-table for speed.
> Took 2 hours at 320x240 on my Amiga 1200 with a 20 MHz FPU.
Oh I was down to about a minute or two at 640x480 on my 12 MHz Acorn (no
FPU). Limited zooming possibilities though. Actually someone had written a
much more complicated version in assembler that got around the accuracy
limitations of 32-bit ints somehow and also ran faster than mine...
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
scott wrote:
> Oh I was down to about a minute or two at 640x480 on my 12 MHz Acorn (no
> FPU). Limited zooming possibilities though. Actually someone had
> written a much more complicated version in assembler that got around the
> accuracy limitations of 32-bit ints somehow and also ran faster than
> mine...
I had a really good Mandelbrot/Julia generator on the Acorn called
!Mandy. That was bloody fast, and you could go really deep.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> Took 2 hours at 320x240 on my Amiga 1200 with a 20 MHz FPU.
>
> Oh I was down to about a minute or two at 640x480 on my 12 MHz Acorn (no
> FPU). Limited zooming possibilities though. Actually someone had
> written a much more complicated version in assembler that got around the
> accuracy limitations of 32-bit ints somehow and also ran faster than
> mine...
Well, it was written in interpretted BASIC, what do you expect? ;-)
[Also written very simply, with no evidence of any attempt at
optimisation... And lots of configurable options which slow rendering
down even if you don't use 'em.]
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible wrote:
> Then again, when I was a child, I used to sit for hours watching the
> washing machine. [Remember that when I was a child, "TV" was only
> available for a few hours a day...]
Hmm... That does explain some things ...
> Does anybody know how either of these simulations actually work?
Sort of ... They're both cellular automata systems, I believe.
On a side note, the page that has the wave simulator has my favorite
waste of time:
http://www.falstad.com/circuit/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> Then again, when I was a child, I used to sit for hours watching the
>> washing machine. [Remember that when I was a child, "TV" was only
>> available for a few hours a day...]
>
> Hmm... That does explain some things ...
._.
> On a side note, the page that has the wave simulator has my favorite
> waste of time:
>
> http://www.falstad.com/circuit/
Ah yes, another interesting toy. If only I knew what it all means...
Actually, that site has a whole heap of seriously interesting stuff. I
also enjoy playing with the digital filters and so forth.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible wrote:
>> http://www.falstad.com/circuit/
>
> Ah yes, another interesting toy. If only I knew what it all means...
Heh. When I was a kid, I had one of those electronics kits where you
wire things together with spring terminals. Great fun. This applet
really makes me want to run out to the local Radio Shack and grab a few
handfuls of components and a breadboard and start building stuff for the
fun of it.
> Actually, that site has a whole heap of seriously interesting stuff. I
> also enjoy playing with the digital filters and so forth.
>
Electron orbitals was another fun one ... I believe there's a function
in POV-Ray that generates an electron probability cloud.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>>> http://www.falstad.com/circuit/
>>
>> Ah yes, another interesting toy. If only I knew what it all means...
>
> Heh. When I was a kid, I had one of those electronics kits where you
> wire things together with spring terminals. Great fun.
Yes, I also have 3 of those in my room somewhere. (Most of them now
hopelessly broken.) That's how I first learned about logic gates, and
how neat they are.
Somewhere I've got some of that microboard and a stack of 7400s... >:-D
[I never did build that computer though...]
>> Actually, that site has a whole heap of seriously interesting stuff. I
>> also enjoy playing with the digital filters and so forth.
>
> Electron orbitals was another fun one ... I believe there's a function
> in POV-Ray that generates an electron probability cloud.
Um... sure, if it's sin() or something. ;-)
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible wrote:
>> Electron orbitals was another fun one ... I believe there's a function
>> in POV-Ray that generates an electron probability cloud.
>
> Um... sure, if it's sin() or something. ;-)
>
This one:
> f_quantum(x,y,z, P0). It resembles the shape of the electron density
> cloud for one of the d orbitals.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Mike Raiford wrote:
> Invisible wrote:
>
>>> Electron orbitals was another fun one ... I believe there's a
>>> function in POV-Ray that generates an electron probability cloud.
>>
>> Um... sure, if it's sin() or something. ;-)
>>
>
> This one:
>
> > f_quantum(x,y,z, P0). It resembles the shape of the electron density
> > cloud for one of the d orbitals.
Ah, right. So it's in functions.inc. I've never really looked in there. ;-)
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am Wed, 09 Jan 2008 10:01:11 +0000 schrieb Invisible:
> As for "Science, 261, 189, 9 July 1993", what does that actually *mean*?
>
(Assuming you don't already know this stuff, but maybe it is still useful
for someone else) It is a short way of citing articles of scientific
journals. In this case the journal is called "Science Magazine", the
volume is 261 and the pagenumber, where the article starts, is 189.
http://www.sciencemag.org/cgi/content/abstract/261/5118/189
Usually you have to subscribe to such journals to download articles, and
it is very expensive to subscribe to them, so usually it is only done by
universities or research institutions. If there is a university near you,
you can try to get articles at the library, as journal subscriptions are
usually for the university network and (at least in germany) you can get
a university library card also as a normal person for a very small fee
(something like 10 € for a year). For finding articles
http://scholar.google.com
is not bad, although there are better search pages for which you have to
pay a subscription fee.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Florian Pesth wrote:
> Am Wed, 09 Jan 2008 10:01:11 +0000 schrieb Invisible:
>
>> As for "Science, 261, 189, 9 July 1993", what does that actually *mean*?
>>
> (Assuming you don't already know this stuff, but maybe it is still useful
> for someone else) It is a short way of citing articles of scientific
> journals. In this case the journal is called "Science Magazine", the
> volume is 261 and the pagenumber, where the article starts, is 189.
>
> http://www.sciencemag.org/cgi/content/abstract/261/5118/189
>
> Usually you have to subscribe to such journals to download articles, and
> it is very expensive to subscribe to them, so usually it is only done by
> universities or research institutions.
I see. So *this* is why you can never actually read all these papers
they tell you exist? [I've never read a "paper" in my life, for example.
And I'm not very clear on what one actually "is" either.]
> If there is a university near you,
> you can try to get articles at the library, as journal subscriptions are
> usually for the university network and (at least in germany) you can get
> a university library card also as a normal person for a very small fee
> (something like 10 € for a year). For finding articles
>
> http://scholar.google.com
>
> is not bad, although there are better search pages for which you have to
> pay a subscription fee.
OK.
Well in this case, I probably wouldn't understand the paper in question
anyway, but still...
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Florian Pesth wrote:
> http://scholar.google.com
>
> is not bad, although there are better search pages for which you have to
> pay a subscription fee.
Access to other search pages may also be included in a university
library membership.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Bill Pragnell wrote:
> Access to other search pages may also be included in a university
> library membership.
Theoretically I have a lifetime membership to DeMontfort's library. That
probably doesn't help very much though - unless I drive to Leicester.
(Which, obviously, I'm not going to do.)
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> I see. So *this* is why you can never actually read all these papers they
> tell you exist? [I've never read a "paper" in my life, for example. And
> I'm not very clear on what one actually "is" either.]
Try adding "site:citeseer.ist.psu.edu" into any google search you do, then
the results list should be papers that match your search.
If I google "site:citeseer.ist.psu.edu haskell" I get 6640 results, each of
which is a paper you can read online for free (just click the link, then
choose the format you want to read it in at the top right).
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
scott wrote:
>> I see. So *this* is why you can never actually read all these papers
>> they tell you exist? [I've never read a "paper" in my life, for
>> example. And I'm not very clear on what one actually "is" either.]
>
> Try adding "site:citeseer.ist.psu.edu" into any google search you do,
> then the results list should be papers that match your search.
>
> If I google "site:citeseer.ist.psu.edu haskell" I get 6640 results, each
> of which is a paper you can read online for free (just click the link,
> then choose the format you want to read it in at the top right).
For reasons that aren't entirely clear, almost all Haskell documentation
is in the form of research papers - so if they weren't available online,
there wouldn't be any documentation at all. So it tends to be online.
Odd arrangement...
Let's see what I get for reaction diffusion...
http://citeseer.ist.psu.edu/85000.html
OK, that looks pretty promising. [Without actually reading it yet.]
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> If I get time I would like to try and implement this in a pixel shader,
> it's exactly the thing that GPUs are good at - performing the same code on
> a huge number of different pixels.
OK so I implemented the wave equation in a pixel shader (well 3 of them
actually).
Runs at 75 fps at 1280x800 and looks v. sexy and smooth. I only made a
basic black/blue gradient for now, but it uses a texture LUT for the
colour-map so I can replace it with anything later.
CPU usage is essentially zero during the execution, the program is speed
limited by the number of texture look-ups to do the 2nd order
differentiation in the x and y directions.
I used the following algorithm:
u = texture of "heights"
v = texture of velocity of heights
t = temp texture
set u and v as input textures, and t as the render target
- calculate the new height velocity using the wave equation
swap v and t
set u and v as input textures, and t as the render target
- calculate the new heights using the velocity information
swap u and t
set u and the input texture and the screen as the render target
- use the colour-map LUT to choose a colour
There is another integration method called Verlet or something that
supposedly can do this sort of simulation without needing to store the
velocities, that should speed things up a lot as swapping around render
targets and textures are slow operations.
After I've optimised this one a bit more I may start on implementing the
diffuse-reaction equation next week :-)
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |