simple, there are many symetries in 3 main planes. So I used arcs rotated 45° from the main planes and I generate a pentagon which was mirrored and rotated many times.
At the end there are 24 pentagons and 8 hexagons so 32 faces, 54 points/vertex and 84 edges.
It could generate some others tessalation styles
…
ifically: I have a 100' vertical plane lofted between curved top and bottom profiles. I contour it every 8' (normal direction is Z, giving me 13 horizontal curves). I use Divide Curve to divide each contour into 10 segments. The "Points" output of Divide Curve now yields 13 branches with 11 items each, corresponding to 13 contours with 11 points from the left end of the curve to its right.
I now want to string "vertical" lines, and connect all the 2nd items in each branch together, all the 3rd items, etc... in order to make a polyline that travels between each 2nd point or 3rd point. i don't want to use Cull Pattern/Nth/Index because the number of subdivisions could change (11 could become 20, etc).
How do I connect the Nth item of each branch in this tree? Moreover, how do I connect all values in a branch with their corresponding values in all other branches?
Thanks for any replies,
Richman Neumann
Solomon Cordwell Buenz Architects
…
ed according to list C.
I tried replace members, but it consists of geometry, so it doesn't worked.
In list C I filtered all the indices that need to be replaced.
All items in {0;0} from C need to be replaced by List B {0;0}
All items in {0;1} from C need to be replaced by List B {0;1}
And so on...
In the end everything needs to be fed into a orient component.
G is the geometry behind list B
A is the new list (but I don't know how to create)
B is the list A of all 60 panels
To wrap up the question:
I need to have entry 1 from list B in a new list on position: 0 1 2 3 5 6 7 10 11 12 15 16 21
I need to have entry 2 from list B in the same new list on position: 4 8 9 13 14 etc. etc. etc.
I wonder how I can do this :) Thanks in advance!
…
Tetrahedron: 24 Symmetries
Pyramid: 8 Symmetries
Design space = 24 X 8 = 192 permutations
So I decided to write a simple orientation script to iterate over all permutations. And this is the result. Below are some technical notes.
I used the vertices of the shapes for creating a 3 point plane, and used it for orientation.
I used compound transform to combine multiple steps of transformation.
The cross reference component is very handy, generating all the possible combinations without worrying too much about data tree.
The spatial relationship and the basic grammar A -> A + B and B -> A + B
The basic grammar and possible marker positions.
All results in 6 iteration steps
All results in 6 iteration steps (Top View)…
onent are experiential or location specific. For example: humidex has been derived and widely used in Canada.Also both humidex and discomfort index should be used in in-shade conditions.For universal applications and locations, you should concentrate on either PET or UTCI (this is what "Outdoor Comfort Calculator" component is based on).
I have found out, that for instance - OutdoorComfortCalculator - which considers temperatures of 9-26 and other factors, gives the % of comfortable time outdoor for instance in Kenya in Africa (high temperatures and humidity) 55%, whereas within the same .epw data and some additional factors added to the Thermal Indices component, the "humidex" or "Discomfort index" give a result drastically lower, I think it was even 1-5% comfortable.How is that?
Yes, this is one of the issues that I have with UTCI index: the authors wanted to make it as an index applicable in any type of climate. To create the UTCI comfort categories a number of data has been collected from different locations (for hot humid climate, it was the data from Madagascar. I may be wrong on this). This resulted in universal comfortable range of 9 to 26 C which you mentioned. How would the people in Madagascar perceive the feel like temperature of 9 degrees as comfortable is beyond my understanding.Thermophysiology of a human in Madagascar, and in Poland is the same. However their acclimatization is quite different, which raises the issue with the upper universal comfortable range. In general people who live in hotter climates have a bit higher tolerance to high temperature than those living in continental climates. And vice-versa: their tolerance to lower temperatures is lower than the tolerance of the people from the continental climates. Here is a comparison of the UTCI - PET stress categories:
UTCI
all climates stress category
above +46 extreme heat stress+38 to +46 very strong heat stress+32 to +38 strong heat stress+26 to +32 moderate heat stress+9 to +26 no thermal stress+9 to 0 slight cold stress0 to -13 moderate cold stress-13 to -27 strong cold stress-27 to -40 very strong cold stressbelow -40 extreme cold stress
PET
(sub)tropical humid climate temperate climate stress categoryabove +42 above +41 extreme heat stress+38 to +42 +35 to +41 strong heat stress+34 to +38 +29 to +35 moderate heat stress+30 to +34 +23 to +29 slight heat stress+26 to +30 +18 to +23 no thermal stress+22 to +26 +13 to +18 slight cold stress+18 to +22 +8 to +13 moderate cold stress+14 to +18 +4 to +8 strong cold stressbelow +14 below +4 extreme cold stress
I attached below an example of PET humid climate comparison with UTCI, for in-shade and out-shade conditions.As it can be seen UTCI shows the percent of time comfortable: two times higher than PET.
Thank you Pin, for the useful comment, on usage of "Analysis period" component.…
ns about them.
It's a direction for Kangaroo I very much intend to continue developing - and I am still getting to grips with the possibilities and experimenting with how different optimization and fairing forces work in combination with one another, so I would value your input and experience.
For those interested in some background reading material -
[1] http://www.cs.caltech.edu/~mmeyer/Research/FairMesh/implicitFairing.pdf
[2] http://mesh.brown.edu/taubin/pdfs/taubin-eg00star.pdf
[3] http://www.pmp-book.org/download/slides/Smoothing.pdf
[4] http://graphics.stanford.edu/courses/cs468-05-fall/slides/daniel_willmore_flow_fall_05.pdf
[5] http://www.evolute.at/technology/scientific-publications.html
[6] http://www.math.tu-berlin.de/~bobenko/recentpapers.html
[7] http://spacesymmetrystructure.wordpress.com/2011/05/18/pseudo-physical-materials/
[8] http://www.evolute.at/technology/scientific-publications/34.html
[9] http://www.evolute.at/software/forum/topic.html?id=18
At the moment the Laplacian smoothing is uniformly weighted, which tends to even out the edge lengths as well as smoothing the form, which is sometimes desirable, and sometimes not. It also tends to significantly shrink meshes when the edges are not fixed.
I plan to try some of the other weighting possibilities, such as Fujiwara or cotangent weighting (see [1] and [3]), as well as other fairing approaches, such as Taubin smoothing [2], Willmore flow[4], and so on. This also has applications in the simulation of bending of thin shells.
Planar quad panels are often desirable, but I'm finding that planarization forces alone are sometimes unstable, or cause undesirable crumpling, so need to be combined with some sort of fairing/smoothing, but the different types have quite different effects, and the balance is sometimes tricky.
There's also the whole issue of meshes which are circular (I posted a demo of circularization on the examples page), or conical (this one still isn't working quite right yet), and their relationship with principal curvature grids and placement of irregular vertices, all of which is rather different when the whole form is up for change, rather than having a fixed target surface [7].
I'm also trying to get to grips with ways of making surfaces of planar hexagons, which need to become concave in regions of negative Gaussian curvature (see this discussion)
and I hope to release soon a component for calculating CP meshes, as described in [8], which I think could have many exciting construction implications.
While there are a number of well developed smoothing algorithms, their main area of application so far seems to be in processing and improving 3D scan data, so using them in design in this way is somewhat new territory. There can be structural, fabrication or performance reasons for certain types of smoothness, but of course the aesthetic reasons are also often important, and I think there are some interesting discussions to be had here about the aesthetics of smoothness.
Anyway, that's enough rambling from me, hopefully something there triggers some discussion - I'm really keen to hear about how all of you envision these tools might be used and developed.
…
ce attractors
3- Relation between mathematics and Form
4- Network surface and Paneling
5- Fabrication methods (slice3d, nesting, ...)
6- Structure and Architecture (Millipede)
7-Energy and form
8- Islamic patterns
9- Physics with kangaroo
…
st work on lists? There may be a good reason for this, I just cuoldn't work it out while skimming the code.
2) I'd recommend declaring variables at the last possible moment, not all at the top of the file. It makes it very difficult to see what variable is used where that way. Also, if you change code, it's a lot of work figuring out what variables just became obsolete.
3) In VB.NET you can declare for loop iteration variables inside the loop, cleaning up the code: For t As Integer = 0 To X
4) If statements with conditionals should not be written like this: If (value = False) Then. There's nothing technically wrong with it, but the general rule is to write If (Not value) Then or If (value) Then.
5. Things like k = k+1 can be written shorter in VB.NET, namely k += 1. I just think that looks cooler :)
6. In VB.NET, Exit Sub is still legal (for legacy purposes) but the Return keyword is to be preferred.
7. I'm happy to see you're using sensible variable names and casing.
8. For a program like Grasshopper, one would expect to get the same results when the same setup is run at a later time. That means creating Random instances with a fixed seed value, not DateTime.Now.Millisecond. If your result depends in any way on the seed value, it should be kept constant.
On the whole pretty good work, code is quite self-documenting, properly commented and fast. Hats off.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
2. See this? It's a abstract (for the moment) layout of some WIP thing: Imagine a region where "evenly" random points are placed (and then a random zNoise is added) - then a ball-pivot/delauney triangulation is applied ... then ... :
2. I use my method to create "even" points (I suspect that David's is way better/faster/cooler ... but anyway): after a random point is found (inside the region) an additional check is performed: think of the point as a "candidate" that must "pass" a 2nd constrain: if the min distance from all the already found (random) points is smaller than a user defined one > reject and try again (the "try-again" thing [call it: min distance "loops"] is also user controllable). Thus that C# captured attempts to place 122 points but due to (a) the min distance constrain AND (b) the low (about 8 in this case) amount of "try-again" loops it finishes with "only" 59 (not a big deal for this case). The interesting part is that the attempts required are 1573 (~30 times the random points returned). Of course there's a lot of factors affecting this 1573 (variable) thing ... but don't stick to that.
3. So if David uses a "similar" culling method (add some " " more, he he) ... for 80K points ... well we are talking about a BIG number of attempts.
I can provide you with a "no-even" random points C# that (I assume/guess/hope) can speed things a bit (after all: who's gonna notice an "even" random distribution of 80K points within a micro cube?).
best, Peter
…