e screenshot, there are only two ROT3D(rotation 3d) commands and SEC (Brep/Plane Section) are defined, it seems that the cylinders are generated at first, and the rotated planes are used to intersect the cylinders, in order to generate the curves.
[Figure 1]
The redrawing is based on the previous assumpation, and there are 21 pairs of cross-arc drawn[Figure 1]. Finally, the problem is focused on the last step how to intersect curves.
In CCX, there are only 21 run times, which means the curves intersection are looped one-by-one, and 21 curves are arranged to finished 21 intersection[Figure 2, plz zoom in]. That is the reason, why CCX is not able to get the cross points between the neighbour arc.
[Figure 2]
For the curve-to-curve intersection does not work, in order to get the intersection points, I try to enlarge the set of intersected component, using the plane or cylinder to intersect with curve. When the PCX (plane-curve-intersect) is tested, 21 curves are intersected with the previous 21 rotated planes, the loop runs 441 times, which shows that the curves are mananged to intersect with the neighbour plane, and the intersection points are found. Moreover, the SCX (surface-curve-intersect) is tested, and the 21 cylinders are successfully intersected with the 21 curves. And more important point is that the SCX makes the intection points exactly between the curves and the cylinders, while the redundant ones of the intersection of plane and curve, in some combination of the rotated angles and cylinder distances, are are avoided.
Besides, the Graft/Merge command is also tried, I hope to merge the curves list together, and to intersect them with each other, but it fails. It is supposed that the graft command may change the data structure. When a list of cylinders are grafted, the new data is no longer the cylinders, which fails to plot.
In conclusion, if the loops of geometry are in the same level, the command is run in correspondence; if the loop is between different types of geometry, the total trials of loop are run.
[Rhino Version 5.0; Grasshopper 0.9.0076]
BTW, the .gh file includes the initial base line, which could be run directly in Grasshopper. Please help me to check the model, thanks.…
have no mathematical falloff function, just an abrupt switch of field from zero to one in a way that somehow avoids nearly all bulging despite fields still at least arithmetically adding up where balls cluster....
I have newfound appreciation of David Stasiuk's Geometry Wrapper VB script. First of all, marching cubes actually gives a smoother result than tetrahedra, despite tetrahedra having a reputation of being "more uniform," in that tetrahedra can give aliasing that appears not as regular bulges but as sharp pyramids:
This can cause the smoothing step to end up with a somewhat directionally warped result.
But more so, Stasiuk's Geometry Wrapper, rather than bafflingly using a Grasshopper data tree as I thought and was disturbed by since scripting was my escape from those altogether, he is invoking a very fast special feature of Rhino via the Rhinocommon RTree feature that can search 3D space very efficiently, and thus his script is much faster than my Python version that is RTree ignorant. Here is his code:
Reference:
http://4.rhino3d.com/5/rhinocommon/html/M_Rhino_Geometry_RTree_Sear...
He also has a sophisticated way to define the bounding box at an angle that is often a lot more efficient than a dumb XYZ world coordinate box. Since Rhinocommon seems to lack a multi-object bounding box command except for points, it makes sense that he is populating curves with a few points to do it all via points. This makes it more complicated for me to adapt it directly to surfaces instead of pseudo-surfaces (via isocurve wireframe extraction) though, but I understand the script better now, so in time, perhaps.
For my application at least, I successfully made his script twice as fast by ridding it of a complex math function of the metaball radius in favor of just using the radius itself:
The script is also easier to understand now that I realize he early on assigns numbers to indicate object type, curve or point.
…
node geometry from line structure inputs.
In terms of trying to make all your panels regular hexagons... this topic comes up frequently on GH whether it be using only equilateral triangles, hexagons, pentagons etc;
http://www.grasshopper3d.com/forum/topics/folded-plane-subdivided-into-equilateral-triangles?id=2985220%3ATopic%3A1007963&page=2#comments
http://www.grasshopper3d.com/forum/topics/triangulation-using-only-equilateral-triangles
http://www.grasshopper3d.com/forum/topics/polygon-composition-with-hinges-1
In general, if you want a curved facade surface your hexagons cannot all be identical. There was a post on this forum about exactly this. I was convinced you could not have anything other than a flat surface with fixed, equalateral triangles but it turns out (and was shown by Daniel Piker and Kangaroo) that you can indeed have a non-planar surface panelled with equalateral triangles but it tends to be a kinked surface and it wasn't straightforward to control.
To try and reduce the variety of components in building structures like this, people have tried this sort of thing...
http://www.solidsmack.com/fabrication/you-can-now-build-your-own-geodesic-dome-at-home-in-under-an-hour-with-this-handy-kit/
...but notice the lack of panels!
Perhaps your best route is use something like what Bradley ended up with in the first link I posted then work on ID tagging each panel and node (and their orientations) so you have a construction procedure to follow.
One other thing to bear in mind... the simple construction above was really awkward to construct. On a larger scale it could be a nightmare! Once you have 2 nodes connected you can't fit the third without loosening the 2 that are already connected and shuffling them together bit by bit. Hard with 4 pieces, a disaster with many more so always think about how you intend to construct the pieces!…
ages do not distinguish between points and vectors, and sometimes not even between vectors and colours. GLSL shaders for example treat all coordinates, vectors and colours as 2d, 3d or 4d vectors.
However theoretically, and mathematically, they are very different entities and it is just easier to think with them if you keep them separate. As mentioned by Michael and Joseph already, points are locations in space specified using a set of coordinates, whereas vectors are directions+magnitudes in space, specified using a set of coordinate differences. Vectors are not geometry, and whenever we draw a vector in some specific place, we can only do so because we know, from the context, where that vector makes sense.
In physics and mathematics I'm given to understand that it often makes sense to denote points and vectors as either row-vectors or column-vectors respectively. I.e. either a matrix containing only a single row of numbers, or a matrix containing only a single column of numbers. In such an approach, points and vectors actually do behave very differently when used in equations and computations. But this is not something you typically have to worry about when dealing with 'simple' geometric stuff like CAD.
Conceptually, points and vectors are different things and as such they have different operations associated with them. Let's imagine we write points using round brackets (because points are dot-like nature) and vectors using angled brackets (because vectors are like arrows). Thus (x,y,z) would be a three dimensional point whereas ⟨a,b,c⟩ would represent a three-dimensional vector.
We can define a meaningful addition operation on two vectors by simply adding the respective magnitudes; ⟨a,b,c⟩+⟨i,j,k⟩=⟨a+i,b+j,c+k⟩. This operation takes in two vectors and outputs a vector. This turns out to be a useful operation because we end up needing it all over the place, for example when combining forces or motions.
We can also choose to define an addition operation on a point and a vector which looks (and is) entirely identical; (x,y,z)+⟨i,j,k⟩=(x+i,y+j,z+k). Note that this time the inputs of the addition are one point and a one vector, while the output is a point. This, too, is a useful operation because you can think of it as moving a point along a vector, which is something you need to do all the time. Are these two operations 'different'? Conceptually, yes. Computationally, no.
Would it make sense to define an addition operator which adds two points together? How about subtraction? How about multiplication? Well, sometimes it makes a lot of sense, sometimes it makes a little sense, sometimes it makes no sense. But by keeping points and vectors separate, I think there is less confusion, and I think it's easier to find mistakes. …
Added by David Rutten at 6:24am on October 21, 2017
stand completely (i just don't get the math part...).The code can be found here: http://digitalsubstance.wordpress.com/subcode/
So i decided to make my own definition: a cube deformed by 5 attractors and i was wondering if someone can help me solve the meshing at the end of the definition because when i bake it, it gives me an open mesh and i don't understand why ? Waterfall meshes are not suitable for 3d printing... I don't think i've used the clean, weld, and unify faces in the good order ? Maybe there is a problem with the surfaces ?
Secondly i'm not very proud of the result of my cube because it's so deformed that it is a not a cube anymore... so i was wondering if a square grid of points can be deformed by an attractor but still keeping the straight boundary of the grid ?
I had an idea to make that: i make my points, create the vectors between the grid and the attractor points, calculate the distance between the grid points and the attractors: it gives me a list of distances that i remap to control the strengh of my attractors. On the other side i calculate the distance between the boundary of the grid and the grid points and it gives me a second list of numbers. So i wanna average the two list of numbers in such a way that the closest it is to the attractor it takes the distance from the first list and the further it is from the attractor (so the closest it is from the boundary) it takes the distance from the second list ?? I'm sorry for my bad english but even in french it's little bit hard for me to explain it ;). So what can i do to have a grid attracted by a point without moving the boundary points ??
And please don't tell me to cull the boundary points first, to deform the grid and to rebuild the grid after... it gives an ugly cube face at the end, even with a lot of polishing with weaverbird...
If someone has another idea to achieve that please tell me ;)
The first definition "CleanCubeMeshingHelp"is a little bit heavy so watch out if you have a small laptop (any ideas to make it work faster are welcomed !!)
The second one is the one with the two list of numbers.
Also a last questions: what is and when to use the "blur number", "interpolate data" and Weighted Average" under math utilities ??
Thank you in advance for you answers and i apologize for my lack of vocubulary.…
side a GoogleStreet view format, and match up with the rendered version of the same view. Below is a photoshop mockup of what I am trying to make:
This is a rendered 360 degree spherical panorama, In the blue highlighted area I used photoshops find edges filter to create the appearance of outlines- but it does a pretty poor job compared to the actual vector outline I am hoping for.
Does anyone have any ideas on where to start with a script that would do this well? My guess would be to project visible edges onto a sphere and then unwrap them as a 2:1 rectangle... that sounds nice in theory but there are a few immediate practical problems:
1. How to dynamically project curves so that each point along a curve is translated from its location towards a single center point (ie the center of the spherical camera)- this would mean that the projection angle changes for every point. All of the lines I am projecting are straight, but when they are projected onto a sphere they will end up curved. Perhaps a dividecrv, project each resulting pt, and then interpolate would work- but it seems like there should be a cleaner method.
2. If I can project the curves properly onto a very small sphere located where my camera is, How to unwrap the curves on that sphere into a 2:1 rectangle. Does anyone know a way to translate from 3D points coordinants to 2D equirectangular ones?
Bonus- Can I polarize this output and still have my vector lines? If I can get this far I will be estatic, but as a stretch goal can I polarize my vector lines, so that again they will match up with the polarized version of the rendering below (same image, just scaled to a square and photoshop>distort>polarize):
…
Added by Peter Stone at 10:58am on January 21, 2015
onal design strategies for the digital construction industry of the future.
FOJAB architects is an award winning architectural practice based in Sweden. We are 150 architects working on a wide range of projects of all scales. As one of the leading architectural practices within the Nordic countries we firmly believe in experimental and playful design research.
The new team roles focus on work in innovative projects to develop digital design strategies for the future. Through design research FOJABcode will establish strategies, concepts and design language for future projects. The team members will have a crucial part in establishing relevant research questions, and developing design identity. Working closely together under the lead of Petra Jenning, FOJABcode will expand the computational design, thinking and acting within FOJAB architects and the architecture profession.
ARCHITECT/COMPUTATIONAL DESIGNER
We are looking for someone who is keen to push the boundaries of what computational design can be in architectural practice. This role will involve: leading design development, supporting a variety of architectural projects with computational expertise, and forming design attitudes towards a computational approach to architecture.
Candidates should be highly motivated and enthusiastic with excellent communication, and analytical skills.
Requirements:
Experience of independently and collaboratively driving design processes
Experience of computation/digital design within architecture
Familiarity and experience with algorithmic and emergent design principles, e.g. multi agent systems
Excellent Grasshopper skills
Familiarity with Revit and Dynamo is advantageous
Qualified architect
COMPUTATIONAL DESIGNER/PROGRAMMER
We are looking for someone who is keen to push the boundaries of what computational design can be in architecture practice. The role includes developing computational strategies, parametric and coded, as well as digital tools. As an essential part of FOJABcode the individual will be responsible for developing computational visions and approaches.
Candidates should be methodological, analytical, and have excellent problem-solving skills. It is important that the candidate understands programming in relationship to space and have a developed three dimensional understanding. We are looking for highly motivated and enthusiastic individuals with good communication skills.
Requirements:
Experience of collaborative design processes
Excellent scripting/coding skills
Familiarity and experience with algorithmic and emergent design principles, e.g. multi agent systems
Familiarity with Grasshopper 3D and programming/scripting languages such as Python, C#, and/or Processing (Java)
Familiarity with Revit and Dynamo is advantageous
Interest in fabrication and hardware processes is advantageous
To be considered, please send CV, examples of your work and a covering letter with reasons why you would like to join us to Petra Jenning at petra.jenning@fojab.se.
More info: www.fojab.se Questions? +46 722 36 12 44…
y turning lines into stacks of anti-prisms and then calculating a triangulated convex hull around each hub that uses the vertices of the ends of such struts. The low poly result can be subdivided (Weaverbird Loop) to smooth it.
It comes with several preset unit cell types for filling arbitrary bodies with a lattice, and also has a custom unit cell component. But it's broken.
IntraLattice has a tolerance bug that is easy to fix by just scaling your model up 10X when you notice bad mesh results. This is a separate issue.
It's as if it doesn't like lines to end on edges of the unit cell, only faces and corners. A diagonal line from edge-to-edge (and then all lines split with each other) goes missing, half missing, or oddly enough becomes zig-zag in the array when it should be straight.
I also don't like that the developer added a limitation error warning that all faces must have a line on them. This means I can't fill space with layered spaces in between trusswork, for instance.
The custom unit cell code also sadly rejects curves, yet IntraLattice itself can handle curves just fine.
I also note that that clean-up component only removes duplicate lines, fine, but it doesn't join pairs of co-linear lines, something that occurs often when playing around with unit cells. This seems to cause bad meshes since it tries to put a hub where the line segments need merely be joined or treated as one line.
There's also a bug in the nice custom mesh preview component that sometimes has the preview stuck on even if you delete the component from the Grasshopper canvas since disabling it or shutting off preview of it fails.
It's been two years since an update to this open source plug-in, so I've contacted the developers on Github since the contact form is Server Error 500: http://intralattice.com/contact/
On Github, he promises a new version in 2017 as a stand-alone application, so I hope this extends to Grasshopper in some way, if not directly, then as some way to hook into it.
…
Added by Nik Willmore at 4:28am on October 10, 2017
er linked to a standalone app which aims to help you design with sound !
it is basically a tool to hear what you sketch and to design according to this sound feedback. The aim here is to use sound as a building material from the early stages of sketching and not to simulate an extremely accurate final rendering.
The software interaction between sound and parametric space modeling is embodied in a 3D sketch modeled in Grasshopper and an acoustic sketch in a stand-alone application developed on MAXMSP, interactively connected to each other. Thus, the program is developed as an auralization tool rather than a calculation tool. It is indeed a question of being able to sketch a sound scene and thus inform the model.
New in V.3 : > Comes with an installer > Crossplatform (Mac/windows) > Improved optimisation > new stuff/functions > new icons ;)
What's in EsquisSons ?___
Functions/components : Listener : Place/Move the listening point in the scene, choose its orientation and size
Geometry : Determine the phonic opacity of a geometry but also its absorption coefficient
Sources : Position the source in the model, determine its size and choose the sound file it will play
Option for sources : Mute a source, manually adjust its volume and choose the degree of shuffle!
Built-in Sound : New simpler interface in the form of a list to access the built-in sounds. (more built-in sounds)
Main Engine : Optimized component (faster), you can lock the sources, enable or disable reverb, and choose between an indoor or outdoor sketch. The component returns, in addition to the sound, a visualization in the form of rays as well as the reverberation time per source and the amount of reverberation (mix) per source.
Visualize Rays : You can choose how many rays are visible, at what distance from the source and the number of bounces you want to see !
F4R link : https://www.food4rhino.com/app/esquissons
Github : https://github.com/TheoArchi/EsquisSons…