We are about to switch to a new forum software. Until then we have removed the registration on this forum.
Hello,
I'm looking for someone to help build a small physics engine / composite-particle gas simulator for a Sci-Fi project.`
--
The program would be a combination of these three processing apps. by Blyk:
'Electric Charges’
http://www.openprocessing.org/sketch/145026
'Insects or Frog'
http://www.openprocessing.org/sketch/155344
‘Sparkles'
http://www.openprocessing.org/sketch/122425
--
Here’s the concept lay-out with two main elements: A. Composite-particle: the dotted 0val thing on the upper left side. B. Medium made out of that composite-particle: the grey Squares on right full of 0vals ( = composite-particles).
The sliders are there to construct the ‘composite' particle out of multiple positive magnetic particles (+) like your electric charged particles, and use that ‘combined' particle to create a gas / medium made out of many of that one ‘composite' particle.
So it would be like your frogs with electric charged particles (+) feet at the end of their legs, and thus the frogs would deflect each other because their feet have the same charge.
The sliders are there define how many legs, how long each leg is; and there’s also a slider for the size (force) of each feet; those are the sliders I to IX on the illustration, and the O is for a central particle (belly). This way it is possible to make any type of particles; it should also be possible to save them and load them, button on the bottom left.
Note, the gas is always made up out of one type of composite-particle and NOT different types of composite-particles.
The sliders on the top left are there to set the number of particles that make up the gas, and the velocity they have similar to how boids have a set velocity.
--
Here are two other Processing programs that could serve as a reference:
A. http://processing.org/examples/flocking.html
(Boids; flying forward but for the frogs would have no the attraction or steering rules; just deflection/repulsion due to the same electric force)
B. http://www.openprocessing.org/sketch/6884
(Scalable magnetic bubbles = hand/feet)
--
The idea is partly related to these smooth snakes (who have a repulsive skin) made by Robert Hodgin:
… where he has given the segments ‘magnetic-repulsion' so they can flow over each other.
The gas simulator I’m looking for is based on the smooth-snake-principle, where the 0val-particles are made up out of multiple symmetrical magnetic composite-particles, they are sort of tiny snakes, or rather baby frogs, tadpoles : )
--
The result would be like this ‘medium' by Tim Hutton with his soft-deflecting solitons (particles):
https://www.youtube.com/watch?v=QJB1Jsk_oTE
--
That’s it.
I'm looking forward to hear from someone one … and if you have some questions or suggestions they're all very welcome.
Kind regards,
michel
http://800millionparticles.blogspot.com
p.s. An other program that GUI-wise is a bit the same is the free iPhone app ‘Liquid’:
https://itunes.apple.com/en/app/liquid-dynamics/id417814216?mt=8
If you haven’t got an iPhone you could check this Java-applet:
http://grantkot.com/MPM/Liquid.html
The ‘Liquid' App is based on this Java-applet by Grant Kot, but these two programs use the 'Material Point Method' which is technically something very different than Processing.
Answers
When adding links to your page the link-text (or URL) goes inside the square brakets but you MUST also have the URL inside the parentheses. This time I have modified the links because I was interested in the topic and didn't want to wait for you to do it but in future please check the links after you have saved the discussion.
Hi Quark,
Thanks for the comment regarding the links ... any suggestions on getting this thing going ... btw it doesn't need to look like the mockup ... any method to get a composited-particle with adjustable deflecting tentacles will do. I thought it would be a fairly easy with a copy/paste from Blyk's individual programs. Just an hour or two work : P
grtz,
m.
If you have a tadpole with multiple feet all with a positive charge then when it is seen by another tadpole it will look and behave like a larger positive charge. Since all the tadpoles have 'positive' feet they will simply repel each other. Try Blyk's Electric Charges program but only add the same type of charge. - Not very exciting
You must first think about how your tadpoles are going to interact and whether there will be other external forces e.g. gravity etc. Then create a class to represent a tadpole using a simple graphic shape e.g. an ellipse to check out their interactions. Once you have something that has interesting behaviour then you can consider the visual for the tadpole and a GUI for designing it.
Well that's the point, but instead of typical bouncy collisions, I'm looking for soft deflections:
... like how the solitons in Tim Huttons simulation behave ...
https://www.youtube.com/watch?v=QJB1Jsk_oTE
... they don't immediately bounce away from each other but slide over each other like the snakes.
Check out for example the sliding critters in this video:
https://www.youtube.com/watch?v=87iqP_WW1qQ
I've also just uploaded a clip of some action with the Magnetic Bubbles program to show how exciting the action can be:
http://youtu.be/umhJ2x5t7ps?t=3m
--
btw the goal aren't 'Tadpoles' but a gas of Exotic-particles ... it's the interaction (flow) between the particles in the Medium that is important. Does it now start to make more sense?
best,
m.
I suggest you play with the flocking example from the Processing website, reduce the alignment force factor and increase the separation force factor and see what you get. The separation force could be modified so that it is only effective over a short distance to give a more interesting interaction.
Boids are all about rules between each other, that is not what I'm looking for, I would like actual 0ne on 0ne 'touchy' deflections.
Boids are also point-particles and can't be anything else than spherical; that's the whole issue, I wan't them to have different shapes such as being 0val, that's why the idea of the composite-particles to tweak them in all kinds of forms.
The basic goal is independent forward moving composite-particles like the snakes, dat deflect each other.
I'm adding a new illustration, to show why the compositing thing is important, because this way all kinds of other critters with a repulsive/deflective skin could be easily fabricated:
The last diagram is very informative.
If we call the blue circles 'ions' (charged particles) and the amount of charge is proportional to the size of the blue circle (my assumption) then it is easy enough to create a class (lets call it Critter) to store the position and strength of the ions that make up its body.
The hardest part would be to calculate the interaction between Critters. Basically you would have to measure the repulsive force vector between each ion in critter1 with each ion in critter2 then resolve all these forces into one force vector.
In traditional boids the calculated force vector would be resolved with the velocity vector to get a new velocity vector for the critter. I think in this case it would be interesting to resolve these forces into a radial velocity to rotate the critter about its 'centre of mass' which will effectively change its direction of travel.
This approach means that if you have 2 critters side by side moving in a (roughly) parallel direction the resolved radial velocity would be very small so they would stay close together for a while.
If you want the ions to be able to move inside the critter due to interaction with an adjacent critter (i.e. they press up against each other pushing the ions towards the critter's centre of mass) then the calculations are more complex because you would have to calculate the ion positions first and then the forces.
Hi Quark,
mh, I don't see why there needs to be a calculation between the Critters; why not keep it local, skin on skin, ion on ion; and have the ions connected with springs, so if one is pushed aside the others move along:
If an ion of Critter A, comes it contact with an ion from Critter B, those ions push each other away (a little); and Critters A and B may start to turn and roll-over; and hit each other for a second time ... until they're both are out of reach.
It's the combination of their momentum along with the repulsion strength of the ions. Check out Donald here, the more momentum he has the further he slides:
Or this 0val falling on a slippery slope, the 1st ion makes contact, the 2nd, ... and so the 0val turns and moves forward:
... having multiple pivot / ion contact points:
If the 0val didn't have a strong momentum it wouldn't fall over and keep on slide forward.
Why not start simple and let the ion-network do all the work, and see if perhaps later on some on board computer (Critter-brain) is needed to straighten things out ... 'one force vector' -wise.
Perhaps each critter could be a flock with structure ... because one part of the idea is that the critters move straight forward along their Spine-axis so to speek once they no longer interact with an other Critter; similar to how fish move relatively straight forward due to their 'elongated' shape and the water-pressure that prevents them from spinning around when they take a turn ... so the rotation is straightened out ... no real angular momentum, that's what a boids-regulation system (brain) might take care of.
The slightest contact there is, they'll be pushing each other away, roll over just a little, and move again away from each other.
But for each type of critter (composition) it will be different, that's why it's important to be able to adjust the critters manually one can start to tweak them and look for interesting interaction. This is one reason to keep it simple.
Perhaps it might be interesting to have one day flexible connections (springs) that can bend and influence the whole structure of the composition but that's not important for now.
grtz,
m.
You need to make up your mind at the start of your last post you talk about ions pushing others aside as if on springs and in the last sentence you say that springs are not important at this time. If the ions have rigid positions inside the critter then moving an ion must result in movement of the critter.
The solution will almost certainly revolve arround using repulsive forces between ions in different critters and if the algorithm for calculating these forces is well designed then it is unlikely that you will have to consider calculating contact points between critters because that will resolve itself.
Hi Quark,
Sorry for the confusion, in the beginning I wrote:
Here I was talking about the straight non flexible connections, the 'frame' so to speak, that holds the whole composite together. Technically they could be rods or springs with no elasticity (but leaving the door open to add some flexing later on).
Next i wrote:
Here i was referring to the magnetic repulsive force, which seemed to have some elasticity, between to particles of the same charge, softness, a spring-like property.
Towards the end i wrote:
There I was again referring to the 'frame'.
Are you suggesting that a different algo/method/tool/library is needed for the repulsive force than that of the 'standard' charged particles from 'Blyk' or the 'Magnetic Bubbles' that I referred to in my OP? ... are the Snakes from Robert with their repulsive skin/segments using some different repulsive force ... what do you have specifically in mind?
Best,
m.
No I am not suggesting that. In both of those examples you effectively have a critter comprising of a single ion - and the force calculations are simple. In your model you have a critter with multiple ions. I am suggesting that the algorithm for working with multiple-ion-critters will be significantly more complex that working with single-ion-critters so 'thinking out of the box' :D at different options might suggest a strategy for designing the algorithm.
single ions