|
View:
New views
6 Messages
—
Rating Filter:
Alert me
|
|
|
Growth algorithm making more possiblePrenote: how can i answer to a existing topic without creating a new one?
(remember I also asked that in the past ^^) Well lets begin with the main course the theoretics behind my algorithm idea(if your not in the mood just jump to the Practical part): Ok, imagine making a mental snapshot/copy of a Fluidon creature which already has a stable form, now adjust the lengthes to the current state (so that tension and pressure disappear) and increase the rigidty to maximum. >From this nice, colorless and rigid structure you choose one intervall, now imagine you cut this intervall in half and knot the ends together, basically you replace endpoint - line - endpoint with endpoint - line - midpoint - line- endpoint Now what exactly has happened/changed with your structure? Lets first look at the worst case of two possible: The two endpoints can change their distance, they have gained an additional degree of freedom, to move away or towards each other(on a bent line,or in the right coordinate system in a straight line). The midpoint has two degrees of freedom: First it can rotate around the connection axis of the two endpoins, this degree of freedom is independant,its not related to the two endpoints. Second it can change the radius it rotates around the axis, this degree of freedom is dependant and directly related to the movement of the two endpoints.(In the right coordinate system:the midpoint moves on a circular surface orthogonal to the connection line of the endpoints) So what can we do to take away the degree of freedoms ,and define a stable structure? There are two choices: Choice one: First we elimate the degree of freedom of the endpoints, for this we must know, which points have stable distances relative to endpoint A and which have stable distances to endpoint B if we move the two endpoints away and towards each other. Once we know this(by doing a test run) we connect a point stable to A with a point stable to B, trough this we also eliminated one degree of freedom of the midpoint,the one related the endpoint. The midpoint now rotates in a circle with a constant radius, note that the freedom of a loose intervall(only connected) to one point is represented as spherical surface and this surface now has to cut the circle, they cutpoints are the stable formations that are created when we merge the midpoint with the loose intervalls endpoint. Choice two: We use two loose end intervalls (two spheres)originating from points stable to each other(so either both are Stable to A or both to B) to cut the circle surface created by the midpoint. The first sphere creates a cutline on which the mid point can move if midpoint merges with loose intervall endpoit, the second creates two or one cutpoint which are stable formations, as the degree of freedom of the endpoints was directly related to the degree of freedom of the midpoint. (note only at certain lengthes there is one instead of two two stable points, its when the two stable points merge with each other) So why you might ask had the originating points of the loose intervalls be stable to each other? Well cause otherwise if the endpoints tried to move the orignating points could try to move with them(changing sphere position results in-->change of cut points) leading to a complicates movement pattern(although in some cases special conditions might prevent this, generally there should result a certain freedom of movement) The better case: In the better case the endpoints can not move cause of other connections, in this case, the midpoint has only one degree of freedom, and we only need one additional conection from the mid point to another point to stabilize the system. Practical: Lets go back to our snapshooted rigid, tension- and pressureless structure, (Created by copying a stable fluidom structure and adjusting all original lengthes to the current ones) after we have choosen one connection we expand and shrink just this one and test if extensive stress is created(remember all is very rigid), if yes the better case has appeared if no the worst case appeared. Additional we test, which points did not change distance in relation to ,which endpoint of the intervall, while we executed the expanding and shrinking. (the following is done to the building plan of the new child) Now replace the line with two lines to each other, basically a long line with a midpoint [endpoint-line-midpoint-line-endpoint]. In the worst case connect the midpoint with one other point(originating point),then choose either to connect the midpoint with another point stable to the originating point of the first connection, or connect a point stable to one endpoint with a point stable to the other endpoint. In the better case connect the midpoint with an additional point. Thats the whole method ,although you might still need some conditions where to place the midpoint, when you only want to choose certain stable point, or you might not want to much connections to far away points of your body, but this relies totally on your taste. -- "Ein Herz für Kinder" - Ihre Spende hilft! Aktion: www.deutschlandsegelt.de Unser Dankeschön: Ihr Name auf dem Segel der 1. deutschen America's Cup-Yacht! ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Fluidiom-code mailing list Fluidiom-code@... https://lists.sourceforge.net/lists/listinfo/fluidiom-code |
|
|
Re: Growth algorithm making more possibleOn 12/1/06, Sven Heinz <Wush1@...> wrote:
> Well lets begin with the main course the theoretics behind my algorithm idea(if your not in the mood just jump to the Practical part): oh no, i love this stuff! > Ok, imagine making a mental snapshot/copy of a Fluidon creature which already has a stable form, now adjust the lengthes to the current state > (so that tension and pressure disappear) and increase the rigidty to maximum. > >From this nice, colorless and rigid structure you choose one intervall, > now imagine you cut this intervall in half and knot the ends together, > basically you replace > endpoint - line - endpoint > with > endpoint - line - midpoint - line- endpoint > Now what exactly has happened/changed with your structure? well, it has become unstable because the new thing can fold/collapse. > Lets first look at the worst case of two possible: > > The two endpoints can change their distance, they have gained an additional > degree of freedom, to move away or towards each other(on a bent line,or in the right coordinate system in a straight line). > The midpoint has two degrees of freedom: > First it can rotate around the connection axis of the two endpoins, this degree of freedom is independant,its not related to the two endpoints. > Second it can change the radius it rotates around the axis, this degree > of freedom is dependant and directly related to the movement of the two endpoints.(In the right coordinate system:the midpoint moves on a circular surface orthogonal to the connection line of the endpoints) right. > So what can we do to take away the degree of freedoms ,and define a stable > structure? > There are two choices: > > Choice one: First we elimate the degree of freedom of the endpoints, for this we must know, which points have stable distances relative to endpoint A and which have stable distances to endpoint B if we move the two endpoints away and towards each other. > Once we know this(by doing a test run) we connect a point stable to A with a point stable to B, trough this we also eliminated one degree of freedom of the midpoint,the one related the endpoint. > The midpoint now rotates in a circle with a constant radius, note > that the freedom of a loose intervall(only connected) to one point is represented as spherical surface and this surface now has to cut the circle, they cutpoints are the stable formations that are created when we merge the midpoint with the loose intervalls endpoint. complicated, but it think i still follow you. > Choice two: We use two loose end intervalls (two spheres)originating from points stable to each other(so either both are Stable to A or both to B) to cut the circle surface created by the midpoint. > The first sphere creates a cutline on which the mid point can move if midpoint merges with loose intervall endpoit, the second creates two or one cutpoint which are stable formations, as the degree of freedom of the endpoints was directly related to the degree of freedom of the midpoint. (note only at certain lengthes there is one instead of two two stable points, its when the two stable points merge with each other) > So why you might ask had the originating points of the loose intervalls be > stable to each other? Well cause otherwise if the endpoints tried to move > the orignating points could try to move with them(changing sphere position results in-->change of cut points) leading to a complicates movement pattern(although in some cases special conditions might prevent this, generally there should result a certain freedom of movement) i wish you could write the code for this so that the explanation doesn't have to be in so many words. :) i'm afraid i've lost you here. i'm trying. > The better case: > In the better case the endpoints can not move cause of other connections, in this case, the midpoint has only one degree of freedom, and we only need one additional conection from the mid point to another point to stabilize the system. i have the code for something i called "tetrahedral mitosis" and it does the following: * bisect one interval, leaving a new joint at the midpoint and turning one interval into two. * connect the new joint with the two opposite joints with two new intervals this turns one tetrahedron into two, immediately stabilizing the new joint. i don't employ this code anymore but i liked it! > Practical: > Lets go back to our snapshooted rigid, tension- and pressureless structure, > (Created by copying a stable fluidom structure and adjusting all original lengthes to the current ones) > after we have choosen one connection we expand and shrink just this one > and test if extensive stress is created(remember all is very rigid), if yes the better case has appeared if no the worst case appeared. how do you define "extensive"? > Additional we test, which points did not change distance in relation to ,which endpoint of the intervall, while we executed the expanding and shrinking. > (the following is done to the building plan of the new child) > Now replace the line with two lines to each other, basically a long line with a midpoint [endpoint-line-midpoint-line-endpoint]. > In the worst case connect the midpoint with one other point(originating point),then choose either to connect the midpoint with another point stable to the originating point of the first connection, or connect a point stable to one endpoint with a point stable to the other endpoint. > In the better case connect the midpoint with an additional point. things like "an additional point" have to be made explicit before this is coded into an algorithm. > Thats the whole method ,although you might still need some conditions where > to place the midpoint, when you only want to choose certain stable point, or you might not want to much connections to far away points of your body, > but this relies totally on your taste. i can't yet see my way to coding what you suggest here, although i really enjoy the way you are thinking about the structures by adjusting lengths to eliminate stresses and then disturbing things a little to see what happens. what do you think of the tetrahedron mitosis idea? that is already coded. i even had it set up to handle situations in which an interval participates in multiple tetrahedrons by connecting the new midpoint with every opposite joint in all relevant tetrahedrons. these are really fun pieces of code to write because they ride on top of a whole world of code and can be added and removed whenever you want. i code these things as "interval visitor" or "joint visitor" objects which are invited to pass by all elements by calling "admitVisitor(...)". -- Gerald de Jong geralddejong@... http://www.darwinathome.org ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Fluidiom-code mailing list Fluidiom-code@... https://lists.sourceforge.net/lists/listinfo/fluidiom-code |
|
|
|
|
|
Re: Growth algorithm making more possibleOn 12/2/06, Sven Heinz <Wush1@...> wrote:
> Well regarding the tetraeder mitosis, this is actually worst case second choice for tetraeders, so of course i have nothing against it ;P. oh i see.. so i've only covered your worst case! :) > But my method is really not that hard if you forget the theoretical part, > you just make a second fluidom run (a testworld) and copy the current lengthes,(length information+clock information),when you copy you tag each point and intervall, so you know which one in the original it represents. do you mean "clone the fabric", or more than that? cloning also clones the tags. > Your world has no gravity, no ground and your rigidty is set appropriate high so that stress does not distribute itself to much. so it settles. from before, i assume you mean to have the desired lengths set to the current lengths so that all stresses are gone and the fabric turns gray. > You choose one length so you mark it in the original as been choose. > Now when you change the length of somwething there will always be some stress due to reaction time,with extensive I just meant ignore those small disturbance,let sufficient time pass so the system can settle and look if change one length, and let the body settle again. > there still stress exist within the intervall. > (beware there can still be little stress left due to vibrations, so set the damping high and use a test value a little bit over Zero) the changed interval will be under some stress, and there will be some stresses elsewhere to compensate. > Practical you should make two testruns (1expand and 2shrink)and only change small distances, as there can be limitations on how far the object can move without creating permanent stress, thats also the reason the rigidty is set high, so small distances are enough to do the test. okay, a lengthening run and a shortening run. but what happens once these tests have been done? > So what new do you need? a system to tag the points and lines so you can use the information for the original,somehting reading the stress value of the choosen intervall and comparing it to a slightly above zero value and all joints and intervals have tags right now and cloning a fabric makes a perfect copy with all these tags intact. > you need something using the testalgorithms of the proximityknoter for point distances, to test which point changed distance to each other(or to the endpoints if you want to save calculation power and data space) the way you describe it, i don't need anything more than to observe the new stresses, right? > Thast all, you make the copy you run it you see if or not there is stress, and if there is no stress which points move away from each other,then you know: I need one line when there was stress two if there was no. you're saying stress -> one interval no stress -> two intervals i don't quite know what you mean. > I always connect one line with the midpoint and another point(does not matter which as long there exits no intervall both points share) are you talking about bisecting an interval and introducing a new joint halfway? > Then I check from my previous made list, to which of the two factions that are stable to each other that point belongs, and if I need a second intervall I either choose a point from this list that does not share an intervall with the midpoint and is stable to my first point (different coordinates)(when such apoint dos not exist just change to the second possibility) or i can choose to connect a point that belongs to one stable faction to another point he does not already share an intervall with. i'm really sorry, but i can't understand this. -- Gerald de Jong geralddejong@... http://www.darwinathome.org ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Fluidiom-code mailing list Fluidiom-code@... https://lists.sourceforge.net/lists/listinfo/fluidiom-code |
|
|
Re: Growth algorithm making more possible-------- Original-Nachricht -------- Datum: Sun, 3 Dec 2006 11:32:11 +0100 > oh i see.. so i've only covered your worst case! :) Only the worst case of tetreders and only one choice. > change one length, and let the body settle again. ok until here you got everything right > the changed interval will be under some stress, and there will be some > stresses elsewhere to compensate. Not necessarily there exist cases where no stress is created for example: a\====/b If you enlarge the === line will there be stres? No. \ / the a and b point will change distance to each other and the ab \/ remains a stable distance to both a and b ab a1/\====/\b1 The same game,enlarge === result:No stress, a points + ab / \ / \ point are stable to each other, b points + ab point are /____\/____\ stable to each other.(Why is that? cause ab is a rotation a2 ab b2 axis). c1 /\====/\ c2 Enlarge === result STRESS, all points are stable to each / \ / \ othrér /____\/____\ \ /\ /c7 c3\ /c4\ / \/____\/ c5 c6 > okay, a lengthening run and a shortening run. but what happens once > these tests have been done? Well you have now knowlege of two things: Stress or no Stress and lists of stable points to each other.(When my thoughts are right there are maximal two partys of points stable to each other, two lists) > the way you describe it, i don't need anything more than to observe > the new stresses, right? No if there appears no stress you have to know which pointts are stable to each other. > you're saying > stress -> one interval > no stress -> two intervals > are you talking about bisecting an interval and introducing a new joint > halfway? > i'm really sorry, but i can't understand this. You always bisect the line you have chosen,(in the original) a midpoint is created, now if there was Stress you can just add ONE new intervall between the midpoint and another point(if he is not already connected to it of course). If you had no Stress your first step is the same, however you have to remember from which list the other point was, now you can either choose another point of the same list and connect it with the midpoint or you take a random point from one list and connect it to a random point of the other list(Of course those points should not be connected already). The random connection between one point of the first list with one of the second list is what I call choice one. The connection of the midpoint with a point, stable to the point we connected the midpoint with before is choice two. Example lets look at a tetraeder after bisection: m(midpoint) / \ The lists are {a,ab1,ab2} {b,ab1,ab2} / \ First we choose a list and connect m with some /_ab1_\ point from that list he does not already share an intervall a\ | /b with: only ab1 and ab2 fullfill that condition. \ | / Lets say we choose the first list, now we connect ab2 with m. \|/ If we proceed with choice one, we take a random point from ab2 the first list {a,ab1,ab2} and a randompoint from the second list {b,ab1,ab2}.Unfortunately ab1 and ab2 already connected with all points of the second list so we would need to choose another point from the first list or proceed with choice two. Now if we choose point a, he may be connected with ab1 and ab2 but he is not connected with b (that was or old connection before the bisection) so we connect a and b. Now if we proceed with choice two instead, we take another point from the first list(remember we got ab2 from it) and connect it with m, however a already has a connection with m so we either have to search another point or proceed with choice one. Fortunately ab1 has no connection with the midpoint and so we connect ab1 with the midpoint. So the result of choice one for a "lonely" tetraeder are two tetraeders and for choice two an octaeder. Note however the list of point we can choose from becomes larger with larger objects :), so the results can become more complexand interesting. -- Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Fluidiom-code mailing list Fluidiom-code@... https://lists.sourceforge.net/lists/listinfo/fluidiom-code |
|
|
Re: Growth algorithm making more possibleSeems like something deletes some free spaces when I make my pictures, plz copy those figures into a textfile and insert the free spaces so you get to see the trianglesand figures they show.
-- "Ein Herz für Kinder" - Ihre Spende hilft! Aktion: www.deutschlandsegelt.de Unser Dankeschön: Ihr Name auf dem Segel der 1. deutschen America's Cup-Yacht! ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Fluidiom-code mailing list Fluidiom-code@... https://lists.sourceforge.net/lists/listinfo/fluidiom-code |
| Free embeddable forum powered by Nabble | Forum Help |